From 0374cf68ae7834cfc38f868720c66cad5f290223 Mon Sep 17 00:00:00 2001 From: Martin Wendt Date: Sun, 12 Jan 2025 11:51:56 +0100 Subject: [PATCH] Bump version to 0.12.0 --- dist/wunderbaum.css.map | 2 +- dist/wunderbaum.d.ts | 41 ++- dist/wunderbaum.esm.js | 106 +++++--- dist/wunderbaum.esm.min.js | 34 +-- dist/wunderbaum.esm.min.js.map | 2 +- dist/wunderbaum.umd.js | 106 +++++--- dist/wunderbaum.umd.min.js | 44 ++-- dist/wunderbaum.umd.min.js.map | 2 +- docs/api/assets/highlight.css | 16 +- 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 | 248 +++++++++--------- docs/api/classes/wunderbaum.Wunderbaum.html | 226 ++++++++-------- 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 | 4 +- .../common.makeNodeTitleStartMatcher.html | 4 +- .../api/functions/common.nodeTitleSorter.html | 4 +- docs/api/functions/util.adaptiveThrottle.html | 6 +- docs/api/functions/util.assert.html | 4 +- docs/api/functions/util.debounce.html | 6 +- 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 | 6 +- 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 | 6 +- docs/api/functions/util.intToBool.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 | 8 +- docs/api/functions/util.overrideMethod.html | 6 +- 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 | 6 +- docs/api/functions/util.sleep.html | 6 +- docs/api/functions/util.throttle.html | 6 +- docs/api/functions/util.toBool.html | 6 +- docs/api/functions/util.toPixel.html | 6 +- 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 | 12 +- .../interfaces/types.AddChildrenOptions.html | 10 +- .../interfaces/types.ApplyCommandOptions.html | 4 +- .../interfaces/types.ColumnDefinition.html | 36 +-- .../api/interfaces/types.ColumnEventInfo.html | 12 +- docs/api/interfaces/types.DragEventType.html | 14 +- docs/api/interfaces/types.DropEventType.html | 16 +- .../interfaces/types.ExpandAllOptions.html | 36 ++- .../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 | 8 +- .../types.ScrollIntoViewOptions.html | 12 +- .../api/interfaces/types.ScrollToOptions.html | 14 +- .../interfaces/types.SetActiveOptions.html | 16 +- .../interfaces/types.SetColumnOptions.html | 8 +- .../interfaces/types.SetExpandedOptions.html | 20 +- .../interfaces/types.SetSelectedOptions.html | 12 +- .../interfaces/types.SetStatusOptions.html | 8 +- .../types.SortByPropertyOptions.html | 20 +- docs/api/interfaces/types.SourceAjaxType.html | 4 +- .../interfaces/types.SourceObjectType.html | 4 +- docs/api/interfaces/types.UpdateOptions.html | 6 +- .../interfaces/types.VisitRowsOptions.html | 16 +- .../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 | 26 +- .../interfaces/types.WbSelectEventType.html | 14 +- .../api/interfaces/types.WbTreeEventType.html | 10 +- .../wb_options.WunderbaumOptions.html | 114 ++++---- 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 | 10 +- .../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 | 10 +- 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 | 4 +- .../types/types.NodeTypeDefinitionMap.html | 2 +- docs/api/types/types.NodeVisitCallback.html | 4 +- docs/api/types/types.NodeVisitResponse.html | 4 +- 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 +- .../variables/common.DEFAULT_ROW_HEIGHT.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.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 | 4 +- 179 files changed, 1108 insertions(+), 1003 deletions(-) diff --git a/dist/wunderbaum.css.map b/dist/wunderbaum.css.map index b4aa52d1..0bbd25ff 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;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 +{"version":3,"sourceRoot":"","sources":["../src/wunderbaum.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AA6EA;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 32a6e891..71e94d1d 100644 --- a/dist/wunderbaum.d.ts +++ b/dist/wunderbaum.d.ts @@ -681,7 +681,14 @@ declare module "wb_node" { setClass(className: string | string[] | Set, flag?: boolean): void; /** Start editing this node's title. */ startEditTitle(): void; - /** Call `setExpanded()` on all descendant nodes. */ + /** + * Call `setExpanded()` on all descendant nodes. + * + * @param flag true to expand, false to collapse. + * @param options Additional options. + * @see {@link Wunderbaum.expandAll} + * @see {@link WunderbaumNode.setExpanded} + */ expandAll(flag?: boolean, options?: ExpandAllOptions): Promise; /** * Find all descendant nodes that match condition (excluding self). @@ -1955,12 +1962,34 @@ declare module "types" { } /** Possible values for {@link Wunderbaum.expandAll} and {@link WunderbaumNode.expandAll}. */ export interface ExpandAllOptions { - /** Restrict expand level @default 99 */ - depth?: number; /** Expand and load lazy nodes @default false */ loadLazy?: boolean; - /** Ignore `minExpandLevel` option @default false */ + /** Unload lazily loaded children if any (if collapsing). @default false */ + resetLazy?: boolean; + /** Ignore tree's `minExpandLevel` option @default false */ force?: boolean; + /** Restrict expand level. + * Pass 0 to make only toplevel nodes visible, 1 to expand one level deeper, etc. + * @default unset (unlimited) + */ + depth?: number; + /** + * Also collapse child nodes beyond the `depth` level. + * Otherwise only the `depth` level is collapsed and the expand state of the + * descendants is retained. + * Only in combination with collapse and `depth`. + * Expanding with `deep` option is not supported as recursion depth implied by + * the `depth` option. However a `deep` option will be considered if + * `collapseOthers` is set. + * @default false + */ + deep?: boolean; + /** + * Expand up to level=depth and collapse all other branches. + * Only in combination with `flag == true`, `depth > 0`. + * @default false + */ + collapseOthers?: boolean; /** Keep active node visible @default true */ keepActiveNodeVisible?: boolean; } @@ -2071,7 +2100,7 @@ declare module "types" { } /** Possible values for {@link WunderbaumNode.setExpanded} `options` argument. */ export interface SetExpandedOptions { - /** Ignore {@link WunderbaumOptions.minExpandLevel}. @default false */ + /** Ignore {@link WunderbaumOptions}.minExpandLevel. @default false */ force?: boolean; /** Immediately update viewport (async otherwise). @default false */ immediate?: boolean; @@ -2079,6 +2108,8 @@ declare module "types" { noAnimation?: boolean; /** Do not send events. @default false */ noEvents?: boolean; + /** Unload lazily loaded children if any (if collapsing). @default false */ + resetLazy?: boolean; /** Scroll up to bring expanded nodes into viewport. @default false */ scrollIntoView?: boolean; } diff --git a/dist/wunderbaum.esm.js b/dist/wunderbaum.esm.js index b28d6732..6bd370ec 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** @module util */ /** Readable names for `MouseEvent.button` */ @@ -1142,7 +1142,7 @@ var util = /*#__PURE__*/Object.freeze({ /*! * Wunderbaum - types * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}. @@ -1206,7 +1206,7 @@ var NavModeEnum; /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension { constructor(tree, id, defaults) { @@ -1265,7 +1265,7 @@ class WunderbaumExtension { /*! * Wunderbaum - ext-filter * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const START_MARKER = "\uFFF7"; const END_MARKER = "\uFFF8"; @@ -1590,7 +1590,7 @@ function _markFuzzyMatchedChars(text, matches, escapeTitles = true) { /*! * Wunderbaum - ext-keynav * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const QUICKSEARCH_DELAY = 500; class KeynavExtension extends WunderbaumExtension { @@ -1954,7 +1954,7 @@ class KeynavExtension extends WunderbaumExtension { /*! * Wunderbaum - ext-logger * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ class LoggerExtension extends WunderbaumExtension { constructor(tree) { @@ -1996,7 +1996,7 @@ class LoggerExtension extends WunderbaumExtension { /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const nodeMimeType = "application/x-wunderbaum-node"; class DndExtension extends WunderbaumExtension { @@ -2446,7 +2446,7 @@ class DndExtension extends WunderbaumExtension { /*! * Wunderbaum - drag_observer * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'. @@ -2595,7 +2595,7 @@ class DragObserver { /*! * Wunderbaum - common * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script /** @@ -2935,7 +2935,7 @@ function decompressSourceData(source) { /*! * Wunderbaum - ext-grid * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ class GridExtension extends WunderbaumExtension { constructor(tree) { @@ -3026,7 +3026,7 @@ class GridExtension extends WunderbaumExtension { /*! * Wunderbaum - deferred * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** * Implement a ES6 Promise, that exposes a resolve() and reject() method. @@ -3079,7 +3079,7 @@ class Deferred { /*! * Wunderbaum - wunderbaum_node * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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`.) @@ -3411,54 +3411,65 @@ class WunderbaumNode { startEditTitle() { this.tree._callMethod("edit.startEditTitle", this); } - /** Call `setExpanded()` on all descendant nodes. */ + /** + * Call `setExpanded()` on all descendant nodes. + * + * @param flag true to expand, false to collapse. + * @param options Additional options. + * @see {@link Wunderbaum.expandAll} + * @see {@link WunderbaumNode.setExpanded} + */ async expandAll(flag = true, options) { const tree = this.tree; - const minExpandLevel = this.tree.options.minExpandLevel; - const { depth = 99, loadLazy, force, keepActiveNodeVisible = true, } = options !== null && options !== void 0 ? options : {}; + const { collapseOthers, deep, depth, force, keepActiveNodeVisible = true, loadLazy, resetLazy, } = options !== null && options !== void 0 ? options : {}; + // limit expansion level to `depth` (or tree.minExpandLevel). Default: unlimited + const treeLevel = this.tree.options.minExpandLevel || null; // 0 -> null + const minLevel = depth !== null && depth !== void 0 ? depth : (force ? null : treeLevel); const expandOpts = { - scrollIntoView: false, // don't scroll very node on iteration + deep: deep, force: force, loadLazy: loadLazy, + resetLazy: resetLazy, + scrollIntoView: false, // don't scroll every node while iterating }; - // this.logInfo(`expandAll(${flag})`); + this.logInfo(`expandAll(${flag}, depth=${depth}, minLevel=${minLevel})`); + assert(!(flag && deep != null && !collapseOthers), "Expanding with `deep` option is not supported (implied by the `depth` option)."); // Expand all direct children in parallel: async function _iter(n, level) { var _a; - // n.logInfo(` _iter(${level})`); - if (level === 0) { - return; - } - // if (!flag && minExpandLevel && !force && n.getLevel() <= minExpandLevel) { - // return; // Do not collapse until minExpandLevel - // } - const level_1 = level == null ? null : level - 1; + // n.logInfo(` _iter(level=${level})`); const promises = []; (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach((cn) => { if (flag) { - if (!cn.expanded && (cn.children || (loadLazy && cn.lazy))) { + if (!cn.expanded && + (minLevel == null || level < minLevel) && + (cn.children || (loadLazy && cn.lazy))) { // Node is collapsed and may be expanded (i.e. has children or is lazy) // Expanding may be async, so we store the promise. // Also the recursion is delayed until expansion finished. const p = cn.setExpanded(true, expandOpts); promises.push(p); - p.then(async () => { - await _iter(cn, level_1); - }); + if (depth == null) { + p.then(async () => { + await _iter(cn, level + 1); + }); + } } else { // We don't expand the node, but still visit descendants. // There we may find lazy nodes, so we - promises.push(_iter(cn, level_1)); + promises.push(_iter(cn, level + 1)); } } else { // Collapsing is always synchronous, so no promises required - if (!minExpandLevel || force || cn.getLevel() > minExpandLevel) { - // Do not collapse until minExpandLevel + // Do not collapse until minExpandLevel + if (minLevel == null || level >= minLevel) { cn.setExpanded(false, expandOpts); } - _iter(cn, level_1); // recursion, even if cn was already collapsed + if ((minLevel != null && level < minLevel) || deep) { + _iter(cn, level + 1); // recursion, even if cn was already collapsed + } } }); return new Promise((resolve) => { @@ -3467,10 +3478,15 @@ class WunderbaumNode { }); }); } - const tag = tree.logTime(`${this}.expandAll(${flag})`); + const tag = tree.logTime(`${this}.expandAll(${flag}, depth=${depth})`); try { tree.enableUpdate(false); - await _iter(this, depth); + await _iter(this, 0); + if (collapseOthers) { + assert(flag, "Option `collapseOthers` requires flag=true"); + assert(minLevel != null, "Option `collapseOthers` requires `depth` or `minExpandLevel`"); + this.expandAll(false, { depth: minLevel }); + } } finally { tree.enableUpdate(true); @@ -4959,7 +4975,7 @@ class WunderbaumNode { const orgEvent = options === null || options === void 0 ? void 0 : options.event; // Default: null const colIdx = options === null || options === void 0 ? void 0 : options.colIdx; // Default: null const edit = options === null || options === void 0 ? void 0 : options.edit; // Default: false - assert(!colIdx || tree.isCellNav(), "colIdx requires cellNav"); + // util.assert(!colIdx || tree.isCellNav(), "colIdx requires cellNav"); assert(!edit || colIdx != null, "edit requires colIdx"); if (!noEvents) { if (flag) { @@ -5013,7 +5029,7 @@ class WunderbaumNode { * Expand or collapse this node. */ async setExpanded(flag = true, options) { - const { force, scrollIntoView, immediate } = options !== null && options !== void 0 ? options : {}; + const { force, scrollIntoView, immediate, resetLazy } = options !== null && options !== void 0 ? options : {}; const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events if (!flag && this.isExpanded() && @@ -5036,6 +5052,9 @@ class WunderbaumNode { if (flag && this.lazy && this.children == null) { await this.loadLazy(); } + else if (!flag && resetLazy && this.lazy && this.children) { + this.resetLazy(); + } this.expanded = flag; const updateOpts = { immediate: immediate }; // const updateOpts = { immediate: !!util.getOption(options, "immediate") }; @@ -5606,7 +5625,7 @@ WunderbaumNode.sequence = 0; /*! * Wunderbaum - ext-edit * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ // const START_MARKER = "\uFFF7"; class EditExtension extends WunderbaumExtension { @@ -5941,8 +5960,8 @@ class EditExtension extends WunderbaumExtension { * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.11.1 - * @date Fri, 27 Dec 2024 22:58:06 GMT + * @version v0.12.0 + * @date Sun, 12 Jan 2025 10:51:41 GMT */ // import "./wunderbaum.scss"; class WbSystemRoot extends WunderbaumNode { @@ -6275,7 +6294,10 @@ class Wunderbaum { false) { return false; } - if (node && info.colIdx === 0 && node.isExpandable()) { + if (node && + info.colIdx === 0 && + node.isExpandable() && + info.region !== NodeRegion.expander) { this._callMethod("edit._stopEditTitle"); node.setExpanded(!node.isExpanded()); } @@ -8264,7 +8286,7 @@ class Wunderbaum { } Wunderbaum.sequence = 0; /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */ -Wunderbaum.version = "v0.11.1"; // Set to semver by 'grunt release' +Wunderbaum.version = "v0.12.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 9b3e5465..702f3c39 100644 --- a/dist/wunderbaum.esm.min.js +++ b/dist/wunderbaum.esm.min.js @@ -7,68 +7,68 @@ const freeGlobal="object"==typeof global&&null!==global&&global.Object===Object& /*! * Wunderbaum - util * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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 intToBool(e){return"number"==typeof e?!!e:e}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,intToBool:intToBool,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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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 - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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=this.tree.options.rowHeightPx,s=e.offsetY;return!!t&&(3===t.size?s<.25*i?"before":s>.75*i?"after":"over":1===t.size&&t.has("over")?"over":s>i/2?"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});if(t=this.unifyDragover(t),!t)return o.dropEffect="none",!0;this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect;const l=this._calcDropRegion(e,this.lastAllowedDropRegions);return n.setClass("wb-drop-target"),n.setClass("wb-drop-over","over"===l),n.setClass("wb-drop-before","before"===l),n.setClass("wb-drop-after","after"===l),e.preventDefault(),!1}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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.dys?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-grid * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.11.1, Fri, 27 Dec 2024 22:58:06 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+">"),this.expanded=!!i.expanded,this.lazy=!!i.lazy,null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),null!=i.icon&&(this.icon=intToBool(i.icon)),null!=i.tooltip&&(this.tooltip=intToBool(i.tooltip)),null!=i.iconTooltip&&(this.iconTooltip=intToBool(i.iconTooltip)),null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&intToBool(i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),null!=i.selected&&(this.selected=!!i.selected),null!=i.unselectable&&(this.unselectable=!!i.unselectable),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=i.rowHeightPx,n=this.getOption("checkbox"),r=t.columns,o=this.getLevel(),l=t.isRowNav()?null:t.activeColIdx;let a,d=this._rowElem,c=null,h=null;const u=!d;assert(u,"Expected unrendered node"),assert(!u||e&&e.after,"opts.after expected, unless updating"),assert(!this.isRootNode(),"Root node not allowed"),d=document.createElement("div"),d.classList.add("wb-row"),d.style.top=this._rowIdx*s+"px",this._rowElem=d,d._wb_node=this;const p=document.createElement("span");p.classList.add("wb-node","wb-col"),d.appendChild(p);let f=0;n&&(c=document.createElement("i"),c.classList.add("wb-checkbox"),("radio"===n||this.parent.radiogroup)&&c.classList.add("wb-radio"),p.appendChild(c),f+=20);for(let e=o-1;e>0;e--)a=document.createElement("i"),a.classList.add("wb-indent"),p.appendChild(a),f+=20;(!i.minExpandLevel||o>i.minExpandLevel)&&(h=document.createElement("i"),h.classList.add("wb-expander"),p.appendChild(h),f+=20);this._createIcon(t.iconMap,p,null,!h)&&(f+=20);const g=document.createElement("span");g.classList.add("wb-title"),p.appendChild(g),p._ofsTitlePx=f,t.options.dnd.dragStart&&(p.draggable=!0);if(!this.isColspan()&&r.length>1){let e=0;for(const t of r){let i;e++,"*"===t.id?i=p:(i=document.createElement("span"),i.classList.add("wb-col"),d.appendChild(i)),e===l&&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",u&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(d);break;case"last":t.nodeListElement.appendChild(d);break;default:e.after.after(d)}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]),null==i&&null==s?0:(null==i?i="string"==typeof s?"":0:"boolean"==typeof i&&(i=i?1:0),null==s?s="string"==typeof i?"":0:"boolean"==typeof s&&(s=s?1:0),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"),this.expanded=!!i.expanded,this.lazy=!!i.lazy,null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),null!=i.icon&&(this.icon=intToBool(i.icon)),null!=i.tooltip&&(this.tooltip=intToBool(i.tooltip)),null!=i.iconTooltip&&(this.iconTooltip=intToBool(i.iconTooltip)),null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&intToBool(i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),null!=i.selected&&(this.selected=!!i.selected),null!=i.unselectable&&(this.unselectable=!!i.unselectable),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,{collapseOthers:s,deep:n,depth:r,force:o,keepActiveNodeVisible:l=!0,loadLazy:a,resetLazy:d}=null!=t?t:{},c=this.tree.options.minExpandLevel||null,h=null!=r?r:o?null:c,u={deep:n,force:o,loadLazy:a,resetLazy:d,scrollIntoView:!1};this.logInfo(`expandAll(${e}, depth=${r}, minLevel=${h})`),assert(!(e&&null!=n&&!s),"Expanding with `deep` option is not supported (implied by the `depth` option).");const p=i.logTime(`${this}.expandAll(${e}, depth=${r})`);try{i.enableUpdate(!1),await async function t(i,s){var o;const l=[];return null===(o=i.children)||void 0===o||o.forEach((i=>{if(e)if(!i.expanded&&(null==h||s{await t(i,s+1)}))}else l.push(t(i,s+1));else(null==h||s>=h)&&i.setExpanded(!1,u),(null!=h&&s{Promise.all(l).then((()=>{e(!0)}))}))}(this,0),s&&(assert(e,"Option `collapseOthers` requires flag=true"),assert(null!=h,"Option `collapseOthers` requires `depth` or `minExpandLevel`"),this.expandAll(!1,{depth:h}))}finally{i.enableUpdate(!0),i.logTimeEnd(p)}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=i.rowHeightPx,n=this.getOption("checkbox"),r=t.columns,o=this.getLevel(),l=t.isRowNav()?null:t.activeColIdx;let a,d=this._rowElem,c=null,h=null;const u=!d;assert(u,"Expected unrendered node"),assert(!u||e&&e.after,"opts.after expected, unless updating"),assert(!this.isRootNode(),"Root node not allowed"),d=document.createElement("div"),d.classList.add("wb-row"),d.style.top=this._rowIdx*s+"px",this._rowElem=d,d._wb_node=this;const p=document.createElement("span");p.classList.add("wb-node","wb-col"),d.appendChild(p);let f=0;n&&(c=document.createElement("i"),c.classList.add("wb-checkbox"),("radio"===n||this.parent.radiogroup)&&c.classList.add("wb-radio"),p.appendChild(c),f+=20);for(let e=o-1;e>0;e--)a=document.createElement("i"),a.classList.add("wb-indent"),p.appendChild(a),f+=20;(!i.minExpandLevel||o>i.minExpandLevel)&&(h=document.createElement("i"),h.classList.add("wb-expander"),p.appendChild(h),f+=20);this._createIcon(t.iconMap,p,null,!h)&&(f+=20);const g=document.createElement("span");g.classList.add("wb-title"),p.appendChild(g),p._ofsTitlePx=f,t.options.dnd.dragStart&&(p.draggable=!0);if(!this.isColspan()&&r.length>1){let e=0;for(const t of r){let i;e++,"*"===t.id?i=p:(i=document.createElement("span"),i.classList.add("wb-col"),d.appendChild(i)),e===l&&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",u&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(d);break;case"last":t.nodeListElement.appendChild(d);break;default:e.after.after(d)}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(!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,resetLazy:r}=null!=t?t:{},o=!(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(o&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children?await this.loadLazy():!e&&r&&this.lazy&&this.children&&this.resetLazy(),this.expanded=e;const l={immediate:n};if(this.tree.update(ChangeType.structure,l),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}o&&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]),null==i&&null==s?0:(null==i?i="string"==typeof s?"":0:"boolean"==typeof i&&(i=i?1:0),null==s?s="string"==typeof i?"":0:"boolean"==typeof s&&(s=s?1:0),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;if(e.isStatusNode())return void e.logWarn("Cannot edit status node.");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.11.1 - * @date Fri, 27 Dec 2024 22:58:06 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),22!==t.rowHeightPx&&(this.element.style.setProperty("--wb-row-outer-height",t.rowHeightPx+"px"),this.element.style.setProperty("--wb-row-inner-height",t.rowHeightPx-2+"px")),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.options.rowHeightPx,i=this.element.scrollTop;let s;return s=e?Math.ceil((i-1)/t):Math.floor(i/t),this._getNodeByRowIdx(s)}getLowestVpNode(e=!0){const t=this.options.rowHeightPx,i=this.element,s=this.headerElement.clientHeight,n=i.scrollTop,r=i.clientHeight-s;let o;return o=e?Math.floor((n+r)/t)-1:Math.ceil((n+r)/t)-1,o=Math.min(o,this.count(!0)-1),this._getNodeByRowIdx(o)}_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){const s=this.options.rowHeightPx;let n=null;const r=Math.floor(this.listContainerElement.clientHeight/s);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(n=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return n=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(n=e)}));break;case"right":e.children&&e.children.length&&(n=e.children[0]);break;case"up":n=this._getPrevNodeInView(e);break;case"down":n=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();n=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,r)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return n}*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.options.rowHeightPx,n=this.element,r=this.headerElement.clientHeight,o=n.scrollTop,l=n.clientHeight,a=t._rowIdx*s+r,d=r,c=a-o,h=c+s,u=null==i?void 0:i.topNode;let p=null;c>=d?h<=l||(p=a+s-l+2):p=a-d-2,null!=p&&(this.log(`scrollTo(${a}): ${o} => ${p}`),n.scrollTop=p,u&&this.scrollTo(u))}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.options.rowHeightPx,s=this.element.clientHeight,n=this.element.scrollTop;let r=Math.max(0,n/i-5);r=Math.floor(r),r%2&&r--;let o=Math.max(0,(n+s)/i+5);o=Math.ceil(o);const l=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;l.add(t._wb_node)}));let a=0,d=0,c=!1,h="first";this.visitRows((function(e){const s=e._rowElem;e._rowIdx!==a&&(e._rowIdx=a,c=!0),ao?s&&(h=s):s&&t?(l.delete(e),s.style.top=a*i+"px",h=s):(l.delete(e),s&&(s.style.top=a*i+"px"),e._render({top:d,after:h}),h=e._rowElem),a++,d+=i})),this.treeRowCount=a;for(const e of l)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${d}px`,c}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.1",Wunderbaum.util=util;export{Wunderbaum}; + * @version v0.12.0 + * @date Sun, 12 Jan 2025 10:51:41 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),22!==t.rowHeightPx&&(this.element.style.setProperty("--wb-row-outer-height",t.rowHeightPx+"px"),this.element.style.setProperty("--wb-row-inner-height",t.rowHeightPx-2+"px")),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()&&t.region!==NodeRegion.expander&&(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.options.rowHeightPx,i=this.element.scrollTop;let s;return s=e?Math.ceil((i-1)/t):Math.floor(i/t),this._getNodeByRowIdx(s)}getLowestVpNode(e=!0){const t=this.options.rowHeightPx,i=this.element,s=this.headerElement.clientHeight,n=i.scrollTop,r=i.clientHeight-s;let o;return o=e?Math.floor((n+r)/t)-1:Math.ceil((n+r)/t)-1,o=Math.min(o,this.count(!0)-1),this._getNodeByRowIdx(o)}_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){const s=this.options.rowHeightPx;let n=null;const r=Math.floor(this.listContainerElement.clientHeight/s);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(n=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return n=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(n=e)}));break;case"right":e.children&&e.children.length&&(n=e.children[0]);break;case"up":n=this._getPrevNodeInView(e);break;case"down":n=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();n=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,r)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return n}*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.options.rowHeightPx,n=this.element,r=this.headerElement.clientHeight,o=n.scrollTop,l=n.clientHeight,a=t._rowIdx*s+r,d=r,c=a-o,h=c+s,u=null==i?void 0:i.topNode;let p=null;c>=d?h<=l||(p=a+s-l+2):p=a-d-2,null!=p&&(this.log(`scrollTo(${a}): ${o} => ${p}`),n.scrollTop=p,u&&this.scrollTo(u))}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.options.rowHeightPx,s=this.element.clientHeight,n=this.element.scrollTop;let r=Math.max(0,n/i-5);r=Math.floor(r),r%2&&r--;let o=Math.max(0,(n+s)/i+5);o=Math.ceil(o);const l=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;l.add(t._wb_node)}));let a=0,d=0,c=!1,h="first";this.visitRows((function(e){const s=e._rowElem;e._rowIdx!==a&&(e._rowIdx=a,c=!0),ao?s&&(h=s):s&&t?(l.delete(e),s.style.top=a*i+"px",h=s):(l.delete(e),s&&(s.style.top=a*i+"px"),e._render({top:d,after:h}),h=e._rowElem),a++,d+=i})),this.treeRowCount=a;for(const e of l)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${d}px`,c}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.12.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 004e0ef2..01726b83 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","rotate","values","idx","toSet","val","set","add","toPixel","defaults","d","endsWith","parseInt","toBool","boolDefaults","intToBool","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","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","rowHeight","rowHeightPx","dy","offsetY","_guessDropEffect","ea","canCopy","includes","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","region","clientY","offsetTop","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","x","y","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","DEFAULT_DEBUGLEVEL","DEFAULT_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","unflattenSource","source","_b","_c","_format","_keyMap","_positional","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","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","lazy","icon","tooltip","iconTooltip","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","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","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","setProperty","_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","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","intToBool","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","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","rowHeight","rowHeightPx","dy","offsetY","_guessDropEffect","ea","canCopy","includes","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","region","clientY","offsetTop","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","x","y","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","DEFAULT_DEBUGLEVEL","DEFAULT_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","unflattenSource","source","_b","_c","_format","_keyMap","_positional","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","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","lazy","icon","tooltip","iconTooltip","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","collapseOthers","deep","depth","force","keepActiveNodeVisible","loadLazy","resetLazy","treeLevel","minLevel","expandOpts","scrollIntoView","logTime","level","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","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","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","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","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","setProperty","_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","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 194f7f7c..ab97f84e 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** @module util */ /** Readable names for `MouseEvent.button` */ @@ -1148,7 +1148,7 @@ /*! * Wunderbaum - types * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}. @@ -1212,7 +1212,7 @@ /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension { constructor(tree, id, defaults) { @@ -1271,7 +1271,7 @@ /*! * Wunderbaum - ext-filter * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const START_MARKER = "\uFFF7"; const END_MARKER = "\uFFF8"; @@ -1596,7 +1596,7 @@ /*! * Wunderbaum - ext-keynav * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const QUICKSEARCH_DELAY = 500; class KeynavExtension extends WunderbaumExtension { @@ -1960,7 +1960,7 @@ /*! * Wunderbaum - ext-logger * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ class LoggerExtension extends WunderbaumExtension { constructor(tree) { @@ -2002,7 +2002,7 @@ /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const nodeMimeType = "application/x-wunderbaum-node"; class DndExtension extends WunderbaumExtension { @@ -2452,7 +2452,7 @@ /*! * Wunderbaum - drag_observer * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'. @@ -2601,7 +2601,7 @@ /*! * Wunderbaum - common * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script /** @@ -2941,7 +2941,7 @@ /*! * Wunderbaum - ext-grid * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ class GridExtension extends WunderbaumExtension { constructor(tree) { @@ -3032,7 +3032,7 @@ /*! * Wunderbaum - deferred * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ /** * Implement a ES6 Promise, that exposes a resolve() and reject() method. @@ -3085,7 +3085,7 @@ /*! * Wunderbaum - wunderbaum_node * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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`.) @@ -3417,54 +3417,65 @@ startEditTitle() { this.tree._callMethod("edit.startEditTitle", this); } - /** Call `setExpanded()` on all descendant nodes. */ + /** + * Call `setExpanded()` on all descendant nodes. + * + * @param flag true to expand, false to collapse. + * @param options Additional options. + * @see {@link Wunderbaum.expandAll} + * @see {@link WunderbaumNode.setExpanded} + */ async expandAll(flag = true, options) { const tree = this.tree; - const minExpandLevel = this.tree.options.minExpandLevel; - const { depth = 99, loadLazy, force, keepActiveNodeVisible = true, } = options !== null && options !== void 0 ? options : {}; + const { collapseOthers, deep, depth, force, keepActiveNodeVisible = true, loadLazy, resetLazy, } = options !== null && options !== void 0 ? options : {}; + // limit expansion level to `depth` (or tree.minExpandLevel). Default: unlimited + const treeLevel = this.tree.options.minExpandLevel || null; // 0 -> null + const minLevel = depth !== null && depth !== void 0 ? depth : (force ? null : treeLevel); const expandOpts = { - scrollIntoView: false, // don't scroll very node on iteration + deep: deep, force: force, loadLazy: loadLazy, + resetLazy: resetLazy, + scrollIntoView: false, // don't scroll every node while iterating }; - // this.logInfo(`expandAll(${flag})`); + this.logInfo(`expandAll(${flag}, depth=${depth}, minLevel=${minLevel})`); + assert(!(flag && deep != null && !collapseOthers), "Expanding with `deep` option is not supported (implied by the `depth` option)."); // Expand all direct children in parallel: async function _iter(n, level) { var _a; - // n.logInfo(` _iter(${level})`); - if (level === 0) { - return; - } - // if (!flag && minExpandLevel && !force && n.getLevel() <= minExpandLevel) { - // return; // Do not collapse until minExpandLevel - // } - const level_1 = level == null ? null : level - 1; + // n.logInfo(` _iter(level=${level})`); const promises = []; (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach((cn) => { if (flag) { - if (!cn.expanded && (cn.children || (loadLazy && cn.lazy))) { + if (!cn.expanded && + (minLevel == null || level < minLevel) && + (cn.children || (loadLazy && cn.lazy))) { // Node is collapsed and may be expanded (i.e. has children or is lazy) // Expanding may be async, so we store the promise. // Also the recursion is delayed until expansion finished. const p = cn.setExpanded(true, expandOpts); promises.push(p); - p.then(async () => { - await _iter(cn, level_1); - }); + if (depth == null) { + p.then(async () => { + await _iter(cn, level + 1); + }); + } } else { // We don't expand the node, but still visit descendants. // There we may find lazy nodes, so we - promises.push(_iter(cn, level_1)); + promises.push(_iter(cn, level + 1)); } } else { // Collapsing is always synchronous, so no promises required - if (!minExpandLevel || force || cn.getLevel() > minExpandLevel) { - // Do not collapse until minExpandLevel + // Do not collapse until minExpandLevel + if (minLevel == null || level >= minLevel) { cn.setExpanded(false, expandOpts); } - _iter(cn, level_1); // recursion, even if cn was already collapsed + if ((minLevel != null && level < minLevel) || deep) { + _iter(cn, level + 1); // recursion, even if cn was already collapsed + } } }); return new Promise((resolve) => { @@ -3473,10 +3484,15 @@ }); }); } - const tag = tree.logTime(`${this}.expandAll(${flag})`); + const tag = tree.logTime(`${this}.expandAll(${flag}, depth=${depth})`); try { tree.enableUpdate(false); - await _iter(this, depth); + await _iter(this, 0); + if (collapseOthers) { + assert(flag, "Option `collapseOthers` requires flag=true"); + assert(minLevel != null, "Option `collapseOthers` requires `depth` or `minExpandLevel`"); + this.expandAll(false, { depth: minLevel }); + } } finally { tree.enableUpdate(true); @@ -4965,7 +4981,7 @@ const orgEvent = options === null || options === void 0 ? void 0 : options.event; // Default: null const colIdx = options === null || options === void 0 ? void 0 : options.colIdx; // Default: null const edit = options === null || options === void 0 ? void 0 : options.edit; // Default: false - assert(!colIdx || tree.isCellNav(), "colIdx requires cellNav"); + // util.assert(!colIdx || tree.isCellNav(), "colIdx requires cellNav"); assert(!edit || colIdx != null, "edit requires colIdx"); if (!noEvents) { if (flag) { @@ -5019,7 +5035,7 @@ * Expand or collapse this node. */ async setExpanded(flag = true, options) { - const { force, scrollIntoView, immediate } = options !== null && options !== void 0 ? options : {}; + const { force, scrollIntoView, immediate, resetLazy } = options !== null && options !== void 0 ? options : {}; const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events if (!flag && this.isExpanded() && @@ -5042,6 +5058,9 @@ if (flag && this.lazy && this.children == null) { await this.loadLazy(); } + else if (!flag && resetLazy && this.lazy && this.children) { + this.resetLazy(); + } this.expanded = flag; const updateOpts = { immediate: immediate }; // const updateOpts = { immediate: !!util.getOption(options, "immediate") }; @@ -5612,7 +5631,7 @@ /*! * Wunderbaum - ext-edit * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ // const START_MARKER = "\uFFF7"; class EditExtension extends WunderbaumExtension { @@ -5947,8 +5966,8 @@ * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.11.1 - * @date Fri, 27 Dec 2024 22:58:06 GMT + * @version v0.12.0 + * @date Sun, 12 Jan 2025 10:51:41 GMT */ // import "./wunderbaum.scss"; class WbSystemRoot extends WunderbaumNode { @@ -6281,7 +6300,10 @@ false) { return false; } - if (node && info.colIdx === 0 && node.isExpandable()) { + if (node && + info.colIdx === 0 && + node.isExpandable() && + info.region !== NodeRegion.expander) { this._callMethod("edit._stopEditTitle"); node.setExpanded(!node.isExpanded()); } @@ -8270,7 +8292,7 @@ } Wunderbaum.sequence = 0; /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */ - Wunderbaum.version = "v0.11.1"; // Set to semver by 'grunt release' + Wunderbaum.version = "v0.12.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 58c28f01..ce8767d0 100644 --- a/dist/wunderbaum.umd.min.js +++ b/dist/wunderbaum.umd.min.js @@ -7,68 +7,68 @@ /*! * Wunderbaum - util * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 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=C(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 C(e){return e?"string"==typeof e?document.querySelector(e):e:null}function k(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,t){const i=t.indexOf(e);return t[(i+1)%t.length]}function O(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){return"number"==typeof e?!!e:e}function R(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 z,U,V,q,H,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:R,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,intToBool:F,isArray:S,isEmptyObject:D,isFunction:function(e){return"function"==typeof e},isMac:d,isPlainObject:I,noop:function(...e){},onEvent:T,overrideMethod:L,rotate:A,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:O,toggleCheckbox:function(e,t,i){const s=C(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.12.0, Sun, 12 Jan 2025 10:51:41 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=C(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 C(e){return e?"string"==typeof e?document.querySelector(e):e:null}function k(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 z(e){return"number"==typeof e?!!e:e}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,q,U,V,H,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,intToBool:z,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=C(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.11.1, Fri, 27 Dec 2024 22:58:06 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"}(z||(z={})),function(e){e.clearMarkup="clearMarkup",e.header="header",e.redraw="redraw",e.scroll="scroll"}(U||(U={})),function(e){e.ok="ok",e.loading="loading",e.error="error",e.noData="noData",e.paging="paging"}(V||(V={})),function(e){e.unknown="",e.checkbox="checkbox",e.column="column",e.expander="expander",e.icon="icon",e.prefix="prefix",e.title="title"}(q||(q={})),function(e){e.startRow="startRow",e.cell="cell",e.startCell="startCell",e.row="row"}(H||(H={})); + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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"}(q||(q={})),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"}(H||(H={})); /*! * Wunderbaum - wb_extension_base * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */ 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */const W="￷",B="￸",G=new RegExp(b("￷"),"g"),Q=new RegExp(b("￸"),"g");class Y 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=C(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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) - */(t,i,!0):t.replace(u,(function(e){return W+e+B})),e.titleWithHighlight=m(s).replace(G,"").replace(Q,"")}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(V.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(V.noData,{message:l.noData}):n.root.setStatus(V.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(V.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 J 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=k(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===H.startCell||l===H.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!==H.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!==H.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(Q,"")}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 J 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=k(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===H.startCell||l===H.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!==H.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!==H.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)}} /*! * Wunderbaum - ext-dnd * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) - */const Z="application/x-wunderbaum-node";class ee 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=O(e)).size>0&&e;throw new Error("Unsupported drop region definition: "+e)}_calcDropRegion(e,t){const i=this.tree.options.rowHeightPx,s=e.offsetY;return!!t&&(3===t.size?s<.25*i?"before":s>.75*i?"after":"over":1===t.size&&t.has("over")?"over":s>i/2?"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(Z,i.serializeClipboardData(n,s)):e.dataTransfer.setData(Z,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});if(t=this.unifyDragover(t),!t)return o.dropEffect="none",!0;this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect;const l=this._calcDropRegion(e,this.lastAllowedDropRegions);return n.setClass("wb-drop-target"),n.setClass("wb-drop-over","over"===l),n.setClass("wb-drop-before","before"===l),n.setClass("wb-drop-after","after"===l),e.preventDefault(),!1}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(Z);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.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) + */const Z="application/x-wunderbaum-node";class ee 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=this.tree.options.rowHeightPx,s=e.offsetY;return!!t&&(3===t.size?s<.25*i?"before":s>.75*i?"after":"over":1===t.size&&t.has("over")?"over":s>i/2?"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(Z,i.serializeClipboardData(n,s)):e.dataTransfer.setData(Z,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});if(t=this.unifyDragover(t),!t)return o.dropEffect="none",!0;this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect;const l=this._calcDropRegion(e,this.lastAllowedDropRegions);return n.setClass("wb-drop-target"),n.setClass("wb-drop-over","over"===l),n.setClass("wb-drop-before","before"===l),n.setClass("wb-drop-after","after"===l),e.preventDefault(),!1}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(Z);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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) */class te{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.dys?1:-1}function ae(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-grid * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. - * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) - */class de extends K{constructor(e){super(e,"grid",{}),this.observer=new te({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(z.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(z.colStructure)}}} + * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum) + */class de extends K{constructor(e){super(e,"grid",{}),this.observer=new te({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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) + * v0.12.0, Sun, 12 Jan 2025 10:51:41 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.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum) - */const he=new Set(["checkbox","classes","expanded","icon","iconTooltip","key","lazy","_partsel","radiogroup","refKey","selected","statusNodeType","title","tooltip","type","unselectable"]),ue=new Set(he);ue.delete("_partsel"),ue.delete("unselectable");class pe{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:++pe.sequence),this.title=""+(null!==(n=i.title)&&void 0!==n?n:"<"+this.key+">"),this.expanded=!!i.expanded,this.lazy=!!i.lazy,null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),null!=i.icon&&(this.icon=F(i.icon)),null!=i.tooltip&&(this.tooltip=F(i.tooltip)),null!=i.iconTooltip&&(this.iconTooltip=F(i.iconTooltip)),null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&F(i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),null!=i.selected&&(this.selected=!!i.selected),null!=i.unselectable&&(this.unselectable=!!i.unselectable),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(z.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=O(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:oe(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(V.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(V.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(V.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(V.ok);f(S(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(V.ok),t?(this.expanded=!0,this.tree.update(z.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(V.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(z.any)}),0)}}async navigate(e,t){e=re[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(z.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(z.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):ie.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=i.rowHeightPx,n=this.getOption("checkbox"),r=t.columns,o=this.getLevel(),l=t.isRowNav()?null:t.activeColIdx;let a,d=this._rowElem,c=null,h=null;const u=!d;f(u,"Expected unrendered node"),f(!u||e&&e.after,"opts.after expected, unless updating"),f(!this.isRootNode(),"Root node not allowed"),d=document.createElement("div"),d.classList.add("wb-row"),d.style.top=this._rowIdx*s+"px",this._rowElem=d,d._wb_node=this;const p=document.createElement("span");p.classList.add("wb-node","wb-col"),d.appendChild(p);let g=0;n&&(c=document.createElement("i"),c.classList.add("wb-checkbox"),("radio"===n||this.parent.radiogroup)&&c.classList.add("wb-radio"),p.appendChild(c),g+=20);for(let e=o-1;e>0;e--)a=document.createElement("i"),a.classList.add("wb-indent"),p.appendChild(a),g+=20;(!i.minExpandLevel||o>i.minExpandLevel)&&(h=document.createElement("i"),h.classList.add("wb-expander"),p.appendChild(h),g+=20);this._createIcon(t.iconMap,p,null,!h)&&(g+=20);const v=document.createElement("span");v.classList.add("wb-title"),p.appendChild(v),p._ofsTitlePx=g,t.options.dnd.dragStart&&(p.draggable=!0);if(!this.isColspan()&&r.length>1){let e=0;for(const t of r){let i;e++,"*"===t.id?i=p:(i=document.createElement("span"),i.classList.add("wb-col"),d.appendChild(i)),e===l&&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",u&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(d);break;case"last":t.nodeListElement.appendChild(d);break;default:e.after.after(d)}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"):ie.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:z.data},e);switch(this._rowElem||(t.change=z.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(z.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(z.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(z.status),this.update(z.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(z.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=z.data){f(e===z.status||e===z.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(z.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(z.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(z.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:A(d.sortOrder,["asc","desc",void 0]);for(const e of this.tree.columns)e.sortOrder=e===d?a:void 0;this.tree.update(z.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]),null==i&&null==s?0:(null==i?i="string"==typeof s?"":0:"boolean"==typeof i&&(i=i?1:0),null==s?s="string"==typeof i?"":0:"boolean"==typeof s&&(s=s?1:0),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"),this.expanded=!!i.expanded,this.lazy=!!i.lazy,null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),null!=i.icon&&(this.icon=z(i.icon)),null!=i.tooltip&&(this.tooltip=z(i.tooltip)),null!=i.iconTooltip&&(this.iconTooltip=z(i.iconTooltip)),null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&z(i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),null!=i.selected&&(this.selected=!!i.selected),null!=i.unselectable&&(this.unselectable=!!i.unselectable),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,{collapseOthers:s,deep:n,depth:r,force:o,keepActiveNodeVisible:l=!0,loadLazy:a,resetLazy:d}=null!=t?t:{},c=this.tree.options.minExpandLevel||null,h=null!=r?r:o?null:c,u={deep:n,force:o,loadLazy:a,resetLazy:d,scrollIntoView:!1};this.logInfo(`expandAll(${e}, depth=${r}, minLevel=${h})`),f(!(e&&null!=n&&!s),"Expanding with `deep` option is not supported (implied by the `depth` option).");const p=i.logTime(`${this}.expandAll(${e}, depth=${r})`);try{i.enableUpdate(!1),await async function t(i,s){var o;const l=[];return null===(o=i.children)||void 0===o||o.forEach((i=>{if(e)if(!i.expanded&&(null==h||s{await t(i,s+1)}))}else l.push(t(i,s+1));else(null==h||s>=h)&&i.setExpanded(!1,u),(null!=h&&s{Promise.all(l).then((()=>{e(!0)}))}))}(this,0),s&&(f(e,"Option `collapseOthers` requires flag=true"),f(null!=h,"Option `collapseOthers` requires `depth` or `minExpandLevel`"),this.expandAll(!1,{depth:h}))}finally{i.enableUpdate(!0),i.logTimeEnd(p)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:oe(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=re[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):ie.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=i.rowHeightPx,n=this.getOption("checkbox"),r=t.columns,o=this.getLevel(),l=t.isRowNav()?null:t.activeColIdx;let a,d=this._rowElem,c=null,h=null;const u=!d;f(u,"Expected unrendered node"),f(!u||e&&e.after,"opts.after expected, unless updating"),f(!this.isRootNode(),"Root node not allowed"),d=document.createElement("div"),d.classList.add("wb-row"),d.style.top=this._rowIdx*s+"px",this._rowElem=d,d._wb_node=this;const p=document.createElement("span");p.classList.add("wb-node","wb-col"),d.appendChild(p);let g=0;n&&(c=document.createElement("i"),c.classList.add("wb-checkbox"),("radio"===n||this.parent.radiogroup)&&c.classList.add("wb-radio"),p.appendChild(c),g+=20);for(let e=o-1;e>0;e--)a=document.createElement("i"),a.classList.add("wb-indent"),p.appendChild(a),g+=20;(!i.minExpandLevel||o>i.minExpandLevel)&&(h=document.createElement("i"),h.classList.add("wb-expander"),p.appendChild(h),g+=20);this._createIcon(t.iconMap,p,null,!h)&&(g+=20);const v=document.createElement("span");v.classList.add("wb-title"),p.appendChild(v),p._ofsTitlePx=g,t.options.dnd.dragStart&&(p.draggable=!0);if(!this.isColspan()&&r.length>1){let e=0;for(const t of r){let i;e++,"*"===t.id?i=p:(i=document.createElement("span"),i.classList.add("wb-col"),d.appendChild(i)),e===l&&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",u&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(d);break;case"last":t.nodeListElement.appendChild(d);break;default:e.after.after(d)}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"):ie.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(!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,resetLazy:r}=null!=t?t:{},o=!(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(o&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children?await this.loadLazy():!e&&r&&this.lazy&&this.children&&this.resetLazy(),this.expanded=e;const l={immediate:n};if(this.tree.update(R.structure,l),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}o&&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]),null==i&&null==s?0:(null==i?i="string"==typeof s?"":0:"boolean"==typeof i&&(i=i?1:0),null==s?s="string"==typeof i?"":0:"boolean"==typeof s&&(s=s?1:0),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=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=k(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;if(e.isStatusNode())return void e.logWarn("Cannot edit status node.");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)}))}} /*! @@ -80,7 +80,7 @@ class fe extends K{constructor(e){super(e,"edit",{debounce:100,minlength:1,maxle * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.11.1 - * @date Fri, 27 Dec 2024 22:58:06 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: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 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 J(this)),this._registerExtension(new fe(this)),this._registerExtension(new Y(this)),this._registerExtension(new ee(this)),this._registerExtension(new de(this)),this._registerExtension(new X(this)),this._updateViewportThrottled=R(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=C(t.element),f(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),22!==t.rowHeightPx&&(this.element.style.setProperty("--wb-row-outer-height",t.rowHeightPx+"px"),this.element.style.setProperty("--wb-row-inner-height",t.rowHeightPx-2+"px")),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(H.cell):this.setNavigationOption(H.row):this.setNavigationOption(t.navigationModeOption),this.update(z.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(z.any),this.element.addEventListener("scroll",(e=>{this.update(z.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(z.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===q.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===q.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=k(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===H.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?se[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.options.rowHeightPx,i=this.element.scrollTop;let s;return s=e?Math.ceil((i-1)/t):Math.floor(i/t),this._getNodeByRowIdx(s)}getLowestVpNode(e=!0){const t=this.options.rowHeightPx,i=this.element,s=this.headerElement.clientHeight,n=i.scrollTop,r=i.clientHeight-s;let o;return o=e?Math.floor((n+r)/t)-1:Math.ceil((n+r)/t)-1,o=Math.min(o,this.count(!0)-1),this._getNodeByRowIdx(o)}_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(z.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(z.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){const s=this.options.rowHeightPx;let n=null;const r=Math.floor(this.listContainerElement.clientHeight/s);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(n=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return n=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(n=e)}));break;case"right":e.children&&e.children.length&&(n=e.children[0]);break;case"up":n=this._getPrevNodeInView(e);break;case"down":n=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();n=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,r)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return n}*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:k(e),tree:r,node:n,region:q.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=q.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?q.expander:q.prefix;else if(i.contains("wb-checkbox"))o.region=q.checkbox;else if(i.contains("wb-icon"))o.region=q.icon;else if(i.contains("wb-node"))o.region=q.title;else if(s){o.region=q.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=q.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(z.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.options.rowHeightPx,n=this.element,r=this.headerElement.clientHeight,o=n.scrollTop,l=n.clientHeight,a=t._rowIdx*s+r,d=r,c=a-o,h=c+s,u=null==i?void 0:i.topNode;let p=null;c>=d?h<=l||(p=a+s-l+2):p=a-d-2,null!=p&&(this.log(`scrollTo(${a}): ${o} => ${p}`),n.scrollTop=p,u&&this.scrollTo(u))}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(z.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===H.row)switch(this.options.navigationModeOption=e,e){case H.cell:this.setCellNav(!0);break;case H.row:this.setCellNav(!1);break;case H.startCell:t&&this.setCellNav(!0);break;case H.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=O(e.classes))}sortChildren(e=le,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=U,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.options.rowHeightPx,s=this.element.clientHeight,n=this.element.scrollTop;let r=Math.max(0,n/i-5);r=Math.floor(r),r%2&&r--;let o=Math.max(0,(n+s)/i+5);o=Math.ceil(o);const l=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;l.add(t._wb_node)}));let a=0,d=0,c=!1,h="first";this.visitRows((function(e){const s=e._rowElem;e._rowIdx!==a&&(e._rowIdx=a,c=!0),ao?s&&(h=s):s&&t?(l.delete(e),s.style.top=a*i+"px",h=s):(l.delete(e),s&&(s.style.top=a*i+"px"),e._render({top:d,after:h}),h=e._rowElem),a++,d+=i})),this.treeRowCount=a;for(const e of l)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${d}px`,c}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(z.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.1",ve.util=j,e.Wunderbaum=ve})); + * @version v0.12.0 + * @date Sun, 12 Jan 2025 10:51:41 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: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 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 J(this)),this._registerExtension(new fe(this)),this._registerExtension(new Y(this)),this._registerExtension(new ee(this)),this._registerExtension(new de(this)),this._registerExtension(new X(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=C(t.element),f(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),22!==t.rowHeightPx&&(this.element.style.setProperty("--wb-row-outer-height",t.rowHeightPx+"px"),this.element.style.setProperty("--wb-row-inner-height",t.rowHeightPx-2+"px")),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(H.cell):this.setNavigationOption(H.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()&&t.region!==V.expander&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),T(this.element,"keydown",(e=>{const t=ve.getEventInfo(e),i=k(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===H.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?se[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.options.rowHeightPx,i=this.element.scrollTop;let s;return s=e?Math.ceil((i-1)/t):Math.floor(i/t),this._getNodeByRowIdx(s)}getLowestVpNode(e=!0){const t=this.options.rowHeightPx,i=this.element,s=this.headerElement.clientHeight,n=i.scrollTop,r=i.clientHeight-s;let o;return o=e?Math.floor((n+r)/t)-1:Math.ceil((n+r)/t)-1,o=Math.min(o,this.count(!0)-1),this._getNodeByRowIdx(o)}_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){const s=this.options.rowHeightPx;let n=null;const r=Math.floor(this.listContainerElement.clientHeight/s);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(n=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return n=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(n=e)}));break;case"right":e.children&&e.children.length&&(n=e.children[0]);break;case"up":n=this._getPrevNodeInView(e);break;case"down":n=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();n=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,r)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return n}*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:k(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.options.rowHeightPx,n=this.element,r=this.headerElement.clientHeight,o=n.scrollTop,l=n.clientHeight,a=t._rowIdx*s+r,d=r,c=a-o,h=c+s,u=null==i?void 0:i.topNode;let p=null;c>=d?h<=l||(p=a+s-l+2):p=a-d-2,null!=p&&(this.log(`scrollTo(${a}): ${o} => ${p}`),n.scrollTop=p,u&&this.scrollTo(u))}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===H.row)switch(this.options.navigationModeOption=e,e){case H.cell:this.setCellNav(!0);break;case H.row:this.setCellNav(!1);break;case H.startCell:t&&this.setCellNav(!0);break;case H.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=le,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=q,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.options.rowHeightPx,s=this.element.clientHeight,n=this.element.scrollTop;let r=Math.max(0,n/i-5);r=Math.floor(r),r%2&&r--;let o=Math.max(0,(n+s)/i+5);o=Math.ceil(o);const l=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;l.add(t._wb_node)}));let a=0,d=0,c=!1,h="first";this.visitRows((function(e){const s=e._rowElem;e._rowIdx!==a&&(e._rowIdx=a,c=!0),ao?s&&(h=s):s&&t?(l.delete(e),s.style.top=a*i+"px",h=s):(l.delete(e),s&&(s.style.top=a*i+"px"),e._render({top:d,after:h}),h=e._rowElem),a++,d+=i})),this.treeRowCount=a;for(const e of l)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${d}px`,c}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.12.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 2bf83323..71f38329 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","rotate","values","idx","toSet","val","set","c","add","toPixel","defaults","d","endsWith","parseInt","toBool","boolDefaults","intToBool","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","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","rowHeight","rowHeightPx","dy","offsetY","_guessDropEffect","ea","canCopy","includes","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","region","clientY","offsetTop","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","x","y","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","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","decompressSourceData","source","_format","_version","_keyMap","_valueMap","longToShort","shortToLong","entries","warn","_typeList","_b","_c","_positional","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","unflattenSource","_iter","childList","getOwnPropertyNames","propName","longName","newValue","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","lazy","icon","tooltip","iconTooltip","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","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","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","setProperty","_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","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","intToBool","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","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","rowHeight","rowHeightPx","dy","offsetY","_guessDropEffect","ea","canCopy","includes","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","region","clientY","offsetTop","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","x","y","dragElem","dragging","customData","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","startEvent","dx","pageX","pageY","dragstart","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","decompressSourceData","source","_format","_version","_keyMap","_valueMap","longToShort","shortToLong","entries","warn","_typeList","_b","_c","_positional","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","unflattenSource","_iter","childList","getOwnPropertyNames","propName","longName","newValue","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","lazy","icon","tooltip","iconTooltip","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","collapseOthers","deep","depth","force","keepActiveNodeVisible","loadLazy","resetLazy","treeLevel","minLevel","expandOpts","scrollIntoView","logTime","level","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","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","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","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","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","setProperty","_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","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/highlight.css b/docs/api/assets/highlight.css index 0ddf3101..4ddf2d08 100644 --- a/docs/api/assets/highlight.css +++ b/docs/api/assets/highlight.css @@ -11,16 +11,16 @@ --dark-hl-4: #C586C0; --light-hl-5: #267F99; --dark-hl-5: #4EC9B0; - --light-hl-6: #098658; - --dark-hl-6: #B5CEA8; + --light-hl-6: #795E26; + --dark-hl-6: #DCDCAA; --light-hl-7: #A31515; --dark-hl-7: #CE9178; - --light-hl-8: #795E26; - --dark-hl-8: #DCDCAA; - --light-hl-9: #0070C1; - --dark-hl-9: #4FC1FF; - --light-hl-10: #008000; - --dark-hl-10: #6A9955; + --light-hl-8: #0070C1; + --dark-hl-8: #4FC1FF; + --light-hl-9: #008000; + --dark-hl-9: #6A9955; + --light-hl-10: #098658; + --dark-hl-10: #B5CEA8; --light-hl-11: #811F3F; --dark-hl-11: #D16969; --light-hl-12: #EE0000; diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index 5d3323bd..462012ab 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 5ec98522..347430d6 100644 --- a/docs/api/classes/util.Deferred.html +++ b/docs/api/classes/util.Deferred.html @@ -1,10 +1,10 @@ -Deferred | wunderbaum - v0.11.1

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

+Deferred | wunderbaum - v0.12.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 b16e97f6..cb7283b0 100644 --- a/docs/api/classes/util.ValidationError.html +++ b/docs/api/classes/util.ValidationError.html @@ -1,14 +1,14 @@ -ValidationError | wunderbaum - v0.11.1

Class ValidationError

A generic error that can be thrown to indicate a validation error when +ValidationError | wunderbaum - v0.12.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 8030f9ed..e988562c 100644 --- a/docs/api/classes/wb_node.WunderbaumNode.html +++ b/docs/api/classes/wb_node.WunderbaumNode.html @@ -1,8 +1,8 @@ -WunderbaumNode | wunderbaum - v0.11.1

A single tree node.

+WunderbaumNode | wunderbaum - v0.12.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.

-
iconTooltip?: TooltipOption

Icon tooltip definition (true: use node's title).

-
key: string

Unique key. Passed with constructor or defaults to SEQUENCE.

+
icon?: IconOption

Icon definition.

+
iconTooltip?: TooltipOption

Icon tooltip definition (true: use node's title).

+
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?: TooltipOption

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

-

Reference to owning tree.

-
type?: string

Node type (used for styling).

+
titleWithHighlight?: string
tooltip?: TooltipOption

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

+

Reference to owning tree.

+
type?: string

Node type (used for styling).

unselectable?: boolean
sequence: number = 0

Methods

  • Iterate all descendant nodes depth-first, pre-order using for ... of ... syntax. +

unselectable?: boolean
sequence: number = 0

Methods

  • Iterate all descendant nodes depth-first, pre-order using for ... of ... syntax. More concise, but slightly slower than WunderbaumNode.visit.

    Example:

    -
    for(const n of node) {
    ...
    } +
    for(const n of node) {
    ...
    }
    -

    Returns IterableIterator<WunderbaumNode, any, any>

  • 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})
    +
    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>

  • 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(). If match is a callback, match all nodes for that the callback(node) returns true.

    Returns an empty array if no nodes were found.

    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;
    }) +
    // 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));
    +
    console.info(tree.getActiveNode().format((n)=>n.title));
     

    logs

    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:

      @@ -239,78 +245,78 @@

    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

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

    +

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 @@ -318,40 +324,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

    -
  • Make sure that this node is visible in the viewport.

    +
  • 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 @@ -359,20 +365,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 WunderbaumNode._render with default options, but may be more consistent with the tree's Wunderbaum.update API.

    -

    Parameters

    Returns void

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

    +

    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.

    @@ -380,14 +386,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 d3eda2f0..2ad27d7f 100644 --- a/docs/api/classes/wunderbaum.Wunderbaum.html +++ b/docs/api/classes/wunderbaum.Wunderbaum.html @@ -1,6 +1,6 @@ -Wunderbaum | wunderbaum - v0.11.1

A persistent plain object or array.

+Wunderbaum | wunderbaum - v0.12.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

  • Iterate all descendant nodes depth-first, pre-order using for ... of ... syntax. More concise, but slightly slower than Wunderbaum.visit.

    Example:

    -
    for(const node of tree) {
    ...
    } +
    for(const node of tree) {
    ...
    }
    -

    Returns IterableIterator<WunderbaumNode, any, any>

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

    +

    Returns IterableIterator<WunderbaumNode, any, any>

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

    Example:

    -
    tree._callEvent("edit.beforeEdit", {foo: 42})
    +
    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")
    +
    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.

    -
    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);
    } +

    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'}); +

    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));
    +
    console.info(tree.format((n)=>n.title));
     

    logs

    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.

    -
    tree.runWithDeferredUpdate(() => {
    return someFuncThatWouldUpdateManyNodes();
    }); +
  • 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

  • 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 +
  • 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 2b7e1de4..0e1be7ef 100644 --- a/docs/api/enums/types.ChangeType.html +++ b/docs/api/enums/types.ChangeType.html @@ -1,5 +1,5 @@ -ChangeType | wunderbaum - v0.11.1

