From cd6bd3cc7d9af974dc02a80127dace9da6719d15 Mon Sep 17 00:00:00 2001 From: Martin Wendt Date: Sun, 4 Aug 2024 17:36:07 +0200 Subject: [PATCH] Bump version to 0.11.0 --- dist/wunderbaum.css | 8 + dist/wunderbaum.css.map | 2 +- dist/wunderbaum.d.ts | 230 +++++++++++++--- dist/wunderbaum.esm.js | 252 ++++++++++++++---- dist/wunderbaum.esm.min.js | 42 +-- dist/wunderbaum.esm.min.js.map | 2 +- dist/wunderbaum.umd.js | 252 ++++++++++++++---- dist/wunderbaum.umd.min.js | 58 ++-- dist/wunderbaum.umd.min.js.map | 2 +- docs/api/assets/search.js | 2 +- docs/api/classes/util.Deferred.html | 6 +- docs/api/classes/util.ValidationError.html | 8 +- docs/api/classes/wb_node.WunderbaumNode.html | 240 ++++++++--------- docs/api/classes/wunderbaum.Wunderbaum.html | 216 +++++++-------- docs/api/enums/types.ChangeType.html | 20 +- docs/api/enums/types.NavModeEnum.html | 6 +- docs/api/enums/types.NodeRegion.html | 6 +- docs/api/enums/types.NodeStatusType.html | 6 +- docs/api/enums/types.RenderFlag.html | 4 +- .../common.decompressSourceData.html | 4 +- .../common.makeNodeTitleMatcher.html | 6 +- .../common.makeNodeTitleStartMatcher.html | 4 +- .../api/functions/common.nodeTitleSorter.html | 4 +- docs/api/functions/util.adaptiveThrottle.html | 4 +- docs/api/functions/util.assert.html | 4 +- docs/api/functions/util.debounce.html | 4 +- docs/api/functions/util.documentReady.html | 4 +- .../functions/util.documentReadyPromise.html | 4 +- docs/api/functions/util.each.html | 4 +- docs/api/functions/util.elemFromHtml.html | 4 +- docs/api/functions/util.elemFromSelector.html | 4 +- docs/api/functions/util.error.html | 4 +- docs/api/functions/util.escapeHtml.html | 4 +- docs/api/functions/util.escapeRegex.html | 4 +- docs/api/functions/util.escapeTooltip.html | 4 +- docs/api/functions/util.eventToString.html | 4 +- docs/api/functions/util.extend.html | 4 +- docs/api/functions/util.extractHtmlText.html | 4 +- docs/api/functions/util.getOption.html | 4 +- docs/api/functions/util.getValueFromElem.html | 4 +- docs/api/functions/util.isArray.html | 4 +- docs/api/functions/util.isEmptyObject.html | 4 +- docs/api/functions/util.isFunction.html | 4 +- docs/api/functions/util.isPlainObject.html | 4 +- docs/api/functions/util.noop.html | 4 +- docs/api/functions/util.onEvent.html | 6 +- docs/api/functions/util.overrideMethod.html | 4 +- docs/api/functions/util.rotate.html | 4 +- docs/api/functions/util.setElemDisplay.html | 4 +- .../api/functions/util.setTimeoutPromise.html | 4 +- docs/api/functions/util.setValueToElem.html | 4 +- docs/api/functions/util.sleep.html | 4 +- docs/api/functions/util.throttle.html | 4 +- docs/api/functions/util.toBool.html | 4 +- docs/api/functions/util.toPixel.html | 4 +- docs/api/functions/util.toSet.html | 4 +- docs/api/functions/util.toggleCheckbox.html | 4 +- docs/api/functions/util.type.html | 4 +- docs/api/hierarchy.html | 2 +- docs/api/index.html | 6 +- .../interfaces/types.AddChildrenOptions.html | 10 +- .../interfaces/types.ApplyCommandOptions.html | 4 +- .../interfaces/types.ColumnDefinition.html | 52 ++-- .../api/interfaces/types.ColumnEventInfo.html | 12 +- docs/api/interfaces/types.DragEventType.html | 14 +- docs/api/interfaces/types.DropEventType.html | 16 +- .../interfaces/types.ExpandAllOptions.html | 12 +- .../interfaces/types.FilterNodesOptions.html | 20 +- .../interfaces/types.MakeVisibleOptions.html | 10 +- .../api/interfaces/types.NavigateOptions.html | 8 +- .../interfaces/types.NodeTypeDefinition.html | 14 +- docs/api/interfaces/types.RenderOptions.html | 18 +- .../interfaces/types.ResetOrderOptions.html | 9 +- .../types.ScrollIntoViewOptions.html | 12 +- .../api/interfaces/types.ScrollToOptions.html | 14 +- .../interfaces/types.SetActiveOptions.html | 18 +- .../interfaces/types.SetColumnOptions.html | 8 +- .../interfaces/types.SetExpandedOptions.html | 14 +- .../interfaces/types.SetSelectedOptions.html | 12 +- .../interfaces/types.SetStatusOptions.html | 8 +- .../types.SortByPropertyOptions.html | 21 +- docs/api/interfaces/types.SourceAjaxType.html | 4 +- .../interfaces/types.SourceObjectType.html | 4 +- docs/api/interfaces/types.UpdateOptions.html | 6 +- .../interfaces/types.VisitRowsOptions.html | 14 +- .../interfaces/types.WbActivateEventType.html | 14 +- .../types.WbButtonClickEventType.html | 12 +- .../interfaces/types.WbChangeEventType.html | 22 +- .../interfaces/types.WbClickEventType.html | 14 +- .../types.WbDeactivateEventType.html | 14 +- .../types.WbEditApplyEventType.html | 24 +- .../interfaces/types.WbEditEditEventType.html | 16 +- .../interfaces/types.WbErrorEventType.html | 16 +- docs/api/interfaces/types.WbEventInfo.html | 22 +- .../interfaces/types.WbExpandEventType.html | 14 +- .../interfaces/types.WbFocusEventType.html | 12 +- .../types.WbIconBadgeEventResultType.html | 8 +- .../types.WbIconBadgeEventType.html | 14 +- .../api/interfaces/types.WbInitEventType.html | 12 +- .../interfaces/types.WbKeydownEventType.html | 12 +- .../types.WbModifyChildEventType.html | 18 +- docs/api/interfaces/types.WbNodeData.html | 8 +- .../api/interfaces/types.WbNodeEventType.html | 14 +- .../interfaces/types.WbReceiveEventType.html | 14 +- .../interfaces/types.WbRenderEventType.html | 24 +- .../interfaces/types.WbSelectEventType.html | 14 +- .../api/interfaces/types.WbTreeEventType.html | 10 +- .../wb_options.WunderbaumOptions.html | 122 +++++---- docs/api/modules/common.html | 4 +- docs/api/modules/types.html | 4 +- docs/api/modules/util.html | 4 +- docs/api/modules/wb_node.html | 4 +- docs/api/modules/wb_options.html | 4 +- docs/api/modules/wunderbaum.html | 4 +- docs/api/types/types.ApplyCommandType.html | 2 +- docs/api/types/types.BoolOptionResolver.html | 4 +- .../types.BoolOrStringOptionResolver.html | 4 +- docs/api/types/types.CheckboxOption.html | 4 +- .../api/types/types.ColumnDefinitionList.html | 2 +- docs/api/types/types.ColumnEventInfoMap.html | 2 +- docs/api/types/types.DndOptionsType.html | 4 +- .../types/types.DropEffectAllowedType.html | 2 +- docs/api/types/types.DropEffectType.html | 2 +- docs/api/types/types.DropRegionType.html | 2 +- docs/api/types/types.DropRegionTypeSet.html | 2 +- docs/api/types/types.DynamicBoolOption.html | 4 +- .../types.DynamicBoolOrStringOption.html | 2 +- .../types/types.DynamicCheckboxOption.html | 2 +- docs/api/types/types.DynamicIconOption.html | 2 +- docs/api/types/types.DynamicStringOption.html | 2 +- .../api/types/types.DynamicTooltipOption.html | 2 +- docs/api/types/types.EditOptionsType.html | 4 +- docs/api/types/types.FilterModeType.html | 2 +- docs/api/types/types.FilterOptionsType.html | 4 +- docs/api/types/types.GridOptionsType.html | 2 +- docs/api/types/types.IconOption.html | 4 +- docs/api/types/types.InsertNodeType.html | 2 +- docs/api/types/types.KeynavOptionsType.html | 2 +- docs/api/types/types.LoggerOptionsType.html | 2 +- docs/api/types/types.MatcherCallback.html | 4 +- docs/api/types/types.NodeAnyCallback.html | 4 +- docs/api/types/types.NodeFilterCallback.html | 2 +- docs/api/types/types.NodeFilterResponse.html | 2 +- .../types.NodePropertyGetterCallback.html | 4 +- docs/api/types/types.NodeSelectCallback.html | 4 +- docs/api/types/types.NodeStringCallback.html | 4 +- docs/api/types/types.NodeToDictCallback.html | 5 +- .../types/types.NodeTypeDefinitionMap.html | 2 +- docs/api/types/types.NodeVisitCallback.html | 4 +- docs/api/types/types.NodeVisitResponse.html | 6 +- docs/api/types/types.SelectModeType.html | 2 +- docs/api/types/types.SortCallback.html | 4 +- docs/api/types/types.SortOrderType.html | 4 +- docs/api/types/types.SourceListType.html | 2 +- docs/api/types/types.SourceType.html | 4 +- docs/api/types/types.TooltipOption.html | 4 +- docs/api/types/types.TristateType.html | 4 +- .../types.WbCancelableEventResultType.html | 4 +- docs/api/types/types.WbIconBadgeCallback.html | 4 +- docs/api/types/util.EventCallbackType.html | 2 +- docs/api/types/util.FunctionType.html | 2 +- .../variables/common.DEFAULT_DEBUGLEVEL.html | 2 +- .../common.DEFAULT_MIN_COL_WIDTH.html | 4 +- docs/api/variables/common.ICON_WIDTH.html | 4 +- docs/api/variables/common.INPUT_KEYS.html | 4 +- docs/api/variables/common.KEY_NODATA.html | 2 +- .../variables/common.KEY_TO_ACTION_DICT.html | 4 +- .../variables/common.RENDER_MAX_PREFETCH.html | 4 +- .../variables/common.RENDER_MIN_PREFETCH.html | 4 +- .../common.RESERVED_TREE_SOURCE_KEYS.html | 4 +- docs/api/variables/common.ROW_HEIGHT.html | 4 +- docs/api/variables/common.TEST_IMG.html | 4 +- .../variables/common.TITLE_SPAN_PAD_Y.html | 4 +- docs/api/variables/common.iconMaps.html | 4 +- docs/api/variables/util.MAX_INT.html | 2 +- docs/api/variables/util.MOUSE_BUTTONS.html | 4 +- docs/api/variables/util.isMac.html | 4 +- package.json | 2 +- 178 files changed, 1513 insertions(+), 1028 deletions(-) diff --git a/dist/wunderbaum.css b/dist/wunderbaum.css index 8f63714..9deff51 100644 --- a/dist/wunderbaum.css +++ b/dist/wunderbaum.css @@ -210,6 +210,14 @@ div.wunderbaum div.wb-header span.wb-col-resizer { div.wunderbaum div.wb-header span.wb-col-resizer.wb-col-resizer-active { cursor: col-resize; } +div.wunderbaum div.wb-header i.wb-col-icon { + float: inline-end; + padding-left: 2px; +} +div.wunderbaum div.wb-header i.wb-col-icon:hover { + cursor: pointer; + color: var(--wb-focus-border-color); +} div.wunderbaum span.wb-col { position: absolute; display: inline-block; diff --git a/dist/wunderbaum.css.map b/dist/wunderbaum.css.map index 8289fc4..b4aa52d 100644 --- a/dist/wunderbaum.css.map +++ b/dist/wunderbaum.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../src/wunderbaum.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AA2EA;AAAA;EAME;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAMF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAGA;AAsBA;AAyBA;AA8QA;AAoHA;AA8BA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAvjBA;EAEE;;AAIF;EACE;EACA;;AAGF;EACE;EAEA;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;;AAIA;EACE;;AAKF;EAEE;;AAGF;EAEE;;AAGF;EACE;;AAOA;EAEE;EACA;;AAEA;EACE;;AAaN;EAEE;EACA;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAOF;EACE;;AAGF;EAEE;;AAGA;EACE;;AAKJ;EACE;EACA;;AAGF;EAEE;EACA;;AAEA;EAEE;;AAIJ;EACE;;AAGF;AAAA;AAAA;EAGE;EAcA;EASA;;AAGF;EAEE;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAIA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAMN;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;AAqBA;;AAhBA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;;AAIF;EACE;;AAGF;EACE;EACA;EACA;;AAMA;EACE;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;EAEA;EACA;EACA;EACA;EACA;;AAUI;EACE;;AAON;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIF;EACE;;AAGF;EACE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAgBE;EACA;EACA;;AAGF;AAAA;EAEE;;AAcA;EACE;;AAWJ;EACE;;AAGF;EACE;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAQJ;EACE;;AASJ;EACE;;AAEA;EACE;;AAGF;EACE;;AAMJ;EACE;;AAaJ;EACE;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGA;EACE;EACA;;AAEA;EAGE;EACA;EAGA;EACA;EACA;;AAgBR;AAAA;EAIE;EACA;EACA;;AAKF;EACE;;AAUE;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAOJ;EAIE;EACA;;AAGF;AAAA;EAKE;EACA;;AAMF;AAAA;EAEE;EACA;EACA;EACA;;AAOF;EACE;;AAGF;AAAA;EAEE;;AAKA;EACE;;;AAMR;AAEA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAQJ;AACA;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAIA;AAAA;EAEE;;AAGF;AAAA;EAEE;;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAIJ;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EAGE;;;AAGF;EACE;;;AAKF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"wunderbaum.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/wunderbaum.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AA2EA;AAAA;EAME;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAMF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAGA;AAsBA;AAyBA;AAwRA;AAoHA;AA8BA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAjkBA;EAEE;;AAIF;EACE;EACA;;AAGF;EACE;EAEA;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;;AAIA;EACE;;AAKF;EAEE;;AAGF;EAEE;;AAGF;EACE;;AAOA;EAEE;EACA;;AAEA;EACE;;AAaN;EAEE;EACA;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAOF;EACE;;AAGF;EAEE;;AAGA;EACE;;AAKJ;EACE;EACA;;AAGF;EAEE;EACA;;AAEA;EAEE;;AAIJ;EACE;;AAGF;AAAA;AAAA;EAGE;EAcA;EASA;;AAGF;EAEE;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAIA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;EACA;;AAKN;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;AAqBA;;AAhBA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;;AAIF;EACE;;AAGF;EACE;EACA;EACA;;AAMA;EACE;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;EAEA;EACA;EACA;EACA;EACA;;AAUI;EACE;;AAON;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIF;EACE;;AAGF;EACE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAgBE;EACA;EACA;;AAGF;AAAA;EAEE;;AAcA;EACE;;AAWJ;EACE;;AAGF;EACE;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAQJ;EACE;;AASJ;EACE;;AAEA;EACE;;AAGF;EACE;;AAMJ;EACE;;AAaJ;EACE;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGA;EACE;EACA;;AAEA;EAGE;EACA;EAGA;EACA;EACA;;AAgBR;AAAA;EAIE;EACA;EACA;;AAKF;EACE;;AAUE;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAOJ;EAIE;EACA;;AAGF;AAAA;EAKE;EACA;;AAMF;AAAA;EAEE;EACA;EACA;EACA;;AAOF;EACE;;AAGF;AAAA;EAEE;;AAKA;EACE;;;AAMR;AAEA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAQJ;AACA;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAIA;AAAA;EAEE;;AAGF;AAAA;EAEE;;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAIJ;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EAGE;;;AAGF;EACE;;;AAKF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"wunderbaum.css"} \ No newline at end of file diff --git a/dist/wunderbaum.d.ts b/dist/wunderbaum.d.ts index 293bbc8..740df58 100644 --- a/dist/wunderbaum.d.ts +++ b/dist/wunderbaum.d.ts @@ -372,6 +372,8 @@ declare module "util" { * @param defaultValue returned when `opts` is not an object, or does not have a NAME property */ export function getOption(opts: any, name: string, defaultValue?: any): any; + /** Return the next value from a list of values (rotating). @since 0.11 */ + export function rotate(value: any, values: any[]): any; /** Convert an Array or space-separated string to a Set. */ export function toSet(val: any): Set; /** Convert a pixel string to number. @@ -466,7 +468,7 @@ declare module "common" { }; /** Return a callback that returns true if the node title matches the string * or regular expression. - * @see {@link WunderbaumNode.findAll()} + * @see {@link WunderbaumNode.findAll} */ export function makeNodeTitleMatcher(match: string | RegExp): MatcherCallback; /** Return a callback that returns true if the node title starts with a string (case-insensitive). */ @@ -528,7 +530,7 @@ declare module "deferred" { } declare module "wb_node" { import { Wunderbaum } from "wunderbaum"; - import { AddChildrenOptions, ApplyCommandOptions, ApplyCommandType, ChangeType, CheckboxOption, ExpandAllOptions, IconOption, InsertNodeType, MakeVisibleOptions, MatcherCallback, NavigateOptions, NodeAnyCallback, NodeStatusType, NodeStringCallback, NodeToDictCallback, NodeVisitCallback, NodeVisitResponse, RenderOptions, ScrollIntoViewOptions, SetActiveOptions, SetExpandedOptions, SetSelectedOptions, SetStatusOptions, SortCallback, SourceType, TooltipOption, TristateType, WbNodeData } from "types"; + import { AddChildrenOptions, ApplyCommandOptions, ApplyCommandType, ChangeType, CheckboxOption, ExpandAllOptions, IconOption, InsertNodeType, MakeVisibleOptions, MatcherCallback, NavigateOptions, NodeAnyCallback, NodeStatusType, NodeStringCallback, NodeToDictCallback, NodeVisitCallback, NodeVisitResponse, RenderOptions, ResetOrderOptions, ScrollIntoViewOptions, SetActiveOptions, SetExpandedOptions, SetSelectedOptions, SetStatusOptions, SortByPropertyOptions, SortCallback, SourceType, TooltipOption, TristateType, WbNodeData } from "types"; /** * A single tree node. * @@ -553,12 +555,26 @@ declare module "wb_node" { * @see Use {@link setKey} to modify. */ readonly refKey: string | undefined; + /** + * Array of child nodes (null for leaf nodes). + * For lazy nodes, this is `null` or ùndefined` until the children are loaded + * and leaf nodes may be `[]` (empty array). + * @see {@link hasChildren}, {@link addChildren}, {@link lazy}. + */ children: WunderbaumNode[] | null; + /** Render a checkbox or radio button @see {@link selected}. */ checkbox?: CheckboxOption; + /** If true, this node's children are considerd radio buttons. + * @see {@link isRadio}. + */ radiogroup?: boolean; /** If true, (in grid mode) no cells are rendered, except for the node title.*/ colspan?: boolean; + /** Icon definition. */ icon?: IconOption; + /** Lazy loading flag. + * @see {@link isLazy}, {@link isLoaded}, {@link isUnloaded}. + */ lazy?: boolean; /** Expansion state. * @see {@link isExpandable}, {@link isExpanded}, {@link setExpanded}. */ @@ -567,7 +583,11 @@ declare module "wb_node" { * @see {@link isSelected}, {@link setSelected}, {@link toggleSelected}. */ selected?: boolean; unselectable?: boolean; + /** Node type (used for styling). + * @see {@link Wunderbaum.types}. + */ type?: string; + /** Tooltip definition (`true`: use node's title). */ tooltip?: string | boolean; /** Additional classes added to `div.wb-row`. * @see {@link hasClass}, {@link setClass}. */ @@ -757,7 +777,7 @@ declare module "wb_node" { hasChildren(): boolean; /** Return true if node has className set. */ hasClass(className: string): boolean; - /** Return true if node ist the currently focused node. */ + /** Return true if node ist the currently focused node. @since 0.9.0 */ hasFocus(): boolean; /** Return true if this node is the currently active tree node. */ isActive(): boolean; @@ -939,11 +959,11 @@ declare module "wb_node" { * * @param name name of the option property (on node and tree) * @param defaultValue return this if nothing else matched - * {@link Wunderbaum.getOption|Wunderbaum.getOption()} + * {@link Wunderbaum.getOption|Wunderbaum.getOption} */ getOption(name: string, defaultValue?: any): any; /** Make sure that this node is visible in the viewport. - * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo()} + * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo} */ scrollIntoView(options?: ScrollIntoViewOptions): Promise; /** @@ -971,9 +991,9 @@ declare module "wb_node" { * and column content. It can be reduced to 'ChangeType.status' if only * active/focus/selected state has changed. * - * This method will eventually call {@link WunderbaumNode._render()} with + * This method will eventually call {@link WunderbaumNode._render} with * default options, but may be more consistent with the tree's - * {@link Wunderbaum.update()} API. + * {@link Wunderbaum.update} API. */ update(change?: ChangeType): void; /** @@ -1014,6 +1034,18 @@ declare module "wb_node" { * @param {boolean} deep pass true to sort all descendant nodes recursively */ sortChildren(cmp?: SortCallback | null, deep?: boolean): void; + /** + * Renumber nodes `_nativeIndex`. This is useful to allow to restore the + * order after sorting a column. + * This method is automatically called after loading new child nodes. + * @since 0.11.0 + */ + resetNativeChildOrder(options?: ResetOrderOptions): void; + /** + * Convenience method to implement column sorting. + * @since 0.11.0 + */ + sortByProperty(options: SortByPropertyOptions): void; /** * Trigger `modifyChild` event on a parent to signal that a child was modified. * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ... @@ -1067,7 +1099,7 @@ declare module "wb_options" { * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ - import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, EditOptionsType, FilterOptionsType, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbCancelableEventResultType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbErrorEventType, WbExpandEventType, WbIconBadgeCallback, WbIconBadgeEventResultType, WbInitEventType, WbKeydownEventType, WbNodeData, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbSelectEventType, WbTreeEventType } from "types"; + import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, EditOptionsType, FilterOptionsType, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbButtonClickEventType, WbCancelableEventResultType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbErrorEventType, WbExpandEventType, WbIconBadgeCallback, WbIconBadgeEventResultType, WbInitEventType, WbKeydownEventType, WbNodeData, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbSelectEventType, WbTreeEventType } from "types"; /** * Available options for {@link wunderbaum.Wunderbaum}. * @@ -1239,11 +1271,30 @@ declare module "wb_options" { * Default: false */ fixedCol?: boolean; + /** + * Default value for ColumnDefinition.filterable option. + * Default: false + * @since 0.11.0 + */ + columnsFilterable?: boolean; + /** + * Default value for ColumnDefinition.menu option. + * Default: false + * @since 0.11.0 + */ + columnsMenu?: boolean; /** * Default value for ColumnDefinition.resizable option. * Default: false + * @since 0.10.0 + */ + columnsResizable?: boolean; + /** + * Default value for ColumnDefinition.sortable option. + * Default: false + * @since 0.11.0 */ - resizableColumns?: boolean; + columnsSortable?: boolean; /** * Default: "multi" */ @@ -1279,11 +1330,15 @@ declare module "wb_options" { */ beforeExpand?: (e: WbExpandEventType) => WbCancelableEventResultType; /** - * * Return `false` to prevent default handling, i.e. (de)selecting the node. * @category Callback */ beforeSelect?: (e: WbSelectEventType) => WbCancelableEventResultType; + /** + * Return `false` to prevent default handling, i.e. (de)selecting the node. + * @category Callback + */ + buttonClick?: (e: WbButtonClickEventType) => void; /** * * @category Callback @@ -1462,11 +1517,20 @@ declare module "types" { export type NodeAnyCallback = (node: WunderbaumNode) => any; /** A callback that receives a node instance and returns a string value. */ export type NodeStringCallback = (node: WunderbaumNode) => string; + /** A callback that receives a node instance and property name returns a value. */ + export type NodePropertyGetterCallback = (node: WunderbaumNode, propName: string) => any; /** A callback that receives a node instance and returns an iteration modifier. */ export type NodeVisitCallback = (node: WunderbaumNode) => NodeVisitResponse; - /** A callback that receives a node instance and returns a string value. */ + /** + * Returned by `NodeVisitCallback` to control iteration. + * `false` stops iteration, `skip` skips descendants but continues. + * All other values continue iteration. + */ export type NodeVisitResponse = "skip" | boolean | void; - /** A callback that receives a node-data dictionary and a node instance and returns an iteration modifier. */ + /** + * A callback that receives a node-data dictionary and a node instance and + * returns an iteration modifier. + */ export type NodeToDictCallback = (dict: WbNodeData, node: WunderbaumNode) => NodeVisitResponse; /** A callback that receives a node instance and returns a string value. */ export type NodeSelectCallback = (node: WunderbaumNode) => boolean | void; @@ -1616,6 +1680,11 @@ declare module "types" { export interface WbSelectEventType extends WbNodeEventType { flag: boolean; } + export interface WbButtonClickEventType extends WbTreeEventType { + info: WbEventInfo; + /** The associated command, e.g. 'menu', 'sort', 'filter', ... */ + command: string; + } export interface WbRenderEventType extends WbNodeEventType { /** * True if the node's markup was not yet created. In this case the render @@ -1697,28 +1766,53 @@ declare module "types" { */ minWidth?: string | number; /** Allow user to resize the column. - * Default: false. + * @default false (or global tree option `columnsSortable`) + * @see {@link WunderbaumOptions.columnsResizable}. + * @since 0.10.0 */ resizable?: boolean; /** Optional custom column width when user resized by mouse drag. * Default: unset. */ customWidthPx?: number; - /** Allow user to sort the column. Default: false.
- * **Note:** Sorting is not implemented yet. + /** Display a 'filter' button in the column header. Default: false.
+ * Note: The actual filtering must be implemented in the `buttonClick()` event. + * @default false (or global tree option `columnsFilterable`) + * @since 0.11.0 + */ + filterable?: boolean; + /** . + * Default: inactive.
+ * Note: The actual filtering must be implemented in the `buttonClick()` event. + */ + filterActive?: boolean; + /** Display a 'sort' button in the column header. Default: false.
+ * Note: The actual sorting must be implemented in the `buttonClick()` event. + * @default false (or global tree option `columnsSortable`) + * @see {@link WunderbaumOptions.columnsSortable}. + * @since 0.11.0 */ sortable?: boolean; /** Optional custom column sort orde when user clicked the sort icon. - * Default: unset.
- * **Note:** Sorting is not implemented yet. + * Default: unset, e.g. not sorted.
+ * Note: The actual sorting must be implemented in the `buttonClick()` event. + * @since 0.11.0 */ sortOrder?: SortOrderType; + /** Display a menu icon that may open a context menu for this column. + * Note: The actual functionality must be implemented in the `buttonClick()` event. + * @default false (or global tree option `columnsMenu`) + * @see {@link WunderbaumOptions.columnsMenu}. + * @since 0.11.0 + */ + menu?: boolean; /** Optional class names that are added to all `span.wb-col` header AND data - * elements of that column. + * elements of that column. Separate multiple classes with space. */ classes?: string; /** If `headerClasses` is a set, it will be used for the header element only * (unlike `classes`, which is used for body and header cells). + * Separate multiple classes with space. */ headerClasses?: string; /** Optional HTML content that is rendered into all `span.wb-col` elements of that column.*/ @@ -1780,7 +1874,7 @@ declare module "types" { export type NodeFilterResponse = "skip" | "branch" | boolean | void; export type NodeFilterCallback = (node: WunderbaumNode) => NodeFilterResponse; /** - * Possible values for {@link WunderbaumNode.update()} and {@link Wunderbaum.update()}. + * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}. */ export enum ChangeType { /** Re-render the whole viewport, headers, and all rows. */ @@ -1806,7 +1900,7 @@ declare module "types" { redraw = "redraw", scroll = "scroll" } - /** Possible values for {@link WunderbaumNode.setStatus()}. */ + /** Possible values for {@link WunderbaumNode.setStatus}. */ export enum NodeStatusType { ok = "ok", loading = "loading", @@ -1831,7 +1925,7 @@ declare module "types" { startCell = "startCell",// Start in cell-nav mode, but allow row mode row = "row" } - /** Possible values for {@link WunderbaumNode.addChildren()}. */ + /** Possible values for {@link WunderbaumNode.addChildren}. */ export interface AddChildrenOptions { /** Insert children before this node (or index) * @default undefined or null: append as last child @@ -1846,11 +1940,11 @@ declare module "types" { /** (@internal Internal use, do not set! ) */ _level?: number; } - /** Possible values for {@link Wunderbaum.applyCommand()} and {@link WunderbaumNode.applyCommand()}. */ + /** Possible values for {@link Wunderbaum.applyCommand} and {@link WunderbaumNode.applyCommand}. */ export interface ApplyCommandOptions { [key: string]: unknown; } - /** Possible values for {@link Wunderbaum.expandAll()} and {@link WunderbaumNode.expandAll()}. */ + /** Possible values for {@link Wunderbaum.expandAll} and {@link WunderbaumNode.expandAll}. */ export interface ExpandAllOptions { /** Restrict expand level @default 99 */ depth?: number; @@ -1862,7 +1956,7 @@ declare module "types" { keepActiveNodeVisible?: boolean; } /** - * Possible option values for {@link Wunderbaum.filterNodes()}. + * Possible option values for {@link Wunderbaum.filterNodes}. * The defaults are inherited from the tree instances ´tree.options.filter` * settings (see also {@link FilterOptionsType}). */ @@ -1887,7 +1981,7 @@ declare module "types" { /** Display a 'no data' status node if result is empty @default true */ noData?: boolean | string; } - /** Possible values for {@link WunderbaumNode.makeVisible()}. */ + /** Possible values for {@link WunderbaumNode.makeVisible}. */ export interface MakeVisibleOptions { /** Do not animate expand (currently not implemented). @default false */ noAnimation?: boolean; @@ -1896,14 +1990,14 @@ declare module "types" { /** Do not send events. @default false */ noEvents?: boolean; } - /** Possible values for {@link WunderbaumNode.navigate()}. */ + /** Possible values for {@link WunderbaumNode.navigate}. */ export interface NavigateOptions { /** Activate the new node (otherwise focus only). @default true */ activate?: boolean; /** Originating event (e.g. KeyboardEvent) if any. */ event?: Event; } - /** Possible values for {@link WunderbaumNode._render()}. */ + /** Possible values for {@link WunderbaumNode._render}. */ export interface RenderOptions { /** Which parts need update? @default ChangeType.data */ change?: ChangeType; @@ -1920,7 +2014,7 @@ declare module "types" { /** @internal. @default true */ resizeCols?: boolean; } - /** Possible values for {@link WunderbaumNode.scrollIntoView()} `options` argument. */ + /** Possible values for {@link WunderbaumNode.scrollIntoView} `options` argument. */ export interface ScrollIntoViewOptions { /** Do not animate (currently not implemented). @default false */ noAnimation?: boolean; @@ -1931,7 +2025,7 @@ declare module "types" { /** Add N pixel offset at top. */ ofsY?: number; } - /** Possible values for {@link Wunderbaum.scrollTo()} `options` argument. */ + /** Possible values for {@link Wunderbaum.scrollTo} `options` argument. */ export interface ScrollToOptions extends ScrollIntoViewOptions { /** Which node to scroll into the viewport.*/ node: WunderbaumNode; @@ -1946,7 +2040,7 @@ declare module "types" { focusTree?: boolean; /** Optional original event that will be passed to the (de)activate handler. */ event?: Event; - /** Also call {@link Wunderbaum.setColumn()}. */ + /** Also call {@link Wunderbaum.setColumn}. */ colIdx?: number | string; /** * Focus embedded input control of the grid cell if any (requires colIdx >= 0). @@ -1955,7 +2049,7 @@ declare module "types" { */ edit?: boolean; } - /** Possible values for {@link Wunderbaum.setColumn()} `options` argument. */ + /** Possible values for {@link Wunderbaum.setColumn} `options` argument. */ export interface SetColumnOptions { /** * Focus embedded input control of the grid cell if any . @@ -1979,12 +2073,12 @@ declare module "types" { /** Scroll up to bring expanded nodes into viewport. @default false */ scrollIntoView?: boolean; } - /** Possible values for {@link WunderbaumNode.update()} `options` argument. */ + /** Possible values for {@link WunderbaumNode.update} `options` argument. */ export interface UpdateOptions { /** Force immediate redraw instead of throttled/async mode. @default false */ immediate?: boolean; } - /** Possible values for {@link WunderbaumNode.setSelected()} `options` argument. */ + /** Possible values for {@link WunderbaumNode.setSelected} `options` argument. */ export interface SetSelectedOptions { /** Ignore restrictions, e.g. (`unselectable`). @default false */ force?: boolean; @@ -1995,14 +2089,58 @@ declare module "types" { /** Called for every node. May return false to prevent action. @default null */ callback?: NodeSelectCallback; } - /** Possible values for {@link WunderbaumNode.setStatus()} `options` argument. */ + /** Possible values for {@link WunderbaumNode.setStatus} `options` argument. */ export interface SetStatusOptions { /** Displayed as status node title. */ message?: string; /** Used as tooltip. */ details?: string; } - /** Options passed to {@link Wunderbaum.visitRows()}. */ + /** + * Possible values for {@link WunderbaumNode.sortByProperty} `options` argument. + */ + export interface ResetOrderOptions { + /** Sort descendants recursively. @default true */ + recursive?: boolean; + /** The name of the node property that will be renumbered. + * @default `_nativeIndex`. + */ + propName?: string; + } + /** + * Possible values for {@link WunderbaumNode.sortByProperty} `options` argument. + */ + export interface SortByPropertyOptions { + /** Column ID as defined in `tree.columns` definition. Required if updateColInfo is true.*/ + colId?: string; + /** The name of the node property that will be used for sorting. + * @default use the `colId` as property name. + */ + propName?: string; + /** Sort order. @default Use value from column definition (rotated).*/ + order?: SortOrderType; + /** + * Sort by this property if order is `undefined`. + * See also {@link WunderbaumNode.resetNativeChildOrder}. + * @default `_nativeIndex`. + */ + nativeOrderPropName?: string; + /** Sort string values case insensitive. @default false */ + caseInsensitive?: boolean; + /** Sort descendants recursively. @default true */ + deep?: boolean; + /** + * Rotate sort order (asc -> desc -> none) before sorting. + * Update the sort icons in the column header + * Note: + * Sorting is done in-place. There is no 'unsorted' state, but we can + * call `setCurrentSortOrder()` to renumber the `node._sortIdx` property, + * which will be used as sort key, when `order` is `undefined`. + * @default false + */ + updateColInfo?: boolean; + } + /** Options passed to {@link Wunderbaum.visitRows}. */ export interface VisitRowsOptions { /** Skip filtered nodes and children of collapsed nodes. @default false */ includeHidden?: boolean; @@ -2208,7 +2346,7 @@ declare module "types" { */ scrollSpeed?: 5; /** - * Optional callback passed to `toDict` on dragStart @since 2.38 + * Optional callback passed to `toDict` on dragStart * @default null * @category Callback */ @@ -2549,7 +2687,7 @@ declare module "wunderbaum" { */ import * as util from "util"; import { ExtensionsDict, WunderbaumExtension } from "wb_extension_base"; - import { AddChildrenOptions, ApplyCommandOptions, ApplyCommandType, ChangeType, ColumnDefinitionList, DynamicBoolOption, DynamicCheckboxOption, DynamicIconOption, DynamicStringOption, DynamicTooltipOption, ExpandAllOptions, FilterModeType, FilterNodesOptions, MatcherCallback, NavModeEnum, NodeFilterCallback, NodeStatusType, NodeStringCallback, NodeToDictCallback, NodeTypeDefinitionMap, NodeVisitCallback, RenderFlag, ScrollToOptions, SetActiveOptions, SetColumnOptions, SetStatusOptions, SortCallback, SourceType, UpdateOptions, VisitRowsOptions, WbEventInfo, WbNodeData } from "types"; + import { AddChildrenOptions, ApplyCommandOptions, ApplyCommandType, ChangeType, ColumnDefinitionList, DynamicBoolOption, DynamicCheckboxOption, DynamicIconOption, DynamicStringOption, DynamicTooltipOption, ExpandAllOptions, FilterModeType, FilterNodesOptions, MatcherCallback, NavModeEnum, NodeFilterCallback, NodeStatusType, NodeStringCallback, NodeToDictCallback, NodeTypeDefinitionMap, NodeVisitCallback, RenderFlag, ScrollToOptions, SetActiveOptions, SetColumnOptions, SetStatusOptions, SortByPropertyOptions, SortCallback, SourceType, UpdateOptions, VisitRowsOptions, WbEventInfo, WbNodeData } from "types"; import { WunderbaumNode } from "wb_node"; import { WunderbaumOptions } from "wb_options"; import { DebouncedFunction } from "debounce"; @@ -2758,7 +2896,7 @@ declare module "wunderbaum" { hasHeader(): boolean; /** Run code, but defer rendering of viewport until done. * - * ``` + * ```js * tree.runWithDeferredUpdate(() => { * return someFuncThatWouldUpdateManyNodes(); * }); @@ -2929,7 +3067,7 @@ declare module "wunderbaum" { logTimeEnd(label: string): void; /** Write to `console.warn` with tree name as prefix with if opts.debugLevel >= 2. */ logWarn(...args: any[]): void; - /** Reset column widths to default. */ + /** Reset column widths to default. @since 0.10.0 */ resetColumns(): void; /** * Make sure that this node is vertically scrolled into the viewport. @@ -2965,14 +3103,14 @@ declare module "wunderbaum" { * The render operation is async and debounced unless the `immediate` option * is set. * - * Use {@link WunderbaumNode.update()} if only a single node has changed, - * or {@link WunderbaumNode._render()}) to pass special options. + * Use {@link WunderbaumNode.update} if only a single node has changed, + * or {@link WunderbaumNode._render}) to pass special options. */ update(change: ChangeType, options?: UpdateOptions): void; /** * Update a row to reflect a single node's modification. * - * @see {@link WunderbaumNode.update()}, {@link WunderbaumNode._render()} + * @see {@link WunderbaumNode.update}, {@link WunderbaumNode._render} */ update(change: ChangeType, node: WunderbaumNode, options?: UpdateOptions): void; /** Disable mouse and keyboard interaction (return prev. state). */ @@ -3000,6 +3138,12 @@ declare module "wunderbaum" { * @param {boolean} deep pass true to sort all descendant nodes recursively */ sortChildren(cmp?: SortCallback | null, deep?: boolean): void; + /** + * Convenience method to implement column sorting. + * @see {@link WunderbaumNode.sortByProperty}. + * @since 0.11.0 + */ + sortByProperty(options: SortByPropertyOptions): void; /** Convert tree to an array of plain objects. * * @param callback is called for every node, in order to allow @@ -3014,6 +3158,7 @@ declare module "wunderbaum" { * Return true if at least one column width changed. */ _updateColumnWidths(): boolean; + protected _insertIcon(icon: string, elem: HTMLElement): void; /** Create/update header markup from `this.columns` definition. * @internal */ @@ -3106,6 +3251,7 @@ declare module "wunderbaum" { /** * Return the number of nodes that match the current filter. * @see {@link Wunderbaum.filterNodes} + * @since 0.9.0 */ countMatches(): number; /** diff --git a/dist/wunderbaum.esm.js b/dist/wunderbaum.esm.js index ade1730..49005cc 100644 --- a/dist/wunderbaum.esm.js +++ b/dist/wunderbaum.esm.js @@ -288,7 +288,7 @@ function throttle(func, wait = 0, options = {}) { /*! * Wunderbaum - util * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** @module util */ /** Readable names for `MouseEvent.button` */ @@ -920,6 +920,11 @@ function getOption(opts, name, defaultValue = undefined) { // Use value from value options dict, fallback do default return value !== null && value !== void 0 ? value : defaultValue; } +/** Return the next value from a list of values (rotating). @since 0.11 */ +function rotate(value, values) { + const idx = values.indexOf(value); + return values[(idx + 1) % values.length]; +} /** Convert an Array or space-separated string to a Set. */ function toSet(val) { if (val instanceof Set) { @@ -948,12 +953,7 @@ function toSet(val) { * const width = util.toPixel(x, y, 100); // returns 123 * ``` */ -function toPixel( -// val: string | number | undefined | null, -...defaults) { - // if (typeof val === "number") { - // return val; - // } +function toPixel(...defaults) { for (const d of defaults) { if (typeof d === "number") { return d; @@ -972,12 +972,7 @@ function toPixel( * const value = util.toBool(opts.foo, opts.flag, false); // returns true * ``` */ -function toBool( -// val: boolean | undefined | null, -...boolDefaults) { - // if (val != null) { - // return !!val; - // } +function toBool(...boolDefaults) { for (const d of boolDefaults) { if (d != null) { return !!d; @@ -1121,6 +1116,7 @@ var util = /*#__PURE__*/Object.freeze({ noop: noop, onEvent: onEvent, overrideMethod: overrideMethod, + rotate: rotate, setElemDisplay: setElemDisplay, setTimeoutPromise: setTimeoutPromise, setValueToElem: setValueToElem, @@ -1136,10 +1132,10 @@ var util = /*#__PURE__*/Object.freeze({ /*! * Wunderbaum - types * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** - * Possible values for {@link WunderbaumNode.update()} and {@link Wunderbaum.update()}. + * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}. */ var ChangeType; (function (ChangeType) { @@ -1168,7 +1164,7 @@ var RenderFlag; RenderFlag["redraw"] = "redraw"; RenderFlag["scroll"] = "scroll"; })(RenderFlag || (RenderFlag = {})); -/** Possible values for {@link WunderbaumNode.setStatus()}. */ +/** Possible values for {@link WunderbaumNode.setStatus}. */ var NodeStatusType; (function (NodeStatusType) { NodeStatusType["ok"] = "ok"; @@ -1200,7 +1196,7 @@ var NavModeEnum; /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension { constructor(tree, id, defaults) { @@ -1259,7 +1255,7 @@ class WunderbaumExtension { /*! * Wunderbaum - ext-filter * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const START_MARKER = "\uFFF7"; const END_MARKER = "\uFFF8"; @@ -1584,7 +1580,7 @@ function _markFuzzyMatchedChars(text, matches, escapeTitles = true) { /*! * Wunderbaum - ext-keynav * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const QUICKSEARCH_DELAY = 500; class KeynavExtension extends WunderbaumExtension { @@ -1948,7 +1944,7 @@ class KeynavExtension extends WunderbaumExtension { /*! * Wunderbaum - ext-logger * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class LoggerExtension extends WunderbaumExtension { constructor(tree) { @@ -1990,7 +1986,7 @@ class LoggerExtension extends WunderbaumExtension { /*! * Wunderbaum - common * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script /** @@ -2045,6 +2041,15 @@ const iconMaps = { folderOpen: "bi bi-folder2-open", folderLazy: "bi bi-folder-symlink", doc: "bi bi-file-earmark", + colSortable: "bi bi-chevron-expand", + // colSortable: "bi bi-arrow-down-up", + // colSortAsc: "bi bi-chevron-down", + // colSortDesc: "bi bi-chevron-up", + colSortAsc: "bi bi-arrow-down", + colSortDesc: "bi bi-arrow-up", + colFilter: "bi bi-filter-circle", + colFilterActive: "bi bi-filter-circle-fill wb-helper-invalid", + colMenu: "bi bi-three-dots-vertical", }, fontawesome6: { error: "fa-solid fa-triangle-exclamation", @@ -2063,6 +2068,12 @@ const iconMaps = { folderOpen: "fa-regular fa-folder-open", folderLazy: "fa-solid fa-folder-plus", doc: "fa-regular fa-file", + colSortable: "fa-solid fa-fw fa-sort", + colSortAsc: "fa-solid fa-fw fa-sort-up", + colSortDesc: "fa-solid fa-fw fa-sort-down", + colFilter: "fa-solid fa-fw fa-filter", + colFilterActive: "fa-solid fa-fw fa-filter wb-helper-invalid", + colMenu: "fa-solid fa-fw fa-ellipsis-v", }, }; /** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */ @@ -2111,7 +2122,7 @@ const KEY_TO_ACTION_DICT = { }; /** Return a callback that returns true if the node title matches the string * or regular expression. - * @see {@link WunderbaumNode.findAll()} + * @see {@link WunderbaumNode.findAll} */ function makeNodeTitleMatcher(match) { if (match instanceof RegExp) { @@ -2315,7 +2326,7 @@ function decompressSourceData(source) { /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const nodeMimeType = "application/x-wunderbaum-node"; class DndExtension extends WunderbaumExtension { @@ -2760,7 +2771,7 @@ class DndExtension extends WunderbaumExtension { /*! * Wunderbaum - drag_observer * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'. @@ -2909,7 +2920,7 @@ class DragObserver { /*! * Wunderbaum - ext-grid * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class GridExtension extends WunderbaumExtension { constructor(tree) { @@ -2926,7 +2937,7 @@ class GridExtension extends WunderbaumExtension { const colDef = info.colDef; const allow = colDef && this.tree.element.contains(e.dragElem) && - toBool(colDef.resizable, tree.options.resizableColumns, false); + toBool(colDef.resizable, tree.options.columnsResizable, false); // this.tree.log("dragstart", colDef, e, info); this.tree.element.classList.toggle("wb-col-resizing", !!allow); info.colElem.classList.toggle("wb-col-resizing", !!allow); @@ -3000,7 +3011,7 @@ class GridExtension extends WunderbaumExtension { /*! * Wunderbaum - deferred * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** * Implement a ES6 Promise, that exposes a resolve() and reject() method. @@ -3053,7 +3064,7 @@ class Deferred { /*! * Wunderbaum - wunderbaum_node * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** WunderbaumNode properties that can be passed with source data. * (Any other source properties will be stored as `node.data.PROP`.) @@ -3096,6 +3107,12 @@ class WunderbaumNode { * @see Use {@link setKey} to modify. */ this.refKey = undefined; + /** + * Array of child nodes (null for leaf nodes). + * For lazy nodes, this is `null` or ùndefined` until the children are loaded + * and leaf nodes may be `[]` (empty array). + * @see {@link hasChildren}, {@link addChildren}, {@link lazy}. + */ this.children = null; /** Additional classes added to `div.wb-row`. * @see {@link hasClass}, {@link setClass}. */ @@ -3683,7 +3700,7 @@ class WunderbaumNode { hasClass(className) { return this.classes ? this.classes.has(className) : false; } - /** Return true if node ist the currently focused node. */ + /** Return true if node ist the currently focused node. @since 0.9.0 */ hasFocus() { return this.tree.focusNode === this; } @@ -3905,6 +3922,8 @@ class WunderbaumNode { if (tree.options.selectMode === "hier") { this.fixSelection3FromEndNodes(); } + // Allow to un-sort nodes after sorting + this.resetNativeChildOrder(); this._callEvent("load"); } async _fetchWithOptions(source) { @@ -4848,7 +4867,7 @@ class WunderbaumNode { * * @param name name of the option property (on node and tree) * @param defaultValue return this if nothing else matched - * {@link Wunderbaum.getOption|Wunderbaum.getOption()} + * {@link Wunderbaum.getOption|Wunderbaum.getOption} */ getOption(name, defaultValue) { const tree = this.tree; @@ -4884,7 +4903,7 @@ class WunderbaumNode { return value !== null && value !== void 0 ? value : defaultValue; } /** Make sure that this node is visible in the viewport. - * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo()} + * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo} */ async scrollIntoView(options) { const opts = Object.assign({ node: this }, options); @@ -5023,9 +5042,9 @@ class WunderbaumNode { * and column content. It can be reduced to 'ChangeType.status' if only * active/focus/selected state has changed. * - * This method will eventually call {@link WunderbaumNode._render()} with + * This method will eventually call {@link WunderbaumNode._render} with * default options, but may be more consistent with the tree's - * {@link Wunderbaum.update()} API. + * {@link Wunderbaum.update} API. */ update(change = ChangeType.data) { assert(change === ChangeType.status || change === ChangeType.data, `Invalid change type ${change}`); @@ -5354,6 +5373,80 @@ class WunderbaumNode { this.tree.update(ChangeType.structure); // this.triggerModify("sort"); // TODO } + /** + * Renumber nodes `_nativeIndex`. This is useful to allow to restore the + * order after sorting a column. + * This method is automatically called after loading new child nodes. + * @since 0.11.0 + */ + resetNativeChildOrder(options) { + const { recursive = true, propName = "_nativeIndex" } = options !== null && options !== void 0 ? options : {}; + if (this.children) { + this.children.forEach((child, i) => { + child.data[propName] = i; + if (recursive && child.children) { + child.resetNativeChildOrder(options); + } + }); + } + } + /** + * Convenience method to implement column sorting. + * @since 0.11.0 + */ + sortByProperty(options) { + var _a, _b, _c; + const { caseInsensitive = true, deep = true, nativeOrderPropName = "_nativeIndex", updateColInfo = false, } = options; + let order; + let colDef; + if (updateColInfo) { + colDef = this.tree["_columnsById"][options.colId]; + assert(colDef, `Invalid colId specified: ${options.colId}`); + order = + (_a = options.order) !== null && _a !== void 0 ? _a : rotate(colDef.sortOrder, ["asc", "desc", undefined]); + for (const col of this.tree.columns) { + col.sortOrder = col === colDef ? order : undefined; + } + this.tree.update(ChangeType.colStructure); + } + else { + order = (_b = options.order) !== null && _b !== void 0 ? _b : "asc"; + } + let propName = (_c = options.propName) !== null && _c !== void 0 ? _c : (options.colId || ""); + if (propName === "*") { + propName = "title"; + } + if (order == null) { + propName = nativeOrderPropName; + order = "asc"; + } + this.logDebug(`sortByProperty(), propName=${propName}, ${order}`, options); + assert(propName, "No property name specified"); + const cmp = (a, b) => { + let av, bv; + if (NODE_DICT_PROPS.has(propName)) { + av = a[propName]; + bv = b[propName]; + } + else { + av = a.data[propName]; + bv = b.data[propName]; + } + if (caseInsensitive) { + if (typeof av === "string") { + av = av.toLowerCase(); + } + if (typeof bv === "string") { + bv = bv.toLowerCase(); + } + } + if (order === "desc") { + return av === bv ? 0 : av > bv ? -1 : 1; + } + return av === bv ? 0 : av > bv ? 1 : -1; + }; + return this.sortChildren(cmp, deep); + } /** * Trigger `modifyChild` event on a parent to signal that a child was modified. * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ... @@ -5462,7 +5555,7 @@ WunderbaumNode.sequence = 0; /*! * Wunderbaum - ext-edit * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ // const START_MARKER = "\uFFF7"; class EditExtension extends WunderbaumExtension { @@ -5793,8 +5886,8 @@ class EditExtension extends WunderbaumExtension { * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.10.1 - * @date Sat, 20 Jul 2024 13:53:46 GMT + * @version v0.11.0 + * @date Sun, 04 Aug 2024 15:35:53 GMT */ // import "./wunderbaum.scss"; class WbSystemRoot extends WunderbaumNode { @@ -5964,7 +6057,8 @@ class Wunderbaum { // Attach tree instance to
this.element._wb_tree = this; // Create header markup, or take it from the existing html - this.headerElement = this.element.querySelector("div.wb-header"); + this.headerElement = + this.element.querySelector("div.wb-header"); const wantHeader = opts.header == null ? this.columns.length > 1 : !!opts.header; if (this.headerElement) { // User existing header markup to define `this.columns` @@ -6001,8 +6095,10 @@ class Wunderbaum {
`; this.listContainerElement = this.element.querySelector("div.wb-list-container"); - this.nodeListElement = this.listContainerElement.querySelector("div.wb-node-list"); - this.headerElement = this.element.querySelector("div.wb-header"); + this.nodeListElement = + this.listContainerElement.querySelector("div.wb-node-list"); + this.headerElement = + this.element.querySelector("div.wb-header"); this.element.classList.toggle("wb-grid", this.columns.length > 1); this._initExtensions(); // --- apply initial options @@ -6059,6 +6155,16 @@ class Wunderbaum { this.update(ChangeType.resize); }); this.resizeObserver.observe(this.element); + onEvent(this.element, "click", ".wb-button,.wb-col-icon", (e) => { + var _a, _b; + const info = Wunderbaum.getEventInfo(e); + const command = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.command; + this._callEvent("buttonClick", { + event: e, + info: info, + command: command, + }); + }); onEvent(this.nodeListElement, "click", "div.wb-row", (e) => { const info = Wunderbaum.getEventInfo(e); const node = info.node; @@ -6639,7 +6745,7 @@ class Wunderbaum { } /** Run code, but defer rendering of viewport until done. * - * ``` + * ```js * tree.runWithDeferredUpdate(() => { * return someFuncThatWouldUpdateManyNodes(); * }); @@ -7117,13 +7223,17 @@ class Wunderbaum { console.warn(this.toString(), ...args); // eslint-disable-line no-console } } - /** Reset column widths to default. */ + /** Reset column widths to default. @since 0.10.0 */ resetColumns() { this.columns.forEach((col) => { delete col.customWidthPx; }); this.update(ChangeType.colStructure); } + // /** Renumber nodes `_nativeIndex`. @see {@link WunderbaumNode.resetNativeChildOrder} */ + // resetNativeChildOrder(options?: ResetOrderOptions) { + // this.root.resetNativeChildOrder(options); + // } /** * Make sure that this node is vertically scrolled into the viewport. * @@ -7438,6 +7548,14 @@ class Wunderbaum { sortChildren(cmp = nodeTitleSorter, deep = false) { this.root.sortChildren(cmp, deep); } + /** + * Convenience method to implement column sorting. + * @see {@link WunderbaumNode.sortByProperty}. + * @since 0.11.0 + */ + sortByProperty(options) { + this.root.sortByProperty(options); + } /** Convert tree to an array of plain objects. * * @param callback is called for every node, in order to allow @@ -7551,6 +7669,11 @@ class Wunderbaum { // } return modified; } + _insertIcon(icon, elem) { + const iconElem = document.createElement("i"); + iconElem.className = icon; + elem.appendChild(iconElem); + } /** Create/update header markup from `this.columns` definition. * @internal */ @@ -7561,6 +7684,7 @@ class Wunderbaum { if (!wantHeader) { return; } + const iconMap = this.iconMap; const colCount = this.columns.length; const headerRow = this.headerElement.querySelector(".wb-row"); assert(headerRow, "Expected a row in header element"); @@ -7579,23 +7703,54 @@ class Wunderbaum { else { col.classes ? colElem.classList.add(...col.classes.split(" ")) : 0; } - const title = escapeHtml(col.title || col.id); + // Add tooltip to column title let tooltip = ""; if (col.tooltip) { tooltip = escapeTooltip(col.tooltip); tooltip = ` title="${tooltip}"`; } - let resizer = ""; + // Add column header icons + let addMarkup = ""; + // NOTE: we use CSS float: right to align icons, so they must be added in + // reverse order + if (toBool(col.menu, this.options.columnsMenu, false)) { + const iconClass = "wb-col-icon-menu " + iconMap.colMenu; + const icon = ``; + addMarkup += icon; + } + if (toBool(col.sortable, this.options.columnsSortable, false)) { + let iconClass = "wb-col-icon-sort " + iconMap.colSortable; + if (col.sortOrder) { + iconClass += `wb-col-sort-${col.sortOrder}`; + iconClass += + col.sortOrder === "asc" ? iconMap.colSortAsc : iconMap.colSortDesc; + } + const icon = ``; + addMarkup += icon; + } + if (toBool(col.filterable, this.options.columnsFilterable, false)) { + colElem.classList.toggle("wb-col-filter", !!col.filterActive); + let iconClass = "wb-col-icon-filter " + iconMap.colFilter; + if (col.filterActive) { + iconClass += iconMap.colFilterActive; + } + const icon = ``; + addMarkup += icon; + } + // Add resizer to all but the last column if (i < colCount - 1) { - if (toBool(col.resizable, this.options.resizableColumns, false)) { - resizer = + if (toBool(col.resizable, this.options.columnsResizable, false)) { + addMarkup += ''; } else { - resizer = ''; + addMarkup += ''; } } - colElem.innerHTML = `${title}${resizer}`; + // Create column header + const title = escapeHtml(col.title || col.id); + colElem.innerHTML = `${title}${addMarkup}`; + // Highlight active column if (this.isCellNav()) { colElem.classList.toggle("wb-active", i === this.activeColIdx); } @@ -8012,6 +8167,7 @@ class Wunderbaum { /** * Return the number of nodes that match the current filter. * @see {@link Wunderbaum.filterNodes} + * @since 0.9.0 */ countMatches() { return this.extensions.filter.countMatches(); @@ -8044,7 +8200,7 @@ class Wunderbaum { } Wunderbaum.sequence = 0; /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */ -Wunderbaum.version = "v0.10.1"; // Set to semver by 'grunt release' +Wunderbaum.version = "v0.11.0"; // Set to semver by 'grunt release' /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */ Wunderbaum.util = util; diff --git a/dist/wunderbaum.esm.min.js b/dist/wunderbaum.esm.min.js index 688c233..6ac3538 100644 --- a/dist/wunderbaum.esm.min.js +++ b/dist/wunderbaum.esm.min.js @@ -3,72 +3,72 @@ * MIT License: https://raw.githubusercontent.com/lodash/lodash/4.17.21-npm/LICENSE * Modified for TypeScript type annotations. */ -const freeGlobal="object"==typeof global&&null!==global&&global.Object===Object&&global,freeGlobalThis="object"==typeof globalThis&&null!==globalThis&&globalThis.Object==Object&&globalThis,freeSelf="object"==typeof self&&null!==self&&self.Object===Object&&self,root=freeGlobalThis||freeGlobal||freeSelf||Function("return this")();function isObject(e){const t=typeof e;return null!=e&&("object"===t||"function"===t)}function debounce(e,t=0,i={}){let s,n,r,o,l,a,d=0,c=!1,h=!1,u=!0;const p=!t&&0!==t&&"function"==typeof root.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){const i=s,r=n;return s=n=void 0,d=t,o=e.apply(r,i),o}function g(e,t){return p?(root.cancelAnimationFrame(l),root.requestAnimationFrame(e)):setTimeout(e,t)}function m(e){const i=e-a;return void 0===a||i>=t||i<0||h&&e-d>=r}function v(){const e=Date.now();if(m(e))return y(e);l=g(v,function(e){const i=e-d,s=t-(e-a);return h?Math.min(s,r-i):s}(e))}function y(e){return l=void 0,u&&s?f(e):(s=n=void 0,o)}function b(...e){const i=Date.now(),r=m(i);if(s=e,n=this,a=i,r){if(void 0===l)return function(e){return d=e,l=g(v,t),c?f(e):o}(a);if(h)return l=g(v,t),f(a)}return void 0===l&&(l=g(v,t)),o}return t=+t||0,isObject(i)&&(c=!!i.leading,h="maxWait"in i,r=h?Math.max(+i.maxWait||0,t):r,u="trailing"in i?!!i.trailing:u),b.cancel=function(){void 0!==l&&function(e){if(p)return root.cancelAnimationFrame(e);clearTimeout(e)}(l),d=0,s=a=n=l=void 0},b.flush=function(){return void 0===l?o:y(Date.now())},b.pending=function(){return void 0!==l},b}function throttle(e,t=0,i={}){let s=!0,n=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return isObject(i)&&(s="leading"in i?!!i.leading:s,n="trailing"in i?!!i.trailing:n),debounce(e,t,{leading:s,trailing:n,maxWait:t})} +const freeGlobal="object"==typeof global&&null!==global&&global.Object===Object&&global,freeGlobalThis="object"==typeof globalThis&&null!==globalThis&&globalThis.Object==Object&&globalThis,freeSelf="object"==typeof self&&null!==self&&self.Object===Object&&self,root=freeGlobalThis||freeGlobal||freeSelf||Function("return this")();function isObject(e){const t=typeof e;return null!=e&&("object"===t||"function"===t)}function debounce(e,t=0,i={}){let s,n,r,o,l,a,d=0,c=!1,h=!1,u=!0;const p=!t&&0!==t&&"function"==typeof root.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){const i=s,r=n;return s=n=void 0,d=t,o=e.apply(r,i),o}function g(e,t){return p?(root.cancelAnimationFrame(l),root.requestAnimationFrame(e)):setTimeout(e,t)}function m(e){const i=e-a;return void 0===a||i>=t||i<0||h&&e-d>=r}function v(){const e=Date.now();if(m(e))return b(e);l=g(v,function(e){const i=e-d,s=t-(e-a);return h?Math.min(s,r-i):s}(e))}function b(e){return l=void 0,u&&s?f(e):(s=n=void 0,o)}function y(...e){const i=Date.now(),r=m(i);if(s=e,n=this,a=i,r){if(void 0===l)return function(e){return d=e,l=g(v,t),c?f(e):o}(a);if(h)return l=g(v,t),f(a)}return void 0===l&&(l=g(v,t)),o}return t=+t||0,isObject(i)&&(c=!!i.leading,h="maxWait"in i,r=h?Math.max(+i.maxWait||0,t):r,u="trailing"in i?!!i.trailing:u),y.cancel=function(){void 0!==l&&function(e){if(p)return root.cancelAnimationFrame(e);clearTimeout(e)}(l),d=0,s=a=n=l=void 0},y.flush=function(){return void 0===l?o:b(Date.now())},y.pending=function(){return void 0!==l},y}function throttle(e,t=0,i={}){let s=!0,n=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return isObject(i)&&(s="leading"in i?!!i.leading:s,n="trailing"in i?!!i.trailing:n),debounce(e,t,{leading:s,trailing:n,maxWait:t})} /*! * Wunderbaum - util * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const MOUSE_BUTTONS={0:"",1:"left",2:"middle",3:"right",4:"back",5:"forward"},MAX_INT=9007199254740991,userInfo=_getUserInfo(),isMac=userInfo.isMac,REX_HTML=/[&<>"'/]/g,REX_TOOLTIP=/[<>"'/]/g,ENTITY_MAP={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};class ValidationError extends Error{constructor(e){super(e),this.name="ValidationError"}}let Deferred$1=class{constructor(){this.thens=[],this.catches=[],this.status=""}resolve(e){if(this.status)throw new Error("already settled");this.status="resolved",this.resolvedValue=e,this.thens.forEach((t=>t(e))),this.thens=[]}reject(e){if(this.status)throw new Error("already settled");this.status="rejected",this.rejectedError=e,this.catches.forEach((t=>t(e))),this.catches=[]}then(e){"resolved"===status?e(this.resolvedValue):this.thens.unshift(e)}catch(e){"rejected"===this.status?e(this.rejectedError):this.catches.unshift(e)}promise(){return{then:this.then,catch:this.catch}}};function assert(e,t){if(!e)throw t=t||"Assertion failed.",new Error(t)}function _getUserInfo(){const e=navigator;return{isMac:/Mac/.test(e.platform)}}function documentReady(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}function documentReadyPromise(){return new Promise((e=>{documentReady(e)}))}function each(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&error("Not implemented"),e}function getValueFromElem(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return getValueFromElem(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function setValueToElem(e,t){const i=e.tagName;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,s=i.querySelector("input,select");if(s)return setValueToElem(s,t);i.innerText=""+t}else if("INPUT"===i){const i=e,s=i.type;switch(s){case"checkbox":i.indeterminate=null===t,i.checked=!!t;break;case"date":case"month":case"time":case"week":case"datetime":case"datetime-local":i.valueAsDate=new Date(t);break;case"number":case"range":null==t?i.value=t:i.valueAsNumber=t;break;case"radio":error(`Not yet implemented: ${s}`);break;case"button":case"reset":case"submit":case"image":break;default:i.value=null!=t?t:""}}else if("SELECT"===i){const i=e;null==t?i.selectedIndex=-1:i.value=t}}function setElemDisplay(e,t){const i=elemFromSelector(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function elemFromHtml(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const _IGNORE_KEYS=new Set(["Alt","Control","Meta","Shift"]);function elemFromSelector(e){return e?"string"==typeof e?document.querySelector(e):e:null}function eventToString(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(MOUSE_BUTTONS[e.button]+i):"wheel"===i?s.push(i):_IGNORE_KEYS.has(t)||s.push(t),s.join("+")}function extend(...e){for(let t=1;t{e.addEventListener(t,(function(e){if(!n)return r(e);if(e.target){let t=e.target;if(t.matches(n))return r(e);if(t=t.closest(n),t)return r(e)}}))}))}function overrideMethod(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function setTimeoutPromise(e,t){return new Promise(((i,s)=>{setTimeout((()=>{try{i(e.apply(this))}catch(e){s(e)}}),t)}))}async function sleep(e){return new Promise((t=>setTimeout(t,e)))}function toggleCheckbox(e,t,i){const s=elemFromSelector(e);if(assert("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t}function getOption(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function toSet(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function toPixel(...e){for(const t of e){if("number"==typeof t)return t;if("string"==typeof t&&t.endsWith("px"))return parseInt(t,10);assert(null==t,`Expected a number or string like '123px': ${t}`)}throw new Error(`Expected a string like '123px': ${e}`)}function toBool(...e){for(const t of e)if(null!=t)return!!t;throw new Error("No default boolean value provided")}function type(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}function adaptiveThrottle(e,t){const i=Object.assign({minDelay:16,defaultDelay:200,maxDelay:5e3,delayFactor:2},t),s=Math.max(16,+i.minDelay),n=+i.maxDelay;let r=0,o=null,l=null;const a=(...t)=>{if(r)o=t,r+=1;else{r=1;const d=t;o=null;const c=Date.now();try{e.apply(this,d)}catch(e){console.error(e)}const h=Date.now()-c,u=Math.min(Math.max(s,h*i.delayFactor),n),p=Math.max(s,u-h);l=setTimeout((()=>{l=null,r=0,null!=o&&a.apply(this,o)}),p)}};return a.cancel=()=>{l&&(clearTimeout(l),l=null),o=null,r=0},a.pending=()=>!!l,a.flush=()=>{throw new Error("Not implemented")},a}var ChangeType,RenderFlag,NodeStatusType,NodeRegion,NavModeEnum,util=Object.freeze({__proto__:null,Deferred:Deferred$1,MAX_INT:MAX_INT,MOUSE_BUTTONS:MOUSE_BUTTONS,ValidationError:ValidationError,adaptiveThrottle:adaptiveThrottle,assert:assert,debounce:debounce,documentReady:documentReady,documentReadyPromise:documentReadyPromise,each:each,elemFromHtml:elemFromHtml,elemFromSelector:elemFromSelector,error:error,escapeHtml:escapeHtml,escapeRegex:escapeRegex,escapeTooltip:escapeTooltip,eventToString:eventToString,extend:extend,extractHtmlText:extractHtmlText,getOption:getOption,getValueFromElem:getValueFromElem,isArray:isArray,isEmptyObject:isEmptyObject,isFunction:isFunction,isMac:isMac,isPlainObject:isPlainObject,noop:noop,onEvent:onEvent,overrideMethod:overrideMethod,setElemDisplay:setElemDisplay,setTimeoutPromise:setTimeoutPromise,setValueToElem:setValueToElem,sleep:sleep,throttle:throttle,toBool:toBool,toPixel:toPixel,toSet:toSet,toggleCheckbox:toggleCheckbox,type:type}); + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */const MOUSE_BUTTONS={0:"",1:"left",2:"middle",3:"right",4:"back",5:"forward"},MAX_INT=9007199254740991,userInfo=_getUserInfo(),isMac=userInfo.isMac,REX_HTML=/[&<>"'/]/g,REX_TOOLTIP=/[<>"'/]/g,ENTITY_MAP={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};class ValidationError extends Error{constructor(e){super(e),this.name="ValidationError"}}let Deferred$1=class{constructor(){this.thens=[],this.catches=[],this.status=""}resolve(e){if(this.status)throw new Error("already settled");this.status="resolved",this.resolvedValue=e,this.thens.forEach((t=>t(e))),this.thens=[]}reject(e){if(this.status)throw new Error("already settled");this.status="rejected",this.rejectedError=e,this.catches.forEach((t=>t(e))),this.catches=[]}then(e){"resolved"===status?e(this.resolvedValue):this.thens.unshift(e)}catch(e){"rejected"===this.status?e(this.rejectedError):this.catches.unshift(e)}promise(){return{then:this.then,catch:this.catch}}};function assert(e,t){if(!e)throw t=t||"Assertion failed.",new Error(t)}function _getUserInfo(){const e=navigator;return{isMac:/Mac/.test(e.platform)}}function documentReady(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}function documentReadyPromise(){return new Promise((e=>{documentReady(e)}))}function each(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&error("Not implemented"),e}function getValueFromElem(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return getValueFromElem(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function setValueToElem(e,t){const i=e.tagName;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,s=i.querySelector("input,select");if(s)return setValueToElem(s,t);i.innerText=""+t}else if("INPUT"===i){const i=e,s=i.type;switch(s){case"checkbox":i.indeterminate=null===t,i.checked=!!t;break;case"date":case"month":case"time":case"week":case"datetime":case"datetime-local":i.valueAsDate=new Date(t);break;case"number":case"range":null==t?i.value=t:i.valueAsNumber=t;break;case"radio":error(`Not yet implemented: ${s}`);break;case"button":case"reset":case"submit":case"image":break;default:i.value=null!=t?t:""}}else if("SELECT"===i){const i=e;null==t?i.selectedIndex=-1:i.value=t}}function setElemDisplay(e,t){const i=elemFromSelector(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function elemFromHtml(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const _IGNORE_KEYS=new Set(["Alt","Control","Meta","Shift"]);function elemFromSelector(e){return e?"string"==typeof e?document.querySelector(e):e:null}function eventToString(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(MOUSE_BUTTONS[e.button]+i):"wheel"===i?s.push(i):_IGNORE_KEYS.has(t)||s.push(t),s.join("+")}function extend(...e){for(let t=1;t{e.addEventListener(t,(function(e){if(!n)return r(e);if(e.target){let t=e.target;if(t.matches(n))return r(e);if(t=t.closest(n),t)return r(e)}}))}))}function overrideMethod(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function setTimeoutPromise(e,t){return new Promise(((i,s)=>{setTimeout((()=>{try{i(e.apply(this))}catch(e){s(e)}}),t)}))}async function sleep(e){return new Promise((t=>setTimeout(t,e)))}function toggleCheckbox(e,t,i){const s=elemFromSelector(e);if(assert("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t}function getOption(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function rotate(e,t){const i=t.indexOf(e);return t[(i+1)%t.length]}function toSet(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function toPixel(...e){for(const t of e){if("number"==typeof t)return t;if("string"==typeof t&&t.endsWith("px"))return parseInt(t,10);assert(null==t,`Expected a number or string like '123px': ${t}`)}throw new Error(`Expected a string like '123px': ${e}`)}function toBool(...e){for(const t of e)if(null!=t)return!!t;throw new Error("No default boolean value provided")}function type(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}function adaptiveThrottle(e,t){const i=Object.assign({minDelay:16,defaultDelay:200,maxDelay:5e3,delayFactor:2},t),s=Math.max(16,+i.minDelay),n=+i.maxDelay;let r=0,o=null,l=null;const a=(...t)=>{if(r)o=t,r+=1;else{r=1;const d=t;o=null;const c=Date.now();try{e.apply(this,d)}catch(e){console.error(e)}const h=Date.now()-c,u=Math.min(Math.max(s,h*i.delayFactor),n),p=Math.max(s,u-h);l=setTimeout((()=>{l=null,r=0,null!=o&&a.apply(this,o)}),p)}};return a.cancel=()=>{l&&(clearTimeout(l),l=null),o=null,r=0},a.pending=()=>!!l,a.flush=()=>{throw new Error("Not implemented")},a}var ChangeType,RenderFlag,NodeStatusType,NodeRegion,NavModeEnum,util=Object.freeze({__proto__:null,Deferred:Deferred$1,MAX_INT:MAX_INT,MOUSE_BUTTONS:MOUSE_BUTTONS,ValidationError:ValidationError,adaptiveThrottle:adaptiveThrottle,assert:assert,debounce:debounce,documentReady:documentReady,documentReadyPromise:documentReadyPromise,each:each,elemFromHtml:elemFromHtml,elemFromSelector:elemFromSelector,error:error,escapeHtml:escapeHtml,escapeRegex:escapeRegex,escapeTooltip:escapeTooltip,eventToString:eventToString,extend:extend,extractHtmlText:extractHtmlText,getOption:getOption,getValueFromElem:getValueFromElem,isArray:isArray,isEmptyObject:isEmptyObject,isFunction:isFunction,isMac:isMac,isPlainObject:isPlainObject,noop:noop,onEvent:onEvent,overrideMethod:overrideMethod,rotate:rotate,setElemDisplay:setElemDisplay,setTimeoutPromise:setTimeoutPromise,setValueToElem:setValueToElem,sleep:sleep,throttle:throttle,toBool:toBool,toPixel:toPixel,toSet:toSet,toggleCheckbox:toggleCheckbox,type:type}); /*! * Wunderbaum - types * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */!function(e){e.any="any",e.data="data",e.colStructure="colStructure",e.resize="resize",e.row="row",e.structure="structure",e.status="status",e.scroll="scroll"}(ChangeType||(ChangeType={})),function(e){e.clearMarkup="clearMarkup",e.header="header",e.redraw="redraw",e.scroll="scroll"}(RenderFlag||(RenderFlag={})),function(e){e.ok="ok",e.loading="loading",e.error="error",e.noData="noData",e.paging="paging"}(NodeStatusType||(NodeStatusType={})),function(e){e.unknown="",e.checkbox="checkbox",e.column="column",e.expander="expander",e.icon="icon",e.prefix="prefix",e.title="title"}(NodeRegion||(NodeRegion={})),function(e){e.startRow="startRow",e.cell="cell",e.startCell="startCell",e.row="row"}(NavModeEnum||(NavModeEnum={})); /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension{constructor(e,t,i){this.enabled=!0,this.tree=e,this.id=t,this.treeOpts=e.options;const s=e.options;void 0===this.treeOpts[t]?s[t]=this.extensionOpts=extend({},i):(this.extensionOpts=extend({},i,s[t]),s[t]=this.extensionOpts),this.enabled=this.getPluginOption("enabled",!0)}init(){this.tree.element.classList.add("wb-ext-"+this.id)}getPluginOption(e,t){var i;return null!==(i=this.extensionOpts[e])&&void 0!==i?i:t}setPluginOption(e,t){this.extensionOpts[e]=t}setEnabled(e=!0){return this.setPluginOption("enabled",!!e)}onKeyEvent(e){}onRender(e){}} /*! * Wunderbaum - ext-filter * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */const START_MARKER="￷",END_MARKER="￸",RE_START_MARKER=new RegExp(escapeRegex("￷"),"g"),RE_END_MARTKER=new RegExp(escapeRegex("￸"),"g");class FilterExtension extends WunderbaumExtension{constructor(e){super(e,"filter",{autoApply:!0,autoExpand:!1,matchBranch:!1,connectInput:null,fuzzy:!1,hideExpanders:!1,highlight:!0,leavesOnly:!1,mode:"dim",noData:!0}),this.lastFilterArgs=null}init(){super.init();const e=this.getPluginOption("connectInput");e&&(this.queryInput=elemFromSelector(e),assert(this.queryInput,`Invalid 'filter.connectInput' option: ${e}.`),onEvent(this.queryInput,"input",debounce((e=>{this.filterNodes(this.queryInput.value.trim(),{})}),700)))}setPluginOption(e,t){if(super.setPluginOption(e,t),"mode"===e)this.tree.filterMode="hide"===t?"hide":"dim",this.tree.updateFilter()}_applyFilterNoUpdate(e,t){return this.tree.runWithDeferredUpdate((()=>this._applyFilterImpl(e,t)))}_applyFilterImpl(e,t){let i=0;const s=Date.now(),n=this.tree,r=n.options,o=r.autoCollapse,l=extend({},r.filter,t),a="hide"===l.mode,d=!!l.matchBranch,c=!!l.leavesOnly&&!d;let h,u;if("string"==typeof e||e instanceof RegExp){if(""===e)return n.logInfo("Passing an empty string as a filter is handled as clearFilter()."),this.clearFilter(),0;if(l.fuzzy){assert("string"==typeof e,"fuzzy filter must be a string");const t=e.split("").map(escapeRegex).reduce((function(e,t){return e+"([^"+t+"]*)"+t}),"");h=new RegExp(t,"i")}else if(e instanceof RegExp)h=e,u=e;else{const t=escapeRegex(e);h=new RegExp(t,"i"),u=new RegExp(t,"gi")}n.logDebug(`Filtering nodes by '${h}'`),e=e=>{if(!e.title)return!1;const t=e.title,i=h.exec(t);if(i&&l.highlight){let s;s=l.fuzzy?_markFuzzyMatchedChars(t,i,!0):t.replace(u,(function(e){return"￷"+e+"￸"})),e.titleWithHighlight=escapeHtml(s).replace(RE_START_MARKER,"").replace(RE_END_MARTKER,"")}return!!i}}return n.filterMode=l.mode,this.lastFilterArgs=arguments,n.element.classList.toggle("wb-ext-filter-hide",!!a),n.element.classList.toggle("wb-ext-filter-dim",!a),n.element.classList.toggle("wb-ext-filter-hide-expanders",!!l.hideExpanders),n.root.subMatchCount=0,n.visit((e=>{delete e.match,delete e.titleWithHighlight,e.subMatchCount=0})),n.setStatus(NodeStatusType.ok),r.autoCollapse=!1,n.visit((t=>{if(c&&null!=t.children)return;let s=e(t);if("skip"===s)return t.visit((function(e){e.match=!1}),!0),"skip";let n=!1;(d||"branch"===s)&&t.parent.match&&(s=!0,n=!0),s&&(i++,t.match=!0,t.visitParents((e=>{e!==t&&(e.subMatchCount+=1),!l.autoExpand||n||e.expanded||(e.setExpanded(!0,{noAnimation:!0,noEvents:!0}),e._filterAutoExpanded=!0)}),!0))})),r.autoCollapse=o,0===i&&l.noData&&a&&("string"==typeof l.noData?n.root.setStatus(NodeStatusType.noData,{message:l.noData}):n.root.setStatus(NodeStatusType.noData)),n.logDebug(`Filter '${e}' found ${i} nodes in ${Date.now()-s} ms.`),i}filterNodes(e,t){return this._applyFilterNoUpdate(e,t)}filterBranches(e,t){return assert(void 0===t.matchBranch,"filterBranches() is deprecated."),t.matchBranch=!0,this._applyFilterNoUpdate(e,t)}countMatches(){let e=0;return this.tree.visit((t=>{t.match&&!t.statusNodeType&&e++})),e}updateFilter(){var e;const t=this.tree;t.filterMode&&this.lastFilterArgs&&(null===(e=t.options.filter)||void 0===e?void 0:e.autoApply)?this._applyFilterNoUpdate.apply(this,this.lastFilterArgs):t.logWarn("updateFilter(): no filter active.")}clearFilter(){const e=this.tree;e.enableUpdate(!1),e.setStatus(NodeStatusType.ok),delete e.root.match,delete e.root.subMatchCount,e.visit((e=>{delete e.match,delete e.subMatchCount,delete e.titleWithHighlight,e._filterAutoExpanded&&e.expanded&&e.setExpanded(!1,{noAnimation:!0,noEvents:!0}),delete e._filterAutoExpanded})),e.filterMode=null,this.lastFilterArgs=null,e.element.classList.remove("wb-ext-filter-dim","wb-ext-filter-hide"),e.enableUpdate(!0)}}function _markFuzzyMatchedChars(e,t,i=!0){const s=[];for(let e=1;e"})),n.join("")} /*! * Wunderbaum - ext-keynav * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */const QUICKSEARCH_DELAY=500;class KeynavExtension extends WunderbaumExtension{constructor(e){super(e,"keynav",{})}_getEmbeddedInputElem(e){var t;let i=null;if(e&&null!=e.type)i=e;else{const e=null===(t=this.tree.getActiveColElem())||void 0===t?void 0:t.querySelector("input,select");e&&(i=e)}return i}_isCurInputFocused(){var e;return!!(null===(e=this.tree.getActiveColElem())||void 0===e?void 0:e.querySelector("input:focus,select:focus"))}onKeyEvent(e){const t=e.event,i=this.tree,s=e.options,n=!t.ctrlKey||s.autoActivate,r=this._getEmbeddedInputElem(t.target),o=r&&this._isCurInputFocused(),l=s.navigationModeOption;let a,d=eventToString(t),c=e.node,h=!0;if(!i.isEnabled())return!1;if(!1===i._callEvent("keydown",e))return!1;if(!1===i._callMethod("edit._preprocessKeyEvent",e))return!1;if(!c){const e=i.getFocusNode()||i.getActiveNode(),t=i.getFirstChild();if(!e&&t&&"ArrowDown"===d)return t.logInfo("Keydown: activate first node."),void t.setActive();a=e||t,a&&(a.setFocus(),c=i.getFocusNode(),c.logInfo("Keydown: force focus on active node."))}const u=c.isColspan();if(i.isRowNav()){if(o){switch(d){case"Enter":r.blur(),i.setFocus();break;case"Escape":c._render(),i.setFocus()}return}if(s.quicksearch&&1===d.length&&/^\w$/.test(d)&&!r){const e=Date.now();e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=d;const s=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode());return s&&s.setActive(!0,{event:t}),void t.preventDefault()}switch(d){case"Enter":c.isActive()&&(c.isExpanded()?d="Subtract":c.isExpandable(!0)&&(d="Add"));break;case"ArrowLeft":c.expanded&&(d="Subtract");break;case"ArrowRight":if(!c.expanded&&c.isExpandable(!0))d="Add";else if(l===NavModeEnum.startCell||l===NavModeEnum.startRow)return t.preventDefault(),i.setCellNav(),!1}switch(d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":c.getOption("checkbox")?c.toggleSelected():c.setActive(!0,{event:t});break;case"Enter":c.setActive(!0,{event:t});break;case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"Backspace":case"End":case"Home":case"Control+End":case"Control+Home":case"Meta+ArrowDown":case"Meta+ArrowUp":case"PageDown":case"PageUp":c.navigate(d,{activate:n,event:t});break;default:h=!1}}else{const e=r?r.type||r.tagName:"",s=r&&"checkbox"!==e;if(o){if("Escape"===d)return c.logDebug("Reset focused input on Escape"),r.setCustomValidity(""),c._render(),i.setFocus(),void i.setColumn(i.activeColIdx);if("Enter"!==d)return r&&r.checkValidity&&!r.checkValidity()?(c.logDebug(`Ignored ${d} inside invalid input`),!1):void c.logDebug(`Ignored ${d} inside focused input`)}else if(r&&1===d.length&&s)return r.focus(),r.value="",c.logDebug(`Focus input: ${d}`),!1;switch("Tab"===d?(d="ArrowRight",h=!0):"Shift+Tab"===d&&(d=i.activeColIdx>0?"ArrowLeft":"",h=!0),d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":0===i.activeColIdx&&c.getOption("checkbox")?(c.toggleSelected(),h=!0):r&&"checkbox"===e&&(r.click(),h=!0);break;case"F2":r&&!o&&s&&(r.focus(),h=!0);break;case"Enter":i.setFocus(),(0===i.activeColIdx||u)&&c.isExpandable()?(c.setExpanded(!c.isExpanded()),h=!0):r&&!o&&s&&(r.focus(),h=!0);break;case"Escape":i.setFocus(),c.log("keynav: focus tree..."),i.isCellNav()&&l!==NavModeEnum.cell&&(c.log("keynav: setCellNav(false)"),i.setCellNav(!1),i.setFocus(),h=!0);break;case"ArrowLeft":i.setFocus(),u&&c.isExpanded()?c.setExpanded(!1):!u&&i.activeColIdx>0?i.setColumn(i.activeColIdx-1):l!==NavModeEnum.cell&&i.setCellNav(!1),h=!0;break;case"ArrowRight":i.setFocus(),u&&!c.isExpanded()?c.setExpanded():!u&&i.activeColIdx0&&i.setColumn(0),h=!0;break;case"End":i.setFocus(),!u&&i.activeColIdx=4){const t=this.ignoreEvents,i=this.prefix;overrideMethod(e,"callEvent",(function(s,n){if(t.has(s))return e._superApply(arguments);const r=Date.now(),o=e._superApply(arguments);return e.logDebug(`${i}: callEvent('${s}') took ${Date.now()-r} ms.`,arguments[1]),o}))}}onKeyEvent(e){this.tree.logDebug(`${this.prefix}: onKeyEvent()`,e)}} /*! * Wunderbaum - common * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const DEFAULT_DEBUGLEVEL=3,ROW_HEIGHT=22,ICON_WIDTH=20,TITLE_SPAN_PAD_Y=7,RENDER_MAX_PREFETCH=5,DEFAULT_MIN_COL_WIDTH=4,TEST_IMG=new RegExp(/\.|\//),iconMaps={bootstrap:{error:"bi bi-exclamation-triangle",loading:"bi bi-chevron-right wb-busy",noData:"bi bi-question-circle",expanderExpanded:"bi bi-chevron-down",expanderCollapsed:"bi bi-chevron-right",expanderLazy:"bi bi-chevron-right wb-helper-lazy-expander",checkChecked:"bi bi-check-square",checkUnchecked:"bi bi-square",checkUnknown:"bi bi-dash-square-dotted",radioChecked:"bi bi-circle-fill",radioUnchecked:"bi bi-circle",radioUnknown:"bi bi-record-circle",folder:"bi bi-folder2",folderOpen:"bi bi-folder2-open",folderLazy:"bi bi-folder-symlink",doc:"bi bi-file-earmark"},fontawesome6:{error:"fa-solid fa-triangle-exclamation",loading:"fa-solid fa-chevron-right fa-beat",noData:"fa-solid fa-circle-question",expanderExpanded:"fa-solid fa-chevron-down",expanderCollapsed:"fa-solid fa-chevron-right",expanderLazy:"fa-solid fa-chevron-right wb-helper-lazy-expander",checkChecked:"fa-regular fa-square-check",checkUnchecked:"fa-regular fa-square",checkUnknown:"fa-regular fa-square-minus",radioChecked:"fa-solid fa-circle",radioUnchecked:"fa-regular fa-circle",radioUnknown:"fa-regular fa-circle-question",folder:"fa-solid fa-folder-closed",folderOpen:"fa-regular fa-folder-open",folderLazy:"fa-solid fa-folder-plus",doc:"fa-regular fa-file"}},RESERVED_TREE_SOURCE_KEYS=new Set(["_format","_keyMap","_positional","_typeList","_valueMap","_version","children","columns","types"]),KEY_TO_ACTION_DICT={" ":"toggleSelect","+":"expand",Add:"expand",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",Backspace:"parent","/":"collapseAll",Divide:"collapseAll",End:"lastCol",Home:"firstCol","Control+End":"last","Control+Home":"first","Meta+ArrowDown":"last","Meta+ArrowUp":"first","*":"expandAll",Multiply:"expandAll",PageDown:"pageDown",PageUp:"pageUp","-":"collapse",Subtract:"collapse"};function makeNodeTitleMatcher(e){return e instanceof RegExp?function(t){return e.test(t.title)}:(assert("string"==typeof e,`Expected a string or RegExp: ${e}`),function(t){return t.title===e})}function makeNodeTitleStartMatcher(e){e=escapeRegex(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}function nodeTitleSorter(e,t){const i=e.title.toLowerCase(),s=t.title.toLowerCase();return i===s?0:i>s?1:-1}function unflattenSource(e){var t,i,s;const{_format:n,_keyMap:r={},_positional:o=[],children:l}=e;if("flat"!==n)throw new Error(`Expected source._format: "flat", but got ${n}`);if(o&&o.includes("children"))throw new Error(`source._positional must not include "children": ${o}`);let a=r;if(r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),a={};for(const[e,t]of Object.entries(r))a[t]=e}const d=o.map((e=>a[e])),c=[],h={},u={},p=null!==(t=a.key)&&void 0!==t?t:"key",f=null!==(i=a.children)&&void 0!==i?i:"children";for(const[e,t]of l.entries()){const[i,n,r={}]=t;t[1]=null,null!=t[2]&&(t[2]=null),n.forEach(((e,t)=>{r[d[t]]=e})),u[e]=r;const o=r[p];null!=o&&(h[o]=r);let l=null;if(null===i);else if("number"==typeof i){if(l=u[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by index: ${i}.`)}else if(l=h[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by key: ${i}`);l?(null!==(s=l[f])&&void 0!==s||(l[f]=[]),l[f].push(r)):c.push(r)}e.children=c}function decompressSourceData(e){let{_format:t,_version:i=1,_keyMap:s,_valueMap:n}=e;assert(1===i,`Expected file version 1 instead of ${i}`);let r=s,o={};if(r)for(const[e,t]of Object.entries(r))o[t]=e;if(r&&r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),[r,o]=[o,r]}if(null!=e._typeList){const t='source._typeList is deprecated since v0.7.0: use source._valueMap: {"type": [...]} instead.';if(null!=n)throw new Error(t);console.warn(t),n={type:e._typeList},delete e._typeList}"flat"===t&&unflattenSource(e),delete e._format,delete e._version,delete e._keyMap,delete e._valueMap,delete e._positional,(s||n)&&function e(t){for(const i of t)Object.getOwnPropertyNames(i).forEach((e=>{const t=i[e];let r=e;if(s&&null!=o[e]&&(r=o[e],r!==e&&(i[r]=t,delete i[e])),n&&"number"==typeof t&&null!=n[r]){const e=n[r][t];if(null==e)throw new Error(`Expected valueMap[${r}][${t}] entry in [${n[r]}]`);i[r]=e}})),i.children&&e(i.children)}(e.children)} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */const DEFAULT_DEBUGLEVEL=3,ROW_HEIGHT=22,ICON_WIDTH=20,TITLE_SPAN_PAD_Y=7,RENDER_MAX_PREFETCH=5,DEFAULT_MIN_COL_WIDTH=4,TEST_IMG=new RegExp(/\.|\//),iconMaps={bootstrap:{error:"bi bi-exclamation-triangle",loading:"bi bi-chevron-right wb-busy",noData:"bi bi-question-circle",expanderExpanded:"bi bi-chevron-down",expanderCollapsed:"bi bi-chevron-right",expanderLazy:"bi bi-chevron-right wb-helper-lazy-expander",checkChecked:"bi bi-check-square",checkUnchecked:"bi bi-square",checkUnknown:"bi bi-dash-square-dotted",radioChecked:"bi bi-circle-fill",radioUnchecked:"bi bi-circle",radioUnknown:"bi bi-record-circle",folder:"bi bi-folder2",folderOpen:"bi bi-folder2-open",folderLazy:"bi bi-folder-symlink",doc:"bi bi-file-earmark",colSortable:"bi bi-chevron-expand",colSortAsc:"bi bi-arrow-down",colSortDesc:"bi bi-arrow-up",colFilter:"bi bi-filter-circle",colFilterActive:"bi bi-filter-circle-fill wb-helper-invalid",colMenu:"bi bi-three-dots-vertical"},fontawesome6:{error:"fa-solid fa-triangle-exclamation",loading:"fa-solid fa-chevron-right fa-beat",noData:"fa-solid fa-circle-question",expanderExpanded:"fa-solid fa-chevron-down",expanderCollapsed:"fa-solid fa-chevron-right",expanderLazy:"fa-solid fa-chevron-right wb-helper-lazy-expander",checkChecked:"fa-regular fa-square-check",checkUnchecked:"fa-regular fa-square",checkUnknown:"fa-regular fa-square-minus",radioChecked:"fa-solid fa-circle",radioUnchecked:"fa-regular fa-circle",radioUnknown:"fa-regular fa-circle-question",folder:"fa-solid fa-folder-closed",folderOpen:"fa-regular fa-folder-open",folderLazy:"fa-solid fa-folder-plus",doc:"fa-regular fa-file",colSortable:"fa-solid fa-fw fa-sort",colSortAsc:"fa-solid fa-fw fa-sort-up",colSortDesc:"fa-solid fa-fw fa-sort-down",colFilter:"fa-solid fa-fw fa-filter",colFilterActive:"fa-solid fa-fw fa-filter wb-helper-invalid",colMenu:"fa-solid fa-fw fa-ellipsis-v"}},RESERVED_TREE_SOURCE_KEYS=new Set(["_format","_keyMap","_positional","_typeList","_valueMap","_version","children","columns","types"]),KEY_TO_ACTION_DICT={" ":"toggleSelect","+":"expand",Add:"expand",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",Backspace:"parent","/":"collapseAll",Divide:"collapseAll",End:"lastCol",Home:"firstCol","Control+End":"last","Control+Home":"first","Meta+ArrowDown":"last","Meta+ArrowUp":"first","*":"expandAll",Multiply:"expandAll",PageDown:"pageDown",PageUp:"pageUp","-":"collapse",Subtract:"collapse"};function makeNodeTitleMatcher(e){return e instanceof RegExp?function(t){return e.test(t.title)}:(assert("string"==typeof e,`Expected a string or RegExp: ${e}`),function(t){return t.title===e})}function makeNodeTitleStartMatcher(e){e=escapeRegex(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}function nodeTitleSorter(e,t){const i=e.title.toLowerCase(),s=t.title.toLowerCase();return i===s?0:i>s?1:-1}function unflattenSource(e){var t,i,s;const{_format:n,_keyMap:r={},_positional:o=[],children:l}=e;if("flat"!==n)throw new Error(`Expected source._format: "flat", but got ${n}`);if(o&&o.includes("children"))throw new Error(`source._positional must not include "children": ${o}`);let a=r;if(r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),a={};for(const[e,t]of Object.entries(r))a[t]=e}const d=o.map((e=>a[e])),c=[],h={},u={},p=null!==(t=a.key)&&void 0!==t?t:"key",f=null!==(i=a.children)&&void 0!==i?i:"children";for(const[e,t]of l.entries()){const[i,n,r={}]=t;t[1]=null,null!=t[2]&&(t[2]=null),n.forEach(((e,t)=>{r[d[t]]=e})),u[e]=r;const o=r[p];null!=o&&(h[o]=r);let l=null;if(null===i);else if("number"==typeof i){if(l=u[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by index: ${i}.`)}else if(l=h[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by key: ${i}`);l?(null!==(s=l[f])&&void 0!==s||(l[f]=[]),l[f].push(r)):c.push(r)}e.children=c}function decompressSourceData(e){let{_format:t,_version:i=1,_keyMap:s,_valueMap:n}=e;assert(1===i,`Expected file version 1 instead of ${i}`);let r=s,o={};if(r)for(const[e,t]of Object.entries(r))o[t]=e;if(r&&r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),[r,o]=[o,r]}if(null!=e._typeList){const t='source._typeList is deprecated since v0.7.0: use source._valueMap: {"type": [...]} instead.';if(null!=n)throw new Error(t);console.warn(t),n={type:e._typeList},delete e._typeList}"flat"===t&&unflattenSource(e),delete e._format,delete e._version,delete e._keyMap,delete e._valueMap,delete e._positional,(s||n)&&function e(t){for(const i of t)Object.getOwnPropertyNames(i).forEach((e=>{const t=i[e];let r=e;if(s&&null!=o[e]&&(r=o[e],r!==e&&(i[r]=t,delete i[e])),n&&"number"==typeof t&&null!=n[r]){const e=n[r][t];if(null==e)throw new Error(`Expected valueMap[${r}][${t}] entry in [${n[r]}]`);i[r]=e}})),i.children&&e(i.children)}(e.children)} /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */const nodeMimeType="application/x-wunderbaum-node";class DndExtension extends WunderbaumExtension{constructor(e){super(e,"dnd",{autoExpandMS:1500,multiSource:!1,effectAllowed:"all",dropEffectDefault:"move",guessDropEffect:!0,preventForeignNodes:!1,preventLazyParents:!0,preventNonNodes:!1,preventRecursion:!0,preventSameParent:!1,preventVoidMoves:!0,serializeClipboardData:!0,scroll:!0,scrollSensitivity:20,scrollSpeed:5,sourceCopyHook:null,dragStart:null,drag:null,dragEnd:null,dragEnter:null,dragOver:null,dragExpand:null,drop:null,dragLeave:null}),this.srcNode=null,this.lastTargetNode=null,this.lastEnterStamp=0,this.lastAllowedDropRegions=null,this.lastDropEffect=null,this.lastDropRegion=!1,this.currentScrollDir=0,this.applyScrollDirThrottled=throttle(this._applyScrollDir,50)}init(){super.init();const e=this.tree,t=e.options.dnd;t.dragStart&&onEvent(e.element,"dragstart drag dragend",this.onDragEvent.bind(this)),t.dragEnter&&onEvent(e.element,"dragenter dragover dragleave drop",this.onDropEvent.bind(this))}_leaveNode(){const e=this.lastTargetNode;this.lastEnterStamp=0,e&&(e.setClass("wb-drop-target wb-drop-over wb-drop-after wb-drop-before",!1),this.lastTargetNode=null)}unifyDragover(e){if(!1===e)return!1;if(e instanceof Set)return e.size>0&&e;if(!0===e)return new Set(["over","before","after"]);if("string"==typeof e||isArray(e))return(e=toSet(e)).size>0&&e;throw new Error("Unsupported drop region definition: "+e)}_calcDropRegion(e,t){const i=e.offsetY;return!!t&&(3===t.size?i<5.5?"before":i>16.5?"after":"over":1===t.size&&t.has("over")?"over":i>11?"after":"before")}_guessDropEffect(e){var t;const i=this.treeOpts.dnd,s=null!==(t=i.effectAllowed)&&void 0!==t?t:"all",n=["all","copy","copyLink","copyMove"].includes(s),r=["all","link","copyLink","linkMove"].includes(s),o=["all","move","copyMove","linkMove"].includes(s);let l=i.dropEffectDefault;return i.guessDropEffect&&(isMac?(e.altKey&&n&&(l="copy"),e.metaKey&&o&&(l="move"),e.altKey&&e.metaKey&&r&&(l="link")):(e.ctrlKey&&n&&(l="copy"),e.shiftKey&&o&&(l="move"),e.altKey&&r&&(l="link"))),l}_isVoidDrop(e,t,i){return!(!this.treeOpts.dnd.preventVoidMoves||!t)&&("before"===i&&e===t.getNextSibling()||"after"===i&&e===t.getPrevSibling()||(t===e||t.parent===e))}_applyScrollDir(){if(this.isDragging()&&this.currentScrollDir){const e=this.tree.options.dnd,t=this.tree.element,i=t.scrollTop;this.currentScrollDir<0?t.scrollTop=Math.max(0,i-e.scrollSpeed):this.currentScrollDir>0&&(t.scrollTop=i+e.scrollSpeed)}}_autoScroll(e){const t=this.tree,i=t.options.dnd.scrollSensitivity,s=t.element,n=t.headerElement.clientHeight,r=s.offsetHeight,o=s.scrollTop;return this.currentScrollDir=0,o>0&&e>0&&e<=i+n?this.currentScrollDir=-1:o=r-i&&(this.currentScrollDir=1),this.currentScrollDir&&this.applyScrollDirThrottled(),s.scrollTop-o}isDragging(){return!!this.srcNode}onDragEvent(e){var t;const i=this.treeOpts.dnd,s=Wunderbaum.getNode(e);if(s){if(["dragstart","dragend"].includes(e.type)&&this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${s}`,e),"dragstart"===e.type){if(e.dataTransfer.effectAllowed=i.effectAllowed,s.isEditingTitle())return s.logDebug("Prevented dragging node in edit mode."),e.preventDefault(),!1;if(!s._callEvent("dnd.dragStart",{event:e}))return e.preventDefault(),!1;const n=s.toDict(!0,(e=>{e._orgKey=e.key,delete e.key}));n._treeId=s.tree.id,i.serializeClipboardData&&("function"==typeof i.serializeClipboardData?e.dataTransfer.setData(nodeMimeType,i.serializeClipboardData(n,s)):e.dataTransfer.setData(nodeMimeType,JSON.stringify(n))),(null===(t=e.dataTransfer)||void 0===t?void 0:t.types.includes("text/plain"))||e.dataTransfer.setData("text/plain",s.title),this.srcNode=s,setTimeout((()=>{s.setClass("wb-drag-source")}),0)}else"drag"===e.type?i.drag&&s._callEvent("dnd.drag",{event:e}):"dragend"===e.type&&(s.setClass("wb-drag-source",!1),this.srcNode=null,this.lastTargetNode&&this._leaveNode(),s._callEvent("dnd.dragEnd",{event:e}));return!0}this.tree.logWarn(`onDragEvent.${e.type}: no node`)}onDropEvent(e){var t;const i=this.srcNode,s=i?i.tree:null,n=Wunderbaum.getNode(e),r=this.treeOpts.dnd,o=e.dataTransfer,l=this._calcDropRegion(e,this.lastAllowedDropRegions),a=(e,t)=>(e&&this.tree.log(`Prevented drop operation (${t}).`),e);if(n){if(["drop"].includes(e.type)&&this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${n}, ea: ${null==o?void 0:o.effectAllowed}, de: ${null==o?void 0:o.dropEffect}, cy: ${e.offsetY}, r: ${l}, srcNode: ${i}`,e),"dragenter"===e.type){if(this.lastAllowedDropRegions=null,this.lastTargetNode&&this.lastTargetNode!==n&&this._leaveNode(),this.lastTargetNode=n,this.lastEnterStamp=Date.now(),a(n.isStatusNode(),"is status node")||a(r.preventForeignNodes&&n.tree!==s,"preventForeignNodes")||a(r.preventLazyParents&&!n.isLoaded(),"preventLazyParents")||a(r.preventNonNodes&&!i,"preventNonNodes")||a(r.preventRecursion&&(null==i?void 0:i.isAncestorOf(n)),"preventRecursion")||a(r.preventSameParent&&i&&n.parent===i.parent,"preventSameParent")||a(r.preventVoidMoves&&n===i,"preventVoidMoves"))return o.dropEffect="none",!0;o.dropEffect=this._guessDropEffect(e)||"none";let t=n._callEvent("dnd.dragEnter",{event:e,sourceNode:i});return t=this.unifyDragover(t),t?(this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect,n.setClass("wb-drop-target"),e.preventDefault(),!1):(o.dropEffect="none",!0)}if("dragover"===e.type){const t=e.clientY-this.tree.element.offsetTop;this._autoScroll(t),o.dropEffect=this._guessDropEffect(e)||"none",n._callEvent("dnd.dragOver",{event:e,sourceNode:i});const s=this._calcDropRegion(e,this.lastAllowedDropRegions);if(this.lastDropRegion=s,this.lastDropEffect=o.dropEffect,r.autoExpandMS>0&&n.isExpandable(!0)&&!n._isLoading&&Date.now()-this.lastEnterStamp>r.autoExpandMS&&!1!==n._callEvent("dnd.dragExpand",{event:e,sourceNode:i})&&n.setExpanded(),!s||this._isVoidDrop(n,i,s))return;return n.setClass("wb-drop-over","over"===s),n.setClass("wb-drop-before","before"===s),n.setClass("wb-drop-after","after"===s),e.preventDefault(),!1}if("dragleave"===e.type)n._callEvent("dnd.dragLeave",{event:e,sourceNode:i});else if("drop"===e.type){e.stopPropagation(),e.preventDefault(),this._leaveNode();const i=this.lastDropRegion;let s=null===(t=e.dataTransfer)||void 0===t?void 0:t.getData(nodeMimeType);s=s?JSON.parse(s):null;const r=this.srcNode,o=this.lastDropEffect;setTimeout((()=>{n._callEvent("dnd.drop",{event:e,region:i,suggestedDropMode:"over"===i?"appendChild":i,suggestedDropEffect:o,sourceNode:r,sourceNodeData:s})}),10)}return!1}this._leaveNode()}} /*! * Wunderbaum - drag_observer * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */class DragObserver{constructor(e){if(this.start={event:null,x:0,y:0,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1},this.dragElem=null,this.dragging=!1,this.customData={},this.events=["mousedown","mouseup","mousemove","keydown"],!e.root)throw new Error("Missing `root` option.");this.opts=Object.assign({thresh:5},e),this.root=e.root,this._handler=this.handleEvent.bind(this),this.events.forEach((e=>{this.root.addEventListener(e,this._handler)}))}disconnect(){this.events.forEach((e=>{this.root.removeEventListener(e,this._handler)}))}getDragElem(){return this.dragElem}isDragging(){return this.dragging}stopDrag(e){if(this.dragging&&this.opts.dragstop&&e){e.type="dragstop";try{this.opts.dragstop(e)}catch(e){console.error("dragstop error",e)}}this.dragElem=null,this.dragging=!1,this.start.event=null,this.customData={}}handleEvent(e){const t=e.type,i=this.opts,s={type:e.type,startEvent:"mousedown"===t?e:this.start.event,event:e,customData:this.customData,dragElem:this.dragElem,dx:e.pageX-this.start.x,dy:e.pageY-this.start.y,apply:void 0};switch(t){case"keydown":this.stopDrag(s);break;case"mousedown":if(this.dragElem){this.stopDrag(s);break}if(i.selector){let t=e.target;if(t.matches(i.selector))this.dragElem=t;else{if(t=t.closest(i.selector),!t)break;this.dragElem=t}}this.start.event=e,this.start.x=e.pageX,this.start.y=e.pageY,this.start.altKey=e.altKey,this.start.ctrlKey=e.ctrlKey,this.start.metaKey=e.metaKey,this.start.shiftKey=e.shiftKey;break;case"mousemove":if(!this.dragElem)break;if(!this.dragging){if(i.thresh){if(s.dx*s.dx+s.dy*s.dy{const i=Wunderbaum.getEventInfo(t.startEvent),s=i.colDef,n=s&&this.tree.element.contains(t.dragElem)&&toBool(s.resizable,e.options.resizableColumns,!1);if(this.tree.element.classList.toggle("wb-col-resizing",!!n),i.colElem.classList.toggle("wb-col-resizing",!!n),n){t.customData.colDef=s,t.customData.orgCustomWidthPx=s.customWidthPx;const e=Number.parseInt(i.colElem.style.width,10);t.customData.orgWidthPx=e,s.customWidthPx=e,this.tree.update(ChangeType.colStructure)}return n},drag:e=>this.handleDrag(e),dragstop:e=>this.handleDrag(e)})}init(){super.init()}handleDrag(e){const t=e.customData,i=t.colDef;if("dragstop"===e.type||"drag"===e.type){if(this.tree.element.classList.remove("wb-col-resizing"),e.apply||"drag"===e.type){const s=toPixel(i.minWidth,4),n=Math.max(s,t.orgWidthPx+e.dx);i.customWidthPx=n}else this.tree.log("Column resize cancelled",e),i.customWidthPx=t.orgCustomWidthPx;this.tree.update(ChangeType.colStructure)}}} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */class GridExtension extends WunderbaumExtension{constructor(e){super(e,"grid",{}),this.observer=new DragObserver({root:window.document,selector:"span.wb-col-resizer-active",thresh:4,dragstart:t=>{const i=Wunderbaum.getEventInfo(t.startEvent),s=i.colDef,n=s&&this.tree.element.contains(t.dragElem)&&toBool(s.resizable,e.options.columnsResizable,!1);if(this.tree.element.classList.toggle("wb-col-resizing",!!n),i.colElem.classList.toggle("wb-col-resizing",!!n),n){t.customData.colDef=s,t.customData.orgCustomWidthPx=s.customWidthPx;const e=Number.parseInt(i.colElem.style.width,10);t.customData.orgWidthPx=e,s.customWidthPx=e,this.tree.update(ChangeType.colStructure)}return n},drag:e=>this.handleDrag(e),dragstop:e=>this.handleDrag(e)})}init(){super.init()}handleDrag(e){const t=e.customData,i=t.colDef;if("dragstop"===e.type||"drag"===e.type){if(this.tree.element.classList.remove("wb-col-resizing"),e.apply||"drag"===e.type){const s=toPixel(i.minWidth,4),n=Math.max(s,t.orgWidthPx+e.dx);i.customWidthPx=n}else this.tree.log("Column resize cancelled",e),i.customWidthPx=t.orgCustomWidthPx;this.tree.update(ChangeType.colStructure)}}} /*! * Wunderbaum - deferred * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */class Deferred{constructor(){this._promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this._resolve(e)}reject(e){this._reject(e)}promise(){return this._promise}then(e){return this._promise.then(e)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}} /*! * Wunderbaum - wunderbaum_node * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const NODE_PROPS=new Set(["checkbox","classes","expanded","icon","iconTooltip","key","lazy","_partsel","radiogroup","refKey","selected","statusNodeType","title","tooltip","type","unselectable"]),NODE_DICT_PROPS=new Set(NODE_PROPS);NODE_DICT_PROPS.delete("_partsel"),NODE_DICT_PROPS.delete("unselectable");class WunderbaumNode{constructor(e,t,i){var s,n;this.refKey=void 0,this.children=null,this.classes=null,this.data={},this._isLoading=!1,this._requestId=0,this._errorInfo=null,this._partsel=!1,this._partload=!1,this.subMatchCount=0,this._rowIdx=0,this._rowElem=void 0,assert(!t||t.tree===e,`Invalid parent: ${t}`),assert(!i.children,"'children' not allowed here"),this.tree=e,this.parent=t,this.key=""+(null!==(s=i.key)&&void 0!==s?s:++WunderbaumNode.sequence),this.title=""+(null!==(n=i.title)&&void 0!==n?n:"<"+this.key+">"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))NODE_PROPS.has(e)||(this.data[e]=t);t&&!this.statusNodeType&&e._registerNode(this)}toString(){return`WunderbaumNode@${this.key}<'${this.title}'>`}*[Symbol.iterator](){const e=this.children;if(e)for(let t=0,i=e.length;t=0,`options.before must be a direct child of ${this}`),this.children.splice(e,0,...o)}else this.children=o;i.update(ChangeType.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}assert(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=toSet(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:makeNodeTitleMatcher(e),i=[];return this.visit((e=>{t(e)&&i.push(e)})),i}findDirectChild(e){const t=this.children;if(!t)return null;if("string"==typeof e){for(let i=0,s=t.length;i{if(t(e))return i=e,!1})),i}findRelatedNode(e,t=!1){return this.tree.findRelatedNode(this,e,t)}*format_iter(e,t){function i(e){const t=e.parent.children;return e===t[t.length-1]}null!=t||(t=[" "," | "," ╰─ "," ├─ "]),null!=e||(e=e=>""+e);const s=s=>{const n=[e(s)];n.unshift(t[i(s)?2:3]);let r=s.parent;for(;r&&r!==this;)n.unshift(t[i(r)?0:1]),r=r.parent;return n.join("")};yield e(this);for(const e of this)yield s(e)}format(e,t){const i=[];for(const s of this.format_iter(e,t))i.push(s);return i.join("\n")}getColElem(e){var t;"string"==typeof e&&(e=this.tree.columns.findIndex((t=>t.id===e)));const i=null===(t=this._rowElem)||void 0===t?void 0:t.querySelectorAll("span.wb-col");return i?i[e]:null}getCloneList(e=!1){if(!this.refKey)return[];const t=this.tree.findByRefKey(this.refKey);return e?t:[...t].filter((e=>e!==this))}getFirstChild(){return this.children?this.children[0]:null}getLastChild(){return this.children?this.children[this.children.length-1]:null}getLevel(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}getNextSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t+1]||null}getParent(){return this.parent}getParentList(e=!1,t=!1){const i=[];let s=t?this:this.parent;for(;s;)(e||s.parent)&&i.unshift(s),s=s.parent;return i}getPath(e=!0,t="title",i="/"){let s;const n=[],r="function"==typeof t;return this.visitParents((e=>{e.parent&&(s=r?t(e):e[t],n.unshift(s))}),e),n.join(i)}getPrevSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t-1]||null}hasChildren(){if(this.lazy){if(null==this.children)return;if(0===this.children.length)return!1;if(1===this.children.length&&this.children[0].isStatusNode())return;return!0}return!(!this.children||!this.children.length)}hasClass(e){return!!this.classes&&this.classes.has(e)}hasFocus(){return this.tree.focusNode===this}isActive(){return this.tree.activeNode===this}isAncestorOf(e){return e&&e.isDescendantOf(this)}isChildOf(e){return e&&this.parent===e}isClone(){return!!this.refKey&&this.tree.findByRefKey(this.refKey).length>1}isColspan(){return!!this.getOption("colspan")}isDescendantOf(e){if(!e||e.tree!==this.tree)return!1;let t=this.parent;for(;t;){if(t===e)return!0;t===t.parent&&error(`Recursive parent link: ${t}`),t=t.parent}return!1}isExpandable(e=!1){return!(e&&this.expanded||!1===this.children)&&(null==this.children?!!this.lazy:0!==this.children.length||!!this.tree.options.emptyChildListExpandable)}isEditingTitle(){return this.tree._callMethod("edit.isEditingTitle",this)}isExpanded(){return!!this.expanded}isFirstSibling(){const e=this.parent;return!e||e.children[0]===this}isLastSibling(){const e=this.parent;return!e||e.children[e.children.length-1]===this}isLazy(){return!!this.lazy}isLoaded(){return!this.lazy||void 0!==this.hasChildren()}isLoading(){return this._isLoading}isPagingNode(){return"paging"===this.statusNodeType}isParentOf(e){return e&&e.parent===this}isPartload(){return!!this._partload}isPartsel(){return!this.selected&&!!this._partsel}isRadio(){return!!this.parent.radiogroup||"radio"===this.getOption("checkbox")}isRendered(){return!!this._rowElem}isRootNode(){return this.tree.root===this}isSelected(){return!!this.selected||!!this._partsel&&void 0}isStatusNode(){return!!this.statusNodeType}isTopLevel(){return this.tree.root===this.parent}isUnloaded(){return void 0===this.hasChildren()}isVisible(){const e="hide"===this.tree.filterMode,t=this.getParentList(!1,!1);if(e&&!this.match&&!this.subMatchCount)return!1;for(let e=0,i=t.length;ei)return void this.logWarn(`Ignored load response #${i} because #${this._requestId} is pending.`);if(this.logDebug(`Received response for load request #${i}`),null===this.parent&&null!==s)return void this.logWarn("Lazy parent node was removed while loading: discarding response.");this.setStatus(NodeStatusType.ok);const r=Date.now();this._loadSourceObject(t),l=Date.now()-r}else{if("function"==typeof e.then){const i=t.logTime(`Resolve thenable ${e}`);e=await Promise.resolve(e),t.logTimeEnd(i)}this._loadSourceObject(e),l=Date.now()-n}}catch(t){throw this.logError("Error during load()",e,t),this._callEvent("error",{error:t}),this.setStatus(NodeStatusType.error,{message:""+t}),t}finally{this._requestId=0,r=Date.now()-n,t.options.debugLevel>=3&&t.logInfo(`Load source took ${r/1e3} seconds (transfer: ${o/1e3}s, processing: ${l/1e3}s)`)}}async loadLazy(e=!1){const t=this.expanded;if(assert(this.lazy,"load() requires a lazy node"),e||this.isUnloaded())if(this.isLoading())this.logWarn("loadLazy() called while already loading: ignored.");else{this.isLoaded()&&this.resetLazy(),this.setStatus(NodeStatusType.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(NodeStatusType.ok);assert(isArray(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(NodeStatusType.ok),t?(this.expanded=!0,this.tree.update(ChangeType.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(NodeStatusType.error,{message:""+e})}}}log(...e){this.tree.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.tree.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.tree.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.tree.options.debugLevel>=3&&console.info(this.toString(),...e)}logWarn(...e){this.tree.options.debugLevel>=2&&console.warn(this.toString(),...e)}async makeVisible(e){let t;const i=new Deferred,s=[],n=this.getParentList(!1,!1),r=n.length,o=getOption(e,"noAnimation",!1),l=getOption(e,"scrollIntoView",!0);for(t=r-1;t>=0;t--){const e={noAnimation:o};s.push(n[t].setExpanded(!0,e))}return Promise.all(s).then((()=>{l&&this.tree?(this.tree.updatePendingModifications(),this.scrollIntoView().then((()=>{i.resolve()}))):i.resolve()})),i.promise()}moveTo(e,t="appendChild",i){let s;"over"===t&&(t="appendChild"),"prependChild"===t&&(e.children&&e.children.length?(t="before",e=e.children[0]):t="appendChild");const n=this.tree,r=this.parent,o="appendChild"===t?e:e.parent;if(this!==e){if(this.parent?o.isDescendantOf(this)&&error("Cannot move a node to its own descendant"):error("Cannot move system root"),o!==r&&r.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===o)return;this.parent.children=this.parent.lazy?[]:null,this.parent.expanded=!1}else s=this.parent.children.indexOf(this),assert(s>=0,"invalid source parent"),this.parent.children.splice(s,1);if(this.parent=o,o.hasChildren())switch(t){case"appendChild":o.children.push(this);break;case"before":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s,0,this);break;case"after":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s+1,0,this);break;default:error(`Invalid mode '${t}'.`)}else o.children=[this];i&&e.visit(i,!0),o===r?o.triggerModifyChild("move",this):o.triggerModifyChild("add",this),n!==e.tree&&(this.logWarn("Cross-tree moveTo is experimental!"),this.visit((t=>{t.tree=e.tree}),!0)),setTimeout((()=>{n.update(ChangeType.any)}),0)}}async navigate(e,t){e=KEY_TO_ACTION_DICT[e]||e;const i=this.findRelatedNode(e);if(!i)return this.logWarn(`Could not find related node '${e}'.`),Promise.resolve(this);try{i.makeVisible({scrollIntoView:!1})}catch(e){}return i.setFocus(),!1===(null==t?void 0:t.activate)?Promise.resolve(this):i.setActive(!0,{event:null==t?void 0:t.event})}remove(){const e=this.tree,t=this.parent.children.indexOf(this);this.triggerModify("remove"),this.parent.children.splice(t,1),this.visit((t=>{t.removeMarkup(),e._unregisterNode(t)}),!0),e.update(ChangeType.structure)}removeChildren(){var e,t;const i=this.tree;this.children&&((null===(e=i.activeNode)||void 0===e?void 0:e.isDescendantOf(this))&&i.activeNode.setActive(!1),(null===(t=i.focusNode)||void 0===t?void 0:t.isDescendantOf(this))&&i._setFocusNode(null),this.triggerModifyChild("remove",null),this.visit((e=>{i._unregisterNode(e)})),this.lazy?this.children=[]:this.children=null,this.isRootNode()||(this.expanded=!1),this.tree.update(ChangeType.structure))}removeMarkup(){this._rowElem&&(delete this._rowElem._wb_node,this._rowElem.remove(),this._rowElem=void 0)}_getRenderInfo(){const e={},t={},i=this.isColspan(),s=this._rowElem?this._rowElem.querySelectorAll("span.wb-col"):null;let n=0;for(const r of this.tree.columns)e[r.id]={id:r.id,idx:n,elem:s?s[n]:null,info:r},i||"*"===r.id||(t[r.id]=e[r.id]),n++;return{allColInfosById:e,renderColInfosById:t}}_createIcon(e,t,i,s){let n,r=this.getOption("icon");if(this._errorInfo?r=e.error:this._isLoading&&s&&(r=e.loading),!1===r)return null;"string"==typeof r||(r=this.statusNodeType?e[this.statusNodeType]:this.expanded?e.folderOpen:this.children?e.folder:this.lazy?e.folderLazy:e.doc),r?r.indexOf("<")>=0?n=elemFromHtml(r):TEST_IMG.test(r)?n=elemFromHtml(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";isPlainObject(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=elemFromHtml(`${escapeHtml(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;assert(h,"Expected unrendered node"),assert(!h||e&&e.after,"opts.after expected, unless updating"),assert(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=22*this._rowIdx+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const f=document.createElement("span");f.classList.add("wb-title"),u.appendChild(f),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){assert(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):TEST_IMG.test(e)?l.style.backgroundImage=`url('${e}')`:l.className="wb-expander "+e}if(a){let e="wb-checkbox ";this.isRadio()?(e+="wb-radio ",this.selected?e+=i.radioChecked:e+=i.radioUnchecked):this.selected?e+=i.checkChecked:this._partsel?e+=i.checkUnknown:e+=i.checkUnchecked,a.className=e}if(!e.isNew){let e=0;for(const i of r.children)i.classList.toggle("wb-active",e++===t.activeColIdx),i.classList.remove("wb-error","wb-invalid");const i=o.querySelector("i.wb-icon");i&&this._createIcon(t.iconMap,o,i,!l)}if(!1!==e.resizeCols&&!this.isColspan()){const e=r.querySelectorAll("span.wb-col");let t=0,i=0;for(const s of this.tree.columns){const n=e[t];n.style.left=`${i}px`,n.style.width=`${s._widthPx}px`,t++,i+=s._widthPx}}}_render(e){const t=Object.assign({change:ChangeType.data},e);switch(this._rowElem||(t.change=ChangeType.row),t.change){case"status":this._render_status(t);break;case"data":this._render_data(t);break;case"row":this._render_markup(t);break;default:error(`Invalid change type '${t.change}'.`)}}resetLazy(){this.removeChildren(),this.expanded=!1,this.lazy=!0,this.children=null,this.tree.update(ChangeType.structure)}toDict(e=!1,t){const i={};if(NODE_DICT_PROPS.forEach((e=>{const t=this[e];t instanceof Set?t.size&&(i[e]=Array.prototype.join.call(t.keys()," ")):(t||!1===t||0===t)&&(i[e]=t)})),isEmptyObject(this.data)||(i.data=extend({},this.data),isEmptyObject(i.data)&&delete i.data),t){const s=t(i,this);if(!1===s)return!1;"skip"===s&&(e=!1)}if(e&&isArray(this.children)){i.children=[];for(let e=0,s=this.children.length;e=0&&([s,e]=e.split("."));const n=s[e];if("function"==typeof n){const e=n.call(i,{type:"resolve",tree:i,node:this});if(void 0!==e)return e}if(void 0!==this[e])return this[e];const r=this.type?i.types[this.type]:void 0,o=r?r[e]:void 0;return void 0!==o?o:null!=n?n:t}async scrollIntoView(e){const t=Object.assign({node:this},e);return this.tree.scrollTo(t)}async setActive(e=!0,t){const i=this.tree,s=i.getActiveNode(),n=null==t?void 0:t.retrigger,r=null==t?void 0:t.focusTree,o=null==t?void 0:t.noEvents,l=null==t?void 0:t.event,a=null==t?void 0:t.colIdx,d=null==t?void 0:t.edit;if(assert(!a||i.isCellNav(),"colIdx requires cellNav"),assert(!d||null!=a,"edit requires colIdx"),!o)if(e){if(s!==this||n){if(!1===(null==s?void 0:s._callEvent("deactivate",{nextNode:this,event:l}))||!1===this._callEvent("beforeActivate",{prevNode:s,event:l}))return;i._setActiveNode(null),null==s||s.update(ChangeType.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(ChangeType.status),this.update(ChangeType.status)),this.makeVisible().then((()=>{e&&((r||d)&&(i.setFocus(),i._setFocusNode(this),i.focusNode.setFocus()),null!=a&&i.isCellNav()&&i.setColumn(a,{edit:d}),o||this._callEvent("activate",{prevNode:s,event:l}))}))}async setExpanded(e=!0,t){const{force:i,scrollIntoView:s,immediate:n}=null!=t?t:{},r=!(null==t?void 0:t.noEvents);if(!e&&this.isExpanded()&&this.getLevel()<=this.tree.getOption("minExpandLevel")&&!i)return void this.logDebug("Ignored collapse request below minExpandLevel.");if(!e==!this.expanded)return;if(r&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children&&await this.loadLazy(),this.expanded=e;const o={immediate:n};if(this.tree.update(ChangeType.structure,o),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}r&&this._callEvent("expand",{flag:e})}setFocus(e=!0){assert(!!e,"Blur is not yet implemented");const t=this.tree.focusNode;this.tree._setFocusNode(this),null==t||t.update(),this.update()}setIcon(e){this.icon=e,this.update()}setKey(e,t){throw new Error("Not yet implemented")}update(e=ChangeType.data){assert(e===ChangeType.status||e===ChangeType.data,`Invalid change type ${e}`),this.tree.update(e,this)}getSelectedNodes(e=!1){const t=[];return this.visit((i=>{if(i.selected&&(t.push(i),!0===e))return"skip"})),t}toggleSelected(e){let t=this.isSelected();return t=void 0!==t||this.isRadio()?!t:this._anySelectable(),this.setSelected(t,e)}_anySelectable(){let e=!1;return this.visit((t=>{if(!1===t.selected&&!t.unselectable&&!t.hasChildren()&&!t.parent.radiogroup)return e=!0,!1})),e}_changeSelectStatusProps(e){let t=!1;switch(e){case!1:t=this.selected||this._partsel,this.selected=!1,this._partsel=!1;break;case!0:t=!this.selected||!this._partsel,this.selected=!0,this._partsel=!0;break;case void 0:t=this.selected||!this._partsel,this.selected=!1,this._partsel=!0;break;default:error(`Invalid state: ${e}`)}return t&&this.update(),t}fixSelection3AfterClick(e){const t=!!(null==e?void 0:e.force),i=this.isSelected();this.visit((e=>{if(e.radiogroup)return"skip";!t&&e.getOption("unselectable")||e._changeSelectStatusProps(i)})),this.fixSelection3FromEndNodes()}fixSelection3FromEndNodes(e){const t=!!(null==e?void 0:e.force);assert("hier"===this.tree.options.selectMode,"expected selectMode 'hier'");const i=e=>{let s;const n=e.children;if(n&&n.length){let e=!0,t=!1;for(let s=0,r=n.length;s{let t;const i=e.children;let s=!0,n=!1;for(let e=0,r=i.length;e{this.visit((t=>{t.setSelected(e)}))})),n):(e===n||s&&!1===this._callEvent("beforeSelect",{flag:e})||(i.runWithDeferredUpdate((()=>{if(r){if(!e&&!(null==t?void 0:t.force))return n;for(const e of this.parent.children)e.selected=e===this}else this.selected=e,"hier"===o?this.fixSelection3AfterClick():"single"===o&&i.visit((e=>{e.selected=!1}))})),s&&this._callEvent("select",{flag:e})),n):n}setStatus(e,t){const i=this.tree,s=null==t?void 0:t.message,n=null==t?void 0:t.details;let r=null;const o=e=>{const t=this.children,s=t?t[0]:null;return assert(e.statusNodeType,"Not a status node"),assert(!s||!s.isStatusNode(),"Child must not be a status node"),r=this.addNode(e,"prependChild"),r.match=!0,i.update(ChangeType.structure),r};switch((()=>{const e=this.children;e&&e.length&&e[0].isStatusNode()&&e[0].remove()})(),e){case"ok":this._isLoading=!1,this._errorInfo=null;break;case"loading":this._isLoading=!0,this._errorInfo=null,this.parent?this.update(ChangeType.status):o({statusNodeType:e,title:i.options.strings.loading+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n});break;case"error":o({statusNodeType:e,title:i.options.strings.loadError+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo={message:s,details:n};break;case"noData":o({statusNodeType:e,title:s||i.options.strings.noData,checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo=null;break;default:error("invalid node status "+e)}return i.update(ChangeType.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))NODE_PROPS.has(e)||(this.data[e]=t);t&&!this.statusNodeType&&e._registerNode(this)}toString(){return`WunderbaumNode@${this.key}<'${this.title}'>`}*[Symbol.iterator](){const e=this.children;if(e)for(let t=0,i=e.length;t=0,`options.before must be a direct child of ${this}`),this.children.splice(e,0,...o)}else this.children=o;i.update(ChangeType.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}assert(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=toSet(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:makeNodeTitleMatcher(e),i=[];return this.visit((e=>{t(e)&&i.push(e)})),i}findDirectChild(e){const t=this.children;if(!t)return null;if("string"==typeof e){for(let i=0,s=t.length;i{if(t(e))return i=e,!1})),i}findRelatedNode(e,t=!1){return this.tree.findRelatedNode(this,e,t)}*format_iter(e,t){function i(e){const t=e.parent.children;return e===t[t.length-1]}null!=t||(t=[" "," | "," ╰─ "," ├─ "]),null!=e||(e=e=>""+e);const s=s=>{const n=[e(s)];n.unshift(t[i(s)?2:3]);let r=s.parent;for(;r&&r!==this;)n.unshift(t[i(r)?0:1]),r=r.parent;return n.join("")};yield e(this);for(const e of this)yield s(e)}format(e,t){const i=[];for(const s of this.format_iter(e,t))i.push(s);return i.join("\n")}getColElem(e){var t;"string"==typeof e&&(e=this.tree.columns.findIndex((t=>t.id===e)));const i=null===(t=this._rowElem)||void 0===t?void 0:t.querySelectorAll("span.wb-col");return i?i[e]:null}getCloneList(e=!1){if(!this.refKey)return[];const t=this.tree.findByRefKey(this.refKey);return e?t:[...t].filter((e=>e!==this))}getFirstChild(){return this.children?this.children[0]:null}getLastChild(){return this.children?this.children[this.children.length-1]:null}getLevel(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}getNextSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t+1]||null}getParent(){return this.parent}getParentList(e=!1,t=!1){const i=[];let s=t?this:this.parent;for(;s;)(e||s.parent)&&i.unshift(s),s=s.parent;return i}getPath(e=!0,t="title",i="/"){let s;const n=[],r="function"==typeof t;return this.visitParents((e=>{e.parent&&(s=r?t(e):e[t],n.unshift(s))}),e),n.join(i)}getPrevSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t-1]||null}hasChildren(){if(this.lazy){if(null==this.children)return;if(0===this.children.length)return!1;if(1===this.children.length&&this.children[0].isStatusNode())return;return!0}return!(!this.children||!this.children.length)}hasClass(e){return!!this.classes&&this.classes.has(e)}hasFocus(){return this.tree.focusNode===this}isActive(){return this.tree.activeNode===this}isAncestorOf(e){return e&&e.isDescendantOf(this)}isChildOf(e){return e&&this.parent===e}isClone(){return!!this.refKey&&this.tree.findByRefKey(this.refKey).length>1}isColspan(){return!!this.getOption("colspan")}isDescendantOf(e){if(!e||e.tree!==this.tree)return!1;let t=this.parent;for(;t;){if(t===e)return!0;t===t.parent&&error(`Recursive parent link: ${t}`),t=t.parent}return!1}isExpandable(e=!1){return!(e&&this.expanded||!1===this.children)&&(null==this.children?!!this.lazy:0!==this.children.length||!!this.tree.options.emptyChildListExpandable)}isEditingTitle(){return this.tree._callMethod("edit.isEditingTitle",this)}isExpanded(){return!!this.expanded}isFirstSibling(){const e=this.parent;return!e||e.children[0]===this}isLastSibling(){const e=this.parent;return!e||e.children[e.children.length-1]===this}isLazy(){return!!this.lazy}isLoaded(){return!this.lazy||void 0!==this.hasChildren()}isLoading(){return this._isLoading}isPagingNode(){return"paging"===this.statusNodeType}isParentOf(e){return e&&e.parent===this}isPartload(){return!!this._partload}isPartsel(){return!this.selected&&!!this._partsel}isRadio(){return!!this.parent.radiogroup||"radio"===this.getOption("checkbox")}isRendered(){return!!this._rowElem}isRootNode(){return this.tree.root===this}isSelected(){return!!this.selected||!!this._partsel&&void 0}isStatusNode(){return!!this.statusNodeType}isTopLevel(){return this.tree.root===this.parent}isUnloaded(){return void 0===this.hasChildren()}isVisible(){const e="hide"===this.tree.filterMode,t=this.getParentList(!1,!1);if(e&&!this.match&&!this.subMatchCount)return!1;for(let e=0,i=t.length;ei)return void this.logWarn(`Ignored load response #${i} because #${this._requestId} is pending.`);if(this.logDebug(`Received response for load request #${i}`),null===this.parent&&null!==s)return void this.logWarn("Lazy parent node was removed while loading: discarding response.");this.setStatus(NodeStatusType.ok);const r=Date.now();this._loadSourceObject(t),l=Date.now()-r}else{if("function"==typeof e.then){const i=t.logTime(`Resolve thenable ${e}`);e=await Promise.resolve(e),t.logTimeEnd(i)}this._loadSourceObject(e),l=Date.now()-n}}catch(t){throw this.logError("Error during load()",e,t),this._callEvent("error",{error:t}),this.setStatus(NodeStatusType.error,{message:""+t}),t}finally{this._requestId=0,r=Date.now()-n,t.options.debugLevel>=3&&t.logInfo(`Load source took ${r/1e3} seconds (transfer: ${o/1e3}s, processing: ${l/1e3}s)`)}}async loadLazy(e=!1){const t=this.expanded;if(assert(this.lazy,"load() requires a lazy node"),e||this.isUnloaded())if(this.isLoading())this.logWarn("loadLazy() called while already loading: ignored.");else{this.isLoaded()&&this.resetLazy(),this.setStatus(NodeStatusType.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(NodeStatusType.ok);assert(isArray(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(NodeStatusType.ok),t?(this.expanded=!0,this.tree.update(ChangeType.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(NodeStatusType.error,{message:""+e})}}}log(...e){this.tree.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.tree.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.tree.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.tree.options.debugLevel>=3&&console.info(this.toString(),...e)}logWarn(...e){this.tree.options.debugLevel>=2&&console.warn(this.toString(),...e)}async makeVisible(e){let t;const i=new Deferred,s=[],n=this.getParentList(!1,!1),r=n.length,o=getOption(e,"noAnimation",!1),l=getOption(e,"scrollIntoView",!0);for(t=r-1;t>=0;t--){const e={noAnimation:o};s.push(n[t].setExpanded(!0,e))}return Promise.all(s).then((()=>{l&&this.tree?(this.tree.updatePendingModifications(),this.scrollIntoView().then((()=>{i.resolve()}))):i.resolve()})),i.promise()}moveTo(e,t="appendChild",i){let s;"over"===t&&(t="appendChild"),"prependChild"===t&&(e.children&&e.children.length?(t="before",e=e.children[0]):t="appendChild");const n=this.tree,r=this.parent,o="appendChild"===t?e:e.parent;if(this!==e){if(this.parent?o.isDescendantOf(this)&&error("Cannot move a node to its own descendant"):error("Cannot move system root"),o!==r&&r.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===o)return;this.parent.children=this.parent.lazy?[]:null,this.parent.expanded=!1}else s=this.parent.children.indexOf(this),assert(s>=0,"invalid source parent"),this.parent.children.splice(s,1);if(this.parent=o,o.hasChildren())switch(t){case"appendChild":o.children.push(this);break;case"before":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s,0,this);break;case"after":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s+1,0,this);break;default:error(`Invalid mode '${t}'.`)}else o.children=[this];i&&e.visit(i,!0),o===r?o.triggerModifyChild("move",this):o.triggerModifyChild("add",this),n!==e.tree&&(this.logWarn("Cross-tree moveTo is experimental!"),this.visit((t=>{t.tree=e.tree}),!0)),setTimeout((()=>{n.update(ChangeType.any)}),0)}}async navigate(e,t){e=KEY_TO_ACTION_DICT[e]||e;const i=this.findRelatedNode(e);if(!i)return this.logWarn(`Could not find related node '${e}'.`),Promise.resolve(this);try{i.makeVisible({scrollIntoView:!1})}catch(e){}return i.setFocus(),!1===(null==t?void 0:t.activate)?Promise.resolve(this):i.setActive(!0,{event:null==t?void 0:t.event})}remove(){const e=this.tree,t=this.parent.children.indexOf(this);this.triggerModify("remove"),this.parent.children.splice(t,1),this.visit((t=>{t.removeMarkup(),e._unregisterNode(t)}),!0),e.update(ChangeType.structure)}removeChildren(){var e,t;const i=this.tree;this.children&&((null===(e=i.activeNode)||void 0===e?void 0:e.isDescendantOf(this))&&i.activeNode.setActive(!1),(null===(t=i.focusNode)||void 0===t?void 0:t.isDescendantOf(this))&&i._setFocusNode(null),this.triggerModifyChild("remove",null),this.visit((e=>{i._unregisterNode(e)})),this.lazy?this.children=[]:this.children=null,this.isRootNode()||(this.expanded=!1),this.tree.update(ChangeType.structure))}removeMarkup(){this._rowElem&&(delete this._rowElem._wb_node,this._rowElem.remove(),this._rowElem=void 0)}_getRenderInfo(){const e={},t={},i=this.isColspan(),s=this._rowElem?this._rowElem.querySelectorAll("span.wb-col"):null;let n=0;for(const r of this.tree.columns)e[r.id]={id:r.id,idx:n,elem:s?s[n]:null,info:r},i||"*"===r.id||(t[r.id]=e[r.id]),n++;return{allColInfosById:e,renderColInfosById:t}}_createIcon(e,t,i,s){let n,r=this.getOption("icon");if(this._errorInfo?r=e.error:this._isLoading&&s&&(r=e.loading),!1===r)return null;"string"==typeof r||(r=this.statusNodeType?e[this.statusNodeType]:this.expanded?e.folderOpen:this.children?e.folder:this.lazy?e.folderLazy:e.doc),r?r.indexOf("<")>=0?n=elemFromHtml(r):TEST_IMG.test(r)?n=elemFromHtml(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";isPlainObject(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=elemFromHtml(`${escapeHtml(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;assert(h,"Expected unrendered node"),assert(!h||e&&e.after,"opts.after expected, unless updating"),assert(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=22*this._rowIdx+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const f=document.createElement("span");f.classList.add("wb-title"),u.appendChild(f),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){assert(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):TEST_IMG.test(e)?l.style.backgroundImage=`url('${e}')`:l.className="wb-expander "+e}if(a){let e="wb-checkbox ";this.isRadio()?(e+="wb-radio ",this.selected?e+=i.radioChecked:e+=i.radioUnchecked):this.selected?e+=i.checkChecked:this._partsel?e+=i.checkUnknown:e+=i.checkUnchecked,a.className=e}if(!e.isNew){let e=0;for(const i of r.children)i.classList.toggle("wb-active",e++===t.activeColIdx),i.classList.remove("wb-error","wb-invalid");const i=o.querySelector("i.wb-icon");i&&this._createIcon(t.iconMap,o,i,!l)}if(!1!==e.resizeCols&&!this.isColspan()){const e=r.querySelectorAll("span.wb-col");let t=0,i=0;for(const s of this.tree.columns){const n=e[t];n.style.left=`${i}px`,n.style.width=`${s._widthPx}px`,t++,i+=s._widthPx}}}_render(e){const t=Object.assign({change:ChangeType.data},e);switch(this._rowElem||(t.change=ChangeType.row),t.change){case"status":this._render_status(t);break;case"data":this._render_data(t);break;case"row":this._render_markup(t);break;default:error(`Invalid change type '${t.change}'.`)}}resetLazy(){this.removeChildren(),this.expanded=!1,this.lazy=!0,this.children=null,this.tree.update(ChangeType.structure)}toDict(e=!1,t){const i={};if(NODE_DICT_PROPS.forEach((e=>{const t=this[e];t instanceof Set?t.size&&(i[e]=Array.prototype.join.call(t.keys()," ")):(t||!1===t||0===t)&&(i[e]=t)})),isEmptyObject(this.data)||(i.data=extend({},this.data),isEmptyObject(i.data)&&delete i.data),t){const s=t(i,this);if(!1===s)return!1;"skip"===s&&(e=!1)}if(e&&isArray(this.children)){i.children=[];for(let e=0,s=this.children.length;e=0&&([s,e]=e.split("."));const n=s[e];if("function"==typeof n){const e=n.call(i,{type:"resolve",tree:i,node:this});if(void 0!==e)return e}if(void 0!==this[e])return this[e];const r=this.type?i.types[this.type]:void 0,o=r?r[e]:void 0;return void 0!==o?o:null!=n?n:t}async scrollIntoView(e){const t=Object.assign({node:this},e);return this.tree.scrollTo(t)}async setActive(e=!0,t){const i=this.tree,s=i.getActiveNode(),n=null==t?void 0:t.retrigger,r=null==t?void 0:t.focusTree,o=null==t?void 0:t.noEvents,l=null==t?void 0:t.event,a=null==t?void 0:t.colIdx,d=null==t?void 0:t.edit;if(assert(!a||i.isCellNav(),"colIdx requires cellNav"),assert(!d||null!=a,"edit requires colIdx"),!o)if(e){if(s!==this||n){if(!1===(null==s?void 0:s._callEvent("deactivate",{nextNode:this,event:l}))||!1===this._callEvent("beforeActivate",{prevNode:s,event:l}))return;i._setActiveNode(null),null==s||s.update(ChangeType.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(ChangeType.status),this.update(ChangeType.status)),this.makeVisible().then((()=>{e&&((r||d)&&(i.setFocus(),i._setFocusNode(this),i.focusNode.setFocus()),null!=a&&i.isCellNav()&&i.setColumn(a,{edit:d}),o||this._callEvent("activate",{prevNode:s,event:l}))}))}async setExpanded(e=!0,t){const{force:i,scrollIntoView:s,immediate:n}=null!=t?t:{},r=!(null==t?void 0:t.noEvents);if(!e&&this.isExpanded()&&this.getLevel()<=this.tree.getOption("minExpandLevel")&&!i)return void this.logDebug("Ignored collapse request below minExpandLevel.");if(!e==!this.expanded)return;if(r&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children&&await this.loadLazy(),this.expanded=e;const o={immediate:n};if(this.tree.update(ChangeType.structure,o),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}r&&this._callEvent("expand",{flag:e})}setFocus(e=!0){assert(!!e,"Blur is not yet implemented");const t=this.tree.focusNode;this.tree._setFocusNode(this),null==t||t.update(),this.update()}setIcon(e){this.icon=e,this.update()}setKey(e,t){throw new Error("Not yet implemented")}update(e=ChangeType.data){assert(e===ChangeType.status||e===ChangeType.data,`Invalid change type ${e}`),this.tree.update(e,this)}getSelectedNodes(e=!1){const t=[];return this.visit((i=>{if(i.selected&&(t.push(i),!0===e))return"skip"})),t}toggleSelected(e){let t=this.isSelected();return t=void 0!==t||this.isRadio()?!t:this._anySelectable(),this.setSelected(t,e)}_anySelectable(){let e=!1;return this.visit((t=>{if(!1===t.selected&&!t.unselectable&&!t.hasChildren()&&!t.parent.radiogroup)return e=!0,!1})),e}_changeSelectStatusProps(e){let t=!1;switch(e){case!1:t=this.selected||this._partsel,this.selected=!1,this._partsel=!1;break;case!0:t=!this.selected||!this._partsel,this.selected=!0,this._partsel=!0;break;case void 0:t=this.selected||!this._partsel,this.selected=!1,this._partsel=!0;break;default:error(`Invalid state: ${e}`)}return t&&this.update(),t}fixSelection3AfterClick(e){const t=!!(null==e?void 0:e.force),i=this.isSelected();this.visit((e=>{if(e.radiogroup)return"skip";!t&&e.getOption("unselectable")||e._changeSelectStatusProps(i)})),this.fixSelection3FromEndNodes()}fixSelection3FromEndNodes(e){const t=!!(null==e?void 0:e.force);assert("hier"===this.tree.options.selectMode,"expected selectMode 'hier'");const i=e=>{let s;const n=e.children;if(n&&n.length){let e=!0,t=!1;for(let s=0,r=n.length;s{let t;const i=e.children;let s=!0,n=!1;for(let e=0,r=i.length;e{this.visit((t=>{t.setSelected(e)}))})),n):(e===n||s&&!1===this._callEvent("beforeSelect",{flag:e})||(i.runWithDeferredUpdate((()=>{if(r){if(!e&&!(null==t?void 0:t.force))return n;for(const e of this.parent.children)e.selected=e===this}else this.selected=e,"hier"===o?this.fixSelection3AfterClick():"single"===o&&i.visit((e=>{e.selected=!1}))})),s&&this._callEvent("select",{flag:e})),n):n}setStatus(e,t){const i=this.tree,s=null==t?void 0:t.message,n=null==t?void 0:t.details;let r=null;const o=e=>{const t=this.children,s=t?t[0]:null;return assert(e.statusNodeType,"Not a status node"),assert(!s||!s.isStatusNode(),"Child must not be a status node"),r=this.addNode(e,"prependChild"),r.match=!0,i.update(ChangeType.structure),r};switch((()=>{const e=this.children;e&&e.length&&e[0].isStatusNode()&&e[0].remove()})(),e){case"ok":this._isLoading=!1,this._errorInfo=null;break;case"loading":this._isLoading=!0,this._errorInfo=null,this.parent?this.update(ChangeType.status):o({statusNodeType:e,title:i.options.strings.loading+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n});break;case"error":o({statusNodeType:e,title:i.options.strings.loadError+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo={message:s,details:n};break;case"noData":o({statusNodeType:e,title:s||i.options.strings.noData,checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo=null;break;default:error("invalid node status "+e)}return i.update(ChangeType.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s{s.data[i]=n,t&&s.children&&s.resetNativeChildOrder(e)}))}sortByProperty(e){var t,i,s;const{caseInsensitive:n=!0,deep:r=!0,nativeOrderPropName:o="_nativeIndex",updateColInfo:l=!1}=e;let a,d;if(l){d=this.tree._columnsById[e.colId],assert(d,`Invalid colId specified: ${e.colId}`),a=null!==(t=e.order)&&void 0!==t?t:rotate(d.sortOrder,["asc","desc",void 0]);for(const e of this.tree.columns)e.sortOrder=e===d?a:void 0;this.tree.update(ChangeType.colStructure)}else a=null!==(i=e.order)&&void 0!==i?i:"asc";let c=null!==(s=e.propName)&&void 0!==s?s:e.colId||"";"*"===c&&(c="title"),null==a&&(c=o,a="asc"),this.logDebug(`sortByProperty(), propName=${c}, ${a}`,e),assert(c,"No property name specified");return this.sortChildren(((e,t)=>{let i,s;return NODE_DICT_PROPS.has(c)?(i=e[c],s=t[c]):(i=e.data[c],s=t.data[c]),n&&("string"==typeof i&&(i=i.toLowerCase()),"string"==typeof s&&(s=s.toLowerCase())),"desc"===a?i===s?0:i>s?-1:1:i===s?0:i>s?1:-1}),r)}triggerModifyChild(e,t,i){this.logDebug(`modifyChild(${e})`,i,t),this.tree.options.modifyChild&&(t&&t.parent!==this&&error("child "+t+" is not a child of "+this),this._callEvent("modifyChild",extend({operation:e,child:t},i)))}triggerModify(e,t){this.parent.triggerModifyChild(e,this,t)}visit(e,t=!1){let i=!0;const s=this.children;if(!0===t&&(i=e(this),!1===i||"skip"===i))return i;if(s)for(let t=0,n=s.length;t{const r=t._callEvent(e,n);Promise.resolve(r).then((e=>{i(e)})).catch((e=>{s(e)}))})).then((e=>{if(!s.checkValidity())throw t.logWarn("inputElem.checkValidity() failed: throwing...."),new ValidationError(s.validationMessage);return e})).catch((n=>{if(!(n instanceof ValidationError))throw t.logError(`Error in ${e} event handler (throw e.util.ValidationError instead if this was intended)`,n),i.classList.add("wb-error"),n;t.logWarn("catched ",n),i.classList.add("wb-invalid"),s.setCustomValidity&&!s.validationMessage&&s.setCustomValidity(n.message),s.validationMessage&&s.reportValidity()})).finally((()=>{i.classList.remove("wb-busy")}))}_onChange(e){const t=Wunderbaum.getEventInfo(e),i=t.node,s=t.colElem;i&&0!==t.colIdx?this._applyChange("change",i,s,e.target,{info:t,event:e,inputElem:e.target,inputValue:Wunderbaum.util.getValueFromElem(e.target),inputValid:e.target.checkValidity()}):this.tree.log("Ignored change event for removed element or node title")}init(){super.init(),onEvent(this.tree.element,"change",".contenteditable,input,textarea,select",(e=>this._onChange(e)))}_preprocessKeyEvent(e){const t=e.event,i=eventToString(t),s=this.tree,n=this.getPluginOption("trigger");if(this.isEditingTitle()){switch(i){case"Enter":return this._stopEditTitle(!0,{event:t}),!1;case"Escape":return this._stopEditTitle(!1,{event:t}),!1}return!1}if(s.isRowNav()||0===s.activeColIdx){switch(i){case"Enter":if(n.indexOf("macEnter")>=0&&isMac)return this.startEditTitle(),!1;break;case"F2":if(n.indexOf("F2")>=0)return this.startEditTitle(),!1}return!0}return!0}isEditingTitle(e){return e?this.curEditNode===e:!!this.curEditNode}startEditTitle(e){e=null!=e?e:this.tree.getActiveNode();const t=this.getPluginOption("validity"),i=this.getPluginOption("select");if(!e)return;this.tree.logDebug(`startEditTitle(node=${e})`);let s=e._callEvent("edit.beforeEdit");if(!1===s)return void e.logDebug("beforeEdit canceled operation.");if(!0===s||!s){const t=escapeHtml(e.title);let i=this.getPluginOption("maxlength");const n=i?` maxlength="${i}"`:"";i=this.getPluginOption("minlength");s=`0?" required":""}${i?` minlength="${i}"`:""}${n} >`}const n=e.getColElem(0).querySelector(".wb-title");n.innerHTML=s;const r=n.firstElementChild;t&&r.addEventListener("keydown",(t=>{r.setCustomValidity(""),r.reportValidity()||e.logWarn(`Invalid input: '${r.value}'`)})),r.focus(),i&&r.select(),this.curEditNode=e,e._callEvent("edit.edit",{inputElem:r})}stopEditTitle(e){return this._stopEditTitle(e,{})}_stopEditTitle(e,t){var i;null!=t||(t={});const s=document.activeElement;let n=s?getValueFromElem(s):null;const r=this.curEditNode,o=!!t.forceClose,l=this.getPluginOption("validity");if(n&&this.getPluginOption("trim")&&(n=n.trim()),r)if(r.logDebug(`stopEditTitle(${e})`,t,s,n),e&&null!==n&&n!==r.title){const e=s.validationMessage;if(e)throw new Error(`Input validation failed for "${n}": ${e}.`);const t=r.getColElem(0);this._applyChange("edit.apply",r,t,s,{oldValue:r.title,newValue:n,inputElem:s,inputValid:s.checkValidity()}).then((e=>{var t;const i=s.validationMessage;if(l&&i&&!1!==e)throw new Error(`Edit apply validation failed for "${n}": ${i}.`);(o||!1!==e)&&(null==r||r.setTitle(n),null===(t=this.curEditNode)||void 0===t||t._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus())}))}else null===(i=this.curEditNode)||void 0===i||i._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus();else this.tree.logDebug("stopEditTitle: not in edit mode.")}createNode(e="after",t,i){const s=this.tree;if(assert(t=null!=t?t:s.getActiveNode(),"No node was passed, or no node is currently active."),e=e||"prependChild",null==i?i={title:""}:"string"==typeof i?i={title:i}:assert(isPlainObject(i),`Expected a plain object: ${i}`),("prependChild"===e||"appendChild"===e)&&(null==t?void 0:t.isExpandable(!0)))return void t.setExpanded().then((()=>{this.createNode(e,t,i)}));const n=t.addNode(i,e);n.setClass("wb-edit-new"),this.relatedNode=t,n.match=!0,n.makeVisible({noAnimation:!0}).then((()=>{this.startEditTitle(n)}))}} /*! @@ -80,7 +80,7 @@ class EditExtension extends WunderbaumExtension{constructor(e){super(e,"edit",{d * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.10.1 - * @date Sat, 20 Jul 2024 13:53:46 GMT - */class WbSystemRoot extends WunderbaumNode{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class Wunderbaum{get activeNode(){var e;return(null===(e=this._activeNode)||void 0===e?void 0:e.tree)?this._activeNode:null}get focusNode(){var e;return(null===(e=this._focusNode)||void 0===e?void 0:e.tree)?this._focusNode:null}constructor(e){this.enabled=!0,this.data={},this.extensionList=[],this.extensions={},this.keyMap=new Map,this.refKeyMap=new Map,this.treeRowCount=0,this._disableUpdateCount=0,this._disableUpdateIgnoreCount=0,this._activeNode=null,this._focusNode=null,this.types={},this.columns=[],this._columnsById={},this.pendingChangeTypes=new Set,this._util=util,this.filterMode=null,this.activeColIdx=0,this._cellNavMode=!1,this.lastQuicksearchTime=0,this.lastQuicksearchTerm="",this.lastClickTime=0;const t=this.options=extend({id:null,source:null,element:null,debugLevel:3,header:null,rowHeightPx:22,iconMap:"bootstrap",columns:null,types:null,enabled:!0,fixedCol:!1,showSpinner:!1,checkbox:!1,minExpandLevel:0,emptyChildListExpandable:!1,skeleton:!1,connectTopBreadcrumb:null,selectMode:"multi",navigationModeOption:null,quicksearch:!0,iconBadge:null,change:null,error:null,receive:null,strings:{loadError:"Error",loading:"Loading...",noData:"No data"}},e),i=new Deferred;this.ready=i.promise();let s=!1;if(this.ready.then((()=>{s=!0;try{this._callEvent("init")}catch(e){this.logError("Exception inside `init(e)` event:",e)}})).catch((e=>{if(s)throw e;this._callEvent("init",{error:e})})),this.id=t.id||"wb_"+ ++Wunderbaum.sequence,this.root=new WbSystemRoot(this),this._registerExtension(new KeynavExtension(this)),this._registerExtension(new EditExtension(this)),this._registerExtension(new FilterExtension(this)),this._registerExtension(new DndExtension(this)),this._registerExtension(new GridExtension(this)),this._registerExtension(new LoggerExtension(this)),this._updateViewportThrottled=adaptiveThrottle(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=elemFromSelector(t.element),assert(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){assert(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(NavModeEnum.cell):this.setNavigationOption(NavModeEnum.row):this.setNavigationOption(t.navigationModeOption),this.update(ChangeType.structure,{immediate:!0}),i.resolve()})).catch((e=>{i.reject(e)})).finally((()=>{var e;null===(e=this.element.querySelector("progress.spinner"))||void 0===e||e.remove(),this.element.classList.remove("wb-initializing")}))):i.resolve(),this.update(ChangeType.any),this.element.addEventListener("scroll",(e=>{this.update(ChangeType.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(ChangeType.resize)})),this.resizeObserver.observe(this.element),onEvent(this.nodeListElement,"click","div.wb-row",(t=>{const i=Wunderbaum.getEventInfo(t),s=i.node,n=t;if(!1===this._callEvent("click",{event:t,node:s,info:i}))return this.lastClickTime=Date.now(),!1;if(s){if(n.ctrlKey)return void s.toggleSelected();const r=this.getOption("edit.trigger"),o=this.getOption("edit.slowClickDelay");r.indexOf("clickActive")>=0&&"title"===i.region&&s.isActive()&&(!o||Date.now()-this.lastClickTime=0?s.setActive(!0,{colIdx:i.colIdx,event:t}):s.setActive(!0,{event:t}),i.region===NodeRegion.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===NodeRegion.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),onEvent(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=Wunderbaum.getEventInfo(e),i=t.node;if(!1===this._callEvent("dblclick",{event:e,node:i,info:t}))return!1;i&&0===t.colIdx&&i.isExpandable()&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),onEvent(this.element,"keydown",(e=>{const t=Wunderbaum.getEventInfo(e),i=eventToString(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),onEvent(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=Wunderbaum.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===NavModeEnum.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof Wunderbaum)return e;if(e instanceof WunderbaumNode)return e.tree;if(void 0===e&&(e=0),"number"==typeof e)e=document.querySelectorAll(".wunderbaum")[e];else if("string"==typeof e){for(const t of document.querySelectorAll(".wunderbaum")){const i=t._wb_tree;if(i&&i.id===e)return i}if(!(e=document.querySelector(e)))return null}else e.target&&(e=e.target);return assert(e instanceof Element,`Invalid el type: ${e}`),e.matches(".wunderbaum")||(e=e.closest(".wunderbaum")),e&&e._wb_tree?e._wb_tree:null}get iconMap(){const e=this.options.iconMap;return"string"==typeof e?iconMaps[e]:e}static getNode(e){if(!e)return null;if(e instanceof WunderbaumNode)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;assert(null!=t,`Missing key: '${e}'.`),assert(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=extend({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,extend({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/22):Math.floor(t/22),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/22)-1:Math.ceil((s+n)/22)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof WunderbaumNode?s=t:(s=this.getActiveNode(),assert(void 0===i,`Unexpected options: ${i}`),i=t),e){case"moveUp":n=s.getPrevSibling(),n&&(s.moveTo(n,"before"),s.setActive());break;case"moveDown":n=s.getNextSibling(),n&&(s.moveTo(n,"after"),s.setActive());break;case"indent":n=s.getPrevSibling(),n&&(s.moveTo(n,"appendChild"),n.setExpanded(),s.setActive());break;case"outdent":s.isTopLevel()||(s.moveTo(s.getParent(),"after"),s.setActive());break;case"remove":n=s.getPrevSibling()||s.getParent(),s.remove(),n&&n.setActive();break;case"addChild":this._callMethod("edit.createNode","prependChild");break;case"addSibling":this._callMethod("edit.createNode","after");break;case"rename":s.startEditTitle();break;case"down":case"first":case"last":case"left":case"pageDown":case"pageUp":case"parent":case"right":case"up":return s.navigate(e);default:error(`Unhandled command: '${e}'`)}}clear(){this.root.removeChildren(),this.root.children=null,this.keyMap.clear(),this.refKeyMap.clear(),this.treeRowCount=0,this._activeNode=null,this._focusNode=null,this.update(ChangeType.structure)}destroy(){this.logInfo("destroy()..."),this.clear(),this.resizeObserver.disconnect(),this.element.innerHTML="",this.element.outerHTML=this.element.outerHTML}getOption(e,t){let i,s=this.options;e.indexOf(".")>=0&&([i,e]=e.split("."),s=s[i]);let n=s[e];return"function"==typeof n&&(n=n({type:"resolve",tree:this})),null!=n?n:t}setOption(e,t){if(e.indexOf(".")>=0){const i=e.split(".");this.extensions[i[0]].setPluginOption(i[1],t)}else switch(this.options[e]=t,e){case"checkbox":this.update(ChangeType.any);break;case"enabled":this.setEnabled(!!t);break;case"fixedCol":this.element.classList.toggle("wb-fixed-col",!!t)}}hasFocus(){return this.element.contains(document.activeElement)}hasHeader(){const e=this.options.header;return this.isGrid()?!1!==e:!!e}runWithDeferredUpdate(e,t=null){try{this.enableUpdate(!1);const t=e();return assert(!(t instanceof Promise),`Promise return not allowed: ${t}`),t}finally{this.enableUpdate(!0)}}async expandAll(e=!0,t){await this.root.expandAll(e,t)}selectAll(e=!0){return this.root.setSelected(e,{propagateDown:!0})}toggleSelect(){this.selectAll(this.root._anySelectable())}getSelectedNodes(e=!1){return this.root.getSelectedNodes(e)}_selectRange(e){this.logDebug("_selectRange",e),error("Not yet implemented.")}count(e=!1){return e?this.treeRowCount:this.keyMap.size}_check(){let e=0;this.visit((t=>{e++})),this.keyMap.size!==e&&this.logWarn(`_check failed: ${this.keyMap.size} !== ${e}`)}findAll(e){return this.root.findAll(e)}findByRefKey(e){const t=this.refKeyMap.get(e);return t?Array.from(t):[]}findFirst(e){return this.root.findFirst(e)}findKey(e){return this.keyMap.get(e)||null}findNextNode(e,t){let i=null;const s=this.getFirstChild(),n="string"==typeof e?makeNodeTitleStartMatcher(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/22);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=Wunderbaum.getNode(t),r=n?n.tree:Wunderbaum.getTree(e),o={event:e,canonicalName:eventToString(e),tree:r,node:n,region:NodeRegion.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=NodeRegion.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?NodeRegion.expander:NodeRegion.prefix;else if(i.contains("wb-checkbox"))o.region=NodeRegion.checkbox;else if(i.contains("wb-icon"))o.region=NodeRegion.icon;else if(i.contains("wb-node"))o.region=NodeRegion.title;else if(s){o.region=NodeRegion.column;const e=Array.prototype.indexOf.call(s.parentNode.children,s);o.colIdx=e}else{if(!i.contains("wb-row"))return"mousemove"===e.type||e instanceof KeyboardEvent||null==r||r.logWarn("getEventInfo(): not found",e,o),o;o.region=NodeRegion.title}return-1===o.colIdx&&(o.colIdx=0),o.colDef=null==r?void 0:r.columns[o.colIdx],null!=o.colDef&&(o.colId=o.colDef.id),o}toString(){return`Wunderbaum<'${this.id}'>`}isEditing(){return!!this.nodeListElement.querySelector("input:focus,select:focus")}isEditingTitle(){return this._callMethod("edit.isEditingTitle")}isLoading(){let e=!1;return this.root.visit((t=>{if(t._isLoading||t._requestId)return e=!0,!1}),!0),e}log(...e){this.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.options.debugLevel>=3&&console.info(this.toString(),...e)}logTime(e){return this.options.debugLevel>=4&&console.time(this+": "+e),e}logTimeEnd(e){this.options.debugLevel>=4&&console.timeEnd(this+": "+e)}logWarn(...e){this.options.debugLevel>=2&&console.warn(this.toString(),...e)}resetColumns(){this.columns.forEach((e=>{delete e.customWidthPx})),this.update(ChangeType.colStructure)}scrollTo(e){let t,i;e instanceof WunderbaumNode?t=e:(i=e,t=i.node),assert(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=22*t._rowIdx+n,a=n,d=l-r,c=d+22,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+22-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(assert(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;assert((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(assert(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update(ChangeType.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===NavModeEnum.row)switch(this.options.navigationModeOption=e,e){case NavModeEnum.cell:this.setCellNav(!0);break;case NavModeEnum.row:this.setCellNav(!1);break;case NavModeEnum.startCell:t&&this.setCellNav(!0);break;case NavModeEnum.startRow:t&&this.setCellNav(!1);break;default:error(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){assert(isPlainObject(e),`Expected plain objext: ${e}`),t?this.types=e:extend(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=toSet(e.classes))}sortChildren(e=nodeTitleSorter,t=!1){this.root.sortChildren(e,t)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.customWidthPx?`${e.customWidthPx}px`:e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else error(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_renderHeaderMarkup(){assert(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(setElemDisplay(this.headerElement,e),!e)return;const t=this.columns.length,i=this.headerElement.querySelector(".wb-row");assert(i,"Expected a row in header element"),i.innerHTML="".repeat(t);for(let e=0;e':''),n.innerHTML=`${r}${l}`,this.isCellNav()&&n.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=RenderFlag,i=new Set(this.pendingChangeTypes);this.pendingChangeTypes.clear();if(i.has(t.scroll)&&1===i.size)this._updateRows({newNodesOnly:!0});else{if(this.log("_updateViewportImmediately():",i),!1!==this.options.adjustHeight){let e=this.listContainerElement.clientHeight;const t=this.headerElement.clientHeight,i=this.element.clientHeight-t-1;Math.abs(e-i)>1&&(this.listContainerElement.style.height=i+"px",e=i)}i.has(t.clearMarkup)&&this.visit((e=>{e.removeMarkup()})),i.has(t.header)&&(this._updateColumnWidths(),this._renderHeaderMarkup()),this._updateRows()}if(this.options.connectTopBreadcrumb){assert(null!=this.options.connectTopBreadcrumb.textContent,"Invalid 'connectTopBreadcrumb' option (input element expected).");let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=22*l+"px",c=i):(o.delete(e),i&&(i.style.top=22*l+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,assert(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),assert(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(assert(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update(ChangeType.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}countMatches(){return this.extensions.filter.countMatches()}filterBranches(e,t){return this.extensions.filter.filterBranches(e,t)}clearFilter(){return this.extensions.filter.clearFilter()}isFilterActive(){return!!this.filterMode}updateFilter(){return this.extensions.filter.updateFilter()}}Wunderbaum.sequence=0,Wunderbaum.version="v0.10.1",Wunderbaum.util=util;export{Wunderbaum}; + * @version v0.11.0 + * @date Sun, 04 Aug 2024 15:35:53 GMT + */class WbSystemRoot extends WunderbaumNode{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class Wunderbaum{get activeNode(){var e;return(null===(e=this._activeNode)||void 0===e?void 0:e.tree)?this._activeNode:null}get focusNode(){var e;return(null===(e=this._focusNode)||void 0===e?void 0:e.tree)?this._focusNode:null}constructor(e){this.enabled=!0,this.data={},this.extensionList=[],this.extensions={},this.keyMap=new Map,this.refKeyMap=new Map,this.treeRowCount=0,this._disableUpdateCount=0,this._disableUpdateIgnoreCount=0,this._activeNode=null,this._focusNode=null,this.types={},this.columns=[],this._columnsById={},this.pendingChangeTypes=new Set,this._util=util,this.filterMode=null,this.activeColIdx=0,this._cellNavMode=!1,this.lastQuicksearchTime=0,this.lastQuicksearchTerm="",this.lastClickTime=0;const t=this.options=extend({id:null,source:null,element:null,debugLevel:3,header:null,rowHeightPx:22,iconMap:"bootstrap",columns:null,types:null,enabled:!0,fixedCol:!1,showSpinner:!1,checkbox:!1,minExpandLevel:0,emptyChildListExpandable:!1,skeleton:!1,connectTopBreadcrumb:null,selectMode:"multi",navigationModeOption:null,quicksearch:!0,iconBadge:null,change:null,error:null,receive:null,strings:{loadError:"Error",loading:"Loading...",noData:"No data"}},e),i=new Deferred;this.ready=i.promise();let s=!1;if(this.ready.then((()=>{s=!0;try{this._callEvent("init")}catch(e){this.logError("Exception inside `init(e)` event:",e)}})).catch((e=>{if(s)throw e;this._callEvent("init",{error:e})})),this.id=t.id||"wb_"+ ++Wunderbaum.sequence,this.root=new WbSystemRoot(this),this._registerExtension(new KeynavExtension(this)),this._registerExtension(new EditExtension(this)),this._registerExtension(new FilterExtension(this)),this._registerExtension(new DndExtension(this)),this._registerExtension(new GridExtension(this)),this._registerExtension(new LoggerExtension(this)),this._updateViewportThrottled=adaptiveThrottle(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=elemFromSelector(t.element),assert(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){assert(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(NavModeEnum.cell):this.setNavigationOption(NavModeEnum.row):this.setNavigationOption(t.navigationModeOption),this.update(ChangeType.structure,{immediate:!0}),i.resolve()})).catch((e=>{i.reject(e)})).finally((()=>{var e;null===(e=this.element.querySelector("progress.spinner"))||void 0===e||e.remove(),this.element.classList.remove("wb-initializing")}))):i.resolve(),this.update(ChangeType.any),this.element.addEventListener("scroll",(e=>{this.update(ChangeType.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(ChangeType.resize)})),this.resizeObserver.observe(this.element),onEvent(this.element,"click",".wb-button,.wb-col-icon",(e=>{var t,i;const s=Wunderbaum.getEventInfo(e),n=null===(i=null===(t=e.target)||void 0===t?void 0:t.dataset)||void 0===i?void 0:i.command;this._callEvent("buttonClick",{event:e,info:s,command:n})})),onEvent(this.nodeListElement,"click","div.wb-row",(t=>{const i=Wunderbaum.getEventInfo(t),s=i.node,n=t;if(!1===this._callEvent("click",{event:t,node:s,info:i}))return this.lastClickTime=Date.now(),!1;if(s){if(n.ctrlKey)return void s.toggleSelected();const r=this.getOption("edit.trigger"),o=this.getOption("edit.slowClickDelay");r.indexOf("clickActive")>=0&&"title"===i.region&&s.isActive()&&(!o||Date.now()-this.lastClickTime=0?s.setActive(!0,{colIdx:i.colIdx,event:t}):s.setActive(!0,{event:t}),i.region===NodeRegion.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===NodeRegion.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),onEvent(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=Wunderbaum.getEventInfo(e),i=t.node;if(!1===this._callEvent("dblclick",{event:e,node:i,info:t}))return!1;i&&0===t.colIdx&&i.isExpandable()&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),onEvent(this.element,"keydown",(e=>{const t=Wunderbaum.getEventInfo(e),i=eventToString(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),onEvent(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=Wunderbaum.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===NavModeEnum.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof Wunderbaum)return e;if(e instanceof WunderbaumNode)return e.tree;if(void 0===e&&(e=0),"number"==typeof e)e=document.querySelectorAll(".wunderbaum")[e];else if("string"==typeof e){for(const t of document.querySelectorAll(".wunderbaum")){const i=t._wb_tree;if(i&&i.id===e)return i}if(!(e=document.querySelector(e)))return null}else e.target&&(e=e.target);return assert(e instanceof Element,`Invalid el type: ${e}`),e.matches(".wunderbaum")||(e=e.closest(".wunderbaum")),e&&e._wb_tree?e._wb_tree:null}get iconMap(){const e=this.options.iconMap;return"string"==typeof e?iconMaps[e]:e}static getNode(e){if(!e)return null;if(e instanceof WunderbaumNode)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;assert(null!=t,`Missing key: '${e}'.`),assert(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=extend({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,extend({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/22):Math.floor(t/22),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/22)-1:Math.ceil((s+n)/22)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof WunderbaumNode?s=t:(s=this.getActiveNode(),assert(void 0===i,`Unexpected options: ${i}`),i=t),e){case"moveUp":n=s.getPrevSibling(),n&&(s.moveTo(n,"before"),s.setActive());break;case"moveDown":n=s.getNextSibling(),n&&(s.moveTo(n,"after"),s.setActive());break;case"indent":n=s.getPrevSibling(),n&&(s.moveTo(n,"appendChild"),n.setExpanded(),s.setActive());break;case"outdent":s.isTopLevel()||(s.moveTo(s.getParent(),"after"),s.setActive());break;case"remove":n=s.getPrevSibling()||s.getParent(),s.remove(),n&&n.setActive();break;case"addChild":this._callMethod("edit.createNode","prependChild");break;case"addSibling":this._callMethod("edit.createNode","after");break;case"rename":s.startEditTitle();break;case"down":case"first":case"last":case"left":case"pageDown":case"pageUp":case"parent":case"right":case"up":return s.navigate(e);default:error(`Unhandled command: '${e}'`)}}clear(){this.root.removeChildren(),this.root.children=null,this.keyMap.clear(),this.refKeyMap.clear(),this.treeRowCount=0,this._activeNode=null,this._focusNode=null,this.update(ChangeType.structure)}destroy(){this.logInfo("destroy()..."),this.clear(),this.resizeObserver.disconnect(),this.element.innerHTML="",this.element.outerHTML=this.element.outerHTML}getOption(e,t){let i,s=this.options;e.indexOf(".")>=0&&([i,e]=e.split("."),s=s[i]);let n=s[e];return"function"==typeof n&&(n=n({type:"resolve",tree:this})),null!=n?n:t}setOption(e,t){if(e.indexOf(".")>=0){const i=e.split(".");this.extensions[i[0]].setPluginOption(i[1],t)}else switch(this.options[e]=t,e){case"checkbox":this.update(ChangeType.any);break;case"enabled":this.setEnabled(!!t);break;case"fixedCol":this.element.classList.toggle("wb-fixed-col",!!t)}}hasFocus(){return this.element.contains(document.activeElement)}hasHeader(){const e=this.options.header;return this.isGrid()?!1!==e:!!e}runWithDeferredUpdate(e,t=null){try{this.enableUpdate(!1);const t=e();return assert(!(t instanceof Promise),`Promise return not allowed: ${t}`),t}finally{this.enableUpdate(!0)}}async expandAll(e=!0,t){await this.root.expandAll(e,t)}selectAll(e=!0){return this.root.setSelected(e,{propagateDown:!0})}toggleSelect(){this.selectAll(this.root._anySelectable())}getSelectedNodes(e=!1){return this.root.getSelectedNodes(e)}_selectRange(e){this.logDebug("_selectRange",e),error("Not yet implemented.")}count(e=!1){return e?this.treeRowCount:this.keyMap.size}_check(){let e=0;this.visit((t=>{e++})),this.keyMap.size!==e&&this.logWarn(`_check failed: ${this.keyMap.size} !== ${e}`)}findAll(e){return this.root.findAll(e)}findByRefKey(e){const t=this.refKeyMap.get(e);return t?Array.from(t):[]}findFirst(e){return this.root.findFirst(e)}findKey(e){return this.keyMap.get(e)||null}findNextNode(e,t){let i=null;const s=this.getFirstChild(),n="string"==typeof e?makeNodeTitleStartMatcher(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/22);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=Wunderbaum.getNode(t),r=n?n.tree:Wunderbaum.getTree(e),o={event:e,canonicalName:eventToString(e),tree:r,node:n,region:NodeRegion.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=NodeRegion.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?NodeRegion.expander:NodeRegion.prefix;else if(i.contains("wb-checkbox"))o.region=NodeRegion.checkbox;else if(i.contains("wb-icon"))o.region=NodeRegion.icon;else if(i.contains("wb-node"))o.region=NodeRegion.title;else if(s){o.region=NodeRegion.column;const e=Array.prototype.indexOf.call(s.parentNode.children,s);o.colIdx=e}else{if(!i.contains("wb-row"))return"mousemove"===e.type||e instanceof KeyboardEvent||null==r||r.logWarn("getEventInfo(): not found",e,o),o;o.region=NodeRegion.title}return-1===o.colIdx&&(o.colIdx=0),o.colDef=null==r?void 0:r.columns[o.colIdx],null!=o.colDef&&(o.colId=o.colDef.id),o}toString(){return`Wunderbaum<'${this.id}'>`}isEditing(){return!!this.nodeListElement.querySelector("input:focus,select:focus")}isEditingTitle(){return this._callMethod("edit.isEditingTitle")}isLoading(){let e=!1;return this.root.visit((t=>{if(t._isLoading||t._requestId)return e=!0,!1}),!0),e}log(...e){this.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.options.debugLevel>=3&&console.info(this.toString(),...e)}logTime(e){return this.options.debugLevel>=4&&console.time(this+": "+e),e}logTimeEnd(e){this.options.debugLevel>=4&&console.timeEnd(this+": "+e)}logWarn(...e){this.options.debugLevel>=2&&console.warn(this.toString(),...e)}resetColumns(){this.columns.forEach((e=>{delete e.customWidthPx})),this.update(ChangeType.colStructure)}scrollTo(e){let t,i;e instanceof WunderbaumNode?t=e:(i=e,t=i.node),assert(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=22*t._rowIdx+n,a=n,d=l-r,c=d+22,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+22-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(assert(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;assert((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(assert(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update(ChangeType.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===NavModeEnum.row)switch(this.options.navigationModeOption=e,e){case NavModeEnum.cell:this.setCellNav(!0);break;case NavModeEnum.row:this.setCellNav(!1);break;case NavModeEnum.startCell:t&&this.setCellNav(!0);break;case NavModeEnum.startRow:t&&this.setCellNav(!1);break;default:error(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){assert(isPlainObject(e),`Expected plain objext: ${e}`),t?this.types=e:extend(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=toSet(e.classes))}sortChildren(e=nodeTitleSorter,t=!1){this.root.sortChildren(e,t)}sortByProperty(e){this.root.sortByProperty(e)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.customWidthPx?`${e.customWidthPx}px`:e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else error(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_insertIcon(e,t){const i=document.createElement("i");i.className=e,t.appendChild(i)}_renderHeaderMarkup(){assert(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(setElemDisplay(this.headerElement,e),!e)return;const t=this.iconMap,i=this.columns.length,s=this.headerElement.querySelector(".wb-row");assert(s,"Expected a row in header element"),s.innerHTML="".repeat(i);for(let e=0;e
`}if(toBool(n.sortable,this.options.columnsSortable,!1)){let e="wb-col-icon-sort "+t.colSortable;n.sortOrder&&(e+=`wb-col-sort-${n.sortOrder}`,e+="asc"===n.sortOrder?t.colSortAsc:t.colSortDesc);l+=``}if(toBool(n.filterable,this.options.columnsFilterable,!1)){r.classList.toggle("wb-col-filter",!!n.filterActive);let e="wb-col-icon-filter "+t.colFilter;n.filterActive&&(e+=t.colFilterActive);l+=``}e':l+='');const a=escapeHtml(n.title||n.id);r.innerHTML=`${a}${l}`,this.isCellNav()&&r.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=RenderFlag,i=new Set(this.pendingChangeTypes);this.pendingChangeTypes.clear();if(i.has(t.scroll)&&1===i.size)this._updateRows({newNodesOnly:!0});else{if(this.log("_updateViewportImmediately():",i),!1!==this.options.adjustHeight){let e=this.listContainerElement.clientHeight;const t=this.headerElement.clientHeight,i=this.element.clientHeight-t-1;Math.abs(e-i)>1&&(this.listContainerElement.style.height=i+"px",e=i)}i.has(t.clearMarkup)&&this.visit((e=>{e.removeMarkup()})),i.has(t.header)&&(this._updateColumnWidths(),this._renderHeaderMarkup()),this._updateRows()}if(this.options.connectTopBreadcrumb){assert(null!=this.options.connectTopBreadcrumb.textContent,"Invalid 'connectTopBreadcrumb' option (input element expected).");let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=22*l+"px",c=i):(o.delete(e),i&&(i.style.top=22*l+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,assert(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),assert(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(assert(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update(ChangeType.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}countMatches(){return this.extensions.filter.countMatches()}filterBranches(e,t){return this.extensions.filter.filterBranches(e,t)}clearFilter(){return this.extensions.filter.clearFilter()}isFilterActive(){return!!this.filterMode}updateFilter(){return this.extensions.filter.updateFilter()}}Wunderbaum.sequence=0,Wunderbaum.version="v0.11.0",Wunderbaum.util=util;export{Wunderbaum}; //# sourceMappingURL=wunderbaum.esm.min.js.map \ No newline at end of file diff --git a/dist/wunderbaum.esm.min.js.map b/dist/wunderbaum.esm.min.js.map index cdf5bd2..c2bc3b1 100644 --- a/dist/wunderbaum.esm.min.js.map +++ b/dist/wunderbaum.esm.min.js.map @@ -1 +1 @@ -{"version":3,"file":"wunderbaum.esm.js","names":["freeGlobal","global","Object","freeGlobalThis","globalThis","freeSelf","self","root","Function","isObject","value","type","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","requestAnimationFrame","TypeError","invokeFunc","time","args","thisArg","undefined","apply","startTimer","pendingFunc","cancelAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","Date","now","trailingEdge","timeSinceLastInvoke","timeWaiting","Math","min","remainingWait","debounced","isInvoking","this","leadingEdge","max","cancel","id","clearTimeout","cancelTimer","flush","pending","throttle","MOUSE_BUTTONS","MAX_INT","userInfo","_getUserInfo","isMac","REX_HTML","REX_TOOLTIP","ENTITY_MAP","ValidationError","Error","constructor","message","super","name","Deferred$1","thens","catches","status","resolve","resolvedValue","forEach","t","reject","error","rejectedError","c","then","cb","unshift","promise","catch","assert","cond","msg","nav","navigator","test","platform","documentReady","callback","document","readyState","addEventListener","documentReadyPromise","Promise","each","obj","length","i","call","k","escapeHtml","s","replace","escapeRegex","escapeTooltip","extractHtmlText","indexOf","getValueFromElem","elem","coerce","tag","tagName","classList","contains","span","embeddedInput","querySelector","innerText","input","indeterminate","checked","valueAsDate","valueAsNumber","parentElement","setValueToElem","select","selectedIndex","setElemDisplay","flag","style","elemFromSelector","display","elemFromHtml","html","createElement","innerHTML","trim","content","firstElementChild","_IGNORE_KEYS","Set","eventToString","event","key","et","altKey","push","ctrlKey","metaKey","shiftKey","button","has","join","extend","arg","prototype","hasOwnProperty","isArray","Array","isEmptyObject","keys","isFunction","isPlainObject","toString","noop","onEvent","rootTarget","eventNames","selectorOrHandler","handlerOrNone","selector","handler","split","evn","e","target","matches","closest","overrideMethod","instance","methodName","ctx","prevSuper","prevSuperApply","prevFunc","_super","_superApply","argsArray","setTimeoutPromise","ms","err","async","sleep","toggleCheckbox","element","tristate","getOption","opts","defaultValue","ext","toSet","val","set","add","toPixel","defaults","d","endsWith","parseInt","toBool","boolDefaults","toLowerCase","adaptiveThrottle","assign","minDelay","defaultDelay","maxDelay","delayFactor","waiting","pendingArgs","pendingTimer","throttledFn","useArgs","start","console","elap","curDelay","useDelay","ChangeType","RenderFlag","NodeStatusType","NodeRegion","NavModeEnum","util","freeze","__proto__","Deferred","WunderbaumExtension","tree","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","autoApply","autoExpand","matchBranch","connectInput","fuzzy","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","_opts","runWithDeferredUpdate","_applyFilterImpl","count","prevAutoCollapse","autoCollapse","hideMode","filterRegExp","highlightRegExp","logInfo","clearFilter","matchReString","map","reduce","a","b","logDebug","node","title","text","res","exec","highlightString","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","match","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","countMatches","n","statusNodeType","logWarn","enableUpdate","remove","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","QUICKSEARCH_DELAY","KeynavExtension","_getEmbeddedInputElem","ace","getActiveColElem","_isCurInputFocused","activate","autoActivate","curInput","inputHasFocus","navModeOption","navigationModeOption","focusNode","eventName","handled","isEnabled","_callEvent","_callMethod","currentNode","getFocusNode","getActiveNode","firstNode","getFirstChild","setActive","setFocus","isColspan","isRowNav","blur","_render","quicksearch","stamp","lastQuicksearchTime","lastQuicksearchTerm","matchNode","findNextNode","preventDefault","isActive","isExpanded","isExpandable","startCell","startRow","setCellNav","toggleSelected","navigate","curInputType","inputCanFocus","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","DEFAULT_DEBUGLEVEL","ROW_HEIGHT","ICON_WIDTH","TITLE_SPAN_PAD_Y","RENDER_MAX_PREFETCH","DEFAULT_MIN_COL_WIDTH","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","makeNodeTitleStartMatcher","reMatch","nodeTitleSorter","x","y","unflattenSource","source","_b","_c","_format","_keyMap","_positional","includes","longToShort","warn","entries","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","decompressSourceData","_version","_valueMap","shortToLong","_typeList","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","GridExtension","observer","window","info","getEventInfo","colDef","allow","resizable","resizableColumns","colElem","orgCustomWidthPx","customWidthPx","curWidthPx","Number","width","orgWidthPx","update","colStructure","handleDrag","custom","minWidth","newWidth","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","colspan","checkbox","radiogroup","selected","unselectable","_registerNode","Symbol","iterator","cl","l","typeInfo","addChildren","before","applyMinExpanLevel","_level","getLevel","nodeList","forceExpand","minExpandLevel","child","subChildren","isUnloaded","concat","findDirectChild","pos","splice","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","idx","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","hasFocus","other","isDescendantOf","isChildOf","isClone","andCollapsed","emptyChildListExpandable","isFirstSibling","isLastSibling","isLazy","isLoading","isPagingNode","isParentOf","isPartload","isPartsel","isRadio","isRendered","isRootNode","isSelected","isTopLevel","isVisible","hasFilter","parents","_loadSourceObject","response","setTypes","selectMode","fixSelection3FromEndNodes","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","left","_ofsPx","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","colId","column","KeyboardEvent","isEditing","label","timeEnd","resetColumns","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","values","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","px","parseFloat","slice","restPx","ofsPx","cmw","tw","_renderHeaderMarkup","colCount","headerRow","headerClasses","resizer","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.esm.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"file":"wunderbaum.esm.js","names":["freeGlobal","global","Object","freeGlobalThis","globalThis","freeSelf","self","root","Function","isObject","value","type","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","requestAnimationFrame","TypeError","invokeFunc","time","args","thisArg","undefined","apply","startTimer","pendingFunc","cancelAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","Date","now","trailingEdge","timeSinceLastInvoke","timeWaiting","Math","min","remainingWait","debounced","isInvoking","this","leadingEdge","max","cancel","id","clearTimeout","cancelTimer","flush","pending","throttle","MOUSE_BUTTONS","MAX_INT","userInfo","_getUserInfo","isMac","REX_HTML","REX_TOOLTIP","ENTITY_MAP","ValidationError","Error","constructor","message","super","name","Deferred$1","thens","catches","status","resolve","resolvedValue","forEach","t","reject","error","rejectedError","c","then","cb","unshift","promise","catch","assert","cond","msg","nav","navigator","test","platform","documentReady","callback","document","readyState","addEventListener","documentReadyPromise","Promise","each","obj","length","i","call","k","escapeHtml","s","replace","escapeRegex","escapeTooltip","extractHtmlText","indexOf","getValueFromElem","elem","coerce","tag","tagName","classList","contains","span","embeddedInput","querySelector","innerText","input","indeterminate","checked","valueAsDate","valueAsNumber","parentElement","setValueToElem","select","selectedIndex","setElemDisplay","flag","style","elemFromSelector","display","elemFromHtml","html","createElement","innerHTML","trim","content","firstElementChild","_IGNORE_KEYS","Set","eventToString","event","key","et","altKey","push","ctrlKey","metaKey","shiftKey","button","has","join","extend","arg","prototype","hasOwnProperty","isArray","Array","isEmptyObject","keys","isFunction","isPlainObject","toString","noop","onEvent","rootTarget","eventNames","selectorOrHandler","handlerOrNone","selector","handler","split","evn","e","target","matches","closest","overrideMethod","instance","methodName","ctx","prevSuper","prevSuperApply","prevFunc","_super","_superApply","argsArray","setTimeoutPromise","ms","err","async","sleep","toggleCheckbox","element","tristate","getOption","opts","defaultValue","ext","rotate","values","idx","toSet","val","set","add","toPixel","defaults","d","endsWith","parseInt","toBool","boolDefaults","toLowerCase","adaptiveThrottle","assign","minDelay","defaultDelay","maxDelay","delayFactor","waiting","pendingArgs","pendingTimer","throttledFn","useArgs","start","console","elap","curDelay","useDelay","ChangeType","RenderFlag","NodeStatusType","NodeRegion","NavModeEnum","util","freeze","__proto__","Deferred","WunderbaumExtension","tree","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","autoApply","autoExpand","matchBranch","connectInput","fuzzy","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","_opts","runWithDeferredUpdate","_applyFilterImpl","count","prevAutoCollapse","autoCollapse","hideMode","filterRegExp","highlightRegExp","logInfo","clearFilter","matchReString","map","reduce","a","b","logDebug","node","title","text","res","exec","highlightString","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","match","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","countMatches","n","statusNodeType","logWarn","enableUpdate","remove","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","QUICKSEARCH_DELAY","KeynavExtension","_getEmbeddedInputElem","ace","getActiveColElem","_isCurInputFocused","activate","autoActivate","curInput","inputHasFocus","navModeOption","navigationModeOption","focusNode","eventName","handled","isEnabled","_callEvent","_callMethod","currentNode","getFocusNode","getActiveNode","firstNode","getFirstChild","setActive","setFocus","isColspan","isRowNav","blur","_render","quicksearch","stamp","lastQuicksearchTime","lastQuicksearchTerm","matchNode","findNextNode","preventDefault","isActive","isExpanded","isExpandable","startCell","startRow","setCellNav","toggleSelected","navigate","curInputType","inputCanFocus","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","DEFAULT_DEBUGLEVEL","ROW_HEIGHT","ICON_WIDTH","TITLE_SPAN_PAD_Y","RENDER_MAX_PREFETCH","DEFAULT_MIN_COL_WIDTH","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","colSortable","colSortAsc","colSortDesc","colFilter","colFilterActive","colMenu","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","makeNodeTitleStartMatcher","reMatch","nodeTitleSorter","x","y","unflattenSource","source","_b","_c","_format","_keyMap","_positional","includes","longToShort","warn","entries","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","decompressSourceData","_version","_valueMap","shortToLong","_typeList","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","GridExtension","observer","window","info","getEventInfo","colDef","allow","resizable","columnsResizable","colElem","orgCustomWidthPx","customWidthPx","curWidthPx","Number","width","orgWidthPx","update","colStructure","handleDrag","custom","minWidth","newWidth","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","colspan","checkbox","radiogroup","selected","unselectable","_registerNode","Symbol","iterator","cl","l","typeInfo","addChildren","before","applyMinExpanLevel","_level","getLevel","nodeList","forceExpand","minExpandLevel","child","subChildren","isUnloaded","concat","findDirectChild","pos","splice","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","hasFocus","other","isDescendantOf","isChildOf","isClone","andCollapsed","emptyChildListExpandable","isFirstSibling","isLastSibling","isLazy","isLoading","isPagingNode","isParentOf","isPartload","isPartsel","isRadio","isRendered","isRootNode","isSelected","isTopLevel","isVisible","hasFilter","parents","_loadSourceObject","response","setTypes","selectMode","fixSelection3FromEndNodes","resetNativeChildOrder","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","left","_ofsPx","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","sortByProperty","caseInsensitive","nativeOrderPropName","updateColInfo","order","colId","sortOrder","av","bv","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","command","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","column","KeyboardEvent","isEditing","label","timeEnd","resetColumns","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","px","parseFloat","slice","restPx","ofsPx","cmw","tw","_insertIcon","iconElem","_renderHeaderMarkup","colCount","headerRow","headerClasses","addMarkup","menu","columnsMenu","sortable","columnsSortable","iconClass","filterable","columnsFilterable","filterActive","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.esm.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/dist/wunderbaum.umd.js b/dist/wunderbaum.umd.js index 7044def..5a40297 100644 --- a/dist/wunderbaum.umd.js +++ b/dist/wunderbaum.umd.js @@ -294,7 +294,7 @@ /*! * Wunderbaum - util * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** @module util */ /** Readable names for `MouseEvent.button` */ @@ -926,6 +926,11 @@ // Use value from value options dict, fallback do default return value !== null && value !== void 0 ? value : defaultValue; } + /** Return the next value from a list of values (rotating). @since 0.11 */ + function rotate(value, values) { + const idx = values.indexOf(value); + return values[(idx + 1) % values.length]; + } /** Convert an Array or space-separated string to a Set. */ function toSet(val) { if (val instanceof Set) { @@ -954,12 +959,7 @@ * const width = util.toPixel(x, y, 100); // returns 123 * ``` */ - function toPixel( - // val: string | number | undefined | null, - ...defaults) { - // if (typeof val === "number") { - // return val; - // } + function toPixel(...defaults) { for (const d of defaults) { if (typeof d === "number") { return d; @@ -978,12 +978,7 @@ * const value = util.toBool(opts.foo, opts.flag, false); // returns true * ``` */ - function toBool( - // val: boolean | undefined | null, - ...boolDefaults) { - // if (val != null) { - // return !!val; - // } + function toBool(...boolDefaults) { for (const d of boolDefaults) { if (d != null) { return !!d; @@ -1127,6 +1122,7 @@ noop: noop, onEvent: onEvent, overrideMethod: overrideMethod, + rotate: rotate, setElemDisplay: setElemDisplay, setTimeoutPromise: setTimeoutPromise, setValueToElem: setValueToElem, @@ -1142,10 +1138,10 @@ /*! * Wunderbaum - types * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** - * Possible values for {@link WunderbaumNode.update()} and {@link Wunderbaum.update()}. + * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}. */ var ChangeType; (function (ChangeType) { @@ -1174,7 +1170,7 @@ RenderFlag["redraw"] = "redraw"; RenderFlag["scroll"] = "scroll"; })(RenderFlag || (RenderFlag = {})); - /** Possible values for {@link WunderbaumNode.setStatus()}. */ + /** Possible values for {@link WunderbaumNode.setStatus}. */ var NodeStatusType; (function (NodeStatusType) { NodeStatusType["ok"] = "ok"; @@ -1206,7 +1202,7 @@ /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension { constructor(tree, id, defaults) { @@ -1265,7 +1261,7 @@ /*! * Wunderbaum - ext-filter * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const START_MARKER = "\uFFF7"; const END_MARKER = "\uFFF8"; @@ -1590,7 +1586,7 @@ /*! * Wunderbaum - ext-keynav * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const QUICKSEARCH_DELAY = 500; class KeynavExtension extends WunderbaumExtension { @@ -1954,7 +1950,7 @@ /*! * Wunderbaum - ext-logger * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class LoggerExtension extends WunderbaumExtension { constructor(tree) { @@ -1996,7 +1992,7 @@ /*! * Wunderbaum - common * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script /** @@ -2051,6 +2047,15 @@ folderOpen: "bi bi-folder2-open", folderLazy: "bi bi-folder-symlink", doc: "bi bi-file-earmark", + colSortable: "bi bi-chevron-expand", + // colSortable: "bi bi-arrow-down-up", + // colSortAsc: "bi bi-chevron-down", + // colSortDesc: "bi bi-chevron-up", + colSortAsc: "bi bi-arrow-down", + colSortDesc: "bi bi-arrow-up", + colFilter: "bi bi-filter-circle", + colFilterActive: "bi bi-filter-circle-fill wb-helper-invalid", + colMenu: "bi bi-three-dots-vertical", }, fontawesome6: { error: "fa-solid fa-triangle-exclamation", @@ -2069,6 +2074,12 @@ folderOpen: "fa-regular fa-folder-open", folderLazy: "fa-solid fa-folder-plus", doc: "fa-regular fa-file", + colSortable: "fa-solid fa-fw fa-sort", + colSortAsc: "fa-solid fa-fw fa-sort-up", + colSortDesc: "fa-solid fa-fw fa-sort-down", + colFilter: "fa-solid fa-fw fa-filter", + colFilterActive: "fa-solid fa-fw fa-filter wb-helper-invalid", + colMenu: "fa-solid fa-fw fa-ellipsis-v", }, }; /** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */ @@ -2117,7 +2128,7 @@ }; /** Return a callback that returns true if the node title matches the string * or regular expression. - * @see {@link WunderbaumNode.findAll()} + * @see {@link WunderbaumNode.findAll} */ function makeNodeTitleMatcher(match) { if (match instanceof RegExp) { @@ -2321,7 +2332,7 @@ /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ const nodeMimeType = "application/x-wunderbaum-node"; class DndExtension extends WunderbaumExtension { @@ -2766,7 +2777,7 @@ /*! * Wunderbaum - drag_observer * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'. @@ -2915,7 +2926,7 @@ /*! * Wunderbaum - ext-grid * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ class GridExtension extends WunderbaumExtension { constructor(tree) { @@ -2932,7 +2943,7 @@ const colDef = info.colDef; const allow = colDef && this.tree.element.contains(e.dragElem) && - toBool(colDef.resizable, tree.options.resizableColumns, false); + toBool(colDef.resizable, tree.options.columnsResizable, false); // this.tree.log("dragstart", colDef, e, info); this.tree.element.classList.toggle("wb-col-resizing", !!allow); info.colElem.classList.toggle("wb-col-resizing", !!allow); @@ -3006,7 +3017,7 @@ /*! * Wunderbaum - deferred * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** * Implement a ES6 Promise, that exposes a resolve() and reject() method. @@ -3059,7 +3070,7 @@ /*! * Wunderbaum - wunderbaum_node * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ /** WunderbaumNode properties that can be passed with source data. * (Any other source properties will be stored as `node.data.PROP`.) @@ -3102,6 +3113,12 @@ * @see Use {@link setKey} to modify. */ this.refKey = undefined; + /** + * Array of child nodes (null for leaf nodes). + * For lazy nodes, this is `null` or ùndefined` until the children are loaded + * and leaf nodes may be `[]` (empty array). + * @see {@link hasChildren}, {@link addChildren}, {@link lazy}. + */ this.children = null; /** Additional classes added to `div.wb-row`. * @see {@link hasClass}, {@link setClass}. */ @@ -3689,7 +3706,7 @@ hasClass(className) { return this.classes ? this.classes.has(className) : false; } - /** Return true if node ist the currently focused node. */ + /** Return true if node ist the currently focused node. @since 0.9.0 */ hasFocus() { return this.tree.focusNode === this; } @@ -3911,6 +3928,8 @@ if (tree.options.selectMode === "hier") { this.fixSelection3FromEndNodes(); } + // Allow to un-sort nodes after sorting + this.resetNativeChildOrder(); this._callEvent("load"); } async _fetchWithOptions(source) { @@ -4854,7 +4873,7 @@ * * @param name name of the option property (on node and tree) * @param defaultValue return this if nothing else matched - * {@link Wunderbaum.getOption|Wunderbaum.getOption()} + * {@link Wunderbaum.getOption|Wunderbaum.getOption} */ getOption(name, defaultValue) { const tree = this.tree; @@ -4890,7 +4909,7 @@ return value !== null && value !== void 0 ? value : defaultValue; } /** Make sure that this node is visible in the viewport. - * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo()} + * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo} */ async scrollIntoView(options) { const opts = Object.assign({ node: this }, options); @@ -5029,9 +5048,9 @@ * and column content. It can be reduced to 'ChangeType.status' if only * active/focus/selected state has changed. * - * This method will eventually call {@link WunderbaumNode._render()} with + * This method will eventually call {@link WunderbaumNode._render} with * default options, but may be more consistent with the tree's - * {@link Wunderbaum.update()} API. + * {@link Wunderbaum.update} API. */ update(change = ChangeType.data) { assert(change === ChangeType.status || change === ChangeType.data, `Invalid change type ${change}`); @@ -5360,6 +5379,80 @@ this.tree.update(ChangeType.structure); // this.triggerModify("sort"); // TODO } + /** + * Renumber nodes `_nativeIndex`. This is useful to allow to restore the + * order after sorting a column. + * This method is automatically called after loading new child nodes. + * @since 0.11.0 + */ + resetNativeChildOrder(options) { + const { recursive = true, propName = "_nativeIndex" } = options !== null && options !== void 0 ? options : {}; + if (this.children) { + this.children.forEach((child, i) => { + child.data[propName] = i; + if (recursive && child.children) { + child.resetNativeChildOrder(options); + } + }); + } + } + /** + * Convenience method to implement column sorting. + * @since 0.11.0 + */ + sortByProperty(options) { + var _a, _b, _c; + const { caseInsensitive = true, deep = true, nativeOrderPropName = "_nativeIndex", updateColInfo = false, } = options; + let order; + let colDef; + if (updateColInfo) { + colDef = this.tree["_columnsById"][options.colId]; + assert(colDef, `Invalid colId specified: ${options.colId}`); + order = + (_a = options.order) !== null && _a !== void 0 ? _a : rotate(colDef.sortOrder, ["asc", "desc", undefined]); + for (const col of this.tree.columns) { + col.sortOrder = col === colDef ? order : undefined; + } + this.tree.update(ChangeType.colStructure); + } + else { + order = (_b = options.order) !== null && _b !== void 0 ? _b : "asc"; + } + let propName = (_c = options.propName) !== null && _c !== void 0 ? _c : (options.colId || ""); + if (propName === "*") { + propName = "title"; + } + if (order == null) { + propName = nativeOrderPropName; + order = "asc"; + } + this.logDebug(`sortByProperty(), propName=${propName}, ${order}`, options); + assert(propName, "No property name specified"); + const cmp = (a, b) => { + let av, bv; + if (NODE_DICT_PROPS.has(propName)) { + av = a[propName]; + bv = b[propName]; + } + else { + av = a.data[propName]; + bv = b.data[propName]; + } + if (caseInsensitive) { + if (typeof av === "string") { + av = av.toLowerCase(); + } + if (typeof bv === "string") { + bv = bv.toLowerCase(); + } + } + if (order === "desc") { + return av === bv ? 0 : av > bv ? -1 : 1; + } + return av === bv ? 0 : av > bv ? 1 : -1; + }; + return this.sortChildren(cmp, deep); + } /** * Trigger `modifyChild` event on a parent to signal that a child was modified. * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ... @@ -5468,7 +5561,7 @@ /*! * Wunderbaum - ext-edit * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ // const START_MARKER = "\uFFF7"; class EditExtension extends WunderbaumExtension { @@ -5799,8 +5892,8 @@ * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.10.1 - * @date Sat, 20 Jul 2024 13:53:46 GMT + * @version v0.11.0 + * @date Sun, 04 Aug 2024 15:35:53 GMT */ // import "./wunderbaum.scss"; class WbSystemRoot extends WunderbaumNode { @@ -5970,7 +6063,8 @@ // Attach tree instance to
this.element._wb_tree = this; // Create header markup, or take it from the existing html - this.headerElement = this.element.querySelector("div.wb-header"); + this.headerElement = + this.element.querySelector("div.wb-header"); const wantHeader = opts.header == null ? this.columns.length > 1 : !!opts.header; if (this.headerElement) { // User existing header markup to define `this.columns` @@ -6007,8 +6101,10 @@
`; this.listContainerElement = this.element.querySelector("div.wb-list-container"); - this.nodeListElement = this.listContainerElement.querySelector("div.wb-node-list"); - this.headerElement = this.element.querySelector("div.wb-header"); + this.nodeListElement = + this.listContainerElement.querySelector("div.wb-node-list"); + this.headerElement = + this.element.querySelector("div.wb-header"); this.element.classList.toggle("wb-grid", this.columns.length > 1); this._initExtensions(); // --- apply initial options @@ -6065,6 +6161,16 @@ this.update(ChangeType.resize); }); this.resizeObserver.observe(this.element); + onEvent(this.element, "click", ".wb-button,.wb-col-icon", (e) => { + var _a, _b; + const info = Wunderbaum.getEventInfo(e); + const command = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.command; + this._callEvent("buttonClick", { + event: e, + info: info, + command: command, + }); + }); onEvent(this.nodeListElement, "click", "div.wb-row", (e) => { const info = Wunderbaum.getEventInfo(e); const node = info.node; @@ -6645,7 +6751,7 @@ } /** Run code, but defer rendering of viewport until done. * - * ``` + * ```js * tree.runWithDeferredUpdate(() => { * return someFuncThatWouldUpdateManyNodes(); * }); @@ -7123,13 +7229,17 @@ console.warn(this.toString(), ...args); // eslint-disable-line no-console } } - /** Reset column widths to default. */ + /** Reset column widths to default. @since 0.10.0 */ resetColumns() { this.columns.forEach((col) => { delete col.customWidthPx; }); this.update(ChangeType.colStructure); } + // /** Renumber nodes `_nativeIndex`. @see {@link WunderbaumNode.resetNativeChildOrder} */ + // resetNativeChildOrder(options?: ResetOrderOptions) { + // this.root.resetNativeChildOrder(options); + // } /** * Make sure that this node is vertically scrolled into the viewport. * @@ -7444,6 +7554,14 @@ sortChildren(cmp = nodeTitleSorter, deep = false) { this.root.sortChildren(cmp, deep); } + /** + * Convenience method to implement column sorting. + * @see {@link WunderbaumNode.sortByProperty}. + * @since 0.11.0 + */ + sortByProperty(options) { + this.root.sortByProperty(options); + } /** Convert tree to an array of plain objects. * * @param callback is called for every node, in order to allow @@ -7557,6 +7675,11 @@ // } return modified; } + _insertIcon(icon, elem) { + const iconElem = document.createElement("i"); + iconElem.className = icon; + elem.appendChild(iconElem); + } /** Create/update header markup from `this.columns` definition. * @internal */ @@ -7567,6 +7690,7 @@ if (!wantHeader) { return; } + const iconMap = this.iconMap; const colCount = this.columns.length; const headerRow = this.headerElement.querySelector(".wb-row"); assert(headerRow, "Expected a row in header element"); @@ -7585,23 +7709,54 @@ else { col.classes ? colElem.classList.add(...col.classes.split(" ")) : 0; } - const title = escapeHtml(col.title || col.id); + // Add tooltip to column title let tooltip = ""; if (col.tooltip) { tooltip = escapeTooltip(col.tooltip); tooltip = ` title="${tooltip}"`; } - let resizer = ""; + // Add column header icons + let addMarkup = ""; + // NOTE: we use CSS float: right to align icons, so they must be added in + // reverse order + if (toBool(col.menu, this.options.columnsMenu, false)) { + const iconClass = "wb-col-icon-menu " + iconMap.colMenu; + const icon = ``; + addMarkup += icon; + } + if (toBool(col.sortable, this.options.columnsSortable, false)) { + let iconClass = "wb-col-icon-sort " + iconMap.colSortable; + if (col.sortOrder) { + iconClass += `wb-col-sort-${col.sortOrder}`; + iconClass += + col.sortOrder === "asc" ? iconMap.colSortAsc : iconMap.colSortDesc; + } + const icon = ``; + addMarkup += icon; + } + if (toBool(col.filterable, this.options.columnsFilterable, false)) { + colElem.classList.toggle("wb-col-filter", !!col.filterActive); + let iconClass = "wb-col-icon-filter " + iconMap.colFilter; + if (col.filterActive) { + iconClass += iconMap.colFilterActive; + } + const icon = ``; + addMarkup += icon; + } + // Add resizer to all but the last column if (i < colCount - 1) { - if (toBool(col.resizable, this.options.resizableColumns, false)) { - resizer = + if (toBool(col.resizable, this.options.columnsResizable, false)) { + addMarkup += ''; } else { - resizer = ''; + addMarkup += ''; } } - colElem.innerHTML = `${title}${resizer}`; + // Create column header + const title = escapeHtml(col.title || col.id); + colElem.innerHTML = `${title}${addMarkup}`; + // Highlight active column if (this.isCellNav()) { colElem.classList.toggle("wb-active", i === this.activeColIdx); } @@ -8018,6 +8173,7 @@ /** * Return the number of nodes that match the current filter. * @see {@link Wunderbaum.filterNodes} + * @since 0.9.0 */ countMatches() { return this.extensions.filter.countMatches(); @@ -8050,7 +8206,7 @@ } Wunderbaum.sequence = 0; /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */ - Wunderbaum.version = "v0.10.1"; // Set to semver by 'grunt release' + Wunderbaum.version = "v0.11.0"; // Set to semver by 'grunt release' /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */ Wunderbaum.util = util; diff --git a/dist/wunderbaum.umd.min.js b/dist/wunderbaum.umd.min.js index 56ec422..19a9a6e 100644 --- a/dist/wunderbaum.umd.min.js +++ b/dist/wunderbaum.umd.min.js @@ -7,70 +7,70 @@ /*! * Wunderbaum - util * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const a={0:"",1:"left",2:"middle",3:"right",4:"back",5:"forward"},d=function(){const e=navigator;return{isMac:/Mac/.test(e.platform)}}().isMac,c=/[&<>"'/]/g,h=/[<>"'/]/g,u={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};class p extends Error{constructor(e){super(e),this.name="ValidationError"}}function f(e,t){if(!e)throw t=t||"Assertion failed.",new Error(t)}function g(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}function v(e){throw new Error(e)}function m(e){return(""+e).replace(c,(function(e){return u[e]}))}function b(e){return(""+e).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function y(e){return(""+e).replace(h,(function(e){return u[e]}))}function w(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return w(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function E(e,t){const i=k(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function x(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const _=new Set(["Alt","Control","Meta","Shift"]);function k(e){return e?"string"==typeof e?document.querySelector(e):e:null}function C(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(a[e.button]+i):"wheel"===i?s.push(i):_.has(t)||s.push(t),s.join("+")}function N(...e){for(let t=1;t{e.addEventListener(t,(function(e){if(!n)return r(e);if(e.target){let t=e.target;if(t.matches(n))return r(e);if(t=t.closest(n),t)return r(e)}}))}))}function L(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function M(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function A(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function O(...e){for(const t of e){if("number"==typeof t)return t;if("string"==typeof t&&t.endsWith("px"))return parseInt(t,10);f(null==t,`Expected a number or string like '123px': ${t}`)}throw new Error(`Expected a string like '123px': ${e}`)}function $(...e){for(const t of e)if(null!=t)return!!t;throw new Error("No default boolean value provided")}function P(e,t){const i=Object.assign({minDelay:16,defaultDelay:200,maxDelay:5e3,delayFactor:2},t),s=Math.max(16,+i.minDelay),n=+i.maxDelay;let r=0,o=null,l=null;const a=(...t)=>{if(r)o=t,r+=1;else{r=1;const d=t;o=null;const c=Date.now();try{e.apply(this,d)}catch(e){console.error(e)}const h=Date.now()-c,u=Math.min(Math.max(s,h*i.delayFactor),n),p=Math.max(s,u-h);l=setTimeout((()=>{l=null,r=0,null!=o&&a.apply(this,o)}),p)}};return a.cancel=()=>{l&&(clearTimeout(l),l=null),o=null,r=0},a.pending=()=>!!l,a.flush=()=>{throw new Error("Not implemented")},a}var R,z,F,U,V,q=Object.freeze({__proto__:null,Deferred:class{constructor(){this.thens=[],this.catches=[],this.status=""}resolve(e){if(this.status)throw new Error("already settled");this.status="resolved",this.resolvedValue=e,this.thens.forEach((t=>t(e))),this.thens=[]}reject(e){if(this.status)throw new Error("already settled");this.status="rejected",this.rejectedError=e,this.catches.forEach((t=>t(e))),this.catches=[]}then(e){"resolved"===status?e(this.resolvedValue):this.thens.unshift(e)}catch(e){"rejected"===this.status?e(this.rejectedError):this.catches.unshift(e)}promise(){return{then:this.then,catch:this.catch}}},MAX_INT:9007199254740991,MOUSE_BUTTONS:a,ValidationError:p,adaptiveThrottle:P,assert:f,debounce:o,documentReady:g,documentReadyPromise:function(){return new Promise((e=>{g(e)}))},each:function(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&v("Not implemented"),e},getOption:M,getValueFromElem:w,isArray:S,isEmptyObject:D,isFunction:function(e){return"function"==typeof e},isMac:d,isPlainObject:T,noop:function(...e){},onEvent:I,overrideMethod:L,setElemDisplay:E,setTimeoutPromise:function(e,t){return new Promise(((i,s)=>{setTimeout((()=>{try{i(e.apply(this))}catch(e){s(e)}}),t)}))},setValueToElem:function e(t,i){const s=t.tagName;if("SPAN"===s&&t.classList.contains("wb-col")){const s=t,n=s.querySelector("input,select");if(n)return e(n,i);s.innerText=""+i}else if("INPUT"===s){const e=t,s=e.type;switch(s){case"checkbox":e.indeterminate=null===i,e.checked=!!i;break;case"date":case"month":case"time":case"week":case"datetime":case"datetime-local":e.valueAsDate=new Date(i);break;case"number":case"range":null==i?e.value=i:e.valueAsNumber=i;break;case"radio":v(`Not yet implemented: ${s}`);break;case"button":case"reset":case"submit":case"image":break;default:e.value=null!=i?i:""}}else if("SELECT"===s){const e=t;null==i?e.selectedIndex=-1:e.value=i}},sleep:async function(e){return new Promise((t=>setTimeout(t,e)))},throttle:l,toBool:$,toPixel:O,toSet:A,toggleCheckbox:function(e,t,i){const s=k(e);if(f("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t},type:function(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}}); + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */const a={0:"",1:"left",2:"middle",3:"right",4:"back",5:"forward"},d=function(){const e=navigator;return{isMac:/Mac/.test(e.platform)}}().isMac,c=/[&<>"'/]/g,h=/[<>"'/]/g,u={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};class p extends Error{constructor(e){super(e),this.name="ValidationError"}}function f(e,t){if(!e)throw t=t||"Assertion failed.",new Error(t)}function g(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}function v(e){throw new Error(e)}function m(e){return(""+e).replace(c,(function(e){return u[e]}))}function b(e){return(""+e).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function y(e){return(""+e).replace(h,(function(e){return u[e]}))}function w(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return w(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function E(e,t){const i=k(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function x(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const _=new Set(["Alt","Control","Meta","Shift"]);function k(e){return e?"string"==typeof e?document.querySelector(e):e:null}function C(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(a[e.button]+i):"wheel"===i?s.push(i):_.has(t)||s.push(t),s.join("+")}function N(...e){for(let t=1;t{e.addEventListener(t,(function(e){if(!n)return r(e);if(e.target){let t=e.target;if(t.matches(n))return r(e);if(t=t.closest(n),t)return r(e)}}))}))}function L(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function M(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function O(e,t){const i=t.indexOf(e);return t[(i+1)%t.length]}function A(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function $(...e){for(const t of e){if("number"==typeof t)return t;if("string"==typeof t&&t.endsWith("px"))return parseInt(t,10);f(null==t,`Expected a number or string like '123px': ${t}`)}throw new Error(`Expected a string like '123px': ${e}`)}function P(...e){for(const t of e)if(null!=t)return!!t;throw new Error("No default boolean value provided")}function F(e,t){const i=Object.assign({minDelay:16,defaultDelay:200,maxDelay:5e3,delayFactor:2},t),s=Math.max(16,+i.minDelay),n=+i.maxDelay;let r=0,o=null,l=null;const a=(...t)=>{if(r)o=t,r+=1;else{r=1;const d=t;o=null;const c=Date.now();try{e.apply(this,d)}catch(e){console.error(e)}const h=Date.now()-c,u=Math.min(Math.max(s,h*i.delayFactor),n),p=Math.max(s,u-h);l=setTimeout((()=>{l=null,r=0,null!=o&&a.apply(this,o)}),p)}};return a.cancel=()=>{l&&(clearTimeout(l),l=null),o=null,r=0},a.pending=()=>!!l,a.flush=()=>{throw new Error("Not implemented")},a}var R,z,U,V,q,j=Object.freeze({__proto__:null,Deferred:class{constructor(){this.thens=[],this.catches=[],this.status=""}resolve(e){if(this.status)throw new Error("already settled");this.status="resolved",this.resolvedValue=e,this.thens.forEach((t=>t(e))),this.thens=[]}reject(e){if(this.status)throw new Error("already settled");this.status="rejected",this.rejectedError=e,this.catches.forEach((t=>t(e))),this.catches=[]}then(e){"resolved"===status?e(this.resolvedValue):this.thens.unshift(e)}catch(e){"rejected"===this.status?e(this.rejectedError):this.catches.unshift(e)}promise(){return{then:this.then,catch:this.catch}}},MAX_INT:9007199254740991,MOUSE_BUTTONS:a,ValidationError:p,adaptiveThrottle:F,assert:f,debounce:o,documentReady:g,documentReadyPromise:function(){return new Promise((e=>{g(e)}))},each:function(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&v("Not implemented"),e},getOption:M,getValueFromElem:w,isArray:S,isEmptyObject:D,isFunction:function(e){return"function"==typeof e},isMac:d,isPlainObject:I,noop:function(...e){},onEvent:T,overrideMethod:L,rotate:O,setElemDisplay:E,setTimeoutPromise:function(e,t){return new Promise(((i,s)=>{setTimeout((()=>{try{i(e.apply(this))}catch(e){s(e)}}),t)}))},setValueToElem:function e(t,i){const s=t.tagName;if("SPAN"===s&&t.classList.contains("wb-col")){const s=t,n=s.querySelector("input,select");if(n)return e(n,i);s.innerText=""+i}else if("INPUT"===s){const e=t,s=e.type;switch(s){case"checkbox":e.indeterminate=null===i,e.checked=!!i;break;case"date":case"month":case"time":case"week":case"datetime":case"datetime-local":e.valueAsDate=new Date(i);break;case"number":case"range":null==i?e.value=i:e.valueAsNumber=i;break;case"radio":v(`Not yet implemented: ${s}`);break;case"button":case"reset":case"submit":case"image":break;default:e.value=null!=i?i:""}}else if("SELECT"===s){const e=t;null==i?e.selectedIndex=-1:e.value=i}},sleep:async function(e){return new Promise((t=>setTimeout(t,e)))},throttle:l,toBool:P,toPixel:$,toSet:A,toggleCheckbox:function(e,t,i){const s=k(e);if(f("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t},type:function(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}}); /*! * Wunderbaum - types * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */!function(e){e.any="any",e.data="data",e.colStructure="colStructure",e.resize="resize",e.row="row",e.structure="structure",e.status="status",e.scroll="scroll"}(R||(R={})),function(e){e.clearMarkup="clearMarkup",e.header="header",e.redraw="redraw",e.scroll="scroll"}(z||(z={})),function(e){e.ok="ok",e.loading="loading",e.error="error",e.noData="noData",e.paging="paging"}(F||(F={})),function(e){e.unknown="",e.checkbox="checkbox",e.column="column",e.expander="expander",e.icon="icon",e.prefix="prefix",e.title="title"}(U||(U={})),function(e){e.startRow="startRow",e.cell="cell",e.startCell="startCell",e.row="row"}(V||(V={})); + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */!function(e){e.any="any",e.data="data",e.colStructure="colStructure",e.resize="resize",e.row="row",e.structure="structure",e.status="status",e.scroll="scroll"}(R||(R={})),function(e){e.clearMarkup="clearMarkup",e.header="header",e.redraw="redraw",e.scroll="scroll"}(z||(z={})),function(e){e.ok="ok",e.loading="loading",e.error="error",e.noData="noData",e.paging="paging"}(U||(U={})),function(e){e.unknown="",e.checkbox="checkbox",e.column="column",e.expander="expander",e.icon="icon",e.prefix="prefix",e.title="title"}(V||(V={})),function(e){e.startRow="startRow",e.cell="cell",e.startCell="startCell",e.row="row"}(q||(q={})); /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) */ -class j{constructor(e,t,i){this.enabled=!0,this.tree=e,this.id=t,this.treeOpts=e.options;const s=e.options;void 0===this.treeOpts[t]?s[t]=this.extensionOpts=N({},i):(this.extensionOpts=N({},i,s[t]),s[t]=this.extensionOpts),this.enabled=this.getPluginOption("enabled",!0)}init(){this.tree.element.classList.add("wb-ext-"+this.id)}getPluginOption(e,t){var i;return null!==(i=this.extensionOpts[e])&&void 0!==i?i:t}setPluginOption(e,t){this.extensionOpts[e]=t}setEnabled(e=!0){return this.setPluginOption("enabled",!!e)}onKeyEvent(e){}onRender(e){}} +class K{constructor(e,t,i){this.enabled=!0,this.tree=e,this.id=t,this.treeOpts=e.options;const s=e.options;void 0===this.treeOpts[t]?s[t]=this.extensionOpts=N({},i):(this.extensionOpts=N({},i,s[t]),s[t]=this.extensionOpts),this.enabled=this.getPluginOption("enabled",!0)}init(){this.tree.element.classList.add("wb-ext-"+this.id)}getPluginOption(e,t){var i;return null!==(i=this.extensionOpts[e])&&void 0!==i?i:t}setPluginOption(e,t){this.extensionOpts[e]=t}setEnabled(e=!0){return this.setPluginOption("enabled",!!e)}onKeyEvent(e){}onRender(e){}} /*! * Wunderbaum - ext-filter * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const K="￷",W="￸",H=new RegExp(b("￷"),"g"),B=new RegExp(b("￸"),"g");class G extends j{constructor(e){super(e,"filter",{autoApply:!0,autoExpand:!1,matchBranch:!1,connectInput:null,fuzzy:!1,hideExpanders:!1,highlight:!0,leavesOnly:!1,mode:"dim",noData:!0}),this.lastFilterArgs=null}init(){super.init();const e=this.getPluginOption("connectInput");e&&(this.queryInput=k(e),f(this.queryInput,`Invalid 'filter.connectInput' option: ${e}.`),I(this.queryInput,"input",o((e=>{this.filterNodes(this.queryInput.value.trim(),{})}),700)))}setPluginOption(e,t){if(super.setPluginOption(e,t),"mode"===e)this.tree.filterMode="hide"===t?"hide":"dim",this.tree.updateFilter()}_applyFilterNoUpdate(e,t){return this.tree.runWithDeferredUpdate((()=>this._applyFilterImpl(e,t)))}_applyFilterImpl(e,t){let i=0;const s=Date.now(),n=this.tree,r=n.options,o=r.autoCollapse,l=N({},r.filter,t),a="hide"===l.mode,d=!!l.matchBranch,c=!!l.leavesOnly&&!d;let h,u;if("string"==typeof e||e instanceof RegExp){if(""===e)return n.logInfo("Passing an empty string as a filter is handled as clearFilter()."),this.clearFilter(),0;if(l.fuzzy){f("string"==typeof e,"fuzzy filter must be a string");const t=e.split("").map(b).reduce((function(e,t){return e+"([^"+t+"]*)"+t}),"");h=new RegExp(t,"i")}else if(e instanceof RegExp)h=e,u=e;else{const t=b(e);h=new RegExp(t,"i"),u=new RegExp(t,"gi")}n.logDebug(`Filtering nodes by '${h}'`),e=e=>{if(!e.title)return!1;const t=e.title,i=h.exec(t);if(i&&l.highlight){let s;s=l.fuzzy?function(e,t,i=!0){const s=[];for(let e=1;e"+n[e]+""}));return n.join("")} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */const W="￷",H="￸",B=new RegExp(b("￷"),"g"),G=new RegExp(b("￸"),"g");class Q extends K{constructor(e){super(e,"filter",{autoApply:!0,autoExpand:!1,matchBranch:!1,connectInput:null,fuzzy:!1,hideExpanders:!1,highlight:!0,leavesOnly:!1,mode:"dim",noData:!0}),this.lastFilterArgs=null}init(){super.init();const e=this.getPluginOption("connectInput");e&&(this.queryInput=k(e),f(this.queryInput,`Invalid 'filter.connectInput' option: ${e}.`),T(this.queryInput,"input",o((e=>{this.filterNodes(this.queryInput.value.trim(),{})}),700)))}setPluginOption(e,t){if(super.setPluginOption(e,t),"mode"===e)this.tree.filterMode="hide"===t?"hide":"dim",this.tree.updateFilter()}_applyFilterNoUpdate(e,t){return this.tree.runWithDeferredUpdate((()=>this._applyFilterImpl(e,t)))}_applyFilterImpl(e,t){let i=0;const s=Date.now(),n=this.tree,r=n.options,o=r.autoCollapse,l=N({},r.filter,t),a="hide"===l.mode,d=!!l.matchBranch,c=!!l.leavesOnly&&!d;let h,u;if("string"==typeof e||e instanceof RegExp){if(""===e)return n.logInfo("Passing an empty string as a filter is handled as clearFilter()."),this.clearFilter(),0;if(l.fuzzy){f("string"==typeof e,"fuzzy filter must be a string");const t=e.split("").map(b).reduce((function(e,t){return e+"([^"+t+"]*)"+t}),"");h=new RegExp(t,"i")}else if(e instanceof RegExp)h=e,u=e;else{const t=b(e);h=new RegExp(t,"i"),u=new RegExp(t,"gi")}n.logDebug(`Filtering nodes by '${h}'`),e=e=>{if(!e.title)return!1;const t=e.title,i=h.exec(t);if(i&&l.highlight){let s;s=l.fuzzy?function(e,t,i=!0){const s=[];for(let e=1;e"+n[e]+""}));return n.join("")} /*! * Wunderbaum - ext-keynav * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */(t,i,!0):t.replace(u,(function(e){return K+e+W})),e.titleWithHighlight=m(s).replace(H,"").replace(B,"")}return!!i}}return n.filterMode=l.mode,this.lastFilterArgs=arguments,n.element.classList.toggle("wb-ext-filter-hide",!!a),n.element.classList.toggle("wb-ext-filter-dim",!a),n.element.classList.toggle("wb-ext-filter-hide-expanders",!!l.hideExpanders),n.root.subMatchCount=0,n.visit((e=>{delete e.match,delete e.titleWithHighlight,e.subMatchCount=0})),n.setStatus(F.ok),r.autoCollapse=!1,n.visit((t=>{if(c&&null!=t.children)return;let s=e(t);if("skip"===s)return t.visit((function(e){e.match=!1}),!0),"skip";let n=!1;(d||"branch"===s)&&t.parent.match&&(s=!0,n=!0),s&&(i++,t.match=!0,t.visitParents((e=>{e!==t&&(e.subMatchCount+=1),!l.autoExpand||n||e.expanded||(e.setExpanded(!0,{noAnimation:!0,noEvents:!0}),e._filterAutoExpanded=!0)}),!0))})),r.autoCollapse=o,0===i&&l.noData&&a&&("string"==typeof l.noData?n.root.setStatus(F.noData,{message:l.noData}):n.root.setStatus(F.noData)),n.logDebug(`Filter '${e}' found ${i} nodes in ${Date.now()-s} ms.`),i}filterNodes(e,t){return this._applyFilterNoUpdate(e,t)}filterBranches(e,t){return f(void 0===t.matchBranch,"filterBranches() is deprecated."),t.matchBranch=!0,this._applyFilterNoUpdate(e,t)}countMatches(){let e=0;return this.tree.visit((t=>{t.match&&!t.statusNodeType&&e++})),e}updateFilter(){var e;const t=this.tree;t.filterMode&&this.lastFilterArgs&&(null===(e=t.options.filter)||void 0===e?void 0:e.autoApply)?this._applyFilterNoUpdate.apply(this,this.lastFilterArgs):t.logWarn("updateFilter(): no filter active.")}clearFilter(){const e=this.tree;e.enableUpdate(!1),e.setStatus(F.ok),delete e.root.match,delete e.root.subMatchCount,e.visit((e=>{delete e.match,delete e.subMatchCount,delete e.titleWithHighlight,e._filterAutoExpanded&&e.expanded&&e.setExpanded(!1,{noAnimation:!0,noEvents:!0}),delete e._filterAutoExpanded})),e.filterMode=null,this.lastFilterArgs=null,e.element.classList.remove("wb-ext-filter-dim","wb-ext-filter-hide"),e.enableUpdate(!0)}}class Q extends j{constructor(e){super(e,"keynav",{})}_getEmbeddedInputElem(e){var t;let i=null;if(e&&null!=e.type)i=e;else{const e=null===(t=this.tree.getActiveColElem())||void 0===t?void 0:t.querySelector("input,select");e&&(i=e)}return i}_isCurInputFocused(){var e;return!!(null===(e=this.tree.getActiveColElem())||void 0===e?void 0:e.querySelector("input:focus,select:focus"))}onKeyEvent(e){const t=e.event,i=this.tree,s=e.options,n=!t.ctrlKey||s.autoActivate,r=this._getEmbeddedInputElem(t.target),o=r&&this._isCurInputFocused(),l=s.navigationModeOption;let a,d=C(t),c=e.node,h=!0;if(!i.isEnabled())return!1;if(!1===i._callEvent("keydown",e))return!1;if(!1===i._callMethod("edit._preprocessKeyEvent",e))return!1;if(!c){const e=i.getFocusNode()||i.getActiveNode(),t=i.getFirstChild();if(!e&&t&&"ArrowDown"===d)return t.logInfo("Keydown: activate first node."),void t.setActive();a=e||t,a&&(a.setFocus(),c=i.getFocusNode(),c.logInfo("Keydown: force focus on active node."))}const u=c.isColspan();if(i.isRowNav()){if(o){switch(d){case"Enter":r.blur(),i.setFocus();break;case"Escape":c._render(),i.setFocus()}return}if(s.quicksearch&&1===d.length&&/^\w$/.test(d)&&!r){const e=Date.now();e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=d;const s=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode());return s&&s.setActive(!0,{event:t}),void t.preventDefault()}switch(d){case"Enter":c.isActive()&&(c.isExpanded()?d="Subtract":c.isExpandable(!0)&&(d="Add"));break;case"ArrowLeft":c.expanded&&(d="Subtract");break;case"ArrowRight":if(!c.expanded&&c.isExpandable(!0))d="Add";else if(l===V.startCell||l===V.startRow)return t.preventDefault(),i.setCellNav(),!1}switch(d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":c.getOption("checkbox")?c.toggleSelected():c.setActive(!0,{event:t});break;case"Enter":c.setActive(!0,{event:t});break;case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"Backspace":case"End":case"Home":case"Control+End":case"Control+Home":case"Meta+ArrowDown":case"Meta+ArrowUp":case"PageDown":case"PageUp":c.navigate(d,{activate:n,event:t});break;default:h=!1}}else{const e=r?r.type||r.tagName:"",s=r&&"checkbox"!==e;if(o){if("Escape"===d)return c.logDebug("Reset focused input on Escape"),r.setCustomValidity(""),c._render(),i.setFocus(),void i.setColumn(i.activeColIdx);if("Enter"!==d)return r&&r.checkValidity&&!r.checkValidity()?(c.logDebug(`Ignored ${d} inside invalid input`),!1):void c.logDebug(`Ignored ${d} inside focused input`)}else if(r&&1===d.length&&s)return r.focus(),r.value="",c.logDebug(`Focus input: ${d}`),!1;switch("Tab"===d?(d="ArrowRight",h=!0):"Shift+Tab"===d&&(d=i.activeColIdx>0?"ArrowLeft":"",h=!0),d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":0===i.activeColIdx&&c.getOption("checkbox")?(c.toggleSelected(),h=!0):r&&"checkbox"===e&&(r.click(),h=!0);break;case"F2":r&&!o&&s&&(r.focus(),h=!0);break;case"Enter":i.setFocus(),(0===i.activeColIdx||u)&&c.isExpandable()?(c.setExpanded(!c.isExpanded()),h=!0):r&&!o&&s&&(r.focus(),h=!0);break;case"Escape":i.setFocus(),c.log("keynav: focus tree..."),i.isCellNav()&&l!==V.cell&&(c.log("keynav: setCellNav(false)"),i.setCellNav(!1),i.setFocus(),h=!0);break;case"ArrowLeft":i.setFocus(),u&&c.isExpanded()?c.setExpanded(!1):!u&&i.activeColIdx>0?i.setColumn(i.activeColIdx-1):l!==V.cell&&i.setCellNav(!1),h=!0;break;case"ArrowRight":i.setFocus(),u&&!c.isExpanded()?c.setExpanded():!u&&i.activeColIdx0&&i.setColumn(0),h=!0;break;case"End":i.setFocus(),!u&&i.activeColIdx").replace(G,"")}return!!i}}return n.filterMode=l.mode,this.lastFilterArgs=arguments,n.element.classList.toggle("wb-ext-filter-hide",!!a),n.element.classList.toggle("wb-ext-filter-dim",!a),n.element.classList.toggle("wb-ext-filter-hide-expanders",!!l.hideExpanders),n.root.subMatchCount=0,n.visit((e=>{delete e.match,delete e.titleWithHighlight,e.subMatchCount=0})),n.setStatus(U.ok),r.autoCollapse=!1,n.visit((t=>{if(c&&null!=t.children)return;let s=e(t);if("skip"===s)return t.visit((function(e){e.match=!1}),!0),"skip";let n=!1;(d||"branch"===s)&&t.parent.match&&(s=!0,n=!0),s&&(i++,t.match=!0,t.visitParents((e=>{e!==t&&(e.subMatchCount+=1),!l.autoExpand||n||e.expanded||(e.setExpanded(!0,{noAnimation:!0,noEvents:!0}),e._filterAutoExpanded=!0)}),!0))})),r.autoCollapse=o,0===i&&l.noData&&a&&("string"==typeof l.noData?n.root.setStatus(U.noData,{message:l.noData}):n.root.setStatus(U.noData)),n.logDebug(`Filter '${e}' found ${i} nodes in ${Date.now()-s} ms.`),i}filterNodes(e,t){return this._applyFilterNoUpdate(e,t)}filterBranches(e,t){return f(void 0===t.matchBranch,"filterBranches() is deprecated."),t.matchBranch=!0,this._applyFilterNoUpdate(e,t)}countMatches(){let e=0;return this.tree.visit((t=>{t.match&&!t.statusNodeType&&e++})),e}updateFilter(){var e;const t=this.tree;t.filterMode&&this.lastFilterArgs&&(null===(e=t.options.filter)||void 0===e?void 0:e.autoApply)?this._applyFilterNoUpdate.apply(this,this.lastFilterArgs):t.logWarn("updateFilter(): no filter active.")}clearFilter(){const e=this.tree;e.enableUpdate(!1),e.setStatus(U.ok),delete e.root.match,delete e.root.subMatchCount,e.visit((e=>{delete e.match,delete e.subMatchCount,delete e.titleWithHighlight,e._filterAutoExpanded&&e.expanded&&e.setExpanded(!1,{noAnimation:!0,noEvents:!0}),delete e._filterAutoExpanded})),e.filterMode=null,this.lastFilterArgs=null,e.element.classList.remove("wb-ext-filter-dim","wb-ext-filter-hide"),e.enableUpdate(!0)}}class Y extends K{constructor(e){super(e,"keynav",{})}_getEmbeddedInputElem(e){var t;let i=null;if(e&&null!=e.type)i=e;else{const e=null===(t=this.tree.getActiveColElem())||void 0===t?void 0:t.querySelector("input,select");e&&(i=e)}return i}_isCurInputFocused(){var e;return!!(null===(e=this.tree.getActiveColElem())||void 0===e?void 0:e.querySelector("input:focus,select:focus"))}onKeyEvent(e){const t=e.event,i=this.tree,s=e.options,n=!t.ctrlKey||s.autoActivate,r=this._getEmbeddedInputElem(t.target),o=r&&this._isCurInputFocused(),l=s.navigationModeOption;let a,d=C(t),c=e.node,h=!0;if(!i.isEnabled())return!1;if(!1===i._callEvent("keydown",e))return!1;if(!1===i._callMethod("edit._preprocessKeyEvent",e))return!1;if(!c){const e=i.getFocusNode()||i.getActiveNode(),t=i.getFirstChild();if(!e&&t&&"ArrowDown"===d)return t.logInfo("Keydown: activate first node."),void t.setActive();a=e||t,a&&(a.setFocus(),c=i.getFocusNode(),c.logInfo("Keydown: force focus on active node."))}const u=c.isColspan();if(i.isRowNav()){if(o){switch(d){case"Enter":r.blur(),i.setFocus();break;case"Escape":c._render(),i.setFocus()}return}if(s.quicksearch&&1===d.length&&/^\w$/.test(d)&&!r){const e=Date.now();e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=d;const s=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode());return s&&s.setActive(!0,{event:t}),void t.preventDefault()}switch(d){case"Enter":c.isActive()&&(c.isExpanded()?d="Subtract":c.isExpandable(!0)&&(d="Add"));break;case"ArrowLeft":c.expanded&&(d="Subtract");break;case"ArrowRight":if(!c.expanded&&c.isExpandable(!0))d="Add";else if(l===q.startCell||l===q.startRow)return t.preventDefault(),i.setCellNav(),!1}switch(d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":c.getOption("checkbox")?c.toggleSelected():c.setActive(!0,{event:t});break;case"Enter":c.setActive(!0,{event:t});break;case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"Backspace":case"End":case"Home":case"Control+End":case"Control+Home":case"Meta+ArrowDown":case"Meta+ArrowUp":case"PageDown":case"PageUp":c.navigate(d,{activate:n,event:t});break;default:h=!1}}else{const e=r?r.type||r.tagName:"",s=r&&"checkbox"!==e;if(o){if("Escape"===d)return c.logDebug("Reset focused input on Escape"),r.setCustomValidity(""),c._render(),i.setFocus(),void i.setColumn(i.activeColIdx);if("Enter"!==d)return r&&r.checkValidity&&!r.checkValidity()?(c.logDebug(`Ignored ${d} inside invalid input`),!1):void c.logDebug(`Ignored ${d} inside focused input`)}else if(r&&1===d.length&&s)return r.focus(),r.value="",c.logDebug(`Focus input: ${d}`),!1;switch("Tab"===d?(d="ArrowRight",h=!0):"Shift+Tab"===d&&(d=i.activeColIdx>0?"ArrowLeft":"",h=!0),d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":0===i.activeColIdx&&c.getOption("checkbox")?(c.toggleSelected(),h=!0):r&&"checkbox"===e&&(r.click(),h=!0);break;case"F2":r&&!o&&s&&(r.focus(),h=!0);break;case"Enter":i.setFocus(),(0===i.activeColIdx||u)&&c.isExpandable()?(c.setExpanded(!c.isExpanded()),h=!0):r&&!o&&s&&(r.focus(),h=!0);break;case"Escape":i.setFocus(),c.log("keynav: focus tree..."),i.isCellNav()&&l!==q.cell&&(c.log("keynav: setCellNav(false)"),i.setCellNav(!1),i.setFocus(),h=!0);break;case"ArrowLeft":i.setFocus(),u&&c.isExpanded()?c.setExpanded(!1):!u&&i.activeColIdx>0?i.setColumn(i.activeColIdx-1):l!==q.cell&&i.setCellNav(!1),h=!0;break;case"ArrowRight":i.setFocus(),u&&!c.isExpanded()?c.setExpanded():!u&&i.activeColIdx0&&i.setColumn(0),h=!0;break;case"End":i.setFocus(),!u&&i.activeColIdx=4){const t=this.ignoreEvents,i=this.prefix;L(e,"callEvent",(function(s,n){if(t.has(s))return e._superApply(arguments);const r=Date.now(),o=e._superApply(arguments);return e.logDebug(`${i}: callEvent('${s}') took ${Date.now()-r} ms.`,arguments[1]),o}))}}onKeyEvent(e){this.tree.logDebug(`${this.prefix}: onKeyEvent()`,e)}} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */class J extends K{constructor(e){super(e,"logger",{}),this.ignoreEvents=new Set(["iconBadge","render","discard"]),this.prefix=e+".ext-logger"}init(){const e=this.tree;if(e.getOption("debugLevel")>=4){const t=this.ignoreEvents,i=this.prefix;L(e,"callEvent",(function(s,n){if(t.has(s))return e._superApply(arguments);const r=Date.now(),o=e._superApply(arguments);return e.logDebug(`${i}: callEvent('${s}') took ${Date.now()-r} ms.`,arguments[1]),o}))}}onKeyEvent(e){this.tree.logDebug(`${this.prefix}: onKeyEvent()`,e)}} /*! * Wunderbaum - common * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const J=22,X=new RegExp(/\.|\//),Z={bootstrap:{error:"bi bi-exclamation-triangle",loading:"bi bi-chevron-right wb-busy",noData:"bi bi-question-circle",expanderExpanded:"bi bi-chevron-down",expanderCollapsed:"bi bi-chevron-right",expanderLazy:"bi bi-chevron-right wb-helper-lazy-expander",checkChecked:"bi bi-check-square",checkUnchecked:"bi bi-square",checkUnknown:"bi bi-dash-square-dotted",radioChecked:"bi bi-circle-fill",radioUnchecked:"bi bi-circle",radioUnknown:"bi bi-record-circle",folder:"bi bi-folder2",folderOpen:"bi bi-folder2-open",folderLazy:"bi bi-folder-symlink",doc:"bi bi-file-earmark"},fontawesome6:{error:"fa-solid fa-triangle-exclamation",loading:"fa-solid fa-chevron-right fa-beat",noData:"fa-solid fa-circle-question",expanderExpanded:"fa-solid fa-chevron-down",expanderCollapsed:"fa-solid fa-chevron-right",expanderLazy:"fa-solid fa-chevron-right wb-helper-lazy-expander",checkChecked:"fa-regular fa-square-check",checkUnchecked:"fa-regular fa-square",checkUnknown:"fa-regular fa-square-minus",radioChecked:"fa-solid fa-circle",radioUnchecked:"fa-regular fa-circle",radioUnknown:"fa-regular fa-circle-question",folder:"fa-solid fa-folder-closed",folderOpen:"fa-regular fa-folder-open",folderLazy:"fa-solid fa-folder-plus",doc:"fa-regular fa-file"}},ee=new Set(["_format","_keyMap","_positional","_typeList","_valueMap","_version","children","columns","types"]),te={" ":"toggleSelect","+":"expand",Add:"expand",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",Backspace:"parent","/":"collapseAll",Divide:"collapseAll",End:"lastCol",Home:"firstCol","Control+End":"last","Control+Home":"first","Meta+ArrowDown":"last","Meta+ArrowUp":"first","*":"expandAll",Multiply:"expandAll",PageDown:"pageDown",PageUp:"pageUp","-":"collapse",Subtract:"collapse"};function ie(e){return e instanceof RegExp?function(t){return e.test(t.title)}:(f("string"==typeof e,`Expected a string or RegExp: ${e}`),function(t){return t.title===e})}function se(e,t){const i=e.title.toLowerCase(),s=t.title.toLowerCase();return i===s?0:i>s?1:-1}function ne(e){let{_format:t,_version:i=1,_keyMap:s,_valueMap:n}=e;f(1===i,`Expected file version 1 instead of ${i}`);let r=s,o={};if(r)for(const[e,t]of Object.entries(r))o[t]=e;if(r&&r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),[r,o]=[o,r]}if(null!=e._typeList){const t='source._typeList is deprecated since v0.7.0: use source._valueMap: {"type": [...]} instead.';if(null!=n)throw new Error(t);console.warn(t),n={type:e._typeList},delete e._typeList}"flat"===t&&function(e){var t,i,s;const{_format:n,_keyMap:r={},_positional:o=[],children:l}=e;if("flat"!==n)throw new Error(`Expected source._format: "flat", but got ${n}`);if(o&&o.includes("children"))throw new Error(`source._positional must not include "children": ${o}`);let a=r;if(r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),a={};for(const[e,t]of Object.entries(r))a[t]=e}const d=o.map((e=>a[e])),c=[],h={},u={},p=null!==(t=a.key)&&void 0!==t?t:"key",f=null!==(i=a.children)&&void 0!==i?i:"children";for(const[e,t]of l.entries()){const[i,n,r={}]=t;t[1]=null,null!=t[2]&&(t[2]=null),n.forEach(((e,t)=>{r[d[t]]=e})),u[e]=r;const o=r[p];null!=o&&(h[o]=r);let l=null;if(null===i);else if("number"==typeof i){if(l=u[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by index: ${i}.`)}else if(l=h[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by key: ${i}`);l?(null!==(s=l[f])&&void 0!==s||(l[f]=[]),l[f].push(r)):c.push(r)}e.children=c}(e),delete e._format,delete e._version,delete e._keyMap,delete e._valueMap,delete e._positional,(s||n)&&function e(t){for(const i of t)Object.getOwnPropertyNames(i).forEach((e=>{const t=i[e];let r=e;if(s&&null!=o[e]&&(r=o[e],r!==e&&(i[r]=t,delete i[e])),n&&"number"==typeof t&&null!=n[r]){const e=n[r][t];if(null==e)throw new Error(`Expected valueMap[${r}][${t}] entry in [${n[r]}]`);i[r]=e}})),i.children&&e(i.children)}(e.children)} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */const X=22,Z=new RegExp(/\.|\//),ee={bootstrap:{error:"bi bi-exclamation-triangle",loading:"bi bi-chevron-right wb-busy",noData:"bi bi-question-circle",expanderExpanded:"bi bi-chevron-down",expanderCollapsed:"bi bi-chevron-right",expanderLazy:"bi bi-chevron-right wb-helper-lazy-expander",checkChecked:"bi bi-check-square",checkUnchecked:"bi bi-square",checkUnknown:"bi bi-dash-square-dotted",radioChecked:"bi bi-circle-fill",radioUnchecked:"bi bi-circle",radioUnknown:"bi bi-record-circle",folder:"bi bi-folder2",folderOpen:"bi bi-folder2-open",folderLazy:"bi bi-folder-symlink",doc:"bi bi-file-earmark",colSortable:"bi bi-chevron-expand",colSortAsc:"bi bi-arrow-down",colSortDesc:"bi bi-arrow-up",colFilter:"bi bi-filter-circle",colFilterActive:"bi bi-filter-circle-fill wb-helper-invalid",colMenu:"bi bi-three-dots-vertical"},fontawesome6:{error:"fa-solid fa-triangle-exclamation",loading:"fa-solid fa-chevron-right fa-beat",noData:"fa-solid fa-circle-question",expanderExpanded:"fa-solid fa-chevron-down",expanderCollapsed:"fa-solid fa-chevron-right",expanderLazy:"fa-solid fa-chevron-right wb-helper-lazy-expander",checkChecked:"fa-regular fa-square-check",checkUnchecked:"fa-regular fa-square",checkUnknown:"fa-regular fa-square-minus",radioChecked:"fa-solid fa-circle",radioUnchecked:"fa-regular fa-circle",radioUnknown:"fa-regular fa-circle-question",folder:"fa-solid fa-folder-closed",folderOpen:"fa-regular fa-folder-open",folderLazy:"fa-solid fa-folder-plus",doc:"fa-regular fa-file",colSortable:"fa-solid fa-fw fa-sort",colSortAsc:"fa-solid fa-fw fa-sort-up",colSortDesc:"fa-solid fa-fw fa-sort-down",colFilter:"fa-solid fa-fw fa-filter",colFilterActive:"fa-solid fa-fw fa-filter wb-helper-invalid",colMenu:"fa-solid fa-fw fa-ellipsis-v"}},te=new Set(["_format","_keyMap","_positional","_typeList","_valueMap","_version","children","columns","types"]),ie={" ":"toggleSelect","+":"expand",Add:"expand",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",Backspace:"parent","/":"collapseAll",Divide:"collapseAll",End:"lastCol",Home:"firstCol","Control+End":"last","Control+Home":"first","Meta+ArrowDown":"last","Meta+ArrowUp":"first","*":"expandAll",Multiply:"expandAll",PageDown:"pageDown",PageUp:"pageUp","-":"collapse",Subtract:"collapse"};function se(e){return e instanceof RegExp?function(t){return e.test(t.title)}:(f("string"==typeof e,`Expected a string or RegExp: ${e}`),function(t){return t.title===e})}function ne(e,t){const i=e.title.toLowerCase(),s=t.title.toLowerCase();return i===s?0:i>s?1:-1}function re(e){let{_format:t,_version:i=1,_keyMap:s,_valueMap:n}=e;f(1===i,`Expected file version 1 instead of ${i}`);let r=s,o={};if(r)for(const[e,t]of Object.entries(r))o[t]=e;if(r&&r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),[r,o]=[o,r]}if(null!=e._typeList){const t='source._typeList is deprecated since v0.7.0: use source._valueMap: {"type": [...]} instead.';if(null!=n)throw new Error(t);console.warn(t),n={type:e._typeList},delete e._typeList}"flat"===t&&function(e){var t,i,s;const{_format:n,_keyMap:r={},_positional:o=[],children:l}=e;if("flat"!==n)throw new Error(`Expected source._format: "flat", but got ${n}`);if(o&&o.includes("children"))throw new Error(`source._positional must not include "children": ${o}`);let a=r;if(r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),a={};for(const[e,t]of Object.entries(r))a[t]=e}const d=o.map((e=>a[e])),c=[],h={},u={},p=null!==(t=a.key)&&void 0!==t?t:"key",f=null!==(i=a.children)&&void 0!==i?i:"children";for(const[e,t]of l.entries()){const[i,n,r={}]=t;t[1]=null,null!=t[2]&&(t[2]=null),n.forEach(((e,t)=>{r[d[t]]=e})),u[e]=r;const o=r[p];null!=o&&(h[o]=r);let l=null;if(null===i);else if("number"==typeof i){if(l=u[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by index: ${i}.`)}else if(l=h[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by key: ${i}`);l?(null!==(s=l[f])&&void 0!==s||(l[f]=[]),l[f].push(r)):c.push(r)}e.children=c}(e),delete e._format,delete e._version,delete e._keyMap,delete e._valueMap,delete e._positional,(s||n)&&function e(t){for(const i of t)Object.getOwnPropertyNames(i).forEach((e=>{const t=i[e];let r=e;if(s&&null!=o[e]&&(r=o[e],r!==e&&(i[r]=t,delete i[e])),n&&"number"==typeof t&&null!=n[r]){const e=n[r][t];if(null==e)throw new Error(`Expected valueMap[${r}][${t}] entry in [${n[r]}]`);i[r]=e}})),i.children&&e(i.children)}(e.children)} /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const re="application/x-wunderbaum-node";class oe extends j{constructor(e){super(e,"dnd",{autoExpandMS:1500,multiSource:!1,effectAllowed:"all",dropEffectDefault:"move",guessDropEffect:!0,preventForeignNodes:!1,preventLazyParents:!0,preventNonNodes:!1,preventRecursion:!0,preventSameParent:!1,preventVoidMoves:!0,serializeClipboardData:!0,scroll:!0,scrollSensitivity:20,scrollSpeed:5,sourceCopyHook:null,dragStart:null,drag:null,dragEnd:null,dragEnter:null,dragOver:null,dragExpand:null,drop:null,dragLeave:null}),this.srcNode=null,this.lastTargetNode=null,this.lastEnterStamp=0,this.lastAllowedDropRegions=null,this.lastDropEffect=null,this.lastDropRegion=!1,this.currentScrollDir=0,this.applyScrollDirThrottled=l(this._applyScrollDir,50)}init(){super.init();const e=this.tree,t=e.options.dnd;t.dragStart&&I(e.element,"dragstart drag dragend",this.onDragEvent.bind(this)),t.dragEnter&&I(e.element,"dragenter dragover dragleave drop",this.onDropEvent.bind(this))}_leaveNode(){const e=this.lastTargetNode;this.lastEnterStamp=0,e&&(e.setClass("wb-drop-target wb-drop-over wb-drop-after wb-drop-before",!1),this.lastTargetNode=null)}unifyDragover(e){if(!1===e)return!1;if(e instanceof Set)return e.size>0&&e;if(!0===e)return new Set(["over","before","after"]);if("string"==typeof e||S(e))return(e=A(e)).size>0&&e;throw new Error("Unsupported drop region definition: "+e)}_calcDropRegion(e,t){const i=e.offsetY;return!!t&&(3===t.size?i<5.5?"before":i>16.5?"after":"over":1===t.size&&t.has("over")?"over":i>11?"after":"before")}_guessDropEffect(e){var t;const i=this.treeOpts.dnd,s=null!==(t=i.effectAllowed)&&void 0!==t?t:"all",n=["all","copy","copyLink","copyMove"].includes(s),r=["all","link","copyLink","linkMove"].includes(s),o=["all","move","copyMove","linkMove"].includes(s);let l=i.dropEffectDefault;return i.guessDropEffect&&(d?(e.altKey&&n&&(l="copy"),e.metaKey&&o&&(l="move"),e.altKey&&e.metaKey&&r&&(l="link")):(e.ctrlKey&&n&&(l="copy"),e.shiftKey&&o&&(l="move"),e.altKey&&r&&(l="link"))),l}_isVoidDrop(e,t,i){return!(!this.treeOpts.dnd.preventVoidMoves||!t)&&("before"===i&&e===t.getNextSibling()||"after"===i&&e===t.getPrevSibling()||(t===e||t.parent===e))}_applyScrollDir(){if(this.isDragging()&&this.currentScrollDir){const e=this.tree.options.dnd,t=this.tree.element,i=t.scrollTop;this.currentScrollDir<0?t.scrollTop=Math.max(0,i-e.scrollSpeed):this.currentScrollDir>0&&(t.scrollTop=i+e.scrollSpeed)}}_autoScroll(e){const t=this.tree,i=t.options.dnd.scrollSensitivity,s=t.element,n=t.headerElement.clientHeight,r=s.offsetHeight,o=s.scrollTop;return this.currentScrollDir=0,o>0&&e>0&&e<=i+n?this.currentScrollDir=-1:o=r-i&&(this.currentScrollDir=1),this.currentScrollDir&&this.applyScrollDirThrottled(),s.scrollTop-o}isDragging(){return!!this.srcNode}onDragEvent(e){var t;const i=this.treeOpts.dnd,s=ge.getNode(e);if(s){if(["dragstart","dragend"].includes(e.type)&&this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${s}`,e),"dragstart"===e.type){if(e.dataTransfer.effectAllowed=i.effectAllowed,s.isEditingTitle())return s.logDebug("Prevented dragging node in edit mode."),e.preventDefault(),!1;if(!s._callEvent("dnd.dragStart",{event:e}))return e.preventDefault(),!1;const n=s.toDict(!0,(e=>{e._orgKey=e.key,delete e.key}));n._treeId=s.tree.id,i.serializeClipboardData&&("function"==typeof i.serializeClipboardData?e.dataTransfer.setData(re,i.serializeClipboardData(n,s)):e.dataTransfer.setData(re,JSON.stringify(n))),(null===(t=e.dataTransfer)||void 0===t?void 0:t.types.includes("text/plain"))||e.dataTransfer.setData("text/plain",s.title),this.srcNode=s,setTimeout((()=>{s.setClass("wb-drag-source")}),0)}else"drag"===e.type?i.drag&&s._callEvent("dnd.drag",{event:e}):"dragend"===e.type&&(s.setClass("wb-drag-source",!1),this.srcNode=null,this.lastTargetNode&&this._leaveNode(),s._callEvent("dnd.dragEnd",{event:e}));return!0}this.tree.logWarn(`onDragEvent.${e.type}: no node`)}onDropEvent(e){var t;const i=this.srcNode,s=i?i.tree:null,n=ge.getNode(e),r=this.treeOpts.dnd,o=e.dataTransfer,l=this._calcDropRegion(e,this.lastAllowedDropRegions),a=(e,t)=>(e&&this.tree.log(`Prevented drop operation (${t}).`),e);if(n){if(["drop"].includes(e.type)&&this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${n}, ea: ${null==o?void 0:o.effectAllowed}, de: ${null==o?void 0:o.dropEffect}, cy: ${e.offsetY}, r: ${l}, srcNode: ${i}`,e),"dragenter"===e.type){if(this.lastAllowedDropRegions=null,this.lastTargetNode&&this.lastTargetNode!==n&&this._leaveNode(),this.lastTargetNode=n,this.lastEnterStamp=Date.now(),a(n.isStatusNode(),"is status node")||a(r.preventForeignNodes&&n.tree!==s,"preventForeignNodes")||a(r.preventLazyParents&&!n.isLoaded(),"preventLazyParents")||a(r.preventNonNodes&&!i,"preventNonNodes")||a(r.preventRecursion&&(null==i?void 0:i.isAncestorOf(n)),"preventRecursion")||a(r.preventSameParent&&i&&n.parent===i.parent,"preventSameParent")||a(r.preventVoidMoves&&n===i,"preventVoidMoves"))return o.dropEffect="none",!0;o.dropEffect=this._guessDropEffect(e)||"none";let t=n._callEvent("dnd.dragEnter",{event:e,sourceNode:i});return t=this.unifyDragover(t),t?(this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect,n.setClass("wb-drop-target"),e.preventDefault(),!1):(o.dropEffect="none",!0)}if("dragover"===e.type){const t=e.clientY-this.tree.element.offsetTop;this._autoScroll(t),o.dropEffect=this._guessDropEffect(e)||"none",n._callEvent("dnd.dragOver",{event:e,sourceNode:i});const s=this._calcDropRegion(e,this.lastAllowedDropRegions);if(this.lastDropRegion=s,this.lastDropEffect=o.dropEffect,r.autoExpandMS>0&&n.isExpandable(!0)&&!n._isLoading&&Date.now()-this.lastEnterStamp>r.autoExpandMS&&!1!==n._callEvent("dnd.dragExpand",{event:e,sourceNode:i})&&n.setExpanded(),!s||this._isVoidDrop(n,i,s))return;return n.setClass("wb-drop-over","over"===s),n.setClass("wb-drop-before","before"===s),n.setClass("wb-drop-after","after"===s),e.preventDefault(),!1}if("dragleave"===e.type)n._callEvent("dnd.dragLeave",{event:e,sourceNode:i});else if("drop"===e.type){e.stopPropagation(),e.preventDefault(),this._leaveNode();const i=this.lastDropRegion;let s=null===(t=e.dataTransfer)||void 0===t?void 0:t.getData(re);s=s?JSON.parse(s):null;const r=this.srcNode,o=this.lastDropEffect;setTimeout((()=>{n._callEvent("dnd.drop",{event:e,region:i,suggestedDropMode:"over"===i?"appendChild":i,suggestedDropEffect:o,sourceNode:r,sourceNodeData:s})}),10)}return!1}this._leaveNode()}} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */const oe="application/x-wunderbaum-node";class le extends K{constructor(e){super(e,"dnd",{autoExpandMS:1500,multiSource:!1,effectAllowed:"all",dropEffectDefault:"move",guessDropEffect:!0,preventForeignNodes:!1,preventLazyParents:!0,preventNonNodes:!1,preventRecursion:!0,preventSameParent:!1,preventVoidMoves:!0,serializeClipboardData:!0,scroll:!0,scrollSensitivity:20,scrollSpeed:5,sourceCopyHook:null,dragStart:null,drag:null,dragEnd:null,dragEnter:null,dragOver:null,dragExpand:null,drop:null,dragLeave:null}),this.srcNode=null,this.lastTargetNode=null,this.lastEnterStamp=0,this.lastAllowedDropRegions=null,this.lastDropEffect=null,this.lastDropRegion=!1,this.currentScrollDir=0,this.applyScrollDirThrottled=l(this._applyScrollDir,50)}init(){super.init();const e=this.tree,t=e.options.dnd;t.dragStart&&T(e.element,"dragstart drag dragend",this.onDragEvent.bind(this)),t.dragEnter&&T(e.element,"dragenter dragover dragleave drop",this.onDropEvent.bind(this))}_leaveNode(){const e=this.lastTargetNode;this.lastEnterStamp=0,e&&(e.setClass("wb-drop-target wb-drop-over wb-drop-after wb-drop-before",!1),this.lastTargetNode=null)}unifyDragover(e){if(!1===e)return!1;if(e instanceof Set)return e.size>0&&e;if(!0===e)return new Set(["over","before","after"]);if("string"==typeof e||S(e))return(e=A(e)).size>0&&e;throw new Error("Unsupported drop region definition: "+e)}_calcDropRegion(e,t){const i=e.offsetY;return!!t&&(3===t.size?i<5.5?"before":i>16.5?"after":"over":1===t.size&&t.has("over")?"over":i>11?"after":"before")}_guessDropEffect(e){var t;const i=this.treeOpts.dnd,s=null!==(t=i.effectAllowed)&&void 0!==t?t:"all",n=["all","copy","copyLink","copyMove"].includes(s),r=["all","link","copyLink","linkMove"].includes(s),o=["all","move","copyMove","linkMove"].includes(s);let l=i.dropEffectDefault;return i.guessDropEffect&&(d?(e.altKey&&n&&(l="copy"),e.metaKey&&o&&(l="move"),e.altKey&&e.metaKey&&r&&(l="link")):(e.ctrlKey&&n&&(l="copy"),e.shiftKey&&o&&(l="move"),e.altKey&&r&&(l="link"))),l}_isVoidDrop(e,t,i){return!(!this.treeOpts.dnd.preventVoidMoves||!t)&&("before"===i&&e===t.getNextSibling()||"after"===i&&e===t.getPrevSibling()||(t===e||t.parent===e))}_applyScrollDir(){if(this.isDragging()&&this.currentScrollDir){const e=this.tree.options.dnd,t=this.tree.element,i=t.scrollTop;this.currentScrollDir<0?t.scrollTop=Math.max(0,i-e.scrollSpeed):this.currentScrollDir>0&&(t.scrollTop=i+e.scrollSpeed)}}_autoScroll(e){const t=this.tree,i=t.options.dnd.scrollSensitivity,s=t.element,n=t.headerElement.clientHeight,r=s.offsetHeight,o=s.scrollTop;return this.currentScrollDir=0,o>0&&e>0&&e<=i+n?this.currentScrollDir=-1:o=r-i&&(this.currentScrollDir=1),this.currentScrollDir&&this.applyScrollDirThrottled(),s.scrollTop-o}isDragging(){return!!this.srcNode}onDragEvent(e){var t;const i=this.treeOpts.dnd,s=ve.getNode(e);if(s){if(["dragstart","dragend"].includes(e.type)&&this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${s}`,e),"dragstart"===e.type){if(e.dataTransfer.effectAllowed=i.effectAllowed,s.isEditingTitle())return s.logDebug("Prevented dragging node in edit mode."),e.preventDefault(),!1;if(!s._callEvent("dnd.dragStart",{event:e}))return e.preventDefault(),!1;const n=s.toDict(!0,(e=>{e._orgKey=e.key,delete e.key}));n._treeId=s.tree.id,i.serializeClipboardData&&("function"==typeof i.serializeClipboardData?e.dataTransfer.setData(oe,i.serializeClipboardData(n,s)):e.dataTransfer.setData(oe,JSON.stringify(n))),(null===(t=e.dataTransfer)||void 0===t?void 0:t.types.includes("text/plain"))||e.dataTransfer.setData("text/plain",s.title),this.srcNode=s,setTimeout((()=>{s.setClass("wb-drag-source")}),0)}else"drag"===e.type?i.drag&&s._callEvent("dnd.drag",{event:e}):"dragend"===e.type&&(s.setClass("wb-drag-source",!1),this.srcNode=null,this.lastTargetNode&&this._leaveNode(),s._callEvent("dnd.dragEnd",{event:e}));return!0}this.tree.logWarn(`onDragEvent.${e.type}: no node`)}onDropEvent(e){var t;const i=this.srcNode,s=i?i.tree:null,n=ve.getNode(e),r=this.treeOpts.dnd,o=e.dataTransfer,l=this._calcDropRegion(e,this.lastAllowedDropRegions),a=(e,t)=>(e&&this.tree.log(`Prevented drop operation (${t}).`),e);if(n){if(["drop"].includes(e.type)&&this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${n}, ea: ${null==o?void 0:o.effectAllowed}, de: ${null==o?void 0:o.dropEffect}, cy: ${e.offsetY}, r: ${l}, srcNode: ${i}`,e),"dragenter"===e.type){if(this.lastAllowedDropRegions=null,this.lastTargetNode&&this.lastTargetNode!==n&&this._leaveNode(),this.lastTargetNode=n,this.lastEnterStamp=Date.now(),a(n.isStatusNode(),"is status node")||a(r.preventForeignNodes&&n.tree!==s,"preventForeignNodes")||a(r.preventLazyParents&&!n.isLoaded(),"preventLazyParents")||a(r.preventNonNodes&&!i,"preventNonNodes")||a(r.preventRecursion&&(null==i?void 0:i.isAncestorOf(n)),"preventRecursion")||a(r.preventSameParent&&i&&n.parent===i.parent,"preventSameParent")||a(r.preventVoidMoves&&n===i,"preventVoidMoves"))return o.dropEffect="none",!0;o.dropEffect=this._guessDropEffect(e)||"none";let t=n._callEvent("dnd.dragEnter",{event:e,sourceNode:i});return t=this.unifyDragover(t),t?(this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect,n.setClass("wb-drop-target"),e.preventDefault(),!1):(o.dropEffect="none",!0)}if("dragover"===e.type){const t=e.clientY-this.tree.element.offsetTop;this._autoScroll(t),o.dropEffect=this._guessDropEffect(e)||"none",n._callEvent("dnd.dragOver",{event:e,sourceNode:i});const s=this._calcDropRegion(e,this.lastAllowedDropRegions);if(this.lastDropRegion=s,this.lastDropEffect=o.dropEffect,r.autoExpandMS>0&&n.isExpandable(!0)&&!n._isLoading&&Date.now()-this.lastEnterStamp>r.autoExpandMS&&!1!==n._callEvent("dnd.dragExpand",{event:e,sourceNode:i})&&n.setExpanded(),!s||this._isVoidDrop(n,i,s))return;return n.setClass("wb-drop-over","over"===s),n.setClass("wb-drop-before","before"===s),n.setClass("wb-drop-after","after"===s),e.preventDefault(),!1}if("dragleave"===e.type)n._callEvent("dnd.dragLeave",{event:e,sourceNode:i});else if("drop"===e.type){e.stopPropagation(),e.preventDefault(),this._leaveNode();const i=this.lastDropRegion;let s=null===(t=e.dataTransfer)||void 0===t?void 0:t.getData(oe);s=s?JSON.parse(s):null;const r=this.srcNode,o=this.lastDropEffect;setTimeout((()=>{n._callEvent("dnd.drop",{event:e,region:i,suggestedDropMode:"over"===i?"appendChild":i,suggestedDropEffect:o,sourceNode:r,sourceNodeData:s})}),10)}return!1}this._leaveNode()}} /*! * Wunderbaum - drag_observer * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */class le{constructor(e){if(this.start={event:null,x:0,y:0,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1},this.dragElem=null,this.dragging=!1,this.customData={},this.events=["mousedown","mouseup","mousemove","keydown"],!e.root)throw new Error("Missing `root` option.");this.opts=Object.assign({thresh:5},e),this.root=e.root,this._handler=this.handleEvent.bind(this),this.events.forEach((e=>{this.root.addEventListener(e,this._handler)}))}disconnect(){this.events.forEach((e=>{this.root.removeEventListener(e,this._handler)}))}getDragElem(){return this.dragElem}isDragging(){return this.dragging}stopDrag(e){if(this.dragging&&this.opts.dragstop&&e){e.type="dragstop";try{this.opts.dragstop(e)}catch(e){console.error("dragstop error",e)}}this.dragElem=null,this.dragging=!1,this.start.event=null,this.customData={}}handleEvent(e){const t=e.type,i=this.opts,s={type:e.type,startEvent:"mousedown"===t?e:this.start.event,event:e,customData:this.customData,dragElem:this.dragElem,dx:e.pageX-this.start.x,dy:e.pageY-this.start.y,apply:void 0};switch(t){case"keydown":this.stopDrag(s);break;case"mousedown":if(this.dragElem){this.stopDrag(s);break}if(i.selector){let t=e.target;if(t.matches(i.selector))this.dragElem=t;else{if(t=t.closest(i.selector),!t)break;this.dragElem=t}}this.start.event=e,this.start.x=e.pageX,this.start.y=e.pageY,this.start.altKey=e.altKey,this.start.ctrlKey=e.ctrlKey,this.start.metaKey=e.metaKey,this.start.shiftKey=e.shiftKey;break;case"mousemove":if(!this.dragElem)break;if(!this.dragging){if(i.thresh){if(s.dx*s.dx+s.dy*s.dy{this.root.addEventListener(e,this._handler)}))}disconnect(){this.events.forEach((e=>{this.root.removeEventListener(e,this._handler)}))}getDragElem(){return this.dragElem}isDragging(){return this.dragging}stopDrag(e){if(this.dragging&&this.opts.dragstop&&e){e.type="dragstop";try{this.opts.dragstop(e)}catch(e){console.error("dragstop error",e)}}this.dragElem=null,this.dragging=!1,this.start.event=null,this.customData={}}handleEvent(e){const t=e.type,i=this.opts,s={type:e.type,startEvent:"mousedown"===t?e:this.start.event,event:e,customData:this.customData,dragElem:this.dragElem,dx:e.pageX-this.start.x,dy:e.pageY-this.start.y,apply:void 0};switch(t){case"keydown":this.stopDrag(s);break;case"mousedown":if(this.dragElem){this.stopDrag(s);break}if(i.selector){let t=e.target;if(t.matches(i.selector))this.dragElem=t;else{if(t=t.closest(i.selector),!t)break;this.dragElem=t}}this.start.event=e,this.start.x=e.pageX,this.start.y=e.pageY,this.start.altKey=e.altKey,this.start.ctrlKey=e.ctrlKey,this.start.metaKey=e.metaKey,this.start.shiftKey=e.shiftKey;break;case"mousemove":if(!this.dragElem)break;if(!this.dragging){if(i.thresh){if(s.dx*s.dx+s.dy*s.dy{const i=ge.getEventInfo(t.startEvent),s=i.colDef,n=s&&this.tree.element.contains(t.dragElem)&&$(s.resizable,e.options.resizableColumns,!1);if(this.tree.element.classList.toggle("wb-col-resizing",!!n),i.colElem.classList.toggle("wb-col-resizing",!!n),n){t.customData.colDef=s,t.customData.orgCustomWidthPx=s.customWidthPx;const e=Number.parseInt(i.colElem.style.width,10);t.customData.orgWidthPx=e,s.customWidthPx=e,this.tree.update(R.colStructure)}return n},drag:e=>this.handleDrag(e),dragstop:e=>this.handleDrag(e)})}init(){super.init()}handleDrag(e){const t=e.customData,i=t.colDef;if("dragstop"===e.type||"drag"===e.type){if(this.tree.element.classList.remove("wb-col-resizing"),e.apply||"drag"===e.type){const s=O(i.minWidth,4),n=Math.max(s,t.orgWidthPx+e.dx);i.customWidthPx=n}else this.tree.log("Column resize cancelled",e),i.customWidthPx=t.orgCustomWidthPx;this.tree.update(R.colStructure)}}} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */class de extends K{constructor(e){super(e,"grid",{}),this.observer=new ae({root:window.document,selector:"span.wb-col-resizer-active",thresh:4,dragstart:t=>{const i=ve.getEventInfo(t.startEvent),s=i.colDef,n=s&&this.tree.element.contains(t.dragElem)&&P(s.resizable,e.options.columnsResizable,!1);if(this.tree.element.classList.toggle("wb-col-resizing",!!n),i.colElem.classList.toggle("wb-col-resizing",!!n),n){t.customData.colDef=s,t.customData.orgCustomWidthPx=s.customWidthPx;const e=Number.parseInt(i.colElem.style.width,10);t.customData.orgWidthPx=e,s.customWidthPx=e,this.tree.update(R.colStructure)}return n},drag:e=>this.handleDrag(e),dragstop:e=>this.handleDrag(e)})}init(){super.init()}handleDrag(e){const t=e.customData,i=t.colDef;if("dragstop"===e.type||"drag"===e.type){if(this.tree.element.classList.remove("wb-col-resizing"),e.apply||"drag"===e.type){const s=$(i.minWidth,4),n=Math.max(s,t.orgWidthPx+e.dx);i.customWidthPx=n}else this.tree.log("Column resize cancelled",e),i.customWidthPx=t.orgCustomWidthPx;this.tree.update(R.colStructure)}}} /*! * Wunderbaum - deferred * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */class de{constructor(){this._promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this._resolve(e)}reject(e){this._reject(e)}promise(){return this._promise}then(e){return this._promise.then(e)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}} + * v0.11.0, Sun, 04 Aug 2024 15:35:53 GMT (https://github.com/mar10/wunderbaum) + */class ce{constructor(){this._promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this._resolve(e)}reject(e){this._reject(e)}promise(){return this._promise}then(e){return this._promise.then(e)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}} /*! * Wunderbaum - wunderbaum_node * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.10.1, Sat, 20 Jul 2024 13:53:46 GMT (https://github.com/mar10/wunderbaum) - */const ce=new Set(["checkbox","classes","expanded","icon","iconTooltip","key","lazy","_partsel","radiogroup","refKey","selected","statusNodeType","title","tooltip","type","unselectable"]),he=new Set(ce);he.delete("_partsel"),he.delete("unselectable");class ue{constructor(e,t,i){var s,n;this.refKey=void 0,this.children=null,this.classes=null,this.data={},this._isLoading=!1,this._requestId=0,this._errorInfo=null,this._partsel=!1,this._partload=!1,this.subMatchCount=0,this._rowIdx=0,this._rowElem=void 0,f(!t||t.tree===e,`Invalid parent: ${t}`),f(!i.children,"'children' not allowed here"),this.tree=e,this.parent=t,this.key=""+(null!==(s=i.key)&&void 0!==s?s:++ue.sequence),this.title=""+(null!==(n=i.title)&&void 0!==n?n:"<"+this.key+">"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))ce.has(e)||(this.data[e]=t);t&&!this.statusNodeType&&e._registerNode(this)}toString(){return`WunderbaumNode@${this.key}<'${this.title}'>`}*[Symbol.iterator](){const e=this.children;if(e)for(let t=0,i=e.length;t=0,`options.before must be a direct child of ${this}`),this.children.splice(e,0,...o)}else this.children=o;i.update(R.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}f(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=A(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:ie(e),i=[];return this.visit((e=>{t(e)&&i.push(e)})),i}findDirectChild(e){const t=this.children;if(!t)return null;if("string"==typeof e){for(let i=0,s=t.length;i{if(t(e))return i=e,!1})),i}findRelatedNode(e,t=!1){return this.tree.findRelatedNode(this,e,t)}*format_iter(e,t){function i(e){const t=e.parent.children;return e===t[t.length-1]}null!=t||(t=[" "," | "," ╰─ "," ├─ "]),null!=e||(e=e=>""+e);const s=s=>{const n=[e(s)];n.unshift(t[i(s)?2:3]);let r=s.parent;for(;r&&r!==this;)n.unshift(t[i(r)?0:1]),r=r.parent;return n.join("")};yield e(this);for(const e of this)yield s(e)}format(e,t){const i=[];for(const s of this.format_iter(e,t))i.push(s);return i.join("\n")}getColElem(e){var t;"string"==typeof e&&(e=this.tree.columns.findIndex((t=>t.id===e)));const i=null===(t=this._rowElem)||void 0===t?void 0:t.querySelectorAll("span.wb-col");return i?i[e]:null}getCloneList(e=!1){if(!this.refKey)return[];const t=this.tree.findByRefKey(this.refKey);return e?t:[...t].filter((e=>e!==this))}getFirstChild(){return this.children?this.children[0]:null}getLastChild(){return this.children?this.children[this.children.length-1]:null}getLevel(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}getNextSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t+1]||null}getParent(){return this.parent}getParentList(e=!1,t=!1){const i=[];let s=t?this:this.parent;for(;s;)(e||s.parent)&&i.unshift(s),s=s.parent;return i}getPath(e=!0,t="title",i="/"){let s;const n=[],r="function"==typeof t;return this.visitParents((e=>{e.parent&&(s=r?t(e):e[t],n.unshift(s))}),e),n.join(i)}getPrevSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t-1]||null}hasChildren(){if(this.lazy){if(null==this.children)return;if(0===this.children.length)return!1;if(1===this.children.length&&this.children[0].isStatusNode())return;return!0}return!(!this.children||!this.children.length)}hasClass(e){return!!this.classes&&this.classes.has(e)}hasFocus(){return this.tree.focusNode===this}isActive(){return this.tree.activeNode===this}isAncestorOf(e){return e&&e.isDescendantOf(this)}isChildOf(e){return e&&this.parent===e}isClone(){return!!this.refKey&&this.tree.findByRefKey(this.refKey).length>1}isColspan(){return!!this.getOption("colspan")}isDescendantOf(e){if(!e||e.tree!==this.tree)return!1;let t=this.parent;for(;t;){if(t===e)return!0;t===t.parent&&v(`Recursive parent link: ${t}`),t=t.parent}return!1}isExpandable(e=!1){return!(e&&this.expanded||!1===this.children)&&(null==this.children?!!this.lazy:0!==this.children.length||!!this.tree.options.emptyChildListExpandable)}isEditingTitle(){return this.tree._callMethod("edit.isEditingTitle",this)}isExpanded(){return!!this.expanded}isFirstSibling(){const e=this.parent;return!e||e.children[0]===this}isLastSibling(){const e=this.parent;return!e||e.children[e.children.length-1]===this}isLazy(){return!!this.lazy}isLoaded(){return!this.lazy||void 0!==this.hasChildren()}isLoading(){return this._isLoading}isPagingNode(){return"paging"===this.statusNodeType}isParentOf(e){return e&&e.parent===this}isPartload(){return!!this._partload}isPartsel(){return!this.selected&&!!this._partsel}isRadio(){return!!this.parent.radiogroup||"radio"===this.getOption("checkbox")}isRendered(){return!!this._rowElem}isRootNode(){return this.tree.root===this}isSelected(){return!!this.selected||!!this._partsel&&void 0}isStatusNode(){return!!this.statusNodeType}isTopLevel(){return this.tree.root===this.parent}isUnloaded(){return void 0===this.hasChildren()}isVisible(){const e="hide"===this.tree.filterMode,t=this.getParentList(!1,!1);if(e&&!this.match&&!this.subMatchCount)return!1;for(let e=0,i=t.length;ei)return void this.logWarn(`Ignored load response #${i} because #${this._requestId} is pending.`);if(this.logDebug(`Received response for load request #${i}`),null===this.parent&&null!==s)return void this.logWarn("Lazy parent node was removed while loading: discarding response.");this.setStatus(F.ok);const r=Date.now();this._loadSourceObject(t),l=Date.now()-r}else{if("function"==typeof e.then){const i=t.logTime(`Resolve thenable ${e}`);e=await Promise.resolve(e),t.logTimeEnd(i)}this._loadSourceObject(e),l=Date.now()-n}}catch(t){throw this.logError("Error during load()",e,t),this._callEvent("error",{error:t}),this.setStatus(F.error,{message:""+t}),t}finally{this._requestId=0,r=Date.now()-n,t.options.debugLevel>=3&&t.logInfo(`Load source took ${r/1e3} seconds (transfer: ${o/1e3}s, processing: ${l/1e3}s)`)}}async loadLazy(e=!1){const t=this.expanded;if(f(this.lazy,"load() requires a lazy node"),e||this.isUnloaded())if(this.isLoading())this.logWarn("loadLazy() called while already loading: ignored.");else{this.isLoaded()&&this.resetLazy(),this.setStatus(F.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(F.ok);f(S(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(F.ok),t?(this.expanded=!0,this.tree.update(R.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(F.error,{message:""+e})}}}log(...e){this.tree.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.tree.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.tree.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.tree.options.debugLevel>=3&&console.info(this.toString(),...e)}logWarn(...e){this.tree.options.debugLevel>=2&&console.warn(this.toString(),...e)}async makeVisible(e){let t;const i=new de,s=[],n=this.getParentList(!1,!1),r=n.length,o=M(e,"noAnimation",!1),l=M(e,"scrollIntoView",!0);for(t=r-1;t>=0;t--){const e={noAnimation:o};s.push(n[t].setExpanded(!0,e))}return Promise.all(s).then((()=>{l&&this.tree?(this.tree.updatePendingModifications(),this.scrollIntoView().then((()=>{i.resolve()}))):i.resolve()})),i.promise()}moveTo(e,t="appendChild",i){let s;"over"===t&&(t="appendChild"),"prependChild"===t&&(e.children&&e.children.length?(t="before",e=e.children[0]):t="appendChild");const n=this.tree,r=this.parent,o="appendChild"===t?e:e.parent;if(this!==e){if(this.parent?o.isDescendantOf(this)&&v("Cannot move a node to its own descendant"):v("Cannot move system root"),o!==r&&r.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===o)return;this.parent.children=this.parent.lazy?[]:null,this.parent.expanded=!1}else s=this.parent.children.indexOf(this),f(s>=0,"invalid source parent"),this.parent.children.splice(s,1);if(this.parent=o,o.hasChildren())switch(t){case"appendChild":o.children.push(this);break;case"before":s=o.children.indexOf(e),f(s>=0,"invalid target parent"),o.children.splice(s,0,this);break;case"after":s=o.children.indexOf(e),f(s>=0,"invalid target parent"),o.children.splice(s+1,0,this);break;default:v(`Invalid mode '${t}'.`)}else o.children=[this];i&&e.visit(i,!0),o===r?o.triggerModifyChild("move",this):o.triggerModifyChild("add",this),n!==e.tree&&(this.logWarn("Cross-tree moveTo is experimental!"),this.visit((t=>{t.tree=e.tree}),!0)),setTimeout((()=>{n.update(R.any)}),0)}}async navigate(e,t){e=te[e]||e;const i=this.findRelatedNode(e);if(!i)return this.logWarn(`Could not find related node '${e}'.`),Promise.resolve(this);try{i.makeVisible({scrollIntoView:!1})}catch(e){}return i.setFocus(),!1===(null==t?void 0:t.activate)?Promise.resolve(this):i.setActive(!0,{event:null==t?void 0:t.event})}remove(){const e=this.tree,t=this.parent.children.indexOf(this);this.triggerModify("remove"),this.parent.children.splice(t,1),this.visit((t=>{t.removeMarkup(),e._unregisterNode(t)}),!0),e.update(R.structure)}removeChildren(){var e,t;const i=this.tree;this.children&&((null===(e=i.activeNode)||void 0===e?void 0:e.isDescendantOf(this))&&i.activeNode.setActive(!1),(null===(t=i.focusNode)||void 0===t?void 0:t.isDescendantOf(this))&&i._setFocusNode(null),this.triggerModifyChild("remove",null),this.visit((e=>{i._unregisterNode(e)})),this.lazy?this.children=[]:this.children=null,this.isRootNode()||(this.expanded=!1),this.tree.update(R.structure))}removeMarkup(){this._rowElem&&(delete this._rowElem._wb_node,this._rowElem.remove(),this._rowElem=void 0)}_getRenderInfo(){const e={},t={},i=this.isColspan(),s=this._rowElem?this._rowElem.querySelectorAll("span.wb-col"):null;let n=0;for(const r of this.tree.columns)e[r.id]={id:r.id,idx:n,elem:s?s[n]:null,info:r},i||"*"===r.id||(t[r.id]=e[r.id]),n++;return{allColInfosById:e,renderColInfosById:t}}_createIcon(e,t,i,s){let n,r=this.getOption("icon");if(this._errorInfo?r=e.error:this._isLoading&&s&&(r=e.loading),!1===r)return null;"string"==typeof r||(r=this.statusNodeType?e[this.statusNodeType]:this.expanded?e.folderOpen:this.children?e.folder:this.lazy?e.folderLazy:e.doc),r?r.indexOf("<")>=0?n=x(r):X.test(r)?n=x(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";T(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=x(`${m(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;f(h,"Expected unrendered node"),f(!h||e&&e.after,"opts.after expected, unless updating"),f(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=this._rowIdx*J+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const g=document.createElement("span");g.classList.add("wb-title"),u.appendChild(g),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){f(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):X.test(e)?l.style.backgroundImage=`url('${e}')`:l.className="wb-expander "+e}if(a){let e="wb-checkbox ";this.isRadio()?(e+="wb-radio ",this.selected?e+=i.radioChecked:e+=i.radioUnchecked):this.selected?e+=i.checkChecked:this._partsel?e+=i.checkUnknown:e+=i.checkUnchecked,a.className=e}if(!e.isNew){let e=0;for(const i of r.children)i.classList.toggle("wb-active",e++===t.activeColIdx),i.classList.remove("wb-error","wb-invalid");const i=o.querySelector("i.wb-icon");i&&this._createIcon(t.iconMap,o,i,!l)}if(!1!==e.resizeCols&&!this.isColspan()){const e=r.querySelectorAll("span.wb-col");let t=0,i=0;for(const s of this.tree.columns){const n=e[t];n.style.left=`${i}px`,n.style.width=`${s._widthPx}px`,t++,i+=s._widthPx}}}_render(e){const t=Object.assign({change:R.data},e);switch(this._rowElem||(t.change=R.row),t.change){case"status":this._render_status(t);break;case"data":this._render_data(t);break;case"row":this._render_markup(t);break;default:v(`Invalid change type '${t.change}'.`)}}resetLazy(){this.removeChildren(),this.expanded=!1,this.lazy=!0,this.children=null,this.tree.update(R.structure)}toDict(e=!1,t){const i={};if(he.forEach((e=>{const t=this[e];t instanceof Set?t.size&&(i[e]=Array.prototype.join.call(t.keys()," ")):(t||!1===t||0===t)&&(i[e]=t)})),D(this.data)||(i.data=N({},this.data),D(i.data)&&delete i.data),t){const s=t(i,this);if(!1===s)return!1;"skip"===s&&(e=!1)}if(e&&S(this.children)){i.children=[];for(let e=0,s=this.children.length;e=0&&([s,e]=e.split("."));const n=s[e];if("function"==typeof n){const e=n.call(i,{type:"resolve",tree:i,node:this});if(void 0!==e)return e}if(void 0!==this[e])return this[e];const r=this.type?i.types[this.type]:void 0,o=r?r[e]:void 0;return void 0!==o?o:null!=n?n:t}async scrollIntoView(e){const t=Object.assign({node:this},e);return this.tree.scrollTo(t)}async setActive(e=!0,t){const i=this.tree,s=i.getActiveNode(),n=null==t?void 0:t.retrigger,r=null==t?void 0:t.focusTree,o=null==t?void 0:t.noEvents,l=null==t?void 0:t.event,a=null==t?void 0:t.colIdx,d=null==t?void 0:t.edit;if(f(!a||i.isCellNav(),"colIdx requires cellNav"),f(!d||null!=a,"edit requires colIdx"),!o)if(e){if(s!==this||n){if(!1===(null==s?void 0:s._callEvent("deactivate",{nextNode:this,event:l}))||!1===this._callEvent("beforeActivate",{prevNode:s,event:l}))return;i._setActiveNode(null),null==s||s.update(R.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(R.status),this.update(R.status)),this.makeVisible().then((()=>{e&&((r||d)&&(i.setFocus(),i._setFocusNode(this),i.focusNode.setFocus()),null!=a&&i.isCellNav()&&i.setColumn(a,{edit:d}),o||this._callEvent("activate",{prevNode:s,event:l}))}))}async setExpanded(e=!0,t){const{force:i,scrollIntoView:s,immediate:n}=null!=t?t:{},r=!(null==t?void 0:t.noEvents);if(!e&&this.isExpanded()&&this.getLevel()<=this.tree.getOption("minExpandLevel")&&!i)return void this.logDebug("Ignored collapse request below minExpandLevel.");if(!e==!this.expanded)return;if(r&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children&&await this.loadLazy(),this.expanded=e;const o={immediate:n};if(this.tree.update(R.structure,o),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}r&&this._callEvent("expand",{flag:e})}setFocus(e=!0){f(!!e,"Blur is not yet implemented");const t=this.tree.focusNode;this.tree._setFocusNode(this),null==t||t.update(),this.update()}setIcon(e){this.icon=e,this.update()}setKey(e,t){throw new Error("Not yet implemented")}update(e=R.data){f(e===R.status||e===R.data,`Invalid change type ${e}`),this.tree.update(e,this)}getSelectedNodes(e=!1){const t=[];return this.visit((i=>{if(i.selected&&(t.push(i),!0===e))return"skip"})),t}toggleSelected(e){let t=this.isSelected();return t=void 0!==t||this.isRadio()?!t:this._anySelectable(),this.setSelected(t,e)}_anySelectable(){let e=!1;return this.visit((t=>{if(!1===t.selected&&!t.unselectable&&!t.hasChildren()&&!t.parent.radiogroup)return e=!0,!1})),e}_changeSelectStatusProps(e){let t=!1;switch(e){case!1:t=this.selected||this._partsel,this.selected=!1,this._partsel=!1;break;case!0:t=!this.selected||!this._partsel,this.selected=!0,this._partsel=!0;break;case void 0:t=this.selected||!this._partsel,this.selected=!1,this._partsel=!0;break;default:v(`Invalid state: ${e}`)}return t&&this.update(),t}fixSelection3AfterClick(e){const t=!!(null==e?void 0:e.force),i=this.isSelected();this.visit((e=>{if(e.radiogroup)return"skip";!t&&e.getOption("unselectable")||e._changeSelectStatusProps(i)})),this.fixSelection3FromEndNodes()}fixSelection3FromEndNodes(e){const t=!!(null==e?void 0:e.force);f("hier"===this.tree.options.selectMode,"expected selectMode 'hier'");const i=e=>{let s;const n=e.children;if(n&&n.length){let e=!0,t=!1;for(let s=0,r=n.length;s{let t;const i=e.children;let s=!0,n=!1;for(let e=0,r=i.length;e{this.visit((t=>{t.setSelected(e)}))})),n):(e===n||s&&!1===this._callEvent("beforeSelect",{flag:e})||(i.runWithDeferredUpdate((()=>{if(r){if(!e&&!(null==t?void 0:t.force))return n;for(const e of this.parent.children)e.selected=e===this}else this.selected=e,"hier"===o?this.fixSelection3AfterClick():"single"===o&&i.visit((e=>{e.selected=!1}))})),s&&this._callEvent("select",{flag:e})),n):n}setStatus(e,t){const i=this.tree,s=null==t?void 0:t.message,n=null==t?void 0:t.details;let r=null;const o=e=>{const t=this.children,s=t?t[0]:null;return f(e.statusNodeType,"Not a status node"),f(!s||!s.isStatusNode(),"Child must not be a status node"),r=this.addNode(e,"prependChild"),r.match=!0,i.update(R.structure),r};switch((()=>{const e=this.children;e&&e.length&&e[0].isStatusNode()&&e[0].remove()})(),e){case"ok":this._isLoading=!1,this._errorInfo=null;break;case"loading":this._isLoading=!0,this._errorInfo=null,this.parent?this.update(R.status):o({statusNodeType:e,title:i.options.strings.loading+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n});break;case"error":o({statusNodeType:e,title:i.options.strings.loadError+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo={message:s,details:n};break;case"noData":o({statusNodeType:e,title:s||i.options.strings.noData,checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo=null;break;default:v("invalid node status "+e)}return i.update(R.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))he.has(e)||(this.data[e]=t);t&&!this.statusNodeType&&e._registerNode(this)}toString(){return`WunderbaumNode@${this.key}<'${this.title}'>`}*[Symbol.iterator](){const e=this.children;if(e)for(let t=0,i=e.length;t=0,`options.before must be a direct child of ${this}`),this.children.splice(e,0,...o)}else this.children=o;i.update(R.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}f(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=A(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:se(e),i=[];return this.visit((e=>{t(e)&&i.push(e)})),i}findDirectChild(e){const t=this.children;if(!t)return null;if("string"==typeof e){for(let i=0,s=t.length;i{if(t(e))return i=e,!1})),i}findRelatedNode(e,t=!1){return this.tree.findRelatedNode(this,e,t)}*format_iter(e,t){function i(e){const t=e.parent.children;return e===t[t.length-1]}null!=t||(t=[" "," | "," ╰─ "," ├─ "]),null!=e||(e=e=>""+e);const s=s=>{const n=[e(s)];n.unshift(t[i(s)?2:3]);let r=s.parent;for(;r&&r!==this;)n.unshift(t[i(r)?0:1]),r=r.parent;return n.join("")};yield e(this);for(const e of this)yield s(e)}format(e,t){const i=[];for(const s of this.format_iter(e,t))i.push(s);return i.join("\n")}getColElem(e){var t;"string"==typeof e&&(e=this.tree.columns.findIndex((t=>t.id===e)));const i=null===(t=this._rowElem)||void 0===t?void 0:t.querySelectorAll("span.wb-col");return i?i[e]:null}getCloneList(e=!1){if(!this.refKey)return[];const t=this.tree.findByRefKey(this.refKey);return e?t:[...t].filter((e=>e!==this))}getFirstChild(){return this.children?this.children[0]:null}getLastChild(){return this.children?this.children[this.children.length-1]:null}getLevel(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}getNextSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t+1]||null}getParent(){return this.parent}getParentList(e=!1,t=!1){const i=[];let s=t?this:this.parent;for(;s;)(e||s.parent)&&i.unshift(s),s=s.parent;return i}getPath(e=!0,t="title",i="/"){let s;const n=[],r="function"==typeof t;return this.visitParents((e=>{e.parent&&(s=r?t(e):e[t],n.unshift(s))}),e),n.join(i)}getPrevSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t-1]||null}hasChildren(){if(this.lazy){if(null==this.children)return;if(0===this.children.length)return!1;if(1===this.children.length&&this.children[0].isStatusNode())return;return!0}return!(!this.children||!this.children.length)}hasClass(e){return!!this.classes&&this.classes.has(e)}hasFocus(){return this.tree.focusNode===this}isActive(){return this.tree.activeNode===this}isAncestorOf(e){return e&&e.isDescendantOf(this)}isChildOf(e){return e&&this.parent===e}isClone(){return!!this.refKey&&this.tree.findByRefKey(this.refKey).length>1}isColspan(){return!!this.getOption("colspan")}isDescendantOf(e){if(!e||e.tree!==this.tree)return!1;let t=this.parent;for(;t;){if(t===e)return!0;t===t.parent&&v(`Recursive parent link: ${t}`),t=t.parent}return!1}isExpandable(e=!1){return!(e&&this.expanded||!1===this.children)&&(null==this.children?!!this.lazy:0!==this.children.length||!!this.tree.options.emptyChildListExpandable)}isEditingTitle(){return this.tree._callMethod("edit.isEditingTitle",this)}isExpanded(){return!!this.expanded}isFirstSibling(){const e=this.parent;return!e||e.children[0]===this}isLastSibling(){const e=this.parent;return!e||e.children[e.children.length-1]===this}isLazy(){return!!this.lazy}isLoaded(){return!this.lazy||void 0!==this.hasChildren()}isLoading(){return this._isLoading}isPagingNode(){return"paging"===this.statusNodeType}isParentOf(e){return e&&e.parent===this}isPartload(){return!!this._partload}isPartsel(){return!this.selected&&!!this._partsel}isRadio(){return!!this.parent.radiogroup||"radio"===this.getOption("checkbox")}isRendered(){return!!this._rowElem}isRootNode(){return this.tree.root===this}isSelected(){return!!this.selected||!!this._partsel&&void 0}isStatusNode(){return!!this.statusNodeType}isTopLevel(){return this.tree.root===this.parent}isUnloaded(){return void 0===this.hasChildren()}isVisible(){const e="hide"===this.tree.filterMode,t=this.getParentList(!1,!1);if(e&&!this.match&&!this.subMatchCount)return!1;for(let e=0,i=t.length;ei)return void this.logWarn(`Ignored load response #${i} because #${this._requestId} is pending.`);if(this.logDebug(`Received response for load request #${i}`),null===this.parent&&null!==s)return void this.logWarn("Lazy parent node was removed while loading: discarding response.");this.setStatus(U.ok);const r=Date.now();this._loadSourceObject(t),l=Date.now()-r}else{if("function"==typeof e.then){const i=t.logTime(`Resolve thenable ${e}`);e=await Promise.resolve(e),t.logTimeEnd(i)}this._loadSourceObject(e),l=Date.now()-n}}catch(t){throw this.logError("Error during load()",e,t),this._callEvent("error",{error:t}),this.setStatus(U.error,{message:""+t}),t}finally{this._requestId=0,r=Date.now()-n,t.options.debugLevel>=3&&t.logInfo(`Load source took ${r/1e3} seconds (transfer: ${o/1e3}s, processing: ${l/1e3}s)`)}}async loadLazy(e=!1){const t=this.expanded;if(f(this.lazy,"load() requires a lazy node"),e||this.isUnloaded())if(this.isLoading())this.logWarn("loadLazy() called while already loading: ignored.");else{this.isLoaded()&&this.resetLazy(),this.setStatus(U.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(U.ok);f(S(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(U.ok),t?(this.expanded=!0,this.tree.update(R.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(U.error,{message:""+e})}}}log(...e){this.tree.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.tree.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.tree.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.tree.options.debugLevel>=3&&console.info(this.toString(),...e)}logWarn(...e){this.tree.options.debugLevel>=2&&console.warn(this.toString(),...e)}async makeVisible(e){let t;const i=new ce,s=[],n=this.getParentList(!1,!1),r=n.length,o=M(e,"noAnimation",!1),l=M(e,"scrollIntoView",!0);for(t=r-1;t>=0;t--){const e={noAnimation:o};s.push(n[t].setExpanded(!0,e))}return Promise.all(s).then((()=>{l&&this.tree?(this.tree.updatePendingModifications(),this.scrollIntoView().then((()=>{i.resolve()}))):i.resolve()})),i.promise()}moveTo(e,t="appendChild",i){let s;"over"===t&&(t="appendChild"),"prependChild"===t&&(e.children&&e.children.length?(t="before",e=e.children[0]):t="appendChild");const n=this.tree,r=this.parent,o="appendChild"===t?e:e.parent;if(this!==e){if(this.parent?o.isDescendantOf(this)&&v("Cannot move a node to its own descendant"):v("Cannot move system root"),o!==r&&r.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===o)return;this.parent.children=this.parent.lazy?[]:null,this.parent.expanded=!1}else s=this.parent.children.indexOf(this),f(s>=0,"invalid source parent"),this.parent.children.splice(s,1);if(this.parent=o,o.hasChildren())switch(t){case"appendChild":o.children.push(this);break;case"before":s=o.children.indexOf(e),f(s>=0,"invalid target parent"),o.children.splice(s,0,this);break;case"after":s=o.children.indexOf(e),f(s>=0,"invalid target parent"),o.children.splice(s+1,0,this);break;default:v(`Invalid mode '${t}'.`)}else o.children=[this];i&&e.visit(i,!0),o===r?o.triggerModifyChild("move",this):o.triggerModifyChild("add",this),n!==e.tree&&(this.logWarn("Cross-tree moveTo is experimental!"),this.visit((t=>{t.tree=e.tree}),!0)),setTimeout((()=>{n.update(R.any)}),0)}}async navigate(e,t){e=ie[e]||e;const i=this.findRelatedNode(e);if(!i)return this.logWarn(`Could not find related node '${e}'.`),Promise.resolve(this);try{i.makeVisible({scrollIntoView:!1})}catch(e){}return i.setFocus(),!1===(null==t?void 0:t.activate)?Promise.resolve(this):i.setActive(!0,{event:null==t?void 0:t.event})}remove(){const e=this.tree,t=this.parent.children.indexOf(this);this.triggerModify("remove"),this.parent.children.splice(t,1),this.visit((t=>{t.removeMarkup(),e._unregisterNode(t)}),!0),e.update(R.structure)}removeChildren(){var e,t;const i=this.tree;this.children&&((null===(e=i.activeNode)||void 0===e?void 0:e.isDescendantOf(this))&&i.activeNode.setActive(!1),(null===(t=i.focusNode)||void 0===t?void 0:t.isDescendantOf(this))&&i._setFocusNode(null),this.triggerModifyChild("remove",null),this.visit((e=>{i._unregisterNode(e)})),this.lazy?this.children=[]:this.children=null,this.isRootNode()||(this.expanded=!1),this.tree.update(R.structure))}removeMarkup(){this._rowElem&&(delete this._rowElem._wb_node,this._rowElem.remove(),this._rowElem=void 0)}_getRenderInfo(){const e={},t={},i=this.isColspan(),s=this._rowElem?this._rowElem.querySelectorAll("span.wb-col"):null;let n=0;for(const r of this.tree.columns)e[r.id]={id:r.id,idx:n,elem:s?s[n]:null,info:r},i||"*"===r.id||(t[r.id]=e[r.id]),n++;return{allColInfosById:e,renderColInfosById:t}}_createIcon(e,t,i,s){let n,r=this.getOption("icon");if(this._errorInfo?r=e.error:this._isLoading&&s&&(r=e.loading),!1===r)return null;"string"==typeof r||(r=this.statusNodeType?e[this.statusNodeType]:this.expanded?e.folderOpen:this.children?e.folder:this.lazy?e.folderLazy:e.doc),r?r.indexOf("<")>=0?n=x(r):Z.test(r)?n=x(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";I(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=x(`${m(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;f(h,"Expected unrendered node"),f(!h||e&&e.after,"opts.after expected, unless updating"),f(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=this._rowIdx*X+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const g=document.createElement("span");g.classList.add("wb-title"),u.appendChild(g),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){f(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):Z.test(e)?l.style.backgroundImage=`url('${e}')`:l.className="wb-expander "+e}if(a){let e="wb-checkbox ";this.isRadio()?(e+="wb-radio ",this.selected?e+=i.radioChecked:e+=i.radioUnchecked):this.selected?e+=i.checkChecked:this._partsel?e+=i.checkUnknown:e+=i.checkUnchecked,a.className=e}if(!e.isNew){let e=0;for(const i of r.children)i.classList.toggle("wb-active",e++===t.activeColIdx),i.classList.remove("wb-error","wb-invalid");const i=o.querySelector("i.wb-icon");i&&this._createIcon(t.iconMap,o,i,!l)}if(!1!==e.resizeCols&&!this.isColspan()){const e=r.querySelectorAll("span.wb-col");let t=0,i=0;for(const s of this.tree.columns){const n=e[t];n.style.left=`${i}px`,n.style.width=`${s._widthPx}px`,t++,i+=s._widthPx}}}_render(e){const t=Object.assign({change:R.data},e);switch(this._rowElem||(t.change=R.row),t.change){case"status":this._render_status(t);break;case"data":this._render_data(t);break;case"row":this._render_markup(t);break;default:v(`Invalid change type '${t.change}'.`)}}resetLazy(){this.removeChildren(),this.expanded=!1,this.lazy=!0,this.children=null,this.tree.update(R.structure)}toDict(e=!1,t){const i={};if(ue.forEach((e=>{const t=this[e];t instanceof Set?t.size&&(i[e]=Array.prototype.join.call(t.keys()," ")):(t||!1===t||0===t)&&(i[e]=t)})),D(this.data)||(i.data=N({},this.data),D(i.data)&&delete i.data),t){const s=t(i,this);if(!1===s)return!1;"skip"===s&&(e=!1)}if(e&&S(this.children)){i.children=[];for(let e=0,s=this.children.length;e=0&&([s,e]=e.split("."));const n=s[e];if("function"==typeof n){const e=n.call(i,{type:"resolve",tree:i,node:this});if(void 0!==e)return e}if(void 0!==this[e])return this[e];const r=this.type?i.types[this.type]:void 0,o=r?r[e]:void 0;return void 0!==o?o:null!=n?n:t}async scrollIntoView(e){const t=Object.assign({node:this},e);return this.tree.scrollTo(t)}async setActive(e=!0,t){const i=this.tree,s=i.getActiveNode(),n=null==t?void 0:t.retrigger,r=null==t?void 0:t.focusTree,o=null==t?void 0:t.noEvents,l=null==t?void 0:t.event,a=null==t?void 0:t.colIdx,d=null==t?void 0:t.edit;if(f(!a||i.isCellNav(),"colIdx requires cellNav"),f(!d||null!=a,"edit requires colIdx"),!o)if(e){if(s!==this||n){if(!1===(null==s?void 0:s._callEvent("deactivate",{nextNode:this,event:l}))||!1===this._callEvent("beforeActivate",{prevNode:s,event:l}))return;i._setActiveNode(null),null==s||s.update(R.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(R.status),this.update(R.status)),this.makeVisible().then((()=>{e&&((r||d)&&(i.setFocus(),i._setFocusNode(this),i.focusNode.setFocus()),null!=a&&i.isCellNav()&&i.setColumn(a,{edit:d}),o||this._callEvent("activate",{prevNode:s,event:l}))}))}async setExpanded(e=!0,t){const{force:i,scrollIntoView:s,immediate:n}=null!=t?t:{},r=!(null==t?void 0:t.noEvents);if(!e&&this.isExpanded()&&this.getLevel()<=this.tree.getOption("minExpandLevel")&&!i)return void this.logDebug("Ignored collapse request below minExpandLevel.");if(!e==!this.expanded)return;if(r&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children&&await this.loadLazy(),this.expanded=e;const o={immediate:n};if(this.tree.update(R.structure,o),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}r&&this._callEvent("expand",{flag:e})}setFocus(e=!0){f(!!e,"Blur is not yet implemented");const t=this.tree.focusNode;this.tree._setFocusNode(this),null==t||t.update(),this.update()}setIcon(e){this.icon=e,this.update()}setKey(e,t){throw new Error("Not yet implemented")}update(e=R.data){f(e===R.status||e===R.data,`Invalid change type ${e}`),this.tree.update(e,this)}getSelectedNodes(e=!1){const t=[];return this.visit((i=>{if(i.selected&&(t.push(i),!0===e))return"skip"})),t}toggleSelected(e){let t=this.isSelected();return t=void 0!==t||this.isRadio()?!t:this._anySelectable(),this.setSelected(t,e)}_anySelectable(){let e=!1;return this.visit((t=>{if(!1===t.selected&&!t.unselectable&&!t.hasChildren()&&!t.parent.radiogroup)return e=!0,!1})),e}_changeSelectStatusProps(e){let t=!1;switch(e){case!1:t=this.selected||this._partsel,this.selected=!1,this._partsel=!1;break;case!0:t=!this.selected||!this._partsel,this.selected=!0,this._partsel=!0;break;case void 0:t=this.selected||!this._partsel,this.selected=!1,this._partsel=!0;break;default:v(`Invalid state: ${e}`)}return t&&this.update(),t}fixSelection3AfterClick(e){const t=!!(null==e?void 0:e.force),i=this.isSelected();this.visit((e=>{if(e.radiogroup)return"skip";!t&&e.getOption("unselectable")||e._changeSelectStatusProps(i)})),this.fixSelection3FromEndNodes()}fixSelection3FromEndNodes(e){const t=!!(null==e?void 0:e.force);f("hier"===this.tree.options.selectMode,"expected selectMode 'hier'");const i=e=>{let s;const n=e.children;if(n&&n.length){let e=!0,t=!1;for(let s=0,r=n.length;s{let t;const i=e.children;let s=!0,n=!1;for(let e=0,r=i.length;e{this.visit((t=>{t.setSelected(e)}))})),n):(e===n||s&&!1===this._callEvent("beforeSelect",{flag:e})||(i.runWithDeferredUpdate((()=>{if(r){if(!e&&!(null==t?void 0:t.force))return n;for(const e of this.parent.children)e.selected=e===this}else this.selected=e,"hier"===o?this.fixSelection3AfterClick():"single"===o&&i.visit((e=>{e.selected=!1}))})),s&&this._callEvent("select",{flag:e})),n):n}setStatus(e,t){const i=this.tree,s=null==t?void 0:t.message,n=null==t?void 0:t.details;let r=null;const o=e=>{const t=this.children,s=t?t[0]:null;return f(e.statusNodeType,"Not a status node"),f(!s||!s.isStatusNode(),"Child must not be a status node"),r=this.addNode(e,"prependChild"),r.match=!0,i.update(R.structure),r};switch((()=>{const e=this.children;e&&e.length&&e[0].isStatusNode()&&e[0].remove()})(),e){case"ok":this._isLoading=!1,this._errorInfo=null;break;case"loading":this._isLoading=!0,this._errorInfo=null,this.parent?this.update(R.status):o({statusNodeType:e,title:i.options.strings.loading+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n});break;case"error":o({statusNodeType:e,title:i.options.strings.loadError+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo={message:s,details:n};break;case"noData":o({statusNodeType:e,title:s||i.options.strings.noData,checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo=null;break;default:v("invalid node status "+e)}return i.update(R.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s{s.data[i]=n,t&&s.children&&s.resetNativeChildOrder(e)}))}sortByProperty(e){var t,i,s;const{caseInsensitive:n=!0,deep:r=!0,nativeOrderPropName:o="_nativeIndex",updateColInfo:l=!1}=e;let a,d;if(l){d=this.tree._columnsById[e.colId],f(d,`Invalid colId specified: ${e.colId}`),a=null!==(t=e.order)&&void 0!==t?t:O(d.sortOrder,["asc","desc",void 0]);for(const e of this.tree.columns)e.sortOrder=e===d?a:void 0;this.tree.update(R.colStructure)}else a=null!==(i=e.order)&&void 0!==i?i:"asc";let c=null!==(s=e.propName)&&void 0!==s?s:e.colId||"";"*"===c&&(c="title"),null==a&&(c=o,a="asc"),this.logDebug(`sortByProperty(), propName=${c}, ${a}`,e),f(c,"No property name specified");return this.sortChildren(((e,t)=>{let i,s;return ue.has(c)?(i=e[c],s=t[c]):(i=e.data[c],s=t.data[c]),n&&("string"==typeof i&&(i=i.toLowerCase()),"string"==typeof s&&(s=s.toLowerCase())),"desc"===a?i===s?0:i>s?-1:1:i===s?0:i>s?1:-1}),r)}triggerModifyChild(e,t,i){this.logDebug(`modifyChild(${e})`,i,t),this.tree.options.modifyChild&&(t&&t.parent!==this&&v("child "+t+" is not a child of "+this),this._callEvent("modifyChild",N({operation:e,child:t},i)))}triggerModify(e,t){this.parent.triggerModifyChild(e,this,t)}visit(e,t=!1){let i=!0;const s=this.children;if(!0===t&&(i=e(this),!1===i||"skip"===i))return i;if(s)for(let t=0,n=s.length;t{const r=t._callEvent(e,n);Promise.resolve(r).then((e=>{i(e)})).catch((e=>{s(e)}))})).then((e=>{if(!s.checkValidity())throw t.logWarn("inputElem.checkValidity() failed: throwing...."),new p(s.validationMessage);return e})).catch((n=>{if(!(n instanceof p))throw t.logError(`Error in ${e} event handler (throw e.util.ValidationError instead if this was intended)`,n),i.classList.add("wb-error"),n;t.logWarn("catched ",n),i.classList.add("wb-invalid"),s.setCustomValidity&&!s.validationMessage&&s.setCustomValidity(n.message),s.validationMessage&&s.reportValidity()})).finally((()=>{i.classList.remove("wb-busy")}))}_onChange(e){const t=ge.getEventInfo(e),i=t.node,s=t.colElem;i&&0!==t.colIdx?this._applyChange("change",i,s,e.target,{info:t,event:e,inputElem:e.target,inputValue:ge.util.getValueFromElem(e.target),inputValid:e.target.checkValidity()}):this.tree.log("Ignored change event for removed element or node title")}init(){super.init(),I(this.tree.element,"change",".contenteditable,input,textarea,select",(e=>this._onChange(e)))}_preprocessKeyEvent(e){const t=e.event,i=C(t),s=this.tree,n=this.getPluginOption("trigger");if(this.isEditingTitle()){switch(i){case"Enter":return this._stopEditTitle(!0,{event:t}),!1;case"Escape":return this._stopEditTitle(!1,{event:t}),!1}return!1}if(s.isRowNav()||0===s.activeColIdx){switch(i){case"Enter":if(n.indexOf("macEnter")>=0&&d)return this.startEditTitle(),!1;break;case"F2":if(n.indexOf("F2")>=0)return this.startEditTitle(),!1}return!0}return!0}isEditingTitle(e){return e?this.curEditNode===e:!!this.curEditNode}startEditTitle(e){e=null!=e?e:this.tree.getActiveNode();const t=this.getPluginOption("validity"),i=this.getPluginOption("select");if(!e)return;this.tree.logDebug(`startEditTitle(node=${e})`);let s=e._callEvent("edit.beforeEdit");if(!1===s)return void e.logDebug("beforeEdit canceled operation.");if(!0===s||!s){const t=m(e.title);let i=this.getPluginOption("maxlength");const n=i?` maxlength="${i}"`:"";i=this.getPluginOption("minlength");s=`0?" required":""}${i?` minlength="${i}"`:""}${n} >`}const n=e.getColElem(0).querySelector(".wb-title");n.innerHTML=s;const r=n.firstElementChild;t&&r.addEventListener("keydown",(t=>{r.setCustomValidity(""),r.reportValidity()||e.logWarn(`Invalid input: '${r.value}'`)})),r.focus(),i&&r.select(),this.curEditNode=e,e._callEvent("edit.edit",{inputElem:r})}stopEditTitle(e){return this._stopEditTitle(e,{})}_stopEditTitle(e,t){var i;null!=t||(t={});const s=document.activeElement;let n=s?w(s):null;const r=this.curEditNode,o=!!t.forceClose,l=this.getPluginOption("validity");if(n&&this.getPluginOption("trim")&&(n=n.trim()),r)if(r.logDebug(`stopEditTitle(${e})`,t,s,n),e&&null!==n&&n!==r.title){const e=s.validationMessage;if(e)throw new Error(`Input validation failed for "${n}": ${e}.`);const t=r.getColElem(0);this._applyChange("edit.apply",r,t,s,{oldValue:r.title,newValue:n,inputElem:s,inputValid:s.checkValidity()}).then((e=>{var t;const i=s.validationMessage;if(l&&i&&!1!==e)throw new Error(`Edit apply validation failed for "${n}": ${i}.`);(o||!1!==e)&&(null==r||r.setTitle(n),null===(t=this.curEditNode)||void 0===t||t._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus())}))}else null===(i=this.curEditNode)||void 0===i||i._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus();else this.tree.logDebug("stopEditTitle: not in edit mode.")}createNode(e="after",t,i){const s=this.tree;if(f(t=null!=t?t:s.getActiveNode(),"No node was passed, or no node is currently active."),e=e||"prependChild",null==i?i={title:""}:"string"==typeof i?i={title:i}:f(T(i),`Expected a plain object: ${i}`),("prependChild"===e||"appendChild"===e)&&(null==t?void 0:t.isExpandable(!0)))return void t.setExpanded().then((()=>{this.createNode(e,t,i)}));const n=t.addNode(i,e);n.setClass("wb-edit-new"),this.relatedNode=t,n.match=!0,n.makeVisible({noAnimation:!0}).then((()=>{this.startEditTitle(n)}))}} +class fe extends K{constructor(e){super(e,"edit",{debounce:100,minlength:1,maxlength:null,trigger:[],trim:!0,select:!0,slowClickDelay:1e3,validity:!0,beforeEdit:null,edit:null,apply:null}),this.curEditNode=null,this.relatedNode=null,this.debouncedOnChange=o(this._onChange.bind(this),this.getPluginOption("debounce"))}async _applyChange(e,t,i,s,n){return t.log(`_applyChange(${e})`,n),i.classList.add("wb-busy"),i.classList.remove("wb-error","wb-invalid"),s.setCustomValidity(""),new Promise(((i,s)=>{const r=t._callEvent(e,n);Promise.resolve(r).then((e=>{i(e)})).catch((e=>{s(e)}))})).then((e=>{if(!s.checkValidity())throw t.logWarn("inputElem.checkValidity() failed: throwing...."),new p(s.validationMessage);return e})).catch((n=>{if(!(n instanceof p))throw t.logError(`Error in ${e} event handler (throw e.util.ValidationError instead if this was intended)`,n),i.classList.add("wb-error"),n;t.logWarn("catched ",n),i.classList.add("wb-invalid"),s.setCustomValidity&&!s.validationMessage&&s.setCustomValidity(n.message),s.validationMessage&&s.reportValidity()})).finally((()=>{i.classList.remove("wb-busy")}))}_onChange(e){const t=ve.getEventInfo(e),i=t.node,s=t.colElem;i&&0!==t.colIdx?this._applyChange("change",i,s,e.target,{info:t,event:e,inputElem:e.target,inputValue:ve.util.getValueFromElem(e.target),inputValid:e.target.checkValidity()}):this.tree.log("Ignored change event for removed element or node title")}init(){super.init(),T(this.tree.element,"change",".contenteditable,input,textarea,select",(e=>this._onChange(e)))}_preprocessKeyEvent(e){const t=e.event,i=C(t),s=this.tree,n=this.getPluginOption("trigger");if(this.isEditingTitle()){switch(i){case"Enter":return this._stopEditTitle(!0,{event:t}),!1;case"Escape":return this._stopEditTitle(!1,{event:t}),!1}return!1}if(s.isRowNav()||0===s.activeColIdx){switch(i){case"Enter":if(n.indexOf("macEnter")>=0&&d)return this.startEditTitle(),!1;break;case"F2":if(n.indexOf("F2")>=0)return this.startEditTitle(),!1}return!0}return!0}isEditingTitle(e){return e?this.curEditNode===e:!!this.curEditNode}startEditTitle(e){e=null!=e?e:this.tree.getActiveNode();const t=this.getPluginOption("validity"),i=this.getPluginOption("select");if(!e)return;this.tree.logDebug(`startEditTitle(node=${e})`);let s=e._callEvent("edit.beforeEdit");if(!1===s)return void e.logDebug("beforeEdit canceled operation.");if(!0===s||!s){const t=m(e.title);let i=this.getPluginOption("maxlength");const n=i?` maxlength="${i}"`:"";i=this.getPluginOption("minlength");s=`0?" required":""}${i?` minlength="${i}"`:""}${n} >`}const n=e.getColElem(0).querySelector(".wb-title");n.innerHTML=s;const r=n.firstElementChild;t&&r.addEventListener("keydown",(t=>{r.setCustomValidity(""),r.reportValidity()||e.logWarn(`Invalid input: '${r.value}'`)})),r.focus(),i&&r.select(),this.curEditNode=e,e._callEvent("edit.edit",{inputElem:r})}stopEditTitle(e){return this._stopEditTitle(e,{})}_stopEditTitle(e,t){var i;null!=t||(t={});const s=document.activeElement;let n=s?w(s):null;const r=this.curEditNode,o=!!t.forceClose,l=this.getPluginOption("validity");if(n&&this.getPluginOption("trim")&&(n=n.trim()),r)if(r.logDebug(`stopEditTitle(${e})`,t,s,n),e&&null!==n&&n!==r.title){const e=s.validationMessage;if(e)throw new Error(`Input validation failed for "${n}": ${e}.`);const t=r.getColElem(0);this._applyChange("edit.apply",r,t,s,{oldValue:r.title,newValue:n,inputElem:s,inputValid:s.checkValidity()}).then((e=>{var t;const i=s.validationMessage;if(l&&i&&!1!==e)throw new Error(`Edit apply validation failed for "${n}": ${i}.`);(o||!1!==e)&&(null==r||r.setTitle(n),null===(t=this.curEditNode)||void 0===t||t._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus())}))}else null===(i=this.curEditNode)||void 0===i||i._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus();else this.tree.logDebug("stopEditTitle: not in edit mode.")}createNode(e="after",t,i){const s=this.tree;if(f(t=null!=t?t:s.getActiveNode(),"No node was passed, or no node is currently active."),e=e||"prependChild",null==i?i={title:""}:"string"==typeof i?i={title:i}:f(I(i),`Expected a plain object: ${i}`),("prependChild"===e||"appendChild"===e)&&(null==t?void 0:t.isExpandable(!0)))return void t.setExpanded().then((()=>{this.createNode(e,t,i)}));const n=t.addNode(i,e);n.setClass("wb-edit-new"),this.relatedNode=t,n.match=!0,n.makeVisible({noAnimation:!0}).then((()=>{this.startEditTitle(n)}))}} /*! * wunderbaum.ts * @@ -80,7 +80,7 @@ class pe extends j{constructor(e){super(e,"edit",{debounce:100,minlength:1,maxle * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.10.1 - * @date Sat, 20 Jul 2024 13:53:46 GMT - */class fe extends ue{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class ge{get activeNode(){var e;return(null===(e=this._activeNode)||void 0===e?void 0:e.tree)?this._activeNode:null}get focusNode(){var e;return(null===(e=this._focusNode)||void 0===e?void 0:e.tree)?this._focusNode:null}constructor(e){this.enabled=!0,this.data={},this.extensionList=[],this.extensions={},this.keyMap=new Map,this.refKeyMap=new Map,this.treeRowCount=0,this._disableUpdateCount=0,this._disableUpdateIgnoreCount=0,this._activeNode=null,this._focusNode=null,this.types={},this.columns=[],this._columnsById={},this.pendingChangeTypes=new Set,this._util=q,this.filterMode=null,this.activeColIdx=0,this._cellNavMode=!1,this.lastQuicksearchTime=0,this.lastQuicksearchTerm="",this.lastClickTime=0;const t=this.options=N({id:null,source:null,element:null,debugLevel:3,header:null,rowHeightPx:J,iconMap:"bootstrap",columns:null,types:null,enabled:!0,fixedCol:!1,showSpinner:!1,checkbox:!1,minExpandLevel:0,emptyChildListExpandable:!1,skeleton:!1,connectTopBreadcrumb:null,selectMode:"multi",navigationModeOption:null,quicksearch:!0,iconBadge:null,change:null,error:null,receive:null,strings:{loadError:"Error",loading:"Loading...",noData:"No data"}},e),i=new de;this.ready=i.promise();let s=!1;if(this.ready.then((()=>{s=!0;try{this._callEvent("init")}catch(e){this.logError("Exception inside `init(e)` event:",e)}})).catch((e=>{if(s)throw e;this._callEvent("init",{error:e})})),this.id=t.id||"wb_"+ ++ge.sequence,this.root=new fe(this),this._registerExtension(new Q(this)),this._registerExtension(new pe(this)),this._registerExtension(new G(this)),this._registerExtension(new oe(this)),this._registerExtension(new ae(this)),this._registerExtension(new Y(this)),this._updateViewportThrottled=P(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=k(t.element),f(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){f(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(V.cell):this.setNavigationOption(V.row):this.setNavigationOption(t.navigationModeOption),this.update(R.structure,{immediate:!0}),i.resolve()})).catch((e=>{i.reject(e)})).finally((()=>{var e;null===(e=this.element.querySelector("progress.spinner"))||void 0===e||e.remove(),this.element.classList.remove("wb-initializing")}))):i.resolve(),this.update(R.any),this.element.addEventListener("scroll",(e=>{this.update(R.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(R.resize)})),this.resizeObserver.observe(this.element),I(this.nodeListElement,"click","div.wb-row",(t=>{const i=ge.getEventInfo(t),s=i.node,n=t;if(!1===this._callEvent("click",{event:t,node:s,info:i}))return this.lastClickTime=Date.now(),!1;if(s){if(n.ctrlKey)return void s.toggleSelected();const r=this.getOption("edit.trigger"),o=this.getOption("edit.slowClickDelay");r.indexOf("clickActive")>=0&&"title"===i.region&&s.isActive()&&(!o||Date.now()-this.lastClickTime=0?s.setActive(!0,{colIdx:i.colIdx,event:t}):s.setActive(!0,{event:t}),i.region===U.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===U.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),I(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=ge.getEventInfo(e),i=t.node;if(!1===this._callEvent("dblclick",{event:e,node:i,info:t}))return!1;i&&0===t.colIdx&&i.isExpandable()&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),I(this.element,"keydown",(e=>{const t=ge.getEventInfo(e),i=C(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),I(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=ge.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===V.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof ge)return e;if(e instanceof ue)return e.tree;if(void 0===e&&(e=0),"number"==typeof e)e=document.querySelectorAll(".wunderbaum")[e];else if("string"==typeof e){for(const t of document.querySelectorAll(".wunderbaum")){const i=t._wb_tree;if(i&&i.id===e)return i}if(!(e=document.querySelector(e)))return null}else e.target&&(e=e.target);return f(e instanceof Element,`Invalid el type: ${e}`),e.matches(".wunderbaum")||(e=e.closest(".wunderbaum")),e&&e._wb_tree?e._wb_tree:null}get iconMap(){const e=this.options.iconMap;return"string"==typeof e?Z[e]:e}static getNode(e){if(!e)return null;if(e instanceof ue)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;f(null!=t,`Missing key: '${e}'.`),f(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=N({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,N({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/J):Math.floor(t/J),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/J)-1:Math.ceil((s+n)/J)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof ue?s=t:(s=this.getActiveNode(),f(void 0===i,`Unexpected options: ${i}`),i=t),e){case"moveUp":n=s.getPrevSibling(),n&&(s.moveTo(n,"before"),s.setActive());break;case"moveDown":n=s.getNextSibling(),n&&(s.moveTo(n,"after"),s.setActive());break;case"indent":n=s.getPrevSibling(),n&&(s.moveTo(n,"appendChild"),n.setExpanded(),s.setActive());break;case"outdent":s.isTopLevel()||(s.moveTo(s.getParent(),"after"),s.setActive());break;case"remove":n=s.getPrevSibling()||s.getParent(),s.remove(),n&&n.setActive();break;case"addChild":this._callMethod("edit.createNode","prependChild");break;case"addSibling":this._callMethod("edit.createNode","after");break;case"rename":s.startEditTitle();break;case"down":case"first":case"last":case"left":case"pageDown":case"pageUp":case"parent":case"right":case"up":return s.navigate(e);default:v(`Unhandled command: '${e}'`)}}clear(){this.root.removeChildren(),this.root.children=null,this.keyMap.clear(),this.refKeyMap.clear(),this.treeRowCount=0,this._activeNode=null,this._focusNode=null,this.update(R.structure)}destroy(){this.logInfo("destroy()..."),this.clear(),this.resizeObserver.disconnect(),this.element.innerHTML="",this.element.outerHTML=this.element.outerHTML}getOption(e,t){let i,s=this.options;e.indexOf(".")>=0&&([i,e]=e.split("."),s=s[i]);let n=s[e];return"function"==typeof n&&(n=n({type:"resolve",tree:this})),null!=n?n:t}setOption(e,t){if(e.indexOf(".")>=0){const i=e.split(".");this.extensions[i[0]].setPluginOption(i[1],t)}else switch(this.options[e]=t,e){case"checkbox":this.update(R.any);break;case"enabled":this.setEnabled(!!t);break;case"fixedCol":this.element.classList.toggle("wb-fixed-col",!!t)}}hasFocus(){return this.element.contains(document.activeElement)}hasHeader(){const e=this.options.header;return this.isGrid()?!1!==e:!!e}runWithDeferredUpdate(e,t=null){try{this.enableUpdate(!1);const t=e();return f(!(t instanceof Promise),`Promise return not allowed: ${t}`),t}finally{this.enableUpdate(!0)}}async expandAll(e=!0,t){await this.root.expandAll(e,t)}selectAll(e=!0){return this.root.setSelected(e,{propagateDown:!0})}toggleSelect(){this.selectAll(this.root._anySelectable())}getSelectedNodes(e=!1){return this.root.getSelectedNodes(e)}_selectRange(e){this.logDebug("_selectRange",e),v("Not yet implemented.")}count(e=!1){return e?this.treeRowCount:this.keyMap.size}_check(){let e=0;this.visit((t=>{e++})),this.keyMap.size!==e&&this.logWarn(`_check failed: ${this.keyMap.size} !== ${e}`)}findAll(e){return this.root.findAll(e)}findByRefKey(e){const t=this.refKeyMap.get(e);return t?Array.from(t):[]}findFirst(e){return this.root.findFirst(e)}findKey(e){return this.keyMap.get(e)||null}findNextNode(e,t){let i=null;const s=this.getFirstChild(),n="string"==typeof e?function(e){e=b(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/J);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=ge.getNode(t),r=n?n.tree:ge.getTree(e),o={event:e,canonicalName:C(e),tree:r,node:n,region:U.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=U.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?U.expander:U.prefix;else if(i.contains("wb-checkbox"))o.region=U.checkbox;else if(i.contains("wb-icon"))o.region=U.icon;else if(i.contains("wb-node"))o.region=U.title;else if(s){o.region=U.column;const e=Array.prototype.indexOf.call(s.parentNode.children,s);o.colIdx=e}else{if(!i.contains("wb-row"))return"mousemove"===e.type||e instanceof KeyboardEvent||null==r||r.logWarn("getEventInfo(): not found",e,o),o;o.region=U.title}return-1===o.colIdx&&(o.colIdx=0),o.colDef=null==r?void 0:r.columns[o.colIdx],null!=o.colDef&&(o.colId=o.colDef.id),o}toString(){return`Wunderbaum<'${this.id}'>`}isEditing(){return!!this.nodeListElement.querySelector("input:focus,select:focus")}isEditingTitle(){return this._callMethod("edit.isEditingTitle")}isLoading(){let e=!1;return this.root.visit((t=>{if(t._isLoading||t._requestId)return e=!0,!1}),!0),e}log(...e){this.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.options.debugLevel>=3&&console.info(this.toString(),...e)}logTime(e){return this.options.debugLevel>=4&&console.time(this+": "+e),e}logTimeEnd(e){this.options.debugLevel>=4&&console.timeEnd(this+": "+e)}logWarn(...e){this.options.debugLevel>=2&&console.warn(this.toString(),...e)}resetColumns(){this.columns.forEach((e=>{delete e.customWidthPx})),this.update(R.colStructure)}scrollTo(e){let t,i;e instanceof ue?t=e:(i=e,t=i.node),f(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=t._rowIdx*J+n,a=n,d=l-r,c=d+J,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+J-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(f(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;f((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(f(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update(R.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===V.row)switch(this.options.navigationModeOption=e,e){case V.cell:this.setCellNav(!0);break;case V.row:this.setCellNav(!1);break;case V.startCell:t&&this.setCellNav(!0);break;case V.startRow:t&&this.setCellNav(!1);break;default:v(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){f(T(e),`Expected plain objext: ${e}`),t?this.types=e:N(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=A(e.classes))}sortChildren(e=se,t=!1){this.root.sortChildren(e,t)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.customWidthPx?`${e.customWidthPx}px`:e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else v(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_renderHeaderMarkup(){f(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(E(this.headerElement,e),!e)return;const t=this.columns.length,i=this.headerElement.querySelector(".wb-row");f(i,"Expected a row in header element"),i.innerHTML="".repeat(t);for(let e=0;e':''),n.innerHTML=`${r}${l}`,this.isCellNav()&&n.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=z,i=new Set(this.pendingChangeTypes);this.pendingChangeTypes.clear();if(i.has(t.scroll)&&1===i.size)this._updateRows({newNodesOnly:!0});else{if(this.log("_updateViewportImmediately():",i),!1!==this.options.adjustHeight){let e=this.listContainerElement.clientHeight;const t=this.headerElement.clientHeight,i=this.element.clientHeight-t-1;Math.abs(e-i)>1&&(this.listContainerElement.style.height=i+"px",e=i)}i.has(t.clearMarkup)&&this.visit((e=>{e.removeMarkup()})),i.has(t.header)&&(this._updateColumnWidths(),this._renderHeaderMarkup()),this._updateRows()}if(this.options.connectTopBreadcrumb){f(null!=this.options.connectTopBreadcrumb.textContent,"Invalid 'connectTopBreadcrumb' option (input element expected).");let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=l*J+"px",c=i):(o.delete(e),i&&(i.style.top=l*J+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,f(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),f(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(f(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update(R.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}countMatches(){return this.extensions.filter.countMatches()}filterBranches(e,t){return this.extensions.filter.filterBranches(e,t)}clearFilter(){return this.extensions.filter.clearFilter()}isFilterActive(){return!!this.filterMode}updateFilter(){return this.extensions.filter.updateFilter()}}ge.sequence=0,ge.version="v0.10.1",ge.util=q,e.Wunderbaum=ge})); + * @version v0.11.0 + * @date Sun, 04 Aug 2024 15:35:53 GMT + */class ge extends pe{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class ve{get activeNode(){var e;return(null===(e=this._activeNode)||void 0===e?void 0:e.tree)?this._activeNode:null}get focusNode(){var e;return(null===(e=this._focusNode)||void 0===e?void 0:e.tree)?this._focusNode:null}constructor(e){this.enabled=!0,this.data={},this.extensionList=[],this.extensions={},this.keyMap=new Map,this.refKeyMap=new Map,this.treeRowCount=0,this._disableUpdateCount=0,this._disableUpdateIgnoreCount=0,this._activeNode=null,this._focusNode=null,this.types={},this.columns=[],this._columnsById={},this.pendingChangeTypes=new Set,this._util=j,this.filterMode=null,this.activeColIdx=0,this._cellNavMode=!1,this.lastQuicksearchTime=0,this.lastQuicksearchTerm="",this.lastClickTime=0;const t=this.options=N({id:null,source:null,element:null,debugLevel:3,header:null,rowHeightPx:X,iconMap:"bootstrap",columns:null,types:null,enabled:!0,fixedCol:!1,showSpinner:!1,checkbox:!1,minExpandLevel:0,emptyChildListExpandable:!1,skeleton:!1,connectTopBreadcrumb:null,selectMode:"multi",navigationModeOption:null,quicksearch:!0,iconBadge:null,change:null,error:null,receive:null,strings:{loadError:"Error",loading:"Loading...",noData:"No data"}},e),i=new ce;this.ready=i.promise();let s=!1;if(this.ready.then((()=>{s=!0;try{this._callEvent("init")}catch(e){this.logError("Exception inside `init(e)` event:",e)}})).catch((e=>{if(s)throw e;this._callEvent("init",{error:e})})),this.id=t.id||"wb_"+ ++ve.sequence,this.root=new ge(this),this._registerExtension(new Y(this)),this._registerExtension(new fe(this)),this._registerExtension(new Q(this)),this._registerExtension(new le(this)),this._registerExtension(new de(this)),this._registerExtension(new J(this)),this._updateViewportThrottled=F(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=k(t.element),f(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){f(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(q.cell):this.setNavigationOption(q.row):this.setNavigationOption(t.navigationModeOption),this.update(R.structure,{immediate:!0}),i.resolve()})).catch((e=>{i.reject(e)})).finally((()=>{var e;null===(e=this.element.querySelector("progress.spinner"))||void 0===e||e.remove(),this.element.classList.remove("wb-initializing")}))):i.resolve(),this.update(R.any),this.element.addEventListener("scroll",(e=>{this.update(R.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(R.resize)})),this.resizeObserver.observe(this.element),T(this.element,"click",".wb-button,.wb-col-icon",(e=>{var t,i;const s=ve.getEventInfo(e),n=null===(i=null===(t=e.target)||void 0===t?void 0:t.dataset)||void 0===i?void 0:i.command;this._callEvent("buttonClick",{event:e,info:s,command:n})})),T(this.nodeListElement,"click","div.wb-row",(t=>{const i=ve.getEventInfo(t),s=i.node,n=t;if(!1===this._callEvent("click",{event:t,node:s,info:i}))return this.lastClickTime=Date.now(),!1;if(s){if(n.ctrlKey)return void s.toggleSelected();const r=this.getOption("edit.trigger"),o=this.getOption("edit.slowClickDelay");r.indexOf("clickActive")>=0&&"title"===i.region&&s.isActive()&&(!o||Date.now()-this.lastClickTime=0?s.setActive(!0,{colIdx:i.colIdx,event:t}):s.setActive(!0,{event:t}),i.region===V.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===V.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),T(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=ve.getEventInfo(e),i=t.node;if(!1===this._callEvent("dblclick",{event:e,node:i,info:t}))return!1;i&&0===t.colIdx&&i.isExpandable()&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),T(this.element,"keydown",(e=>{const t=ve.getEventInfo(e),i=C(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),T(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=ve.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===q.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof ve)return e;if(e instanceof pe)return e.tree;if(void 0===e&&(e=0),"number"==typeof e)e=document.querySelectorAll(".wunderbaum")[e];else if("string"==typeof e){for(const t of document.querySelectorAll(".wunderbaum")){const i=t._wb_tree;if(i&&i.id===e)return i}if(!(e=document.querySelector(e)))return null}else e.target&&(e=e.target);return f(e instanceof Element,`Invalid el type: ${e}`),e.matches(".wunderbaum")||(e=e.closest(".wunderbaum")),e&&e._wb_tree?e._wb_tree:null}get iconMap(){const e=this.options.iconMap;return"string"==typeof e?ee[e]:e}static getNode(e){if(!e)return null;if(e instanceof pe)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;f(null!=t,`Missing key: '${e}'.`),f(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=N({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,N({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/X):Math.floor(t/X),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/X)-1:Math.ceil((s+n)/X)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof pe?s=t:(s=this.getActiveNode(),f(void 0===i,`Unexpected options: ${i}`),i=t),e){case"moveUp":n=s.getPrevSibling(),n&&(s.moveTo(n,"before"),s.setActive());break;case"moveDown":n=s.getNextSibling(),n&&(s.moveTo(n,"after"),s.setActive());break;case"indent":n=s.getPrevSibling(),n&&(s.moveTo(n,"appendChild"),n.setExpanded(),s.setActive());break;case"outdent":s.isTopLevel()||(s.moveTo(s.getParent(),"after"),s.setActive());break;case"remove":n=s.getPrevSibling()||s.getParent(),s.remove(),n&&n.setActive();break;case"addChild":this._callMethod("edit.createNode","prependChild");break;case"addSibling":this._callMethod("edit.createNode","after");break;case"rename":s.startEditTitle();break;case"down":case"first":case"last":case"left":case"pageDown":case"pageUp":case"parent":case"right":case"up":return s.navigate(e);default:v(`Unhandled command: '${e}'`)}}clear(){this.root.removeChildren(),this.root.children=null,this.keyMap.clear(),this.refKeyMap.clear(),this.treeRowCount=0,this._activeNode=null,this._focusNode=null,this.update(R.structure)}destroy(){this.logInfo("destroy()..."),this.clear(),this.resizeObserver.disconnect(),this.element.innerHTML="",this.element.outerHTML=this.element.outerHTML}getOption(e,t){let i,s=this.options;e.indexOf(".")>=0&&([i,e]=e.split("."),s=s[i]);let n=s[e];return"function"==typeof n&&(n=n({type:"resolve",tree:this})),null!=n?n:t}setOption(e,t){if(e.indexOf(".")>=0){const i=e.split(".");this.extensions[i[0]].setPluginOption(i[1],t)}else switch(this.options[e]=t,e){case"checkbox":this.update(R.any);break;case"enabled":this.setEnabled(!!t);break;case"fixedCol":this.element.classList.toggle("wb-fixed-col",!!t)}}hasFocus(){return this.element.contains(document.activeElement)}hasHeader(){const e=this.options.header;return this.isGrid()?!1!==e:!!e}runWithDeferredUpdate(e,t=null){try{this.enableUpdate(!1);const t=e();return f(!(t instanceof Promise),`Promise return not allowed: ${t}`),t}finally{this.enableUpdate(!0)}}async expandAll(e=!0,t){await this.root.expandAll(e,t)}selectAll(e=!0){return this.root.setSelected(e,{propagateDown:!0})}toggleSelect(){this.selectAll(this.root._anySelectable())}getSelectedNodes(e=!1){return this.root.getSelectedNodes(e)}_selectRange(e){this.logDebug("_selectRange",e),v("Not yet implemented.")}count(e=!1){return e?this.treeRowCount:this.keyMap.size}_check(){let e=0;this.visit((t=>{e++})),this.keyMap.size!==e&&this.logWarn(`_check failed: ${this.keyMap.size} !== ${e}`)}findAll(e){return this.root.findAll(e)}findByRefKey(e){const t=this.refKeyMap.get(e);return t?Array.from(t):[]}findFirst(e){return this.root.findFirst(e)}findKey(e){return this.keyMap.get(e)||null}findNextNode(e,t){let i=null;const s=this.getFirstChild(),n="string"==typeof e?function(e){e=b(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/X);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=ve.getNode(t),r=n?n.tree:ve.getTree(e),o={event:e,canonicalName:C(e),tree:r,node:n,region:V.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=V.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?V.expander:V.prefix;else if(i.contains("wb-checkbox"))o.region=V.checkbox;else if(i.contains("wb-icon"))o.region=V.icon;else if(i.contains("wb-node"))o.region=V.title;else if(s){o.region=V.column;const e=Array.prototype.indexOf.call(s.parentNode.children,s);o.colIdx=e}else{if(!i.contains("wb-row"))return"mousemove"===e.type||e instanceof KeyboardEvent||null==r||r.logWarn("getEventInfo(): not found",e,o),o;o.region=V.title}return-1===o.colIdx&&(o.colIdx=0),o.colDef=null==r?void 0:r.columns[o.colIdx],null!=o.colDef&&(o.colId=o.colDef.id),o}toString(){return`Wunderbaum<'${this.id}'>`}isEditing(){return!!this.nodeListElement.querySelector("input:focus,select:focus")}isEditingTitle(){return this._callMethod("edit.isEditingTitle")}isLoading(){let e=!1;return this.root.visit((t=>{if(t._isLoading||t._requestId)return e=!0,!1}),!0),e}log(...e){this.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.options.debugLevel>=3&&console.info(this.toString(),...e)}logTime(e){return this.options.debugLevel>=4&&console.time(this+": "+e),e}logTimeEnd(e){this.options.debugLevel>=4&&console.timeEnd(this+": "+e)}logWarn(...e){this.options.debugLevel>=2&&console.warn(this.toString(),...e)}resetColumns(){this.columns.forEach((e=>{delete e.customWidthPx})),this.update(R.colStructure)}scrollTo(e){let t,i;e instanceof pe?t=e:(i=e,t=i.node),f(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=t._rowIdx*X+n,a=n,d=l-r,c=d+X,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+X-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(f(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;f((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(f(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update(R.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===q.row)switch(this.options.navigationModeOption=e,e){case q.cell:this.setCellNav(!0);break;case q.row:this.setCellNav(!1);break;case q.startCell:t&&this.setCellNav(!0);break;case q.startRow:t&&this.setCellNav(!1);break;default:v(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){f(I(e),`Expected plain objext: ${e}`),t?this.types=e:N(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=A(e.classes))}sortChildren(e=ne,t=!1){this.root.sortChildren(e,t)}sortByProperty(e){this.root.sortByProperty(e)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.customWidthPx?`${e.customWidthPx}px`:e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else v(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_insertIcon(e,t){const i=document.createElement("i");i.className=e,t.appendChild(i)}_renderHeaderMarkup(){f(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(E(this.headerElement,e),!e)return;const t=this.iconMap,i=this.columns.length,s=this.headerElement.querySelector(".wb-row");f(s,"Expected a row in header element"),s.innerHTML="".repeat(i);for(let e=0;e
`}if(P(n.sortable,this.options.columnsSortable,!1)){let e="wb-col-icon-sort "+t.colSortable;n.sortOrder&&(e+=`wb-col-sort-${n.sortOrder}`,e+="asc"===n.sortOrder?t.colSortAsc:t.colSortDesc);l+=``}if(P(n.filterable,this.options.columnsFilterable,!1)){r.classList.toggle("wb-col-filter",!!n.filterActive);let e="wb-col-icon-filter "+t.colFilter;n.filterActive&&(e+=t.colFilterActive);l+=``}e':l+='');const a=m(n.title||n.id);r.innerHTML=`${a}${l}`,this.isCellNav()&&r.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=z,i=new Set(this.pendingChangeTypes);this.pendingChangeTypes.clear();if(i.has(t.scroll)&&1===i.size)this._updateRows({newNodesOnly:!0});else{if(this.log("_updateViewportImmediately():",i),!1!==this.options.adjustHeight){let e=this.listContainerElement.clientHeight;const t=this.headerElement.clientHeight,i=this.element.clientHeight-t-1;Math.abs(e-i)>1&&(this.listContainerElement.style.height=i+"px",e=i)}i.has(t.clearMarkup)&&this.visit((e=>{e.removeMarkup()})),i.has(t.header)&&(this._updateColumnWidths(),this._renderHeaderMarkup()),this._updateRows()}if(this.options.connectTopBreadcrumb){f(null!=this.options.connectTopBreadcrumb.textContent,"Invalid 'connectTopBreadcrumb' option (input element expected).");let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=l*X+"px",c=i):(o.delete(e),i&&(i.style.top=l*X+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,f(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),f(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(f(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update(R.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}countMatches(){return this.extensions.filter.countMatches()}filterBranches(e,t){return this.extensions.filter.filterBranches(e,t)}clearFilter(){return this.extensions.filter.clearFilter()}isFilterActive(){return!!this.filterMode}updateFilter(){return this.extensions.filter.updateFilter()}}ve.sequence=0,ve.version="v0.11.0",ve.util=j,e.Wunderbaum=ve})); //# sourceMappingURL=wunderbaum.umd.min.js.map \ No newline at end of file diff --git a/dist/wunderbaum.umd.min.js.map b/dist/wunderbaum.umd.min.js.map index 68f9556..06790c3 100644 --- a/dist/wunderbaum.umd.min.js.map +++ b/dist/wunderbaum.umd.min.js.map @@ -1 +1 @@ -{"version":3,"file":"wunderbaum.umd.js","names":["global","factory","exports","module","define","amd","globalThis","self","mar10","this","freeGlobal","Object","freeGlobalThis","freeSelf","root","Function","isObject","value","type","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","requestAnimationFrame","TypeError","invokeFunc","time","args","thisArg","undefined","apply","startTimer","pendingFunc","cancelAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","Date","now","trailingEdge","timeSinceLastInvoke","timeWaiting","Math","min","remainingWait","debounced","isInvoking","leadingEdge","max","cancel","id","clearTimeout","cancelTimer","flush","pending","throttle","MOUSE_BUTTONS","isMac","nav","navigator","test","platform","_getUserInfo","REX_HTML","REX_TOOLTIP","ENTITY_MAP","ValidationError","Error","constructor","message","super","name","assert","cond","msg","documentReady","callback","document","readyState","addEventListener","error","escapeHtml","s","replace","escapeRegex","escapeTooltip","getValueFromElem","elem","coerce","tag","tagName","classList","contains","span","embeddedInput","querySelector","innerText","input","indeterminate","checked","valueAsDate","valueAsNumber","parentElement","setElemDisplay","flag","style","elemFromSelector","display","elemFromHtml","html","t","createElement","innerHTML","trim","content","firstElementChild","_IGNORE_KEYS","Set","obj","eventToString","event","key","et","altKey","push","ctrlKey","metaKey","shiftKey","button","has","join","extend","i","length","arg","prototype","hasOwnProperty","call","isArray","Array","isEmptyObject","keys","isPlainObject","toString","onEvent","rootTarget","eventNames","selectorOrHandler","handlerOrNone","selector","handler","split","forEach","evn","e","target","matches","closest","overrideMethod","instance","methodName","ctx","prevSuper","prevSuperApply","prevFunc","_super","_superApply","argsArray","getOption","opts","defaultValue","ext","indexOf","toSet","val","set","c","add","toPixel","defaults","d","endsWith","parseInt","toBool","boolDefaults","adaptiveThrottle","assign","minDelay","defaultDelay","maxDelay","delayFactor","waiting","pendingArgs","pendingTimer","throttledFn","useArgs","start","console","elap","curDelay","useDelay","ChangeType","RenderFlag","NodeStatusType","NodeRegion","NavModeEnum","util","freeze","__proto__","Deferred","thens","catches","status","resolve","resolvedValue","reject","rejectedError","then","cb","unshift","promise","catch","MAX_INT","documentReadyPromise","Promise","each","k","extractHtmlText","isFunction","noop","setTimeoutPromise","ms","err","setValueToElem","select","selectedIndex","sleep","async","toggleCheckbox","element","tristate","toLowerCase","WunderbaumExtension","tree","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","autoApply","autoExpand","matchBranch","connectInput","fuzzy","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","_opts","runWithDeferredUpdate","_applyFilterImpl","count","prevAutoCollapse","autoCollapse","hideMode","filterRegExp","highlightRegExp","logInfo","clearFilter","matchReString","map","reduce","a","b","logDebug","node","title","text","res","exec","highlightString","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","match","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","countMatches","n","statusNodeType","logWarn","enableUpdate","remove","KeynavExtension","_getEmbeddedInputElem","ace","getActiveColElem","_isCurInputFocused","activate","autoActivate","curInput","inputHasFocus","navModeOption","navigationModeOption","focusNode","eventName","handled","isEnabled","_callEvent","_callMethod","currentNode","getFocusNode","getActiveNode","firstNode","getFirstChild","setActive","setFocus","isColspan","isRowNav","blur","_render","quicksearch","stamp","lastQuicksearchTime","lastQuicksearchTerm","matchNode","findNextNode","preventDefault","isActive","isExpanded","isExpandable","startCell","startRow","setCellNav","toggleSelected","navigate","curInputType","inputCanFocus","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","ROW_HEIGHT","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","nodeTitleSorter","x","y","decompressSourceData","source","_format","_version","_keyMap","_valueMap","longToShort","shortToLong","entries","warn","_typeList","_b","_c","_positional","includes","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","unflattenSource","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","GridExtension","observer","window","info","getEventInfo","colDef","allow","resizable","resizableColumns","colElem","orgCustomWidthPx","customWidthPx","curWidthPx","Number","width","orgWidthPx","update","colStructure","handleDrag","custom","minWidth","newWidth","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","colspan","checkbox","radiogroup","selected","unselectable","_registerNode","Symbol","iterator","cl","l","typeInfo","addChildren","before","applyMinExpanLevel","_level","getLevel","nodeList","forceExpand","minExpandLevel","child","subChildren","isUnloaded","concat","findDirectChild","pos","splice","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","idx","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","hasFocus","other","isDescendantOf","isChildOf","isClone","andCollapsed","emptyChildListExpandable","isFirstSibling","isLastSibling","isLazy","isLoading","isPagingNode","isParentOf","isPartload","isPartsel","isRadio","isRendered","isRootNode","isSelected","isTopLevel","isVisible","hasFilter","parents","_loadSourceObject","response","setTypes","selectMode","fixSelection3FromEndNodes","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","left","_ofsPx","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","reMatch","makeNodeTitleStartMatcher","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","colId","column","KeyboardEvent","isEditing","label","timeEnd","resetColumns","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","values","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","px","parseFloat","slice","restPx","ofsPx","cmw","tw","_renderHeaderMarkup","colCount","headerRow","headerClasses","resizer","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.umd.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"file":"wunderbaum.umd.js","names":["global","factory","exports","module","define","amd","globalThis","self","mar10","this","freeGlobal","Object","freeGlobalThis","freeSelf","root","Function","isObject","value","type","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","requestAnimationFrame","TypeError","invokeFunc","time","args","thisArg","undefined","apply","startTimer","pendingFunc","cancelAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","Date","now","trailingEdge","timeSinceLastInvoke","timeWaiting","Math","min","remainingWait","debounced","isInvoking","leadingEdge","max","cancel","id","clearTimeout","cancelTimer","flush","pending","throttle","MOUSE_BUTTONS","isMac","nav","navigator","test","platform","_getUserInfo","REX_HTML","REX_TOOLTIP","ENTITY_MAP","ValidationError","Error","constructor","message","super","name","assert","cond","msg","documentReady","callback","document","readyState","addEventListener","error","escapeHtml","s","replace","escapeRegex","escapeTooltip","getValueFromElem","elem","coerce","tag","tagName","classList","contains","span","embeddedInput","querySelector","innerText","input","indeterminate","checked","valueAsDate","valueAsNumber","parentElement","setElemDisplay","flag","style","elemFromSelector","display","elemFromHtml","html","t","createElement","innerHTML","trim","content","firstElementChild","_IGNORE_KEYS","Set","obj","eventToString","event","key","et","altKey","push","ctrlKey","metaKey","shiftKey","button","has","join","extend","i","length","arg","prototype","hasOwnProperty","call","isArray","Array","isEmptyObject","keys","isPlainObject","toString","onEvent","rootTarget","eventNames","selectorOrHandler","handlerOrNone","selector","handler","split","forEach","evn","e","target","matches","closest","overrideMethod","instance","methodName","ctx","prevSuper","prevSuperApply","prevFunc","_super","_superApply","argsArray","getOption","opts","defaultValue","ext","indexOf","rotate","values","idx","toSet","val","set","c","add","toPixel","defaults","d","endsWith","parseInt","toBool","boolDefaults","adaptiveThrottle","assign","minDelay","defaultDelay","maxDelay","delayFactor","waiting","pendingArgs","pendingTimer","throttledFn","useArgs","start","console","elap","curDelay","useDelay","ChangeType","RenderFlag","NodeStatusType","NodeRegion","NavModeEnum","util","freeze","__proto__","Deferred","thens","catches","status","resolve","resolvedValue","reject","rejectedError","then","cb","unshift","promise","catch","MAX_INT","documentReadyPromise","Promise","each","k","extractHtmlText","isFunction","noop","setTimeoutPromise","ms","err","setValueToElem","select","selectedIndex","sleep","async","toggleCheckbox","element","tristate","toLowerCase","WunderbaumExtension","tree","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","autoApply","autoExpand","matchBranch","connectInput","fuzzy","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","_opts","runWithDeferredUpdate","_applyFilterImpl","count","prevAutoCollapse","autoCollapse","hideMode","filterRegExp","highlightRegExp","logInfo","clearFilter","matchReString","map","reduce","a","b","logDebug","node","title","text","res","exec","highlightString","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","match","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","countMatches","n","statusNodeType","logWarn","enableUpdate","remove","KeynavExtension","_getEmbeddedInputElem","ace","getActiveColElem","_isCurInputFocused","activate","autoActivate","curInput","inputHasFocus","navModeOption","navigationModeOption","focusNode","eventName","handled","isEnabled","_callEvent","_callMethod","currentNode","getFocusNode","getActiveNode","firstNode","getFirstChild","setActive","setFocus","isColspan","isRowNav","blur","_render","quicksearch","stamp","lastQuicksearchTime","lastQuicksearchTerm","matchNode","findNextNode","preventDefault","isActive","isExpanded","isExpandable","startCell","startRow","setCellNav","toggleSelected","navigate","curInputType","inputCanFocus","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","ROW_HEIGHT","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","colSortable","colSortAsc","colSortDesc","colFilter","colFilterActive","colMenu","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","nodeTitleSorter","x","y","decompressSourceData","source","_format","_version","_keyMap","_valueMap","longToShort","shortToLong","entries","warn","_typeList","_b","_c","_positional","includes","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","unflattenSource","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","GridExtension","observer","window","info","getEventInfo","colDef","allow","resizable","columnsResizable","colElem","orgCustomWidthPx","customWidthPx","curWidthPx","Number","width","orgWidthPx","update","colStructure","handleDrag","custom","minWidth","newWidth","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","colspan","checkbox","radiogroup","selected","unselectable","_registerNode","Symbol","iterator","cl","l","typeInfo","addChildren","before","applyMinExpanLevel","_level","getLevel","nodeList","forceExpand","minExpandLevel","child","subChildren","isUnloaded","concat","findDirectChild","pos","splice","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","hasFocus","other","isDescendantOf","isChildOf","isClone","andCollapsed","emptyChildListExpandable","isFirstSibling","isLastSibling","isLazy","isLoading","isPagingNode","isParentOf","isPartload","isPartsel","isRadio","isRendered","isRootNode","isSelected","isTopLevel","isVisible","hasFilter","parents","_loadSourceObject","response","setTypes","selectMode","fixSelection3FromEndNodes","resetNativeChildOrder","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","left","_ofsPx","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","sortByProperty","caseInsensitive","nativeOrderPropName","updateColInfo","order","colId","sortOrder","av","bv","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","command","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","reMatch","makeNodeTitleStartMatcher","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","column","KeyboardEvent","isEditing","label","timeEnd","resetColumns","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","px","parseFloat","slice","restPx","ofsPx","cmw","tw","_insertIcon","iconElem","_renderHeaderMarkup","colCount","headerRow","headerClasses","addMarkup","menu","columnsMenu","sortable","columnsSortable","iconClass","filterable","columnsFilterable","filterActive","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.umd.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index d9f8fa0..f382d00 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/api/classes/util.Deferred.html b/docs/api/classes/util.Deferred.html index 9e93225..4413d41 100644 --- a/docs/api/classes/util.Deferred.html +++ b/docs/api/classes/util.Deferred.html @@ -1,10 +1,10 @@ -Deferred | wunderbaum - v0.10.2-0

A ES6 Promise, that exposes the resolve()/reject() methods.

+Deferred | wunderbaum - v0.11.0

A ES6 Promise, that exposes the resolve()/reject() methods.

TODO: See Promise.withResolvers() , a proposed standard, but not yet implemented in any browser.

-

Constructors

Constructors

Methods

  • Returns {
        catch: ((cb) => void);
        then: ((cb) => void);
    }

    • catch: ((cb) => void)
        • (cb): void
        • Parameters

          • cb: any

          Returns void

    • then: ((cb) => void)
        • (cb): void
        • Parameters

          • cb: any

          Returns void

  • Parameters

    • Optional error: any

    Returns void

  • Parameters

    • Optional value: any

    Returns void

\ No newline at end of file +

Constructors

Methods

  • Returns {
        catch: ((cb) => void);
        then: ((cb) => void);
    }

    • catch: ((cb) => void)
        • (cb): void
        • Parameters

          • cb: any

          Returns void

    • then: ((cb) => void)
        • (cb): void
        • Parameters

          • cb: any

          Returns void

  • Parameters

    • Optional error: any

    Returns void

  • Parameters

    • Optional value: any

    Returns void

\ No newline at end of file diff --git a/docs/api/classes/util.ValidationError.html b/docs/api/classes/util.ValidationError.html index 62fc9a5..ab421b2 100644 --- a/docs/api/classes/util.ValidationError.html +++ b/docs/api/classes/util.ValidationError.html @@ -1,14 +1,14 @@ -ValidationError | wunderbaum - v0.10.2-0

Class ValidationError

A generic error that can be thrown to indicate a validation error when +ValidationError | wunderbaum - v0.11.0

Class ValidationError

A generic error that can be thrown to indicate a validation error when handling the apply event for a node title or the change event for a grid cell.

-

Hierarchy

  • Error
    • ValidationError

Constructors

Hierarchy

  • Error
    • ValidationError

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    -

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file +

Parameters

  • targetObject: object
  • Optional constructorOpt: Function

Returns void

\ No newline at end of file diff --git a/docs/api/classes/wb_node.WunderbaumNode.html b/docs/api/classes/wb_node.WunderbaumNode.html index 8f233ca..9647e5b 100644 --- a/docs/api/classes/wb_node.WunderbaumNode.html +++ b/docs/api/classes/wb_node.WunderbaumNode.html @@ -1,8 +1,8 @@ -WunderbaumNode | wunderbaum - v0.10.2-0

A single tree node.

+WunderbaumNode | wunderbaum - v0.11.0

A single tree node.

NOTE:
Generally you should not modify properties directly, since this may break the internal bookkeeping.

-

Constructors

Constructors

Properties

_errorInfo: any = null
_filterAutoExpanded?: boolean
_isLoading: boolean = false
_partload: boolean = false
_partsel: boolean = false
_requestId: number = 0
_rowElem: undefined | HTMLDivElement = undefined
_rowIdx: undefined | number = 0
checkbox?: CheckboxOption

Render a checkbox or radio button

+

Constructors

Properties

_errorInfo: any = null
_filterAutoExpanded?: boolean
_isLoading: boolean = false
_partload: boolean = false
_partsel: boolean = false
_requestId: number = 0
_rowElem: undefined | HTMLDivElement = undefined
_rowIdx: undefined | number = 0
checkbox?: CheckboxOption

Render a checkbox or radio button

See

selected.

-
children: null | WunderbaumNode[] = null

Array of child nodes (null for leaf nodes). +

children: null | WunderbaumNode[] = null

Array of child nodes (null for leaf nodes). For lazy nodes, this is null or ùndefineduntil the children are loaded and leaf nodes may be[]` (empty array).

classes: null | Set<string> = null

Additional classes added to div.wb-row.

+
classes: null | Set<string> = null

Additional classes added to div.wb-row.

colspan?: boolean

If true, (in grid mode) no cells are rendered, except for the node title.

-
data: any = {}

Custom data that was passed to the constructor

-
expanded?: boolean

Expansion state.

+
colspan?: boolean

If true, (in grid mode) no cells are rendered, except for the node title.

+
data: any = {}

Custom data that was passed to the constructor

+
expanded?: boolean

Expansion state.

icon?: IconOption

Icon definition.

-
key: string

Unique key. Passed with constructor or defaults to SEQUENCE.

+
icon?: IconOption

Icon definition.

+
key: string

Unique key. Passed with constructor or defaults to SEQUENCE.

See

Use setKey to modify.

-
lazy?: boolean

Lazy loading flag.

+
lazy?: boolean

Lazy loading flag.

match?: boolean

Parent node (null for the invisible root node tree.root).

-
radiogroup?: boolean

If true, this node's children are considerd radio buttons.

+
match?: boolean

Parent node (null for the invisible root node tree.root).

+
radiogroup?: boolean

If true, this node's children are considerd radio buttons.

See

isRadio.

-
refKey: undefined | string = undefined

Reference key. Unlike key, a refKey may occur multiple +

refKey: undefined | string = undefined

Reference key. Unlike key, a refKey may occur multiple times within a tree (in this case we have 'clone nodes').

See

Use setKey to modify.

-
selected?: boolean

Selection state.

+
selected?: boolean

Selection state.

statusNodeType?: NodeStatusType
subMatchCount?: number = 0
title: string

Name of the node.

+
statusNodeType?: NodeStatusType
subMatchCount?: number = 0
title: string

Name of the node.

See

Use setTitle to modify.

-
titleWithHighlight?: string
tooltip?: string | boolean

Tooltip definition (true: use node's title).

-

Reference to owning tree.

-
type?: string

Node type (used for styling).

+
titleWithHighlight?: string
tooltip?: string | boolean

Tooltip definition (true: use node's title).

+

Reference to owning tree.

+
type?: string

Node type (used for styling).

unselectable?: boolean
sequence: number = 0

Methods

unselectable?: boolean
sequence: number = 0

Methods

  • Internal

    Return true if at least on selectable descendant end-node is unselected.

    -

    Returns boolean

  • Internal

    Return true if at least on selectable descendant end-node is unselected.

    +

    Returns boolean

  • Call event handler if defined in tree.options. Example:

    node._callEvent("edit.beforeEdit", {foo: 42})
     
    -

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Parameters

    • source: any

    Returns Promise<any>

  • Append (or insert) a list of child nodes.

    +

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Parameters

    • source: any

    Returns Promise<any>

  • Append or prepend a node, or append a child node.

    This a convenience function that calls addChildren()

    Parameters

    • nodeData: WbNodeData

      node definition

    • Optional mode: InsertNodeType = "appendChild"

      'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child')

    Returns WunderbaumNode

    new node

    -
  • Apply a modification (or navigation) operation.

    +
  • Collapse all expanded sibling nodes if any. +

  • Collapse all expanded sibling nodes if any. (Automatically called when autoCollapse is true.)

    -

    Parameters

    Returns any

  • Call setExpanded() on all descendant nodes.

    -

    Parameters

    Returns Promise<void>

  • Call setExpanded() on all descendant nodes.

    +

    Parameters

    Returns Promise<void>

  • Find all descendant nodes that match condition (excluding self).

    If match is a string, search for exact node title. If match is a RegExp expression, apply it to node.title, using RegExp.test(). @@ -195,18 +195,18 @@

    Examples:

    // Match all node titles that match exactly 'Joe':
    nodeList = node.findAll("Joe")
    // Match all node titles that start with 'Joe' case sensitive:
    nodeList = node.findAll(/^Joe/)
    // Match all node titles that contain 'oe', case insensitive:
    nodeList = node.findAll(/oe/i)
    // Match all nodes with `data.price` >= 99:
    nodeList = node.findAll((n) => {
    return n.data.price >= 99;
    })
    -

    Parameters

    Returns WunderbaumNode[]

  • Fix selection status, after this node was (de)selected in selectMode: 'hier'. +

  • Fix selection status, after this node was (de)selected in selectMode: 'hier'. This includes (de)selecting all descendants.

    -

    Parameters

    Returns void

  • Fix selection status for multi-hier mode. Only end-nodes are considered to update the descendants branch and parents. Should be called after this node has loaded new children or after children have been modified using the API.

    -

    Parameters

    Returns void

  • Return a multiline string representation of a node/subnode hierarchy. +

    Parameters

    Returns void

  • Return a multiline string representation of a node/subnode hierarchy. Mostly useful for debugging.

    Example:

    console.info(tree.getActiveNode().format((n)=>n.title));
    @@ -215,16 +215,16 @@
     
    Books
    ├─ Art of War
    ╰─ Don Quixote

    Parameters

    Returns string

  • Return the <span class='wb-col'> element with a given index or id.

    -

    Parameters

    • colIdx: string | number

    Returns null | HTMLSpanElement

  • Return node depth (starting with 1 for top level nodes).

    -

    Returns number

  • Return an option value that has a default, but may be overridden by a +

  • Return the <span class='wb-col'> element with a given index or id.

    +

    Parameters

    • colIdx: string | number

    Returns null | HTMLSpanElement

  • Return node depth (starting with 1 for top level nodes).

    +

    Returns number

  • Return an option value that has a default, but may be overridden by a callback or a node instance attribute.

    Evaluation sequence:

      @@ -236,79 +236,79 @@

    Parameters

    • name: string

      name of the option property (on node and tree)

    • Optional defaultValue: any

      return this if nothing else matched -Wunderbaum.getOption()

      -

    Returns any

Returns any

  • Return an array of all parent nodes (top-down).

    Parameters

    • includeRoot: boolean = false

      Include the invisible system root node.

    • includeSelf: boolean = false

      Include the node itself.

      -

    Returns WunderbaumNode[]

  • Return a string representing the hierachical node path, e.g. "a/b/c".

    +

Returns WunderbaumNode[]

  • Return a string representing the hierachical node path, e.g. "a/b/c".

    Parameters

    • includeSelf: boolean = true
    • part: (keyof WunderbaumNode) | NodeAnyCallback = "title"

      property name or callback

      -
    • separator: string = "/"

    Returns string

  • Return an array of selected nodes.

    +
  • separator: string = "/"

Returns string

  • Return an array of selected nodes.

    Parameters

    • stopOnParents: boolean = false

      only return the topmost selected node (useful with selectMode 'hier')

      -

    Returns WunderbaumNode[]

  • Return true if node has children. +

Returns WunderbaumNode[]

  • Return true if node has children. Return undefined if not sure, i.e. the node is lazy and not yet loaded.

    -

    Returns undefined | boolean

  • Return true if node has className set.

    -

    Parameters

    • className: string

    Returns boolean

  • Return true if node ist the currently focused node.

    +

    Returns undefined | boolean

  • Return true if node has className set.

    +

    Parameters

    • className: string

    Returns boolean

  • Return true if node ist the currently focused node.

    Returns boolean

    Since

    0.9.0

    -
  • Return true if this node is the currently active tree node.

    -

    Returns boolean

  • Return true if this node is a direct or indirect parent of other.

    +
  • Return true if this node is the currently active tree node.

    +

    Returns boolean

  • Return true if this node is a direct subnode of other.

    +
  • Return true if this node's refKey is used by at least one other node.

    -

    Returns boolean

  • Return true if this node's title spans all columns, i.e. the node has no +

  • Return true if this node's refKey is used by at least one other node.

    +

    Returns boolean

  • Return true if this node's title spans all columns, i.e. the node has no grid cells.

    -

    Returns boolean

  • Return true if this node is a direct or indirect subnode of other.

    +

    Returns boolean

  • Return true if this node is currently in edit-title mode.

    +
  • Return true if this node has children, i.e. the node is generally expandable. +

    Returns boolean

  • Return true if this node has children, i.e. the node is generally expandable. If andCollapsed is set, we also check if this node is collapsed, i.e. an expand operation is currently possible.

    -

    Parameters

    • andCollapsed: boolean = false

    Returns boolean

  • Return true if this node is currently expanded.

    -

    Returns boolean

  • Return true if this node is the first node of its parent's children.

    -

    Returns boolean

  • Return true if this node is the last node of its parent's children.

    -

    Returns boolean

  • Return true if this node is lazy (even if data was already loaded)

    -

    Returns boolean

  • Return true if node is lazy and loaded. For non-lazy nodes always return true.

    -

    Returns boolean

  • Return true if node is currently loading, i.e. a GET request is pending.

    -

    Returns boolean

  • [ext-filter] Return true if this node is matched by current filter (or no filter is active).

    -

    Returns boolean

  • Return true if this node is a temporarily generated status node of type 'paging'.

    -

    Returns boolean

  • Return true if this node is a direct parent of other.

    +

    Parameters

    • andCollapsed: boolean = false

    Returns boolean

  • Return true if this node is currently expanded.

    +

    Returns boolean

  • Return true if this node is the first node of its parent's children.

    +

    Returns boolean

  • Return true if this node is the last node of its parent's children.

    +

    Returns boolean

  • Return true if this node is lazy (even if data was already loaded)

    +

    Returns boolean

  • Return true if node is lazy and loaded. For non-lazy nodes always return true.

    +

    Returns boolean

  • Return true if node is currently loading, i.e. a GET request is pending.

    +

    Returns boolean

  • [ext-filter] Return true if this node is matched by current filter (or no filter is active).

    +

    Returns boolean

  • Return true if this node is a temporarily generated status node of type 'paging'.

    +

    Returns boolean

  • (experimental) Return true if this node is partially loaded.

    -

    Returns boolean

  • Return true if this node is partially selected (tri-state).

    -

    Returns boolean

  • Return true if this node has DOM representaion, i.e. is displayed in the viewport.

    -

    Returns boolean

  • Return true if this node has DOM representaion, i.e. is displayed in the viewport.

    -

    Returns boolean

  • Return true if this node is the (invisible) system root node.

    +
  • (experimental) Return true if this node is partially loaded.

    +

    Returns boolean

  • Return true if this node is partially selected (tri-state).

    +

    Returns boolean

  • Return true if this node has DOM representaion, i.e. is displayed in the viewport.

    +

    Returns boolean

  • Return true if this node has DOM representaion, i.e. is displayed in the viewport.

    +

    Returns boolean

  • Return true if this node is a temporarily generated system node like 'loading', 'paging', or 'error' (node.statusNodeType contains the type).

    -

    Returns boolean

  • Return true if this a top level node, i.e. a direct child of the (invisible) system root node.

    -

    Returns boolean

  • Return true if node is marked lazy but not yet loaded. +

    Returns boolean

  • Return true if this a top level node, i.e. a direct child of the (invisible) system root node.

    +

    Returns boolean

  • Return true if node is marked lazy but not yet loaded. For non-lazy nodes always return false.

    -

    Returns boolean

  • Return true if all parent nodes are expanded. Note: this does not check +

    Returns boolean

  • Return true if all parent nodes are expanded. Note: this does not check whether the node is scrolled into the visible part of the screen or viewport.

    -

    Returns boolean

  • Download data from the cloud, then call .update().

    -

    Parameters

    Returns Promise<void>

  • Load content of a lazy node. +

    Returns boolean

  • Download data from the cloud, then call .update().

    +

    Parameters

    Returns Promise<void>

  • Load content of a lazy node. If the node is already loaded, nothing happens.

    Parameters

    • Optional forceReload: boolean = false

      If true, reload even if already loaded.

      -

    Returns Promise<void>

  • Write to console.log with node name as prefix if opts.debugLevel >= 4.

    +

Returns Promise<void>

  • Write to console.debug with node name as prefix if opts.debugLevel >= 4 +

  • Write to console.debug with node name as prefix if opts.debugLevel >= 4 and browser console level includes debug/verbose messages.

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.error with node name as prefix if opts.debugLevel >= 1.

    -

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.info with node name as prefix if opts.debugLevel >= 3.

    -

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.warn with node name as prefix if opts.debugLevel >= 2.

    -

    Parameters

    • Rest ...args: any[]

    Returns void

  • Expand all parents and optionally scroll into visible area as neccessary. +

  • Write to console.error with node name as prefix if opts.debugLevel >= 1.

    +

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.info with node name as prefix if opts.debugLevel >= 3.

    +

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.warn with node name as prefix if opts.debugLevel >= 2.

    +

    Parameters

    • Rest ...args: any[]

    Returns void

  • Expand all parents and optionally scroll into visible area as neccessary. Promise is resolved, when lazy loading and animations are done.

    Parameters

    • Optional options: MakeVisibleOptions

      passed to setExpanded(). Defaults to {noAnimation: false, noEvents: false, scrollIntoView: true}

      -

    Returns Promise<unknown>

  • Set focus relative to this node and optionally activate.

    +

Returns Promise<unknown>

  • Set focus relative to this node and optionally activate.

    'left' collapses the node if it is expanded, or move to the parent otherwise. 'right' expands the node if it is collapsed, or move to the first @@ -316,40 +316,40 @@

    Parameters

    • where: string

      'down', 'first', 'last', 'left', 'parent', 'right', or 'up'. (Alternatively the event.key that would normally trigger this move, e.g. ArrowLeft = 'left'.

      -
    • Optional options: NavigateOptions

    Returns Promise<void | WunderbaumNode>

  • Delete this node and all descendants.

    -

    Returns void

  • Remove all descendants of this node.

    -

    Returns void

  • Remove all HTML markup from the DOM.

    -

    Returns void

  • Remove all children, collapse, and set the lazy-flag, so that the lazyLoad +

  • Optional options: NavigateOptions

Returns Promise<void | WunderbaumNode>

  • Delete this node and all descendants.

    +

    Returns void

  • Remove all descendants of this node.

    +

    Returns void

  • Remove all HTML markup from the DOM.

    +

    Returns void

  • Remove all children, collapse, and set the lazy-flag, so that the lazyLoad event is triggered on next expand.

    -

    Returns void

  • Renumber nodes _nativeIndex. This is useful to allow to restore the +

    Returns void

  • Renumber nodes _nativeIndex. This is useful to allow to restore the order after sorting a column. This method is automatically called after loading new child nodes.

    Parameters

    Returns void

    Since

    0.11.0

    -
  • Activate this node, deactivate previous, send events, activate column and +

  • Activate this node, deactivate previous, send events, activate column and scroll into viewport.

    -

    Parameters

    Returns Promise<void>

  • Add/remove one or more classes to <div class='wb-row'>.

    +

    Parameters

    Returns Promise<void>

  • Add/remove one or more classes to <div class='wb-row'>.

    This also maintains node.classes, so the class will survive a re-render.

    Parameters

    • className: string | string[] | Set<string>

      one or more class names. Multiple classes can be passed as space-separated string, array of strings, or set of strings.

      -
    • flag: boolean = true

    Returns void

  • Expand or collapse this node.

    -

    Parameters

    Returns Promise<void>

  • Set keyboard focus here.

    +
  • flag: boolean = true

Returns void

  • Expand or collapse this node.

    +

    Parameters

    Returns Promise<void>

  • Set a new icon path or class.

    -

    Parameters

    • icon: string

    Returns void

  • Change node's key and/or refKey.

    -

    Parameters

    • key: null | string
    • refKey: null | string

    Returns void

  • Rename this node.

    -

    Parameters

    • title: string

    Returns void

  • Convenience method to implement column sorting.

    +
  • Set a new icon path or class.

    +

    Parameters

    • icon: string

    Returns void

  • Change node's key and/or refKey.

    +

    Parameters

    • key: null | string
    • refKey: null | string

    Returns void

  • Rename this node.

    +

    Parameters

    • title: string

    Returns void

  • Sort child list by title or custom criteria.

    +
  • Sort child list by title or custom criteria.

    Parameters

    • cmp: null | SortCallback = nodeTitleSorter

      custom compare function(a, b) that returns -1, 0, or 1 (defaults to sorting by title).

    • deep: boolean = false

      pass true to sort all descendant nodes recursively

      -

    Returns void

  • Start editing this node's title.

    -

    Returns void

  • Convert node (or whole branch) into a plain object.

    +

Returns void

  • Start editing this node's title.

    +

    Returns void

  • Convert node (or whole branch) into a plain object.

    The result is compatible with node.addChildren().

    Parameters

    • recursive: boolean = false

      include child nodes

    • Optional callback: NodeToDictCallback

      is called for every node, in order to allow @@ -357,20 +357,20 @@ Return false to ignore this node or "skip" to include this node without its children.

    Returns WbNodeData

  • Internal

    Return readable string representation for this instance.

    -

    Returns string

  • Trigger modifyChild event on node.parent(!).

    +
  • Internal

    Return readable string representation for this instance.

    +

    Returns string

  • Trigger modifyChild event on node.parent(!).

    Parameters

    • operation: string

      Type of change: 'add', 'remove', 'rename', 'move', 'data', ...

      -
    • Optional extra: any

    Returns void

  • Trigger modifyChild event on a parent to signal that a child was modified.

    +
  • Optional extra: any

Returns void

  • Trigger modifyChild event on a parent to signal that a child was modified.

    Parameters

    • operation: string

      Type of change: 'add', 'remove', 'rename', 'move', 'data', ...

      -
    • child: null | WunderbaumNode
    • Optional extra: any

    Returns void

  • Trigger a repaint, typically after a status or data change.

    +
  • child: null | WunderbaumNode
  • Optional extra: any

Returns void

  • Trigger a repaint, typically after a status or data change.

    change defaults to 'data', which handles modifcations of title, icon, and column content. It can be reduced to 'ChangeType.status' if only active/focus/selected state has changed.

    -

    This method will eventually call () with +

    This method will eventually call WunderbaumNode._render with default options, but may be more consistent with the tree's -() API.

    -

    Parameters

    Returns void

  • Call callback(node) for all descendant nodes in hierarchical order (depth-first, pre-order).

    Stop iteration, if fn() returns false. Skip current branch, if fn() returns "skip".
    Return false if iteration was stopped.

    @@ -378,14 +378,14 @@ Return false to stop iteration, return "skip" to skip this node and its children only.

  • includeSelf: boolean = false

Returns NodeVisitResponse

See

IterableIterator, Wunderbaum.visit.

-
  • Call fn(node) for all parent nodes, bottom-up, including invisible system root.
    +

  • Call fn(node) for all parent nodes, bottom-up, including invisible system root.
    Stop iteration, if callback() returns false.
    Return false if iteration was stopped.

    Parameters

    • callback: ((node) => boolean | void)

      the callback function. Return false to stop iteration

      -
        • (node): boolean | void
        • Parameters

          Returns boolean | void

    • includeSelf: boolean = false

    Returns boolean

  • Call fn(node) for all sibling nodes.
    +

      • (node): boolean | void
      • Parameters

        Returns boolean | void

  • includeSelf: boolean = false

Returns boolean

  • Call fn(node) for all sibling nodes.
    Stop iteration, if fn() returns false.
    Return false if iteration was stopped.

    Parameters

    • callback: ((node) => boolean | void)

      the callback function. Return false to stop iteration.

        • (node): boolean | void
        • Parameters

          Returns boolean | void

    • includeSelf: boolean = false

      include this node in the iteration.

      -

    Returns boolean

\ No newline at end of file +

Returns boolean

\ No newline at end of file diff --git a/docs/api/classes/wunderbaum.Wunderbaum.html b/docs/api/classes/wunderbaum.Wunderbaum.html index 819d4e3..4575a11 100644 --- a/docs/api/classes/wunderbaum.Wunderbaum.html +++ b/docs/api/classes/wunderbaum.Wunderbaum.html @@ -1,6 +1,6 @@ -Wunderbaum | wunderbaum - v0.10.2-0

A persistent plain object or array.

+Wunderbaum | wunderbaum - v0.11.0

A persistent plain object or array.

See also WunderbaumOptions.

-

Constructors

Constructors

Properties

Constructors

Properties

_cellNavMode: boolean = false
_util: util = util

Expose some useful methods of the util.ts module as tree._util.

-
activeColIdx: number = 0

Use setColumn()/getActiveColElem() to access.

-

Show/hide a checkbox or radiobutton.

-
columns: ColumnDefinitionList = []

List of column definitions.

-
data: {
    [key: string]: any;
} = {}

Contains additional data that was sent as response to an Ajax source load request.

-

Type declaration

  • [key: string]: any
element: HTMLDivElement

The div container element that was passed to the constructor.

-
filterMode: FilterModeType = null

Filter options (used as defaults for calls to Wunderbaum.filterNodes )

-
headerElement: HTMLDivElement

The div.wb-header element if any.

-

Show/hide a node icon.

-
iconTooltip?: DynamicStringOption

Show/hide a tooltip for the node icon.

-
id: string

Unique tree ID as passed to constructor. Defaults to "wb_SEQUENCE".

-
lastQuicksearchTerm: string = ""
lastQuicksearchTime: number = 0
listContainerElement: HTMLDivElement

The div.wb-list-container element that contains the nodeListElement.

-
nodeListElement: HTMLDivElement

The div.wb-node-list element that contains all visible div.wb-row child elements.

-

Merged options from constructor args and tree- and extension defaults.

-
ready: Promise<any>

A Promise that is resolved when the tree was initialized (similar to init(e) event).

-

The invisible root node, that holds all visible top level nodes.

-

Show/hide a tooltip.

-

Shared properties, referenced by node.type.

-
unselectable?: DynamicBoolOption

Define a node checkbox as readonly.

-
util: util = util

Expose some useful methods of the util.ts module as Wunderbaum.util.

-
version: string = "@VERSION"

Wunderbaum release version number "MAJOR.MINOR.PATCH".

-

Accessors

  • get activeNode(): null | WunderbaumNode
  • Currently active node if any. +

Constructors

Properties

_cellNavMode: boolean = false
_util: util = util

Expose some useful methods of the util.ts module as tree._util.

+
activeColIdx: number = 0

Use setColumn()/getActiveColElem() to access.

+

Show/hide a checkbox or radiobutton.

+
columns: ColumnDefinitionList = []

List of column definitions.

+
data: {
    [key: string]: any;
} = {}

Contains additional data that was sent as response to an Ajax source load request.

+

Type declaration

  • [key: string]: any
element: HTMLDivElement

The div container element that was passed to the constructor.

+
filterMode: FilterModeType = null

Filter options (used as defaults for calls to Wunderbaum.filterNodes )

+
headerElement: HTMLDivElement

The div.wb-header element if any.

+

Show/hide a node icon.

+
iconTooltip?: DynamicStringOption

Show/hide a tooltip for the node icon.

+
id: string

Unique tree ID as passed to constructor. Defaults to "wb_SEQUENCE".

+
lastQuicksearchTerm: string = ""
lastQuicksearchTime: number = 0
listContainerElement: HTMLDivElement

The div.wb-list-container element that contains the nodeListElement.

+
nodeListElement: HTMLDivElement

The div.wb-node-list element that contains all visible div.wb-row child elements.

+

Merged options from constructor args and tree- and extension defaults.

+
ready: Promise<any>

A Promise that is resolved when the tree was initialized (similar to init(e) event).

+

The invisible root node, that holds all visible top level nodes.

+

Show/hide a tooltip.

+

Shared properties, referenced by node.type.

+
unselectable?: DynamicBoolOption

Define a node checkbox as readonly.

+
util: util = util

Expose some useful methods of the util.ts module as Wunderbaum.util.

+
version: string = "@VERSION"

Wunderbaum release version number "MAJOR.MINOR.PATCH".

+

Accessors

  • get iconMap(): {
        [key: string]: string;
    }
  • Return the icon-function -> icon-definition mapping.

    -

    Returns {
        [key: string]: string;
    }

    • [key: string]: string

Methods

  • get iconMap(): {
        [key: string]: string;
    }
  • Return the icon-function -> icon-definition mapping.

    +

    Returns {
        [key: string]: string;
    }

    • [key: string]: string

Methods

  • Call event handler if defined in tree or tree.EXTENSION options.

    Example:

    tree._callEvent("edit.beforeEdit", {foo: 42})
     
    -

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Call tree method or extension method if defined.

    +

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Call tree method or extension method if defined.

    Example:

    tree._callMethod("edit.startEdit", "arg1", "arg2")
     
    -

    Parameters

    • name: string
    • Rest ...args: any[]

    Returns any

  • Update column headers and column width. +

    Parameters

    • name: string
    • Rest ...args: any[]

    Returns any

  • Update column headers and column width. Return true if at least one column width changed.

    -

    Returns boolean

  • Return the number of nodes in the data model.

    Parameters

    • visible: boolean = false

      if true, nodes that are hidden due to collapsed parents are ignored.

      -

    Returns number

  • Return the number of nodes that match the current filter.

    +

Returns number

  • Clear nodes and markup and detach events and observers.

    This method may be useful to free up resources before re-creating a tree on an existing div, for example in unittest suites. Note that this Wunderbaum instance becomes unusable afterwards.

    -

    Returns void

  • Disable render requests during operations that would trigger many updates.

    +

    Returns void

  • Disable render requests during operations that would trigger many updates.

    try {
    tree.enableUpdate(false);
    // ... (long running operation that would trigger many updates)
    foo();
    // ... NOTE: make sure that async operations have finished, e.g.
    await foo();
    } finally {
    tree.enableUpdate(true);
    }
    -

    Parameters

    • flag: boolean

    Returns void

  • Recursively expand all expandable nodes (triggers lazy load if needed).

    -

    Parameters

    Returns Promise<void>

  • Dim or hide whole branches.

    +

    Parameters

    • flag: boolean

    Returns void

  • Recursively expand all expandable nodes (triggers lazy load if needed).

    +

    Parameters

    Returns Promise<void>

  • Dim or hide unmatched nodes.

    Parameters

    • filter: string | RegExp | NodeFilterCallback

      a string to match against node titles, or a callback function.

    • options: FilterNodesOptions

      filter options. Defaults to the tree.options.filter settings.

    Returns number

    the number of nodes that match the filter.

    Example

    tree.filterNodes("foo", {mode: 'dim', fuzzy: true});
    // or pass a callback
    tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'});
    -
  • Find a node relative to another node.

    Parameters

    • node: WunderbaumNode
    • where: string

      'down', 'first', 'last', 'left', 'parent', 'right', or 'up'. (Alternatively the keyCode that would normally trigger this move, e.g. $.ui.keyCode.LEFT = 'left'.

    • includeHidden: boolean = false

      Not yet implemented

      -

    Returns undefined | null | WunderbaumNode

  • Return multiline string representation of the node hierarchy. +

Returns undefined | null | WunderbaumNode

  • Return multiline string representation of the node hierarchy. Mostly useful for debugging.

    Example:

    console.info(tree.format((n)=>n.title));
    @@ -214,9 +214,9 @@ 

    Since

    0.9.0

    Playground
    ├─ Books
    | ├─ Art of War
    | ╰─ Don Quixote
    ├─ Music
    ...

    Parameters

    Returns string

  • Return the active cell (span.wb-col) of the currently active node or null.

    -

    Returns null | HTMLSpanElement

  • Return the active cell (span.wb-col) of the currently active node or null.

    +

    Returns null | HTMLSpanElement

  • Return tree.option.NAME (also resolving if this is a callback).

    +
  • Return tree.option.NAME (also resolving if this is a callback).

    See also WunderbaumNode.getOption() to evaluate node.NAME setting and tree.types[node.type].NAME.

    Parameters

    • name: string

      option name (use dot notation to access extension option, e.g. filter.mode)

      -
    • Optional defaultValue: any

    Returns any

  • Return an array of selected nodes.

    +
  • Optional defaultValue: any

Returns any

  • Return an array of selected nodes.

    Parameters

    • stopOnParents: boolean = false

      only return the topmost selected node (useful with selectMode 'hier')

      -

    Returns WunderbaumNode[]

  • Return true if the tree (or one of its nodes) has the input focus.

    -

    Returns boolean

  • Return true if the tree displays a header. Grids have a header unless the +

Returns WunderbaumNode[]

  • Return true if the tree (or one of its nodes) has the input focus.

    +

    Returns boolean

  • Return true if the tree displays a header. Grids have a header unless the header option is set to false. Plain trees have a header if the header option is a string or true.

    -

    Returns boolean

  • Return true if cell-navigation mode is active.

    -

    Returns boolean

  • Return true if any node title or grid cell is currently beeing edited.

    +

    Returns boolean

  • Return true if cell-navigation mode is active.

    +

    Returns boolean

  • Return true if any node is currently in edit-title mode.

    +

    Returns boolean

  • Return true if a filter is currently applied.

    -

    Returns boolean

  • Return true if tree has more than one column, i.e. has additional data columns.

    -

    Returns boolean

  • Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.

    -

    Returns boolean

  • Return true if row-navigation mode is active.

    -

    Returns boolean

  • Reload the tree with a new source.

    +

    Returns boolean

  • Return true if a filter is currently applied.

    +

    Returns boolean

  • Return true if tree has more than one column, i.e. has additional data columns.

    +

    Returns boolean

  • Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.

    +

    Returns boolean

  • Return true if row-navigation mode is active.

    +

    Returns boolean

  • Reload the tree with a new source.

    Previous data is cleared. Note that also column- and type defintions may be passed with the source object.

    -

    Parameters

    Returns Promise<void>

  • Write to console.log with tree name as prefix if opts.debugLevel >= 4.

    +

    Parameters

    Returns Promise<void>

  • Write to console.debug with tree name as prefix if opts.debugLevel >= 4. +

  • Write to console.debug with tree name as prefix if opts.debugLevel >= 4. and browser console level includes debug/verbose messages.

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.error with tree name as prefix.

    -

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.info with tree name as prefix if opts.debugLevel >= 3.

    -

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.warn with tree name as prefix with if opts.debugLevel >= 2.

    -

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.error with tree name as prefix.

    +

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.info with tree name as prefix if opts.debugLevel >= 3.

    +

    Parameters

    • Rest ...args: any[]

    Returns void

  • Write to console.warn with tree name as prefix with if opts.debugLevel >= 2.

    +

    Parameters

    • Rest ...args: any[]

    Returns void

  • Reset column widths to default.

    Returns void

    Since

    0.10.0

    -
  • Run code, but defer rendering of viewport until done.

    +
  • Run code, but defer rendering of viewport until done.

    tree.runWithDeferredUpdate(() => {
    return someFuncThatWouldUpdateManyNodes();
    });
    -

    Parameters

    • func: (() => any)
        • (): any
        • Returns any

    • hint: null = null

    Returns any

  • Make sure that this node is vertically scrolled into the viewport.

    +

    Parameters

    • func: (() => any)
        • (): any
        • Returns any

    • hint: null = null

    Returns any

  • Make sure that this node is vertically scrolled into the viewport.

    Nodes that are above the visible area become the top row, nodes that are below the viewport become the bottom row.

    -

    Parameters

    Returns void

  • Set or remove keyboard focus to the tree container.

    -

    Parameters

    Returns void

  • Set the tree's navigation mode.

    -

    Parameters

    • flag: boolean = true

    Returns void

  • Set or remove keyboard focus to the tree container.

    +

    Parameters

    Returns void

  • Set the tree's navigation mode.

    +

    Parameters

    • flag: boolean = true

    Returns void

  • Set column #colIdx to 'active'.

    This higlights the column header and -cells by adding the wb-active class to all grid cells of the active column.
    Available in cell-nav mode only.

    If options.edit is true, the embedded input element is focused, or if colIdx is 0, the node title is put into edit mode.

    -

    Parameters

    Returns void

  • Disable mouse and keyboard interaction (return prev. state).

    -

    Parameters

    • flag: boolean = true

    Returns boolean

  • Set or remove keyboard focus to the tree container.

    -

    Parameters

    • flag: boolean = true

    Returns void

  • Set the tree's navigation mode option.

    -

    Parameters

    Returns void

  • Disable mouse and keyboard interaction (return prev. state).

    +

    Parameters

    • flag: boolean = true

    Returns boolean

  • Set or remove keyboard focus to the tree container.

    +

    Parameters

    • flag: boolean = true

    Returns void

  • Set the tree's navigation mode option.

    +

    Parameters

    Returns void

  • Set tree option. Use dot notation to set plugin option, e.g. "filter.mode".

    -

    Parameters

    • name: string
    • value: any

    Returns void

  • Add or redefine node type definitions.

    -

    Parameters

    • types: any
    • replace: boolean = true

    Returns void

  • Convenience method to implement column sorting.

    +

    Parameters

    • name: string
    • value: any

    Returns void

  • Add or redefine node type definitions.

    +

    Parameters

    • types: any
    • replace: boolean = true

    Returns void

  • Sort nodes list by title or custom criteria.

    +
  • Sort nodes list by title or custom criteria.

    Parameters

    • cmp: null | SortCallback = nodeTitleSorter

      custom compare function(a, b) that returns -1, 0, or 1 (defaults to sorting by title).

    • deep: boolean = false

      pass true to sort all descendant nodes recursively

      -

    Returns void

  • Convert tree to an array of plain objects.

    +

Returns void

  • Internal

    Return readable string representation for this instance.

    -

    Returns string

  • Schedule an update request to reflect a tree change. +

  • Internal

    Return readable string representation for this instance.

    +

    Returns string

  • Schedule an update request to reflect a tree change. The render operation is async and debounced unless the immediate option is set.

    -

    Use () if only a single node has changed, -or ()) to pass special options.

    -

    Parameters

    Returns void

  • Update a row to reflect a single node's modification.

    -

    Parameters

    Returns void

    See

    (), ()

    -
  • Render pending changes that were scheduled using WunderbaumNode.update if any.

    This is hardly ever neccessary, since we normally either

    • call update(ChangeType.TYPE) (async, throttled), or
    • @@ -322,24 +322,24 @@

      Since

      0.11.0

    updatePendingModifications() will only force immediate execution of pending async changes if any.

    -

    Returns void

  • Call callback(node) for all nodes in vertical order, top down (or bottom up).

    +
  • Call callback(node) for all nodes in vertical order, top down (or bottom up).

    Note that this considers expansion state, i.e. filtered nodes and children of collapsed nodes are skipped, unless includeHidden is set.

    Stop iteration if callback() returns false.
    Return false if iteration was stopped.

    Parameters

    Returns boolean

    false if iteration was canceled

    -
  • Return a {node: WunderbaumNode, region: TYPE} object for a mouse event.

    Parameters

    • event: Event

      Mouse event, e.g. click, ...

    Returns WbEventInfo

    Return a {node: WunderbaumNode, region: TYPE} object TYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined

    -
  • Return a Wunderbaum instance, from element, id, index, or event.

    getTree();         // Get first Wunderbaum instance on page
    getTree(1); // Get second Wunderbaum instance on page
    getTree(event); // Get tree for this mouse- or keyboard event
    getTree("foo"); // Get tree for this `tree.options.id`
    getTree("#tree"); // Get tree for first matching element selector
    -

    Parameters

    Returns null | Wunderbaum

\ No newline at end of file +

Parameters

Returns null | Wunderbaum

\ No newline at end of file diff --git a/docs/api/enums/types.ChangeType.html b/docs/api/enums/types.ChangeType.html index 518ddf6..848f344 100644 --- a/docs/api/enums/types.ChangeType.html +++ b/docs/api/enums/types.ChangeType.html @@ -1,5 +1,5 @@ -ChangeType | wunderbaum - v0.10.2-0

Enumeration ChangeType

Possible values for () and ().

-

Enumeration Members

any +ChangeType | wunderbaum - v0.11.0

Enumeration ChangeType

Possible values for WunderbaumNode.update and Wunderbaum.update.

+

Enumeration Members

Enumeration Members

any: "any"

Re-render the whole viewport, headers, and all rows.

-
colStructure: "colStructure"

The tree.columns definition has changed beyond simple width adjustments.

-
data: "data"

A node's title, icon, columns, or status have changed. Update the existing row markup.

-
resize: "resize"

The viewport/window was resized. Adjust layout attributes for all elements.

-
row: "row"

A node's definition has changed beyond status and data. Re-render the whole row's markup.

-
scroll: "scroll"

Vertical scroll event. Update the 'top' property of all rows.

-
status: "status"

A node's status has changed. Update current row's classes, to reflect active, selected, ...

-
structure: "structure"

Nodes have been added, removed, etc. Update markup.

-
\ No newline at end of file +
colStructure: "colStructure"

The tree.columns definition has changed beyond simple width adjustments.

+
data: "data"

A node's title, icon, columns, or status have changed. Update the existing row markup.

+
resize: "resize"

The viewport/window was resized. Adjust layout attributes for all elements.

+
row: "row"

A node's definition has changed beyond status and data. Re-render the whole row's markup.

+
scroll: "scroll"

Vertical scroll event. Update the 'top' property of all rows.

+
status: "status"

A node's status has changed. Update current row's classes, to reflect active, selected, ...

+
structure: "structure"

Nodes have been added, removed, etc. Update markup.

+
\ No newline at end of file diff --git a/docs/api/enums/types.NavModeEnum.html b/docs/api/enums/types.NavModeEnum.html index e6a73ff..a00cf61 100644 --- a/docs/api/enums/types.NavModeEnum.html +++ b/docs/api/enums/types.NavModeEnum.html @@ -1,6 +1,6 @@ -NavModeEnum | wunderbaum - v0.10.2-0

Enumeration NavModeEnum

Initial navigation mode and possible transition.

-

Enumeration Members

cell +NavModeEnum | wunderbaum - v0.11.0

Enumeration NavModeEnum

Initial navigation mode and possible transition.

+

Enumeration Members

Enumeration Members

cell: "cell"
row: "row"
startCell: "startCell"
startRow: "startRow"
\ No newline at end of file +

Enumeration Members

cell: "cell"
row: "row"
startCell: "startCell"
startRow: "startRow"
\ No newline at end of file diff --git a/docs/api/enums/types.NodeRegion.html b/docs/api/enums/types.NodeRegion.html index db319ae..f6f660f 100644 --- a/docs/api/enums/types.NodeRegion.html +++ b/docs/api/enums/types.NodeRegion.html @@ -1,9 +1,9 @@ -NodeRegion | wunderbaum - v0.10.2-0

Enumeration NodeRegion

Define the subregion of a node, where an event occurred.

-

Enumeration Members

checkbox +NodeRegion | wunderbaum - v0.11.0

Enumeration NodeRegion

Define the subregion of a node, where an event occurred.

+

Enumeration Members

checkbox: "checkbox"
column: "column"
expander: "expander"
icon: "icon"
prefix: "prefix"
title: "title"
unknown: ""
\ No newline at end of file +

Enumeration Members

checkbox: "checkbox"
column: "column"
expander: "expander"
icon: "icon"
prefix: "prefix"
title: "title"
unknown: ""
\ No newline at end of file diff --git a/docs/api/enums/types.NodeStatusType.html b/docs/api/enums/types.NodeStatusType.html index 335fea1..e70275a 100644 --- a/docs/api/enums/types.NodeStatusType.html +++ b/docs/api/enums/types.NodeStatusType.html @@ -1,7 +1,7 @@ -NodeStatusType | wunderbaum - v0.10.2-0

Enumeration NodeStatusType

Possible values for ().

-

Enumeration Members

error +NodeStatusType | wunderbaum - v0.11.0

Enumeration NodeStatusType

Possible values for WunderbaumNode.setStatus.

+

Enumeration Members

Enumeration Members

error: "error"
loading: "loading"
noData: "noData"
ok: "ok"
paging: "paging"
\ No newline at end of file +

Enumeration Members

error: "error"
loading: "loading"
noData: "noData"
ok: "ok"
paging: "paging"
\ No newline at end of file diff --git a/docs/api/enums/types.RenderFlag.html b/docs/api/enums/types.RenderFlag.html index c36377a..1b86a82 100644 --- a/docs/api/enums/types.RenderFlag.html +++ b/docs/api/enums/types.RenderFlag.html @@ -1,5 +1,5 @@ -RenderFlag | wunderbaum - v0.10.2-0

Enumeration RenderFlag

Enumeration Members

clearMarkup +RenderFlag | wunderbaum - v0.11.0

Enumeration RenderFlag

Enumeration Members

Enumeration Members

clearMarkup: "clearMarkup"
header: "header"
redraw: "redraw"
scroll: "scroll"
\ No newline at end of file +

Enumeration Members

clearMarkup: "clearMarkup"
header: "header"
redraw: "redraw"
scroll: "scroll"
\ No newline at end of file diff --git a/docs/api/functions/common.decompressSourceData.html b/docs/api/functions/common.decompressSourceData.html index bc43ecb..e997fcb 100644 --- a/docs/api/functions/common.decompressSourceData.html +++ b/docs/api/functions/common.decompressSourceData.html @@ -1,4 +1,4 @@ -decompressSourceData | wunderbaum - v0.10.2-0

Function decompressSourceData

  • Decompresses the source data by

    +decompressSourceData | wunderbaum - v0.11.0

    Function decompressSourceData

    • Decompresses the source data by

      • converting from 'flat' to 'nested' format
      • expanding short alias names to long names (if defined in _keyMap)
      • @@ -6,4 +6,4 @@

      Parameters

      Returns void

      void

      -
    \ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/functions/common.makeNodeTitleMatcher.html b/docs/api/functions/common.makeNodeTitleMatcher.html index fa72660..7f4884f 100644 --- a/docs/api/functions/common.makeNodeTitleMatcher.html +++ b/docs/api/functions/common.makeNodeTitleMatcher.html @@ -1,4 +1,4 @@ -makeNodeTitleMatcher | wunderbaum - v0.10.2-0

Function makeNodeTitleMatcher

\ No newline at end of file diff --git a/docs/api/functions/common.makeNodeTitleStartMatcher.html b/docs/api/functions/common.makeNodeTitleStartMatcher.html index 8542d9c..000bd1e 100644 --- a/docs/api/functions/common.makeNodeTitleStartMatcher.html +++ b/docs/api/functions/common.makeNodeTitleStartMatcher.html @@ -1,2 +1,2 @@ -makeNodeTitleStartMatcher | wunderbaum - v0.10.2-0

Function makeNodeTitleStartMatcher

\ No newline at end of file +makeNodeTitleStartMatcher | wunderbaum - v0.11.0

Function makeNodeTitleStartMatcher

\ No newline at end of file diff --git a/docs/api/functions/common.nodeTitleSorter.html b/docs/api/functions/common.nodeTitleSorter.html index 0043b0d..04c5ac8 100644 --- a/docs/api/functions/common.nodeTitleSorter.html +++ b/docs/api/functions/common.nodeTitleSorter.html @@ -1,2 +1,2 @@ -nodeTitleSorter | wunderbaum - v0.10.2-0

Function nodeTitleSorter

\ No newline at end of file +nodeTitleSorter | wunderbaum - v0.11.0

Function nodeTitleSorter

\ No newline at end of file diff --git a/docs/api/functions/util.adaptiveThrottle.html b/docs/api/functions/util.adaptiveThrottle.html index 24ba4b2..c832643 100644 --- a/docs/api/functions/util.adaptiveThrottle.html +++ b/docs/api/functions/util.adaptiveThrottle.html @@ -1,8 +1,8 @@ -adaptiveThrottle | wunderbaum - v0.10.2-0

Function adaptiveThrottle

  • Return a function that can be called instead of callback, but guarantees +adaptiveThrottle | wunderbaum - v0.11.0

    Function adaptiveThrottle

    • Return a function that can be called instead of callback, but guarantees a limited execution rate. The execution rate is calculated based on the runtime duration of the previous call. Example:

      throttledFoo = util.adaptiveThrottle(foo.bind(this), {});
      throttledFoo();
      throttledFoo();
      -

      Parameters

      • this: unknown
      • callback: ((...args) => void)
          • (...args): void
          • Parameters

            • Rest ...args: any[]

            Returns void

      • options: object

      Returns DebouncedFunction<((...args) => void)>

    \ No newline at end of file +

    Parameters

    • this: unknown
    • callback: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • options: object

    Returns DebouncedFunction<((...args) => void)>

\ No newline at end of file diff --git a/docs/api/functions/util.assert.html b/docs/api/functions/util.assert.html index 9b89734..90b2e23 100644 --- a/docs/api/functions/util.assert.html +++ b/docs/api/functions/util.assert.html @@ -1,2 +1,2 @@ -assert | wunderbaum - v0.10.2-0

Function assert

  • Throw an Error if cond is falsey.

    -

    Parameters

    • cond: any
    • msg: string

    Returns void

\ No newline at end of file +assert | wunderbaum - v0.11.0

Function assert

  • Throw an Error if cond is falsey.

    +

    Parameters

    • cond: any
    • msg: string

    Returns void

\ No newline at end of file diff --git a/docs/api/functions/util.debounce.html b/docs/api/functions/util.debounce.html index d4ffd8f..0392df5 100644 --- a/docs/api/functions/util.debounce.html +++ b/docs/api/functions/util.debounce.html @@ -1,4 +1,4 @@ -debounce | wunderbaum - v0.10.2-0

Function debounce

  • Creates a debounced function that delays invoking func until after wait +debounce | wunderbaum - v0.11.0

    Function debounce

    • Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked, or until the next browser frame is drawn. The debounced function comes with a cancel method to cancel delayed func invocations and a @@ -25,4 +25,4 @@

      Since

      0.1.0

      Example

      // Avoid costly calculations while the window size is in flux.
      jQuery(window).on('resize', debounce(calculateLayout, 150))

      // Invoke `sendMail` when clicked, debouncing subsequent calls.
      jQuery(element).on('click', debounce(sendMail, 300, {
      'leading': true,
      'trailing': false
      }))

      // Ensure `batchLog` is invoked once after 1 second of debounced calls.
      const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })
      const source = new EventSource('/stream')
      jQuery(source).on('message', debounced)

      // Cancel the trailing debounced invocation.
      jQuery(window).on('popstate', debounced.cancel)

      // Check for pending invocations.
      const status = debounced.pending() ? "Pending..." : "Ready"
      -
    \ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/functions/util.documentReady.html b/docs/api/functions/util.documentReady.html index e456283..9ad27b4 100644 --- a/docs/api/functions/util.documentReady.html +++ b/docs/api/functions/util.documentReady.html @@ -1,2 +1,2 @@ -documentReady | wunderbaum - v0.10.2-0

Function documentReady

  • Run callback when document was loaded.

    -

    Parameters

    • callback: (() => void)
        • (): void
        • Returns void

    Returns void

\ No newline at end of file +documentReady | wunderbaum - v0.11.0

Function documentReady

  • Run callback when document was loaded.

    +

    Parameters

    • callback: (() => void)
        • (): void
        • Returns void

    Returns void

\ No newline at end of file diff --git a/docs/api/functions/util.documentReadyPromise.html b/docs/api/functions/util.documentReadyPromise.html index 2340ffa..22bb312 100644 --- a/docs/api/functions/util.documentReadyPromise.html +++ b/docs/api/functions/util.documentReadyPromise.html @@ -1,2 +1,2 @@ -documentReadyPromise | wunderbaum - v0.10.2-0

Function documentReadyPromise

  • Resolve when document was loaded.

    -

    Returns Promise<void>

\ No newline at end of file +documentReadyPromise | wunderbaum - v0.11.0

Function documentReadyPromise

  • Resolve when document was loaded.

    +

    Returns Promise<void>

\ No newline at end of file diff --git a/docs/api/functions/util.each.html b/docs/api/functions/util.each.html index 68829b0..6ada1f2 100644 --- a/docs/api/functions/util.each.html +++ b/docs/api/functions/util.each.html @@ -1,6 +1,6 @@ -each | wunderbaum - v0.10.2-0

Function each

  • Iterate over Object properties or array elements.

    +each | wunderbaum - v0.11.0

    Function each

    • Iterate over Object properties or array elements.

      Parameters

      • obj: any

        Object, Array or null

      • callback: ((index, item) => boolean | void)

        called for every item. this also contains the item. Return false to stop the iteration.

        -
          • (index, item): boolean | void
          • Parameters

            • index: string | number
            • item: any

            Returns boolean | void

      Returns any

    \ No newline at end of file +
      • (index, item): boolean | void
      • Parameters

        • index: string | number
        • item: any

        Returns boolean | void

Returns any

\ No newline at end of file diff --git a/docs/api/functions/util.elemFromHtml.html b/docs/api/functions/util.elemFromHtml.html index 0f3b599..fd19018 100644 --- a/docs/api/functions/util.elemFromHtml.html +++ b/docs/api/functions/util.elemFromHtml.html @@ -1,2 +1,2 @@ -elemFromHtml | wunderbaum - v0.10.2-0

Function elemFromHtml

  • Create and return an unconnected HTMLElement from a HTML string.

    -

    Type Parameters

    • T = HTMLElement

    Parameters

    • html: string

    Returns T

\ No newline at end of file +elemFromHtml | wunderbaum - v0.11.0

Function elemFromHtml

  • Create and return an unconnected HTMLElement from a HTML string.

    +

    Type Parameters

    • T = HTMLElement

    Parameters

    • html: string

    Returns T

\ No newline at end of file diff --git a/docs/api/functions/util.elemFromSelector.html b/docs/api/functions/util.elemFromSelector.html index f34d27c..ff0a2b6 100644 --- a/docs/api/functions/util.elemFromSelector.html +++ b/docs/api/functions/util.elemFromSelector.html @@ -1,2 +1,2 @@ -elemFromSelector | wunderbaum - v0.10.2-0

Function elemFromSelector

  • Return a HtmlElement from selector or cast an existing element.

    -

    Type Parameters

    • T = HTMLElement

    Parameters

    • obj: string | T

    Returns T | null

\ No newline at end of file +elemFromSelector | wunderbaum - v0.11.0

Function elemFromSelector

  • Return a HtmlElement from selector or cast an existing element.

    +

    Type Parameters

    • T = HTMLElement

    Parameters

    • obj: string | T

    Returns T | null

\ No newline at end of file diff --git a/docs/api/functions/util.error.html b/docs/api/functions/util.error.html index fdb77a7..f54e431 100644 --- a/docs/api/functions/util.error.html +++ b/docs/api/functions/util.error.html @@ -1,2 +1,2 @@ -error | wunderbaum - v0.10.2-0

Function error

  • Shortcut for throw new Error(msg).

    -

    Parameters

    • msg: string

    Returns void

\ No newline at end of file +error | wunderbaum - v0.11.0

Function error

  • Shortcut for throw new Error(msg).

    +

    Parameters

    • msg: string

    Returns void

\ No newline at end of file diff --git a/docs/api/functions/util.escapeHtml.html b/docs/api/functions/util.escapeHtml.html index 1c1a6ff..94b52e7 100644 --- a/docs/api/functions/util.escapeHtml.html +++ b/docs/api/functions/util.escapeHtml.html @@ -1,2 +1,2 @@ -escapeHtml | wunderbaum - v0.10.2-0

Function escapeHtml

  • Convert <, >, &, ", ', and / to the equivalent entities.

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeHtml | wunderbaum - v0.11.0

Function escapeHtml

  • Convert <, >, &, ", ', and / to the equivalent entities.

    +

    Parameters

    • s: string

    Returns string

\ No newline at end of file diff --git a/docs/api/functions/util.escapeRegex.html b/docs/api/functions/util.escapeRegex.html index 6fec8eb..1ecb0d9 100644 --- a/docs/api/functions/util.escapeRegex.html +++ b/docs/api/functions/util.escapeRegex.html @@ -1,2 +1,2 @@ -escapeRegex | wunderbaum - v0.10.2-0

Function escapeRegex

  • Convert a regular expression string by escaping special characters (e.g. "$" -> "\$")

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeRegex | wunderbaum - v0.11.0

Function escapeRegex

  • Convert a regular expression string by escaping special characters (e.g. "$" -> "\$")

    +

    Parameters

    • s: string

    Returns string

\ No newline at end of file diff --git a/docs/api/functions/util.escapeTooltip.html b/docs/api/functions/util.escapeTooltip.html index d5b972d..c56d653 100644 --- a/docs/api/functions/util.escapeTooltip.html +++ b/docs/api/functions/util.escapeTooltip.html @@ -1,2 +1,2 @@ -escapeTooltip | wunderbaum - v0.10.2-0

Function escapeTooltip

  • Convert <, >, ", ', and / (but not &) to the equivalent entities.

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeTooltip | wunderbaum - v0.11.0

Function escapeTooltip

  • Convert <, >, ", ', and / (but not &) to the equivalent entities.

    +

    Parameters

    • s: string

    Returns string

\ No newline at end of file diff --git a/docs/api/functions/util.eventToString.html b/docs/api/functions/util.eventToString.html index 893f5f3..8b0d94b 100644 --- a/docs/api/functions/util.eventToString.html +++ b/docs/api/functions/util.eventToString.html @@ -1,8 +1,8 @@ -eventToString | wunderbaum - v0.10.2-0

Function eventToString

  • Return a canonical descriptive string for a keyboard or mouse event.

    +eventToString | wunderbaum - v0.11.0

    Function eventToString

    • Return a canonical descriptive string for a keyboard or mouse event.

      The result also contains a prefix for modifiers if any, for example "x", "F2", "Control+Home", or "Shift+clickright". This is especially useful in switch statements, to make sure that modifier keys are considered and handled correctly:

        const eventName = util.eventToString(e);
      switch (eventName) {
      case "+":
      case "Add":
      ...
      break;
      case "Enter":
      case "End":
      case "Control+End":
      case "Meta+ArrowDown":
      case "PageDown":
      ...
      break;
      }
      -

      Parameters

      • event: Event

      Returns string

    \ No newline at end of file +

    Parameters

    • event: Event

    Returns string

\ No newline at end of file diff --git a/docs/api/functions/util.extend.html b/docs/api/functions/util.extend.html index b3526f3..955d2e4 100644 --- a/docs/api/functions/util.extend.html +++ b/docs/api/functions/util.extend.html @@ -1,3 +1,3 @@ -extend | wunderbaum - v0.10.2-0

Function extend

  • Copy allproperties from one or more source objects to a target object.

    +extend | wunderbaum - v0.11.0

    Function extend

    • Copy allproperties from one or more source objects to a target object.

      Parameters

      • Rest ...args: any[]

      Returns any

      the modified target object.

      -
    \ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/functions/util.extractHtmlText.html b/docs/api/functions/util.extractHtmlText.html index 6c04148..4850d81 100644 --- a/docs/api/functions/util.extractHtmlText.html +++ b/docs/api/functions/util.extractHtmlText.html @@ -1,2 +1,2 @@ -extractHtmlText | wunderbaum - v0.10.2-0

Function extractHtmlText

  • TODO

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +extractHtmlText | wunderbaum - v0.11.0

Function extractHtmlText

  • TODO

    +

    Parameters

    • s: string

    Returns string

\ No newline at end of file diff --git a/docs/api/functions/util.getOption.html b/docs/api/functions/util.getOption.html index 946dea8..f36ab19 100644 --- a/docs/api/functions/util.getOption.html +++ b/docs/api/functions/util.getOption.html @@ -1,5 +1,5 @@ -getOption | wunderbaum - v0.10.2-0

Function getOption

  • Return opts.NAME if opts is valid and

    +getOption | wunderbaum - v0.11.0

    Function getOption

    • Return opts.NAME if opts is valid and

      Parameters

      • opts: any

        dict, object, or null

      • name: string

        option name (use dot notation to access extension option, e.g. filter.mode)

      • defaultValue: any = undefined

        returned when opts is not an object, or does not have a NAME property

        -

      Returns any

    \ No newline at end of file +

Returns any

\ No newline at end of file diff --git a/docs/api/functions/util.getValueFromElem.html b/docs/api/functions/util.getValueFromElem.html index 88941fa..78fa2bd 100644 --- a/docs/api/functions/util.getValueFromElem.html +++ b/docs/api/functions/util.getValueFromElem.html @@ -1,4 +1,4 @@ -getValueFromElem | wunderbaum - v0.10.2-0

Function getValueFromElem

  • Read the value from an HTML input element.

    +getValueFromElem | wunderbaum - v0.11.0

    Function getValueFromElem

    • Read the value from an HTML input element.

      If a <span class="wb-col"> is passed, the first child input is used. Depending on the target element type, value is interpreted accordingly. For example for a checkbox, a value of true, false, or null is returned if @@ -10,4 +10,4 @@

      Parameters

      • elem: HTMLElement

        <input> or <select> element. Also a parent span.wb-col is accepted.

      • coerce: boolean = false

        pass true to convert date/time inputs to Date.

      Returns any

      the value

      -
    \ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/functions/util.isArray.html b/docs/api/functions/util.isArray.html index aedfd2b..b08a65f 100644 --- a/docs/api/functions/util.isArray.html +++ b/docs/api/functions/util.isArray.html @@ -1,2 +1,2 @@ -isArray | wunderbaum - v0.10.2-0

Function isArray

  • Return true if obj is of type array.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isArray | wunderbaum - v0.11.0

Function isArray

  • Return true if obj is of type array.

    +

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file diff --git a/docs/api/functions/util.isEmptyObject.html b/docs/api/functions/util.isEmptyObject.html index 1fe36b9..8d1629b 100644 --- a/docs/api/functions/util.isEmptyObject.html +++ b/docs/api/functions/util.isEmptyObject.html @@ -1,2 +1,2 @@ -isEmptyObject | wunderbaum - v0.10.2-0

Function isEmptyObject

  • Return true if obj is of type Object and has no properties.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isEmptyObject | wunderbaum - v0.11.0

Function isEmptyObject

  • Return true if obj is of type Object and has no properties.

    +

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file diff --git a/docs/api/functions/util.isFunction.html b/docs/api/functions/util.isFunction.html index cb354fb..8342b0c 100644 --- a/docs/api/functions/util.isFunction.html +++ b/docs/api/functions/util.isFunction.html @@ -1,2 +1,2 @@ -isFunction | wunderbaum - v0.10.2-0

Function isFunction

  • Return true if obj is of type function.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isFunction | wunderbaum - v0.11.0

Function isFunction

  • Return true if obj is of type function.

    +

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file diff --git a/docs/api/functions/util.isPlainObject.html b/docs/api/functions/util.isPlainObject.html index 4b5462a..b84f250 100644 --- a/docs/api/functions/util.isPlainObject.html +++ b/docs/api/functions/util.isPlainObject.html @@ -1,2 +1,2 @@ -isPlainObject | wunderbaum - v0.10.2-0

Function isPlainObject

  • Return true if obj is of type Object.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isPlainObject | wunderbaum - v0.11.0

Function isPlainObject

  • Return true if obj is of type Object.

    +

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file diff --git a/docs/api/functions/util.noop.html b/docs/api/functions/util.noop.html index 15962e3..e8f8009 100644 --- a/docs/api/functions/util.noop.html +++ b/docs/api/functions/util.noop.html @@ -1,2 +1,2 @@ -noop | wunderbaum - v0.10.2-0

Function noop

  • A dummy function that does nothing ('no operation').

    -

    Parameters

    • Rest ...args: any[]

    Returns any

\ No newline at end of file +noop | wunderbaum - v0.11.0

Function noop

  • A dummy function that does nothing ('no operation').

    +

    Parameters

    • Rest ...args: any[]

    Returns any

\ No newline at end of file diff --git a/docs/api/functions/util.onEvent.html b/docs/api/functions/util.onEvent.html index 01f6642..dc10a58 100644 --- a/docs/api/functions/util.onEvent.html +++ b/docs/api/functions/util.onEvent.html @@ -1,9 +1,9 @@ -onEvent | wunderbaum - v0.10.2-0

Function onEvent

  • Bind one or more event handlers directly to an EventTarget.

    +onEvent | wunderbaum - v0.11.0

    Function onEvent

    • Bind one or more event handlers directly to an EventTarget.

      Parameters

      • rootTarget: string | EventTarget

        EventTarget or selector

        -
      • eventNames: string
      • handler: EventCallbackType

      Returns void

    • Bind one or more event handlers using event delegation.

      +
    • eventNames: string
    • handler: EventCallbackType

    Returns void

  • Bind one or more event handlers using event delegation.

    E.g. handle all 'input' events for input and textarea elements of a given form:

    onEvent("#form_1", "input", "input,textarea", function (e: Event) {
    console.log(e.type, e.target);
    });

    Parameters

    • rootTarget: string | EventTarget

      EventTarget or selector

      -
    • eventNames: string
    • selector: string
    • handler: EventCallbackType

    Returns void

\ No newline at end of file +
  • eventNames: string
  • selector: string
  • handler: EventCallbackType
  • Returns void

    \ No newline at end of file diff --git a/docs/api/functions/util.overrideMethod.html b/docs/api/functions/util.overrideMethod.html index 8d23938..226bf9a 100644 --- a/docs/api/functions/util.overrideMethod.html +++ b/docs/api/functions/util.overrideMethod.html @@ -1,4 +1,4 @@ -overrideMethod | wunderbaum - v0.10.2-0

    Function overrideMethod

    • Return a wrapped handler method, that provides this._super and this._superApply.

      +overrideMethod | wunderbaum - v0.11.0

      Function overrideMethod

      • Return a wrapped handler method, that provides this._super and this._superApply.

         // Implement `opts.createNode` event to add the 'draggable' attribute
        overrideMethod(ctx.options, "createNode", (event, data) => {
        // Default processing if any
        this._super.apply(this, event, data);
        // Add 'draggable' attribute
        data.node.span.draggable = true;
        });
        -

        Parameters

        • instance: any
        • methodName: string
        • handler: FunctionType
        • Optional ctx: any

        Returns void

      \ No newline at end of file +

      Parameters

      • instance: any
      • methodName: string
      • handler: FunctionType
      • Optional ctx: any

      Returns void

    \ No newline at end of file diff --git a/docs/api/functions/util.rotate.html b/docs/api/functions/util.rotate.html index 1a87996..5c2a819 100644 --- a/docs/api/functions/util.rotate.html +++ b/docs/api/functions/util.rotate.html @@ -1,3 +1,3 @@ -rotate | wunderbaum - v0.10.2-0

    Function rotate

    • Return the next value from a list of values (rotating).

      +rotate | wunderbaum - v0.11.0

      Function rotate

      • Return the next value from a list of values (rotating).

        Parameters

        • value: any
        • values: any[]

        Returns any

        Since

        0.11

        -
      \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/functions/util.setElemDisplay.html b/docs/api/functions/util.setElemDisplay.html index dc762d7..7d44802 100644 --- a/docs/api/functions/util.setElemDisplay.html +++ b/docs/api/functions/util.setElemDisplay.html @@ -1,2 +1,2 @@ -setElemDisplay | wunderbaum - v0.10.2-0

    Function setElemDisplay

    • Show/hide element by setting the display style to 'none'.

      -

      Parameters

      • elem: string | HTMLElement
      • flag: boolean

      Returns void

    \ No newline at end of file +setElemDisplay | wunderbaum - v0.11.0

    Function setElemDisplay

    • Show/hide element by setting the display style to 'none'.

      +

      Parameters

      • elem: string | HTMLElement
      • flag: boolean

      Returns void

    \ No newline at end of file diff --git a/docs/api/functions/util.setTimeoutPromise.html b/docs/api/functions/util.setTimeoutPromise.html index e870840..fc2cf44 100644 --- a/docs/api/functions/util.setTimeoutPromise.html +++ b/docs/api/functions/util.setTimeoutPromise.html @@ -1,2 +1,2 @@ -setTimeoutPromise | wunderbaum - v0.10.2-0

    Function setTimeoutPromise

    • Run function after ms milliseconds and return a promise that resolves when done.

      -

      Type Parameters

      • T = unknown

      Parameters

      • this: unknown
      • callback: ((...args) => T)
          • (...args): T
          • Parameters

            • Rest ...args: any[]

            Returns T

      • ms: number

      Returns Promise<T>

    \ No newline at end of file +setTimeoutPromise | wunderbaum - v0.11.0

    Function setTimeoutPromise

    • Run function after ms milliseconds and return a promise that resolves when done.

      +

      Type Parameters

      • T = unknown

      Parameters

      • this: unknown
      • callback: ((...args) => T)
          • (...args): T
          • Parameters

            • Rest ...args: any[]

            Returns T

      • ms: number

      Returns Promise<T>

    \ No newline at end of file diff --git a/docs/api/functions/util.setValueToElem.html b/docs/api/functions/util.setValueToElem.html index 3d94155..951ca0b 100644 --- a/docs/api/functions/util.setValueToElem.html +++ b/docs/api/functions/util.setValueToElem.html @@ -1,4 +1,4 @@ -setValueToElem | wunderbaum - v0.10.2-0

    Function setValueToElem

    • Set the value of an HTML input element.

      +setValueToElem | wunderbaum - v0.11.0

      Function setValueToElem

      • Set the value of an HTML input element.

        If a <span class="wb-col"> is passed, the first child input is used. Depending on the target element type, value is interpreted accordingly. For example a checkbox is set to checked, unchecked, or indeterminate if the @@ -9,4 +9,4 @@

        Parameters

        • elem: HTMLElement

          <input> or <select> element Also a parent span.wb-col is accepted.

        • value: any

          a value that matches the target element.

          -

        Returns void

      \ No newline at end of file +

    Returns void

    \ No newline at end of file diff --git a/docs/api/functions/util.sleep.html b/docs/api/functions/util.sleep.html index 3e9f68b..2919825 100644 --- a/docs/api/functions/util.sleep.html +++ b/docs/api/functions/util.sleep.html @@ -1,6 +1,6 @@ -sleep | wunderbaum - v0.10.2-0

    Function sleep

    • Wait ms microseconds.

      +sleep | wunderbaum - v0.11.0

      Function sleep

      • Wait ms microseconds.

        Example:

        await sleep(1000);
         

        Parameters

        • ms: number

          duration

          -

        Returns Promise<unknown>

      \ No newline at end of file +

    Returns Promise<unknown>

    \ No newline at end of file diff --git a/docs/api/functions/util.throttle.html b/docs/api/functions/util.throttle.html index 1523bde..a47af95 100644 --- a/docs/api/functions/util.throttle.html +++ b/docs/api/functions/util.throttle.html @@ -1,4 +1,4 @@ -throttle | wunderbaum - v0.10.2-0

    Function throttle

    • Creates a throttled function that only invokes func at most once per +throttle | wunderbaum - v0.11.0

      Function throttle

      • Creates a throttled function that only invokes func at most once per every wait milliseconds (or once per browser frame). The throttled function comes with a cancel method to cancel delayed func invocations and a flush method to immediately invoke them. Provide options to indicate @@ -24,4 +24,4 @@

        Since

        0.1.0

        Example

        // Avoid excessively updating the position while scrolling.
        jQuery(window).on('scroll', throttle(updatePosition, 100))

        // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
        const throttled = throttle(renewToken, 300000, { 'trailing': false })
        jQuery(element).on('click', throttled)

        // Cancel the trailing throttled invocation.
        jQuery(window).on('popstate', throttled.cancel)
        -
      \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/functions/util.toBool.html b/docs/api/functions/util.toBool.html index bd22b4a..7665e4a 100644 --- a/docs/api/functions/util.toBool.html +++ b/docs/api/functions/util.toBool.html @@ -1,5 +1,5 @@ -toBool | wunderbaum - v0.10.2-0

    Function toBool

    • Return the the boolean value of the first non-null element. +toBool | wunderbaum - v0.11.0

      Function toBool

      • Return the the boolean value of the first non-null element. Example:

        const opts = { flag: true };
        const value = util.toBool(opts.foo, opts.flag, false); // returns true
        -

        Parameters

        • Rest ...boolDefaults: (undefined | null | boolean)[]

        Returns boolean

      \ No newline at end of file +

      Parameters

      • Rest ...boolDefaults: (undefined | null | boolean)[]

      Returns boolean

    \ No newline at end of file diff --git a/docs/api/functions/util.toPixel.html b/docs/api/functions/util.toPixel.html index 2b86b72..af2a767 100644 --- a/docs/api/functions/util.toPixel.html +++ b/docs/api/functions/util.toPixel.html @@ -1,7 +1,7 @@ -toPixel | wunderbaum - v0.10.2-0

    Function toPixel

    • Convert a pixel string to number. +toPixel | wunderbaum - v0.11.0

      Function toPixel

      • Convert a pixel string to number. We accept a number or a string like '123px'. If undefined, the first default value that is a number or a string ending with 'px' is returned.

        Example:

        let x = undefined;
        let y = "123px";
        const width = util.toPixel(x, y, 100); // returns 123
        -

        Parameters

        • Rest ...defaults: (undefined | null | string | number)[]

        Returns number

      \ No newline at end of file +

      Parameters

      • Rest ...defaults: (undefined | null | string | number)[]

      Returns number

    \ No newline at end of file diff --git a/docs/api/functions/util.toSet.html b/docs/api/functions/util.toSet.html index 86cd70e..911e895 100644 --- a/docs/api/functions/util.toSet.html +++ b/docs/api/functions/util.toSet.html @@ -1,2 +1,2 @@ -toSet | wunderbaum - v0.10.2-0

    Function toSet

    • Convert an Array or space-separated string to a Set.

      -

      Parameters

      • val: any

      Returns Set<string>

    \ No newline at end of file +toSet | wunderbaum - v0.11.0

    Function toSet

    • Convert an Array or space-separated string to a Set.

      +

      Parameters

      • val: any

      Returns Set<string>

    \ No newline at end of file diff --git a/docs/api/functions/util.toggleCheckbox.html b/docs/api/functions/util.toggleCheckbox.html index 2387332..bd4595a 100644 --- a/docs/api/functions/util.toggleCheckbox.html +++ b/docs/api/functions/util.toggleCheckbox.html @@ -1,7 +1,7 @@ -toggleCheckbox | wunderbaum - v0.10.2-0

    Function toggleCheckbox

    • Set or rotate checkbox status with support for tri-state.

      +toggleCheckbox | wunderbaum - v0.11.0

      Function toggleCheckbox

      • Set or rotate checkbox status with support for tri-state.

        An initial 'indeterminate' state becomes 'checked' on the first call.

        If the input element has the class 'wb-tristate' assigned, the sequence is:
        'indeterminate' -> 'checked' -> 'unchecked' -> 'indeterminate' -> ...
        Otherwise we toggle like
        'checked' -> 'unchecked' -> 'checked' -> ...

        -

        Parameters

        • element: string | HTMLElement
        • Optional value: null | boolean
        • Optional tristate: boolean

        Returns void

      \ No newline at end of file +

      Parameters

      • element: string | HTMLElement
      • Optional value: null | boolean
      • Optional tristate: boolean

      Returns void

    \ No newline at end of file diff --git a/docs/api/functions/util.type.html b/docs/api/functions/util.type.html index b7b0b10..a3236cc 100644 --- a/docs/api/functions/util.type.html +++ b/docs/api/functions/util.type.html @@ -1,2 +1,2 @@ -type | wunderbaum - v0.10.2-0

    Function type

    • Return a canonical string representation for an object's type (e.g. 'array', 'number', ...).

      -

      Parameters

      • obj: any

      Returns string

    \ No newline at end of file +type | wunderbaum - v0.11.0

    Function type

    • Return a canonical string representation for an object's type (e.g. 'array', 'number', ...).

      +

      Parameters

      • obj: any

      Returns string

    \ No newline at end of file diff --git a/docs/api/hierarchy.html b/docs/api/hierarchy.html index 7b25ab1..db7736a 100644 --- a/docs/api/hierarchy.html +++ b/docs/api/hierarchy.html @@ -1 +1 @@ -wunderbaum - v0.10.2-0
    \ No newline at end of file +wunderbaum - v0.11.0
    \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index cc54e34..5015979 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1,4 +1,4 @@ -wunderbaum - v0.10.2-0

    wunderbaum - v0.10.2-0

    wunderbaum

    GitHub version +wunderbaum - v0.11.0

    wunderbaum - v0.11.0

    wunderbaum

    GitHub version Node.js CI npm jsDelivr @@ -11,7 +11,7 @@ Potential successor of Fancytree.

    Status beta:
    API, Markup, Stylesheet, etc. are still subject to change.

    -

    Demo

    +

    Demo

    • Supports drag and drop, editing, filtering, sorting, and multi-selection.
    • Written in TypeScript, transpiled to ES6 (esm & umd).
    • @@ -27,4 +27,4 @@
    • API Reference
    • Quick Start
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.AddChildrenOptions.html b/docs/api/interfaces/types.AddChildrenOptions.html index eb67765..ae67c77 100644 --- a/docs/api/interfaces/types.AddChildrenOptions.html +++ b/docs/api/interfaces/types.AddChildrenOptions.html @@ -1,13 +1,13 @@ -AddChildrenOptions | wunderbaum - v0.10.2-0

    Interface AddChildrenOptions

    Possible values for ().

    -
    interface AddChildrenOptions {
        _level?: number;
        applyMinExpanLevel?: boolean;
        before?: null | number | WunderbaumNode;
    }

    Properties

    _level? +AddChildrenOptions | wunderbaum - v0.11.0

    Interface AddChildrenOptions

    Possible values for WunderbaumNode.addChildren.

    +
    interface AddChildrenOptions {
        _level?: number;
        applyMinExpanLevel?: boolean;
        before?: null | number | WunderbaumNode;
    }

    Properties

    _level?: number

    (@internal Internal use, do not set! )

    -
    applyMinExpanLevel?: boolean

    Set node.expanded = true according to tree.options.minExpandLevel. +

    applyMinExpanLevel?: boolean

    Set node.expanded = true according to tree.options.minExpandLevel. This does not load lazy nodes.

    Default

    true
     
    -
    before?: null | number | WunderbaumNode

    Insert children before this node (or index)

    +
    before?: null | number | WunderbaumNode

    Insert children before this node (or index)

    Default

    undefined or null:  append as last child
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ApplyCommandOptions.html b/docs/api/interfaces/types.ApplyCommandOptions.html index 388cef1..09223cd 100644 --- a/docs/api/interfaces/types.ApplyCommandOptions.html +++ b/docs/api/interfaces/types.ApplyCommandOptions.html @@ -1,2 +1,2 @@ -ApplyCommandOptions | wunderbaum - v0.10.2-0

    Interface ApplyCommandOptions

    Possible values for () and ().

    -
    interface ApplyCommandOptions {
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown
    \ No newline at end of file +ApplyCommandOptions | wunderbaum - v0.11.0

    Interface ApplyCommandOptions

    interface ApplyCommandOptions {
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ColumnDefinition.html b/docs/api/interfaces/types.ColumnDefinition.html index 85931d2..e265ef3 100644 --- a/docs/api/interfaces/types.ColumnDefinition.html +++ b/docs/api/interfaces/types.ColumnDefinition.html @@ -1,6 +1,6 @@ -ColumnDefinition | wunderbaum - v0.10.2-0

    Interface ColumnDefinition

    Column type definitions.

    +ColumnDefinition | wunderbaum - v0.11.0

    Interface ColumnDefinition

    Column type definitions.

    interface ColumnDefinition {
        _ofsPx?: number;
        _weight?: number;
        _widthPx?: number;
        classes?: string;
        customWidthPx?: number;
        filterActive?: boolean;
        filterable?: boolean;
        headerClasses?: string;
        html?: string;
        id: string;
        menu?: boolean;
        minWidth?: string | number;
        resizable?: boolean;
        sortOrder?: SortOrderType;
        sortable?: boolean;
        title: string;
        tooltip?: string;
        width?: string | number;
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown

    Properties

    interface ColumnDefinition {
        _ofsPx?: number;
        _weight?: number;
        _widthPx?: number;
        classes?: string;
        customWidthPx?: number;
        filterActive?: boolean;
        filterable?: boolean;
        headerClasses?: string;
        html?: string;
        id: string;
        menu?: boolean;
        minWidth?: string | number;
        resizable?: boolean;
        sortOrder?: SortOrderType;
        sortable?: boolean;
        title: string;
        tooltip?: string;
        width?: string | number;
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown

    Properties

    Properties

    _ofsPx?: number
    _weight?: number
    _widthPx?: number
    classes?: string

    Optional class names that are added to all span.wb-col header AND data +

    Properties

    _ofsPx?: number
    _weight?: number
    _widthPx?: number
    classes?: string

    Optional class names that are added to all span.wb-col header AND data elements of that column. Separate multiple classes with space.

    -
    customWidthPx?: number

    Optional custom column width when user resized by mouse drag. +

    customWidthPx?: number

    Optional custom column width when user resized by mouse drag. Default: unset.

    -
    filterActive?: boolean

    . +

    filterActive?: boolean

    . Default: inactive.
    Note: The actual filtering must be implemented in the buttonClick() event.

    -
    filterable?: boolean

    Display a 'filter' button in the column header. Default: false.
    +

    filterable?: boolean

    Display a 'filter' button in the column header. Default: false.
    Note: The actual filtering must be implemented in the buttonClick() event.

    -

    Since

    0.11.0

    -
    headerClasses?: string

    If headerClasses is a set, it will be used for the header element only +

    Default

    false (or global tree option columnsFilterable)

    +

    Since

    0.11.0

    +
    headerClasses?: string

    If headerClasses is a set, it will be used for the header element only (unlike classes, which is used for body and header cells). Separate multiple classes with space.

    -
    html?: string

    Optional HTML content that is rendered into all span.wb-col elements of that column.

    -
    id: string

    Column ID as defined in tree.columns definition ("*" for title column).

    -
    menu?: boolean

    Display a menu icon that may open a context menu for this column. +

    html?: string

    Optional HTML content that is rendered into all span.wb-col elements of that column.

    +
    id: string

    Column ID as defined in tree.columns definition ("*" for title column).

    +
    menu?: boolean

    Display a menu icon that may open a context menu for this column. Note: The actual functionality must be implemented in the buttonClick() event.

    -

    Since

    0.11.0

    -
    minWidth?: string | number

    Only used for columns with a relative weight. +

    Default

    false (or global tree option columnsMenu)

    +

    See

    WunderbaumOptions.columnsMenu.

    +

    Since

    0.11.0

    +
    minWidth?: string | number

    Only used for columns with a relative weight. Default: 4px.

    -
    resizable?: boolean

    Allow user to resize the column. -Default: false.

    -

    Since

    0.10.0

    -
    sortOrder?: SortOrderType

    Optional custom column sort orde when user clicked the sort icon. +

    resizable?: boolean

    Allow user to resize the column.

    +

    Default

    false (or global tree option columnsSortable)

    +

    See

    WunderbaumOptions.columnsResizable.

    +

    Since

    0.10.0

    +
    sortOrder?: SortOrderType

    Optional custom column sort orde when user clicked the sort icon. Default: unset, e.g. not sorted.
    Note: The actual sorting must be implemented in the buttonClick() event.

    Since

    0.11.0

    -
    sortable?: boolean

    Display a 'sort' button in the column header. Default: false.
    +

    sortable?: boolean

    Display a 'sort' button in the column header. Default: false.
    Note: The actual sorting must be implemented in the buttonClick() event.

    -

    Since

    0.11.0

    -
    title: string

    Column header (defaults to id)

    -
    tooltip?: string

    Column header tooltip (optional)

    -
    width?: string | number

    Column width or weight. +

    Default

    false (or global tree option columnsSortable)

    +

    See

    WunderbaumOptions.columnsSortable.

    +

    Since

    0.11.0

    +
    title: string

    Column header (defaults to id)

    +
    tooltip?: string

    Column header tooltip (optional)

    +
    width?: string | number

    Column width or weight. Either an absolute pixel value (e.g. "50px") or a relative weight (e.g. 1) that is used to calculate the width inside the remaining available space. Default: "*", which is interpreted as 1.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ColumnEventInfo.html b/docs/api/interfaces/types.ColumnEventInfo.html index 2fca8e4..ff65fd4 100644 --- a/docs/api/interfaces/types.ColumnEventInfo.html +++ b/docs/api/interfaces/types.ColumnEventInfo.html @@ -1,10 +1,10 @@ -ColumnEventInfo | wunderbaum - v0.10.2-0

    Interface ColumnEventInfo

    Column information (passed to the render event).

    -
    interface ColumnEventInfo {
        elem: null | HTMLSpanElement;
        id: string;
        idx: number;
        info: ColumnDefinition;
    }

    Properties

    elem +ColumnEventInfo | wunderbaum - v0.11.0

    Interface ColumnEventInfo

    Column information (passed to the render event).

    +
    interface ColumnEventInfo {
        elem: null | HTMLSpanElement;
        id: string;
        idx: number;
        info: ColumnDefinition;
    }

    Properties

    Properties

    elem: null | HTMLSpanElement

    The cell's <span class='wb-col'> element (null for plain trees).

    -
    id: string

    Column ID as defined in tree.columns definition ("*" for title column).

    -
    idx: number

    Column index (0: leftmost title column).

    -

    The value of tree.columns[] for the current index.

    -
    \ No newline at end of file +
    id: string

    Column ID as defined in tree.columns definition ("*" for title column).

    +
    idx: number

    Column index (0: leftmost title column).

    +

    The value of tree.columns[] for the current index.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.DragEventType.html b/docs/api/interfaces/types.DragEventType.html index 1064ef5..1186729 100644 --- a/docs/api/interfaces/types.DragEventType.html +++ b/docs/api/interfaces/types.DragEventType.html @@ -1,16 +1,16 @@ -DragEventType | wunderbaum - v0.10.2-0

    Interface DragEventType

    interface DragEventType {
        event: DragEvent;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +DragEventType | wunderbaum - v0.11.0

    Interface DragEventType

    interface DragEventType {
        event: DragEvent;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event: DragEvent

    The original event.

    -

    The source node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    The source node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.DropEventType.html b/docs/api/interfaces/types.DropEventType.html index 2922fc0..d6deee7 100644 --- a/docs/api/interfaces/types.DropEventType.html +++ b/docs/api/interfaces/types.DropEventType.html @@ -1,4 +1,4 @@ -DropEventType | wunderbaum - v0.10.2-0

    Interface DropEventType

    interface DropEventType {
        event: DragEvent;
        node: WunderbaumNode;
        sourceNode: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +DropEventType | wunderbaum - v0.11.0

    Interface DropEventType

    interface DropEventType {
        event: DragEvent;
        node: WunderbaumNode;
        sourceNode: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event node sourceNode tree @@ -6,13 +6,13 @@ typeInfo util

    Properties

    event: DragEvent

    The original event.

    -

    The target node.

    -
    sourceNode: WunderbaumNode

    The source node if any.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    The target node.

    +
    sourceNode: WunderbaumNode

    The source node if any.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ExpandAllOptions.html b/docs/api/interfaces/types.ExpandAllOptions.html index 945c66c..ed5daee 100644 --- a/docs/api/interfaces/types.ExpandAllOptions.html +++ b/docs/api/interfaces/types.ExpandAllOptions.html @@ -1,18 +1,18 @@ -ExpandAllOptions | wunderbaum - v0.10.2-0

    Interface ExpandAllOptions

    Possible values for () and ().

    -
    interface ExpandAllOptions {
        depth?: number;
        force?: boolean;
        keepActiveNodeVisible?: boolean;
        loadLazy?: boolean;
    }

    Properties

    depth? +ExpandAllOptions | wunderbaum - v0.11.0

    Interface ExpandAllOptions

    interface ExpandAllOptions {
        depth?: number;
        force?: boolean;
        keepActiveNodeVisible?: boolean;
        loadLazy?: boolean;
    }

    Properties

    depth?: number

    Restrict expand level

    Default

    99
     
    -
    force?: boolean

    Ignore minExpandLevel option

    +
    force?: boolean

    Ignore minExpandLevel option

    Default

    false
     
    -
    keepActiveNodeVisible?: boolean

    Keep active node visible

    +
    keepActiveNodeVisible?: boolean

    Keep active node visible

    Default

    true
     
    -
    loadLazy?: boolean

    Expand and load lazy nodes

    +
    loadLazy?: boolean

    Expand and load lazy nodes

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.FilterNodesOptions.html b/docs/api/interfaces/types.FilterNodesOptions.html index cc4631d..dd9badb 100644 --- a/docs/api/interfaces/types.FilterNodesOptions.html +++ b/docs/api/interfaces/types.FilterNodesOptions.html @@ -1,7 +1,7 @@ -FilterNodesOptions | wunderbaum - v0.10.2-0

    Interface FilterNodesOptions

    Possible option values for (). +FilterNodesOptions | wunderbaum - v0.11.0

    Interface FilterNodesOptions

    Possible option values for Wunderbaum.filterNodes. The defaults are inherited from the tree instances ´tree.options.filter` settings (see also FilterOptionsType).

    -
    interface FilterNodesOptions {
        autoExpand?: boolean;
        fuzzy?: boolean;
        hideExpanders?: boolean;
        highlight?: boolean;
        leavesOnly?: boolean;
        matchBranch?: boolean;
        mode?: FilterModeType;
        noData?: string | boolean;
    }

    Properties

    interface FilterNodesOptions {
        autoExpand?: boolean;
        fuzzy?: boolean;
        hideExpanders?: boolean;
        highlight?: boolean;
        leavesOnly?: boolean;
        matchBranch?: boolean;
        mode?: FilterModeType;
        noData?: string | boolean;
    }

    Properties

    Properties

    autoExpand?: boolean

    Expand all branches that contain matches while filtered

    Default

    false
     
    -
    fuzzy?: boolean

    Match single characters in order, e.g. 'fb' will match 'FooBar'

    +
    fuzzy?: boolean

    Match single characters in order, e.g. 'fb' will match 'FooBar'

    Default

    false
     
    -
    hideExpanders?: boolean

    Hide expanders if all child nodes are hidden by filter

    +
    hideExpanders?: boolean

    Hide expanders if all child nodes are hidden by filter

    Default

    false
     
    -
    highlight?: boolean

    Highlight matches by wrapping inside <mark> tags. +

    highlight?: boolean

    Highlight matches by wrapping inside <mark> tags. Does not work for filter callbacks.

    Default

    true
     
    -
    leavesOnly?: boolean

    Match end nodes only

    +
    leavesOnly?: boolean

    Match end nodes only

    Default

    false
     
    -
    matchBranch?: boolean

    Whether to implicitly match all children of matched nodes

    +
    matchBranch?: boolean

    Whether to implicitly match all children of matched nodes

    Default

    false
     
    -

    Grayout unmatched nodes (pass 'hide' to remove instead)

    +

    Grayout unmatched nodes (pass 'hide' to remove instead)

    Default

    'dim'
     
    -
    noData?: string | boolean

    Display a 'no data' status node if result is empty

    +
    noData?: string | boolean

    Display a 'no data' status node if result is empty

    Default

    true
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.MakeVisibleOptions.html b/docs/api/interfaces/types.MakeVisibleOptions.html index a63653f..521bd44 100644 --- a/docs/api/interfaces/types.MakeVisibleOptions.html +++ b/docs/api/interfaces/types.MakeVisibleOptions.html @@ -1,14 +1,14 @@ -MakeVisibleOptions | wunderbaum - v0.10.2-0

    Interface MakeVisibleOptions

    Possible values for ().

    -
    interface MakeVisibleOptions {
        noAnimation?: boolean;
        noEvents?: boolean;
        scrollIntoView?: boolean;
    }

    Properties

    noAnimation? +MakeVisibleOptions | wunderbaum - v0.11.0

    Interface MakeVisibleOptions

    Possible values for WunderbaumNode.makeVisible.

    +
    interface MakeVisibleOptions {
        noAnimation?: boolean;
        noEvents?: boolean;
        scrollIntoView?: boolean;
    }

    Properties

    noAnimation?: boolean

    Do not animate expand (currently not implemented).

    Default

    false
     
    -
    noEvents?: boolean

    Do not send events.

    +
    noEvents?: boolean

    Do not send events.

    Default

    false
     
    -
    scrollIntoView?: boolean

    Scroll node into visible viewport area if required.

    +
    scrollIntoView?: boolean

    Scroll node into visible viewport area if required.

    Default

    true
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.NavigateOptions.html b/docs/api/interfaces/types.NavigateOptions.html index e174c46..9550e77 100644 --- a/docs/api/interfaces/types.NavigateOptions.html +++ b/docs/api/interfaces/types.NavigateOptions.html @@ -1,8 +1,8 @@ -NavigateOptions | wunderbaum - v0.10.2-0

    Interface NavigateOptions

    Possible values for ().

    -
    interface NavigateOptions {
        activate?: boolean;
        event?: Event;
    }

    Properties

    activate? +NavigateOptions | wunderbaum - v0.11.0

    Interface NavigateOptions

    Possible values for WunderbaumNode.navigate.

    +
    interface NavigateOptions {
        activate?: boolean;
        event?: Event;
    }

    Properties

    Properties

    activate?: boolean

    Activate the new node (otherwise focus only).

    Default

    true
     
    -
    event?: Event

    Originating event (e.g. KeyboardEvent) if any.

    -
    \ No newline at end of file +
    event?: Event

    Originating event (e.g. KeyboardEvent) if any.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.NodeTypeDefinition.html b/docs/api/interfaces/types.NodeTypeDefinition.html index 2b21c61..b03d1e2 100644 --- a/docs/api/interfaces/types.NodeTypeDefinition.html +++ b/docs/api/interfaces/types.NodeTypeDefinition.html @@ -1,15 +1,15 @@ -NodeTypeDefinition | wunderbaum - v0.10.2-0

    Interface NodeTypeDefinition

    Contains the node's type information, i.e. tree.types[node.type] if +NodeTypeDefinition | wunderbaum - v0.11.0

    Interface NodeTypeDefinition

    Contains the node's type information, i.e. tree.types[node.type] if defined.

    See

    Wunderbaum.types and WunderbaumNode.getOption() to evaluate node.NAME setting and tree.types[node.type].NAME.

    -
    interface NodeTypeDefinition {
        checkbox?: CheckboxOption;
        classes?: string;
        colspan?: boolean;
        icon?: IconOption;
        iconTooltip?: string | boolean;
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown

    Properties

    interface NodeTypeDefinition {
        checkbox?: CheckboxOption;
        classes?: string;
        colspan?: boolean;
        icon?: IconOption;
        iconTooltip?: string | boolean;
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown

    Properties

    checkbox?: CheckboxOption

    En/disable checkbox for matching nodes.

    -
    classes?: string

    Optional class names that are added to all div.wb-row elements of matching nodes.

    -
    colspan?: boolean

    Only show title and hide other columns if any.

    -
    icon?: IconOption

    Default icon for matching nodes.

    -
    iconTooltip?: string | boolean

    Default icon for matching nodes.

    -
    \ No newline at end of file +
    classes?: string

    Optional class names that are added to all div.wb-row elements of matching nodes.

    +
    colspan?: boolean

    Only show title and hide other columns if any.

    +
    icon?: IconOption

    Default icon for matching nodes.

    +
    iconTooltip?: string | boolean

    Default icon for matching nodes.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.RenderOptions.html b/docs/api/interfaces/types.RenderOptions.html index 5faa4db..0c5c600 100644 --- a/docs/api/interfaces/types.RenderOptions.html +++ b/docs/api/interfaces/types.RenderOptions.html @@ -1,5 +1,5 @@ -RenderOptions | wunderbaum - v0.10.2-0

    Interface RenderOptions

    Possible values for ().

    -
    interface RenderOptions {
        after?: any;
        change?: ChangeType;
        isDataChange?: boolean;
        isNew?: boolean;
        preventScroll?: boolean;
        resizeCols?: boolean;
        top?: number;
    }

    Properties

    after? +RenderOptions | wunderbaum - v0.11.0

    Interface RenderOptions

    Possible values for WunderbaumNode._render.

    +
    interface RenderOptions {
        after?: any;
        change?: ChangeType;
        isDataChange?: boolean;
        isNew?: boolean;
        preventScroll?: boolean;
        resizeCols?: boolean;
        top?: number;
    }

    Properties

    after? change? isDataChange? isNew? @@ -9,22 +9,22 @@

    Properties

    after?: any

    Where to append a new node.

    Default

    'last'
     
    -
    change?: ChangeType

    Which parts need update?

    +
    change?: ChangeType

    Which parts need update?

    Default

    ChangeType.data
     
    -
    isDataChange?: boolean

    @internal.

    +
    isDataChange?: boolean

    @internal.

    Default

    false
     
    -
    isNew?: boolean

    @internal.

    +
    isNew?: boolean

    @internal.

    Default

    false
     
    -
    preventScroll?: boolean

    @internal.

    +
    preventScroll?: boolean

    @internal.

    Default

    false
     
    -
    resizeCols?: boolean

    @internal.

    +
    resizeCols?: boolean

    @internal.

    Default

    true
     
    -
    top?: number

    @internal.

    +
    top?: number

    @internal.

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ResetOrderOptions.html b/docs/api/interfaces/types.ResetOrderOptions.html index ac26429..b40999e 100644 --- a/docs/api/interfaces/types.ResetOrderOptions.html +++ b/docs/api/interfaces/types.ResetOrderOptions.html @@ -1,10 +1,9 @@ -ResetOrderOptions | wunderbaum - v0.10.2-0

    Interface ResetOrderOptions

    Possible values for () options -argument.

    -
    interface ResetOrderOptions {
        propName?: string;
        recursive?: boolean;
    }

    Properties

    propName? +ResetOrderOptions | wunderbaum - v0.11.0

    Interface ResetOrderOptions

    Possible values for WunderbaumNode.sortByProperty options argument.

    +
    interface ResetOrderOptions {
        propName?: string;
        recursive?: boolean;
    }

    Properties

    propName?: string

    The name of the node property that will be renumbered.

    Default

    _nativeIndex.

    -
    recursive?: boolean

    Sort descendants recursively.

    +
    recursive?: boolean

    Sort descendants recursively.

    Default

    true
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ScrollIntoViewOptions.html b/docs/api/interfaces/types.ScrollIntoViewOptions.html index 29ab155..fedd5ad 100644 --- a/docs/api/interfaces/types.ScrollIntoViewOptions.html +++ b/docs/api/interfaces/types.ScrollIntoViewOptions.html @@ -1,14 +1,14 @@ -ScrollIntoViewOptions | wunderbaum - v0.10.2-0

    Interface ScrollIntoViewOptions

    Possible values for () options argument.

    -
    interface ScrollIntoViewOptions {
        noAnimation?: boolean;
        noEvents?: boolean;
        ofsY?: number;
        topNode?: WunderbaumNode;
    }

    Hierarchy (view full)

    Properties

    noAnimation? +ScrollIntoViewOptions | wunderbaum - v0.11.0

    Interface ScrollIntoViewOptions

    Possible values for WunderbaumNode.scrollIntoView options argument.

    +
    interface ScrollIntoViewOptions {
        noAnimation?: boolean;
        noEvents?: boolean;
        ofsY?: number;
        topNode?: WunderbaumNode;
    }

    Hierarchy (view full)

    Properties

    noAnimation?: boolean

    Do not animate (currently not implemented).

    Default

    false
     
    -
    noEvents?: boolean

    Do not send events.

    +
    noEvents?: boolean

    Do not send events.

    Default

    false
     
    -
    ofsY?: number

    Add N pixel offset at top.

    -
    topNode?: WunderbaumNode

    Keep this node visible at the top in any case.

    -
    \ No newline at end of file +
    ofsY?: number

    Add N pixel offset at top.

    +
    topNode?: WunderbaumNode

    Keep this node visible at the top in any case.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.ScrollToOptions.html b/docs/api/interfaces/types.ScrollToOptions.html index b045d42..77264fa 100644 --- a/docs/api/interfaces/types.ScrollToOptions.html +++ b/docs/api/interfaces/types.ScrollToOptions.html @@ -1,5 +1,5 @@ -ScrollToOptions | wunderbaum - v0.10.2-0

    Interface ScrollToOptions

    Possible values for () options argument.

    -
    interface ScrollToOptions {
        noAnimation?: boolean;
        noEvents?: boolean;
        node: WunderbaumNode;
        ofsY?: number;
        topNode?: WunderbaumNode;
    }

    Hierarchy (view full)

    Properties

    noAnimation? +ScrollToOptions | wunderbaum - v0.11.0

    Interface ScrollToOptions

    Possible values for Wunderbaum.scrollTo options argument.

    +
    interface ScrollToOptions {
        noAnimation?: boolean;
        noEvents?: boolean;
        node: WunderbaumNode;
        ofsY?: number;
        topNode?: WunderbaumNode;
    }

    Hierarchy (view full)

    Properties

    noAnimation? noEvents? node ofsY? @@ -7,10 +7,10 @@

    Properties

    noAnimation?: boolean

    Do not animate (currently not implemented).

    Default

    false
     
    -
    noEvents?: boolean

    Do not send events.

    +
    noEvents?: boolean

    Do not send events.

    Default

    false
     
    -

    Which node to scroll into the viewport.

    -
    ofsY?: number

    Add N pixel offset at top.

    -
    topNode?: WunderbaumNode

    Keep this node visible at the top in any case.

    -
    \ No newline at end of file +

    Which node to scroll into the viewport.

    +
    ofsY?: number

    Add N pixel offset at top.

    +
    topNode?: WunderbaumNode

    Keep this node visible at the top in any case.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetActiveOptions.html b/docs/api/interfaces/types.SetActiveOptions.html index 9df4fc8..6c43337 100644 --- a/docs/api/interfaces/types.SetActiveOptions.html +++ b/docs/api/interfaces/types.SetActiveOptions.html @@ -1,16 +1,16 @@ -SetActiveOptions | wunderbaum - v0.10.2-0

    Interface SetActiveOptions

    Possible values for WunderbaumNode.setActive options argument.

    -
    interface SetActiveOptions {
        colIdx?: string | number;
        edit?: boolean;
        event?: Event;
        focusTree?: boolean;
        noEvents?: boolean;
        retrigger?: boolean;
    }

    Properties

    colIdx? +SetActiveOptions | wunderbaum - v0.11.0

    Interface SetActiveOptions

    Possible values for WunderbaumNode.setActive options argument.

    +
    interface SetActiveOptions {
        colIdx?: string | number;
        edit?: boolean;
        event?: Event;
        focusTree?: boolean;
        noEvents?: boolean;
        retrigger?: boolean;
    }

    Properties

    colIdx?: string | number

    Also call ().

    -
    edit?: boolean

    Focus embedded input control of the grid cell if any (requires colIdx >= 0). +

    Properties

    colIdx?: string | number
    edit?: boolean

    Focus embedded input control of the grid cell if any (requires colIdx >= 0). If colIdx is 0 or '*', the node title is put into edit mode. Implies focusTree: true, requires colIdx.

    -
    event?: Event

    Optional original event that will be passed to the (de)activate handler.

    -
    focusTree?: boolean

    Call tree.setFocus() to acquire keyboard focus (@default: false).

    -
    noEvents?: boolean

    Do not generate (de)activate event (@default: false).

    -
    retrigger?: boolean

    Generate (de)activate event, even if node already has this status (@default: false).

    -
    \ No newline at end of file +
    event?: Event

    Optional original event that will be passed to the (de)activate handler.

    +
    focusTree?: boolean

    Call tree.setFocus() to acquire keyboard focus (@default: false).

    +
    noEvents?: boolean

    Do not generate (de)activate event (@default: false).

    +
    retrigger?: boolean

    Generate (de)activate event, even if node already has this status (@default: false).

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetColumnOptions.html b/docs/api/interfaces/types.SetColumnOptions.html index 1c574ee..f2e07e2 100644 --- a/docs/api/interfaces/types.SetColumnOptions.html +++ b/docs/api/interfaces/types.SetColumnOptions.html @@ -1,9 +1,9 @@ -SetColumnOptions | wunderbaum - v0.10.2-0

    Interface SetColumnOptions

    Possible values for () options argument.

    -
    interface SetColumnOptions {
        edit?: boolean;
        scrollIntoView?: boolean;
    }

    Properties

    edit? +SetColumnOptions | wunderbaum - v0.11.0

    Interface SetColumnOptions

    Possible values for Wunderbaum.setColumn options argument.

    +
    interface SetColumnOptions {
        edit?: boolean;
        scrollIntoView?: boolean;
    }

    Properties

    edit?: boolean

    Focus embedded input control of the grid cell if any . If colIdx is 0 or '*', the node title is put into edit mode.

    Default

    false
     
    -
    scrollIntoView?: boolean

    Horizontically scroll into view. @default: true

    -
    \ No newline at end of file +
    scrollIntoView?: boolean

    Horizontically scroll into view. @default: true

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetExpandedOptions.html b/docs/api/interfaces/types.SetExpandedOptions.html index ea0ac5c..059d7a6 100644 --- a/docs/api/interfaces/types.SetExpandedOptions.html +++ b/docs/api/interfaces/types.SetExpandedOptions.html @@ -1,5 +1,5 @@ -SetExpandedOptions | wunderbaum - v0.10.2-0

    Interface SetExpandedOptions

    Possible values for WunderbaumNode.setExpanded options argument.

    -
    interface SetExpandedOptions {
        force?: boolean;
        immediate?: boolean;
        noAnimation?: boolean;
        noEvents?: boolean;
        scrollIntoView?: boolean;
    }

    Properties

    force? +SetExpandedOptions | wunderbaum - v0.11.0

    Interface SetExpandedOptions

    Possible values for WunderbaumNode.setExpanded options argument.

    +
    interface SetExpandedOptions {
        force?: boolean;
        immediate?: boolean;
        noAnimation?: boolean;
        noEvents?: boolean;
        scrollIntoView?: boolean;
    }

    Properties

    Properties

    force?: boolean

    Default

    false
     
    -
    immediate?: boolean

    Immediately update viewport (async otherwise).

    +
    immediate?: boolean

    Immediately update viewport (async otherwise).

    Default

    false
     
    -
    noAnimation?: boolean

    Do not animate expand (currently not implemented).

    +
    noAnimation?: boolean

    Do not animate expand (currently not implemented).

    Default

    false
     
    -
    noEvents?: boolean

    Do not send events.

    +
    noEvents?: boolean

    Do not send events.

    Default

    false
     
    -
    scrollIntoView?: boolean

    Scroll up to bring expanded nodes into viewport.

    +
    scrollIntoView?: boolean

    Scroll up to bring expanded nodes into viewport.

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetSelectedOptions.html b/docs/api/interfaces/types.SetSelectedOptions.html index b829c78..95133ff 100644 --- a/docs/api/interfaces/types.SetSelectedOptions.html +++ b/docs/api/interfaces/types.SetSelectedOptions.html @@ -1,18 +1,18 @@ -SetSelectedOptions | wunderbaum - v0.10.2-0

    Interface SetSelectedOptions

    Possible values for () options argument.

    -
    interface SetSelectedOptions {
        callback?: NodeSelectCallback;
        force?: boolean;
        noEvents?: boolean;
        propagateDown?: boolean;
    }

    Properties

    callback? +SetSelectedOptions | wunderbaum - v0.11.0

    Interface SetSelectedOptions

    Possible values for WunderbaumNode.setSelected options argument.

    +
    interface SetSelectedOptions {
        callback?: NodeSelectCallback;
        force?: boolean;
        noEvents?: boolean;
        propagateDown?: boolean;
    }

    Properties

    Called for every node. May return false to prevent action.

    Default

    null
     
    -
    force?: boolean

    Ignore restrictions, e.g. (unselectable).

    +
    force?: boolean

    Ignore restrictions, e.g. (unselectable).

    Default

    false
     
    -
    noEvents?: boolean

    Do not send beforeSelect or select events.

    +
    noEvents?: boolean

    Do not send beforeSelect or select events.

    Default

    false
     
    -
    propagateDown?: boolean

    Apply to all descendant nodes (only for selectMode: 'multi').

    +
    propagateDown?: boolean

    Apply to all descendant nodes (only for selectMode: 'multi').

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetStatusOptions.html b/docs/api/interfaces/types.SetStatusOptions.html index 12c6889..f4e094d 100644 --- a/docs/api/interfaces/types.SetStatusOptions.html +++ b/docs/api/interfaces/types.SetStatusOptions.html @@ -1,6 +1,6 @@ -SetStatusOptions | wunderbaum - v0.10.2-0

    Interface SetStatusOptions

    Possible values for () options argument.

    -
    interface SetStatusOptions {
        details?: string;
        message?: string;
    }

    Properties

    details? +SetStatusOptions | wunderbaum - v0.11.0

    Interface SetStatusOptions

    Possible values for WunderbaumNode.setStatus options argument.

    +
    interface SetStatusOptions {
        details?: string;
        message?: string;
    }

    Properties

    Properties

    details?: string

    Used as tooltip.

    -
    message?: string

    Displayed as status node title.

    -
    \ No newline at end of file +
    message?: string

    Displayed as status node title.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SortByPropertyOptions.html b/docs/api/interfaces/types.SortByPropertyOptions.html index 6af0cb4..094704d 100644 --- a/docs/api/interfaces/types.SortByPropertyOptions.html +++ b/docs/api/interfaces/types.SortByPropertyOptions.html @@ -1,6 +1,5 @@ -SortByPropertyOptions | wunderbaum - v0.10.2-0

    Interface SortByPropertyOptions

    Possible values for () options -argument.

    -
    interface SortByPropertyOptions {
        caseInsensitive?: boolean;
        colId?: string;
        deep?: boolean;
        nativeOrderPropName?: string;
        order?: SortOrderType;
        propName?: string;
        updateColInfo?: boolean;
    }

    Properties

    caseInsensitive? +SortByPropertyOptions | wunderbaum - v0.11.0

    Interface SortByPropertyOptions

    Possible values for WunderbaumNode.sortByProperty options argument.

    +
    interface SortByPropertyOptions {
        caseInsensitive?: boolean;
        colId?: string;
        deep?: boolean;
        nativeOrderPropName?: string;
        order?: SortOrderType;
        propName?: string;
        updateColInfo?: boolean;
    }

    Properties

    Properties

    caseInsensitive?: boolean

    Sort string values case insensitive.

    Default

    false
     
    -
    colId?: string

    Column ID as defined in tree.columns definition. Required if updateColInfo is true.

    -
    deep?: boolean

    Sort descendants recursively.

    +
    colId?: string

    Column ID as defined in tree.columns definition. Required if updateColInfo is true.

    +
    deep?: boolean

    Sort descendants recursively.

    Default

    true
     
    -
    nativeOrderPropName?: string

    Sort by this property if order is undefined. -See also ().

    +
    nativeOrderPropName?: string

    Sort by this property if order is undefined. +See also WunderbaumNode.resetNativeChildOrder.

    Default

    _nativeIndex.

    -

    Sort order.

    +

    Sort order.

    Default

    Use value from column definition (rotated).
     
    -
    propName?: string

    The name of the node property that will be used for sorting.

    +
    propName?: string

    The name of the node property that will be used for sorting.

    Default

    use the colId as property name.

    -
    updateColInfo?: boolean

    Rotate sort order (asc -> desc -> none) before sorting. +

    updateColInfo?: boolean

    Rotate sort order (asc -> desc -> none) before sorting. Update the sort icons in the column header Note: Sorting is done in-place. There is no 'unsorted' state, but we can @@ -30,4 +29,4 @@ which will be used as sort key, when order is undefined.

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SourceAjaxType.html b/docs/api/interfaces/types.SourceAjaxType.html index 73bcb34..68229c8 100644 --- a/docs/api/interfaces/types.SourceAjaxType.html +++ b/docs/api/interfaces/types.SourceAjaxType.html @@ -1,5 +1,5 @@ -SourceAjaxType | wunderbaum - v0.10.2-0

    Interface SourceAjaxType

    interface SourceAjaxType {
        body?: any;
        options?: RequestInit;
        params?: any;
        url: string;
    }

    Properties

    body? +SourceAjaxType | wunderbaum - v0.11.0

    Interface SourceAjaxType

    interface SourceAjaxType {
        body?: any;
        options?: RequestInit;
        params?: any;
        url: string;
    }

    Properties

    body?: any
    options?: RequestInit
    params?: any
    url: string
    \ No newline at end of file +

    Properties

    body?: any
    options?: RequestInit
    params?: any
    url: string
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SourceObjectType.html b/docs/api/interfaces/types.SourceObjectType.html index 528f661..56b9836 100644 --- a/docs/api/interfaces/types.SourceObjectType.html +++ b/docs/api/interfaces/types.SourceObjectType.html @@ -1,4 +1,4 @@ -SourceObjectType | wunderbaum - v0.10.2-0

    Interface SourceObjectType

    interface SourceObjectType {
        _format?: "flat" | "nested";
        _keyMap?: {
            [key: string]: string;
        };
        _positional?: string[];
        _valueMap?: {
            [key: string]: string[];
        };
        _version?: number;
        children: SourceListType;
        columns?: ColumnDefinitionList;
        types?: NodeTypeDefinitionMap;
    }

    Properties

    _format? +SourceObjectType | wunderbaum - v0.11.0

    Interface SourceObjectType

    interface SourceObjectType {
        _format?: "flat" | "nested";
        _keyMap?: {
            [key: string]: string;
        };
        _positional?: string[];
        _valueMap?: {
            [key: string]: string[];
        };
        _version?: number;
        children: SourceListType;
        columns?: ColumnDefinitionList;
        types?: NodeTypeDefinitionMap;
    }

    Properties

    _format?: "flat" | "nested"
    _keyMap?: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string
    _positional?: string[]
    _valueMap?: {
        [key: string]: string[];
    }

    Type declaration

    • [key: string]: string[]
    _version?: number
    children: SourceListType
    \ No newline at end of file +

    Properties

    _format?: "flat" | "nested"
    _keyMap?: {
        [key: string]: string;
    }

    Type declaration

    • [key: string]: string
    _positional?: string[]
    _valueMap?: {
        [key: string]: string[];
    }

    Type declaration

    • [key: string]: string[]
    _version?: number
    children: SourceListType
    \ No newline at end of file diff --git a/docs/api/interfaces/types.UpdateOptions.html b/docs/api/interfaces/types.UpdateOptions.html index 2872d2a..f5aa870 100644 --- a/docs/api/interfaces/types.UpdateOptions.html +++ b/docs/api/interfaces/types.UpdateOptions.html @@ -1,6 +1,6 @@ -UpdateOptions | wunderbaum - v0.10.2-0

    Interface UpdateOptions

    Possible values for () options argument.

    -
    interface UpdateOptions {
        immediate?: boolean;
    }

    Properties

    immediate? +UpdateOptions | wunderbaum - v0.11.0

    Interface UpdateOptions

    Possible values for WunderbaumNode.update options argument.

    +
    interface UpdateOptions {
        immediate?: boolean;
    }

    Properties

    Properties

    immediate?: boolean

    Force immediate redraw instead of throttled/async mode.

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.VisitRowsOptions.html b/docs/api/interfaces/types.VisitRowsOptions.html index 6af972f..30e6ca7 100644 --- a/docs/api/interfaces/types.VisitRowsOptions.html +++ b/docs/api/interfaces/types.VisitRowsOptions.html @@ -1,5 +1,5 @@ -VisitRowsOptions | wunderbaum - v0.10.2-0

    Interface VisitRowsOptions

    Options passed to ().

    -
    interface VisitRowsOptions {
        includeHidden?: boolean;
        includeSelf?: boolean;
        reverse?: boolean;
        start?: null | WunderbaumNode;
        wrap?: boolean;
    }

    Properties

    includeHidden? +VisitRowsOptions | wunderbaum - v0.11.0

    Interface VisitRowsOptions

    Options passed to Wunderbaum.visitRows.

    +
    interface VisitRowsOptions {
        includeHidden?: boolean;
        includeSelf?: boolean;
        reverse?: boolean;
        start?: null | WunderbaumNode;
        wrap?: boolean;
    }

    Properties

    Properties

    includeHidden?: boolean

    Skip filtered nodes and children of collapsed nodes.

    Default

    false
     
    -
    includeSelf?: boolean

    Return the start node as first result.

    +
    includeSelf?: boolean

    Return the start node as first result.

    Default

    true
     
    -
    reverse?: boolean

    Traverse in opposite direction, i.e. bottom up.

    +
    reverse?: boolean

    Traverse in opposite direction, i.e. bottom up.

    Default

    false
     
    -
    start?: null | WunderbaumNode

    Start traversal at this node

    +
    start?: null | WunderbaumNode

    Start traversal at this node

    Default

    first (topmost) tree node
     
    -
    wrap?: boolean

    Wrap around at last node and continue at the top, +

    wrap?: boolean

    Wrap around at last node and continue at the top, until the start node is reached again

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbActivateEventType.html b/docs/api/interfaces/types.WbActivateEventType.html index f3d4458..3638221 100644 --- a/docs/api/interfaces/types.WbActivateEventType.html +++ b/docs/api/interfaces/types.WbActivateEventType.html @@ -1,4 +1,4 @@ -WbActivateEventType | wunderbaum - v0.10.2-0

    Interface WbActivateEventType

    interface WbActivateEventType {
        event: Event;
        node: WunderbaumNode;
        prevNode: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +WbActivateEventType | wunderbaum - v0.11.0

    Interface WbActivateEventType

    interface WbActivateEventType {
        event: Event;
        node: WunderbaumNode;
        prevNode: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event node prevNode tree @@ -6,12 +6,12 @@ typeInfo util

    Properties

    event: Event

    The original event.

    -

    The affected target node.

    -
    prevNode: WunderbaumNode

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    The affected target node.

    +
    prevNode: WunderbaumNode

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbButtonClickEventType.html b/docs/api/interfaces/types.WbButtonClickEventType.html index 392928d..48bba56 100644 --- a/docs/api/interfaces/types.WbButtonClickEventType.html +++ b/docs/api/interfaces/types.WbButtonClickEventType.html @@ -1,13 +1,13 @@ -WbButtonClickEventType | wunderbaum - v0.10.2-0

    Interface WbButtonClickEventType

    interface WbButtonClickEventType {
        command: string;
        event?: Event;
        info: WbEventInfo;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    command +WbButtonClickEventType | wunderbaum - v0.11.0

    Interface WbButtonClickEventType

    interface WbButtonClickEventType {
        command: string;
        event?: Event;
        info: WbEventInfo;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    command: string

    The associated command, e.g. 'menu', 'sort', 'filter', ...

    -
    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -
    util: any

    Exposed utility module methods +

    event?: Event

    Originating HTML event if any (e.g. click).

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +
    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbChangeEventType.html b/docs/api/interfaces/types.WbChangeEventType.html index 071b776..e3abab1 100644 --- a/docs/api/interfaces/types.WbChangeEventType.html +++ b/docs/api/interfaces/types.WbChangeEventType.html @@ -1,4 +1,4 @@ -WbChangeEventType | wunderbaum - v0.10.2-0

    Interface WbChangeEventType

    interface WbChangeEventType {
        event?: Event;
        info: WbEventInfo;
        inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
        inputValid: boolean;
        inputValue: any;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbChangeEventType | wunderbaum - v0.11.0

    Interface WbChangeEventType

    interface WbChangeEventType {
        event?: Event;
        info: WbEventInfo;
        inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
        inputValid: boolean;
        inputValue: any;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -

    Additional information derived from the original change event.

    -
    inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement

    The embedded element that fired the change event.

    -
    inputValid: boolean

    Result of inputElem.checkValidity().

    -
    inputValue: any

    The new value of the embedded element, depending on the input element type.

    -

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    Additional information derived from the original change event.

    +
    inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement

    The embedded element that fired the change event.

    +
    inputValid: boolean

    Result of inputElem.checkValidity().

    +
    inputValue: any

    The new value of the embedded element, depending on the input element type.

    +

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbClickEventType.html b/docs/api/interfaces/types.WbClickEventType.html index a4fd3d6..c97cba8 100644 --- a/docs/api/interfaces/types.WbClickEventType.html +++ b/docs/api/interfaces/types.WbClickEventType.html @@ -1,14 +1,14 @@ -WbClickEventType | wunderbaum - v0.10.2-0

    Interface WbClickEventType

    interface WbClickEventType {
        event: MouseEvent;
        info: WbEventInfo;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +WbClickEventType | wunderbaum - v0.11.0

    Interface WbClickEventType

    interface WbClickEventType {
        event: MouseEvent;
        info: WbEventInfo;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event: MouseEvent

    The original event.

    -

    Additional information derived from the original mouse event.

    -

    The clicked node if any.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -
    util: any

    Exposed utility module methods +

    Additional information derived from the original mouse event.

    +

    The clicked node if any.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +
    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbDeactivateEventType.html b/docs/api/interfaces/types.WbDeactivateEventType.html index ad74998..67db518 100644 --- a/docs/api/interfaces/types.WbDeactivateEventType.html +++ b/docs/api/interfaces/types.WbDeactivateEventType.html @@ -1,4 +1,4 @@ -WbDeactivateEventType | wunderbaum - v0.10.2-0

    Interface WbDeactivateEventType

    interface WbDeactivateEventType {
        event: Event;
        nextNode: WunderbaumNode;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +WbDeactivateEventType | wunderbaum - v0.11.0

    Interface WbDeactivateEventType

    interface WbDeactivateEventType {
        event: Event;
        nextNode: WunderbaumNode;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event nextNode node tree @@ -6,12 +6,12 @@ typeInfo util

    Properties

    event: Event

    The original event.

    -
    nextNode: WunderbaumNode

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    nextNode: WunderbaumNode

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbEditApplyEventType.html b/docs/api/interfaces/types.WbEditApplyEventType.html index aca53b2..c48dfdd 100644 --- a/docs/api/interfaces/types.WbEditApplyEventType.html +++ b/docs/api/interfaces/types.WbEditApplyEventType.html @@ -1,4 +1,4 @@ -WbEditApplyEventType | wunderbaum - v0.10.2-0

    Interface WbEditApplyEventType

    interface WbEditApplyEventType {
        event?: Event;
        info: WbEventInfo;
        inputElem: HTMLInputElement;
        inputValid: boolean;
        newValue: string;
        node: WunderbaumNode;
        oldValue: string;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbEditApplyEventType | wunderbaum - v0.11.0

    Interface WbEditApplyEventType

    interface WbEditApplyEventType {
        event?: Event;
        info: WbEventInfo;
        inputElem: HTMLInputElement;
        inputValid: boolean;
        newValue: string;
        node: WunderbaumNode;
        oldValue: string;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -

    Additional information derived from the original change event.

    -
    inputElem: HTMLInputElement

    The input element of the node title that fired the change event.

    -
    inputValid: boolean

    Result of inputElem.checkValidity().

    -
    newValue: string

    The new node title.

    -

    The affected target node.

    -
    oldValue: string

    The previous node title.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    Additional information derived from the original change event.

    +
    inputElem: HTMLInputElement

    The input element of the node title that fired the change event.

    +
    inputValid: boolean

    Result of inputElem.checkValidity().

    +
    newValue: string

    The new node title.

    +

    The affected target node.

    +
    oldValue: string

    The previous node title.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbEditEditEventType.html b/docs/api/interfaces/types.WbEditEditEventType.html index 48a34d0..5ba8e98 100644 --- a/docs/api/interfaces/types.WbEditEditEventType.html +++ b/docs/api/interfaces/types.WbEditEditEventType.html @@ -1,4 +1,4 @@ -WbEditEditEventType | wunderbaum - v0.10.2-0

    Interface WbEditEditEventType

    interface WbEditEditEventType {
        event?: Event;
        inputElem: HTMLInputElement;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbEditEditEventType | wunderbaum - v0.11.0

    Interface WbEditEditEventType

    interface WbEditEditEventType {
        event?: Event;
        inputElem: HTMLInputElement;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? inputElem node tree @@ -6,13 +6,13 @@ typeInfo util

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -
    inputElem: HTMLInputElement

    The input element of the node title that was just created.

    -

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    inputElem: HTMLInputElement

    The input element of the node title that was just created.

    +

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbErrorEventType.html b/docs/api/interfaces/types.WbErrorEventType.html index 965aa36..2264b1d 100644 --- a/docs/api/interfaces/types.WbErrorEventType.html +++ b/docs/api/interfaces/types.WbErrorEventType.html @@ -1,17 +1,17 @@ -WbErrorEventType | wunderbaum - v0.10.2-0

    Interface WbErrorEventType

    interface WbErrorEventType {
        error: any;
        event?: Event;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    error +WbErrorEventType | wunderbaum - v0.11.0

    Interface WbErrorEventType

    interface WbErrorEventType {
        error: any;
        event?: Event;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    error: any
    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    Properties

    error: any
    event?: Event

    Originating HTML event if any (e.g. click).

    +

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbEventInfo.html b/docs/api/interfaces/types.WbEventInfo.html index e9ffbdc..86358d8 100644 --- a/docs/api/interfaces/types.WbEventInfo.html +++ b/docs/api/interfaces/types.WbEventInfo.html @@ -1,6 +1,6 @@ -WbEventInfo | wunderbaum - v0.10.2-0

    Interface WbEventInfo

    Additional information derived from mouse or keyboard events.

    +WbEventInfo | wunderbaum - v0.11.0

    Interface WbEventInfo

    Additional information derived from mouse or keyboard events.

    interface WbEventInfo {
        canonicalName: string;
        colDef?: ColumnDefinition;
        colElem?: HTMLSpanElement;
        colId?: string;
        colIdx: number;
        event: MouseEvent | KeyboardEvent;
        node: null | WunderbaumNode;
        region: NodeRegion;
        tree: Wunderbaum;
    }

    Properties

    interface WbEventInfo {
        canonicalName: string;
        colDef?: ColumnDefinition;
        colElem?: HTMLSpanElement;
        colId?: string;
        colIdx: number;
        event: MouseEvent | KeyboardEvent;
        node: null | WunderbaumNode;
        region: NodeRegion;
        tree: Wunderbaum;
    }

    Properties

    canonicalName colDef? colElem? colId? @@ -12,12 +12,12 @@

    Properties

    canonicalName: string

    Canonical descriptive string of the event type including modifiers, e.g. Ctrl+Down.

    The definition of the affected column if any.

    -
    colElem?: HTMLSpanElement

    The affected column's span tag if any.

    -
    colId?: string

    The column definition ID of affected column if any.

    -
    colIdx: number

    The index of affected column or -1.

    -
    event: MouseEvent | KeyboardEvent

    The original HTTP Event.

    -
    node: null | WunderbaumNode

    The affected node instance instance if any.

    -
    region: NodeRegion

    The affected part of the node span (e.g. title, expander, ...).

    -

    The tree instance.

    -
    \ No newline at end of file +

    The definition of the affected column if any.

    +
    colElem?: HTMLSpanElement

    The affected column's span tag if any.

    +
    colId?: string

    The column definition ID of affected column if any.

    +
    colIdx: number

    The index of affected column or -1.

    +
    event: MouseEvent | KeyboardEvent

    The original HTTP Event.

    +
    node: null | WunderbaumNode

    The affected node instance instance if any.

    +
    region: NodeRegion

    The affected part of the node span (e.g. title, expander, ...).

    +

    The tree instance.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbExpandEventType.html b/docs/api/interfaces/types.WbExpandEventType.html index c7be93e..6e0c2a5 100644 --- a/docs/api/interfaces/types.WbExpandEventType.html +++ b/docs/api/interfaces/types.WbExpandEventType.html @@ -1,4 +1,4 @@ -WbExpandEventType | wunderbaum - v0.10.2-0

    Interface WbExpandEventType

    interface WbExpandEventType {
        event?: Event;
        flag: boolean;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbExpandEventType | wunderbaum - v0.11.0

    Interface WbExpandEventType

    interface WbExpandEventType {
        event?: Event;
        flag: boolean;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? flag node tree @@ -6,12 +6,12 @@ typeInfo util

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -
    flag: boolean

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    flag: boolean

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbFocusEventType.html b/docs/api/interfaces/types.WbFocusEventType.html index b08f769..7ac2e8c 100644 --- a/docs/api/interfaces/types.WbFocusEventType.html +++ b/docs/api/interfaces/types.WbFocusEventType.html @@ -1,12 +1,12 @@ -WbFocusEventType | wunderbaum - v0.10.2-0

    Interface WbFocusEventType

    interface WbFocusEventType {
        event: FocusEvent;
        flag: boolean;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +WbFocusEventType | wunderbaum - v0.11.0

    Interface WbFocusEventType

    interface WbFocusEventType {
        event: FocusEvent;
        flag: boolean;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    Properties

    event: FocusEvent

    The original event.

    -
    flag: boolean

    True if focusin, false if focusout.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -
    util: any

    Exposed utility module methods +

    flag: boolean

    True if focusin, false if focusout.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +
    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbIconBadgeEventResultType.html b/docs/api/interfaces/types.WbIconBadgeEventResultType.html index 4b3789e..9cbaeb9 100644 --- a/docs/api/interfaces/types.WbIconBadgeEventResultType.html +++ b/docs/api/interfaces/types.WbIconBadgeEventResultType.html @@ -1,7 +1,7 @@ -WbIconBadgeEventResultType | wunderbaum - v0.10.2-0

    Interface WbIconBadgeEventResultType

    interface WbIconBadgeEventResultType {
        badge: null | string | number | false | HTMLSpanElement;
        badgeClass?: string;
        badgeTooltip?: string;
    }

    Properties

    badge +WbIconBadgeEventResultType | wunderbaum - v0.11.0

    Interface WbIconBadgeEventResultType

    interface WbIconBadgeEventResultType {
        badge: null | string | number | false | HTMLSpanElement;
        badgeClass?: string;
        badgeTooltip?: string;
    }

    Properties

    badge: null | string | number | false | HTMLSpanElement

    Content of the badge <span class='wb-badge'> if any.

    -
    badgeClass?: string

    Additional class name(s), separate with space.

    -
    badgeTooltip?: string

    Tooltip for the badge.

    -
    \ No newline at end of file +
    badgeClass?: string

    Additional class name(s), separate with space.

    +
    badgeTooltip?: string

    Tooltip for the badge.

    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbIconBadgeEventType.html b/docs/api/interfaces/types.WbIconBadgeEventType.html index 12cfdbe..cbb4f5a 100644 --- a/docs/api/interfaces/types.WbIconBadgeEventType.html +++ b/docs/api/interfaces/types.WbIconBadgeEventType.html @@ -1,4 +1,4 @@ -WbIconBadgeEventType | wunderbaum - v0.10.2-0

    Interface WbIconBadgeEventType

    interface WbIconBadgeEventType {
        event?: Event;
        iconSpan: HTMLElement;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbIconBadgeEventType | wunderbaum - v0.11.0

    Interface WbIconBadgeEventType

    interface WbIconBadgeEventType {
        event?: Event;
        iconSpan: HTMLElement;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? iconSpan node tree @@ -6,12 +6,12 @@ typeInfo util

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -
    iconSpan: HTMLElement

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    iconSpan: HTMLElement

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbInitEventType.html b/docs/api/interfaces/types.WbInitEventType.html index 7bc064e..fb25374 100644 --- a/docs/api/interfaces/types.WbInitEventType.html +++ b/docs/api/interfaces/types.WbInitEventType.html @@ -1,11 +1,11 @@ -WbInitEventType | wunderbaum - v0.10.2-0

    Interface WbInitEventType

    interface WbInitEventType {
        error?: any;
        event?: Event;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    error? +WbInitEventType | wunderbaum - v0.11.0

    Interface WbInitEventType

    interface WbInitEventType {
        error?: any;
        event?: Event;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    Properties

    error?: any
    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -
    util: any

    Exposed utility module methods +

    Properties

    error?: any
    event?: Event

    Originating HTML event if any (e.g. click).

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +
    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbKeydownEventType.html b/docs/api/interfaces/types.WbKeydownEventType.html index da4cd40..2eb9bb2 100644 --- a/docs/api/interfaces/types.WbKeydownEventType.html +++ b/docs/api/interfaces/types.WbKeydownEventType.html @@ -1,13 +1,13 @@ -WbKeydownEventType | wunderbaum - v0.10.2-0

    Interface WbKeydownEventType

    interface WbKeydownEventType {
        event: KeyboardEvent;
        info: WbEventInfo;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event +WbKeydownEventType | wunderbaum - v0.11.0

    Interface WbKeydownEventType

    interface WbKeydownEventType {
        event: KeyboardEvent;
        info: WbEventInfo;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event: KeyboardEvent

    The original event.

    -

    Additional information derived from the original keyboard event.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -
    util: any

    Exposed utility module methods +

    Additional information derived from the original keyboard event.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +
    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbModifyChildEventType.html b/docs/api/interfaces/types.WbModifyChildEventType.html index 8b31e30..4d4a1d5 100644 --- a/docs/api/interfaces/types.WbModifyChildEventType.html +++ b/docs/api/interfaces/types.WbModifyChildEventType.html @@ -1,4 +1,4 @@ -WbModifyChildEventType | wunderbaum - v0.10.2-0

    Interface WbModifyChildEventType

    interface WbModifyChildEventType {
        child: WunderbaumNode;
        event?: Event;
        node: WunderbaumNode;
        operation: string;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    child +WbModifyChildEventType | wunderbaum - v0.11.0

    Interface WbModifyChildEventType

    interface WbModifyChildEventType {
        child: WunderbaumNode;
        event?: Event;
        node: WunderbaumNode;
        operation: string;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected target node.

    -
    operation: string

    Type of change: 'add', 'remove', 'rename', 'move', 'data', ...

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    +

    The affected target node.

    +
    operation: string

    Type of change: 'add', 'remove', 'rename', 'move', 'data', ...

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbNodeData.html b/docs/api/interfaces/types.WbNodeData.html index 4d043ea..2ddae76 100644 --- a/docs/api/interfaces/types.WbNodeData.html +++ b/docs/api/interfaces/types.WbNodeData.html @@ -1,6 +1,6 @@ -WbNodeData | wunderbaum - v0.10.2-0

    Interface WbNodeData

    A plain object (dictionary) that represents a node instance.

    +WbNodeData | wunderbaum - v0.11.0

    Interface WbNodeData

    A plain object (dictionary) that represents a node instance.

    interface WbNodeData {
        _treeId?: string;
        checkbox?: CheckboxOption;
        children?: WbNodeData[];
        classes?: string;
        colspan?: boolean;
        expanded?: boolean;
        icon?: IconOption;
        iconTooltip?: string | boolean;
        key?: string;
        lazy?: boolean;
        radiogroup?: boolean;
        refKey?: string;
        selected?: boolean;
        statusNodeType?: NodeStatusType;
        title: string;
        tooltip?: string | boolean;
        type?: string;
        unselectable?: boolean;
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown

    Other data is passed to node.data and can be accessed via node.data.NAME

    -

    Properties

    Properties

    _treeId?: string
    checkbox?: CheckboxOption
    children?: WbNodeData[]
    classes?: string
    colspan?: boolean
    expanded?: boolean
    icon?: IconOption
    iconTooltip?: string | boolean
    key?: string
    lazy?: boolean
    radiogroup?: boolean

    Make child nodes single-select radio buttons.

    -
    refKey?: string
    selected?: boolean
    statusNodeType?: NodeStatusType
    title: string
    tooltip?: string | boolean
    type?: string
    unselectable?: boolean
    \ No newline at end of file +

    Properties

    _treeId?: string
    checkbox?: CheckboxOption
    children?: WbNodeData[]
    classes?: string
    colspan?: boolean
    expanded?: boolean
    icon?: IconOption
    iconTooltip?: string | boolean
    key?: string
    lazy?: boolean
    radiogroup?: boolean

    Make child nodes single-select radio buttons.

    +
    refKey?: string
    selected?: boolean
    statusNodeType?: NodeStatusType
    title: string
    tooltip?: string | boolean
    type?: string
    unselectable?: boolean
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbNodeEventType.html b/docs/api/interfaces/types.WbNodeEventType.html index 8b42fbc..9679649 100644 --- a/docs/api/interfaces/types.WbNodeEventType.html +++ b/docs/api/interfaces/types.WbNodeEventType.html @@ -1,16 +1,16 @@ -WbNodeEventType | wunderbaum - v0.10.2-0

    Interface WbNodeEventType

    interface WbNodeEventType {
        event?: Event;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbNodeEventType | wunderbaum - v0.11.0

    Interface WbNodeEventType

    interface WbNodeEventType {
        event?: Event;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbReceiveEventType.html b/docs/api/interfaces/types.WbReceiveEventType.html index 86d025b..bfb738b 100644 --- a/docs/api/interfaces/types.WbReceiveEventType.html +++ b/docs/api/interfaces/types.WbReceiveEventType.html @@ -1,4 +1,4 @@ -WbReceiveEventType | wunderbaum - v0.10.2-0

    Interface WbReceiveEventType

    interface WbReceiveEventType {
        event?: Event;
        node: WunderbaumNode;
        response: any;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbReceiveEventType | wunderbaum - v0.11.0

    Interface WbReceiveEventType

    interface WbReceiveEventType {
        event?: Event;
        node: WunderbaumNode;
        response: any;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? node response tree @@ -6,12 +6,12 @@ typeInfo util

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected target node.

    -
    response: any

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    The affected target node.

    +
    response: any

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbRenderEventType.html b/docs/api/interfaces/types.WbRenderEventType.html index f249d50..827f765 100644 --- a/docs/api/interfaces/types.WbRenderEventType.html +++ b/docs/api/interfaces/types.WbRenderEventType.html @@ -1,4 +1,4 @@ -WbRenderEventType | wunderbaum - v0.10.2-0

    Interface WbRenderEventType

    interface WbRenderEventType {
        allColInfosById: ColumnEventInfoMap;
        event?: Event;
        isColspan: boolean;
        isNew: boolean;
        node: WunderbaumNode;
        nodeElem: HTMLSpanElement;
        renderColInfosById: ColumnEventInfoMap;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    allColInfosById +WbRenderEventType | wunderbaum - v0.11.0

    Interface WbRenderEventType

    interface WbRenderEventType {
        allColInfosById: ColumnEventInfoMap;
        event?: Event;
        isColspan: boolean;
        isNew: boolean;
        node: WunderbaumNode;
        nodeElem: HTMLSpanElement;
        renderColInfosById: ColumnEventInfoMap;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    allColInfosById event? isColspan isNew @@ -12,27 +12,27 @@

    Properties

    allColInfosById: ColumnEventInfoMap

    Array of node's <span class='wb-col'> elements. The first element is <span class='wb-node wb-col'>, which contains the node title and icon (idx: 0, id: '*'`).

    -
    event?: Event

    Originating HTML event if any (e.g. click).

    -
    isColspan: boolean

    True if the node only displays the title and is stretched over all remaining columns.

    -
    isNew: boolean

    True if the node's markup was not yet created. In this case the render +

    event?: Event

    Originating HTML event if any (e.g. click).

    +
    isColspan: boolean

    True if the node only displays the title and is stretched over all remaining columns.

    +
    isNew: boolean

    True if the node's markup was not yet created. In this case the render event should create embedded input controls (in addition to update the values according to to current node data).
    False if the node's markup was already created. In this case the render event should only update the values according to to current node data.

    -

    The affected target node.

    -
    nodeElem: HTMLSpanElement

    The node's <span class='wb-node'> element.

    -
    renderColInfosById: ColumnEventInfoMap

    Array of node's <span class='wb-node'> elements, +

    The affected target node.

    +
    nodeElem: HTMLSpanElement

    The node's <span class='wb-node'> element.

    +
    renderColInfosById: ColumnEventInfoMap

    Array of node's <span class='wb-node'> elements, that should be rendered by the event handler. In contrast to allColInfosById, the node title is not part of this array. If node.isColspan() is true, this array is empty ([]). This allows to iterate over all relevant in a simple loop:

    for (const col of Object.values(e.renderColInfosById)) {
    switch (col.id) {
    default:
    // Assumption: we named column.id === node.data.NAME
    col.elem.textContent = node.data[col.id];
    break;
    }
    }
    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbSelectEventType.html b/docs/api/interfaces/types.WbSelectEventType.html index 6240349..5fe0031 100644 --- a/docs/api/interfaces/types.WbSelectEventType.html +++ b/docs/api/interfaces/types.WbSelectEventType.html @@ -1,4 +1,4 @@ -WbSelectEventType | wunderbaum - v0.10.2-0

    Interface WbSelectEventType

    interface WbSelectEventType {
        event?: Event;
        flag: boolean;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbSelectEventType | wunderbaum - v0.11.0

    Interface WbSelectEventType

    interface WbSelectEventType {
        event?: Event;
        flag: boolean;
        node: WunderbaumNode;
        tree: Wunderbaum;
        type: string;
        typeInfo: NodeTypeDefinition;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? flag node tree @@ -6,12 +6,12 @@ typeInfo util

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -
    flag: boolean

    The affected target node.

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

    Contains the node's type information, i.e. tree.types[node.type] if +

    flag: boolean

    The affected target node.

    +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

    Contains the node's type information, i.e. tree.types[node.type] if defined. Set to {} otherwise.

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.WbTreeEventType.html b/docs/api/interfaces/types.WbTreeEventType.html index b96d65d..83f48a9 100644 --- a/docs/api/interfaces/types.WbTreeEventType.html +++ b/docs/api/interfaces/types.WbTreeEventType.html @@ -1,10 +1,10 @@ -WbTreeEventType | wunderbaum - v0.10.2-0

    Interface WbTreeEventType

    interface WbTreeEventType {
        event?: Event;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    event? +WbTreeEventType | wunderbaum - v0.11.0

    Interface WbTreeEventType

    interface WbTreeEventType {
        event?: Event;
        tree: Wunderbaum;
        type: string;
        util: any;
    }

    Hierarchy (view full)

    Properties

    Properties

    event?: Event

    Originating HTML event if any (e.g. click).

    -

    The affected tree instance.

    -
    type: string

    Name of the event.

    -
    util: any

    Exposed utility module methods +

    The affected tree instance.

    +
    type: string

    Name of the event.

    +
    util: any

    Exposed utility module methods (see API docs).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/wb_options.WunderbaumOptions.html b/docs/api/interfaces/wb_options.WunderbaumOptions.html index b8e6ae8..5e7f975 100644 --- a/docs/api/interfaces/wb_options.WunderbaumOptions.html +++ b/docs/api/interfaces/wb_options.WunderbaumOptions.html @@ -1,11 +1,11 @@ -WunderbaumOptions | wunderbaum - v0.10.2-0

    Interface WunderbaumOptions

    Available options for wunderbaum.Wunderbaum.

    +WunderbaumOptions | wunderbaum - v0.11.0

    Interface WunderbaumOptions

    Available options for wunderbaum.Wunderbaum.

    Options are passed to the constructor as plain object:

    const tree = new mar10.Wunderbaum({
    id: "demo",
    element: document.getElementById("demo-tree"),
    source: "url/of/data/request",
    ...
    });

    Event handlers are also passed as callbacks

    const tree = new mar10.Wunderbaum({
    ...
    init: (e) => {
    console.log(`Tree ${e.tree} was initialized and loaded.`)
    },
    activate: (e) => {
    console.log(`Node ${e.node} was activated.`)
    },
    ...
    });
    -
    interface WunderbaumOptions {
        activate?: ((e) => void);
        adjustHeight?: boolean;
        autoCollapse?: boolean;
        beforeActivate?: ((e) => WbCancelableEventResultType);
        beforeExpand?: ((e) => WbCancelableEventResultType);
        beforeSelect?: ((e) => WbCancelableEventResultType);
        buttonClick?: ((e) => void);
        change?: ((e) => void);
        checkbox?: DynamicCheckboxOption;
        click?: ((e) => WbCancelableEventResultType);
        columns?: ColumnDefinitionList;
        connectTopBreadcrumb?: HTMLElement;
        dblclick?: ((e) => WbCancelableEventResultType);
        deactivate?: ((e) => WbCancelableEventResultType);
        debugLevel?: number;
        discard?: ((e) => void);
        dnd?: DndOptionsType;
        edit?: EditOptionsType;
        element: string | HTMLDivElement;
        emptyChildListExpandable?: boolean;
        enabled?: boolean;
        error?: ((e) => void);
        expand?: ((e) => void);
        filter?: FilterOptionsType;
        fixedCol?: boolean;
        focus?: ((e) => void);
        header?: null | string | boolean;
        icon?: DynamicIconOption;
        iconBadge?: ((e) => WbIconBadgeEventResultType);
        iconMap?: string | {
            [key: string]: string;
        };
        iconTooltip?: DynamicBoolOrStringOption;
        id?: string;
        init?: ((e) => void);
        keydown?: ((e) => WbCancelableEventResultType);
        lazyLoad?: ((e) => void);
        load?: ((e) => void);
        minExpandLevel?: number;
        modifyChild?: ((e) => void);
        navigationModeOption?: NavModeEnum;
        quicksearch?: boolean;
        receive?: ((e) => void);
        render?: ((e) => void);
        renderStatusNode?: ((e) => void);
        resizableColumns?: boolean;
        rowHeightPx?: number;
        scrollIntoViewOnExpandClick?: boolean;
        select?: ((e) => void);
        selectMode?: SelectModeType;
        showSpinner?: boolean;
        skeleton?: boolean;
        source?: string | WbNodeData[];
        strings?: any;
        tooltip?: DynamicBoolOrStringOption;
        types?: NodeTypeDefinitionMap;
        unselectable?: DynamicBoolOption;
        update?: ((e) => void);
    }

    Callback

    interface WunderbaumOptions {
        activate?: ((e) => void);
        adjustHeight?: boolean;
        autoCollapse?: boolean;
        beforeActivate?: ((e) => WbCancelableEventResultType);
        beforeExpand?: ((e) => WbCancelableEventResultType);
        beforeSelect?: ((e) => WbCancelableEventResultType);
        buttonClick?: ((e) => void);
        change?: ((e) => void);
        checkbox?: DynamicCheckboxOption;
        click?: ((e) => WbCancelableEventResultType);
        columns?: ColumnDefinitionList;
        columnsFilterable?: boolean;
        columnsMenu?: boolean;
        columnsResizable?: boolean;
        columnsSortable?: boolean;
        connectTopBreadcrumb?: HTMLElement;
        dblclick?: ((e) => WbCancelableEventResultType);
        deactivate?: ((e) => WbCancelableEventResultType);
        debugLevel?: number;
        discard?: ((e) => void);
        dnd?: DndOptionsType;
        edit?: EditOptionsType;
        element: string | HTMLDivElement;
        emptyChildListExpandable?: boolean;
        enabled?: boolean;
        error?: ((e) => void);
        expand?: ((e) => void);
        filter?: FilterOptionsType;
        fixedCol?: boolean;
        focus?: ((e) => void);
        header?: null | string | boolean;
        icon?: DynamicIconOption;
        iconBadge?: ((e) => WbIconBadgeEventResultType);
        iconMap?: string | {
            [key: string]: string;
        };
        iconTooltip?: DynamicBoolOrStringOption;
        id?: string;
        init?: ((e) => void);
        keydown?: ((e) => WbCancelableEventResultType);
        lazyLoad?: ((e) => void);
        load?: ((e) => void);
        minExpandLevel?: number;
        modifyChild?: ((e) => void);
        navigationModeOption?: NavModeEnum;
        quicksearch?: boolean;
        receive?: ((e) => void);
        render?: ((e) => void);
        renderStatusNode?: ((e) => void);
        rowHeightPx?: number;
        scrollIntoViewOnExpandClick?: boolean;
        select?: ((e) => void);
        selectMode?: SelectModeType;
        showSpinner?: boolean;
        skeleton?: boolean;
        source?: string | WbNodeData[];
        strings?: any;
        tooltip?: DynamicBoolOrStringOption;
        types?: NodeTypeDefinitionMap;
        unselectable?: DynamicBoolOption;
        update?: ((e) => void);
    }

    Callback

    activate?: ((e) => void)

    e.node was activated.

    -

    Type declaration

    beforeActivate?: ((e) => WbCancelableEventResultType)

    e.node is about to be activated. +

    Type declaration

    beforeActivate?: ((e) => WbCancelableEventResultType)

    e.node is about to be activated. Return false to prevent default handling, i.e. activating the node. See also deactivate event.

    -
    beforeExpand?: ((e) => WbCancelableEventResultType)

    e.node is about to be expanded/collapsed. +

    beforeExpand?: ((e) => WbCancelableEventResultType)

    e.node is about to be expanded/collapsed. Return false to prevent default handling, i.e. expanding/collapsing the node.

    -
    beforeSelect?: ((e) => WbCancelableEventResultType)

    Return false to prevent default handling, i.e. (de)selecting the node.

    -
    buttonClick?: ((e) => void)

    Return false to prevent default handling, i.e. (de)selecting the node.

    -

    Type declaration

    change?: ((e) => void)

    Type declaration

    Return false to prevent default behavior, e.g. expand/collapse, (de)selection, or activation.

    -
    dblclick?: ((e) => WbCancelableEventResultType)

    Return false to prevent default behavior, e.g. expand/collapse.

    -
    deactivate?: ((e) => WbCancelableEventResultType)

    e.node was deactivated.

    +
    beforeSelect?: ((e) => WbCancelableEventResultType)

    Return false to prevent default handling, i.e. (de)selecting the node.

    +
    buttonClick?: ((e) => void)

    Return false to prevent default handling, i.e. (de)selecting the node.

    +

    Type declaration

    change?: ((e) => void)

    Type declaration

    Return false to prevent default behavior, e.g. expand/collapse, (de)selection, or activation.

    +
    dblclick?: ((e) => WbCancelableEventResultType)

    Return false to prevent default behavior, e.g. expand/collapse.

    +
    deactivate?: ((e) => WbCancelableEventResultType)

    e.node was deactivated.

    Return false to prevent default handling, e.g. deactivating the node and activating the next. See also activate event.

    -
    discard?: ((e) => void)

    e.node was discarded from the viewport and its HTML markup removed.

    -

    Type declaration

    error?: ((e) => void)

    An error occurred, e.g. during initialization or lazy loading.

    -

    Type declaration

    expand?: ((e) => void)

    e.node was expanded (e.flag === true) or collapsed (e.flag === false)

    -

    Type declaration

    focus?: ((e) => void)

    The tree received or lost focus. +

    discard?: ((e) => void)

    e.node was discarded from the viewport and its HTML markup removed.

    +

    Type declaration

    error?: ((e) => void)

    An error occurred, e.g. during initialization or lazy loading.

    +

    Type declaration

    expand?: ((e) => void)

    e.node was expanded (e.flag === true) or collapsed (e.flag === false)

    +

    Type declaration

    focus?: ((e) => void)

    The tree received or lost focus. Check e.flag for status.

    -

    Type declaration

    iconBadge?: ((e) => WbIconBadgeEventResultType)

    e.node is about to be rendered. We can add a badge to the icon cell here.

    -
    init?: ((e) => void)

    Fires when the tree markup was created and the initial source data was loaded. +

    Type declaration

    iconBadge?: ((e) => WbIconBadgeEventResultType)

    e.node is about to be rendered. We can add a badge to the icon cell here.

    +
    init?: ((e) => void)

    Fires when the tree markup was created and the initial source data was loaded. Typical use cases would be activating a node, setting focus, enabling other controls on the page, etc.
    Also sent if an error occured during initialization (check e.error for status).

    -

    Type declaration

    keydown?: ((e) => WbCancelableEventResultType)

    Fires when a key was pressed while the tree has focus. +

    Type declaration

    keydown?: ((e) => WbCancelableEventResultType)

    Fires when a key was pressed while the tree has focus. e.node is set if a node is currently active. Return false to prevent default navigation.

    -
    lazyLoad?: ((e) => void)

    Fires when a node that was marked 'lazy', is expanded for the first time. +

    lazyLoad?: ((e) => void)

    Fires when a node that was marked 'lazy', is expanded for the first time. Typically we return an endpoint URL or the Promise of a fetch request that provides a (potentially nested) list of child nodes.

    -

    Type declaration

    load?: ((e) => void)

    Fires when data was loaded (initial request, reload, or lazy loading), +

    Type declaration

    load?: ((e) => void)

    Fires when data was loaded (initial request, reload, or lazy loading), after the data is applied and rendered.

    -

    Type declaration

    modifyChild?: ((e) => void)

    Type declaration

    receive?: ((e) => void)

    Fires when data was fetched (initial request, reload, or lazy loading), +

    Type declaration

    modifyChild?: ((e) => void)

    Type declaration

    receive?: ((e) => void)

    Fires when data was fetched (initial request, reload, or lazy loading), but before the data is applied and rendered. Here we can modify and adjust the received data, for example to convert an external response to native Wunderbaum syntax.

    -

    Type declaration

    render?: ((e) => void)

    Fires when a node is about to be displayed. +

    Type declaration

    render?: ((e) => void)

    Fires when a node is about to be displayed. The default HTML markup is already created, but not yet added to the DOM. Now we can tweak the markup, create HTML elements in this node's column cells, etc. See also Custom Rendering for details.

    -

    Type declaration

    renderStatusNode?: ((e) => void)

    Same as render(e), but for the status nodes, i.e. e.node.statusNodeType.

    -

    Type declaration

    select?: ((e) => void)

    e.node was selected (e.flag === true) or deselected (e.flag === false)

    -

    Type declaration

    update?: ((e) => void)

    Fires when the viewport content was updated, after scroling, expanding etc.

    -

    Type declaration

    Other

    adjustHeight?: boolean

    If true, the tree will automatically adjust its height to fit the parent +

    Type declaration

    renderStatusNode?: ((e) => void)

    Same as render(e), but for the status nodes, i.e. e.node.statusNodeType.

    +

    Type declaration

    select?: ((e) => void)

    e.node was selected (e.flag === true) or deselected (e.flag === false)

    +

    Type declaration

    update?: ((e) => void)

    Fires when the viewport content was updated, after scroling, expanding etc.

    +

    Type declaration

    Other

    adjustHeight?: boolean

    If true, the tree will automatically adjust its height to fit the parent container. This is useful when the tree is embedded in a container with a fixed or calculated sized. If the parent container is unsized (e.g. grows with its content, height: auto), @@ -114,68 +117,77 @@ on the parent container.

    Set this option to false will disable auto-resizing.

    @default: true

    -
    autoCollapse?: boolean

    Collapse siblings when a node is expanded. +

    autoCollapse?: boolean

    Collapse siblings when a node is expanded. Default: false

    -

    If true, render a checkbox before the node tile to allow selection with the +

    If true, render a checkbox before the node tile to allow selection with the mouse. Pass "radio" to render a radio button instead. Default: false.

    -

    A list of maps that define column headers. If this option is set, +

    A list of maps that define column headers. If this option is set, Wunderbaum becomes a treegrid control instead of a plain tree. Column definitions can be passed as tree option, or be part of a source response. Default: [] meaning this is a plain tree.

    -
    connectTopBreadcrumb?: HTMLElement

    HTMLElement that receives the top nodes breadcrumb. +

    columnsFilterable?: boolean

    Default value for ColumnDefinition.filterable option. +Default: false

    +

    Since

    0.11.0

    +
    columnsMenu?: boolean

    Default value for ColumnDefinition.menu option. +Default: false

    +

    Since

    0.11.0

    +
    columnsResizable?: boolean

    Default value for ColumnDefinition.resizable option. +Default: false

    +

    Since

    0.10.0

    +
    columnsSortable?: boolean

    Default value for ColumnDefinition.sortable option. +Default: false

    +

    Since

    0.11.0

    +
    connectTopBreadcrumb?: HTMLElement

    HTMLElement that receives the top nodes breadcrumb. Default: undefined

    -
    debugLevel?: number

    0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose +

    debugLevel?: number

    0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose Default: 3 (4 in local debug environment)

    -
    element: string | HTMLDivElement

    The target div element (or selector) that shall become a Wunderbaum.

    -
    emptyChildListExpandable?: boolean

    If true, allow to expand parent nodes, even if node.children conatains +

    element: string | HTMLDivElement

    The target div element (or selector) that shall become a Wunderbaum.

    +
    emptyChildListExpandable?: boolean

    If true, allow to expand parent nodes, even if node.children conatains an empty array ([]). This is the the behavior of macOS Finder, for example. Default: false

    -
    enabled?: boolean

    Default: true

    -
    fixedCol?: boolean

    Default: false

    -
    header?: null | string | boolean

    Show/hide header (default: null) +

    enabled?: boolean

    Default: true

    +
    fixedCol?: boolean

    Default: false

    +
    header?: null | string | boolean

    Show/hide header (default: null) null: assume false for plain tree and true for grids. string: use text as header (only for plain trees) true: display a header (use tree's id as text for plain trees) false: do not display a header

    -

    Optional callback to render icons per node.

    -
    iconMap?: string | {
        [key: string]: string;
    }

    Icon font definition. May be a string (e.g. "fontawesome6" or "bootstrap") +

    Optional callback to render icons per node.

    +
    iconMap?: string | {
        [key: string]: string;
    }

    Icon font definition. May be a string (e.g. "fontawesome6" or "bootstrap") or a map of iconName: iconClass pairs. Note: the icon font must be loaded separately. Default: "bootstrap"

    -

    Type declaration

    • [key: string]: string

    Optional callback to render a tooltip for the icon.

    -
    id?: string

    The identifier of this tree. Used to reference the instance, especially +

    Type declaration

    • [key: string]: string

    Optional callback to render a tooltip for the icon.

    +
    id?: string

    The identifier of this tree. Used to reference the instance, especially when multiple trees are present (e.g. tree = mar10.Wunderbaum.getTree("demo")).

    Default: "wb_" + COUNTER.

    -
    minExpandLevel?: number

    Number of levels that are forced to be expanded, and have no expander icon. +

    minExpandLevel?: number

    Number of levels that are forced to be expanded, and have no expander icon. E.g. 1 would keep all toplevel nodes expanded. Default: 0

    -
    navigationModeOption?: NavModeEnum

    Default: NavModeEnum.startRow

    -
    quicksearch?: boolean

    Default: true

    -
    resizableColumns?: boolean

    Default value for ColumnDefinition.resizable option. -Default: false

    -

    Since

    0.10.0

    -
    rowHeightPx?: number

    Height of a node row div. +

    navigationModeOption?: NavModeEnum

    Default: NavModeEnum.startRow

    +
    quicksearch?: boolean

    Default: true

    +
    rowHeightPx?: number

    Height of a node row div. Default: 22

    -
    scrollIntoViewOnExpandClick?: boolean

    Scroll Node into view on Expand Click

    +
    scrollIntoViewOnExpandClick?: boolean

    Scroll Node into view on Expand Click

    Default

    true
     
    -
    selectMode?: SelectModeType

    Default: "multi"

    -
    showSpinner?: boolean
    skeleton?: boolean

    If true, add a wb-skeleton class to all nodes, that will result in a +

    selectMode?: SelectModeType

    Default: "multi"

    +
    showSpinner?: boolean
    skeleton?: boolean

    If true, add a wb-skeleton class to all nodes, that will result in a 'glow' effect. Typically used with initial dummy nodes, while loading the real data. Default: false.

    -
    source?: string | WbNodeData[]

    Define the initial tree data. Typically a URL of an endpoint that serves +

    source?: string | WbNodeData[]

    Define the initial tree data. Typically a URL of an endpoint that serves a JSON formatted structure, but also a callback, Promise, or static data is allowed.

    Default: {}.

    -
    strings?: any

    Translation map for some system messages.

    -

    Optional callback to render a tooltip for the node title. +

    strings?: any

    Translation map for some system messages.

    +

    Optional callback to render a tooltip for the node title. Pass true to use the node's title property as tooltip.

    -

    Define shared attributes for multiple nodes of the same type. +

    Define shared attributes for multiple nodes of the same type. This allows for more compact data models. Type definitions can be passed as tree option, or be part of a source response.

    Default: {}.

    -
    unselectable?: DynamicBoolOption

    Optional callback to make a node unselectable.

    -
    \ No newline at end of file +
    unselectable?: DynamicBoolOption

    Optional callback to make a node unselectable.

    +
    \ No newline at end of file diff --git a/docs/api/modules/common.html b/docs/api/modules/common.html index 4aae284..e5e4267 100644 --- a/docs/api/modules/common.html +++ b/docs/api/modules/common.html @@ -1,4 +1,4 @@ -common | wunderbaum - v0.10.2-0

    Module common

    Index

    Variables

    DEFAULT_DEBUGLEVEL +common | wunderbaum - v0.11.0
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/modules/types.html b/docs/api/modules/types.html index 57eb890..fd19616 100644 --- a/docs/api/modules/types.html +++ b/docs/api/modules/types.html @@ -1,4 +1,4 @@ -types | wunderbaum - v0.10.2-0

    Module types

    Index

    Enumerations

    ChangeType +types | wunderbaum - v0.11.0
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/modules/util.html b/docs/api/modules/util.html index 14e8a52..4a42f2d 100644 --- a/docs/api/modules/util.html +++ b/docs/api/modules/util.html @@ -1,4 +1,4 @@ -util | wunderbaum - v0.10.2-0

    Module util

    Index

    Function

    debounce +util | wunderbaum - v0.11.0

    Module util

    Index

    Function

    Other

    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/modules/wb_node.html b/docs/api/modules/wb_node.html index d48faf3..46388e9 100644 --- a/docs/api/modules/wb_node.html +++ b/docs/api/modules/wb_node.html @@ -1,2 +1,2 @@ -wb_node | wunderbaum - v0.10.2-0

    Module wb_node

    Index

    Classes

    \ No newline at end of file +wb_node | wunderbaum - v0.11.0

    Module wb_node

    Index

    Classes

    \ No newline at end of file diff --git a/docs/api/modules/wb_options.html b/docs/api/modules/wb_options.html index d1c393f..e53f90f 100644 --- a/docs/api/modules/wb_options.html +++ b/docs/api/modules/wb_options.html @@ -1,2 +1,2 @@ -wb_options | wunderbaum - v0.10.2-0

    Module wb_options

    Index

    Interfaces

    \ No newline at end of file +wb_options | wunderbaum - v0.11.0

    Module wb_options

    Index

    Interfaces

    \ No newline at end of file diff --git a/docs/api/modules/wunderbaum.html b/docs/api/modules/wunderbaum.html index 52e08c5..d963489 100644 --- a/docs/api/modules/wunderbaum.html +++ b/docs/api/modules/wunderbaum.html @@ -1,2 +1,2 @@ -wunderbaum | wunderbaum - v0.10.2-0

    Module wunderbaum

    Index

    Classes

    \ No newline at end of file +wunderbaum | wunderbaum - v0.11.0

    Module wunderbaum

    Index

    Classes

    \ No newline at end of file diff --git a/docs/api/types/types.ApplyCommandType.html b/docs/api/types/types.ApplyCommandType.html index e308d9b..77d221b 100644 --- a/docs/api/types/types.ApplyCommandType.html +++ b/docs/api/types/types.ApplyCommandType.html @@ -1 +1 @@ -ApplyCommandType | wunderbaum - v0.10.2-0

    Type alias ApplyCommandType

    ApplyCommandType: "addChild" | "addSibling" | "copy" | "cut" | "down" | "first" | "indent" | "last" | "left" | "moveDown" | "moveUp" | "outdent" | "pageDown" | "pageUp" | "parent" | "paste" | "remove" | "rename" | "right" | "up"
    \ No newline at end of file +ApplyCommandType | wunderbaum - v0.11.0

    Type alias ApplyCommandType

    ApplyCommandType: "addChild" | "addSibling" | "copy" | "cut" | "down" | "first" | "indent" | "last" | "left" | "moveDown" | "moveUp" | "outdent" | "pageDown" | "pageUp" | "parent" | "paste" | "remove" | "rename" | "right" | "up"
    \ No newline at end of file diff --git a/docs/api/types/types.BoolOptionResolver.html b/docs/api/types/types.BoolOptionResolver.html index 416aba2..e3027c7 100644 --- a/docs/api/types/types.BoolOptionResolver.html +++ b/docs/api/types/types.BoolOptionResolver.html @@ -1,2 +1,2 @@ -BoolOptionResolver | wunderbaum - v0.10.2-0

    Type alias BoolOptionResolver

    BoolOptionResolver: ((node) => boolean)

    When set as option, called when the value is needed (e.g. colspan type definition).

    -

    Type declaration

    \ No newline at end of file +BoolOptionResolver | wunderbaum - v0.11.0

    Type alias BoolOptionResolver

    BoolOptionResolver: ((node) => boolean)

    When set as option, called when the value is needed (e.g. colspan type definition).

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.BoolOrStringOptionResolver.html b/docs/api/types/types.BoolOrStringOptionResolver.html index b9fa8b9..840bf6d 100644 --- a/docs/api/types/types.BoolOrStringOptionResolver.html +++ b/docs/api/types/types.BoolOrStringOptionResolver.html @@ -1,2 +1,2 @@ -BoolOrStringOptionResolver | wunderbaum - v0.10.2-0

    Type alias BoolOrStringOptionResolver

    BoolOrStringOptionResolver: ((node) => boolean | string)

    When set as option, called when the value is needed (e.g. icon type definition).

    -

    Type declaration

      • (node): boolean | string
      • Parameters

        Returns boolean | string

    \ No newline at end of file +BoolOrStringOptionResolver | wunderbaum - v0.11.0

    Type alias BoolOrStringOptionResolver

    BoolOrStringOptionResolver: ((node) => boolean | string)

    When set as option, called when the value is needed (e.g. icon type definition).

    +

    Type declaration

      • (node): boolean | string
      • Parameters

        Returns boolean | string

    \ No newline at end of file diff --git a/docs/api/types/types.CheckboxOption.html b/docs/api/types/types.CheckboxOption.html index 6c1cd1a..97cb32e 100644 --- a/docs/api/types/types.CheckboxOption.html +++ b/docs/api/types/types.CheckboxOption.html @@ -1,2 +1,2 @@ -CheckboxOption | wunderbaum - v0.10.2-0

    Type alias CheckboxOption

    CheckboxOption: boolean | "radio"

    Show/hide checkbox or display a radiobutton icon instead.

    -
    \ No newline at end of file +CheckboxOption | wunderbaum - v0.11.0

    Type alias CheckboxOption

    CheckboxOption: boolean | "radio"

    Show/hide checkbox or display a radiobutton icon instead.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.ColumnDefinitionList.html b/docs/api/types/types.ColumnDefinitionList.html index 4440371..8bb017d 100644 --- a/docs/api/types/types.ColumnDefinitionList.html +++ b/docs/api/types/types.ColumnDefinitionList.html @@ -1 +1 @@ -ColumnDefinitionList | wunderbaum - v0.10.2-0

    Type alias ColumnDefinitionList

    ColumnDefinitionList: ColumnDefinition[]
    \ No newline at end of file +ColumnDefinitionList | wunderbaum - v0.11.0

    Type alias ColumnDefinitionList

    ColumnDefinitionList: ColumnDefinition[]
    \ No newline at end of file diff --git a/docs/api/types/types.ColumnEventInfoMap.html b/docs/api/types/types.ColumnEventInfoMap.html index f6a4c2e..66e43e2 100644 --- a/docs/api/types/types.ColumnEventInfoMap.html +++ b/docs/api/types/types.ColumnEventInfoMap.html @@ -1 +1 @@ -ColumnEventInfoMap | wunderbaum - v0.10.2-0

    Type alias ColumnEventInfoMap

    ColumnEventInfoMap: {
        [colId: string]: ColumnEventInfo;
    }

    Type declaration

    \ No newline at end of file +ColumnEventInfoMap | wunderbaum - v0.11.0

    Type alias ColumnEventInfoMap

    ColumnEventInfoMap: {
        [colId: string]: ColumnEventInfo;
    }

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.DndOptionsType.html b/docs/api/types/types.DndOptionsType.html index 15d66ab..cc59da7 100644 --- a/docs/api/types/types.DndOptionsType.html +++ b/docs/api/types/types.DndOptionsType.html @@ -1,4 +1,4 @@ -DndOptionsType | wunderbaum - v0.10.2-0

    Type alias DndOptionsType

    DndOptionsType: {
        autoExpandMS?: 1500;
        drag?: null | ((e) => void);
        dragEnd?: null | ((e) => void);
        dragEnter?: null | ((e) => DropRegionType | DropRegionTypeSet | boolean);
        dragExpand?: null | ((e) => boolean);
        dragLeave?: null | ((e) => void);
        dragOver?: null | ((e) => void);
        dragStart?: null | ((e) => boolean);
        drop?: null | ((e) => void);
        dropEffectDefault?: DropEffectType;
        effectAllowed?: DropEffectAllowedType;
        guessDropEffect: boolean;
        multiSource?: false;
        preventForeignNodes?: boolean;
        preventLazyParents?: boolean;
        preventNonNodes?: boolean;
        preventRecursion?: boolean;
        preventSameParent?: boolean;
        preventVoidMoves?: boolean;
        scroll?: boolean;
        scrollSensitivity?: 20;
        scrollSpeed?: 5;
        serializeClipboardData?: boolean | ((nodeData, node) => string);
        sourceCopyHook?: null;
    }

    Type declaration

    • Optional autoExpandMS?: 1500

      Expand nodes after n milliseconds of hovering

      +DndOptionsType | wunderbaum - v0.11.0

      Type alias DndOptionsType

      DndOptionsType: {
          autoExpandMS?: 1500;
          drag?: null | ((e) => void);
          dragEnd?: null | ((e) => void);
          dragEnter?: null | ((e) => DropRegionType | DropRegionTypeSet | boolean);
          dragExpand?: null | ((e) => boolean);
          dragLeave?: null | ((e) => void);
          dragOver?: null | ((e) => void);
          dragStart?: null | ((e) => boolean);
          drop?: null | ((e) => void);
          dropEffectDefault?: DropEffectType;
          effectAllowed?: DropEffectAllowedType;
          guessDropEffect: boolean;
          multiSource?: false;
          preventForeignNodes?: boolean;
          preventLazyParents?: boolean;
          preventNonNodes?: boolean;
          preventRecursion?: boolean;
          preventSameParent?: boolean;
          preventVoidMoves?: boolean;
          scroll?: boolean;
          scrollSensitivity?: 20;
          scrollSpeed?: 5;
          serializeClipboardData?: boolean | ((nodeData, node) => string);
          sourceCopyHook?: null;
      }

      Type declaration

      • Optional autoExpandMS?: 1500

        Expand nodes after n milliseconds of hovering

        Default

        1500
         
      • Optional drag?: null | ((e) => void)

        Callback(sourceNode, data)

        @@ -75,4 +75,4 @@
      • Optional sourceCopyHook?: null

        Optional callback passed to toDict on dragStart

        Default

        null
         
        -
      \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/types/types.DropEffectAllowedType.html b/docs/api/types/types.DropEffectAllowedType.html index 42c9530..839ce6b 100644 --- a/docs/api/types/types.DropEffectAllowedType.html +++ b/docs/api/types/types.DropEffectAllowedType.html @@ -1 +1 @@ -DropEffectAllowedType | wunderbaum - v0.10.2-0

    Type alias DropEffectAllowedType

    DropEffectAllowedType: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all"
    \ No newline at end of file +DropEffectAllowedType | wunderbaum - v0.11.0

    Type alias DropEffectAllowedType

    DropEffectAllowedType: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all"
    \ No newline at end of file diff --git a/docs/api/types/types.DropEffectType.html b/docs/api/types/types.DropEffectType.html index 7c1ee40..7df40d0 100644 --- a/docs/api/types/types.DropEffectType.html +++ b/docs/api/types/types.DropEffectType.html @@ -1 +1 @@ -DropEffectType | wunderbaum - v0.10.2-0

    Type alias DropEffectType

    DropEffectType: "none" | "copy" | "link" | "move"
    \ No newline at end of file +DropEffectType | wunderbaum - v0.11.0

    Type alias DropEffectType

    DropEffectType: "none" | "copy" | "link" | "move"
    \ No newline at end of file diff --git a/docs/api/types/types.DropRegionType.html b/docs/api/types/types.DropRegionType.html index 93862ea..3bf8af2 100644 --- a/docs/api/types/types.DropRegionType.html +++ b/docs/api/types/types.DropRegionType.html @@ -1 +1 @@ -DropRegionType | wunderbaum - v0.10.2-0

    Type alias DropRegionType

    DropRegionType: "over" | "before" | "after"
    \ No newline at end of file +DropRegionType | wunderbaum - v0.11.0

    Type alias DropRegionType

    DropRegionType: "over" | "before" | "after"
    \ No newline at end of file diff --git a/docs/api/types/types.DropRegionTypeSet.html b/docs/api/types/types.DropRegionTypeSet.html index 223407d..e6b36f9 100644 --- a/docs/api/types/types.DropRegionTypeSet.html +++ b/docs/api/types/types.DropRegionTypeSet.html @@ -1 +1 @@ -DropRegionTypeSet | wunderbaum - v0.10.2-0

    Type alias DropRegionTypeSet

    DropRegionTypeSet: Set<DropRegionType>
    \ No newline at end of file +DropRegionTypeSet | wunderbaum - v0.11.0

    Type alias DropRegionTypeSet

    DropRegionTypeSet: Set<DropRegionType>
    \ No newline at end of file diff --git a/docs/api/types/types.DynamicBoolOption.html b/docs/api/types/types.DynamicBoolOption.html index 9193569..ee84d4c 100644 --- a/docs/api/types/types.DynamicBoolOption.html +++ b/docs/api/types/types.DynamicBoolOption.html @@ -1,3 +1,3 @@ -DynamicBoolOption | wunderbaum - v0.10.2-0

    Type alias DynamicBoolOption

    DynamicBoolOption: boolean | BoolOptionResolver

    See also WunderbaumNode.getOption() +DynamicBoolOption | wunderbaum - v0.11.0

    Type alias DynamicBoolOption

    DynamicBoolOption: boolean | BoolOptionResolver

    See also WunderbaumNode.getOption() to evaluate node.NAME setting and tree.types[node.type].NAME.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/types/types.DynamicBoolOrStringOption.html b/docs/api/types/types.DynamicBoolOrStringOption.html index 1e96755..31fab38 100644 --- a/docs/api/types/types.DynamicBoolOrStringOption.html +++ b/docs/api/types/types.DynamicBoolOrStringOption.html @@ -1 +1 @@ -DynamicBoolOrStringOption | wunderbaum - v0.10.2-0

    Type alias DynamicBoolOrStringOption

    DynamicBoolOrStringOption: boolean | string | BoolOrStringOptionResolver
    \ No newline at end of file +DynamicBoolOrStringOption | wunderbaum - v0.11.0

    Type alias DynamicBoolOrStringOption

    DynamicBoolOrStringOption: boolean | string | BoolOrStringOptionResolver
    \ No newline at end of file diff --git a/docs/api/types/types.DynamicCheckboxOption.html b/docs/api/types/types.DynamicCheckboxOption.html index 583acdf..46cc4a4 100644 --- a/docs/api/types/types.DynamicCheckboxOption.html +++ b/docs/api/types/types.DynamicCheckboxOption.html @@ -1 +1 @@ -DynamicCheckboxOption | wunderbaum - v0.10.2-0

    Type alias DynamicCheckboxOption

    \ No newline at end of file +DynamicCheckboxOption | wunderbaum - v0.11.0

    Type alias DynamicCheckboxOption

    \ No newline at end of file diff --git a/docs/api/types/types.DynamicIconOption.html b/docs/api/types/types.DynamicIconOption.html index efe9a39..911d23d 100644 --- a/docs/api/types/types.DynamicIconOption.html +++ b/docs/api/types/types.DynamicIconOption.html @@ -1 +1 @@ -DynamicIconOption | wunderbaum - v0.10.2-0

    Type alias DynamicIconOption

    \ No newline at end of file +DynamicIconOption | wunderbaum - v0.11.0

    Type alias DynamicIconOption

    \ No newline at end of file diff --git a/docs/api/types/types.DynamicStringOption.html b/docs/api/types/types.DynamicStringOption.html index 99bbd91..6e1164a 100644 --- a/docs/api/types/types.DynamicStringOption.html +++ b/docs/api/types/types.DynamicStringOption.html @@ -1 +1 @@ -DynamicStringOption | wunderbaum - v0.10.2-0

    Type alias DynamicStringOption

    DynamicStringOption: string | BoolOptionResolver
    \ No newline at end of file +DynamicStringOption | wunderbaum - v0.11.0

    Type alias DynamicStringOption

    DynamicStringOption: string | BoolOptionResolver
    \ No newline at end of file diff --git a/docs/api/types/types.DynamicTooltipOption.html b/docs/api/types/types.DynamicTooltipOption.html index a3b660c..84f66c3 100644 --- a/docs/api/types/types.DynamicTooltipOption.html +++ b/docs/api/types/types.DynamicTooltipOption.html @@ -1 +1 @@ -DynamicTooltipOption | wunderbaum - v0.10.2-0

    Type alias DynamicTooltipOption

    \ No newline at end of file +DynamicTooltipOption | wunderbaum - v0.11.0

    Type alias DynamicTooltipOption

    \ No newline at end of file diff --git a/docs/api/types/types.EditOptionsType.html b/docs/api/types/types.EditOptionsType.html index 88ca42c..3073265 100644 --- a/docs/api/types/types.EditOptionsType.html +++ b/docs/api/types/types.EditOptionsType.html @@ -1,4 +1,4 @@ -EditOptionsType | wunderbaum - v0.10.2-0

    Type alias EditOptionsType

    EditOptionsType: {
        apply?: null | ((e) => any) | Promise<any>;
        beforeEdit?: null | ((e) => boolean) | string;
        debounce?: number;
        edit?: null | ((e) => void);
        maxlength?: null | number;
        minlength?: number;
        select?: boolean;
        slowClickDelay?: number;
        trigger?: string[];
        trim?: boolean;
        validity?: boolean;
    }

    Note:
    +EditOptionsType | wunderbaum - v0.11.0

    Type alias EditOptionsType

    EditOptionsType: {
        apply?: null | ((e) => any) | Promise<any>;
        beforeEdit?: null | ((e) => boolean) | string;
        debounce?: number;
        edit?: null | ((e) => void);
        maxlength?: null | number;
        minlength?: number;
        select?: boolean;
        slowClickDelay?: number;
        trigger?: string[];
        trim?: boolean;
        validity?: boolean;
    }

    Note:
    This options are used for renaming node titles.
    There is also the tree.change event to handle modifying node data from input controls that are embedded in grid cells.

    @@ -32,4 +32,4 @@
  • Optional validity?: boolean

    Permanently apply node title input validations (CSS and tooltip) on keydown.

    Default

    true
     
    -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/types/types.FilterModeType.html b/docs/api/types/types.FilterModeType.html index 8e909ce..96ceda6 100644 --- a/docs/api/types/types.FilterModeType.html +++ b/docs/api/types/types.FilterModeType.html @@ -1 +1 @@ -FilterModeType | wunderbaum - v0.10.2-0

    Type alias FilterModeType

    FilterModeType: null | "dim" | "hide"
    \ No newline at end of file +FilterModeType | wunderbaum - v0.11.0

    Type alias FilterModeType

    FilterModeType: null | "dim" | "hide"
    \ No newline at end of file diff --git a/docs/api/types/types.FilterOptionsType.html b/docs/api/types/types.FilterOptionsType.html index f681c91..75bb779 100644 --- a/docs/api/types/types.FilterOptionsType.html +++ b/docs/api/types/types.FilterOptionsType.html @@ -1,4 +1,4 @@ -FilterOptionsType | wunderbaum - v0.10.2-0

    Type alias FilterOptionsType

    FilterOptionsType: {
        autoApply?: boolean;
        connectInput?: null | string | Element;
    } & FilterNodesOptions

    Passed as tree options to configure default filtering behavior.

    +FilterOptionsType | wunderbaum - v0.11.0

    Type alias FilterOptionsType

    FilterOptionsType: {
        autoApply?: boolean;
        connectInput?: null | string | Element;
    } & FilterNodesOptions

    Passed as tree options to configure default filtering behavior.

    Type declaration

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/types/types.GridOptionsType.html b/docs/api/types/types.GridOptionsType.html index f057a85..0cc64db 100644 --- a/docs/api/types/types.GridOptionsType.html +++ b/docs/api/types/types.GridOptionsType.html @@ -1 +1 @@ -GridOptionsType | wunderbaum - v0.10.2-0

    Type alias GridOptionsType

    GridOptionsType: object
    \ No newline at end of file +GridOptionsType | wunderbaum - v0.11.0

    Type alias GridOptionsType

    GridOptionsType: object
    \ No newline at end of file diff --git a/docs/api/types/types.IconOption.html b/docs/api/types/types.IconOption.html index 2cd17da..1e3e5f6 100644 --- a/docs/api/types/types.IconOption.html +++ b/docs/api/types/types.IconOption.html @@ -1,7 +1,7 @@ -IconOption | wunderbaum - v0.10.2-0

    Type alias IconOption

    IconOption: boolean | string

    An icon may either be +IconOption | wunderbaum - v0.11.0

    Type alias IconOption

    IconOption: boolean | string

    An icon may either be a string-tag that references an entry in the iconMap (e.g. "folderOpen")), an HTML string that contains a < and is used as-is, an image URL string that contains a . or / and is rendered as <img src='...'>, a class string such as "bi bi-folder", or a boolean value that indicates if the default icon should be used or hidden.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/types/types.InsertNodeType.html b/docs/api/types/types.InsertNodeType.html index 57aeff7..2cc9aa3 100644 --- a/docs/api/types/types.InsertNodeType.html +++ b/docs/api/types/types.InsertNodeType.html @@ -1 +1 @@ -InsertNodeType | wunderbaum - v0.10.2-0

    Type alias InsertNodeType

    InsertNodeType: "before" | "after" | "prependChild" | "appendChild"
    \ No newline at end of file +InsertNodeType | wunderbaum - v0.11.0

    Type alias InsertNodeType

    InsertNodeType: "before" | "after" | "prependChild" | "appendChild"
    \ No newline at end of file diff --git a/docs/api/types/types.KeynavOptionsType.html b/docs/api/types/types.KeynavOptionsType.html index 43c8fd7..e69d336 100644 --- a/docs/api/types/types.KeynavOptionsType.html +++ b/docs/api/types/types.KeynavOptionsType.html @@ -1 +1 @@ -KeynavOptionsType | wunderbaum - v0.10.2-0

    Type alias KeynavOptionsType

    KeynavOptionsType: object
    \ No newline at end of file +KeynavOptionsType | wunderbaum - v0.11.0

    Type alias KeynavOptionsType

    KeynavOptionsType: object
    \ No newline at end of file diff --git a/docs/api/types/types.LoggerOptionsType.html b/docs/api/types/types.LoggerOptionsType.html index 3934454..83126fb 100644 --- a/docs/api/types/types.LoggerOptionsType.html +++ b/docs/api/types/types.LoggerOptionsType.html @@ -1 +1 @@ -LoggerOptionsType | wunderbaum - v0.10.2-0

    Type alias LoggerOptionsType

    LoggerOptionsType: object
    \ No newline at end of file +LoggerOptionsType | wunderbaum - v0.11.0

    Type alias LoggerOptionsType

    LoggerOptionsType: object
    \ No newline at end of file diff --git a/docs/api/types/types.MatcherCallback.html b/docs/api/types/types.MatcherCallback.html index 5525bd2..6f96b44 100644 --- a/docs/api/types/types.MatcherCallback.html +++ b/docs/api/types/types.MatcherCallback.html @@ -1,2 +1,2 @@ -MatcherCallback | wunderbaum - v0.10.2-0

    Type alias MatcherCallback

    MatcherCallback: ((node) => boolean)

    Passed to find...() methods. Should return true if node matches.

    -

    Type declaration

    \ No newline at end of file +MatcherCallback | wunderbaum - v0.11.0

    Type alias MatcherCallback

    MatcherCallback: ((node) => boolean)

    Passed to find...() methods. Should return true if node matches.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeAnyCallback.html b/docs/api/types/types.NodeAnyCallback.html index a1df3fc..4372597 100644 --- a/docs/api/types/types.NodeAnyCallback.html +++ b/docs/api/types/types.NodeAnyCallback.html @@ -1,2 +1,2 @@ -NodeAnyCallback | wunderbaum - v0.10.2-0

    Type alias NodeAnyCallback

    NodeAnyCallback: ((node) => any)

    A callback that receives a node instance and returns an arbitrary value type.

    -

    Type declaration

    \ No newline at end of file +NodeAnyCallback | wunderbaum - v0.11.0

    Type alias NodeAnyCallback

    NodeAnyCallback: ((node) => any)

    A callback that receives a node instance and returns an arbitrary value type.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeFilterCallback.html b/docs/api/types/types.NodeFilterCallback.html index 1a93b57..d362445 100644 --- a/docs/api/types/types.NodeFilterCallback.html +++ b/docs/api/types/types.NodeFilterCallback.html @@ -1 +1 @@ -NodeFilterCallback | wunderbaum - v0.10.2-0

    Type alias NodeFilterCallback

    NodeFilterCallback: ((node) => NodeFilterResponse)

    Type declaration

    \ No newline at end of file +NodeFilterCallback | wunderbaum - v0.11.0

    Type alias NodeFilterCallback

    NodeFilterCallback: ((node) => NodeFilterResponse)

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeFilterResponse.html b/docs/api/types/types.NodeFilterResponse.html index fe97a27..adc0bf0 100644 --- a/docs/api/types/types.NodeFilterResponse.html +++ b/docs/api/types/types.NodeFilterResponse.html @@ -1 +1 @@ -NodeFilterResponse | wunderbaum - v0.10.2-0

    Type alias NodeFilterResponse

    NodeFilterResponse: "skip" | "branch" | boolean | void
    \ No newline at end of file +NodeFilterResponse | wunderbaum - v0.11.0

    Type alias NodeFilterResponse

    NodeFilterResponse: "skip" | "branch" | boolean | void
    \ No newline at end of file diff --git a/docs/api/types/types.NodePropertyGetterCallback.html b/docs/api/types/types.NodePropertyGetterCallback.html index b493dfa..1e79a45 100644 --- a/docs/api/types/types.NodePropertyGetterCallback.html +++ b/docs/api/types/types.NodePropertyGetterCallback.html @@ -1,2 +1,2 @@ -NodePropertyGetterCallback | wunderbaum - v0.10.2-0

    Type alias NodePropertyGetterCallback

    NodePropertyGetterCallback: ((node, propName) => any)

    A callback that receives a node instance and property name returns a value.

    -

    Type declaration

      • (node, propName): any
      • Parameters

        Returns any

    \ No newline at end of file +NodePropertyGetterCallback | wunderbaum - v0.11.0

    Type alias NodePropertyGetterCallback

    NodePropertyGetterCallback: ((node, propName) => any)

    A callback that receives a node instance and property name returns a value.

    +

    Type declaration

      • (node, propName): any
      • Parameters

        Returns any

    \ No newline at end of file diff --git a/docs/api/types/types.NodeSelectCallback.html b/docs/api/types/types.NodeSelectCallback.html index 69f6205..6ffaac7 100644 --- a/docs/api/types/types.NodeSelectCallback.html +++ b/docs/api/types/types.NodeSelectCallback.html @@ -1,2 +1,2 @@ -NodeSelectCallback | wunderbaum - v0.10.2-0

    Type alias NodeSelectCallback

    NodeSelectCallback: ((node) => boolean | void)

    A callback that receives a node instance and returns a string value.

    -

    Type declaration

      • (node): boolean | void
      • Parameters

        Returns boolean | void

    \ No newline at end of file +NodeSelectCallback | wunderbaum - v0.11.0

    Type alias NodeSelectCallback

    NodeSelectCallback: ((node) => boolean | void)

    A callback that receives a node instance and returns a string value.

    +

    Type declaration

      • (node): boolean | void
      • Parameters

        Returns boolean | void

    \ No newline at end of file diff --git a/docs/api/types/types.NodeStringCallback.html b/docs/api/types/types.NodeStringCallback.html index a7f5e2d..768b4c7 100644 --- a/docs/api/types/types.NodeStringCallback.html +++ b/docs/api/types/types.NodeStringCallback.html @@ -1,2 +1,2 @@ -NodeStringCallback | wunderbaum - v0.10.2-0

    Type alias NodeStringCallback

    NodeStringCallback: ((node) => string)

    A callback that receives a node instance and returns a string value.

    -

    Type declaration

    \ No newline at end of file +NodeStringCallback | wunderbaum - v0.11.0

    Type alias NodeStringCallback

    NodeStringCallback: ((node) => string)

    A callback that receives a node instance and returns a string value.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeToDictCallback.html b/docs/api/types/types.NodeToDictCallback.html index c48035c..16a7233 100644 --- a/docs/api/types/types.NodeToDictCallback.html +++ b/docs/api/types/types.NodeToDictCallback.html @@ -1,2 +1,3 @@ -NodeToDictCallback | wunderbaum - v0.10.2-0

    Type alias NodeToDictCallback

    NodeToDictCallback: ((dict, node) => NodeVisitResponse)

    A callback that receives a node-data dictionary and a node instance and returns an iteration modifier.

    -

    Type declaration

    \ No newline at end of file +NodeToDictCallback | wunderbaum - v0.11.0

    Type alias NodeToDictCallback

    NodeToDictCallback: ((dict, node) => NodeVisitResponse)

    A callback that receives a node-data dictionary and a node instance and +returns an iteration modifier.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeTypeDefinitionMap.html b/docs/api/types/types.NodeTypeDefinitionMap.html index 66af63e..cc54dcf 100644 --- a/docs/api/types/types.NodeTypeDefinitionMap.html +++ b/docs/api/types/types.NodeTypeDefinitionMap.html @@ -1 +1 @@ -NodeTypeDefinitionMap | wunderbaum - v0.10.2-0

    Type alias NodeTypeDefinitionMap

    NodeTypeDefinitionMap: {
        [type: string]: NodeTypeDefinition;
    }

    Type declaration

    \ No newline at end of file +NodeTypeDefinitionMap | wunderbaum - v0.11.0

    Type alias NodeTypeDefinitionMap

    NodeTypeDefinitionMap: {
        [type: string]: NodeTypeDefinition;
    }

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeVisitCallback.html b/docs/api/types/types.NodeVisitCallback.html index 72ea548..9f4757e 100644 --- a/docs/api/types/types.NodeVisitCallback.html +++ b/docs/api/types/types.NodeVisitCallback.html @@ -1,2 +1,2 @@ -NodeVisitCallback | wunderbaum - v0.10.2-0

    Type alias NodeVisitCallback

    NodeVisitCallback: ((node) => NodeVisitResponse)

    A callback that receives a node instance and returns an iteration modifier.

    -

    Type declaration

    \ No newline at end of file +NodeVisitCallback | wunderbaum - v0.11.0

    Type alias NodeVisitCallback

    NodeVisitCallback: ((node) => NodeVisitResponse)

    A callback that receives a node instance and returns an iteration modifier.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeVisitResponse.html b/docs/api/types/types.NodeVisitResponse.html index 4c98342..1e38339 100644 --- a/docs/api/types/types.NodeVisitResponse.html +++ b/docs/api/types/types.NodeVisitResponse.html @@ -1,2 +1,4 @@ -NodeVisitResponse | wunderbaum - v0.10.2-0

    Type alias NodeVisitResponse

    NodeVisitResponse: "skip" | boolean | void

    A callback that receives a node instance and returns a string value.

    -
    \ No newline at end of file +NodeVisitResponse | wunderbaum - v0.11.0

    Type alias NodeVisitResponse

    NodeVisitResponse: "skip" | boolean | void

    Returned by NodeVisitCallback to control iteration. +false stops iteration, skip skips descendants but continues. +All other values continue iteration.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.SelectModeType.html b/docs/api/types/types.SelectModeType.html index 2cf4f18..f490fab 100644 --- a/docs/api/types/types.SelectModeType.html +++ b/docs/api/types/types.SelectModeType.html @@ -1 +1 @@ -SelectModeType | wunderbaum - v0.10.2-0

    Type alias SelectModeType

    SelectModeType: "single" | "multi" | "hier"
    \ No newline at end of file +SelectModeType | wunderbaum - v0.11.0

    Type alias SelectModeType

    SelectModeType: "single" | "multi" | "hier"
    \ No newline at end of file diff --git a/docs/api/types/types.SortCallback.html b/docs/api/types/types.SortCallback.html index 69f8fe0..a8421b1 100644 --- a/docs/api/types/types.SortCallback.html +++ b/docs/api/types/types.SortCallback.html @@ -1,2 +1,2 @@ -SortCallback | wunderbaum - v0.10.2-0

    Type alias SortCallback

    SortCallback: ((a, b) => number)

    Passed to sortChildren() methods. Should return -1, 0, or 1.

    -

    Type declaration

    \ No newline at end of file +SortCallback | wunderbaum - v0.11.0

    Type alias SortCallback

    SortCallback: ((a, b) => number)

    Passed to sortChildren() methods. Should return -1, 0, or 1.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.SortOrderType.html b/docs/api/types/types.SortOrderType.html index c19c7c7..28b0ac9 100644 --- a/docs/api/types/types.SortOrderType.html +++ b/docs/api/types/types.SortOrderType.html @@ -1,2 +1,2 @@ -SortOrderType | wunderbaum - v0.10.2-0

    Type alias SortOrderType

    SortOrderType: "asc" | "desc" | undefined

    A value that can either be true, false, or undefined.

    -
    \ No newline at end of file +SortOrderType | wunderbaum - v0.11.0

    Type alias SortOrderType

    SortOrderType: "asc" | "desc" | undefined

    A value that can either be true, false, or undefined.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.SourceListType.html b/docs/api/types/types.SourceListType.html index 48d6125..93ca77f 100644 --- a/docs/api/types/types.SourceListType.html +++ b/docs/api/types/types.SourceListType.html @@ -1 +1 @@ -SourceListType | wunderbaum - v0.10.2-0

    Type alias SourceListType

    SourceListType: WbNodeData[]
    \ No newline at end of file +SourceListType | wunderbaum - v0.11.0

    Type alias SourceListType

    SourceListType: WbNodeData[]
    \ No newline at end of file diff --git a/docs/api/types/types.SourceType.html b/docs/api/types/types.SourceType.html index 6228ff5..79bff9d 100644 --- a/docs/api/types/types.SourceType.html +++ b/docs/api/types/types.SourceType.html @@ -1,2 +1,2 @@ -SourceType | wunderbaum - v0.10.2-0

    Type alias SourceType

    Possible initilization for tree nodes.

    -
    \ No newline at end of file +SourceType | wunderbaum - v0.11.0

    Type alias SourceType

    Possible initilization for tree nodes.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.TooltipOption.html b/docs/api/types/types.TooltipOption.html index 3e1efb2..64b5e97 100644 --- a/docs/api/types/types.TooltipOption.html +++ b/docs/api/types/types.TooltipOption.html @@ -1,2 +1,2 @@ -TooltipOption | wunderbaum - v0.10.2-0

    Type alias TooltipOption

    TooltipOption: boolean | string

    Show/hide tooltip or display a string.

    -
    \ No newline at end of file +TooltipOption | wunderbaum - v0.11.0

    Type alias TooltipOption

    TooltipOption: boolean | string

    Show/hide tooltip or display a string.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.TristateType.html b/docs/api/types/types.TristateType.html index 7b3656b..de3360a 100644 --- a/docs/api/types/types.TristateType.html +++ b/docs/api/types/types.TristateType.html @@ -1,2 +1,2 @@ -TristateType | wunderbaum - v0.10.2-0

    Type alias TristateType

    TristateType: boolean | undefined

    A value that can either be true, false, or undefined.

    -
    \ No newline at end of file +TristateType | wunderbaum - v0.11.0

    Type alias TristateType

    TristateType: boolean | undefined

    A value that can either be true, false, or undefined.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.WbCancelableEventResultType.html b/docs/api/types/types.WbCancelableEventResultType.html index f562deb..f88b67b 100644 --- a/docs/api/types/types.WbCancelableEventResultType.html +++ b/docs/api/types/types.WbCancelableEventResultType.html @@ -1,2 +1,2 @@ -WbCancelableEventResultType | wunderbaum - v0.10.2-0

    Type alias WbCancelableEventResultType

    WbCancelableEventResultType: false | void

    A callback that receives a node instance and returns a string value.

    -
    \ No newline at end of file +WbCancelableEventResultType | wunderbaum - v0.11.0

    Type alias WbCancelableEventResultType

    WbCancelableEventResultType: false | void

    A callback that receives a node instance and returns a string value.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.WbIconBadgeCallback.html b/docs/api/types/types.WbIconBadgeCallback.html index d8b3d28..6e90775 100644 --- a/docs/api/types/types.WbIconBadgeCallback.html +++ b/docs/api/types/types.WbIconBadgeCallback.html @@ -1,2 +1,2 @@ -WbIconBadgeCallback | wunderbaum - v0.10.2-0

    Type alias WbIconBadgeCallback

    WbIconBadgeCallback: ((e) => WbIconBadgeEventResultType)

    Used for tree.iconBadge event.

    -
    \ No newline at end of file +WbIconBadgeCallback | wunderbaum - v0.11.0

    Type alias WbIconBadgeCallback

    WbIconBadgeCallback: ((e) => WbIconBadgeEventResultType)

    Used for tree.iconBadge event.

    +
    \ No newline at end of file diff --git a/docs/api/types/util.EventCallbackType.html b/docs/api/types/util.EventCallbackType.html index e205d73..34b9c38 100644 --- a/docs/api/types/util.EventCallbackType.html +++ b/docs/api/types/util.EventCallbackType.html @@ -1 +1 @@ -EventCallbackType | wunderbaum - v0.10.2-0

    Type alias EventCallbackType

    EventCallbackType: ((e) => boolean | void)

    Type declaration

      • (e): boolean | void
      • Parameters

        • e: Event

        Returns boolean | void

    \ No newline at end of file +EventCallbackType | wunderbaum - v0.11.0

    Type alias EventCallbackType

    EventCallbackType: ((e) => boolean | void)

    Type declaration

      • (e): boolean | void
      • Parameters

        • e: Event

        Returns boolean | void

    \ No newline at end of file diff --git a/docs/api/types/util.FunctionType.html b/docs/api/types/util.FunctionType.html index ea4fb22..2823a7b 100644 --- a/docs/api/types/util.FunctionType.html +++ b/docs/api/types/util.FunctionType.html @@ -1 +1 @@ -FunctionType | wunderbaum - v0.10.2-0

    Type alias FunctionType

    FunctionType: ((...args) => any)

    Type declaration

      • (...args): any
      • Parameters

        • Rest ...args: any[]

        Returns any

    \ No newline at end of file +FunctionType | wunderbaum - v0.11.0

    Type alias FunctionType

    FunctionType: ((...args) => any)

    Type declaration

      • (...args): any
      • Parameters

        • Rest ...args: any[]

        Returns any

    \ No newline at end of file diff --git a/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html b/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html index 5c2dfcf..ddb415b 100644 --- a/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html +++ b/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html @@ -1 +1 @@ -DEFAULT_DEBUGLEVEL | wunderbaum - v0.10.2-0

    Variable DEFAULT_DEBUGLEVELConst

    DEFAULT_DEBUGLEVEL: 4 = 4
    \ No newline at end of file +DEFAULT_DEBUGLEVEL | wunderbaum - v0.11.0

    Variable DEFAULT_DEBUGLEVELConst

    DEFAULT_DEBUGLEVEL: 4 = 4
    \ No newline at end of file diff --git a/docs/api/variables/common.DEFAULT_MIN_COL_WIDTH.html b/docs/api/variables/common.DEFAULT_MIN_COL_WIDTH.html index fc004f2..1fea800 100644 --- a/docs/api/variables/common.DEFAULT_MIN_COL_WIDTH.html +++ b/docs/api/variables/common.DEFAULT_MIN_COL_WIDTH.html @@ -1,2 +1,2 @@ -DEFAULT_MIN_COL_WIDTH | wunderbaum - v0.10.2-0

    Variable DEFAULT_MIN_COL_WIDTHConst

    DEFAULT_MIN_COL_WIDTH: 4 = 4

    Minimum column width if not set otherwise.

    -
    \ No newline at end of file +DEFAULT_MIN_COL_WIDTH | wunderbaum - v0.11.0

    Variable DEFAULT_MIN_COL_WIDTHConst

    DEFAULT_MIN_COL_WIDTH: 4 = 4

    Minimum column width if not set otherwise.

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.ICON_WIDTH.html b/docs/api/variables/common.ICON_WIDTH.html index 402213c..d5d2138 100644 --- a/docs/api/variables/common.ICON_WIDTH.html +++ b/docs/api/variables/common.ICON_WIDTH.html @@ -1,2 +1,2 @@ -ICON_WIDTH | wunderbaum - v0.10.2-0

    Variable ICON_WIDTHConst

    ICON_WIDTH: 20 = 20

    Fixed width of node icons in pixel. Must match the SCSS variable $icon-outer-width.

    -
    \ No newline at end of file +ICON_WIDTH | wunderbaum - v0.11.0

    Variable ICON_WIDTHConst

    ICON_WIDTH: 20 = 20

    Fixed width of node icons in pixel. Must match the SCSS variable $icon-outer-width.

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.INPUT_KEYS.html b/docs/api/variables/common.INPUT_KEYS.html index e5a8915..f8ea51e 100644 --- a/docs/api/variables/common.INPUT_KEYS.html +++ b/docs/api/variables/common.INPUT_KEYS.html @@ -1,3 +1,3 @@ -INPUT_KEYS | wunderbaum - v0.10.2-0

    Variable INPUT_KEYSConst

    INPUT_KEYS: {
        [key: string]: string[];
    } = ...

    Define which keys are handled by embedded control, and should +INPUT_KEYS | wunderbaum - v0.11.0

    Variable INPUT_KEYSConst

    INPUT_KEYS: {
        [key: string]: string[];
    } = ...

    Define which keys are handled by embedded control, and should not be passed to tree navigation handler in cell-edit mode.

    -

    Type declaration

    • [key: string]: string[]
    \ No newline at end of file +

    Type declaration

    • [key: string]: string[]
    \ No newline at end of file diff --git a/docs/api/variables/common.KEY_NODATA.html b/docs/api/variables/common.KEY_NODATA.html index e7eb9c2..bd5b39c 100644 --- a/docs/api/variables/common.KEY_NODATA.html +++ b/docs/api/variables/common.KEY_NODATA.html @@ -1 +1 @@ -KEY_NODATA | wunderbaum - v0.10.2-0

    Variable KEY_NODATAConst

    KEY_NODATA: "__not_found__" = "__not_found__"
    \ No newline at end of file +KEY_NODATA | wunderbaum - v0.11.0

    Variable KEY_NODATAConst

    KEY_NODATA: "__not_found__" = "__not_found__"
    \ No newline at end of file diff --git a/docs/api/variables/common.KEY_TO_ACTION_DICT.html b/docs/api/variables/common.KEY_TO_ACTION_DICT.html index 9b66854..45b4908 100644 --- a/docs/api/variables/common.KEY_TO_ACTION_DICT.html +++ b/docs/api/variables/common.KEY_TO_ACTION_DICT.html @@ -1,2 +1,2 @@ -KEY_TO_ACTION_DICT | wunderbaum - v0.10.2-0

    Variable KEY_TO_ACTION_DICTConst

    KEY_TO_ACTION_DICT: {
        [key: string]: string;
    } = ...

    Map KeyEvent.key to navigation action.

    -

    Type declaration

    • [key: string]: string
    \ No newline at end of file +KEY_TO_ACTION_DICT | wunderbaum - v0.11.0

    Variable KEY_TO_ACTION_DICTConst

    KEY_TO_ACTION_DICT: {
        [key: string]: string;
    } = ...

    Map KeyEvent.key to navigation action.

    +

    Type declaration

    • [key: string]: string
    \ No newline at end of file diff --git a/docs/api/variables/common.RENDER_MAX_PREFETCH.html b/docs/api/variables/common.RENDER_MAX_PREFETCH.html index 857c6ae..f946da4 100644 --- a/docs/api/variables/common.RENDER_MAX_PREFETCH.html +++ b/docs/api/variables/common.RENDER_MAX_PREFETCH.html @@ -1,2 +1,2 @@ -RENDER_MAX_PREFETCH | wunderbaum - v0.10.2-0

    Variable RENDER_MAX_PREFETCHConst

    RENDER_MAX_PREFETCH: 5 = 5

    Render row markup for N nodes above and below the visible viewport.

    -
    \ No newline at end of file +RENDER_MAX_PREFETCH | wunderbaum - v0.11.0

    Variable RENDER_MAX_PREFETCHConst

    RENDER_MAX_PREFETCH: 5 = 5

    Render row markup for N nodes above and below the visible viewport.

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.RENDER_MIN_PREFETCH.html b/docs/api/variables/common.RENDER_MIN_PREFETCH.html index b98aaef..9a30603 100644 --- a/docs/api/variables/common.RENDER_MIN_PREFETCH.html +++ b/docs/api/variables/common.RENDER_MIN_PREFETCH.html @@ -1,2 +1,2 @@ -RENDER_MIN_PREFETCH | wunderbaum - v0.10.2-0

    Variable RENDER_MIN_PREFETCHConst

    RENDER_MIN_PREFETCH: 5 = 5

    Skip rendering new rows when we have at least N nodes rendeed above and below the viewport.

    -
    \ No newline at end of file +RENDER_MIN_PREFETCH | wunderbaum - v0.11.0

    Variable RENDER_MIN_PREFETCHConst

    RENDER_MIN_PREFETCH: 5 = 5

    Skip rendering new rows when we have at least N nodes rendeed above and below the viewport.

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.RESERVED_TREE_SOURCE_KEYS.html b/docs/api/variables/common.RESERVED_TREE_SOURCE_KEYS.html index e7e764c..c7a8b22 100644 --- a/docs/api/variables/common.RESERVED_TREE_SOURCE_KEYS.html +++ b/docs/api/variables/common.RESERVED_TREE_SOURCE_KEYS.html @@ -1,2 +1,2 @@ -RESERVED_TREE_SOURCE_KEYS | wunderbaum - v0.10.2-0

    Variable RESERVED_TREE_SOURCE_KEYSConst

    RESERVED_TREE_SOURCE_KEYS: Set<string> = ...

    Dict keys that are evaluated by source loader (others are added to tree.data instead).

    -
    \ No newline at end of file +RESERVED_TREE_SOURCE_KEYS | wunderbaum - v0.11.0

    Variable RESERVED_TREE_SOURCE_KEYSConst

    RESERVED_TREE_SOURCE_KEYS: Set<string> = ...

    Dict keys that are evaluated by source loader (others are added to tree.data instead).

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.ROW_HEIGHT.html b/docs/api/variables/common.ROW_HEIGHT.html index 7792386..7af813d 100644 --- a/docs/api/variables/common.ROW_HEIGHT.html +++ b/docs/api/variables/common.ROW_HEIGHT.html @@ -1,2 +1,2 @@ -ROW_HEIGHT | wunderbaum - v0.10.2-0

    Variable ROW_HEIGHTConst

    ROW_HEIGHT: 22 = 22

    Fixed height of a row in pixel. Must match the SCSS variable $row-outer-height.

    -
    \ No newline at end of file +ROW_HEIGHT | wunderbaum - v0.11.0

    Variable ROW_HEIGHTConst

    ROW_HEIGHT: 22 = 22

    Fixed height of a row in pixel. Must match the SCSS variable $row-outer-height.

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.TEST_IMG.html b/docs/api/variables/common.TEST_IMG.html index a636c46..eec4b26 100644 --- a/docs/api/variables/common.TEST_IMG.html +++ b/docs/api/variables/common.TEST_IMG.html @@ -1,3 +1,3 @@ -TEST_IMG | wunderbaum - v0.10.2-0

    Variable TEST_IMGConst

    TEST_IMG: RegExp = ...

    Regular expression to detect if a string describes an image URL (in contrast +TEST_IMG | wunderbaum - v0.11.0

    Variable TEST_IMGConst

    TEST_IMG: RegExp = ...

    Regular expression to detect if a string describes an image URL (in contrast to a class name). Strings are considered image urls if they contain '.' or '/'.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/variables/common.TITLE_SPAN_PAD_Y.html b/docs/api/variables/common.TITLE_SPAN_PAD_Y.html index 35df354..36c2de9 100644 --- a/docs/api/variables/common.TITLE_SPAN_PAD_Y.html +++ b/docs/api/variables/common.TITLE_SPAN_PAD_Y.html @@ -1,3 +1,3 @@ -TITLE_SPAN_PAD_Y | wunderbaum - v0.10.2-0

    Variable TITLE_SPAN_PAD_YConst

    TITLE_SPAN_PAD_Y: 7 = 7

    Adjust the width of the title span, so overflow ellipsis work. +TITLE_SPAN_PAD_Y | wunderbaum - v0.11.0

    Variable TITLE_SPAN_PAD_YConst

    TITLE_SPAN_PAD_Y: 7 = 7

    Adjust the width of the title span, so overflow ellipsis work. (2 x $col-padding-x + 3px rounding errors).

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/variables/common.iconMaps.html b/docs/api/variables/common.iconMaps.html index e6b2f3e..64925fb 100644 --- a/docs/api/variables/common.iconMaps.html +++ b/docs/api/variables/common.iconMaps.html @@ -1,3 +1,3 @@ -iconMaps | wunderbaum - v0.10.2-0

    Variable iconMapsConst

    iconMaps: {
        [key: string]: {
            [key: string]: string;
        };
    } = ...

    Default node icons. +iconMaps | wunderbaum - v0.11.0

    Variable iconMapsConst

    iconMaps: {
        [key: string]: {
            [key: string]: string;
        };
    } = ...

    Default node icons. Requires bootstrap icons https://icons.getbootstrap.com

    -

    Type declaration

    • [key: string]: {
          [key: string]: string;
      }
      • [key: string]: string
    \ No newline at end of file +

    Type declaration

    • [key: string]: {
          [key: string]: string;
      }
      • [key: string]: string
    \ No newline at end of file diff --git a/docs/api/variables/util.MAX_INT.html b/docs/api/variables/util.MAX_INT.html index 1a57442..ffaa514 100644 --- a/docs/api/variables/util.MAX_INT.html +++ b/docs/api/variables/util.MAX_INT.html @@ -1 +1 @@ -MAX_INT | wunderbaum - v0.10.2-0

    Variable MAX_INTConst

    MAX_INT: 9007199254740991 = 9007199254740991
    \ No newline at end of file +MAX_INT | wunderbaum - v0.11.0

    Variable MAX_INTConst

    MAX_INT: 9007199254740991 = 9007199254740991
    \ No newline at end of file diff --git a/docs/api/variables/util.MOUSE_BUTTONS.html b/docs/api/variables/util.MOUSE_BUTTONS.html index 142eaad..734b47c 100644 --- a/docs/api/variables/util.MOUSE_BUTTONS.html +++ b/docs/api/variables/util.MOUSE_BUTTONS.html @@ -1,2 +1,2 @@ -MOUSE_BUTTONS | wunderbaum - v0.10.2-0

    Variable MOUSE_BUTTONSConst

    MOUSE_BUTTONS: {
        [key: number]: string;
    } = ...

    Readable names for MouseEvent.button

    -

    Type declaration

    • [key: number]: string
    \ No newline at end of file +MOUSE_BUTTONS | wunderbaum - v0.11.0

    Variable MOUSE_BUTTONSConst

    MOUSE_BUTTONS: {
        [key: number]: string;
    } = ...

    Readable names for MouseEvent.button

    +

    Type declaration

    • [key: number]: string
    \ No newline at end of file diff --git a/docs/api/variables/util.isMac.html b/docs/api/variables/util.isMac.html index 1434c0e..5fc16ef 100644 --- a/docs/api/variables/util.isMac.html +++ b/docs/api/variables/util.isMac.html @@ -1,2 +1,2 @@ -isMac | wunderbaum - v0.10.2-0

    Variable isMacConst

    isMac: boolean = userInfo.isMac

    True if the client is using a macOS platform.

    -
    \ No newline at end of file +isMac | wunderbaum - v0.11.0

    Variable isMacConst

    isMac: boolean = userInfo.isMac

    True if the client is using a macOS platform.

    +
    \ No newline at end of file diff --git a/package.json b/package.json index 65a5660..60abf3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wunderbaum", - "version": "0.10.2-0", + "version": "0.11.0", "title": "A treegrid control.", "description": "JavaScript tree/grid/treegrid control.", "homepage": "https://github.com/mar10/wunderbaum",