Enumeration ChangeType

Possible values for WunderbaumNode.update and Wunderbaum.update.

-

Enumeration Members

any +ChangeType | wunderbaum - v0.12.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 e176d75f..6d8c16ab 100644 --- a/docs/api/enums/types.NavModeEnum.html +++ b/docs/api/enums/types.NavModeEnum.html @@ -1,6 +1,6 @@ -NavModeEnum | wunderbaum - v0.11.1

Enumeration NavModeEnum

Initial navigation mode and possible transition.

-

Enumeration Members

cell +NavModeEnum | wunderbaum - v0.12.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 b4cc5c2f..14735242 100644 --- a/docs/api/enums/types.NodeRegion.html +++ b/docs/api/enums/types.NodeRegion.html @@ -1,9 +1,9 @@ -NodeRegion | wunderbaum - v0.11.1

Enumeration NodeRegion

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

-

Enumeration Members

checkbox +NodeRegion | wunderbaum - v0.12.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 6d4e8be0..b9f91f73 100644 --- a/docs/api/enums/types.NodeStatusType.html +++ b/docs/api/enums/types.NodeStatusType.html @@ -1,7 +1,7 @@ -NodeStatusType | wunderbaum - v0.11.1

Enumeration NodeStatusType

Possible values for WunderbaumNode.setStatus.

-

Enumeration Members

error +NodeStatusType | wunderbaum - v0.12.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 b0e53827..8489935b 100644 --- a/docs/api/enums/types.RenderFlag.html +++ b/docs/api/enums/types.RenderFlag.html @@ -1,5 +1,5 @@ -RenderFlag | wunderbaum - v0.11.1

Enumeration RenderFlag

Enumeration Members

clearMarkup +RenderFlag | wunderbaum - v0.12.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 b44ef533..cef46776 100644 --- a/docs/api/functions/common.decompressSourceData.html +++ b/docs/api/functions/common.decompressSourceData.html @@ -1,4 +1,4 @@ -decompressSourceData | wunderbaum - v0.11.1

Function decompressSourceData

  • Decompresses the source data by

    +decompressSourceData | wunderbaum - v0.12.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 8b00c19c..5318482e 100644 --- a/docs/api/functions/common.makeNodeTitleMatcher.html +++ b/docs/api/functions/common.makeNodeTitleMatcher.html @@ -1,4 +1,4 @@ -makeNodeTitleMatcher | wunderbaum - v0.11.1

Function makeNodeTitleMatcher

  • Return a callback that returns true if the node title matches the string +makeNodeTitleMatcher | wunderbaum - v0.12.0

    Function makeNodeTitleMatcher

    \ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/functions/common.makeNodeTitleStartMatcher.html b/docs/api/functions/common.makeNodeTitleStartMatcher.html index 962f3334..004b9e67 100644 --- a/docs/api/functions/common.makeNodeTitleStartMatcher.html +++ b/docs/api/functions/common.makeNodeTitleStartMatcher.html @@ -1,2 +1,2 @@ -makeNodeTitleStartMatcher | wunderbaum - v0.11.1

Function makeNodeTitleStartMatcher

\ No newline at end of file +makeNodeTitleStartMatcher | wunderbaum - v0.12.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 28d75f90..d375bfeb 100644 --- a/docs/api/functions/common.nodeTitleSorter.html +++ b/docs/api/functions/common.nodeTitleSorter.html @@ -1,2 +1,2 @@ -nodeTitleSorter | wunderbaum - v0.11.1

Function nodeTitleSorter

\ No newline at end of file +nodeTitleSorter | wunderbaum - v0.12.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 f06d430d..8150e964 100644 --- a/docs/api/functions/util.adaptiveThrottle.html +++ b/docs/api/functions/util.adaptiveThrottle.html @@ -1,8 +1,8 @@ -adaptiveThrottle | wunderbaum - v0.11.1

Function adaptiveThrottle

  • Return a function that can be called instead of callback, but guarantees +adaptiveThrottle | wunderbaum - v0.12.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(); +
      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 5f2d182f..70b051b0 100644 --- a/docs/api/functions/util.assert.html +++ b/docs/api/functions/util.assert.html @@ -1,2 +1,2 @@ -assert | wunderbaum - v0.11.1

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.12.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 01e2852e..aa95fddf 100644 --- a/docs/api/functions/util.debounce.html +++ b/docs/api/functions/util.debounce.html @@ -1,4 +1,4 @@ -debounce | wunderbaum - v0.11.1

Function debounce

  • Creates a debounced function that delays invoking func until after wait +debounce | wunderbaum - v0.12.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 @@ -23,6 +23,6 @@

    • Optional options: DebounceOptions = {}

      The options object.

    Returns DebouncedFunction<F>

    Returns the new debounced function.

    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" +

    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 59a64b7d..423ca4fa 100644 --- a/docs/api/functions/util.documentReady.html +++ b/docs/api/functions/util.documentReady.html @@ -1,2 +1,2 @@ -documentReady | wunderbaum - v0.11.1

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.12.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 f9730a63..73658d02 100644 --- a/docs/api/functions/util.documentReadyPromise.html +++ b/docs/api/functions/util.documentReadyPromise.html @@ -1,2 +1,2 @@ -documentReadyPromise | wunderbaum - v0.11.1

Function documentReadyPromise

  • Resolve when document was loaded.

    -

    Returns Promise<void>

\ No newline at end of file +documentReadyPromise | wunderbaum - v0.12.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 c51d9464..16954841 100644 --- a/docs/api/functions/util.each.html +++ b/docs/api/functions/util.each.html @@ -1,6 +1,6 @@ -each | wunderbaum - v0.11.1

Function each

  • Iterate over Object properties or array elements.

    +each | wunderbaum - v0.12.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 ffdf3c50..5923283d 100644 --- a/docs/api/functions/util.elemFromHtml.html +++ b/docs/api/functions/util.elemFromHtml.html @@ -1,2 +1,2 @@ -elemFromHtml | wunderbaum - v0.11.1

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.12.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 e6024b4c..66e41abc 100644 --- a/docs/api/functions/util.elemFromSelector.html +++ b/docs/api/functions/util.elemFromSelector.html @@ -1,2 +1,2 @@ -elemFromSelector | wunderbaum - v0.11.1

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.12.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 3fd62654..e6e0889b 100644 --- a/docs/api/functions/util.error.html +++ b/docs/api/functions/util.error.html @@ -1,2 +1,2 @@ -error | wunderbaum - v0.11.1

Function error

  • Shortcut for throw new Error(msg).

    -

    Parameters

    • msg: string

    Returns void

\ No newline at end of file +error | wunderbaum - v0.12.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 ba836203..d97dcc0c 100644 --- a/docs/api/functions/util.escapeHtml.html +++ b/docs/api/functions/util.escapeHtml.html @@ -1,2 +1,2 @@ -escapeHtml | wunderbaum - v0.11.1

Function escapeHtml

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

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeHtml | wunderbaum - v0.12.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 cd46ef98..1c90a88d 100644 --- a/docs/api/functions/util.escapeRegex.html +++ b/docs/api/functions/util.escapeRegex.html @@ -1,2 +1,2 @@ -escapeRegex | wunderbaum - v0.11.1

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.12.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 a557969d..db1f1f60 100644 --- a/docs/api/functions/util.escapeTooltip.html +++ b/docs/api/functions/util.escapeTooltip.html @@ -1,2 +1,2 @@ -escapeTooltip | wunderbaum - v0.11.1

Function escapeTooltip

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

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeTooltip | wunderbaum - v0.12.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 f0e8b2b7..4487a168 100644 --- a/docs/api/functions/util.eventToString.html +++ b/docs/api/functions/util.eventToString.html @@ -1,8 +1,8 @@ -eventToString | wunderbaum - v0.11.1

Function eventToString

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

    +eventToString | wunderbaum - v0.12.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;
      } +
        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 cf37ee2e..0429596a 100644 --- a/docs/api/functions/util.extend.html +++ b/docs/api/functions/util.extend.html @@ -1,3 +1,3 @@ -extend | wunderbaum - v0.11.1

Function extend

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

    +extend | wunderbaum - v0.12.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 91f0e85a..633be739 100644 --- a/docs/api/functions/util.extractHtmlText.html +++ b/docs/api/functions/util.extractHtmlText.html @@ -1,2 +1,2 @@ -extractHtmlText | wunderbaum - v0.11.1

Function extractHtmlText

  • TODO

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +extractHtmlText | wunderbaum - v0.12.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 31fb3920..41f80bdf 100644 --- a/docs/api/functions/util.getOption.html +++ b/docs/api/functions/util.getOption.html @@ -1,5 +1,5 @@ -getOption | wunderbaum - v0.11.1

Function getOption

  • Return opts.NAME if opts is valid and

    +getOption | wunderbaum - v0.12.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 68c0fe36..8ed1ed9d 100644 --- a/docs/api/functions/util.getValueFromElem.html +++ b/docs/api/functions/util.getValueFromElem.html @@ -1,13 +1,13 @@ -getValueFromElem | wunderbaum - v0.11.1

Function getValueFromElem

  • Read the value from an HTML input element.

    +getValueFromElem | wunderbaum - v0.12.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 the element is checked, unchecked, or indeterminate. For datetime input control a numerical value is assumed, etc.

      Common use case: store the new user input in a change event handler:

      -
        change: (e) => {
      const tree = e.tree;
      const node = e.node;
      // Read the value from the input control that triggered the change event:
      let value = tree.getValueFromElem(e.element);
      // and store it to the node model (assuming the column id matches the property name)
      node.data[e.info.colId] = value;
      }, +
        change: (e) => {
      const tree = e.tree;
      const node = e.node;
      // Read the value from the input control that triggered the change event:
      let value = tree.getValueFromElem(e.element);
      // and store it to the node model (assuming the column id matches the property name)
      node.data[e.info.colId] = value;
      },

      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.intToBool.html b/docs/api/functions/util.intToBool.html index e6a4e854..a43b13e3 100644 --- a/docs/api/functions/util.intToBool.html +++ b/docs/api/functions/util.intToBool.html @@ -1,5 +1,5 @@ -intToBool | wunderbaum - v0.11.1

Function intToBool

  • Return val unless val is a number in which case we convert to boolean. +intToBool | wunderbaum - v0.12.0

    Function intToBool

    • Return val unless val is a number in which case we convert to boolean. This is useful when a boolean value is stored as a 0/1 (e.g. in JSON) and we still want to maintain string values. null and undefined are returned as is. E.g. checkbox may be boolean or 'radio'.

      -

      Parameters

      • val: undefined | string | number | boolean

      Returns boolean | string | undefined

    \ No newline at end of file +

    Parameters

    • val: undefined | string | number | boolean

    Returns boolean | string | undefined

\ No newline at end of file diff --git a/docs/api/functions/util.isArray.html b/docs/api/functions/util.isArray.html index f9bcaf83..6becd864 100644 --- a/docs/api/functions/util.isArray.html +++ b/docs/api/functions/util.isArray.html @@ -1,2 +1,2 @@ -isArray | wunderbaum - v0.11.1

Function isArray

  • Return true if obj is of type array.

    -

    Parameters

    • obj: any

    Returns obj is any[]

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

Function isArray

  • Return true if obj is of type array.

    +

    Parameters

    • obj: any

    Returns obj is any[]

\ No newline at end of file diff --git a/docs/api/functions/util.isEmptyObject.html b/docs/api/functions/util.isEmptyObject.html index 00369b32..65fdc6ad 100644 --- a/docs/api/functions/util.isEmptyObject.html +++ b/docs/api/functions/util.isEmptyObject.html @@ -1,2 +1,2 @@ -isEmptyObject | wunderbaum - v0.11.1

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.12.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 cb6b457b..008dac73 100644 --- a/docs/api/functions/util.isFunction.html +++ b/docs/api/functions/util.isFunction.html @@ -1,2 +1,2 @@ -isFunction | wunderbaum - v0.11.1

Function isFunction

  • Return true if obj is of type function.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isFunction | wunderbaum - v0.12.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 697f4473..585d122d 100644 --- a/docs/api/functions/util.isPlainObject.html +++ b/docs/api/functions/util.isPlainObject.html @@ -1,2 +1,2 @@ -isPlainObject | wunderbaum - v0.11.1

Function isPlainObject

  • Return true if obj is of type Object.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isPlainObject | wunderbaum - v0.12.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 604c989b..5c3f179a 100644 --- a/docs/api/functions/util.noop.html +++ b/docs/api/functions/util.noop.html @@ -1,2 +1,2 @@ -noop | wunderbaum - v0.11.1

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.12.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 605dd19c..87058846 100644 --- a/docs/api/functions/util.onEvent.html +++ b/docs/api/functions/util.onEvent.html @@ -1,9 +1,9 @@ -onEvent | wunderbaum - v0.11.1

Function onEvent

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

    +onEvent | wunderbaum - v0.12.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);
    }); +
    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 33fb654e..2e33e8fc 100644 --- a/docs/api/functions/util.overrideMethod.html +++ b/docs/api/functions/util.overrideMethod.html @@ -1,4 +1,4 @@ -overrideMethod | wunderbaum - v0.11.1

    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;
      }); +overrideMethod | wunderbaum - v0.12.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 7a820fcf..8f673bd2 100644 --- a/docs/api/functions/util.rotate.html +++ b/docs/api/functions/util.rotate.html @@ -1,3 +1,3 @@ -rotate | wunderbaum - v0.11.1

    Function rotate

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

      +rotate | wunderbaum - v0.12.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 e077eb23..0b6ac44a 100644 --- a/docs/api/functions/util.setElemDisplay.html +++ b/docs/api/functions/util.setElemDisplay.html @@ -1,2 +1,2 @@ -setElemDisplay | wunderbaum - v0.11.1

    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.12.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 b6aa9f32..9990bb34 100644 --- a/docs/api/functions/util.setTimeoutPromise.html +++ b/docs/api/functions/util.setTimeoutPromise.html @@ -1,2 +1,2 @@ -setTimeoutPromise | wunderbaum - v0.11.1

    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.12.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 70fb0799..bb8f0cc1 100644 --- a/docs/api/functions/util.setValueToElem.html +++ b/docs/api/functions/util.setValueToElem.html @@ -1,12 +1,12 @@ -setValueToElem | wunderbaum - v0.11.1

    Function setValueToElem

    • Set the value of an HTML input element.

      +setValueToElem | wunderbaum - v0.12.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 value is truethy, falsy, or null. For datetime input control a numerical value is assumed, etc.

        Common use case: update embedded input controls in a render event handler:

        -
          render: (e) => {
        // e.node.log(e.type, e, e.node.data);

        for (const col of Object.values(e.renderColInfosById)) {
        switch (col.id) {
        default:
        // Assumption: we named column.id === node.data.NAME
        util.setValueToElem(col.elem, e.node.data[col.id]);
        break;
        }
        }
        }, +
          render: (e) => {
        // e.node.log(e.type, e, e.node.data);

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

        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 fe7fc0cb..3ddeac2b 100644 --- a/docs/api/functions/util.sleep.html +++ b/docs/api/functions/util.sleep.html @@ -1,6 +1,6 @@ -sleep | wunderbaum - v0.11.1

    Function sleep

    • Wait ms microseconds.

      +sleep | wunderbaum - v0.12.0

      Function sleep

      • Wait ms microseconds.

        Example:

        -
        await sleep(1000);
        +
        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 e80ff7ba..5cc46593 100644 --- a/docs/api/functions/util.throttle.html +++ b/docs/api/functions/util.throttle.html @@ -1,4 +1,4 @@ -throttle | wunderbaum - v0.11.1

    Function throttle

    • Creates a throttled function that only invokes func at most once per +throttle | wunderbaum - v0.12.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 @@ -22,6 +22,6 @@

      • Optional options: ThrottleOptions = {}

        The options object.

      Returns DebouncedFunction<F>

      Returns the new throttled function.

      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) +

      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 7d06c764..171edc36 100644 --- a/docs/api/functions/util.toBool.html +++ b/docs/api/functions/util.toBool.html @@ -1,5 +1,5 @@ -toBool | wunderbaum - v0.11.1

    Function toBool

    • Return the the boolean value of the first non-null element. +toBool | wunderbaum - v0.12.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 +
        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 c3e70a4c..45b5eada 100644 --- a/docs/api/functions/util.toPixel.html +++ b/docs/api/functions/util.toPixel.html @@ -1,7 +1,7 @@ -toPixel | wunderbaum - v0.11.1

    Function toPixel

    • Convert a pixel string to number. +toPixel | wunderbaum - v0.12.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 +
        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 0566b99e..223dd2dd 100644 --- a/docs/api/functions/util.toSet.html +++ b/docs/api/functions/util.toSet.html @@ -1,2 +1,2 @@ -toSet | wunderbaum - v0.11.1

    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.12.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 629cdc27..40e2bc27 100644 --- a/docs/api/functions/util.toggleCheckbox.html +++ b/docs/api/functions/util.toggleCheckbox.html @@ -1,7 +1,7 @@ -toggleCheckbox | wunderbaum - v0.11.1

    Function toggleCheckbox

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

      +toggleCheckbox | wunderbaum - v0.12.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 4d851643..8519b220 100644 --- a/docs/api/functions/util.type.html +++ b/docs/api/functions/util.type.html @@ -1,2 +1,2 @@ -type | wunderbaum - v0.11.1

    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.12.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 6695162d..5cb91488 100644 --- a/docs/api/hierarchy.html +++ b/docs/api/hierarchy.html @@ -1 +1 @@ -wunderbaum - v0.11.1
    \ No newline at end of file +wunderbaum - v0.12.0
    \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index 6a14883a..ea3c364c 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1,15 +1,15 @@ -wunderbaum - v0.11.1

    wunderbaum - v0.11.1

    wunderbaum

    GitHub version +wunderbaum - v0.12.0

    wunderbaum - v0.12.0

    wunderbaum

    GitHub version Node.js CI npm jsDelivr Released with: grunt-yabs StackOverflow: wunderbaum

    -

    A modern tree/treegrid control for the web.
    -Designated successor of Fancytree.

    -

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

    +

    A modern tree/treegrid control for the web.

    +

    Designated successor of Fancytree.
    +See the upgrade guide +for details.

    Demo

    -
    \ 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 426d81be..048e91ea 100644 --- a/docs/api/interfaces/types.AddChildrenOptions.html +++ b/docs/api/interfaces/types.AddChildrenOptions.html @@ -1,13 +1,13 @@ -AddChildrenOptions | wunderbaum - v0.11.1

    Interface AddChildrenOptions

    Possible values for WunderbaumNode.addChildren.

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

    Properties

    _level? +AddChildrenOptions | wunderbaum - v0.12.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 5a0cfe6f..02234bff 100644 --- a/docs/api/interfaces/types.ApplyCommandOptions.html +++ b/docs/api/interfaces/types.ApplyCommandOptions.html @@ -1,2 +1,2 @@ -ApplyCommandOptions | wunderbaum - v0.11.1

    Interface ApplyCommandOptions

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

    Indexable

    [key: string]: unknown
    \ No newline at end of file +ApplyCommandOptions | wunderbaum - v0.12.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 bc7d6fab..8f2bd5ab 100644 --- a/docs/api/interfaces/types.ColumnDefinition.html +++ b/docs/api/interfaces/types.ColumnDefinition.html @@ -1,6 +1,6 @@ -ColumnDefinition | wunderbaum - v0.11.1

    Interface ColumnDefinition

    Column type definitions.

    +ColumnDefinition | wunderbaum - v0.12.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.

    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 +

    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.

    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. +

    minWidth?: string | number

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

    -
    resizable?: boolean

    Allow user to resize the column.

    +
    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. +

    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.

    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. +

    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 032eefb0..5d53940b 100644 --- a/docs/api/interfaces/types.ColumnEventInfo.html +++ b/docs/api/interfaces/types.ColumnEventInfo.html @@ -1,10 +1,10 @@ -ColumnEventInfo | wunderbaum - v0.11.1

    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.12.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 42a445e7..aa982926 100644 --- a/docs/api/interfaces/types.DragEventType.html +++ b/docs/api/interfaces/types.DragEventType.html @@ -1,16 +1,16 @@ -DragEventType | wunderbaum - v0.11.1

    Interface DragEventType

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

    Hierarchy (view full)

    Properties

    event +DragEventType | wunderbaum - v0.12.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 87a2dc1b..40620a20 100644 --- a/docs/api/interfaces/types.DropEventType.html +++ b/docs/api/interfaces/types.DropEventType.html @@ -1,4 +1,4 @@ -DropEventType | wunderbaum - v0.11.1

    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.12.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 9a1a78e4..6d262caf 100644 --- a/docs/api/interfaces/types.ExpandAllOptions.html +++ b/docs/api/interfaces/types.ExpandAllOptions.html @@ -1,18 +1,38 @@ -ExpandAllOptions | wunderbaum - v0.11.1

    Interface ExpandAllOptions

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

    Properties

    depth? +ExpandAllOptions | wunderbaum - v0.12.0

    Interface ExpandAllOptions

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

    Properties

    depth?: number

    Restrict expand level

    -

    Default

    99
    +resetLazy?
    +

    Properties

    collapseOthers?: boolean

    Expand up to level=depth and collapse all other branches. +Only in combination with flag == true, depth > 0.

    +

    Default

    false
    +
    +
    deep?: boolean

    Also collapse child nodes beyond the depth level. +Otherwise only the depth level is collapsed and the expand state of the +descendants is retained. +Only in combination with collapse and depth. +Expanding with deep option is not supported as recursion depth implied by +the depth option. However a deep option will be considered if +collapseOthers is set.

    +

    Default

    false
     
    -
    force?: boolean

    Ignore minExpandLevel option

    +
    depth?: number

    Restrict expand level. +Pass 0 to make only toplevel nodes visible, 1 to expand one level deeper, etc.

    +

    Default

    unset (unlimited)
    +
    +
    force?: boolean

    Ignore tree's 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
    +
    +
    resetLazy?: boolean

    Unload lazily loaded children if any (if collapsing).

    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 b0c3a937..1bd36826 100644 --- a/docs/api/interfaces/types.FilterNodesOptions.html +++ b/docs/api/interfaces/types.FilterNodesOptions.html @@ -1,7 +1,7 @@ -FilterNodesOptions | wunderbaum - v0.11.1

    Interface FilterNodesOptions

    Possible option values for Wunderbaum.filterNodes. +FilterNodesOptions | wunderbaum - v0.12.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 13469def..05dc1ede 100644 --- a/docs/api/interfaces/types.MakeVisibleOptions.html +++ b/docs/api/interfaces/types.MakeVisibleOptions.html @@ -1,14 +1,14 @@ -MakeVisibleOptions | wunderbaum - v0.11.1

    Interface MakeVisibleOptions

    Possible values for WunderbaumNode.makeVisible.

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

    Properties

    noAnimation? +MakeVisibleOptions | wunderbaum - v0.12.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 77abcc75..428bd4f4 100644 --- a/docs/api/interfaces/types.NavigateOptions.html +++ b/docs/api/interfaces/types.NavigateOptions.html @@ -1,8 +1,8 @@ -NavigateOptions | wunderbaum - v0.11.1

    Interface NavigateOptions

    Possible values for WunderbaumNode.navigate.

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

    Properties

    activate? +NavigateOptions | wunderbaum - v0.12.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 0cfffd73..20516566 100644 --- a/docs/api/interfaces/types.NodeTypeDefinition.html +++ b/docs/api/interfaces/types.NodeTypeDefinition.html @@ -1,15 +1,15 @@ -NodeTypeDefinition | wunderbaum - v0.11.1

    Interface NodeTypeDefinition

    Contains the node's type information, i.e. tree.types[node.type] if +NodeTypeDefinition | wunderbaum - v0.12.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?: TooltipOption;
        [key: string]: unknown;
    }

    Indexable

    [key: string]: unknown

    Properties

    interface NodeTypeDefinition {
        checkbox?: CheckboxOption;
        classes?: string;
        colspan?: boolean;
        icon?: IconOption;
        iconTooltip?: TooltipOption;
        [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?: TooltipOption

    Default icon tooltip 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?: TooltipOption

    Default icon tooltip 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 176175f6..08b1c89c 100644 --- a/docs/api/interfaces/types.RenderOptions.html +++ b/docs/api/interfaces/types.RenderOptions.html @@ -1,5 +1,5 @@ -RenderOptions | wunderbaum - v0.11.1

    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? +RenderOptions | wunderbaum - v0.12.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 7096ab3e..6f61947c 100644 --- a/docs/api/interfaces/types.ResetOrderOptions.html +++ b/docs/api/interfaces/types.ResetOrderOptions.html @@ -1,9 +1,9 @@ -ResetOrderOptions | wunderbaum - v0.11.1

    Interface ResetOrderOptions

    Possible values for WunderbaumNode.sortByProperty options argument.

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

    Properties

    propName? +ResetOrderOptions | wunderbaum - v0.12.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 6024e70c..f3734615 100644 --- a/docs/api/interfaces/types.ScrollIntoViewOptions.html +++ b/docs/api/interfaces/types.ScrollIntoViewOptions.html @@ -1,14 +1,14 @@ -ScrollIntoViewOptions | wunderbaum - v0.11.1

    Interface ScrollIntoViewOptions

    Possible values for WunderbaumNode.scrollIntoView options argument.

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

    Hierarchy (view full)

    Properties

    noAnimation? +ScrollIntoViewOptions | wunderbaum - v0.12.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 a5f7d03a..417e1458 100644 --- a/docs/api/interfaces/types.ScrollToOptions.html +++ b/docs/api/interfaces/types.ScrollToOptions.html @@ -1,5 +1,5 @@ -ScrollToOptions | wunderbaum - v0.11.1

    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? +ScrollToOptions | wunderbaum - v0.12.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 cc0ff4a7..11621be8 100644 --- a/docs/api/interfaces/types.SetActiveOptions.html +++ b/docs/api/interfaces/types.SetActiveOptions.html @@ -1,16 +1,16 @@ -SetActiveOptions | wunderbaum - v0.11.1

    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.12.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
    edit?: boolean

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

    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 e52758a8..7a6b7cdb 100644 --- a/docs/api/interfaces/types.SetColumnOptions.html +++ b/docs/api/interfaces/types.SetColumnOptions.html @@ -1,9 +1,9 @@ -SetColumnOptions | wunderbaum - v0.11.1

    Interface SetColumnOptions

    Possible values for Wunderbaum.setColumn options argument.

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

    Properties

    edit? +SetColumnOptions | wunderbaum - v0.12.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 e363a1b2..772c90c2 100644 --- a/docs/api/interfaces/types.SetExpandedOptions.html +++ b/docs/api/interfaces/types.SetExpandedOptions.html @@ -1,22 +1,26 @@ -SetExpandedOptions | wunderbaum - v0.11.1

    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.12.0

    Interface SetExpandedOptions

    Possible values for WunderbaumNode.setExpanded options argument.

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

    Properties

    force?: boolean

    Properties

    force?: boolean

    Ignore WunderbaumOptions.minExpandLevel.

    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.

    +
    resetLazy?: boolean

    Unload lazily loaded children if any (if collapsing).

    Default

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

    Scroll up to bring expanded nodes into viewport.

    +

    Default

    false
    +
    +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetSelectedOptions.html b/docs/api/interfaces/types.SetSelectedOptions.html index e0324b3c..5cab200e 100644 --- a/docs/api/interfaces/types.SetSelectedOptions.html +++ b/docs/api/interfaces/types.SetSelectedOptions.html @@ -1,18 +1,18 @@ -SetSelectedOptions | wunderbaum - v0.11.1

    Interface SetSelectedOptions

    Possible values for WunderbaumNode.setSelected options argument.

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

    Properties

    callback? +SetSelectedOptions | wunderbaum - v0.12.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 d8cd5b61..1c1cbfd1 100644 --- a/docs/api/interfaces/types.SetStatusOptions.html +++ b/docs/api/interfaces/types.SetStatusOptions.html @@ -1,6 +1,6 @@ -SetStatusOptions | wunderbaum - v0.11.1

    Interface SetStatusOptions

    Possible values for WunderbaumNode.setStatus options argument.

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

    Properties

    details? +SetStatusOptions | wunderbaum - v0.12.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 cc20f9a8..6af88f24 100644 --- a/docs/api/interfaces/types.SortByPropertyOptions.html +++ b/docs/api/interfaces/types.SortByPropertyOptions.html @@ -1,5 +1,5 @@ -SortByPropertyOptions | wunderbaum - v0.11.1

    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

    caseInsensitive? +SortByPropertyOptions | wunderbaum - v0.12.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. +

    nativeOrderPropName?: string

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

    Default

    _nativeIndex.

    -

    Sort order.

    -

    Default

    Use value from column definition (rotated).
    +

    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 @@ -29,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 cd1de48f..a7eba48a 100644 --- a/docs/api/interfaces/types.SourceAjaxType.html +++ b/docs/api/interfaces/types.SourceAjaxType.html @@ -1,5 +1,5 @@ -SourceAjaxType | wunderbaum - v0.11.1

    Interface SourceAjaxType

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

    Properties

    body? +SourceAjaxType | wunderbaum - v0.12.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 1489cacf..433f1147 100644 --- a/docs/api/interfaces/types.SourceObjectType.html +++ b/docs/api/interfaces/types.SourceObjectType.html @@ -1,4 +1,4 @@ -SourceObjectType | wunderbaum - v0.11.1

    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.12.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 7a7c6073..5cf472c2 100644 --- a/docs/api/interfaces/types.UpdateOptions.html +++ b/docs/api/interfaces/types.UpdateOptions.html @@ -1,6 +1,6 @@ -UpdateOptions | wunderbaum - v0.11.1

    Interface UpdateOptions

    Possible values for WunderbaumNode.update options argument.

    -
    interface UpdateOptions {
        immediate?: boolean;
    }

    Properties

    immediate? +UpdateOptions | wunderbaum - v0.12.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 94ca9022..ebdfa8e4 100644 --- a/docs/api/interfaces/types.VisitRowsOptions.html +++ b/docs/api/interfaces/types.VisitRowsOptions.html @@ -1,5 +1,5 @@ -VisitRowsOptions | wunderbaum - v0.11.1

    Interface VisitRowsOptions

    Options passed to Wunderbaum.visitRows.

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

    Properties

    includeHidden? +VisitRowsOptions | wunderbaum - v0.12.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

    -

    Default

    first (topmost) tree 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 19d6c072..7ecf3d19 100644 --- a/docs/api/interfaces/types.WbActivateEventType.html +++ b/docs/api/interfaces/types.WbActivateEventType.html @@ -1,4 +1,4 @@ -WbActivateEventType | wunderbaum - v0.11.1

    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.12.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 14bf07b7..a93d2249 100644 --- a/docs/api/interfaces/types.WbButtonClickEventType.html +++ b/docs/api/interfaces/types.WbButtonClickEventType.html @@ -1,13 +1,13 @@ -WbButtonClickEventType | wunderbaum - v0.11.1

    Interface WbButtonClickEventType

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

    Hierarchy (view full)

    Properties

    command +WbButtonClickEventType | wunderbaum - v0.12.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 ae6d2109..22072bf7 100644 --- a/docs/api/interfaces/types.WbChangeEventType.html +++ b/docs/api/interfaces/types.WbChangeEventType.html @@ -1,4 +1,4 @@ -WbChangeEventType | wunderbaum - v0.11.1

    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.12.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 7870a38f..312fcfcc 100644 --- a/docs/api/interfaces/types.WbClickEventType.html +++ b/docs/api/interfaces/types.WbClickEventType.html @@ -1,14 +1,14 @@ -WbClickEventType | wunderbaum - v0.11.1

    Interface WbClickEventType

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

    Hierarchy (view full)

    Properties

    event +WbClickEventType | wunderbaum - v0.12.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 68c23690..e863ed3b 100644 --- a/docs/api/interfaces/types.WbDeactivateEventType.html +++ b/docs/api/interfaces/types.WbDeactivateEventType.html @@ -1,4 +1,4 @@ -WbDeactivateEventType | wunderbaum - v0.11.1

    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.12.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 ee6b6e87..00af8565 100644 --- a/docs/api/interfaces/types.WbEditApplyEventType.html +++ b/docs/api/interfaces/types.WbEditApplyEventType.html @@ -1,4 +1,4 @@ -WbEditApplyEventType | wunderbaum - v0.11.1

    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.12.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 54e7e823..2742ff55 100644 --- a/docs/api/interfaces/types.WbEditEditEventType.html +++ b/docs/api/interfaces/types.WbEditEditEventType.html @@ -1,4 +1,4 @@ -WbEditEditEventType | wunderbaum - v0.11.1

    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.12.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 5abf77a5..eb49b55a 100644 --- a/docs/api/interfaces/types.WbErrorEventType.html +++ b/docs/api/interfaces/types.WbErrorEventType.html @@ -1,17 +1,17 @@ -WbErrorEventType | wunderbaum - v0.11.1

    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.12.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 7a70d9ae..eac07c22 100644 --- a/docs/api/interfaces/types.WbEventInfo.html +++ b/docs/api/interfaces/types.WbEventInfo.html @@ -1,6 +1,6 @@ -WbEventInfo | wunderbaum - v0.11.1

    Interface WbEventInfo

    Additional information derived from mouse or keyboard events.

    +WbEventInfo | wunderbaum - v0.12.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 2ad9c8c9..0bbbf385 100644 --- a/docs/api/interfaces/types.WbExpandEventType.html +++ b/docs/api/interfaces/types.WbExpandEventType.html @@ -1,4 +1,4 @@ -WbExpandEventType | wunderbaum - v0.11.1

    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.12.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 81885801..34913b59 100644 --- a/docs/api/interfaces/types.WbFocusEventType.html +++ b/docs/api/interfaces/types.WbFocusEventType.html @@ -1,12 +1,12 @@ -WbFocusEventType | wunderbaum - v0.11.1

    Interface WbFocusEventType

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

    Hierarchy (view full)

    Properties

    event +WbFocusEventType | wunderbaum - v0.12.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 f35cb375..6d5369a9 100644 --- a/docs/api/interfaces/types.WbIconBadgeEventResultType.html +++ b/docs/api/interfaces/types.WbIconBadgeEventResultType.html @@ -1,7 +1,7 @@ -WbIconBadgeEventResultType | wunderbaum - v0.11.1

    Interface WbIconBadgeEventResultType

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

    Properties

    badge +WbIconBadgeEventResultType | wunderbaum - v0.12.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 84471ca5..2b5fb78f 100644 --- a/docs/api/interfaces/types.WbIconBadgeEventType.html +++ b/docs/api/interfaces/types.WbIconBadgeEventType.html @@ -1,4 +1,4 @@ -WbIconBadgeEventType | wunderbaum - v0.11.1

    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.12.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 da2e4c0a..64193d52 100644 --- a/docs/api/interfaces/types.WbInitEventType.html +++ b/docs/api/interfaces/types.WbInitEventType.html @@ -1,11 +1,11 @@ -WbInitEventType | wunderbaum - v0.11.1

    Interface WbInitEventType

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

    Hierarchy (view full)

    Properties

    error? +WbInitEventType | wunderbaum - v0.12.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 d4dfc1c1..4976a00d 100644 --- a/docs/api/interfaces/types.WbKeydownEventType.html +++ b/docs/api/interfaces/types.WbKeydownEventType.html @@ -1,13 +1,13 @@ -WbKeydownEventType | wunderbaum - v0.11.1

    Interface WbKeydownEventType

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

    Hierarchy (view full)

    Properties

    event +WbKeydownEventType | wunderbaum - v0.12.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 5fdd68b7..4067f4fb 100644 --- a/docs/api/interfaces/types.WbModifyChildEventType.html +++ b/docs/api/interfaces/types.WbModifyChildEventType.html @@ -1,4 +1,4 @@ -WbModifyChildEventType | wunderbaum - v0.11.1

    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.12.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 ad63eb9a..0883ac41 100644 --- a/docs/api/interfaces/types.WbNodeData.html +++ b/docs/api/interfaces/types.WbNodeData.html @@ -1,6 +1,6 @@ -WbNodeData | wunderbaum - v0.11.1

    Interface WbNodeData

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

    +WbNodeData | wunderbaum - v0.12.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?: TooltipOption;
        key?: string;
        lazy?: boolean;
        radiogroup?: boolean;
        refKey?: string;
        selected?: boolean;
        statusNodeType?: NodeStatusType;
        title: string;
        tooltip?: TooltipOption;
        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?: TooltipOption
    key?: string
    lazy?: boolean
    radiogroup?: boolean

    Make child nodes single-select radio buttons.

    -
    refKey?: string
    selected?: boolean
    statusNodeType?: NodeStatusType
    title: string
    tooltip?: TooltipOption
    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?: TooltipOption
    key?: string
    lazy?: boolean
    radiogroup?: boolean

    Make child nodes single-select radio buttons.

    +
    refKey?: string
    selected?: boolean
    statusNodeType?: NodeStatusType
    title: string
    tooltip?: TooltipOption
    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 f60812d5..e01b7536 100644 --- a/docs/api/interfaces/types.WbNodeEventType.html +++ b/docs/api/interfaces/types.WbNodeEventType.html @@ -1,16 +1,16 @@ -WbNodeEventType | wunderbaum - v0.11.1

    Interface WbNodeEventType

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

    Hierarchy (view full)

    Properties

    event? +WbNodeEventType | wunderbaum - v0.12.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 585ef238..0fec5def 100644 --- a/docs/api/interfaces/types.WbReceiveEventType.html +++ b/docs/api/interfaces/types.WbReceiveEventType.html @@ -1,4 +1,4 @@ -WbReceiveEventType | wunderbaum - v0.11.1

    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.12.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 27689e33..aa6a2992 100644 --- a/docs/api/interfaces/types.WbRenderEventType.html +++ b/docs/api/interfaces/types.WbRenderEventType.html @@ -1,4 +1,4 @@ -WbRenderEventType | wunderbaum - v0.11.1

    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.12.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;
    }
    } +
    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 d59e0027..a82c677b 100644 --- a/docs/api/interfaces/types.WbSelectEventType.html +++ b/docs/api/interfaces/types.WbSelectEventType.html @@ -1,4 +1,4 @@ -WbSelectEventType | wunderbaum - v0.11.1

    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.12.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 68539582..80b0f5f7 100644 --- a/docs/api/interfaces/types.WbTreeEventType.html +++ b/docs/api/interfaces/types.WbTreeEventType.html @@ -1,10 +1,10 @@ -WbTreeEventType | wunderbaum - v0.11.1

    Interface WbTreeEventType

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

    Hierarchy (view full)

    Properties

    event? +WbTreeEventType | wunderbaum - v0.12.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 5b2f1526..be2f7527 100644 --- a/docs/api/interfaces/wb_options.WunderbaumOptions.html +++ b/docs/api/interfaces/wb_options.WunderbaumOptions.html @@ -1,11 +1,11 @@ -WunderbaumOptions | wunderbaum - v0.11.1

    Interface WunderbaumOptions

    Available options for wunderbaum.Wunderbaum.

    +WunderbaumOptions | wunderbaum - v0.12.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",
    ...
    }); +
    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.`)
    },
    ...
    }); +
    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;
        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

    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), @@ -117,77 +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.

    -
    columnsFilterable?: boolean

    Default value for ColumnDefinition.filterable option. +

    columnsFilterable?: boolean

    Default value for ColumnDefinition.filterable option. Default: false

    Since

    0.11.0

    -
    columnsMenu?: boolean

    Default value for ColumnDefinition.menu option. +

    columnsMenu?: boolean

    Default value for ColumnDefinition.menu option. Default: false

    Since

    0.11.0

    -
    columnsResizable?: boolean

    Default value for ColumnDefinition.resizable option. +

    columnsResizable?: boolean

    Default value for ColumnDefinition.resizable option. Default: false

    Since

    0.10.0

    -
    columnsSortable?: boolean

    Default value for ColumnDefinition.sortable option. +

    columnsSortable?: boolean

    Default value for ColumnDefinition.sortable option. Default: false

    Since

    0.11.0

    -
    connectTopBreadcrumb?: HTMLElement

    HTMLElement that receives the top nodes breadcrumb. +

    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

    -
    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 4b5c610b..e66cf09f 100644 --- a/docs/api/modules/common.html +++ b/docs/api/modules/common.html @@ -1,4 +1,4 @@ -common | wunderbaum - v0.11.1

    Module common

    Index

    Variables

    DEFAULT_DEBUGLEVEL +common | wunderbaum - v0.12.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 08964380..d2bc4af1 100644 --- a/docs/api/modules/types.html +++ b/docs/api/modules/types.html @@ -1,4 +1,4 @@ -types | wunderbaum - v0.11.1

    Module types

    Index

    Enumerations

    ChangeType +types | wunderbaum - v0.12.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 da686c40..5698dfeb 100644 --- a/docs/api/modules/util.html +++ b/docs/api/modules/util.html @@ -1,4 +1,4 @@ -util | wunderbaum - v0.11.1

    Module util

    Index

    Function

    debounce +util | wunderbaum - v0.12.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 ab77f074..a7e791c9 100644 --- a/docs/api/modules/wb_node.html +++ b/docs/api/modules/wb_node.html @@ -1,2 +1,2 @@ -wb_node | wunderbaum - v0.11.1

    Module wb_node

    Index

    Classes

    \ No newline at end of file +wb_node | wunderbaum - v0.12.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 1e5f2250..cdadd241 100644 --- a/docs/api/modules/wb_options.html +++ b/docs/api/modules/wb_options.html @@ -1,2 +1,2 @@ -wb_options | wunderbaum - v0.11.1

    Module wb_options

    Index

    Interfaces

    \ No newline at end of file +wb_options | wunderbaum - v0.12.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 e3ebb35c..ac198ceb 100644 --- a/docs/api/modules/wunderbaum.html +++ b/docs/api/modules/wunderbaum.html @@ -1,2 +1,2 @@ -wunderbaum | wunderbaum - v0.11.1

    Module wunderbaum

    Index

    Classes

    \ No newline at end of file +wunderbaum | wunderbaum - v0.12.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 b6e5427b..44cafd89 100644 --- a/docs/api/types/types.ApplyCommandType.html +++ b/docs/api/types/types.ApplyCommandType.html @@ -1 +1 @@ -ApplyCommandType | wunderbaum - v0.11.1

    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.12.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 a7c3b590..fe62aaf3 100644 --- a/docs/api/types/types.BoolOptionResolver.html +++ b/docs/api/types/types.BoolOptionResolver.html @@ -1,2 +1,2 @@ -BoolOptionResolver | wunderbaum - v0.11.1

    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.12.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 7e174d87..0b46c845 100644 --- a/docs/api/types/types.BoolOrStringOptionResolver.html +++ b/docs/api/types/types.BoolOrStringOptionResolver.html @@ -1,2 +1,2 @@ -BoolOrStringOptionResolver | wunderbaum - v0.11.1

    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.12.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 0cb1ca14..64ef29df 100644 --- a/docs/api/types/types.CheckboxOption.html +++ b/docs/api/types/types.CheckboxOption.html @@ -1,2 +1,2 @@ -CheckboxOption | wunderbaum - v0.11.1

    Type alias CheckboxOption

    CheckboxOption: boolean | "radio"

    Show/hide checkbox or display a radiobutton icon instead.

    -
    \ No newline at end of file +CheckboxOption | wunderbaum - v0.12.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 4698e78e..8d9a8c5d 100644 --- a/docs/api/types/types.ColumnDefinitionList.html +++ b/docs/api/types/types.ColumnDefinitionList.html @@ -1 +1 @@ -ColumnDefinitionList | wunderbaum - v0.11.1

    Type alias ColumnDefinitionList

    ColumnDefinitionList: ColumnDefinition[]
    \ No newline at end of file +ColumnDefinitionList | wunderbaum - v0.12.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 6a3d5adc..793bcef2 100644 --- a/docs/api/types/types.ColumnEventInfoMap.html +++ b/docs/api/types/types.ColumnEventInfoMap.html @@ -1 +1 @@ -ColumnEventInfoMap | wunderbaum - v0.11.1

    Type alias ColumnEventInfoMap

    ColumnEventInfoMap: {
        [colId: string]: ColumnEventInfo;
    }

    Type declaration

    \ No newline at end of file +ColumnEventInfoMap | wunderbaum - v0.12.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 e7c46c5b..b49f6719 100644 --- a/docs/api/types/types.DndOptionsType.html +++ b/docs/api/types/types.DndOptionsType.html @@ -1,5 +1,5 @@ -DndOptionsType | wunderbaum - v0.11.1

    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
      +DndOptionsType | wunderbaum - v0.12.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)

        Default

        null
        @@ -64,10 +64,10 @@
         

        Default

        true
         
      • Optional scrollSensitivity?: 20

        Active top/bottom margin in pixel

        -

        Default

        20
        +

        Default

        20
         
      • Optional scrollSpeed?: 5

        Pixel per event

        -

        Default

        5
        +

        Default

        5
         
      • Optional serializeClipboardData?: boolean | ((nodeData, node) => string)

        Serialize Node Data to datatransfer object

        Default

        true
        @@ -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 7825ae5e..03fdf44a 100644 --- a/docs/api/types/types.DropEffectAllowedType.html +++ b/docs/api/types/types.DropEffectAllowedType.html @@ -1 +1 @@ -DropEffectAllowedType | wunderbaum - v0.11.1

    Type alias DropEffectAllowedType

    DropEffectAllowedType: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all"
    \ No newline at end of file +DropEffectAllowedType | wunderbaum - v0.12.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 4a147647..c46394de 100644 --- a/docs/api/types/types.DropEffectType.html +++ b/docs/api/types/types.DropEffectType.html @@ -1 +1 @@ -DropEffectType | wunderbaum - v0.11.1

    Type alias DropEffectType

    DropEffectType: "none" | "copy" | "link" | "move"
    \ No newline at end of file +DropEffectType | wunderbaum - v0.12.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 d0987edc..75b4c171 100644 --- a/docs/api/types/types.DropRegionType.html +++ b/docs/api/types/types.DropRegionType.html @@ -1 +1 @@ -DropRegionType | wunderbaum - v0.11.1

    Type alias DropRegionType

    DropRegionType: "over" | "before" | "after"
    \ No newline at end of file +DropRegionType | wunderbaum - v0.12.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 f480ad65..ebc4a269 100644 --- a/docs/api/types/types.DropRegionTypeSet.html +++ b/docs/api/types/types.DropRegionTypeSet.html @@ -1 +1 @@ -DropRegionTypeSet | wunderbaum - v0.11.1

    Type alias DropRegionTypeSet

    DropRegionTypeSet: Set<DropRegionType>
    \ No newline at end of file +DropRegionTypeSet | wunderbaum - v0.12.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 82dc4ae0..951069ba 100644 --- a/docs/api/types/types.DynamicBoolOption.html +++ b/docs/api/types/types.DynamicBoolOption.html @@ -1,3 +1,3 @@ -DynamicBoolOption | wunderbaum - v0.11.1

    Type alias DynamicBoolOption

    DynamicBoolOption: boolean | BoolOptionResolver

    See also WunderbaumNode.getOption() +DynamicBoolOption | wunderbaum - v0.12.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 cda0ada1..dce24de6 100644 --- a/docs/api/types/types.DynamicBoolOrStringOption.html +++ b/docs/api/types/types.DynamicBoolOrStringOption.html @@ -1 +1 @@ -DynamicBoolOrStringOption | wunderbaum - v0.11.1

    Type alias DynamicBoolOrStringOption

    DynamicBoolOrStringOption: boolean | string | BoolOrStringOptionResolver
    \ No newline at end of file +DynamicBoolOrStringOption | wunderbaum - v0.12.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 4d968fc3..40a28321 100644 --- a/docs/api/types/types.DynamicCheckboxOption.html +++ b/docs/api/types/types.DynamicCheckboxOption.html @@ -1 +1 @@ -DynamicCheckboxOption | wunderbaum - v0.11.1

    Type alias DynamicCheckboxOption

    \ No newline at end of file +DynamicCheckboxOption | wunderbaum - v0.12.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 ed59137b..e5f62ad1 100644 --- a/docs/api/types/types.DynamicIconOption.html +++ b/docs/api/types/types.DynamicIconOption.html @@ -1 +1 @@ -DynamicIconOption | wunderbaum - v0.11.1

    Type alias DynamicIconOption

    \ No newline at end of file +DynamicIconOption | wunderbaum - v0.12.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 eb611df9..4d5ca6b8 100644 --- a/docs/api/types/types.DynamicStringOption.html +++ b/docs/api/types/types.DynamicStringOption.html @@ -1 +1 @@ -DynamicStringOption | wunderbaum - v0.11.1

    Type alias DynamicStringOption

    DynamicStringOption: string | BoolOptionResolver
    \ No newline at end of file +DynamicStringOption | wunderbaum - v0.12.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 710349bb..9cd64365 100644 --- a/docs/api/types/types.DynamicTooltipOption.html +++ b/docs/api/types/types.DynamicTooltipOption.html @@ -1 +1 @@ -DynamicTooltipOption | wunderbaum - v0.11.1

    Type alias DynamicTooltipOption

    \ No newline at end of file +DynamicTooltipOption | wunderbaum - v0.12.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 665dfb54..761b4962 100644 --- a/docs/api/types/types.EditOptionsType.html +++ b/docs/api/types/types.EditOptionsType.html @@ -1,22 +1,22 @@ -EditOptionsType | wunderbaum - v0.11.1

    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.12.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.

    Type declaration

    • Optional apply?: null | ((e) => any) | Promise<any>
    • Optional beforeEdit?: null | ((e) => boolean) | string

      beforeEdit(e) may return an input HTML string. Otherwise use a default.

    • Optional debounce?: number

      Used to debounce the change event handler for grid cells [ms].

      -

      Default

      100
      +

      Default

      100
       
    • Optional edit?: null | ((e) => void)
    • Optional maxlength?: null | number

      Maximum number of characters allowed for node title input field.

      Default

      null;
       
    • Optional minlength?: number

      Minimum number of characters required for node title input field.

      -

      Default

      1
      +

      Default

      1
       
    • Optional select?: boolean

      Select all text of a node title, so it can be overwritten by typing.

      Default

      true
       
    • Optional slowClickDelay?: number

      Handle 'clickActive' only if last click is less than this ms old (0: always)

      -

      Default

      1000
      +

      Default

      1000
       
    • Optional trigger?: string[]

      Array of strings to determine which user input should trigger edit mode. E.g. ["clickActive", "F2", "macEnter"]:
      @@ -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 c51967d1..c120b037 100644 --- a/docs/api/types/types.FilterModeType.html +++ b/docs/api/types/types.FilterModeType.html @@ -1 +1 @@ -FilterModeType | wunderbaum - v0.11.1

    Type alias FilterModeType

    FilterModeType: null | "dim" | "hide"
    \ No newline at end of file +FilterModeType | wunderbaum - v0.12.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 b010179b..f34676a7 100644 --- a/docs/api/types/types.FilterOptionsType.html +++ b/docs/api/types/types.FilterOptionsType.html @@ -1,4 +1,4 @@ -FilterOptionsType | wunderbaum - v0.11.1

    Type alias FilterOptionsType

    FilterOptionsType: {
        autoApply?: boolean;
        connectInput?: null | string | Element;
    } & FilterNodesOptions

    Passed as tree options to configure default filtering behavior.

    +FilterOptionsType | wunderbaum - v0.12.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 4342786e..592db289 100644 --- a/docs/api/types/types.GridOptionsType.html +++ b/docs/api/types/types.GridOptionsType.html @@ -1 +1 @@ -GridOptionsType | wunderbaum - v0.11.1

    Type alias GridOptionsType

    GridOptionsType: object
    \ No newline at end of file +GridOptionsType | wunderbaum - v0.12.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 ae6aa24d..965622b0 100644 --- a/docs/api/types/types.IconOption.html +++ b/docs/api/types/types.IconOption.html @@ -1,7 +1,7 @@ -IconOption | wunderbaum - v0.11.1

    Type alias IconOption

    IconOption: boolean | string

    An icon may either be +IconOption | wunderbaum - v0.12.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 176bd958..5553230e 100644 --- a/docs/api/types/types.InsertNodeType.html +++ b/docs/api/types/types.InsertNodeType.html @@ -1 +1 @@ -InsertNodeType | wunderbaum - v0.11.1

    Type alias InsertNodeType

    InsertNodeType: "before" | "after" | "prependChild" | "appendChild"
    \ No newline at end of file +InsertNodeType | wunderbaum - v0.12.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 b3d4183f..88a09b7c 100644 --- a/docs/api/types/types.KeynavOptionsType.html +++ b/docs/api/types/types.KeynavOptionsType.html @@ -1 +1 @@ -KeynavOptionsType | wunderbaum - v0.11.1

    Type alias KeynavOptionsType

    KeynavOptionsType: object
    \ No newline at end of file +KeynavOptionsType | wunderbaum - v0.12.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 360e502a..cdb67767 100644 --- a/docs/api/types/types.LoggerOptionsType.html +++ b/docs/api/types/types.LoggerOptionsType.html @@ -1 +1 @@ -LoggerOptionsType | wunderbaum - v0.11.1

    Type alias LoggerOptionsType

    LoggerOptionsType: object
    \ No newline at end of file +LoggerOptionsType | wunderbaum - v0.12.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 c2dc1217..659bd415 100644 --- a/docs/api/types/types.MatcherCallback.html +++ b/docs/api/types/types.MatcherCallback.html @@ -1,2 +1,2 @@ -MatcherCallback | wunderbaum - v0.11.1

    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.12.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 aba2a857..350fb395 100644 --- a/docs/api/types/types.NodeAnyCallback.html +++ b/docs/api/types/types.NodeAnyCallback.html @@ -1,2 +1,2 @@ -NodeAnyCallback | wunderbaum - v0.11.1

    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.12.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 86e2ef0f..b4ff9da4 100644 --- a/docs/api/types/types.NodeFilterCallback.html +++ b/docs/api/types/types.NodeFilterCallback.html @@ -1 +1 @@ -NodeFilterCallback | wunderbaum - v0.11.1

    Type alias NodeFilterCallback

    NodeFilterCallback: ((node) => NodeFilterResponse)

    Type declaration

    \ No newline at end of file +NodeFilterCallback | wunderbaum - v0.12.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 f299a55b..c9171436 100644 --- a/docs/api/types/types.NodeFilterResponse.html +++ b/docs/api/types/types.NodeFilterResponse.html @@ -1 +1 @@ -NodeFilterResponse | wunderbaum - v0.11.1

    Type alias NodeFilterResponse

    NodeFilterResponse: "skip" | "branch" | boolean | void
    \ No newline at end of file +NodeFilterResponse | wunderbaum - v0.12.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 194e2996..6f6ca7b0 100644 --- a/docs/api/types/types.NodePropertyGetterCallback.html +++ b/docs/api/types/types.NodePropertyGetterCallback.html @@ -1,2 +1,2 @@ -NodePropertyGetterCallback | wunderbaum - v0.11.1

    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.12.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 f7534caa..7b5d2fc2 100644 --- a/docs/api/types/types.NodeSelectCallback.html +++ b/docs/api/types/types.NodeSelectCallback.html @@ -1,2 +1,2 @@ -NodeSelectCallback | wunderbaum - v0.11.1

    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.12.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 91666452..6d4bbfc9 100644 --- a/docs/api/types/types.NodeStringCallback.html +++ b/docs/api/types/types.NodeStringCallback.html @@ -1,2 +1,2 @@ -NodeStringCallback | wunderbaum - v0.11.1

    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.12.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 41e4d1da..09efeb62 100644 --- a/docs/api/types/types.NodeToDictCallback.html +++ b/docs/api/types/types.NodeToDictCallback.html @@ -1,3 +1,3 @@ -NodeToDictCallback | wunderbaum - v0.11.1

    Type alias NodeToDictCallback

    NodeToDictCallback: ((dict, node) => NodeVisitResponse)

    A callback that receives a node-data dictionary and a node instance and +NodeToDictCallback | wunderbaum - v0.12.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 +

    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 68ab8dc3..edbf2968 100644 --- a/docs/api/types/types.NodeTypeDefinitionMap.html +++ b/docs/api/types/types.NodeTypeDefinitionMap.html @@ -1 +1 @@ -NodeTypeDefinitionMap | wunderbaum - v0.11.1

    Type alias NodeTypeDefinitionMap

    NodeTypeDefinitionMap: {
        [type: string]: NodeTypeDefinition;
    }

    Type declaration

    \ No newline at end of file +NodeTypeDefinitionMap | wunderbaum - v0.12.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 5a3d0a21..65d4f8f4 100644 --- a/docs/api/types/types.NodeVisitCallback.html +++ b/docs/api/types/types.NodeVisitCallback.html @@ -1,2 +1,2 @@ -NodeVisitCallback | wunderbaum - v0.11.1

    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.12.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 0f11bab0..efb32eb3 100644 --- a/docs/api/types/types.NodeVisitResponse.html +++ b/docs/api/types/types.NodeVisitResponse.html @@ -1,4 +1,4 @@ -NodeVisitResponse | wunderbaum - v0.11.1

    Type alias NodeVisitResponse

    NodeVisitResponse: "skip" | boolean | void

    Returned by NodeVisitCallback to control iteration. +NodeVisitResponse | wunderbaum - v0.12.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 +
    \ No newline at end of file diff --git a/docs/api/types/types.SelectModeType.html b/docs/api/types/types.SelectModeType.html index ea7a3208..a037b96d 100644 --- a/docs/api/types/types.SelectModeType.html +++ b/docs/api/types/types.SelectModeType.html @@ -1 +1 @@ -SelectModeType | wunderbaum - v0.11.1

    Type alias SelectModeType

    SelectModeType: "single" | "multi" | "hier"
    \ No newline at end of file +SelectModeType | wunderbaum - v0.12.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 0d052c55..c3f35b9f 100644 --- a/docs/api/types/types.SortCallback.html +++ b/docs/api/types/types.SortCallback.html @@ -1,2 +1,2 @@ -SortCallback | wunderbaum - v0.11.1

    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.12.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 1b8828ce..d655be44 100644 --- a/docs/api/types/types.SortOrderType.html +++ b/docs/api/types/types.SortOrderType.html @@ -1,2 +1,2 @@ -SortOrderType | wunderbaum - v0.11.1

    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.12.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 04c3f2fa..ee0227d0 100644 --- a/docs/api/types/types.SourceListType.html +++ b/docs/api/types/types.SourceListType.html @@ -1 +1 @@ -SourceListType | wunderbaum - v0.11.1

    Type alias SourceListType

    SourceListType: WbNodeData[]
    \ No newline at end of file +SourceListType | wunderbaum - v0.12.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 b000371c..12e18a57 100644 --- a/docs/api/types/types.SourceType.html +++ b/docs/api/types/types.SourceType.html @@ -1,2 +1,2 @@ -SourceType | wunderbaum - v0.11.1

    Type alias SourceType

    Possible initilization for tree nodes.

    -
    \ No newline at end of file +SourceType | wunderbaum - v0.12.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 7be25d95..93e56c0f 100644 --- a/docs/api/types/types.TooltipOption.html +++ b/docs/api/types/types.TooltipOption.html @@ -1,2 +1,2 @@ -TooltipOption | wunderbaum - v0.11.1

    Type alias TooltipOption

    TooltipOption: boolean | string

    Show/hide tooltip or display a string.

    -
    \ No newline at end of file +TooltipOption | wunderbaum - v0.12.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 c4f26034..54315fa4 100644 --- a/docs/api/types/types.TristateType.html +++ b/docs/api/types/types.TristateType.html @@ -1,2 +1,2 @@ -TristateType | wunderbaum - v0.11.1

    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.12.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 dbe3c318..91d5729e 100644 --- a/docs/api/types/types.WbCancelableEventResultType.html +++ b/docs/api/types/types.WbCancelableEventResultType.html @@ -1,2 +1,2 @@ -WbCancelableEventResultType | wunderbaum - v0.11.1

    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.12.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 7be330e2..4b83d57c 100644 --- a/docs/api/types/types.WbIconBadgeCallback.html +++ b/docs/api/types/types.WbIconBadgeCallback.html @@ -1,2 +1,2 @@ -WbIconBadgeCallback | wunderbaum - v0.11.1

    Type alias WbIconBadgeCallback

    WbIconBadgeCallback: ((e) => WbIconBadgeEventResultType)

    Used for tree.iconBadge event.

    -
    \ No newline at end of file +WbIconBadgeCallback | wunderbaum - v0.12.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 b40108c4..11defeb0 100644 --- a/docs/api/types/util.EventCallbackType.html +++ b/docs/api/types/util.EventCallbackType.html @@ -1 +1 @@ -EventCallbackType | wunderbaum - v0.11.1

    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.12.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 e3122090..abc1d77c 100644 --- a/docs/api/types/util.FunctionType.html +++ b/docs/api/types/util.FunctionType.html @@ -1 +1 @@ -FunctionType | wunderbaum - v0.11.1

    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.12.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 f2aa19f9..9774f57a 100644 --- a/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html +++ b/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html @@ -1 +1 @@ -DEFAULT_DEBUGLEVEL | wunderbaum - v0.11.1

    Variable DEFAULT_DEBUGLEVELConst

    DEFAULT_DEBUGLEVEL: 4 = 4
    \ No newline at end of file +DEFAULT_DEBUGLEVEL | wunderbaum - v0.12.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 20a5c69a..d67a7916 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.11.1

    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.12.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.DEFAULT_ROW_HEIGHT.html b/docs/api/variables/common.DEFAULT_ROW_HEIGHT.html index 67ab504d..431d1491 100644 --- a/docs/api/variables/common.DEFAULT_ROW_HEIGHT.html +++ b/docs/api/variables/common.DEFAULT_ROW_HEIGHT.html @@ -1,2 +1,2 @@ -DEFAULT_ROW_HEIGHT | wunderbaum - v0.11.1

    Variable DEFAULT_ROW_HEIGHTConst

    DEFAULT_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 +DEFAULT_ROW_HEIGHT | wunderbaum - v0.12.0

    Variable DEFAULT_ROW_HEIGHTConst

    DEFAULT_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.ICON_WIDTH.html b/docs/api/variables/common.ICON_WIDTH.html index 1e1f869b..8d8bd566 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.11.1

    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.12.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 5f6c719f..c67d9b2c 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.11.1

    Variable INPUT_KEYSConst

    INPUT_KEYS: {
        [key: string]: string[];
    } = ...

    Define which keys are handled by embedded control, and should +INPUT_KEYS | wunderbaum - v0.12.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 92c35c79..d77607f2 100644 --- a/docs/api/variables/common.KEY_NODATA.html +++ b/docs/api/variables/common.KEY_NODATA.html @@ -1 +1 @@ -KEY_NODATA | wunderbaum - v0.11.1

    Variable KEY_NODATAConst

    KEY_NODATA: "__not_found__" = "__not_found__"
    \ No newline at end of file +KEY_NODATA | wunderbaum - v0.12.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 1a5a4e09..d832ef51 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.11.1

    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.12.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 fb6fdca7..2923cf50 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.11.1

    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.12.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 106e3585..27cde6b1 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.11.1

    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.12.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 7fe59e1a..879bc432 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.11.1

    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.12.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.TEST_IMG.html b/docs/api/variables/common.TEST_IMG.html index a4648b58..d97b9eb6 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.11.1

    Variable TEST_IMGConst

    TEST_IMG: RegExp = ...

    Regular expression to detect if a string describes an image URL (in contrast +TEST_IMG | wunderbaum - v0.12.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 2343d762..7aa1ddc5 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.11.1

    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.12.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 2b8e6fe2..21c83c2b 100644 --- a/docs/api/variables/common.iconMaps.html +++ b/docs/api/variables/common.iconMaps.html @@ -1,3 +1,3 @@ -iconMaps | wunderbaum - v0.11.1

    Variable iconMapsConst

    iconMaps: {
        [key: string]: {
            [key: string]: string;
        };
    } = ...

    Default node icons. +iconMaps | wunderbaum - v0.12.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 469f4835..77c29c0f 100644 --- a/docs/api/variables/util.MAX_INT.html +++ b/docs/api/variables/util.MAX_INT.html @@ -1 +1 @@ -MAX_INT | wunderbaum - v0.11.1

    Variable MAX_INTConst

    MAX_INT: 9007199254740991 = 9007199254740991
    \ No newline at end of file +MAX_INT | wunderbaum - v0.12.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 5066f679..1ea594e6 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.11.1

    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.12.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 a21d3eef..14730972 100644 --- a/docs/api/variables/util.isMac.html +++ b/docs/api/variables/util.isMac.html @@ -1,2 +1,2 @@ -isMac | wunderbaum - v0.11.1

    Variable isMacConst

    isMac: boolean = userInfo.isMac

    True if the client is using a macOS platform.

    -
    \ No newline at end of file +isMac | wunderbaum - v0.12.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 5fc35e97..8cb51cdf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wunderbaum", - "version": "0.11.2-0", + "version": "0.12.0", "title": "A treegrid control.", "description": "JavaScript tree/grid/treegrid control.", "homepage": "https://github.com/mar10/wunderbaum", @@ -134,4 +134,4 @@ } ], "packageManager": "yarn@4.4.1+sha512.f825273d0689cc9ead3259c14998037662f1dcd06912637b21a450e8da7cfeb4b1965bbee73d16927baa1201054126bc385c6f43ff4aa705c8631d26e12460f1" -} +} \ No newline at end of file