From 75aeabd2fec11240cf8c9d00c9193d4750a9f9db Mon Sep 17 00:00:00 2001 From: Martin Wendt Date: Sun, 5 May 2024 18:09:12 +0200 Subject: [PATCH] Bump version to 0.9.0 --- dist/wunderbaum.css | 5 +- dist/wunderbaum.css.map | 2 +- dist/wunderbaum.d.ts | 189 ++++++----- dist/wunderbaum.esm.js | 298 ++++++++++-------- dist/wunderbaum.esm.min.js | 64 ++-- dist/wunderbaum.esm.min.js.map | 2 +- dist/wunderbaum.umd.js | 298 ++++++++++-------- dist/wunderbaum.umd.min.js | 68 ++-- dist/wunderbaum.umd.min.js.map | 2 +- docs/api/classes/util.Deferred.html | 6 +- docs/api/classes/util.ValidationError.html | 8 +- docs/api/classes/wb_node.WunderbaumNode.html | 214 ++++++------- docs/api/classes/wunderbaum.Wunderbaum.html | 206 ++++++------ 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 | 4 +- docs/api/functions/util.assert.html | 4 +- docs/api/functions/util.debounce.html | 4 +- docs/api/functions/util.documentReady.html | 4 +- .../functions/util.documentReadyPromise.html | 4 +- docs/api/functions/util.each.html | 4 +- docs/api/functions/util.elemFromHtml.html | 4 +- docs/api/functions/util.elemFromSelector.html | 4 +- docs/api/functions/util.error.html | 4 +- docs/api/functions/util.escapeHtml.html | 4 +- docs/api/functions/util.escapeRegex.html | 4 +- docs/api/functions/util.escapeTooltip.html | 4 +- docs/api/functions/util.eventToString.html | 4 +- docs/api/functions/util.extend.html | 4 +- docs/api/functions/util.extractHtmlText.html | 4 +- docs/api/functions/util.getOption.html | 4 +- docs/api/functions/util.getValueFromElem.html | 4 +- docs/api/functions/util.isArray.html | 4 +- docs/api/functions/util.isEmptyObject.html | 4 +- docs/api/functions/util.isFunction.html | 4 +- docs/api/functions/util.isPlainObject.html | 4 +- docs/api/functions/util.noop.html | 4 +- docs/api/functions/util.onEvent.html | 6 +- docs/api/functions/util.overrideMethod.html | 4 +- docs/api/functions/util.setElemDisplay.html | 4 +- .../api/functions/util.setTimeoutPromise.html | 4 +- docs/api/functions/util.setValueToElem.html | 4 +- docs/api/functions/util.sleep.html | 4 +- docs/api/functions/util.throttle.html | 4 +- docs/api/functions/util.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 | 4 +- .../interfaces/types.AddChildrenOptions.html | 10 +- .../interfaces/types.ApplyCommandOptions.html | 4 +- .../interfaces/types.ColumnDefinition.html | 22 +- .../api/interfaces/types.ColumnEventInfo.html | 12 +- docs/api/interfaces/types.DragEventType.html | 14 +- docs/api/interfaces/types.DropEventType.html | 16 +- .../interfaces/types.ExpandAllOptions.html | 12 +- .../interfaces/types.FilterNodesOptions.html | 20 +- .../interfaces/types.MakeVisibleOptions.html | 10 +- .../api/interfaces/types.NavigateOptions.html | 8 +- .../interfaces/types.NodeTypeDefinition.html | 14 +- docs/api/interfaces/types.RenderOptions.html | 18 +- .../types.ScrollIntoViewOptions.html | 12 +- .../api/interfaces/types.ScrollToOptions.html | 14 +- .../interfaces/types.SetActiveOptions.html | 16 +- .../interfaces/types.SetColumnOptions.html | 8 +- .../interfaces/types.SetExpandedOptions.html | 14 +- .../interfaces/types.SetSelectedOptions.html | 12 +- .../interfaces/types.SetStatusOptions.html | 8 +- docs/api/interfaces/types.SourceAjaxType.html | 4 +- .../interfaces/types.SourceObjectType.html | 4 +- docs/api/interfaces/types.UpdateOptions.html | 6 +- .../interfaces/types.VisitRowsOptions.html | 14 +- .../interfaces/types.WbActivateEventType.html | 14 +- .../interfaces/types.WbChangeEventType.html | 22 +- .../interfaces/types.WbClickEventType.html | 14 +- .../types.WbDeactivateEventType.html | 14 +- .../types.WbEditApplyEventType.html | 24 +- .../interfaces/types.WbEditEditEventType.html | 16 +- .../interfaces/types.WbErrorEventType.html | 16 +- docs/api/interfaces/types.WbEventInfo.html | 22 +- .../interfaces/types.WbExpandEventType.html | 14 +- .../interfaces/types.WbFocusEventType.html | 12 +- .../types.WbIconBadgeEventResultType.html | 8 +- .../types.WbIconBadgeEventType.html | 14 +- .../api/interfaces/types.WbInitEventType.html | 12 +- .../interfaces/types.WbKeydownEventType.html | 12 +- .../types.WbModifyChildEventType.html | 18 +- docs/api/interfaces/types.WbNodeData.html | 8 +- .../api/interfaces/types.WbNodeEventType.html | 14 +- .../interfaces/types.WbReceiveEventType.html | 14 +- .../interfaces/types.WbRenderEventType.html | 24 +- .../interfaces/types.WbSelectEventType.html | 14 +- .../api/interfaces/types.WbTreeEventType.html | 10 +- .../wb_options.WunderbaumOptions.html | 100 +++--- docs/api/modules/common.html | 4 +- docs/api/modules/types.html | 4 +- docs/api/modules/util.html | 4 +- docs/api/modules/wb_node.html | 4 +- docs/api/modules/wb_options.html | 4 +- docs/api/modules/wunderbaum.html | 4 +- docs/api/types/types.ApplyCommandType.html | 2 +- docs/api/types/types.BoolOptionResolver.html | 4 +- .../types.BoolOrStringOptionResolver.html | 4 +- docs/api/types/types.CheckboxOption.html | 4 +- .../api/types/types.ColumnDefinitionList.html | 2 +- docs/api/types/types.ColumnEventInfoMap.html | 2 +- docs/api/types/types.DndOptionsType.html | 4 +- .../types/types.DropEffectAllowedType.html | 2 +- docs/api/types/types.DropEffectType.html | 2 +- docs/api/types/types.DropRegionType.html | 2 +- docs/api/types/types.DropRegionTypeSet.html | 2 +- docs/api/types/types.DynamicBoolOption.html | 4 +- .../types.DynamicBoolOrStringOption.html | 2 +- .../types/types.DynamicCheckboxOption.html | 2 +- docs/api/types/types.DynamicIconOption.html | 2 +- docs/api/types/types.DynamicStringOption.html | 2 +- .../api/types/types.DynamicTooltipOption.html | 2 +- docs/api/types/types.EditOptionsType.html | 4 +- docs/api/types/types.FilterModeType.html | 2 +- docs/api/types/types.FilterOptionsType.html | 4 +- docs/api/types/types.GridOptionsType.html | 2 +- docs/api/types/types.IconOption.html | 4 +- docs/api/types/types.InsertNodeType.html | 2 +- docs/api/types/types.KeynavOptionsType.html | 2 +- docs/api/types/types.LoggerOptionsType.html | 2 +- docs/api/types/types.MatcherCallback.html | 4 +- docs/api/types/types.NodeAnyCallback.html | 4 +- docs/api/types/types.NodeFilterCallback.html | 2 +- docs/api/types/types.NodeFilterResponse.html | 2 +- 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.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 +- docs/api/variables/common.ICON_WIDTH.html | 4 +- docs/api/variables/common.INPUT_KEYS.html | 4 +- docs/api/variables/common.KEY_NODATA.html | 2 +- .../variables/common.KEY_TO_ACTION_DICT.html | 4 +- .../variables/common.RENDER_MAX_PREFETCH.html | 4 +- .../variables/common.RENDER_MIN_PREFETCH.html | 4 +- .../common.RESERVED_TREE_SOURCE_KEYS.html | 4 +- docs/api/variables/common.ROW_HEIGHT.html | 4 +- docs/api/variables/common.TEST_IMG.html | 4 +- .../variables/common.TITLE_SPAN_PAD_Y.html | 4 +- docs/api/variables/common.iconMaps.html | 4 +- docs/api/variables/util.MAX_INT.html | 2 +- docs/api/variables/util.MOUSE_BUTTONS.html | 4 +- docs/api/variables/util.isMac.html | 4 +- package.json | 2 +- 168 files changed, 1259 insertions(+), 1197 deletions(-) diff --git a/dist/wunderbaum.css b/dist/wunderbaum.css index 5b183667..70b701b5 100644 --- a/dist/wunderbaum.css +++ b/dist/wunderbaum.css @@ -1,7 +1,7 @@ @charset "UTF-8"; /*! * Wunderbaum style sheet (generated from wunderbaum.scss) - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ :root, @@ -333,6 +333,9 @@ div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-submatch, div.wu div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-match, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-match { color: var(--wb-node-text-color); } +div.wunderbaum.wb-ext-filter-hide.wb-ext-filter-hide-expanders div.wb-node-list div.wb-row:not(.wb-submatch) i.wb-expander { + visibility: hidden; +} div.wunderbaum div.wb-row.wb-drag-source { opacity: 0.5; } diff --git a/dist/wunderbaum.css.map b/dist/wunderbaum.css.map index ce2be56e..77ef63f0 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;AAuBA;AAwQA;AAoHA;AAwBA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAziBA;EAEE;;AAIF;EACE;EACA;;AAGF;EACE;EAEA;;AAMF;EACE;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;;AAIJ;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;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;;AAcN;EACE;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGA;EACE;EACA;;AAEA;EAGE;EACA;EAGA;EACA;EACA;;AAgBR;AAAA;EAIE;EACA;EACA;;AAKF;EACE;;AAUE;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAOJ;EAIE;EACA;;AAGF;AAAA;EAKE;EACA;;AAMF;AAAA;EAEE;EACA;EACA;EACA;;AAOF;EACE;;AAGF;AAAA;EAEE;;AAKA;EACE;;;AAMR;AAEA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAQJ;AACA;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAIA;AAAA;EAEE;;AAGF;AAAA;EAEE;;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAIJ;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EAGE;;;AAGF;EACE;;;AAKF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"wunderbaum.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/wunderbaum.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AA2EA;AAAA;EAME;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAMF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAGA;AAsBA;AAuBA;AAwQA;AAoHA;AA8BA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AA/iBA;EAEE;;AAIF;EACE;EACA;;AAGF;EACE;EAEA;;AAMF;EACE;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;;AAIJ;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;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 7cd0a8ec..6adb795f 100644 --- a/dist/wunderbaum.d.ts +++ b/dist/wunderbaum.d.ts @@ -6,12 +6,17 @@ declare module "debounce" { */ type Procedure = (...args: any[]) => any; type DebounceOptions = { + /** Specify invoking on the leading edge of the timeout. @default false */ leading?: boolean; + /** The maximum time `func` is allowed to be delayed before it's invoked.*/ maxWait?: number; + /** Specify invoking on the trailing edge of the timeout. @default true */ trailing?: boolean; }; type ThrottleOptions = { + /** Specify invoking on the leading edge of the timeout. @default true */ leading?: boolean; + /** Specify invoking on the trailing edge of the timeout. @default true */ trailing?: boolean; }; export interface DebouncedFunction { @@ -51,13 +56,7 @@ declare module "debounce" { * @param {number} [wait=0] * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is * used (if available). - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param [options={}] The options object. * @returns {Function} Returns the new debounced function. * @example * @@ -112,11 +111,7 @@ declare module "debounce" { * @param {number} [wait=0] * The number of milliseconds to throttle invocations to; if omitted, * `requestAnimationFrame` is used (if available). - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param [options={}] The options object. * @returns {Function} Returns the new throttled function. * @example * @@ -135,7 +130,7 @@ declare module "debounce" { declare module "util" { /*! * Wunderbaum - util - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ /** @module util */ @@ -189,7 +184,7 @@ declare module "util" { * Iterate over Object properties or array elements. * * @param obj `Object`, `Array` or null - * @param callback(index, item) called for every item. + * @param callback called for every item. * `this` also contains the item. * Return `false` to stop the iteration. */ @@ -310,7 +305,7 @@ declare module "util" { /** * Bind one or more event handlers directly to an [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget). * - * @param element EventTarget or selector + * @param rootTarget EventTarget or selector * @param eventNames * @param handler */ @@ -326,7 +321,7 @@ declare module "util" { * }); * ``` * - * @param element EventTarget or selector + * @param rootTarget EventTarget or selector * @param eventNames * @param selector * @param handler @@ -398,7 +393,7 @@ declare module "util" { declare module "common" { /*! * Wunderbaum - common - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { MatcherCallback, SourceObjectType } from "types"; @@ -470,7 +465,7 @@ declare module "common" { declare module "deferred" { /*! * Wunderbaum - deferred - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ type PromiseCallbackType = (val: any) => void; @@ -728,7 +723,7 @@ declare module "wb_node" { getParentList(includeRoot?: boolean, includeSelf?: boolean): any[]; /** Return a string representing the hierachical node path, e.g. "a/b/c". * @param includeSelf - * @param node property name or callback + * @param part property name or callback * @param separator */ getPath(includeSelf?: boolean, part?: keyof WunderbaumNode | NodeAnyCallback, separator?: string): string; @@ -740,6 +735,8 @@ declare module "wb_node" { hasChildren(): boolean; /** Return true if node has className set. */ hasClass(className: string): boolean; + /** Return true if node ist the currently focused node. */ + hasFocus(): boolean; /** Return true if this node is the currently active tree node. */ isActive(): boolean; /** Return true if this node is a direct or indirect parent of `other`. @@ -768,7 +765,7 @@ declare module "wb_node" { isExpandable(andCollapsed?: boolean): boolean; /** Return true if _this_ node is currently in edit-title mode. * - * See {@link Wunderbaum.startEditTitle} to check if any node is currently edited. + * See {@link WunderbaumNode.startEditTitle}. */ isEditingTitle(): boolean; /** Return true if this node is currently expanded. */ @@ -899,8 +896,8 @@ declare module "wb_node" { * * The result is compatible with node.addChildren(). * - * @param include child nodes - * @param callback(dict, node) is called for every node, in order to allow + * @param recursive include child nodes + * @param callback is called for every node, in order to allow * modifications. * Return `false` to ignore this node or `"skip"` to include this node * without its children. @@ -1031,8 +1028,9 @@ declare module "wb_node" { * Stop iteration, if fn() returns false.
* Return false if iteration was stopped. * - * @param {function} fn the callback function. + * @param callback the callback function. * Return false to stop iteration. + * @param includeSelf include this node in the iteration. */ visitSiblings(callback: (node: WunderbaumNode) => boolean | void, includeSelf?: boolean): boolean; /** @@ -1044,7 +1042,7 @@ declare module "wb_node" { declare module "wb_options" { /*! * Wunderbaum - utils - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, EditOptionsType, FilterOptionsType, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbCancelableEventResultType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbErrorEventType, WbExpandEventType, WbIconBadgeCallback, WbIconBadgeEventResultType, WbInitEventType, WbKeydownEventType, WbNodeData, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbSelectEventType, WbTreeEventType } from "types"; @@ -1379,7 +1377,7 @@ declare module "wb_options" { declare module "types" { /*! * Wunderbaum - types - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { WunderbaumNode } from "wb_node"; @@ -1782,9 +1780,9 @@ declare module "types" { } /** Initial navigation mode and possible transition. */ export enum NavModeEnum { - startRow = "startRow", - cell = "cell", - startCell = "startCell", + startRow = "startRow",// Start with row mode, but allow cell-nav mode + cell = "cell",// Cell-nav mode only + startCell = "startCell",// Start in cell-nav mode, but allow row mode row = "row" } /** Possible values for {@link WunderbaumNode.addChildren()}. */ @@ -1817,15 +1815,31 @@ declare module "types" { /** Keep active node visible @default true */ keepActiveNodeVisible?: boolean; } - /** Possible values for {@link Wunderbaum.filterNodes()} and {@link Wunderbaum.filterBranches()}. */ + /** + * Possible option values for {@link Wunderbaum.filterNodes()}. + * The defaults are inherited from the tree instances ´tree.options.filter` + * settings (see also {@link FilterOptionsType}). + */ export interface FilterNodesOptions { - mode?: string; - leavesOnly?: boolean; + /** Expand all branches that contain matches while filtered @default false */ + autoExpand?: boolean; + /** Whether to implicitly match all children of matched nodes @default false */ + matchBranch?: boolean; + /** Match single characters in order, e.g. 'fb' will match 'FooBar' @default false */ fuzzy?: boolean; - highlight?: boolean; + /**Hide expanders if all child nodes are hidden by filter @default false */ hideExpanders?: boolean; - autoExpand?: boolean; - noData?: boolean; + /** Highlight matches by wrapping inside `` tags. + * Does not work for filter callbacks. + * @default true + */ + highlight?: boolean; + /** Match end nodes only @default false */ + leavesOnly?: boolean; + /** Grayout unmatched nodes (pass 'hide' to remove instead) @default 'dim' */ + mode?: FilterModeType; + /** Display a 'no data' status node if result is empty @default true */ + noData?: boolean | string; } /** Possible values for {@link WunderbaumNode.makeVisible()}. */ export interface MakeVisibleOptions { @@ -1895,7 +1909,7 @@ declare module "types" { */ edit?: boolean; } - /** Possible values for {@link WunderbaumNode.setColumn()} `options` argument. */ + /** Possible values for {@link Wunderbaum.setColumn()} `options` argument. */ export interface SetColumnOptions { /** * Focus embedded input control of the grid cell if any . @@ -1956,6 +1970,12 @@ declare module "types" { * until the start node is reached again @default false */ wrap?: boolean; } + /** + * Passed as tree options to configure default filtering behavior. + * + * @see {@link Wunderbaum.filterNodes} + * @see {@link FilterNodesOptions} + */ export type FilterOptionsType = { /** * Element or selector of an input control for filter query strings @@ -1967,53 +1987,7 @@ declare module "types" { * @default true */ autoApply?: boolean; - /** - * Expand all branches that contain matches while filtered - * @default false - */ - autoExpand?: boolean; - /** - * Show a badge with number of matching child nodes near parent icons - * @default true - */ - counter?: boolean; - /** - * Match single characters in order, e.g. 'fb' will match 'FooBar' - * @default false - */ - fuzzy?: boolean; - /** - * Hide counter badge if parent is expanded - * @default true - */ - hideExpandedCounter?: boolean; - /** - * Hide expanders if all child nodes are hidden by filter - * @default false; - */ - hideExpanders?: boolean; - /** - * Highlight matches by wrapping inside tags - * @default true - */ - highlight?: boolean; - /** - * Match end nodes only - * @default false - */ - leavesOnly?: boolean; - /** - * Grayout unmatched nodes (pass "hide" to remove unmatched node instead) - * @default 'dim' - */ - mode?: FilterModeType; - /** - * Display a 'no data' status node if result is empty (hide-mode only). - * Pass false to simply show an empy pane, or pass a string to customize the message. - * @default true - */ - noData?: boolean | string; - }; + } & FilterNodesOptions; /** * Note:
* This options are used for renaming node titles.
@@ -2284,16 +2258,21 @@ declare module "wb_ext_filter" { constructor(tree: Wunderbaum); init(): void; setPluginOption(name: string, value: any): void; - _applyFilterNoUpdate(filter: string | NodeFilterCallback, branchMode: boolean, _opts: any): void; - _applyFilterImpl(filter: string | NodeFilterCallback, branchMode: boolean, _opts: any): number; + _applyFilterNoUpdate(filter: string | RegExp | NodeFilterCallback, _opts: FilterNodesOptions): number; + _applyFilterImpl(filter: string | RegExp | NodeFilterCallback, _opts: FilterNodesOptions): number; /** * [ext-filter] Dim or hide nodes. */ - filterNodes(filter: string | NodeFilterCallback, options: FilterNodesOptions): void; + filterNodes(filter: string | RegExp | NodeFilterCallback, options: FilterNodesOptions): number; /** * [ext-filter] Dim or hide whole branches. + * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`. + */ + filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): number; + /** + * [ext-filter] Return the number of matched nodes. */ - filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): void; + countMatches(): number; /** * [ext-filter] Re-apply current filter. */ @@ -2307,7 +2286,7 @@ declare module "wb_ext_filter" { declare module "wb_ext_keynav" { /*! * Wunderbaum - ext-keynav - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { KeynavOptionsType } from "types"; @@ -2323,7 +2302,7 @@ declare module "wb_ext_keynav" { declare module "wb_ext_logger" { /*! * Wunderbaum - ext-logger - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { LoggerOptionsType } from "types"; @@ -2387,7 +2366,7 @@ declare module "wb_ext_dnd" { declare module "drag_observer" { /*! * Wunderbaum - drag_observer - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ export type DragCallbackArgType = { @@ -2447,7 +2426,7 @@ declare module "drag_observer" { declare module "wb_ext_grid" { /*! * Wunderbaum - ext-grid - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { Wunderbaum } from "wunderbaum"; @@ -2464,7 +2443,7 @@ declare module "wb_ext_grid" { declare module "wb_ext_edit" { /*! * Wunderbaum - ext-edit - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ import { Wunderbaum } from "wunderbaum"; @@ -2503,7 +2482,7 @@ declare module "wunderbaum" { * * A treegrid control. * - * Copyright (c) 2021-2023, Martin Wendt (https://wwWendt.de). + * Copyright (c) 2021-2024, Martin Wendt (https://wwWendt.de). * https://github.com/mar10/wunderbaum * * Released under the MIT license. @@ -2587,6 +2566,7 @@ declare module "wunderbaum" { static util: typeof util; /** Expose some useful methods of the util.ts module as `tree._util`. */ _util: typeof util; + /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */ filterMode: FilterModeType; /** @internal Use `setColumn()`/`getActiveColElem()` to access. */ activeColIdx: number; @@ -2726,7 +2706,7 @@ declare module "wunderbaum" { * }); * ``` */ - runWithDeferredUpdate(func: () => any, hint?: any): void; + runWithDeferredUpdate(func: () => any, hint?: any): any; /** Recursively expand all expandable nodes (triggers lazy load if needed). */ expandAll(flag?: boolean, options?: ExpandAllOptions): Promise; /** Recursively select all nodes. */ @@ -2962,7 +2942,7 @@ declare module "wunderbaum" { sortChildren(cmp?: SortCallback | null, deep?: boolean): void; /** Convert tree to an array of plain objects. * - * @param callback(dict, node) is called for every node, in order to allow + * @param callback is called for every node, in order to allow * modifications. * Return `false` to ignore this node or `"skip"` to include this node * without its children. @@ -3051,13 +3031,28 @@ declare module "wunderbaum" { */ enableUpdate(flag: boolean): void; /** - * Dim or hide nodes. + * Dim or hide unmatched nodes. + * @param filter a string to match against node titles, or a callback function. + * @param options filter options. Defaults to the `tree.options.filter` settings. + * @returns the number of nodes that match the filter. + * @example + * ```ts + * tree.filterNodes("foo", {mode: 'dim', fuzzy: true}); + * // or pass a callback + * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'}); + * ``` + */ + filterNodes(filter: string | RegExp | NodeFilterCallback, options: FilterNodesOptions): number; + /** + * Return the number of nodes that match the current filter. + * @see {@link Wunderbaum.filterNodes} */ - filterNodes(filter: string | NodeFilterCallback, options: FilterNodesOptions): void; + countMatches(): number; /** * Dim or hide whole branches. + * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`. */ - filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): void; + filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): number; /** * Reset the filter. */ diff --git a/dist/wunderbaum.esm.js b/dist/wunderbaum.esm.js index fdad4db5..711ec0e8 100644 --- a/dist/wunderbaum.esm.js +++ b/dist/wunderbaum.esm.js @@ -76,13 +76,7 @@ function isObject(value) { * @param {number} [wait=0] * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is * used (if available). - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param [options={}] The options object. * @returns {Function} Returns the new debounced function. * @example * @@ -260,11 +254,7 @@ function debounce(func, wait = 0, options = {}) { * @param {number} [wait=0] * The number of milliseconds to throttle invocations to; if omitted, * `requestAnimationFrame` is used (if available). - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param [options={}] The options object. * @returns {Function} Returns the new throttled function. * @example * @@ -297,8 +287,8 @@ function throttle(func, wait = 0, options = {}) { /*! * Wunderbaum - util - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** @module util */ /** Readable names for `MouseEvent.button` */ @@ -421,7 +411,7 @@ function documentReadyPromise() { * Iterate over Object properties or array elements. * * @param obj `Object`, `Array` or null - * @param callback(index, item) called for every item. + * @param callback called for every item. * `this` also contains the item. * Return `false` to stop the iteration. */ @@ -1095,8 +1085,8 @@ var util = /*#__PURE__*/Object.freeze({ /*! * Wunderbaum - types - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** * Possible values for {@link WunderbaumNode.update()} and {@link Wunderbaum.update()}. @@ -1159,8 +1149,8 @@ var NavModeEnum; /*! * Wunderbaum - wb_extension_base - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension { constructor(tree, id, defaults) { @@ -1218,8 +1208,8 @@ class WunderbaumExtension { /*! * Wunderbaum - ext-filter - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const START_MARKER = "\uFFF7"; const END_MARKER = "\uFFF8"; @@ -1228,16 +1218,15 @@ const RE_END_MARTKER = new RegExp(escapeRegex(END_MARKER), "g"); class FilterExtension extends WunderbaumExtension { constructor(tree) { super(tree, "filter", { - connectInput: null, - autoApply: true, - autoExpand: false, - counter: true, - fuzzy: false, - hideExpandedCounter: true, - hideExpanders: false, - highlight: true, - leavesOnly: false, - mode: "dim", + autoApply: true, // Re-apply last filter if lazy data is loaded + autoExpand: false, // Expand all branches that contain matches while filtered + matchBranch: false, // Whether to implicitly match all children of matched nodes + connectInput: null, // Element or selector of an input control for filter query strings + fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar' + hideExpanders: false, // Hide expanders if all child nodes are hidden by filter + highlight: true, // Highlight matches by wrapping inside tags + leavesOnly: false, // Match end nodes only + mode: "dim", // Grayout unmatched nodes (pass "hide" to remove unmatched node instead) noData: true, // Display a 'no data' status node if result is empty }); this.lastFilterArgs = null; @@ -1263,33 +1252,38 @@ class FilterExtension extends WunderbaumExtension { break; } } - _applyFilterNoUpdate(filter, branchMode, _opts) { + _applyFilterNoUpdate(filter, _opts) { return this.tree.runWithDeferredUpdate(() => { - return this._applyFilterImpl(filter, branchMode, _opts); + return this._applyFilterImpl(filter, _opts); }); } - _applyFilterImpl(filter, branchMode, _opts) { - let match, temp, count = 0; + _applyFilterImpl(filter, _opts) { + let //temp, + count = 0; const start = Date.now(); const tree = this.tree; const treeOpts = tree.options; - // escapeTitles = treeOpts.escapeTitles, const prevAutoCollapse = treeOpts.autoCollapse; + // Use default options from `tree.options.filter`, but allow to override them const opts = extend({}, treeOpts.filter, _opts); const hideMode = opts.mode === "hide"; - const leavesOnly = !!opts.leavesOnly && !branchMode; + const matchBranch = !!opts.matchBranch; + const leavesOnly = !!opts.leavesOnly && !matchBranch; + let filterRegExp; + let highlightRegExp; // Default to 'match title substring (case insensitive)' - if (typeof filter === "string") { + if (typeof filter === "string" || filter instanceof RegExp) { if (filter === "") { tree.logInfo("Passing an empty string as a filter is handled as clearFilter()."); this.clearFilter(); - return; + return 0; } if (opts.fuzzy) { + assert(typeof filter === "string", "fuzzy filter must be a string"); // See https://codereview.stackexchange.com/questions/23899/faster-javascript-fuzzy-string-matching-function/23905#23905 // and http://www.quora.com/How-is-the-fuzzy-search-algorithm-in-Sublime-Text-designed // and http://www.dustindiaz.com/autocomplete-fuzzy-matching - match = filter + const matchReString = filter .split("") // Escaping the `filter` will not work because, // it gets further split into individual characters. So, @@ -1300,12 +1294,21 @@ class FilterExtension extends WunderbaumExtension { // the character return a + "([^" + b + "]*)" + b; }, ""); + filterRegExp = new RegExp(matchReString, "i"); + // highlightRegExp = new RegExp(escapeRegex(filter), "gi"); + } + else if (filter instanceof RegExp) { + filterRegExp = filter; + highlightRegExp = filter; } else { - match = escapeRegex(filter); // make sure a '.' is treated literally + const matchReString = escapeRegex(filter); // make sure a '.' is treated literally + filterRegExp = new RegExp(matchReString, "i"); + highlightRegExp = new RegExp(matchReString, "gi"); } - const re = new RegExp(match, "i"); - const reHighlight = new RegExp(escapeRegex(filter), "gi"); + tree.logDebug(`Filtering nodes by '${filterRegExp}'`); + // const re = new RegExp(match, "i"); + // const reHighlight = new RegExp(escapeRegex(filter), "gi"); filter = (node) => { if (!node.title) { return false; @@ -1313,34 +1316,25 @@ class FilterExtension extends WunderbaumExtension { // let text = escapeTitles ? node.title : extractHtmlText(node.title); const text = node.title; // `.match` instead of `.test` to get the capture groups - const res = text.match(re); + // const res = text.match(filterRegExp); + const res = filterRegExp.exec(text); if (res && opts.highlight) { - // if (escapeTitles) { + let highlightString; if (opts.fuzzy) { - temp = _markFuzzyMatchedChars(text, res, true); + highlightString = _markFuzzyMatchedChars(text, res, true); } else { // #740: we must not apply the marks to escaped entity names, e.g. `"` // Use some exotic characters to mark matches: - temp = text.replace(reHighlight, function (s) { + highlightString = text.replace(highlightRegExp, function (s) { return START_MARKER + s + END_MARKER; }); } // now we can escape the title... - node.titleWithHighlight = escapeHtml(temp) + node.titleWithHighlight = escapeHtml(highlightString) // ... and finally insert the desired `` tags .replace(RE_START_MARKER, "") .replace(RE_END_MARTKER, ""); - // } else { - // if (opts.fuzzy) { - // node.titleWithHighlight = _markFuzzyMatchedChars(text, res); - // } else { - // node.titleWithHighlight = text.replace(reHighlight, function (s) { - // return "" + s + ""; - // }); - // } - // } - // node.debug("filter", escapeTitles, text, node.titleWithHighlight); } return !!res; }; @@ -1377,7 +1371,7 @@ class FilterExtension extends WunderbaumExtension { return "skip"; } let matchedByBranch = false; - if ((branchMode || res === "branch") && node.parent.match) { + if ((matchBranch || res === "branch") && node.parent.match) { res = true; matchedByBranch = true; } @@ -1409,20 +1403,35 @@ class FilterExtension extends WunderbaumExtension { } } // Redraw whole tree - tree.logInfo(`Filter '${match}' found ${count} nodes in ${Date.now() - start} ms.`); + tree.logDebug(`Filter '${filter}' found ${count} nodes in ${Date.now() - start} ms.`); return count; } /** * [ext-filter] Dim or hide nodes. */ filterNodes(filter, options) { - return this._applyFilterNoUpdate(filter, false, options); + return this._applyFilterNoUpdate(filter, options); } /** * [ext-filter] Dim or hide whole branches. + * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`. */ filterBranches(filter, options) { - return this._applyFilterNoUpdate(filter, true, options); + assert(options.matchBranch === undefined, "filterBranches() is deprecated."); + options.matchBranch = true; + return this._applyFilterNoUpdate(filter, options); + } + /** + * [ext-filter] Return the number of matched nodes. + */ + countMatches() { + let n = 0; + this.tree.visit((node) => { + if (node.match && !node.statusNodeType) { + n++; + } + }); + return n; } /** * [ext-filter] Re-apply current filter. @@ -1523,8 +1532,8 @@ function _markFuzzyMatchedChars(text, matches, escapeTitles = true) { /*! * Wunderbaum - ext-keynav - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const QUICKSEARCH_DELAY = 500; class KeynavExtension extends WunderbaumExtension { @@ -1887,8 +1896,8 @@ class KeynavExtension extends WunderbaumExtension { /*! * Wunderbaum - ext-logger - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class LoggerExtension extends WunderbaumExtension { constructor(tree) { @@ -1929,8 +1938,8 @@ class LoggerExtension extends WunderbaumExtension { /*! * Wunderbaum - common - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script /** @@ -2005,12 +2014,12 @@ const iconMaps = { }; /** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */ const RESERVED_TREE_SOURCE_KEYS = new Set([ - "_format", - "_keyMap", - "_positional", - "_typeList", - "_valueMap", - "_version", + "_format", // reserved for future use + "_keyMap", // Used for compressed data format + "_positional", // Used for compressed data format + "_typeList", // Used for compressed data format @deprecated + "_valueMap", // Used for compressed data format + "_version", // reserved for future use "children", "columns", "types", @@ -2038,8 +2047,8 @@ const KEY_TO_ACTION_DICT = { Home: "firstCol", "Control+End": "last", "Control+Home": "first", - "Meta+ArrowDown": "last", - "Meta+ArrowUp": "first", + "Meta+ArrowDown": "last", // macOs + "Meta+ArrowUp": "first", // macOs "*": "expandAll", Multiply: "expandAll", PageDown: "pageDown", @@ -2252,44 +2261,44 @@ function decompressSourceData(source) { /*! * Wunderbaum - ext-dnd - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const nodeMimeType = "application/x-wunderbaum-node"; class DndExtension extends WunderbaumExtension { constructor(tree) { super(tree, "dnd", { - autoExpandMS: 1500, + autoExpandMS: 1500, // Expand nodes after n milliseconds of hovering // dropMarkerInsertOffsetX: -16, // Additional offset for drop-marker with hitMode = "before"/"after" // dropMarkerOffsetX: -24, // Absolute position offset for .fancytree-drop-marker relatively to ..fancytree-title (icon/img near a node accepting drop) // #1021 `document.body` is not available yet // dropMarkerParent: "body", // Root Container used for drop marker (could be a shadow root) - multiSource: false, - effectAllowed: "all", - dropEffectDefault: "move", - guessDropEffect: true, - preventForeignNodes: false, - preventLazyParents: true, - preventNonNodes: false, - preventRecursion: true, - preventSameParent: false, - preventVoidMoves: true, - serializeClipboardData: true, - scroll: true, - scrollSensitivity: 20, + multiSource: false, // true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed + effectAllowed: "all", // Restrict the possible cursor shapes and modifier operations (can also be set in the dragStart event) + dropEffectDefault: "move", // Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (override in drag, dragOver). + guessDropEffect: true, // Calculate from `effectAllowed` and modifier keys) + preventForeignNodes: false, // Prevent dropping nodes from different Wunderbaum trees + preventLazyParents: true, // Prevent dropping items on unloaded lazy Wunderbaum tree nodes + preventNonNodes: false, // Prevent dropping items other than Wunderbaum tree nodes + preventRecursion: true, // Prevent dropping nodes on own descendants + preventSameParent: false, // Prevent dropping nodes under same direct parent + preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. (move only) + serializeClipboardData: true, // Serialize node data to dataTransfer object + scroll: true, // Enable auto-scrolling while dragging + scrollSensitivity: 20, // Active top/bottom margin in pixel // scrollnterval: 50, // Generate event every 50 ms - scrollSpeed: 5, + scrollSpeed: 5, // Scroll pixel per 50 ms // setTextTypeJson: false, // Allow dragging of nodes to different IE windows - sourceCopyHook: null, + sourceCopyHook: null, // Optional callback passed to `toDict` on dragStart @since 2.38 // Events (drag support) - dragStart: null, - drag: null, - dragEnd: null, + dragStart: null, // Callback(sourceNode, data), return true, to enable dnd drag + drag: null, // Callback(sourceNode, data) + dragEnd: null, // Callback(sourceNode, data) // Events (drop support) - dragEnter: null, - dragOver: null, - dragExpand: null, - drop: null, + dragEnter: null, // Callback(targetNode, data), return true, to enable dnd drop + dragOver: null, // Callback(targetNode, data) + dragExpand: null, // Callback(targetNode, data), return false to prevent autoExpand + drop: null, // Callback(targetNode, data) dragLeave: null, // Callback(targetNode, data) }); // public dropMarkerElem?: HTMLElement; @@ -2697,8 +2706,8 @@ class DndExtension extends WunderbaumExtension { /*! * Wunderbaum - drag_observer - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'. @@ -2833,8 +2842,8 @@ class DragObserver { /*! * Wunderbaum - ext-grid - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class GridExtension extends WunderbaumExtension { constructor(tree) { @@ -2870,8 +2879,8 @@ class GridExtension extends WunderbaumExtension { /*! * Wunderbaum - deferred - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** * Implement a ES6 Promise, that exposes a resolve() and reject() method. @@ -2923,8 +2932,8 @@ class Deferred { /*! * Wunderbaum - wunderbaum_node - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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`.) @@ -3236,7 +3245,7 @@ class WunderbaumNode { const minExpandLevel = this.tree.options.minExpandLevel; const { depth = 99, loadLazy, force, keepActiveNodeVisible = true, } = options !== null && options !== void 0 ? options : {}; const expandOpts = { - scrollIntoView: false, + scrollIntoView: false, // don't scroll very node on iteration force: force, loadLazy: loadLazy, }; @@ -3504,7 +3513,7 @@ class WunderbaumNode { } /** Return a string representing the hierachical node path, e.g. "a/b/c". * @param includeSelf - * @param node property name or callback + * @param part property name or callback * @param separator */ getPath(includeSelf = true, part = "title", separator = "/") { @@ -3554,6 +3563,10 @@ class WunderbaumNode { hasClass(className) { return this.classes ? this.classes.has(className) : false; } + /** Return true if node ist the currently focused node. */ + hasFocus() { + return this.tree.focusNode === this; + } /** Return true if this node is the currently active tree node. */ isActive() { return this.tree.activeNode === this; @@ -3619,7 +3632,7 @@ class WunderbaumNode { } /** Return true if _this_ node is currently in edit-title mode. * - * See {@link Wunderbaum.startEditTitle} to check if any node is currently edited. + * See {@link WunderbaumNode.startEditTitle}. */ isEditingTitle() { return this.tree._callMethod("edit.isEditingTitle", this); @@ -4648,8 +4661,8 @@ class WunderbaumNode { * * The result is compatible with node.addChildren(). * - * @param include child nodes - * @param callback(dict, node) is called for every node, in order to allow + * @param recursive include child nodes + * @param callback is called for every node, in order to allow * modifications. * Return `false` to ignore this node or `"skip"` to include this node * without its children. @@ -5301,8 +5314,9 @@ class WunderbaumNode { * Stop iteration, if fn() returns false.
* Return false if iteration was stopped. * - * @param {function} fn the callback function. + * @param callback the callback function. * Return false to stop iteration. + * @param includeSelf include this node in the iteration. */ visitSiblings(callback, includeSelf = false) { const ac = this.parent.children; @@ -5327,8 +5341,8 @@ WunderbaumNode.sequence = 0; /*! * Wunderbaum - ext-edit - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ // const START_MARKER = "\uFFF7"; class EditExtension extends WunderbaumExtension { @@ -5337,11 +5351,11 @@ class EditExtension extends WunderbaumExtension { debounce: 100, minlength: 1, maxlength: null, - trigger: [], + trigger: [], //["clickActive", "F2", "macEnter"], trim: true, select: true, - slowClickDelay: 1000, - validity: true, + slowClickDelay: 1000, // Handle 'clickActive' only if last click is less than this old (0: always) + validity: true, //"Please enter a title", // --- Events --- // (note: there is also the `tree.change` event.) beforeEdit: null, @@ -5655,12 +5669,12 @@ class EditExtension extends WunderbaumExtension { * * A treegrid control. * - * Copyright (c) 2021-2023, Martin Wendt (https://wwWendt.de). + * Copyright (c) 2021-2024, Martin Wendt (https://wwWendt.de). * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.8.4 - * @date Wed, 01 May 2024 06:13:52 GMT + * @version v0.9.0 + * @date Sun, 05 May 2024 16:08:56 GMT */ // import "./wunderbaum.scss"; class WbSystemRoot extends WunderbaumNode { @@ -5722,6 +5736,7 @@ class Wunderbaum { // /** @internal */ // public selectRangeAnchor: WunderbaumNode | null = null; // --- FILTER --- + /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */ this.filterMode = null; // --- KEYNAV --- /** @internal Use `setColumn()`/`getActiveColElem()` to access. */ @@ -5736,10 +5751,10 @@ class Wunderbaum { this.lastClickTime = 0; const opts = (this.options = extend({ id: null, - source: null, - element: null, - debugLevel: DEFAULT_DEBUGLEVEL, - header: null, + source: null, // URL for GET/PUT, Ajax options, or callback + element: null, //
+ debugLevel: DEFAULT_DEBUGLEVEL, // 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose + header: null, // Show/hide header (pass bool or string) // headerHeightPx: ROW_HEIGHT, rowHeightPx: ROW_HEIGHT, iconMap: "bootstrap", @@ -5754,10 +5769,10 @@ class Wunderbaum { emptyChildListExpandable: false, // updateThrottleWait: 200, skeleton: false, - connectTopBreadcrumb: null, - selectMode: "multi", + connectTopBreadcrumb: null, // HTMLElement that receives the top nodes breadcrumb + selectMode: "multi", // SelectModeType // --- KeyNav --- - navigationModeOption: null, + navigationModeOption: null, // NavModeEnum.startRow, quicksearch: true, // --- Events --- iconBadge: null, @@ -7298,7 +7313,7 @@ class Wunderbaum { } /** Convert tree to an array of plain objects. * - * @param callback(dict, node) is called for every node, in order to allow + * @param callback is called for every node, in order to allow * modifications. * Return `false` to ignore this node or `"skip"` to include this node * without its children. @@ -7846,13 +7861,30 @@ class Wunderbaum { * FILTER * -------------------------------------------------------------------------*/ /** - * Dim or hide nodes. + * Dim or hide unmatched nodes. + * @param filter a string to match against node titles, or a callback function. + * @param options filter options. Defaults to the `tree.options.filter` settings. + * @returns the number of nodes that match the filter. + * @example + * ```ts + * tree.filterNodes("foo", {mode: 'dim', fuzzy: true}); + * // or pass a callback + * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'}); + * ``` */ filterNodes(filter, options) { return this.extensions.filter.filterNodes(filter, options); } + /** + * Return the number of nodes that match the current filter. + * @see {@link Wunderbaum.filterNodes} + */ + countMatches() { + return this.extensions.filter.countMatches(); + } /** * Dim or hide whole branches. + * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`. */ filterBranches(filter, options) { return this.extensions.filter.filterBranches(filter, options); @@ -7878,7 +7910,7 @@ class Wunderbaum { } Wunderbaum.sequence = 0; /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */ -Wunderbaum.version = "v0.8.4"; // Set to semver by 'grunt release' +Wunderbaum.version = "v0.9.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 e3830375..3fd654b4 100644 --- a/dist/wunderbaum.esm.min.js +++ b/dist/wunderbaum.esm.min.js @@ -6,69 +6,69 @@ const freeGlobal="object"==typeof global&&null!==global&&global.Object===Object&&global,freeGlobalThis="object"==typeof globalThis&&null!==globalThis&&globalThis.Object==Object&&globalThis,freeSelf="object"==typeof self&&null!==self&&self.Object===Object&&self,root=freeGlobalThis||freeGlobal||freeSelf||Function("return this")();function isObject(e){const t=typeof e;return null!=e&&("object"===t||"function"===t)}function debounce(e,t=0,i={}){let s,n,r,o,l,a,d=0,c=!1,h=!1,u=!0;const p=!t&&0!==t&&"function"==typeof root.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){const i=s,r=n;return s=n=void 0,d=t,o=e.apply(r,i),o}function g(e,t){return p?(root.cancelAnimationFrame(l),root.requestAnimationFrame(e)):setTimeout(e,t)}function m(e){const i=e-a;return void 0===a||i>=t||i<0||h&&e-d>=r}function v(){const e=Date.now();if(m(e))return y(e);l=g(v,function(e){const i=e-d,s=t-(e-a);return h?Math.min(s,r-i):s}(e))}function y(e){return l=void 0,u&&s?f(e):(s=n=void 0,o)}function b(...e){const i=Date.now(),r=m(i);if(s=e,n=this,a=i,r){if(void 0===l)return function(e){return d=e,l=g(v,t),c?f(e):o}(a);if(h)return l=g(v,t),f(a)}return void 0===l&&(l=g(v,t)),o}return t=+t||0,isObject(i)&&(c=!!i.leading,h="maxWait"in i,r=h?Math.max(+i.maxWait||0,t):r,u="trailing"in i?!!i.trailing:u),b.cancel=function(){void 0!==l&&function(e){if(p)return root.cancelAnimationFrame(e);clearTimeout(e)}(l),d=0,s=a=n=l=void 0},b.flush=function(){return void 0===l?o:y(Date.now())},b.pending=function(){return void 0!==l},b}function throttle(e,t=0,i={}){let s=!0,n=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return isObject(i)&&(s="leading"in i?!!i.leading:s,n="trailing"in i?!!i.trailing:n),debounce(e,t,{leading:s,trailing:n,maxWait:t})} /*! * Wunderbaum - util - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */const MOUSE_BUTTONS={0:"",1:"left",2:"middle",3:"right",4:"back",5:"forward"},MAX_INT=9007199254740991,userInfo=_getUserInfo(),isMac=userInfo.isMac,REX_HTML=/[&<>"'/]/g,REX_TOOLTIP=/[<>"'/]/g,ENTITY_MAP={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};class ValidationError extends Error{constructor(e){super(e),this.name="ValidationError"}}let Deferred$1=class{constructor(){this.thens=[],this.catches=[],this.status=""}resolve(e){if(this.status)throw new Error("already settled");this.status="resolved",this.resolvedValue=e,this.thens.forEach((t=>t(e))),this.thens=[]}reject(e){if(this.status)throw new Error("already settled");this.status="rejected",this.rejectedError=e,this.catches.forEach((t=>t(e))),this.catches=[]}then(e){"resolved"===status?e(this.resolvedValue):this.thens.unshift(e)}catch(e){"rejected"===this.status?e(this.rejectedError):this.catches.unshift(e)}promise(){return{then:this.then,catch:this.catch}}};function assert(e,t){if(!e)throw t=t||"Assertion failed.",new Error(t)}function _getUserInfo(){const e=navigator;return{isMac:/Mac/.test(e.platform)}}function documentReady(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}function documentReadyPromise(){return new Promise((e=>{documentReady(e)}))}function each(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&error("Not implemented"),e}function getValueFromElem(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return getValueFromElem(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function setValueToElem(e,t){const i=e.tagName;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,s=i.querySelector("input,select");if(s)return setValueToElem(s,t);i.innerText=""+t}else if("INPUT"===i){const i=e,s=i.type;switch(s){case"checkbox":i.indeterminate=null===t,i.checked=!!t;break;case"date":case"month":case"time":case"week":case"datetime":case"datetime-local":i.valueAsDate=new Date(t);break;case"number":case"range":null==t?i.value=t:i.valueAsNumber=t;break;case"radio":error(`Not yet implemented: ${s}`);break;case"button":case"reset":case"submit":case"image":break;default:i.value=null!=t?t:""}}else if("SELECT"===i){const i=e;null==t?i.selectedIndex=-1:i.value=t}}function setElemDisplay(e,t){const i=elemFromSelector(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function elemFromHtml(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const _IGNORE_KEYS=new Set(["Alt","Control","Meta","Shift"]);function elemFromSelector(e){return e?"string"==typeof e?document.querySelector(e):e:null}function eventToString(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(MOUSE_BUTTONS[e.button]+i):"wheel"===i?s.push(i):_IGNORE_KEYS.has(t)||s.push(t),s.join("+")}function extend(...e){for(let t=1;t{e.addEventListener(t,(function(e){if(!n)return r(e);if(e.target){let t=e.target;if(t.matches(n))return r(e);if(t=t.closest(n),t)return r(e)}}))}))}function overrideMethod(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function setTimeoutPromise(e,t){return new Promise(((i,s)=>{setTimeout((()=>{try{i(e.apply(this))}catch(e){s(e)}}),t)}))}async function sleep(e){return new Promise((t=>setTimeout(t,e)))}function toggleCheckbox(e,t,i){const s=elemFromSelector(e);if(assert("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t}function getOption(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function toSet(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function type(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}function adaptiveThrottle(e,t){const i=Object.assign({minDelay:16,defaultDelay:200,maxDelay:5e3,delayFactor:2},t),s=Math.max(16,+i.minDelay),n=+i.maxDelay;let r=0,o=null,l=null;const a=(...t)=>{if(r)o=t,r+=1;else{r=1;const d=t;o=null;const c=Date.now();try{e.apply(this,d)}catch(e){console.error(e)}const h=Date.now()-c,u=Math.min(Math.max(s,h*i.delayFactor),n),p=Math.max(s,u-h);l=setTimeout((()=>{l=null,r=0,null!=o&&a.apply(this,o)}),p)}};return a.cancel=()=>{l&&(clearTimeout(l),l=null),o=null,r=0},a.pending=()=>!!l,a.flush=()=>{throw new Error("Not implemented")},a}var ChangeType,RenderFlag,NodeStatusType,NodeRegion,NavModeEnum,util=Object.freeze({__proto__:null,Deferred:Deferred$1,MAX_INT:MAX_INT,MOUSE_BUTTONS:MOUSE_BUTTONS,ValidationError:ValidationError,adaptiveThrottle:adaptiveThrottle,assert:assert,debounce:debounce,documentReady:documentReady,documentReadyPromise:documentReadyPromise,each:each,elemFromHtml:elemFromHtml,elemFromSelector:elemFromSelector,error:error,escapeHtml:escapeHtml,escapeRegex:escapeRegex,escapeTooltip:escapeTooltip,eventToString:eventToString,extend:extend,extractHtmlText:extractHtmlText,getOption:getOption,getValueFromElem:getValueFromElem,isArray:isArray,isEmptyObject:isEmptyObject,isFunction:isFunction,isMac:isMac,isPlainObject:isPlainObject,noop:noop,onEvent:onEvent,overrideMethod:overrideMethod,setElemDisplay:setElemDisplay,setTimeoutPromise:setTimeoutPromise,setValueToElem:setValueToElem,sleep:sleep,throttle:throttle,toSet:toSet,toggleCheckbox:toggleCheckbox,type:type}); /*! * Wunderbaum - types - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 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",{connectInput:null,autoApply:!0,autoExpand:!1,counter:!0,fuzzy:!1,hideExpandedCounter:!0,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),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,i){return this.tree.runWithDeferredUpdate((()=>this._applyFilterImpl(e,t,i)))}_applyFilterImpl(e,t,i){let s,n,r=0;const o=Date.now(),l=this.tree,a=l.options,d=a.autoCollapse,c=extend({},a.filter,i),h="hide"===c.mode,u=!!c.leavesOnly&&!t;if("string"==typeof e){if(""===e)return l.logInfo("Passing an empty string as a filter is handled as clearFilter()."),void this.clearFilter();s=c.fuzzy?e.split("").map(escapeRegex).reduce((function(e,t){return e+"([^"+t+"]*)"+t}),""):escapeRegex(e);const t=new RegExp(s,"i"),i=new RegExp(escapeRegex(e),"gi");e=e=>{if(!e.title)return!1;const s=e.title,r=s.match(t);return r&&c.highlight&&(n=c.fuzzy?_markFuzzyMatchedChars(s,r,!0):s.replace(i,(function(e){return"￷"+e+"￸"})),e.titleWithHighlight=escapeHtml(n).replace(RE_START_MARKER,"").replace(RE_END_MARTKER,"")),!!r}}return l.filterMode=c.mode,this.lastFilterArgs=arguments,l.element.classList.toggle("wb-ext-filter-hide",!!h),l.element.classList.toggle("wb-ext-filter-dim",!h),l.element.classList.toggle("wb-ext-filter-hide-expanders",!!c.hideExpanders),l.root.subMatchCount=0,l.visit((e=>{delete e.match,delete e.titleWithHighlight,e.subMatchCount=0})),l.setStatus(NodeStatusType.ok),a.autoCollapse=!1,l.visit((i=>{if(u&&null!=i.children)return;let s=e(i);if("skip"===s)return i.visit((function(e){e.match=!1}),!0),"skip";let n=!1;(t||"branch"===s)&&i.parent.match&&(s=!0,n=!0),s&&(r++,i.match=!0,i.visitParents((e=>{e!==i&&(e.subMatchCount+=1),!c.autoExpand||n||e.expanded||(e.setExpanded(!0,{noAnimation:!0,noEvents:!0}),e._filterAutoExpanded=!0)}),!0))})),a.autoCollapse=d,0===r&&c.noData&&h&&("string"==typeof c.noData?l.root.setStatus(NodeStatusType.noData,{message:c.noData}):l.root.setStatus(NodeStatusType.noData)),l.logInfo(`Filter '${s}' found ${r} nodes in ${Date.now()-o} ms.`),r}filterNodes(e,t){return this._applyFilterNoUpdate(e,!1,t)}filterBranches(e,t){return this._applyFilterNoUpdate(e,!0,t)}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("")} + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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),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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */const QUICKSEARCH_DELAY=500;class KeynavExtension extends WunderbaumExtension{constructor(e){super(e,"keynav",{})}_getEmbeddedInputElem(e){var t;let i=null;if(e&&null!=e.type)i=e;else{const e=null===(t=this.tree.getActiveColElem())||void 0===t?void 0:t.querySelector("input,select");e&&(i=e)}return i}_isCurInputFocused(){var e;return!!(null===(e=this.tree.getActiveColElem())||void 0===e?void 0:e.querySelector("input:focus,select:focus"))}onKeyEvent(e){const t=e.event,i=this.tree,s=e.options,n=!t.ctrlKey||s.autoActivate,r=this._getEmbeddedInputElem(t.target),o=r&&this._isCurInputFocused(),l=s.navigationModeOption;let a,d=eventToString(t),c=e.node,h=!0;if(!i.isEnabled())return!1;if(!1===i._callEvent("keydown",e))return!1;if(!1===i._callMethod("edit._preprocessKeyEvent",e))return!1;if(!c){const e=i.getFocusNode()||i.getActiveNode(),t=i.getFirstChild();if(!e&&t&&"ArrowDown"===d)return t.logInfo("Keydown: activate first node."),void t.setActive();a=e||t,a&&(a.setFocus(),c=i.getFocusNode(),c.logInfo("Keydown: force focus on active node."))}const u=c.isColspan();if(i.isRowNav()){if(o){switch(d){case"Enter":r.blur(),i.setFocus();break;case"Escape":c._render(),i.setFocus()}return}if(s.quicksearch&&1===d.length&&/^\w$/.test(d)&&!r){const e=Date.now();e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=d;const s=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode());return s&&s.setActive(!0,{event:t}),void t.preventDefault()}switch(d){case"Enter":c.isActive()&&(c.isExpanded()?d="Subtract":c.isExpandable(!0)&&(d="Add"));break;case"ArrowLeft":c.expanded&&(d="Subtract");break;case"ArrowRight":if(!c.expanded&&c.isExpandable(!0))d="Add";else if(l===NavModeEnum.startCell||l===NavModeEnum.startRow)return t.preventDefault(),i.setCellNav(),!1}switch(d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":c.getOption("checkbox")?c.toggleSelected():c.setActive(!0,{event:t});break;case"Enter":c.setActive(!0,{event:t});break;case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"Backspace":case"End":case"Home":case"Control+End":case"Control+Home":case"Meta+ArrowDown":case"Meta+ArrowUp":case"PageDown":case"PageUp":c.navigate(d,{activate:n,event:t});break;default:h=!1}}else{const e=r?r.type||r.tagName:"",s=r&&"checkbox"!==e;if(o){if("Escape"===d)return c.logDebug("Reset focused input on Escape"),r.setCustomValidity(""),c._render(),i.setFocus(),void i.setColumn(i.activeColIdx);if("Enter"!==d)return r&&r.checkValidity&&!r.checkValidity()?(c.logDebug(`Ignored ${d} inside invalid input`),!1):void c.logDebug(`Ignored ${d} inside focused input`)}else if(r&&1===d.length&&s)return r.focus(),r.value="",c.logDebug(`Focus input: ${d}`),!1;switch("Tab"===d?(d="ArrowRight",h=!0):"Shift+Tab"===d&&(d=i.activeColIdx>0?"ArrowLeft":"",h=!0),d){case"+":case"Add":c.setExpanded(!0);break;case"-":case"Subtract":c.setExpanded(!1);break;case" ":0===i.activeColIdx&&c.getOption("checkbox")?(c.toggleSelected(),h=!0):r&&"checkbox"===e&&(r.click(),h=!0);break;case"F2":r&&!o&&s&&(r.focus(),h=!0);break;case"Enter":i.setFocus(),(0===i.activeColIdx||u)&&c.isExpandable()?(c.setExpanded(!c.isExpanded()),h=!0):r&&!o&&s&&(r.focus(),h=!0);break;case"Escape":i.setFocus(),c.log("keynav: focus tree..."),i.isCellNav()&&l!==NavModeEnum.cell&&(c.log("keynav: setCellNav(false)"),i.setCellNav(!1),i.setFocus(),h=!0);break;case"ArrowLeft":i.setFocus(),u&&c.isExpanded()?c.setExpanded(!1):!u&&i.activeColIdx>0?i.setColumn(i.activeColIdx-1):l!==NavModeEnum.cell&&i.setCellNav(!1),h=!0;break;case"ArrowRight":i.setFocus(),u&&!c.isExpanded()?c.setExpanded():!u&&i.activeColIdx0&&i.setColumn(0),h=!0;break;case"End":i.setFocus(),!u&&i.activeColIdx=4){const t=this.ignoreEvents,i=this.prefix;overrideMethod(e,"callEvent",(function(s,n){if(t.has(s))return e._superApply(arguments);const r=Date.now(),o=e._superApply(arguments);return e.logDebug(`${i}: callEvent('${s}') took ${Date.now()-r} ms.`,arguments[1]),o}))}}onKeyEvent(e){this.tree.logDebug(`${this.prefix}: onKeyEvent()`,e)}} /*! * Wunderbaum - common - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */const DEFAULT_DEBUGLEVEL=3,ROW_HEIGHT=22,ICON_WIDTH=20,TITLE_SPAN_PAD_Y=7,RENDER_MAX_PREFETCH=5,TEST_IMG=new RegExp(/\.|\//),iconMaps={bootstrap:{error:"bi bi-exclamation-triangle",loading:"bi bi-chevron-right wb-busy",noData:"bi bi-question-circle",expanderExpanded:"bi bi-chevron-down",expanderCollapsed:"bi bi-chevron-right",expanderLazy:"bi bi-chevron-right wb-helper-lazy-expander",checkChecked:"bi bi-check-square",checkUnchecked:"bi bi-square",checkUnknown:"bi bi-dash-square-dotted",radioChecked:"bi bi-circle-fill",radioUnchecked:"bi bi-circle",radioUnknown:"bi bi-record-circle",folder:"bi bi-folder2",folderOpen:"bi bi-folder2-open",folderLazy:"bi bi-folder-symlink",doc:"bi bi-file-earmark"},fontawesome6:{error:"fa-solid fa-triangle-exclamation",loading:"fa-solid fa-chevron-right fa-beat",noData:"fa-solid fa-circle-question",expanderExpanded:"fa-solid fa-chevron-down",expanderCollapsed:"fa-solid fa-chevron-right",expanderLazy:"fa-solid fa-chevron-right wb-helper-lazy-expander",checkChecked:"fa-regular fa-square-check",checkUnchecked:"fa-regular fa-square",checkUnknown:"fa-regular fa-square-minus",radioChecked:"fa-solid fa-circle",radioUnchecked:"fa-regular fa-circle",radioUnknown:"fa-regular fa-circle-question",folder:"fa-solid fa-folder-closed",folderOpen:"fa-regular fa-folder-open",folderLazy:"fa-solid fa-folder-plus",doc:"fa-regular fa-file"}},RESERVED_TREE_SOURCE_KEYS=new Set(["_format","_keyMap","_positional","_typeList","_valueMap","_version","children","columns","types"]),KEY_TO_ACTION_DICT={" ":"toggleSelect","+":"expand",Add:"expand",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",Backspace:"parent","/":"collapseAll",Divide:"collapseAll",End:"lastCol",Home:"firstCol","Control+End":"last","Control+Home":"first","Meta+ArrowDown":"last","Meta+ArrowUp":"first","*":"expandAll",Multiply:"expandAll",PageDown:"pageDown",PageUp:"pageUp","-":"collapse",Subtract:"collapse"};function makeNodeTitleMatcher(e){return e instanceof RegExp?function(t){return e.test(t.title)}:(assert("string"==typeof e,`Expected a string or RegExp: ${e}`),function(t){return t.title===e})}function makeNodeTitleStartMatcher(e){e=escapeRegex(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}function nodeTitleSorter(e,t){const i=e.title.toLowerCase(),s=t.title.toLowerCase();return i===s?0:i>s?1:-1}function unflattenSource(e){var t,i,s;const{_format:n,_keyMap:r={},_positional:o=[],children:l}=e;if("flat"!==n)throw new Error(`Expected source._format: "flat", but got ${n}`);if(o&&o.includes("children"))throw new Error(`source._positional must not include "children": ${o}`);let a=r;if(r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),a={};for(const[e,t]of Object.entries(r))a[t]=e}const d=o.map((e=>a[e])),c=[],h={},u={},p=null!==(t=a.key)&&void 0!==t?t:"key",f=null!==(i=a.children)&&void 0!==i?i:"children";for(const[e,t]of l.entries()){const[i,n,r={}]=t;t[1]=null,null!=t[2]&&(t[2]=null),n.forEach(((e,t)=>{r[d[t]]=e})),u[e]=r;const o=r[p];null!=o&&(h[o]=r);let l=null;if(null===i);else if("number"==typeof i){if(l=u[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by index: ${i}.`)}else if(l=h[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by key: ${i}`);l?(null!==(s=l[f])&&void 0!==s||(l[f]=[]),l[f].push(r)):c.push(r)}e.children=c}function decompressSourceData(e){let{_format:t,_version:i=1,_keyMap:s,_valueMap:n}=e;assert(1===i,`Expected file version 1 instead of ${i}`);let r=s,o={};if(r)for(const[e,t]of Object.entries(r))o[t]=e;if(r&&r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),[r,o]=[o,r]}if(null!=e._typeList){const t='source._typeList is deprecated since v0.7.0: use source._valueMap: {"type": [...]} instead.';if(null!=n)throw new Error(t);console.warn(t),n={type:e._typeList},delete e._typeList}"flat"===t&&unflattenSource(e),delete e._format,delete e._version,delete e._keyMap,delete e._valueMap,delete e._positional,(s||n)&&function e(t){for(const i of t)Object.getOwnPropertyNames(i).forEach((e=>{const t=i[e];let r=e;if(s&&null!=o[e]&&(r=o[e],r!==e&&(i[r]=t,delete i[e])),n&&"number"==typeof t&&null!=n[r]){const e=n[r][t];if(null==e)throw new Error(`Expected valueMap[${r}][${t}] entry in [${n[r]}]`);i[r]=e}})),i.children&&e(i.children)}(e.children)} /*! * Wunderbaum - ext-dnd - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */const nodeMimeType="application/x-wunderbaum-node";class DndExtension extends WunderbaumExtension{constructor(e){super(e,"dnd",{autoExpandMS:1500,multiSource:!1,effectAllowed:"all",dropEffectDefault:"move",guessDropEffect:!0,preventForeignNodes:!1,preventLazyParents:!0,preventNonNodes:!1,preventRecursion:!0,preventSameParent:!1,preventVoidMoves:!0,serializeClipboardData:!0,scroll:!0,scrollSensitivity:20,scrollSpeed:5,sourceCopyHook:null,dragStart:null,drag:null,dragEnd:null,dragEnter:null,dragOver:null,dragExpand:null,drop:null,dragLeave:null}),this.srcNode=null,this.lastTargetNode=null,this.lastEnterStamp=0,this.lastAllowedDropRegions=null,this.lastDropEffect=null,this.lastDropRegion=!1,this.currentScrollDir=0,this.applyScrollDirThrottled=throttle(this._applyScrollDir,50)}init(){super.init();const e=this.tree,t=e.options.dnd;t.dragStart&&onEvent(e.element,"dragstart drag dragend",this.onDragEvent.bind(this)),t.dragEnter&&onEvent(e.element,"dragenter dragover dragleave drop",this.onDropEvent.bind(this))}_leaveNode(){const e=this.lastTargetNode;this.lastEnterStamp=0,e&&(e.setClass("wb-drop-target wb-drop-over wb-drop-after wb-drop-before",!1),this.lastTargetNode=null)}unifyDragover(e){if(!1===e)return!1;if(e instanceof Set)return e.size>0&&e;if(!0===e)return new Set(["over","before","after"]);if("string"==typeof e||isArray(e))return(e=toSet(e)).size>0&&e;throw new Error("Unsupported drop region definition: "+e)}_calcDropRegion(e,t){const i=e.offsetY;return!!t&&(3===t.size?i<5.5?"before":i>16.5?"after":"over":1===t.size&&t.has("over")?"over":i>11?"after":"before")}_guessDropEffect(e){var t;const i=this.treeOpts.dnd,s=null!==(t=i.effectAllowed)&&void 0!==t?t:"all",n=["all","copy","copyLink","copyMove"].includes(s),r=["all","link","copyLink","linkMove"].includes(s),o=["all","move","copyMove","linkMove"].includes(s);let l=i.dropEffectDefault;return i.guessDropEffect&&(isMac?(e.altKey&&n&&(l="copy"),e.metaKey&&o&&(l="move"),e.altKey&&e.metaKey&&r&&(l="link")):(e.ctrlKey&&n&&(l="copy"),e.shiftKey&&o&&(l="move"),e.altKey&&r&&(l="link"))),l}_isVoidDrop(e,t,i){return!(!this.treeOpts.dnd.preventVoidMoves||!t)&&("before"===i&&e===t.getNextSibling()||"after"===i&&e===t.getPrevSibling()||(t===e||t.parent===e))}_applyScrollDir(){if(this.isDragging()&&this.currentScrollDir){const e=this.tree.options.dnd,t=this.tree.element,i=t.scrollTop;this.currentScrollDir<0?t.scrollTop=Math.max(0,i-e.scrollSpeed):this.currentScrollDir>0&&(t.scrollTop=i+e.scrollSpeed)}}_autoScroll(e){const t=this.tree,i=t.options.dnd.scrollSensitivity,s=t.element,n=t.headerElement.clientHeight,r=s.offsetHeight,o=s.scrollTop;return this.currentScrollDir=0,o>0&&e>0&&e<=i+n?this.currentScrollDir=-1:o=r-i&&(this.currentScrollDir=1),this.currentScrollDir&&this.applyScrollDirThrottled(),s.scrollTop-o}isDragging(){return!!this.srcNode}onDragEvent(e){var t;const i=this.treeOpts.dnd,s=Wunderbaum.getNode(e);if(s){if(["dragstart","dragend"].includes(e.type)&&this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${s}`,e),"dragstart"===e.type){if(e.dataTransfer.effectAllowed=i.effectAllowed,s.isEditingTitle())return s.logDebug("Prevented dragging node in edit mode."),e.preventDefault(),!1;if(!s._callEvent("dnd.dragStart",{event:e}))return e.preventDefault(),!1;const n=s.toDict(!0,(e=>{e._orgKey=e.key,delete e.key}));n._treeId=s.tree.id,i.serializeClipboardData&&("function"==typeof i.serializeClipboardData?e.dataTransfer.setData(nodeMimeType,i.serializeClipboardData(n,s)):e.dataTransfer.setData(nodeMimeType,JSON.stringify(n))),(null===(t=e.dataTransfer)||void 0===t?void 0:t.types.includes("text/plain"))||e.dataTransfer.setData("text/plain",s.title),this.srcNode=s,setTimeout((()=>{s.setClass("wb-drag-source")}),0)}else"drag"===e.type?i.drag&&s._callEvent("dnd.drag",{event:e}):"dragend"===e.type&&(s.setClass("wb-drag-source",!1),this.srcNode=null,this.lastTargetNode&&this._leaveNode(),s._callEvent("dnd.dragEnd",{event:e}));return!0}this.tree.logWarn(`onDragEvent.${e.type}: no node`)}onDropEvent(e){var t;const i=this.srcNode,s=i?i.tree:null,n=Wunderbaum.getNode(e),r=this.treeOpts.dnd,o=e.dataTransfer,l=this._calcDropRegion(e,this.lastAllowedDropRegions),a=(e,t)=>(e&&this.tree.log(`Prevented drop operation (${t}).`),e);if(n){if(["drop"].includes(e.type)&&this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${n}, ea: ${null==o?void 0:o.effectAllowed}, de: ${null==o?void 0:o.dropEffect}, cy: ${e.offsetY}, r: ${l}, srcNode: ${i}`,e),"dragenter"===e.type){if(this.lastAllowedDropRegions=null,this.lastTargetNode&&this.lastTargetNode!==n&&this._leaveNode(),this.lastTargetNode=n,this.lastEnterStamp=Date.now(),a(n.isStatusNode(),"is status node")||a(r.preventForeignNodes&&n.tree!==s,"preventForeignNodes")||a(r.preventLazyParents&&!n.isLoaded(),"preventLazyParents")||a(r.preventNonNodes&&!i,"preventNonNodes")||a(r.preventRecursion&&(null==i?void 0:i.isAncestorOf(n)),"preventRecursion")||a(r.preventSameParent&&i&&n.parent===i.parent,"preventSameParent")||a(r.preventVoidMoves&&n===i,"preventVoidMoves"))return o.dropEffect="none",!0;o.dropEffect=this._guessDropEffect(e)||"none";let t=n._callEvent("dnd.dragEnter",{event:e,sourceNode:i});return t=this.unifyDragover(t),t?(this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect,n.setClass("wb-drop-target"),e.preventDefault(),!1):(o.dropEffect="none",!0)}if("dragover"===e.type){const t=e.clientY-this.tree.element.offsetTop;this._autoScroll(t),o.dropEffect=this._guessDropEffect(e)||"none",n._callEvent("dnd.dragOver",{event:e,sourceNode:i});const s=this._calcDropRegion(e,this.lastAllowedDropRegions);if(this.lastDropRegion=s,this.lastDropEffect=o.dropEffect,r.autoExpandMS>0&&n.isExpandable(!0)&&!n._isLoading&&Date.now()-this.lastEnterStamp>r.autoExpandMS&&!1!==n._callEvent("dnd.dragExpand",{event:e,sourceNode:i})&&n.setExpanded(),!s||this._isVoidDrop(n,i,s))return;return n.setClass("wb-drop-over","over"===s),n.setClass("wb-drop-before","before"===s),n.setClass("wb-drop-after","after"===s),e.preventDefault(),!1}if("dragleave"===e.type)n._callEvent("dnd.dragLeave",{event:e,sourceNode:i});else if("drop"===e.type){e.stopPropagation(),e.preventDefault(),this._leaveNode();const i=this.lastDropRegion;let s=null===(t=e.dataTransfer)||void 0===t?void 0:t.getData(nodeMimeType);s=s?JSON.parse(s):null;const r=this.srcNode,o=this.lastDropEffect;setTimeout((()=>{n._callEvent("dnd.drop",{event:e,region:i,suggestedDropMode:"over"===i?"appendChild":i,suggestedDropEffect:o,sourceNode:r,sourceNodeData:s})}),10)}return!1}this._leaveNode()}} /*! * Wunderbaum - drag_observer - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */class DragObserver{constructor(e){if(this.start={x:0,y:0,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1},this.dragElem=null,this.dragging=!1,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){this.dragging&&this.opts.dragstop&&e&&(e.type="dragstop",this.opts.dragstop(e)),this.dragElem=null,this.dragging=!1}handleEvent(e){const t=e.type,i=this.opts,s={type:e.type,event:e,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.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.dythis.tree.element.contains(e.dragElem),drag:e=>this.handleDrag(e),dragstop:e=>this.handleDrag(e)})}init(){super.init()}handleDrag(e){const t=Wunderbaum.getEventInfo(e.event);this.tree.log(`${e.type}(${e.dx})`,e,t)}} /*! * Wunderbaum - deferred - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) - */const NODE_PROPS=new Set(["checkbox","classes","expanded","icon","iconTooltip","key","lazy","_partsel","radiogroup","refKey","selected","statusNodeType","title","tooltip","type","unselectable"]),NODE_DICT_PROPS=new Set(NODE_PROPS);NODE_DICT_PROPS.delete("_partsel"),NODE_DICT_PROPS.delete("unselectable");class WunderbaumNode{constructor(e,t,i){var s,n;this.refKey=void 0,this.children=null,this.classes=null,this.data={},this._isLoading=!1,this._requestId=0,this._errorInfo=null,this._partsel=!1,this._partload=!1,this.subMatchCount=0,this._rowIdx=0,this._rowElem=void 0,assert(!t||t.tree===e,`Invalid parent: ${t}`),assert(!i.children,"'children' not allowed here"),this.tree=e,this.parent=t,this.key=""+(null!==(s=i.key)&&void 0!==s?s:++WunderbaumNode.sequence),this.title=""+(null!==(n=i.title)&&void 0!==n?n:"<"+this.key+">"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))NODE_PROPS.has(e)||(this.data[e]=t);t&&!this.statusNodeType&&e._registerNode(this)}toString(){return`WunderbaumNode@${this.key}<'${this.title}'>`}*[Symbol.iterator](){const e=this.children;if(e)for(let t=0,i=e.length;t=0,`options.before must be a direct child of ${this}`),this.children.splice(e,0,...o)}else this.children=o;i.update(ChangeType.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}assert(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=toSet(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:makeNodeTitleMatcher(e),i=[];return this.visit((e=>{t(e)&&i.push(e)})),i}findDirectChild(e){const t=this.children;if(!t)return null;if("string"==typeof e){for(let i=0,s=t.length;i{if(t(e))return i=e,!1})),i}findRelatedNode(e,t=!1){return this.tree.findRelatedNode(this,e,t)}*format_iter(e,t){function i(e){const t=e.parent.children;return e===t[t.length-1]}null!=t||(t=[" "," | "," ╰─ "," ├─ "]),null!=e||(e=e=>""+e);const s=s=>{const n=[e(s)];n.unshift(t[i(s)?2:3]);let r=s.parent;for(;r&&r!==this;)n.unshift(t[i(r)?0:1]),r=r.parent;return n.join("")};yield e(this);for(const e of this)yield s(e)}format(e,t){const i=[];for(const s of this.format_iter(e,t))i.push(s);return i.join("\n")}getColElem(e){var t;"string"==typeof e&&(e=this.tree.columns.findIndex((t=>t.id===e)));const i=null===(t=this._rowElem)||void 0===t?void 0:t.querySelectorAll("span.wb-col");return i?i[e]:null}getCloneList(e=!1){if(!this.refKey)return[];const t=this.tree.findByRefKey(this.refKey);return e?t:[...t].filter((e=>e!==this))}getFirstChild(){return this.children?this.children[0]:null}getLastChild(){return this.children?this.children[this.children.length-1]:null}getLevel(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}getNextSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t+1]||null}getParent(){return this.parent}getParentList(e=!1,t=!1){const i=[];let s=t?this:this.parent;for(;s;)(e||s.parent)&&i.unshift(s),s=s.parent;return i}getPath(e=!0,t="title",i="/"){let s;const n=[],r="function"==typeof t;return this.visitParents((e=>{e.parent&&(s=r?t(e):e[t],n.unshift(s))}),e),n.join(i)}getPrevSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t-1]||null}hasChildren(){if(this.lazy){if(null==this.children)return;if(0===this.children.length)return!1;if(1===this.children.length&&this.children[0].isStatusNode())return;return!0}return!(!this.children||!this.children.length)}hasClass(e){return!!this.classes&&this.classes.has(e)}isActive(){return this.tree.activeNode===this}isAncestorOf(e){return e&&e.isDescendantOf(this)}isChildOf(e){return e&&this.parent===e}isClone(){return!!this.refKey&&this.tree.findByRefKey(this.refKey).length>1}isColspan(){return!!this.getOption("colspan")}isDescendantOf(e){if(!e||e.tree!==this.tree)return!1;let t=this.parent;for(;t;){if(t===e)return!0;t===t.parent&&error(`Recursive parent link: ${t}`),t=t.parent}return!1}isExpandable(e=!1){return!(e&&this.expanded||!1===this.children)&&(null==this.children?!!this.lazy:0!==this.children.length||!!this.tree.options.emptyChildListExpandable)}isEditingTitle(){return this.tree._callMethod("edit.isEditingTitle",this)}isExpanded(){return!!this.expanded}isFirstSibling(){const e=this.parent;return!e||e.children[0]===this}isLastSibling(){const e=this.parent;return!e||e.children[e.children.length-1]===this}isLazy(){return!!this.lazy}isLoaded(){return!this.lazy||void 0!==this.hasChildren()}isLoading(){return this._isLoading}isPagingNode(){return"paging"===this.statusNodeType}isParentOf(e){return e&&e.parent===this}isPartload(){return!!this._partload}isPartsel(){return!this.selected&&!!this._partsel}isRadio(){return!!this.parent.radiogroup||"radio"===this.getOption("checkbox")}isRendered(){return!!this._rowElem}isRootNode(){return this.tree.root===this}isSelected(){return!!this.selected||!!this._partsel&&void 0}isStatusNode(){return!!this.statusNodeType}isTopLevel(){return this.tree.root===this.parent}isUnloaded(){return void 0===this.hasChildren()}isVisible(){const e="hide"===this.tree.filterMode,t=this.getParentList(!1,!1);if(e&&!this.match&&!this.subMatchCount)return!1;for(let e=0,i=t.length;ei)return void this.logWarn(`Ignored load response #${i} because #${this._requestId} is pending.`);if(this.logDebug(`Received response for load request #${i}`),null===this.parent&&null!==s)return void this.logWarn("Lazy parent node was removed while loading: discarding response.");this.setStatus(NodeStatusType.ok);const r=Date.now();this._loadSourceObject(t),l=Date.now()-r}else{if("function"==typeof e.then){const i=t.logTime(`Resolve thenable ${e}`);e=await Promise.resolve(e),t.logTimeEnd(i)}this._loadSourceObject(e),l=Date.now()-n}}catch(t){throw this.logError("Error during load()",e,t),this._callEvent("error",{error:t}),this.setStatus(NodeStatusType.error,{message:""+t}),t}finally{this._requestId=0,r=Date.now()-n,t.options.debugLevel>=3&&t.logInfo(`Load source took ${r/1e3} seconds (transfer: ${o/1e3}s, processing: ${l/1e3}s)`)}}async loadLazy(e=!1){const t=this.expanded;if(assert(this.lazy,"load() requires a lazy node"),e||this.isUnloaded())if(this.isLoading())this.logWarn("loadLazy() called while already loading: ignored.");else{this.isLoaded()&&this.resetLazy(),this.setStatus(NodeStatusType.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(NodeStatusType.ok);assert(isArray(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(NodeStatusType.ok),t?(this.expanded=!0,this.tree.update(ChangeType.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(NodeStatusType.error,{message:""+e})}}}log(...e){this.tree.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.tree.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.tree.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.tree.options.debugLevel>=3&&console.info(this.toString(),...e)}logWarn(...e){this.tree.options.debugLevel>=2&&console.warn(this.toString(),...e)}async makeVisible(e){let t;const i=new Deferred,s=[],n=this.getParentList(!1,!1),r=n.length,o=getOption(e,"noAnimation",!1),l=getOption(e,"scrollIntoView",!0);for(t=r-1;t>=0;t--){const e={noAnimation:o};s.push(n[t].setExpanded(!0,e))}return Promise.all(s).then((()=>{l&&this.tree?(this.tree.updatePendingModifications(),this.scrollIntoView().then((()=>{i.resolve()}))):i.resolve()})),i.promise()}moveTo(e,t="appendChild",i){let s;"over"===t&&(t="appendChild"),"prependChild"===t&&(e.children&&e.children.length?(t="before",e=e.children[0]):t="appendChild");const n=this.tree,r=this.parent,o="appendChild"===t?e:e.parent;if(this!==e){if(this.parent?o.isDescendantOf(this)&&error("Cannot move a node to its own descendant"):error("Cannot move system root"),o!==r&&r.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===o)return;this.parent.children=this.parent.lazy?[]:null,this.parent.expanded=!1}else s=this.parent.children.indexOf(this),assert(s>=0,"invalid source parent"),this.parent.children.splice(s,1);if(this.parent=o,o.hasChildren())switch(t){case"appendChild":o.children.push(this);break;case"before":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s,0,this);break;case"after":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s+1,0,this);break;default:error(`Invalid mode '${t}'.`)}else o.children=[this];i&&e.visit(i,!0),o===r?o.triggerModifyChild("move",this):o.triggerModifyChild("add",this),n!==e.tree&&(this.logWarn("Cross-tree moveTo is experimental!"),this.visit((t=>{t.tree=e.tree}),!0)),setTimeout((()=>{n.update(ChangeType.any)}),0)}}async navigate(e,t){e=KEY_TO_ACTION_DICT[e]||e;const i=this.findRelatedNode(e);if(!i)return this.logWarn(`Could not find related node '${e}'.`),Promise.resolve(this);try{i.makeVisible({scrollIntoView:!1})}catch(e){}return i.setFocus(),!1===(null==t?void 0:t.activate)?Promise.resolve(this):i.setActive(!0,{event:null==t?void 0:t.event})}remove(){const e=this.tree,t=this.parent.children.indexOf(this);this.triggerModify("remove"),this.parent.children.splice(t,1),this.visit((t=>{t.removeMarkup(),e._unregisterNode(t)}),!0),e.update(ChangeType.structure)}removeChildren(){var e,t;const i=this.tree;this.children&&((null===(e=i.activeNode)||void 0===e?void 0:e.isDescendantOf(this))&&i.activeNode.setActive(!1),(null===(t=i.focusNode)||void 0===t?void 0:t.isDescendantOf(this))&&i._setFocusNode(null),this.triggerModifyChild("remove",null),this.visit((e=>{i._unregisterNode(e)})),this.lazy?this.children=[]:this.children=null,this.isRootNode()||(this.expanded=!1),this.tree.update(ChangeType.structure))}removeMarkup(){this._rowElem&&(delete this._rowElem._wb_node,this._rowElem.remove(),this._rowElem=void 0)}_getRenderInfo(){const e={},t={},i=this.isColspan(),s=this._rowElem?this._rowElem.querySelectorAll("span.wb-col"):null;let n=0;for(const r of this.tree.columns)e[r.id]={id:r.id,idx:n,elem:s?s[n]:null,info:r},i||"*"===r.id||(t[r.id]=e[r.id]),n++;return{allColInfosById:e,renderColInfosById:t}}_createIcon(e,t,i,s){let n,r=this.getOption("icon");if(this._errorInfo?r=e.error:this._isLoading&&s&&(r=e.loading),!1===r)return null;"string"==typeof r||(r=this.statusNodeType?e[this.statusNodeType]:this.expanded?e.folderOpen:this.children?e.folder:this.lazy?e.folderLazy:e.doc),r?r.indexOf("<")>=0?n=elemFromHtml(r):TEST_IMG.test(r)?n=elemFromHtml(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";isPlainObject(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=elemFromHtml(`${escapeHtml(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;assert(h,"Expected unrendered node"),assert(!h||e&&e.after,"opts.after expected, unless updating"),assert(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=22*this._rowIdx+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const f=document.createElement("span");f.classList.add("wb-title"),u.appendChild(f),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){assert(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):TEST_IMG.test(e)?l.style.backgroundImage=`url('${e}')`:l.className="wb-expander "+e}if(a){let e="wb-checkbox ";this.isRadio()?(e+="wb-radio ",this.selected?e+=i.radioChecked:e+=i.radioUnchecked):this.selected?e+=i.checkChecked:this._partsel?e+=i.checkUnknown:e+=i.checkUnchecked,a.className=e}if(!e.isNew){let e=0;for(const i of r.children)i.classList.toggle("wb-active",e++===t.activeColIdx),i.classList.remove("wb-error","wb-invalid");const i=o.querySelector("i.wb-icon");i&&this._createIcon(t.iconMap,o,i,!l)}if(!1!==e.resizeCols&&!this.isColspan()){const e=r.querySelectorAll("span.wb-col");let t=0,i=0;for(const s of this.tree.columns){const n=e[t];n.style.left=`${i}px`,n.style.width=`${s._widthPx}px`,t++,i+=s._widthPx}}}_render(e){const t=Object.assign({change:ChangeType.data},e);switch(this._rowElem||(t.change=ChangeType.row),t.change){case"status":this._render_status(t);break;case"data":this._render_data(t);break;case"row":this._render_markup(t);break;default:error(`Invalid change type '${t.change}'.`)}}resetLazy(){this.removeChildren(),this.expanded=!1,this.lazy=!0,this.children=null,this.tree.update(ChangeType.structure)}toDict(e=!1,t){const i={};if(NODE_DICT_PROPS.forEach((e=>{const t=this[e];t instanceof Set?t.size&&(i[e]=Array.prototype.join.call(t.keys()," ")):(t||!1===t||0===t)&&(i[e]=t)})),isEmptyObject(this.data)||(i.data=extend({},this.data),isEmptyObject(i.data)&&delete i.data),t){const s=t(i,this);if(!1===s)return!1;"skip"===s&&(e=!1)}if(e&&isArray(this.children)){i.children=[];for(let e=0,s=this.children.length;e=0&&([s,e]=e.split("."));const n=s[e];if("function"==typeof n){const e=n.call(i,{type:"resolve",tree:i,node:this});if(void 0!==e)return e}if(void 0!==this[e])return this[e];const r=this.type?i.types[this.type]:void 0,o=r?r[e]:void 0;return void 0!==o?o:null!=n?n:t}async scrollIntoView(e){const t=Object.assign({node:this},e);return this.tree.scrollTo(t)}async setActive(e=!0,t){const i=this.tree,s=i.getActiveNode(),n=null==t?void 0:t.retrigger,r=null==t?void 0:t.focusTree,o=null==t?void 0:t.noEvents,l=null==t?void 0:t.event,a=null==t?void 0:t.colIdx,d=null==t?void 0:t.edit;if(assert(!a||i.isCellNav(),"colIdx requires cellNav"),assert(!d||null!=a,"edit requires colIdx"),!o)if(e){if(s!==this||n){if(!1===(null==s?void 0:s._callEvent("deactivate",{nextNode:this,event:l}))||!1===this._callEvent("beforeActivate",{prevNode:s,event:l}))return;i._setActiveNode(null),null==s||s.update(ChangeType.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(ChangeType.status),this.update(ChangeType.status)),this.makeVisible().then((()=>{e&&((r||d)&&(i.setFocus(),i._setFocusNode(this),i.focusNode.setFocus()),null!=a&&i.isCellNav()&&i.setColumn(a,{edit:d}),o||this._callEvent("activate",{prevNode:s,event:l}))}))}async setExpanded(e=!0,t){const{force:i,scrollIntoView:s,immediate:n}=null!=t?t:{},r=!(null==t?void 0:t.noEvents);if(!e&&this.isExpanded()&&this.getLevel()<=this.tree.getOption("minExpandLevel")&&!i)return void this.logDebug("Ignored collapse request below minExpandLevel.");if(!e==!this.expanded)return;if(r&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children&&await this.loadLazy(),this.expanded=e;const o={immediate:n};if(this.tree.update(ChangeType.structure,o),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}r&&this._callEvent("expand",{flag:e})}setFocus(e=!0){assert(!!e,"Blur is not yet implemented");const t=this.tree.focusNode;this.tree._setFocusNode(this),null==t||t.update(),this.update()}setIcon(e){this.icon=e,this.update()}setKey(e,t){throw new Error("Not yet implemented")}update(e=ChangeType.data){assert(e===ChangeType.status||e===ChangeType.data,`Invalid change type ${e}`),this.tree.update(e,this)}getSelectedNodes(e=!1){const t=[];return this.visit((i=>{if(i.selected&&(t.push(i),!0===e))return"skip"})),t}toggleSelected(e){let t=this.isSelected();return t=void 0!==t||this.isRadio()?!t:this._anySelectable(),this.setSelected(t,e)}_anySelectable(){let e=!1;return this.visit((t=>{if(!1===t.selected&&!t.unselectable&&!t.hasChildren()&&!t.parent.radiogroup)return e=!0,!1})),e}_changeSelectStatusProps(e){let t=!1;switch(e){case!1:t=this.selected||this._partsel,this.selected=!1,this._partsel=!1;break;case!0:t=!this.selected||!this._partsel,this.selected=!0,this._partsel=!0;break;case void 0:t=this.selected||!this._partsel,this.selected=!1,this._partsel=!0;break;default:error(`Invalid state: ${e}`)}return t&&this.update(),t}fixSelection3AfterClick(e){const t=!!(null==e?void 0:e.force),i=this.isSelected();this.visit((e=>{if(e.radiogroup)return"skip";!t&&e.getOption("unselectable")||e._changeSelectStatusProps(i)})),this.fixSelection3FromEndNodes()}fixSelection3FromEndNodes(e){const t=!!(null==e?void 0:e.force);assert("hier"===this.tree.options.selectMode,"expected selectMode 'hier'");const i=e=>{let s;const n=e.children;if(n&&n.length){let e=!0,t=!1;for(let s=0,r=n.length;s{let t;const i=e.children;let s=!0,n=!1;for(let e=0,r=i.length;e{this.visit((t=>{t.setSelected(e)}))})),n):(e===n||s&&!1===this._callEvent("beforeSelect",{flag:e})||(i.runWithDeferredUpdate((()=>{if(r){if(!e&&!(null==t?void 0:t.force))return n;for(const e of this.parent.children)e.selected=e===this}else this.selected=e,"hier"===o?this.fixSelection3AfterClick():"single"===o&&i.visit((e=>{e.selected=!1}))})),s&&this._callEvent("select",{flag:e})),n):n}setStatus(e,t){const i=this.tree,s=null==t?void 0:t.message,n=null==t?void 0:t.details;let r=null;const o=e=>{const t=this.children,s=t?t[0]:null;return assert(e.statusNodeType,"Not a status node"),assert(!s||!s.isStatusNode(),"Child must not be a status node"),r=this.addNode(e,"prependChild"),r.match=!0,i.update(ChangeType.structure),r};switch((()=>{const e=this.children;e&&e.length&&e[0].isStatusNode()&&e[0].remove()})(),e){case"ok":this._isLoading=!1,this._errorInfo=null;break;case"loading":this._isLoading=!0,this._errorInfo=null,this.parent?this.update(ChangeType.status):o({statusNodeType:e,title:i.options.strings.loading+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n});break;case"error":o({statusNodeType:e,title:i.options.strings.loadError+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo={message:s,details:n};break;case"noData":o({statusNodeType:e,title:s||i.options.strings.noData,checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo=null;break;default:error("invalid node status "+e)}return i.update(ChangeType.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))NODE_PROPS.has(e)||(this.data[e]=t);t&&!this.statusNodeType&&e._registerNode(this)}toString(){return`WunderbaumNode@${this.key}<'${this.title}'>`}*[Symbol.iterator](){const e=this.children;if(e)for(let t=0,i=e.length;t=0,`options.before must be a direct child of ${this}`),this.children.splice(e,0,...o)}else this.children=o;i.update(ChangeType.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}assert(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=toSet(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:makeNodeTitleMatcher(e),i=[];return this.visit((e=>{t(e)&&i.push(e)})),i}findDirectChild(e){const t=this.children;if(!t)return null;if("string"==typeof e){for(let i=0,s=t.length;i{if(t(e))return i=e,!1})),i}findRelatedNode(e,t=!1){return this.tree.findRelatedNode(this,e,t)}*format_iter(e,t){function i(e){const t=e.parent.children;return e===t[t.length-1]}null!=t||(t=[" "," | "," ╰─ "," ├─ "]),null!=e||(e=e=>""+e);const s=s=>{const n=[e(s)];n.unshift(t[i(s)?2:3]);let r=s.parent;for(;r&&r!==this;)n.unshift(t[i(r)?0:1]),r=r.parent;return n.join("")};yield e(this);for(const e of this)yield s(e)}format(e,t){const i=[];for(const s of this.format_iter(e,t))i.push(s);return i.join("\n")}getColElem(e){var t;"string"==typeof e&&(e=this.tree.columns.findIndex((t=>t.id===e)));const i=null===(t=this._rowElem)||void 0===t?void 0:t.querySelectorAll("span.wb-col");return i?i[e]:null}getCloneList(e=!1){if(!this.refKey)return[];const t=this.tree.findByRefKey(this.refKey);return e?t:[...t].filter((e=>e!==this))}getFirstChild(){return this.children?this.children[0]:null}getLastChild(){return this.children?this.children[this.children.length-1]:null}getLevel(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}getNextSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t+1]||null}getParent(){return this.parent}getParentList(e=!1,t=!1){const i=[];let s=t?this:this.parent;for(;s;)(e||s.parent)&&i.unshift(s),s=s.parent;return i}getPath(e=!0,t="title",i="/"){let s;const n=[],r="function"==typeof t;return this.visitParents((e=>{e.parent&&(s=r?t(e):e[t],n.unshift(s))}),e),n.join(i)}getPrevSibling(){const e=this.parent.children,t=e.indexOf(this);return e[t-1]||null}hasChildren(){if(this.lazy){if(null==this.children)return;if(0===this.children.length)return!1;if(1===this.children.length&&this.children[0].isStatusNode())return;return!0}return!(!this.children||!this.children.length)}hasClass(e){return!!this.classes&&this.classes.has(e)}hasFocus(){return this.tree.focusNode===this}isActive(){return this.tree.activeNode===this}isAncestorOf(e){return e&&e.isDescendantOf(this)}isChildOf(e){return e&&this.parent===e}isClone(){return!!this.refKey&&this.tree.findByRefKey(this.refKey).length>1}isColspan(){return!!this.getOption("colspan")}isDescendantOf(e){if(!e||e.tree!==this.tree)return!1;let t=this.parent;for(;t;){if(t===e)return!0;t===t.parent&&error(`Recursive parent link: ${t}`),t=t.parent}return!1}isExpandable(e=!1){return!(e&&this.expanded||!1===this.children)&&(null==this.children?!!this.lazy:0!==this.children.length||!!this.tree.options.emptyChildListExpandable)}isEditingTitle(){return this.tree._callMethod("edit.isEditingTitle",this)}isExpanded(){return!!this.expanded}isFirstSibling(){const e=this.parent;return!e||e.children[0]===this}isLastSibling(){const e=this.parent;return!e||e.children[e.children.length-1]===this}isLazy(){return!!this.lazy}isLoaded(){return!this.lazy||void 0!==this.hasChildren()}isLoading(){return this._isLoading}isPagingNode(){return"paging"===this.statusNodeType}isParentOf(e){return e&&e.parent===this}isPartload(){return!!this._partload}isPartsel(){return!this.selected&&!!this._partsel}isRadio(){return!!this.parent.radiogroup||"radio"===this.getOption("checkbox")}isRendered(){return!!this._rowElem}isRootNode(){return this.tree.root===this}isSelected(){return!!this.selected||!!this._partsel&&void 0}isStatusNode(){return!!this.statusNodeType}isTopLevel(){return this.tree.root===this.parent}isUnloaded(){return void 0===this.hasChildren()}isVisible(){const e="hide"===this.tree.filterMode,t=this.getParentList(!1,!1);if(e&&!this.match&&!this.subMatchCount)return!1;for(let e=0,i=t.length;ei)return void this.logWarn(`Ignored load response #${i} because #${this._requestId} is pending.`);if(this.logDebug(`Received response for load request #${i}`),null===this.parent&&null!==s)return void this.logWarn("Lazy parent node was removed while loading: discarding response.");this.setStatus(NodeStatusType.ok);const r=Date.now();this._loadSourceObject(t),l=Date.now()-r}else{if("function"==typeof e.then){const i=t.logTime(`Resolve thenable ${e}`);e=await Promise.resolve(e),t.logTimeEnd(i)}this._loadSourceObject(e),l=Date.now()-n}}catch(t){throw this.logError("Error during load()",e,t),this._callEvent("error",{error:t}),this.setStatus(NodeStatusType.error,{message:""+t}),t}finally{this._requestId=0,r=Date.now()-n,t.options.debugLevel>=3&&t.logInfo(`Load source took ${r/1e3} seconds (transfer: ${o/1e3}s, processing: ${l/1e3}s)`)}}async loadLazy(e=!1){const t=this.expanded;if(assert(this.lazy,"load() requires a lazy node"),e||this.isUnloaded())if(this.isLoading())this.logWarn("loadLazy() called while already loading: ignored.");else{this.isLoaded()&&this.resetLazy(),this.setStatus(NodeStatusType.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(NodeStatusType.ok);assert(isArray(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(NodeStatusType.ok),t?(this.expanded=!0,this.tree.update(ChangeType.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(NodeStatusType.error,{message:""+e})}}}log(...e){this.tree.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.tree.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.tree.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.tree.options.debugLevel>=3&&console.info(this.toString(),...e)}logWarn(...e){this.tree.options.debugLevel>=2&&console.warn(this.toString(),...e)}async makeVisible(e){let t;const i=new Deferred,s=[],n=this.getParentList(!1,!1),r=n.length,o=getOption(e,"noAnimation",!1),l=getOption(e,"scrollIntoView",!0);for(t=r-1;t>=0;t--){const e={noAnimation:o};s.push(n[t].setExpanded(!0,e))}return Promise.all(s).then((()=>{l&&this.tree?(this.tree.updatePendingModifications(),this.scrollIntoView().then((()=>{i.resolve()}))):i.resolve()})),i.promise()}moveTo(e,t="appendChild",i){let s;"over"===t&&(t="appendChild"),"prependChild"===t&&(e.children&&e.children.length?(t="before",e=e.children[0]):t="appendChild");const n=this.tree,r=this.parent,o="appendChild"===t?e:e.parent;if(this!==e){if(this.parent?o.isDescendantOf(this)&&error("Cannot move a node to its own descendant"):error("Cannot move system root"),o!==r&&r.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===o)return;this.parent.children=this.parent.lazy?[]:null,this.parent.expanded=!1}else s=this.parent.children.indexOf(this),assert(s>=0,"invalid source parent"),this.parent.children.splice(s,1);if(this.parent=o,o.hasChildren())switch(t){case"appendChild":o.children.push(this);break;case"before":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s,0,this);break;case"after":s=o.children.indexOf(e),assert(s>=0,"invalid target parent"),o.children.splice(s+1,0,this);break;default:error(`Invalid mode '${t}'.`)}else o.children=[this];i&&e.visit(i,!0),o===r?o.triggerModifyChild("move",this):o.triggerModifyChild("add",this),n!==e.tree&&(this.logWarn("Cross-tree moveTo is experimental!"),this.visit((t=>{t.tree=e.tree}),!0)),setTimeout((()=>{n.update(ChangeType.any)}),0)}}async navigate(e,t){e=KEY_TO_ACTION_DICT[e]||e;const i=this.findRelatedNode(e);if(!i)return this.logWarn(`Could not find related node '${e}'.`),Promise.resolve(this);try{i.makeVisible({scrollIntoView:!1})}catch(e){}return i.setFocus(),!1===(null==t?void 0:t.activate)?Promise.resolve(this):i.setActive(!0,{event:null==t?void 0:t.event})}remove(){const e=this.tree,t=this.parent.children.indexOf(this);this.triggerModify("remove"),this.parent.children.splice(t,1),this.visit((t=>{t.removeMarkup(),e._unregisterNode(t)}),!0),e.update(ChangeType.structure)}removeChildren(){var e,t;const i=this.tree;this.children&&((null===(e=i.activeNode)||void 0===e?void 0:e.isDescendantOf(this))&&i.activeNode.setActive(!1),(null===(t=i.focusNode)||void 0===t?void 0:t.isDescendantOf(this))&&i._setFocusNode(null),this.triggerModifyChild("remove",null),this.visit((e=>{i._unregisterNode(e)})),this.lazy?this.children=[]:this.children=null,this.isRootNode()||(this.expanded=!1),this.tree.update(ChangeType.structure))}removeMarkup(){this._rowElem&&(delete this._rowElem._wb_node,this._rowElem.remove(),this._rowElem=void 0)}_getRenderInfo(){const e={},t={},i=this.isColspan(),s=this._rowElem?this._rowElem.querySelectorAll("span.wb-col"):null;let n=0;for(const r of this.tree.columns)e[r.id]={id:r.id,idx:n,elem:s?s[n]:null,info:r},i||"*"===r.id||(t[r.id]=e[r.id]),n++;return{allColInfosById:e,renderColInfosById:t}}_createIcon(e,t,i,s){let n,r=this.getOption("icon");if(this._errorInfo?r=e.error:this._isLoading&&s&&(r=e.loading),!1===r)return null;"string"==typeof r||(r=this.statusNodeType?e[this.statusNodeType]:this.expanded?e.folderOpen:this.children?e.folder:this.lazy?e.folderLazy:e.doc),r?r.indexOf("<")>=0?n=elemFromHtml(r):TEST_IMG.test(r)?n=elemFromHtml(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";isPlainObject(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=elemFromHtml(`${escapeHtml(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;assert(h,"Expected unrendered node"),assert(!h||e&&e.after,"opts.after expected, unless updating"),assert(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=22*this._rowIdx+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const f=document.createElement("span");f.classList.add("wb-title"),u.appendChild(f),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){assert(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):TEST_IMG.test(e)?l.style.backgroundImage=`url('${e}')`:l.className="wb-expander "+e}if(a){let e="wb-checkbox ";this.isRadio()?(e+="wb-radio ",this.selected?e+=i.radioChecked:e+=i.radioUnchecked):this.selected?e+=i.checkChecked:this._partsel?e+=i.checkUnknown:e+=i.checkUnchecked,a.className=e}if(!e.isNew){let e=0;for(const i of r.children)i.classList.toggle("wb-active",e++===t.activeColIdx),i.classList.remove("wb-error","wb-invalid");const i=o.querySelector("i.wb-icon");i&&this._createIcon(t.iconMap,o,i,!l)}if(!1!==e.resizeCols&&!this.isColspan()){const e=r.querySelectorAll("span.wb-col");let t=0,i=0;for(const s of this.tree.columns){const n=e[t];n.style.left=`${i}px`,n.style.width=`${s._widthPx}px`,t++,i+=s._widthPx}}}_render(e){const t=Object.assign({change:ChangeType.data},e);switch(this._rowElem||(t.change=ChangeType.row),t.change){case"status":this._render_status(t);break;case"data":this._render_data(t);break;case"row":this._render_markup(t);break;default:error(`Invalid change type '${t.change}'.`)}}resetLazy(){this.removeChildren(),this.expanded=!1,this.lazy=!0,this.children=null,this.tree.update(ChangeType.structure)}toDict(e=!1,t){const i={};if(NODE_DICT_PROPS.forEach((e=>{const t=this[e];t instanceof Set?t.size&&(i[e]=Array.prototype.join.call(t.keys()," ")):(t||!1===t||0===t)&&(i[e]=t)})),isEmptyObject(this.data)||(i.data=extend({},this.data),isEmptyObject(i.data)&&delete i.data),t){const s=t(i,this);if(!1===s)return!1;"skip"===s&&(e=!1)}if(e&&isArray(this.children)){i.children=[];for(let e=0,s=this.children.length;e=0&&([s,e]=e.split("."));const n=s[e];if("function"==typeof n){const e=n.call(i,{type:"resolve",tree:i,node:this});if(void 0!==e)return e}if(void 0!==this[e])return this[e];const r=this.type?i.types[this.type]:void 0,o=r?r[e]:void 0;return void 0!==o?o:null!=n?n:t}async scrollIntoView(e){const t=Object.assign({node:this},e);return this.tree.scrollTo(t)}async setActive(e=!0,t){const i=this.tree,s=i.getActiveNode(),n=null==t?void 0:t.retrigger,r=null==t?void 0:t.focusTree,o=null==t?void 0:t.noEvents,l=null==t?void 0:t.event,a=null==t?void 0:t.colIdx,d=null==t?void 0:t.edit;if(assert(!a||i.isCellNav(),"colIdx requires cellNav"),assert(!d||null!=a,"edit requires colIdx"),!o)if(e){if(s!==this||n){if(!1===(null==s?void 0:s._callEvent("deactivate",{nextNode:this,event:l}))||!1===this._callEvent("beforeActivate",{prevNode:s,event:l}))return;i._setActiveNode(null),null==s||s.update(ChangeType.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update(ChangeType.status),this.update(ChangeType.status)),this.makeVisible().then((()=>{e&&((r||d)&&(i.setFocus(),i._setFocusNode(this),i.focusNode.setFocus()),null!=a&&i.isCellNav()&&i.setColumn(a,{edit:d}),o||this._callEvent("activate",{prevNode:s,event:l}))}))}async setExpanded(e=!0,t){const{force:i,scrollIntoView:s,immediate:n}=null!=t?t:{},r=!(null==t?void 0:t.noEvents);if(!e&&this.isExpanded()&&this.getLevel()<=this.tree.getOption("minExpandLevel")&&!i)return void this.logDebug("Ignored collapse request below minExpandLevel.");if(!e==!this.expanded)return;if(r&&!1===this._callEvent("beforeExpand",{flag:e}))return;e&&this.getOption("autoCollapse")&&this.collapseSiblings(t),e&&this.lazy&&null==this.children&&await this.loadLazy(),this.expanded=e;const o={immediate:n};if(this.tree.update(ChangeType.structure,o),e&&s){const e=this.getLastChild();e&&(this.tree.updatePendingModifications(),e.scrollIntoView({topNode:this}))}r&&this._callEvent("expand",{flag:e})}setFocus(e=!0){assert(!!e,"Blur is not yet implemented");const t=this.tree.focusNode;this.tree._setFocusNode(this),null==t||t.update(),this.update()}setIcon(e){this.icon=e,this.update()}setKey(e,t){throw new Error("Not yet implemented")}update(e=ChangeType.data){assert(e===ChangeType.status||e===ChangeType.data,`Invalid change type ${e}`),this.tree.update(e,this)}getSelectedNodes(e=!1){const t=[];return this.visit((i=>{if(i.selected&&(t.push(i),!0===e))return"skip"})),t}toggleSelected(e){let t=this.isSelected();return t=void 0!==t||this.isRadio()?!t:this._anySelectable(),this.setSelected(t,e)}_anySelectable(){let e=!1;return this.visit((t=>{if(!1===t.selected&&!t.unselectable&&!t.hasChildren()&&!t.parent.radiogroup)return e=!0,!1})),e}_changeSelectStatusProps(e){let t=!1;switch(e){case!1:t=this.selected||this._partsel,this.selected=!1,this._partsel=!1;break;case!0:t=!this.selected||!this._partsel,this.selected=!0,this._partsel=!0;break;case void 0:t=this.selected||!this._partsel,this.selected=!1,this._partsel=!0;break;default:error(`Invalid state: ${e}`)}return t&&this.update(),t}fixSelection3AfterClick(e){const t=!!(null==e?void 0:e.force),i=this.isSelected();this.visit((e=>{if(e.radiogroup)return"skip";!t&&e.getOption("unselectable")||e._changeSelectStatusProps(i)})),this.fixSelection3FromEndNodes()}fixSelection3FromEndNodes(e){const t=!!(null==e?void 0:e.force);assert("hier"===this.tree.options.selectMode,"expected selectMode 'hier'");const i=e=>{let s;const n=e.children;if(n&&n.length){let e=!0,t=!1;for(let s=0,r=n.length;s{let t;const i=e.children;let s=!0,n=!1;for(let e=0,r=i.length;e{this.visit((t=>{t.setSelected(e)}))})),n):(e===n||s&&!1===this._callEvent("beforeSelect",{flag:e})||(i.runWithDeferredUpdate((()=>{if(r){if(!e&&!(null==t?void 0:t.force))return n;for(const e of this.parent.children)e.selected=e===this}else this.selected=e,"hier"===o?this.fixSelection3AfterClick():"single"===o&&i.visit((e=>{e.selected=!1}))})),s&&this._callEvent("select",{flag:e})),n):n}setStatus(e,t){const i=this.tree,s=null==t?void 0:t.message,n=null==t?void 0:t.details;let r=null;const o=e=>{const t=this.children,s=t?t[0]:null;return assert(e.statusNodeType,"Not a status node"),assert(!s||!s.isStatusNode(),"Child must not be a status node"),r=this.addNode(e,"prependChild"),r.match=!0,i.update(ChangeType.structure),r};switch((()=>{const e=this.children;e&&e.length&&e[0].isStatusNode()&&e[0].remove()})(),e){case"ok":this._isLoading=!1,this._errorInfo=null;break;case"loading":this._isLoading=!0,this._errorInfo=null,this.parent?this.update(ChangeType.status):o({statusNodeType:e,title:i.options.strings.loading+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n});break;case"error":o({statusNodeType:e,title:i.options.strings.loadError+(s?" ("+s+")":""),checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo={message:s,details:n};break;case"noData":o({statusNodeType:e,title:s||i.options.strings.noData,checkbox:!1,colspan:!0,tooltip:n}),this._isLoading=!1,this._errorInfo=null;break;default:error("invalid node status "+e)}return i.update(ChangeType.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s{const r=t._callEvent(e,n);Promise.resolve(r).then((e=>{i(e)})).catch((e=>{s(e)}))})).then((e=>{if(!s.checkValidity())throw t.logWarn("inputElem.checkValidity() failed: throwing...."),new ValidationError(s.validationMessage);return e})).catch((n=>{if(!(n instanceof ValidationError))throw t.logError(`Error in ${e} event handler (throw e.util.ValidationError instead if this was intended)`,n),i.classList.add("wb-error"),n;t.logWarn("catched ",n),i.classList.add("wb-invalid"),s.setCustomValidity&&!s.validationMessage&&s.setCustomValidity(n.message),s.validationMessage&&s.reportValidity()})).finally((()=>{i.classList.remove("wb-busy")}))}_onChange(e){const t=Wunderbaum.getEventInfo(e),i=t.node,s=t.colElem;i&&0!==t.colIdx?this._applyChange("change",i,s,e.target,{info:t,event:e,inputElem:e.target,inputValue:Wunderbaum.util.getValueFromElem(e.target),inputValid:e.target.checkValidity()}):this.tree.log("Ignored change event for removed element or node title")}init(){super.init(),onEvent(this.tree.element,"change",".contenteditable,input,textarea,select",(e=>this._onChange(e)))}_preprocessKeyEvent(e){const t=e.event,i=eventToString(t),s=this.tree,n=this.getPluginOption("trigger");if(this.isEditingTitle()){switch(i){case"Enter":return this._stopEditTitle(!0,{event:t}),!1;case"Escape":return this._stopEditTitle(!1,{event:t}),!1}return!1}if(s.isRowNav()||0===s.activeColIdx){switch(i){case"Enter":if(n.indexOf("macEnter")>=0&&isMac)return this.startEditTitle(),!1;break;case"F2":if(n.indexOf("F2")>=0)return this.startEditTitle(),!1}return!0}return!0}isEditingTitle(e){return e?this.curEditNode===e:!!this.curEditNode}startEditTitle(e){e=null!=e?e:this.tree.getActiveNode();const t=this.getPluginOption("validity"),i=this.getPluginOption("select");if(!e)return;this.tree.logDebug(`startEditTitle(node=${e})`);let s=e._callEvent("edit.beforeEdit");if(!1===s)return void e.logDebug("beforeEdit canceled operation.");if(!0===s||!s){const t=escapeHtml(e.title);let i=this.getPluginOption("maxlength");const n=i?` maxlength="${i}"`:"";i=this.getPluginOption("minlength");s=`0?" required":""}${i?` minlength="${i}"`:""}${n} >`}const n=e.getColElem(0).querySelector(".wb-title");n.innerHTML=s;const r=n.firstElementChild;t&&r.addEventListener("keydown",(t=>{r.setCustomValidity(""),r.reportValidity()||e.logWarn(`Invalid input: '${r.value}'`)})),r.focus(),i&&r.select(),this.curEditNode=e,e._callEvent("edit.edit",{inputElem:r})}stopEditTitle(e){return this._stopEditTitle(e,{})}_stopEditTitle(e,t){var i;null!=t||(t={});const s=document.activeElement;let n=s?getValueFromElem(s):null;const r=this.curEditNode,o=!!t.forceClose,l=this.getPluginOption("validity");if(n&&this.getPluginOption("trim")&&(n=n.trim()),r)if(r.logDebug(`stopEditTitle(${e})`,t,s,n),e&&null!==n&&n!==r.title){const e=s.validationMessage;if(e)throw new Error(`Input validation failed for "${n}": ${e}.`);const t=r.getColElem(0);this._applyChange("edit.apply",r,t,s,{oldValue:r.title,newValue:n,inputElem:s,inputValid:s.checkValidity()}).then((e=>{var t;const i=s.validationMessage;if(l&&i&&!1!==e)throw new Error(`Edit apply validation failed for "${n}": ${i}.`);(o||!1!==e)&&(null==r||r.setTitle(n),null===(t=this.curEditNode)||void 0===t||t._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus())}))}else null===(i=this.curEditNode)||void 0===i||i._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus();else this.tree.logDebug("stopEditTitle: not in edit mode.")}createNode(e="after",t,i){const s=this.tree;if(assert(t=null!=t?t:s.getActiveNode(),"No node was passed, or no node is currently active."),e=e||"prependChild",null==i?i={title:""}:"string"==typeof i?i={title:i}:assert(isPlainObject(i),`Expected a plain object: ${i}`),("prependChild"===e||"appendChild"===e)&&(null==t?void 0:t.isExpandable(!0)))return void t.setExpanded().then((()=>{this.createNode(e,t,i)}));const n=t.addNode(i,e);n.setClass("wb-edit-new"),this.relatedNode=t,n.match=!0,n.makeVisible({noAnimation:!0}).then((()=>{this.startEditTitle(n)}))}} /*! @@ -76,11 +76,11 @@ class EditExtension extends WunderbaumExtension{constructor(e){super(e,"edit",{d * * A treegrid control. * - * Copyright (c) 2021-2023, Martin Wendt (https://wwWendt.de). + * Copyright (c) 2021-2024, Martin Wendt (https://wwWendt.de). * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.8.4 - * @date Wed, 01 May 2024 06:13:52 GMT - */class WbSystemRoot extends WunderbaumNode{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class Wunderbaum{get activeNode(){var e;return(null===(e=this._activeNode)||void 0===e?void 0:e.tree)?this._activeNode:null}get focusNode(){var e;return(null===(e=this._focusNode)||void 0===e?void 0:e.tree)?this._focusNode:null}constructor(e){this.enabled=!0,this.data={},this.extensionList=[],this.extensions={},this.keyMap=new Map,this.refKeyMap=new Map,this.treeRowCount=0,this._disableUpdateCount=0,this._disableUpdateIgnoreCount=0,this._activeNode=null,this._focusNode=null,this.types={},this.columns=[],this._columnsById={},this.pendingChangeTypes=new Set,this._util=util,this.filterMode=null,this.activeColIdx=0,this._cellNavMode=!1,this.lastQuicksearchTime=0,this.lastQuicksearchTerm="",this.lastClickTime=0;const t=this.options=extend({id:null,source:null,element:null,debugLevel:3,header:null,rowHeightPx:22,iconMap:"bootstrap",columns:null,types:null,enabled:!0,fixedCol:!1,showSpinner:!1,checkbox:!1,minExpandLevel:0,emptyChildListExpandable:!1,skeleton:!1,connectTopBreadcrumb:null,selectMode:"multi",navigationModeOption:null,quicksearch:!0,iconBadge:null,change:null,error:null,receive:null,strings:{loadError:"Error",loading:"Loading...",noData:"No data"}},e),i=new Deferred;this.ready=i.promise();let s=!1;if(this.ready.then((()=>{s=!0;try{this._callEvent("init")}catch(e){this.logError("Exception inside `init(e)` event:",e)}})).catch((e=>{if(s)throw e;this._callEvent("init",{error:e})})),this.id=t.id||"wb_"+ ++Wunderbaum.sequence,this.root=new WbSystemRoot(this),this._registerExtension(new KeynavExtension(this)),this._registerExtension(new EditExtension(this)),this._registerExtension(new FilterExtension(this)),this._registerExtension(new DndExtension(this)),this._registerExtension(new GridExtension(this)),this._registerExtension(new LoggerExtension(this)),this._updateViewportThrottled=adaptiveThrottle(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=elemFromSelector(t.element),assert(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){assert(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(NavModeEnum.cell):this.setNavigationOption(NavModeEnum.row):this.setNavigationOption(t.navigationModeOption),this.update(ChangeType.structure,{immediate:!0}),i.resolve()})).catch((e=>{i.reject(e)})).finally((()=>{var e;null===(e=this.element.querySelector("progress.spinner"))||void 0===e||e.remove(),this.element.classList.remove("wb-initializing")}))):i.resolve(),this.update(ChangeType.any),this.element.addEventListener("scroll",(e=>{this.update(ChangeType.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(ChangeType.resize)})),this.resizeObserver.observe(this.element),onEvent(this.nodeListElement,"click","div.wb-row",(t=>{const i=Wunderbaum.getEventInfo(t),s=i.node,n=t;if(!1===this._callEvent("click",{event:t,node:s,info:i}))return this.lastClickTime=Date.now(),!1;if(s){if(n.ctrlKey)return void s.toggleSelected();const r=this.getOption("edit.trigger"),o=this.getOption("edit.slowClickDelay");r.indexOf("clickActive")>=0&&"title"===i.region&&s.isActive()&&(!o||Date.now()-this.lastClickTime=0?s.setActive(!0,{colIdx:i.colIdx,event:t}):s.setActive(!0,{event:t}),i.region===NodeRegion.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===NodeRegion.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),onEvent(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=Wunderbaum.getEventInfo(e),i=t.node;if(!1===this._callEvent("dblclick",{event:e,node:i,info:t}))return!1;i&&0===t.colIdx&&i.isExpandable()&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),onEvent(this.element,"keydown",(e=>{const t=Wunderbaum.getEventInfo(e),i=eventToString(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),onEvent(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=Wunderbaum.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===NavModeEnum.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof Wunderbaum)return e;if(e instanceof WunderbaumNode)return e.tree;if(void 0===e&&(e=0),"number"==typeof e)e=document.querySelectorAll(".wunderbaum")[e];else if("string"==typeof e){for(const t of document.querySelectorAll(".wunderbaum")){const i=t._wb_tree;if(i&&i.id===e)return i}if(!(e=document.querySelector(e)))return null}else e.target&&(e=e.target);return assert(e instanceof Element,`Invalid el type: ${e}`),e.matches(".wunderbaum")||(e=e.closest(".wunderbaum")),e&&e._wb_tree?e._wb_tree:null}get iconMap(){const e=this.options.iconMap;return"string"==typeof e?iconMaps[e]:e}static getNode(e){if(!e)return null;if(e instanceof WunderbaumNode)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;assert(null!=t,`Missing key: '${e}'.`),assert(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=extend({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,extend({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/22):Math.floor(t/22),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/22)-1:Math.ceil((s+n)/22)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof WunderbaumNode?s=t:(s=this.getActiveNode(),assert(void 0===i,`Unexpected options: ${i}`),i=t),e){case"moveUp":n=s.getPrevSibling(),n&&(s.moveTo(n,"before"),s.setActive());break;case"moveDown":n=s.getNextSibling(),n&&(s.moveTo(n,"after"),s.setActive());break;case"indent":n=s.getPrevSibling(),n&&(s.moveTo(n,"appendChild"),n.setExpanded(),s.setActive());break;case"outdent":s.isTopLevel()||(s.moveTo(s.getParent(),"after"),s.setActive());break;case"remove":n=s.getPrevSibling()||s.getParent(),s.remove(),n&&n.setActive();break;case"addChild":this._callMethod("edit.createNode","prependChild");break;case"addSibling":this._callMethod("edit.createNode","after");break;case"rename":s.startEditTitle();break;case"down":case"first":case"last":case"left":case"pageDown":case"pageUp":case"parent":case"right":case"up":return s.navigate(e);default:error(`Unhandled command: '${e}'`)}}clear(){this.root.removeChildren(),this.root.children=null,this.keyMap.clear(),this.refKeyMap.clear(),this.treeRowCount=0,this._activeNode=null,this._focusNode=null,this.update(ChangeType.structure)}destroy(){this.logInfo("destroy()..."),this.clear(),this.resizeObserver.disconnect(),this.element.innerHTML="",this.element.outerHTML=this.element.outerHTML}getOption(e,t){let i,s=this.options;e.indexOf(".")>=0&&([i,e]=e.split("."),s=s[i]);let n=s[e];return"function"==typeof n&&(n=n({type:"resolve",tree:this})),null!=n?n:t}setOption(e,t){if(e.indexOf(".")>=0){const i=e.split(".");this.extensions[i[0]].setPluginOption(i[1],t)}else switch(this.options[e]=t,e){case"checkbox":this.update(ChangeType.any);break;case"enabled":this.setEnabled(!!t);break;case"fixedCol":this.element.classList.toggle("wb-fixed-col",!!t)}}hasFocus(){return this.element.contains(document.activeElement)}hasHeader(){const e=this.options.header;return this.isGrid()?!1!==e:!!e}runWithDeferredUpdate(e,t=null){try{this.enableUpdate(!1);const t=e();return assert(!(t instanceof Promise),`Promise return not allowed: ${t}`),t}finally{this.enableUpdate(!0)}}async expandAll(e=!0,t){await this.root.expandAll(e,t)}selectAll(e=!0){return this.root.setSelected(e,{propagateDown:!0})}toggleSelect(){this.selectAll(this.root._anySelectable())}getSelectedNodes(e=!1){return this.root.getSelectedNodes(e)}_selectRange(e){this.logDebug("_selectRange",e),error("Not yet implemented.")}count(e=!1){return e?this.treeRowCount:this.keyMap.size}_check(){let e=0;this.visit((t=>{e++})),this.keyMap.size!==e&&this.logWarn(`_check failed: ${this.keyMap.size} !== ${e}`)}findAll(e){return this.root.findAll(e)}findByRefKey(e){const t=this.refKeyMap.get(e);return t?Array.from(t):[]}findFirst(e){return this.root.findFirst(e)}findKey(e){return this.keyMap.get(e)||null}findNextNode(e,t){let i=null;const s=this.getFirstChild(),n="string"==typeof e?makeNodeTitleStartMatcher(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/22);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=Wunderbaum.getNode(t),r=n?n.tree:Wunderbaum.getTree(e),o={event:e,canonicalName:eventToString(e),tree:r,node:n,region:NodeRegion.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=NodeRegion.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?NodeRegion.expander:NodeRegion.prefix;else if(i.contains("wb-checkbox"))o.region=NodeRegion.checkbox;else if(i.contains("wb-icon"))o.region=NodeRegion.icon;else if(i.contains("wb-node"))o.region=NodeRegion.title;else if(s){o.region=NodeRegion.column;const e=Array.prototype.indexOf.call(s.parentNode.children,s);o.colIdx=e}else{if(!i.contains("wb-row"))return"mousemove"===e.type||e instanceof KeyboardEvent||null==r||r.logWarn("getEventInfo(): not found",e,o),o;o.region=NodeRegion.title}return-1===o.colIdx&&(o.colIdx=0),o.colDef=null==r?void 0:r.columns[o.colIdx],null!=o.colDef&&(o.colId=o.colDef.id),o}toString(){return`Wunderbaum<'${this.id}'>`}isEditing(){return!!this.nodeListElement.querySelector("input:focus,select:focus")}isEditingTitle(){return this._callMethod("edit.isEditingTitle")}isLoading(){let e=!1;return this.root.visit((t=>{if(t._isLoading||t._requestId)return e=!0,!1}),!0),e}log(...e){this.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.options.debugLevel>=3&&console.info(this.toString(),...e)}logTime(e){return this.options.debugLevel>=4&&console.time(this+": "+e),e}logTimeEnd(e){this.options.debugLevel>=4&&console.timeEnd(this+": "+e)}logWarn(...e){this.options.debugLevel>=2&&console.warn(this.toString(),...e)}scrollTo(e){let t,i;e instanceof WunderbaumNode?t=e:(i=e,t=i.node),assert(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=22*t._rowIdx+n,a=n,d=l-r,c=d+22,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+22-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(assert(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;assert((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(assert(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update(ChangeType.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===NavModeEnum.row)switch(this.options.navigationModeOption=e,e){case NavModeEnum.cell:this.setCellNav(!0);break;case NavModeEnum.row:this.setCellNav(!1);break;case NavModeEnum.startCell:t&&this.setCellNav(!0);break;case NavModeEnum.startRow:t&&this.setCellNav(!1);break;default:error(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){assert(isPlainObject(e),`Expected plain objext: ${e}`),t?this.types=e:extend(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=toSet(e.classes))}sortChildren(e=nodeTitleSorter,t=!1){this.root.sortChildren(e,t)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else error(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_renderHeaderMarkup(){assert(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(setElemDisplay(this.headerElement,e),!e)return;const t=this.columns.length,i=this.headerElement.querySelector(".wb-row");assert(i,"Expected a row in header element"),i.innerHTML="".repeat(t);for(let e=0;e${r}${l}`,this.isCellNav()&&n.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=RenderFlag,i=new Set(this.pendingChangeTypes);this.pendingChangeTypes.clear();if(i.has(t.scroll)&&1===i.size)this._updateRows({newNodesOnly:!0});else{if(this.log("_updateViewportImmediately():",i),!1!==this.options.adjustHeight){let e=this.listContainerElement.clientHeight;const t=this.headerElement.clientHeight,i=this.element.clientHeight-t-1;Math.abs(e-i)>1&&(this.listContainerElement.style.height=i+"px",e=i)}i.has(t.clearMarkup)&&this.visit((e=>{e.removeMarkup()})),i.has(t.header)&&(this._updateColumnWidths(),this._renderHeaderMarkup()),this._updateRows()}if(this.options.connectTopBreadcrumb){let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=22*l+"px",c=i):(o.delete(e),i&&(i.style.top=22*l+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,assert(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),assert(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(assert(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update(ChangeType.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}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.8.4",Wunderbaum.util=util;export{Wunderbaum}; + * @version v0.9.0 + * @date Sun, 05 May 2024 16:08:56 GMT + */class WbSystemRoot extends WunderbaumNode{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class Wunderbaum{get activeNode(){var e;return(null===(e=this._activeNode)||void 0===e?void 0:e.tree)?this._activeNode:null}get focusNode(){var e;return(null===(e=this._focusNode)||void 0===e?void 0:e.tree)?this._focusNode:null}constructor(e){this.enabled=!0,this.data={},this.extensionList=[],this.extensions={},this.keyMap=new Map,this.refKeyMap=new Map,this.treeRowCount=0,this._disableUpdateCount=0,this._disableUpdateIgnoreCount=0,this._activeNode=null,this._focusNode=null,this.types={},this.columns=[],this._columnsById={},this.pendingChangeTypes=new Set,this._util=util,this.filterMode=null,this.activeColIdx=0,this._cellNavMode=!1,this.lastQuicksearchTime=0,this.lastQuicksearchTerm="",this.lastClickTime=0;const t=this.options=extend({id:null,source:null,element:null,debugLevel:3,header:null,rowHeightPx:22,iconMap:"bootstrap",columns:null,types:null,enabled:!0,fixedCol:!1,showSpinner:!1,checkbox:!1,minExpandLevel:0,emptyChildListExpandable:!1,skeleton:!1,connectTopBreadcrumb:null,selectMode:"multi",navigationModeOption:null,quicksearch:!0,iconBadge:null,change:null,error:null,receive:null,strings:{loadError:"Error",loading:"Loading...",noData:"No data"}},e),i=new Deferred;this.ready=i.promise();let s=!1;if(this.ready.then((()=>{s=!0;try{this._callEvent("init")}catch(e){this.logError("Exception inside `init(e)` event:",e)}})).catch((e=>{if(s)throw e;this._callEvent("init",{error:e})})),this.id=t.id||"wb_"+ ++Wunderbaum.sequence,this.root=new WbSystemRoot(this),this._registerExtension(new KeynavExtension(this)),this._registerExtension(new EditExtension(this)),this._registerExtension(new FilterExtension(this)),this._registerExtension(new DndExtension(this)),this._registerExtension(new GridExtension(this)),this._registerExtension(new LoggerExtension(this)),this._updateViewportThrottled=adaptiveThrottle(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=elemFromSelector(t.element),assert(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){assert(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(NavModeEnum.cell):this.setNavigationOption(NavModeEnum.row):this.setNavigationOption(t.navigationModeOption),this.update(ChangeType.structure,{immediate:!0}),i.resolve()})).catch((e=>{i.reject(e)})).finally((()=>{var e;null===(e=this.element.querySelector("progress.spinner"))||void 0===e||e.remove(),this.element.classList.remove("wb-initializing")}))):i.resolve(),this.update(ChangeType.any),this.element.addEventListener("scroll",(e=>{this.update(ChangeType.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update(ChangeType.resize)})),this.resizeObserver.observe(this.element),onEvent(this.nodeListElement,"click","div.wb-row",(t=>{const i=Wunderbaum.getEventInfo(t),s=i.node,n=t;if(!1===this._callEvent("click",{event:t,node:s,info:i}))return this.lastClickTime=Date.now(),!1;if(s){if(n.ctrlKey)return void s.toggleSelected();const r=this.getOption("edit.trigger"),o=this.getOption("edit.slowClickDelay");r.indexOf("clickActive")>=0&&"title"===i.region&&s.isActive()&&(!o||Date.now()-this.lastClickTime=0?s.setActive(!0,{colIdx:i.colIdx,event:t}):s.setActive(!0,{event:t}),i.region===NodeRegion.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===NodeRegion.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),onEvent(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=Wunderbaum.getEventInfo(e),i=t.node;if(!1===this._callEvent("dblclick",{event:e,node:i,info:t}))return!1;i&&0===t.colIdx&&i.isExpandable()&&(this._callMethod("edit._stopEditTitle"),i.setExpanded(!i.isExpanded()))})),onEvent(this.element,"keydown",(e=>{const t=Wunderbaum.getEventInfo(e),i=eventToString(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),onEvent(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=Wunderbaum.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===NavModeEnum.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof Wunderbaum)return e;if(e instanceof WunderbaumNode)return e.tree;if(void 0===e&&(e=0),"number"==typeof e)e=document.querySelectorAll(".wunderbaum")[e];else if("string"==typeof e){for(const t of document.querySelectorAll(".wunderbaum")){const i=t._wb_tree;if(i&&i.id===e)return i}if(!(e=document.querySelector(e)))return null}else e.target&&(e=e.target);return assert(e instanceof Element,`Invalid el type: ${e}`),e.matches(".wunderbaum")||(e=e.closest(".wunderbaum")),e&&e._wb_tree?e._wb_tree:null}get iconMap(){const e=this.options.iconMap;return"string"==typeof e?iconMaps[e]:e}static getNode(e){if(!e)return null;if(e instanceof WunderbaumNode)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;assert(null!=t,`Missing key: '${e}'.`),assert(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=extend({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,extend({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/22):Math.floor(t/22),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/22)-1:Math.ceil((s+n)/22)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof WunderbaumNode?s=t:(s=this.getActiveNode(),assert(void 0===i,`Unexpected options: ${i}`),i=t),e){case"moveUp":n=s.getPrevSibling(),n&&(s.moveTo(n,"before"),s.setActive());break;case"moveDown":n=s.getNextSibling(),n&&(s.moveTo(n,"after"),s.setActive());break;case"indent":n=s.getPrevSibling(),n&&(s.moveTo(n,"appendChild"),n.setExpanded(),s.setActive());break;case"outdent":s.isTopLevel()||(s.moveTo(s.getParent(),"after"),s.setActive());break;case"remove":n=s.getPrevSibling()||s.getParent(),s.remove(),n&&n.setActive();break;case"addChild":this._callMethod("edit.createNode","prependChild");break;case"addSibling":this._callMethod("edit.createNode","after");break;case"rename":s.startEditTitle();break;case"down":case"first":case"last":case"left":case"pageDown":case"pageUp":case"parent":case"right":case"up":return s.navigate(e);default:error(`Unhandled command: '${e}'`)}}clear(){this.root.removeChildren(),this.root.children=null,this.keyMap.clear(),this.refKeyMap.clear(),this.treeRowCount=0,this._activeNode=null,this._focusNode=null,this.update(ChangeType.structure)}destroy(){this.logInfo("destroy()..."),this.clear(),this.resizeObserver.disconnect(),this.element.innerHTML="",this.element.outerHTML=this.element.outerHTML}getOption(e,t){let i,s=this.options;e.indexOf(".")>=0&&([i,e]=e.split("."),s=s[i]);let n=s[e];return"function"==typeof n&&(n=n({type:"resolve",tree:this})),null!=n?n:t}setOption(e,t){if(e.indexOf(".")>=0){const i=e.split(".");this.extensions[i[0]].setPluginOption(i[1],t)}else switch(this.options[e]=t,e){case"checkbox":this.update(ChangeType.any);break;case"enabled":this.setEnabled(!!t);break;case"fixedCol":this.element.classList.toggle("wb-fixed-col",!!t)}}hasFocus(){return this.element.contains(document.activeElement)}hasHeader(){const e=this.options.header;return this.isGrid()?!1!==e:!!e}runWithDeferredUpdate(e,t=null){try{this.enableUpdate(!1);const t=e();return assert(!(t instanceof Promise),`Promise return not allowed: ${t}`),t}finally{this.enableUpdate(!0)}}async expandAll(e=!0,t){await this.root.expandAll(e,t)}selectAll(e=!0){return this.root.setSelected(e,{propagateDown:!0})}toggleSelect(){this.selectAll(this.root._anySelectable())}getSelectedNodes(e=!1){return this.root.getSelectedNodes(e)}_selectRange(e){this.logDebug("_selectRange",e),error("Not yet implemented.")}count(e=!1){return e?this.treeRowCount:this.keyMap.size}_check(){let e=0;this.visit((t=>{e++})),this.keyMap.size!==e&&this.logWarn(`_check failed: ${this.keyMap.size} !== ${e}`)}findAll(e){return this.root.findAll(e)}findByRefKey(e){const t=this.refKeyMap.get(e);return t?Array.from(t):[]}findFirst(e){return this.root.findFirst(e)}findKey(e){return this.keyMap.get(e)||null}findNextNode(e,t){let i=null;const s=this.getFirstChild(),n="string"==typeof e?makeNodeTitleStartMatcher(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/22);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=Wunderbaum.getNode(t),r=n?n.tree:Wunderbaum.getTree(e),o={event:e,canonicalName:eventToString(e),tree:r,node:n,region:NodeRegion.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=NodeRegion.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?NodeRegion.expander:NodeRegion.prefix;else if(i.contains("wb-checkbox"))o.region=NodeRegion.checkbox;else if(i.contains("wb-icon"))o.region=NodeRegion.icon;else if(i.contains("wb-node"))o.region=NodeRegion.title;else if(s){o.region=NodeRegion.column;const e=Array.prototype.indexOf.call(s.parentNode.children,s);o.colIdx=e}else{if(!i.contains("wb-row"))return"mousemove"===e.type||e instanceof KeyboardEvent||null==r||r.logWarn("getEventInfo(): not found",e,o),o;o.region=NodeRegion.title}return-1===o.colIdx&&(o.colIdx=0),o.colDef=null==r?void 0:r.columns[o.colIdx],null!=o.colDef&&(o.colId=o.colDef.id),o}toString(){return`Wunderbaum<'${this.id}'>`}isEditing(){return!!this.nodeListElement.querySelector("input:focus,select:focus")}isEditingTitle(){return this._callMethod("edit.isEditingTitle")}isLoading(){let e=!1;return this.root.visit((t=>{if(t._isLoading||t._requestId)return e=!0,!1}),!0),e}log(...e){this.options.debugLevel>=4&&console.log(this.toString(),...e)}logDebug(...e){this.options.debugLevel>=4&&console.debug(this.toString(),...e)}logError(...e){this.options.debugLevel>=1&&console.error(this.toString(),...e)}logInfo(...e){this.options.debugLevel>=3&&console.info(this.toString(),...e)}logTime(e){return this.options.debugLevel>=4&&console.time(this+": "+e),e}logTimeEnd(e){this.options.debugLevel>=4&&console.timeEnd(this+": "+e)}logWarn(...e){this.options.debugLevel>=2&&console.warn(this.toString(),...e)}scrollTo(e){let t,i;e instanceof WunderbaumNode?t=e:(i=e,t=i.node),assert(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=22*t._rowIdx+n,a=n,d=l-r,c=d+22,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+22-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(assert(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;assert((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(assert(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update(ChangeType.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===NavModeEnum.row)switch(this.options.navigationModeOption=e,e){case NavModeEnum.cell:this.setCellNav(!0);break;case NavModeEnum.row:this.setCellNav(!1);break;case NavModeEnum.startCell:t&&this.setCellNav(!0);break;case NavModeEnum.startRow:t&&this.setCellNav(!1);break;default:error(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){assert(isPlainObject(e),`Expected plain objext: ${e}`),t?this.types=e:extend(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=toSet(e.classes))}sortChildren(e=nodeTitleSorter,t=!1){this.root.sortChildren(e,t)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else error(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_renderHeaderMarkup(){assert(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(setElemDisplay(this.headerElement,e),!e)return;const t=this.columns.length,i=this.headerElement.querySelector(".wb-row");assert(i,"Expected a row in header element"),i.innerHTML="".repeat(t);for(let e=0;e${r}${l}`,this.isCellNav()&&n.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=RenderFlag,i=new Set(this.pendingChangeTypes);this.pendingChangeTypes.clear();if(i.has(t.scroll)&&1===i.size)this._updateRows({newNodesOnly:!0});else{if(this.log("_updateViewportImmediately():",i),!1!==this.options.adjustHeight){let e=this.listContainerElement.clientHeight;const t=this.headerElement.clientHeight,i=this.element.clientHeight-t-1;Math.abs(e-i)>1&&(this.listContainerElement.style.height=i+"px",e=i)}i.has(t.clearMarkup)&&this.visit((e=>{e.removeMarkup()})),i.has(t.header)&&(this._updateColumnWidths(),this._renderHeaderMarkup()),this._updateRows()}if(this.options.connectTopBreadcrumb){let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=22*l+"px",c=i):(o.delete(e),i&&(i.style.top=22*l+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,assert(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),assert(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(assert(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update(ChangeType.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}countMatches(){return this.extensions.filter.countMatches()}filterBranches(e,t){return this.extensions.filter.filterBranches(e,t)}clearFilter(){return this.extensions.filter.clearFilter()}isFilterActive(){return!!this.filterMode}updateFilter(){return this.extensions.filter.updateFilter()}}Wunderbaum.sequence=0,Wunderbaum.version="v0.9.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 1ebdf732..41541b25 100644 --- a/dist/wunderbaum.esm.min.js.map +++ b/dist/wunderbaum.esm.min.js.map @@ -1 +1 @@ -{"version":3,"file":"wunderbaum.esm.js","names":["freeGlobal","global","Object","freeGlobalThis","globalThis","freeSelf","self","root","Function","isObject","value","type","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","requestAnimationFrame","TypeError","invokeFunc","time","args","thisArg","undefined","apply","startTimer","pendingFunc","cancelAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","Date","now","trailingEdge","timeSinceLastInvoke","timeWaiting","Math","min","remainingWait","debounced","isInvoking","this","leadingEdge","max","cancel","id","clearTimeout","cancelTimer","flush","pending","throttle","MOUSE_BUTTONS","MAX_INT","userInfo","_getUserInfo","isMac","REX_HTML","REX_TOOLTIP","ENTITY_MAP","ValidationError","Error","constructor","message","super","name","Deferred$1","thens","catches","status","resolve","resolvedValue","forEach","t","reject","error","rejectedError","c","then","cb","unshift","promise","catch","assert","cond","msg","nav","navigator","test","platform","documentReady","callback","document","readyState","addEventListener","documentReadyPromise","Promise","each","obj","length","i","call","k","escapeHtml","s","replace","escapeRegex","escapeTooltip","extractHtmlText","indexOf","getValueFromElem","elem","coerce","tag","tagName","classList","contains","span","embeddedInput","querySelector","innerText","input","indeterminate","checked","valueAsDate","valueAsNumber","parentElement","setValueToElem","select","selectedIndex","setElemDisplay","flag","style","elemFromSelector","display","elemFromHtml","html","createElement","innerHTML","trim","content","firstElementChild","_IGNORE_KEYS","Set","eventToString","event","key","et","altKey","push","ctrlKey","metaKey","shiftKey","button","has","join","extend","arg","prototype","hasOwnProperty","isArray","Array","isEmptyObject","keys","isFunction","isPlainObject","toString","noop","onEvent","rootTarget","eventNames","selectorOrHandler","handlerOrNone","selector","handler","split","evn","e","target","matches","closest","overrideMethod","instance","methodName","ctx","prevSuper","prevSuperApply","prevFunc","_super","_superApply","argsArray","setTimeoutPromise","ms","err","async","sleep","toggleCheckbox","element","tristate","getOption","opts","defaultValue","ext","toSet","val","set","add","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","defaults","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","connectInput","autoApply","autoExpand","counter","fuzzy","hideExpandedCounter","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","branchMode","_opts","runWithDeferredUpdate","_applyFilterImpl","match","temp","count","prevAutoCollapse","autoCollapse","hideMode","logInfo","clearFilter","map","reduce","a","b","re","reHighlight","node","title","text","res","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","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","logDebug","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","DEFAULT_DEBUGLEVEL","ROW_HEIGHT","ICON_WIDTH","TITLE_SPAN_PAD_Y","RENDER_MAX_PREFETCH","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","makeNodeTitleStartMatcher","reMatch","nodeTitleSorter","x","y","unflattenSource","source","_b","_c","_format","_keyMap","_positional","includes","longToShort","warn","entries","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","decompressSourceData","_version","_valueMap","shortToLong","_typeList","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","n","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","dx","pageX","pageY","dragstart","GridExtension","observer","window","handleDrag","info","getEventInfo","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","statusNodeType","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","update","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","idx","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","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","colStructure","selectMode","fixSelection3FromEndNodes","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","colElem","left","_ofsPx","width","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","colDef","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","d","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasFocus","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","colId","column","KeyboardEvent","isEditing","label","timeEnd","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","Number","parseInt","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","values","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","endsWith","px","parseFloat","slice","restPx","ofsPx","minWidth","cmw","tw","_renderHeaderMarkup","colCount","headerRow","headerClasses","resizer","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.esm.js"],"mappings":"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"} \ 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","toSet","val","set","add","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","defaults","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","autoApply","autoExpand","matchBranch","connectInput","fuzzy","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","_opts","runWithDeferredUpdate","_applyFilterImpl","count","prevAutoCollapse","autoCollapse","hideMode","filterRegExp","highlightRegExp","logInfo","clearFilter","matchReString","map","reduce","a","b","logDebug","node","title","text","res","exec","highlightString","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","match","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","countMatches","n","statusNodeType","logWarn","enableUpdate","remove","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","QUICKSEARCH_DELAY","KeynavExtension","_getEmbeddedInputElem","ace","getActiveColElem","_isCurInputFocused","activate","autoActivate","curInput","inputHasFocus","navModeOption","navigationModeOption","focusNode","eventName","handled","isEnabled","_callEvent","_callMethod","currentNode","getFocusNode","getActiveNode","firstNode","getFirstChild","setActive","setFocus","isColspan","isRowNav","blur","_render","quicksearch","stamp","lastQuicksearchTime","lastQuicksearchTerm","matchNode","findNextNode","preventDefault","isActive","isExpanded","isExpandable","startCell","startRow","setCellNav","toggleSelected","navigate","curInputType","inputCanFocus","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","DEFAULT_DEBUGLEVEL","ROW_HEIGHT","ICON_WIDTH","TITLE_SPAN_PAD_Y","RENDER_MAX_PREFETCH","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","makeNodeTitleStartMatcher","reMatch","nodeTitleSorter","x","y","unflattenSource","source","_b","_c","_format","_keyMap","_positional","includes","longToShort","warn","entries","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","decompressSourceData","_version","_valueMap","shortToLong","_typeList","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","dx","pageX","pageY","dragstart","GridExtension","observer","window","handleDrag","info","getEventInfo","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","colspan","checkbox","radiogroup","selected","unselectable","_registerNode","Symbol","iterator","cl","l","typeInfo","addChildren","before","applyMinExpanLevel","_level","getLevel","nodeList","forceExpand","minExpandLevel","child","subChildren","isUnloaded","concat","findDirectChild","pos","splice","update","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","idx","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","hasFocus","other","isDescendantOf","isChildOf","isClone","andCollapsed","emptyChildListExpandable","isFirstSibling","isLastSibling","isLazy","isLoading","isPagingNode","isParentOf","isPartload","isPartsel","isRadio","isRendered","isRootNode","isSelected","isTopLevel","isVisible","hasFilter","parents","_loadSourceObject","response","setTypes","colStructure","selectMode","fixSelection3FromEndNodes","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","colElem","left","_ofsPx","width","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","colDef","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","d","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","colId","column","KeyboardEvent","isEditing","label","timeEnd","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","Number","parseInt","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","values","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","endsWith","px","parseFloat","slice","restPx","ofsPx","minWidth","cmw","tw","_renderHeaderMarkup","colCount","headerRow","headerClasses","resizer","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.esm.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/dist/wunderbaum.umd.js b/dist/wunderbaum.umd.js index 5eda52ea..1b8f9ddc 100644 --- a/dist/wunderbaum.umd.js +++ b/dist/wunderbaum.umd.js @@ -82,13 +82,7 @@ * @param {number} [wait=0] * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is * used (if available). - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param [options={}] The options object. * @returns {Function} Returns the new debounced function. * @example * @@ -266,11 +260,7 @@ * @param {number} [wait=0] * The number of milliseconds to throttle invocations to; if omitted, * `requestAnimationFrame` is used (if available). - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param [options={}] The options object. * @returns {Function} Returns the new throttled function. * @example * @@ -303,8 +293,8 @@ /*! * Wunderbaum - util - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** @module util */ /** Readable names for `MouseEvent.button` */ @@ -427,7 +417,7 @@ * Iterate over Object properties or array elements. * * @param obj `Object`, `Array` or null - * @param callback(index, item) called for every item. + * @param callback called for every item. * `this` also contains the item. * Return `false` to stop the iteration. */ @@ -1101,8 +1091,8 @@ /*! * Wunderbaum - types - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** * Possible values for {@link WunderbaumNode.update()} and {@link Wunderbaum.update()}. @@ -1165,8 +1155,8 @@ /*! * Wunderbaum - wb_extension_base - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class WunderbaumExtension { constructor(tree, id, defaults) { @@ -1224,8 +1214,8 @@ /*! * Wunderbaum - ext-filter - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const START_MARKER = "\uFFF7"; const END_MARKER = "\uFFF8"; @@ -1234,16 +1224,15 @@ class FilterExtension extends WunderbaumExtension { constructor(tree) { super(tree, "filter", { - connectInput: null, - autoApply: true, - autoExpand: false, - counter: true, - fuzzy: false, - hideExpandedCounter: true, - hideExpanders: false, - highlight: true, - leavesOnly: false, - mode: "dim", + autoApply: true, // Re-apply last filter if lazy data is loaded + autoExpand: false, // Expand all branches that contain matches while filtered + matchBranch: false, // Whether to implicitly match all children of matched nodes + connectInput: null, // Element or selector of an input control for filter query strings + fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar' + hideExpanders: false, // Hide expanders if all child nodes are hidden by filter + highlight: true, // Highlight matches by wrapping inside tags + leavesOnly: false, // Match end nodes only + mode: "dim", // Grayout unmatched nodes (pass "hide" to remove unmatched node instead) noData: true, // Display a 'no data' status node if result is empty }); this.lastFilterArgs = null; @@ -1269,33 +1258,38 @@ break; } } - _applyFilterNoUpdate(filter, branchMode, _opts) { + _applyFilterNoUpdate(filter, _opts) { return this.tree.runWithDeferredUpdate(() => { - return this._applyFilterImpl(filter, branchMode, _opts); + return this._applyFilterImpl(filter, _opts); }); } - _applyFilterImpl(filter, branchMode, _opts) { - let match, temp, count = 0; + _applyFilterImpl(filter, _opts) { + let //temp, + count = 0; const start = Date.now(); const tree = this.tree; const treeOpts = tree.options; - // escapeTitles = treeOpts.escapeTitles, const prevAutoCollapse = treeOpts.autoCollapse; + // Use default options from `tree.options.filter`, but allow to override them const opts = extend({}, treeOpts.filter, _opts); const hideMode = opts.mode === "hide"; - const leavesOnly = !!opts.leavesOnly && !branchMode; + const matchBranch = !!opts.matchBranch; + const leavesOnly = !!opts.leavesOnly && !matchBranch; + let filterRegExp; + let highlightRegExp; // Default to 'match title substring (case insensitive)' - if (typeof filter === "string") { + if (typeof filter === "string" || filter instanceof RegExp) { if (filter === "") { tree.logInfo("Passing an empty string as a filter is handled as clearFilter()."); this.clearFilter(); - return; + return 0; } if (opts.fuzzy) { + assert(typeof filter === "string", "fuzzy filter must be a string"); // See https://codereview.stackexchange.com/questions/23899/faster-javascript-fuzzy-string-matching-function/23905#23905 // and http://www.quora.com/How-is-the-fuzzy-search-algorithm-in-Sublime-Text-designed // and http://www.dustindiaz.com/autocomplete-fuzzy-matching - match = filter + const matchReString = filter .split("") // Escaping the `filter` will not work because, // it gets further split into individual characters. So, @@ -1306,12 +1300,21 @@ // the character return a + "([^" + b + "]*)" + b; }, ""); + filterRegExp = new RegExp(matchReString, "i"); + // highlightRegExp = new RegExp(escapeRegex(filter), "gi"); + } + else if (filter instanceof RegExp) { + filterRegExp = filter; + highlightRegExp = filter; } else { - match = escapeRegex(filter); // make sure a '.' is treated literally + const matchReString = escapeRegex(filter); // make sure a '.' is treated literally + filterRegExp = new RegExp(matchReString, "i"); + highlightRegExp = new RegExp(matchReString, "gi"); } - const re = new RegExp(match, "i"); - const reHighlight = new RegExp(escapeRegex(filter), "gi"); + tree.logDebug(`Filtering nodes by '${filterRegExp}'`); + // const re = new RegExp(match, "i"); + // const reHighlight = new RegExp(escapeRegex(filter), "gi"); filter = (node) => { if (!node.title) { return false; @@ -1319,34 +1322,25 @@ // let text = escapeTitles ? node.title : extractHtmlText(node.title); const text = node.title; // `.match` instead of `.test` to get the capture groups - const res = text.match(re); + // const res = text.match(filterRegExp); + const res = filterRegExp.exec(text); if (res && opts.highlight) { - // if (escapeTitles) { + let highlightString; if (opts.fuzzy) { - temp = _markFuzzyMatchedChars(text, res, true); + highlightString = _markFuzzyMatchedChars(text, res, true); } else { // #740: we must not apply the marks to escaped entity names, e.g. `"` // Use some exotic characters to mark matches: - temp = text.replace(reHighlight, function (s) { + highlightString = text.replace(highlightRegExp, function (s) { return START_MARKER + s + END_MARKER; }); } // now we can escape the title... - node.titleWithHighlight = escapeHtml(temp) + node.titleWithHighlight = escapeHtml(highlightString) // ... and finally insert the desired `` tags .replace(RE_START_MARKER, "") .replace(RE_END_MARTKER, ""); - // } else { - // if (opts.fuzzy) { - // node.titleWithHighlight = _markFuzzyMatchedChars(text, res); - // } else { - // node.titleWithHighlight = text.replace(reHighlight, function (s) { - // return "" + s + ""; - // }); - // } - // } - // node.debug("filter", escapeTitles, text, node.titleWithHighlight); } return !!res; }; @@ -1383,7 +1377,7 @@ return "skip"; } let matchedByBranch = false; - if ((branchMode || res === "branch") && node.parent.match) { + if ((matchBranch || res === "branch") && node.parent.match) { res = true; matchedByBranch = true; } @@ -1415,20 +1409,35 @@ } } // Redraw whole tree - tree.logInfo(`Filter '${match}' found ${count} nodes in ${Date.now() - start} ms.`); + tree.logDebug(`Filter '${filter}' found ${count} nodes in ${Date.now() - start} ms.`); return count; } /** * [ext-filter] Dim or hide nodes. */ filterNodes(filter, options) { - return this._applyFilterNoUpdate(filter, false, options); + return this._applyFilterNoUpdate(filter, options); } /** * [ext-filter] Dim or hide whole branches. + * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`. */ filterBranches(filter, options) { - return this._applyFilterNoUpdate(filter, true, options); + assert(options.matchBranch === undefined, "filterBranches() is deprecated."); + options.matchBranch = true; + return this._applyFilterNoUpdate(filter, options); + } + /** + * [ext-filter] Return the number of matched nodes. + */ + countMatches() { + let n = 0; + this.tree.visit((node) => { + if (node.match && !node.statusNodeType) { + n++; + } + }); + return n; } /** * [ext-filter] Re-apply current filter. @@ -1529,8 +1538,8 @@ /*! * Wunderbaum - ext-keynav - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const QUICKSEARCH_DELAY = 500; class KeynavExtension extends WunderbaumExtension { @@ -1893,8 +1902,8 @@ /*! * Wunderbaum - ext-logger - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class LoggerExtension extends WunderbaumExtension { constructor(tree) { @@ -1935,8 +1944,8 @@ /*! * Wunderbaum - common - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script /** @@ -2011,12 +2020,12 @@ }; /** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */ const RESERVED_TREE_SOURCE_KEYS = new Set([ - "_format", - "_keyMap", - "_positional", - "_typeList", - "_valueMap", - "_version", + "_format", // reserved for future use + "_keyMap", // Used for compressed data format + "_positional", // Used for compressed data format + "_typeList", // Used for compressed data format @deprecated + "_valueMap", // Used for compressed data format + "_version", // reserved for future use "children", "columns", "types", @@ -2044,8 +2053,8 @@ Home: "firstCol", "Control+End": "last", "Control+Home": "first", - "Meta+ArrowDown": "last", - "Meta+ArrowUp": "first", + "Meta+ArrowDown": "last", // macOs + "Meta+ArrowUp": "first", // macOs "*": "expandAll", Multiply: "expandAll", PageDown: "pageDown", @@ -2258,44 +2267,44 @@ /*! * Wunderbaum - ext-dnd - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ const nodeMimeType = "application/x-wunderbaum-node"; class DndExtension extends WunderbaumExtension { constructor(tree) { super(tree, "dnd", { - autoExpandMS: 1500, + autoExpandMS: 1500, // Expand nodes after n milliseconds of hovering // dropMarkerInsertOffsetX: -16, // Additional offset for drop-marker with hitMode = "before"/"after" // dropMarkerOffsetX: -24, // Absolute position offset for .fancytree-drop-marker relatively to ..fancytree-title (icon/img near a node accepting drop) // #1021 `document.body` is not available yet // dropMarkerParent: "body", // Root Container used for drop marker (could be a shadow root) - multiSource: false, - effectAllowed: "all", - dropEffectDefault: "move", - guessDropEffect: true, - preventForeignNodes: false, - preventLazyParents: true, - preventNonNodes: false, - preventRecursion: true, - preventSameParent: false, - preventVoidMoves: true, - serializeClipboardData: true, - scroll: true, - scrollSensitivity: 20, + multiSource: false, // true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed + effectAllowed: "all", // Restrict the possible cursor shapes and modifier operations (can also be set in the dragStart event) + dropEffectDefault: "move", // Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (override in drag, dragOver). + guessDropEffect: true, // Calculate from `effectAllowed` and modifier keys) + preventForeignNodes: false, // Prevent dropping nodes from different Wunderbaum trees + preventLazyParents: true, // Prevent dropping items on unloaded lazy Wunderbaum tree nodes + preventNonNodes: false, // Prevent dropping items other than Wunderbaum tree nodes + preventRecursion: true, // Prevent dropping nodes on own descendants + preventSameParent: false, // Prevent dropping nodes under same direct parent + preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. (move only) + serializeClipboardData: true, // Serialize node data to dataTransfer object + scroll: true, // Enable auto-scrolling while dragging + scrollSensitivity: 20, // Active top/bottom margin in pixel // scrollnterval: 50, // Generate event every 50 ms - scrollSpeed: 5, + scrollSpeed: 5, // Scroll pixel per 50 ms // setTextTypeJson: false, // Allow dragging of nodes to different IE windows - sourceCopyHook: null, + sourceCopyHook: null, // Optional callback passed to `toDict` on dragStart @since 2.38 // Events (drag support) - dragStart: null, - drag: null, - dragEnd: null, + dragStart: null, // Callback(sourceNode, data), return true, to enable dnd drag + drag: null, // Callback(sourceNode, data) + dragEnd: null, // Callback(sourceNode, data) // Events (drop support) - dragEnter: null, - dragOver: null, - dragExpand: null, - drop: null, + dragEnter: null, // Callback(targetNode, data), return true, to enable dnd drop + dragOver: null, // Callback(targetNode, data) + dragExpand: null, // Callback(targetNode, data), return false to prevent autoExpand + drop: null, // Callback(targetNode, data) dragLeave: null, // Callback(targetNode, data) }); // public dropMarkerElem?: HTMLElement; @@ -2703,8 +2712,8 @@ /*! * Wunderbaum - drag_observer - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'. @@ -2839,8 +2848,8 @@ /*! * Wunderbaum - ext-grid - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class GridExtension extends WunderbaumExtension { constructor(tree) { @@ -2876,8 +2885,8 @@ /*! * Wunderbaum - deferred - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ /** * Implement a ES6 Promise, that exposes a resolve() and reject() method. @@ -2929,8 +2938,8 @@ /*! * Wunderbaum - wunderbaum_node - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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`.) @@ -3242,7 +3251,7 @@ const minExpandLevel = this.tree.options.minExpandLevel; const { depth = 99, loadLazy, force, keepActiveNodeVisible = true, } = options !== null && options !== void 0 ? options : {}; const expandOpts = { - scrollIntoView: false, + scrollIntoView: false, // don't scroll very node on iteration force: force, loadLazy: loadLazy, }; @@ -3510,7 +3519,7 @@ } /** Return a string representing the hierachical node path, e.g. "a/b/c". * @param includeSelf - * @param node property name or callback + * @param part property name or callback * @param separator */ getPath(includeSelf = true, part = "title", separator = "/") { @@ -3560,6 +3569,10 @@ hasClass(className) { return this.classes ? this.classes.has(className) : false; } + /** Return true if node ist the currently focused node. */ + hasFocus() { + return this.tree.focusNode === this; + } /** Return true if this node is the currently active tree node. */ isActive() { return this.tree.activeNode === this; @@ -3625,7 +3638,7 @@ } /** Return true if _this_ node is currently in edit-title mode. * - * See {@link Wunderbaum.startEditTitle} to check if any node is currently edited. + * See {@link WunderbaumNode.startEditTitle}. */ isEditingTitle() { return this.tree._callMethod("edit.isEditingTitle", this); @@ -4654,8 +4667,8 @@ * * The result is compatible with node.addChildren(). * - * @param include child nodes - * @param callback(dict, node) is called for every node, in order to allow + * @param recursive include child nodes + * @param callback is called for every node, in order to allow * modifications. * Return `false` to ignore this node or `"skip"` to include this node * without its children. @@ -5307,8 +5320,9 @@ * Stop iteration, if fn() returns false.
* Return false if iteration was stopped. * - * @param {function} fn the callback function. + * @param callback the callback function. * Return false to stop iteration. + * @param includeSelf include this node in the iteration. */ visitSiblings(callback, includeSelf = false) { const ac = this.parent.children; @@ -5333,8 +5347,8 @@ /*! * Wunderbaum - ext-edit - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ // const START_MARKER = "\uFFF7"; class EditExtension extends WunderbaumExtension { @@ -5343,11 +5357,11 @@ debounce: 100, minlength: 1, maxlength: null, - trigger: [], + trigger: [], //["clickActive", "F2", "macEnter"], trim: true, select: true, - slowClickDelay: 1000, - validity: true, + slowClickDelay: 1000, // Handle 'clickActive' only if last click is less than this old (0: always) + validity: true, //"Please enter a title", // --- Events --- // (note: there is also the `tree.change` event.) beforeEdit: null, @@ -5661,12 +5675,12 @@ * * A treegrid control. * - * Copyright (c) 2021-2023, Martin Wendt (https://wwWendt.de). + * Copyright (c) 2021-2024, Martin Wendt (https://wwWendt.de). * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.8.4 - * @date Wed, 01 May 2024 06:13:52 GMT + * @version v0.9.0 + * @date Sun, 05 May 2024 16:08:56 GMT */ // import "./wunderbaum.scss"; class WbSystemRoot extends WunderbaumNode { @@ -5728,6 +5742,7 @@ // /** @internal */ // public selectRangeAnchor: WunderbaumNode | null = null; // --- FILTER --- + /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */ this.filterMode = null; // --- KEYNAV --- /** @internal Use `setColumn()`/`getActiveColElem()` to access. */ @@ -5742,10 +5757,10 @@ this.lastClickTime = 0; const opts = (this.options = extend({ id: null, - source: null, - element: null, - debugLevel: DEFAULT_DEBUGLEVEL, - header: null, + source: null, // URL for GET/PUT, Ajax options, or callback + element: null, //
+ debugLevel: DEFAULT_DEBUGLEVEL, // 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose + header: null, // Show/hide header (pass bool or string) // headerHeightPx: ROW_HEIGHT, rowHeightPx: ROW_HEIGHT, iconMap: "bootstrap", @@ -5760,10 +5775,10 @@ emptyChildListExpandable: false, // updateThrottleWait: 200, skeleton: false, - connectTopBreadcrumb: null, - selectMode: "multi", + connectTopBreadcrumb: null, // HTMLElement that receives the top nodes breadcrumb + selectMode: "multi", // SelectModeType // --- KeyNav --- - navigationModeOption: null, + navigationModeOption: null, // NavModeEnum.startRow, quicksearch: true, // --- Events --- iconBadge: null, @@ -7304,7 +7319,7 @@ } /** Convert tree to an array of plain objects. * - * @param callback(dict, node) is called for every node, in order to allow + * @param callback is called for every node, in order to allow * modifications. * Return `false` to ignore this node or `"skip"` to include this node * without its children. @@ -7852,13 +7867,30 @@ * FILTER * -------------------------------------------------------------------------*/ /** - * Dim or hide nodes. + * Dim or hide unmatched nodes. + * @param filter a string to match against node titles, or a callback function. + * @param options filter options. Defaults to the `tree.options.filter` settings. + * @returns the number of nodes that match the filter. + * @example + * ```ts + * tree.filterNodes("foo", {mode: 'dim', fuzzy: true}); + * // or pass a callback + * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'}); + * ``` */ filterNodes(filter, options) { return this.extensions.filter.filterNodes(filter, options); } + /** + * Return the number of nodes that match the current filter. + * @see {@link Wunderbaum.filterNodes} + */ + countMatches() { + return this.extensions.filter.countMatches(); + } /** * Dim or hide whole branches. + * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`. */ filterBranches(filter, options) { return this.extensions.filter.filterBranches(filter, options); @@ -7884,7 +7916,7 @@ } Wunderbaum.sequence = 0; /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */ - Wunderbaum.version = "v0.8.4"; // Set to semver by 'grunt release' + Wunderbaum.version = "v0.9.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 4a8d7134..0442fbd8 100644 --- a/dist/wunderbaum.umd.min.js +++ b/dist/wunderbaum.umd.min.js @@ -6,69 +6,69 @@ */const t="object"==typeof global&&null!==global&&global.Object===Object&&global,i="object"==typeof globalThis&&null!==globalThis&&globalThis.Object==Object&&globalThis,s="object"==typeof self&&null!==self&&self.Object===Object&&self,n=i||t||s||Function("return this")();function r(e){const t=typeof e;return null!=e&&("object"===t||"function"===t)}function o(e,t=0,i={}){let s,o,l,a,d,c,h=0,u=!1,p=!1,f=!0;const g=!t&&0!==t&&"function"==typeof n.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function v(t){const i=s,n=o;return s=o=void 0,h=t,a=e.apply(n,i),a}function m(e,t){return g?(n.cancelAnimationFrame(d),n.requestAnimationFrame(e)):setTimeout(e,t)}function y(e){const i=e-c;return void 0===c||i>=t||i<0||p&&e-h>=l}function b(){const e=Date.now();if(y(e))return w(e);d=m(b,function(e){const i=e-h,s=t-(e-c);return p?Math.min(s,l-i):s}(e))}function w(e){return d=void 0,f&&s?v(e):(s=o=void 0,a)}function E(...e){const i=Date.now(),n=y(i);if(s=e,o=this,c=i,n){if(void 0===d)return function(e){return h=e,d=m(b,t),u?v(e):a}(c);if(p)return d=m(b,t),v(c)}return void 0===d&&(d=m(b,t)),a}return t=+t||0,r(i)&&(u=!!i.leading,p="maxWait"in i,l=p?Math.max(+i.maxWait||0,t):l,f="trailing"in i?!!i.trailing:f),E.cancel=function(){void 0!==d&&function(e){if(g)return n.cancelAnimationFrame(e);clearTimeout(e)}(d),h=0,s=c=o=d=void 0},E.flush=function(){return void 0===d?a:w(Date.now())},E.pending=function(){return void 0!==d},E}function l(e,t=0,i={}){let s=!0,n=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return r(i)&&(s="leading"in i?!!i.leading:s,n="trailing"in i?!!i.trailing:n),o(e,t,{leading:s,trailing:n,maxWait:t})} /*! * Wunderbaum - util - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 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 y(e){return(""+e).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function b(e){return(""+e).replace(h,(function(e){return u[e]}))}function w(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return w(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function E(e,t){const i=k(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function _(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const x=new Set(["Alt","Control","Meta","Shift"]);function k(e){return e?"string"==typeof e?document.querySelector(e):e:null}function C(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(a[e.button]+i):"wheel"===i?s.push(i):x.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 I(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function M(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function A(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function O(e,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 $,P,R,F,z,U=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:O,assert:f,debounce:o,documentReady:g,documentReadyPromise:function(){return new Promise((e=>{g(e)}))},each:function(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&v("Not implemented"),e},getOption:M,getValueFromElem:w,isArray:S,isEmptyObject:D,isFunction:function(e){return"function"==typeof e},isMac:d,isPlainObject:T,noop:function(...e){},onEvent:L,overrideMethod:I,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,toSet:A,toggleCheckbox:function(e,t,i){const s=k(e);if(f("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t},type:function(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}}); + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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 y(e){return(""+e).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function b(e){return(""+e).replace(h,(function(e){return u[e]}))}function w(e,t=!1){const i=e.tagName;let s=null;if("SPAN"===i&&e.classList.contains("wb-col")){const i=e,n=i.querySelector("input,select");if(n)return w(n,t);i.innerText=""+s}else if("INPUT"===i){const i=e;switch(i.type){case"button":case"reset":case"submit":case"image":break;case"checkbox":s=i.indeterminate?null:i.checked;break;case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":s=t?i.valueAsDate:i.value;break;case"number":case"range":s=i.valueAsNumber;break;case"radio":{const e=i.name,t=i.parentElement.querySelector(`input[name="${e}"]:checked`);s=t?t.value:void 0}break;default:s=i.value}}else if("SELECT"===i){s=e.value}return s}function E(e,t){const i=k(e).style;t?"none"===i.display&&(i.display=""):""===i.display&&(i.display="none")}function x(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}const _=new Set(["Alt","Control","Meta","Shift"]);function k(e){return e?"string"==typeof e?document.querySelector(e):e:null}function C(e){const t=e.key,i=e.type,s=[];return e.altKey&&s.push("Alt"),e.ctrlKey&&s.push("Control"),e.metaKey&&s.push("Meta"),e.shiftKey&&s.push("Shift"),"click"===i||"dblclick"===i?s.push(a[e.button]+i):"wheel"===i?s.push(i):_.has(t)||s.push(t),s.join("+")}function N(...e){for(let t=1;t{e.addEventListener(t,(function(e){if(!n)return r(e);if(e.target){let t=e.target;if(t.matches(n))return r(e);if(t=t.closest(n),t)return r(e)}}))}))}function I(e,t,i,s){let n,r;const o=s||e,l=e[t],a=(...e)=>l.apply(o,e),d=e=>l.apply(o,e);e[t]=(...e)=>{try{return n=o._super,r=o._superApply,o._super=a,o._superApply=d,i.apply(o,e)}finally{o._super=n,o._superApply=r}}}function M(e,t,i=void 0){let s;e&&t.indexOf(".")>=0&&([s,t]=t.split("."),e=e[s]);const n=e?e[t]:null;return null!=n?n:i}function A(e){if(e instanceof Set)return e;if("string"==typeof e){const t=new Set;for(const i of e.split(" "))t.add(i.trim());return t}if(Array.isArray(e))return new Set(e);throw new Error("Cannot convert to Set: "+e)}function O(e,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 $,P,R,F,z,U=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:O,assert:f,debounce:o,documentReady:g,documentReadyPromise:function(){return new Promise((e=>{g(e)}))},each:function(e,t){if(null==e)return e;const i=e.length;let s=0;if("number"==typeof i)for(;s")>=0&&v("Not implemented"),e},getOption:M,getValueFromElem:w,isArray:S,isEmptyObject:D,isFunction:function(e){return"function"==typeof e},isMac:d,isPlainObject:T,noop:function(...e){},onEvent:L,overrideMethod:I,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,toSet:A,toggleCheckbox:function(e,t,i){const s=k(e);if(f("checkbox"===s.type,`Expected a checkbox: ${s.type}`),null!=i||(i=s.classList.contains("wb-tristate")||s.indeterminate),void 0===t){switch(s.indeterminate?null:s.checked){case!0:t=!1;break;case!1:t=!i||null;break;case null:t=!0}}s.indeterminate=null==t,s.checked=!!t},type:function(e){return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/,"$1").toLowerCase()}}); /*! * Wunderbaum - types - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 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"}($||($={})),function(e){e.clearMarkup="clearMarkup",e.header="header",e.redraw="redraw",e.scroll="scroll"}(P||(P={})),function(e){e.ok="ok",e.loading="loading",e.error="error",e.noData="noData",e.paging="paging"}(R||(R={})),function(e){e.unknown="",e.checkbox="checkbox",e.column="column",e.expander="expander",e.icon="icon",e.prefix="prefix",e.title="title"}(F||(F={})),function(e){e.startRow="startRow",e.cell="cell",e.startCell="startCell",e.row="row"}(z||(z={})); /*! * Wunderbaum - wb_extension_base - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */ class V{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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) - */const q="￷",j="￸",K=new RegExp(y("￷"),"g"),H=new RegExp(y("￸"),"g");class W extends V{constructor(e){super(e,"filter",{connectInput:null,autoApply:!0,autoExpand:!1,counter:!0,fuzzy:!1,hideExpandedCounter:!0,hideExpanders:!1,highlight:!0,leavesOnly:!1,mode:"dim",noData:!0}),this.lastFilterArgs=null}init(){super.init();const e=this.getPluginOption("connectInput");e&&(this.queryInput=k(e),L(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,i){return this.tree.runWithDeferredUpdate((()=>this._applyFilterImpl(e,t,i)))}_applyFilterImpl(e,t,i){let s,n,r=0;const o=Date.now(),l=this.tree,a=l.options,d=a.autoCollapse,c=N({},a.filter,i),h="hide"===c.mode,u=!!c.leavesOnly&&!t;if("string"==typeof e){if(""===e)return l.logInfo("Passing an empty string as a filter is handled as clearFilter()."),void this.clearFilter();s=c.fuzzy?e.split("").map(y).reduce((function(e,t){return e+"([^"+t+"]*)"+t}),""):y(e);const t=new RegExp(s,"i"),i=new RegExp(y(e),"gi");e=e=>{if(!e.title)return!1;const s=e.title,r=s.match(t);return r&&c.highlight&&(n=c.fuzzy?function(e,t,i=!0){const s=[];for(let e=1;e"+n[e]+""}));return n.join("")} + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) + */const q="￷",j="￸",K=new RegExp(y("￷"),"g"),H=new RegExp(y("￸"),"g");class W extends V{constructor(e){super(e,"filter",{autoApply:!0,autoExpand:!1,matchBranch:!1,connectInput:null,fuzzy:!1,hideExpanders:!1,highlight:!0,leavesOnly:!1,mode:"dim",noData:!0}),this.lastFilterArgs=null}init(){super.init();const e=this.getPluginOption("connectInput");e&&(this.queryInput=k(e),L(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(y).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=y(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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) - */(s,r,!0):s.replace(i,(function(e){return q+e+j})),e.titleWithHighlight=m(n).replace(K,"").replace(H,"")),!!r}}return l.filterMode=c.mode,this.lastFilterArgs=arguments,l.element.classList.toggle("wb-ext-filter-hide",!!h),l.element.classList.toggle("wb-ext-filter-dim",!h),l.element.classList.toggle("wb-ext-filter-hide-expanders",!!c.hideExpanders),l.root.subMatchCount=0,l.visit((e=>{delete e.match,delete e.titleWithHighlight,e.subMatchCount=0})),l.setStatus(R.ok),a.autoCollapse=!1,l.visit((i=>{if(u&&null!=i.children)return;let s=e(i);if("skip"===s)return i.visit((function(e){e.match=!1}),!0),"skip";let n=!1;(t||"branch"===s)&&i.parent.match&&(s=!0,n=!0),s&&(r++,i.match=!0,i.visitParents((e=>{e!==i&&(e.subMatchCount+=1),!c.autoExpand||n||e.expanded||(e.setExpanded(!0,{noAnimation:!0,noEvents:!0}),e._filterAutoExpanded=!0)}),!0))})),a.autoCollapse=d,0===r&&c.noData&&h&&("string"==typeof c.noData?l.root.setStatus(R.noData,{message:c.noData}):l.root.setStatus(R.noData)),l.logInfo(`Filter '${s}' found ${r} nodes in ${Date.now()-o} ms.`),r}filterNodes(e,t){return this._applyFilterNoUpdate(e,!1,t)}filterBranches(e,t){return this._applyFilterNoUpdate(e,!0,t)}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(R.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 B extends V{constructor(e){super(e,"keynav",{})}_getEmbeddedInputElem(e){var t;let i=null;if(e&&null!=e.type)i=e;else{const e=null===(t=this.tree.getActiveColElem())||void 0===t?void 0:t.querySelector("input,select");e&&(i=e)}return i}_isCurInputFocused(){var e;return!!(null===(e=this.tree.getActiveColElem())||void 0===e?void 0:e.querySelector("input:focus,select:focus"))}onKeyEvent(e){const t=e.event,i=this.tree,s=e.options,n=!t.ctrlKey||s.autoActivate,r=this._getEmbeddedInputElem(t.target),o=r&&this._isCurInputFocused(),l=s.navigationModeOption;let a,d=C(t),c=e.node,h=!0;if(!i.isEnabled())return!1;if(!1===i._callEvent("keydown",e))return!1;if(!1===i._callMethod("edit._preprocessKeyEvent",e))return!1;if(!c){const e=i.getFocusNode()||i.getActiveNode(),t=i.getFirstChild();if(!e&&t&&"ArrowDown"===d)return t.logInfo("Keydown: activate first node."),void t.setActive();a=e||t,a&&(a.setFocus(),c=i.getFocusNode(),c.logInfo("Keydown: force focus on active node."))}const u=c.isColspan();if(i.isRowNav()){if(o){switch(d){case"Enter":r.blur(),i.setFocus();break;case"Escape":c._render(),i.setFocus()}return}if(s.quicksearch&&1===d.length&&/^\w$/.test(d)&&!r){const e=Date.now();e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=d;const s=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode());return s&&s.setActive(!0,{event:t}),void t.preventDefault()}switch(d){case"Enter":c.isActive()&&(c.isExpanded()?d="Subtract":c.isExpandable(!0)&&(d="Add"));break;case"ArrowLeft":c.expanded&&(d="Subtract");break;case"ArrowRight":if(!c.expanded&&c.isExpandable(!0))d="Add";else if(l===z.startCell||l===z.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!==z.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!==z.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(H,"")}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(R.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(R.noData,{message:l.noData}):n.root.setStatus(R.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(R.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 B extends V{constructor(e){super(e,"keynav",{})}_getEmbeddedInputElem(e){var t;let i=null;if(e&&null!=e.type)i=e;else{const e=null===(t=this.tree.getActiveColElem())||void 0===t?void 0:t.querySelector("input,select");e&&(i=e)}return i}_isCurInputFocused(){var e;return!!(null===(e=this.tree.getActiveColElem())||void 0===e?void 0:e.querySelector("input:focus,select:focus"))}onKeyEvent(e){const t=e.event,i=this.tree,s=e.options,n=!t.ctrlKey||s.autoActivate,r=this._getEmbeddedInputElem(t.target),o=r&&this._isCurInputFocused(),l=s.navigationModeOption;let a,d=C(t),c=e.node,h=!0;if(!i.isEnabled())return!1;if(!1===i._callEvent("keydown",e))return!1;if(!1===i._callMethod("edit._preprocessKeyEvent",e))return!1;if(!c){const e=i.getFocusNode()||i.getActiveNode(),t=i.getFirstChild();if(!e&&t&&"ArrowDown"===d)return t.logInfo("Keydown: activate first node."),void t.setActive();a=e||t,a&&(a.setFocus(),c=i.getFocusNode(),c.logInfo("Keydown: force focus on active node."))}const u=c.isColspan();if(i.isRowNav()){if(o){switch(d){case"Enter":r.blur(),i.setFocus();break;case"Escape":c._render(),i.setFocus()}return}if(s.quicksearch&&1===d.length&&/^\w$/.test(d)&&!r){const e=Date.now();e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=d;const s=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode());return s&&s.setActive(!0,{event:t}),void t.preventDefault()}switch(d){case"Enter":c.isActive()&&(c.isExpanded()?d="Subtract":c.isExpandable(!0)&&(d="Add"));break;case"ArrowLeft":c.expanded&&(d="Subtract");break;case"ArrowRight":if(!c.expanded&&c.isExpandable(!0))d="Add";else if(l===z.startCell||l===z.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!==z.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!==z.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;I(e,"callEvent",(function(s,n){if(t.has(s))return e._superApply(arguments);const r=Date.now(),o=e._superApply(arguments);return e.logDebug(`${i}: callEvent('${s}') took ${Date.now()-r} ms.`,arguments[1]),o}))}}onKeyEvent(e){this.tree.logDebug(`${this.prefix}: onKeyEvent()`,e)}} /*! * Wunderbaum - common - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */const Q=22,Y=new RegExp(/\.|\//),J={bootstrap:{error:"bi bi-exclamation-triangle",loading:"bi bi-chevron-right wb-busy",noData:"bi bi-question-circle",expanderExpanded:"bi bi-chevron-down",expanderCollapsed:"bi bi-chevron-right",expanderLazy:"bi bi-chevron-right wb-helper-lazy-expander",checkChecked:"bi bi-check-square",checkUnchecked:"bi bi-square",checkUnknown:"bi bi-dash-square-dotted",radioChecked:"bi bi-circle-fill",radioUnchecked:"bi bi-circle",radioUnknown:"bi bi-record-circle",folder:"bi bi-folder2",folderOpen:"bi bi-folder2-open",folderLazy:"bi bi-folder-symlink",doc:"bi bi-file-earmark"},fontawesome6:{error:"fa-solid fa-triangle-exclamation",loading:"fa-solid fa-chevron-right fa-beat",noData:"fa-solid fa-circle-question",expanderExpanded:"fa-solid fa-chevron-down",expanderCollapsed:"fa-solid fa-chevron-right",expanderLazy:"fa-solid fa-chevron-right wb-helper-lazy-expander",checkChecked:"fa-regular fa-square-check",checkUnchecked:"fa-regular fa-square",checkUnknown:"fa-regular fa-square-minus",radioChecked:"fa-solid fa-circle",radioUnchecked:"fa-regular fa-circle",radioUnknown:"fa-regular fa-circle-question",folder:"fa-solid fa-folder-closed",folderOpen:"fa-regular fa-folder-open",folderLazy:"fa-solid fa-folder-plus",doc:"fa-regular fa-file"}},X=new Set(["_format","_keyMap","_positional","_typeList","_valueMap","_version","children","columns","types"]),Z={" ":"toggleSelect","+":"expand",Add:"expand",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",Backspace:"parent","/":"collapseAll",Divide:"collapseAll",End:"lastCol",Home:"firstCol","Control+End":"last","Control+Home":"first","Meta+ArrowDown":"last","Meta+ArrowUp":"first","*":"expandAll",Multiply:"expandAll",PageDown:"pageDown",PageUp:"pageUp","-":"collapse",Subtract:"collapse"};function ee(e){return e instanceof RegExp?function(t){return e.test(t.title)}:(f("string"==typeof e,`Expected a string or RegExp: ${e}`),function(t){return t.title===e})}function te(e,t){const i=e.title.toLowerCase(),s=t.title.toLowerCase();return i===s?0:i>s?1:-1}function ie(e){let{_format:t,_version:i=1,_keyMap:s,_valueMap:n}=e;f(1===i,`Expected file version 1 instead of ${i}`);let r=s,o={};if(r)for(const[e,t]of Object.entries(r))o[t]=e;if(r&&r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),[r,o]=[o,r]}if(null!=e._typeList){const t='source._typeList is deprecated since v0.7.0: use source._valueMap: {"type": [...]} instead.';if(null!=n)throw new Error(t);console.warn(t),n={type:e._typeList},delete e._typeList}"flat"===t&&function(e){var t,i,s;const{_format:n,_keyMap:r={},_positional:o=[],children:l}=e;if("flat"!==n)throw new Error(`Expected source._format: "flat", but got ${n}`);if(o&&o.includes("children"))throw new Error(`source._positional must not include "children": ${o}`);let a=r;if(r.t){const e="source._keyMap maps from long to short since v0.7.0. Flip key/value!";console.warn(e),a={};for(const[e,t]of Object.entries(r))a[t]=e}const d=o.map((e=>a[e])),c=[],h={},u={},p=null!==(t=a.key)&&void 0!==t?t:"key",f=null!==(i=a.children)&&void 0!==i?i:"children";for(const[e,t]of l.entries()){const[i,n,r={}]=t;t[1]=null,null!=t[2]&&(t[2]=null),n.forEach(((e,t)=>{r[d[t]]=e})),u[e]=r;const o=r[p];null!=o&&(h[o]=r);let l=null;if(null===i);else if("number"==typeof i){if(l=u[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by index: ${i}.`)}else if(l=h[i],void 0===l)throw new Error(`unflattenSource: Could not find parent node by key: ${i}`);l?(null!==(s=l[f])&&void 0!==s||(l[f]=[]),l[f].push(r)):c.push(r)}e.children=c}(e),delete e._format,delete e._version,delete e._keyMap,delete e._valueMap,delete e._positional,(s||n)&&function e(t){for(const i of t)Object.getOwnPropertyNames(i).forEach((e=>{const t=i[e];let r=e;if(s&&null!=o[e]&&(r=o[e],r!==e&&(i[r]=t,delete i[e])),n&&"number"==typeof t&&null!=n[r]){const e=n[r][t];if(null==e)throw new Error(`Expected valueMap[${r}][${t}] entry in [${n[r]}]`);i[r]=e}})),i.children&&e(i.children)}(e.children)} /*! * Wunderbaum - ext-dnd - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */const se="application/x-wunderbaum-node";class ne extends V{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&&L(e.element,"dragstart drag dragend",this.onDragEvent.bind(this)),t.dragEnter&&L(e.element,"dragenter dragover dragleave drop",this.onDropEvent.bind(this))}_leaveNode(){const e=this.lastTargetNode;this.lastEnterStamp=0,e&&(e.setClass("wb-drop-target wb-drop-over wb-drop-after wb-drop-before",!1),this.lastTargetNode=null)}unifyDragover(e){if(!1===e)return!1;if(e instanceof Set)return e.size>0&&e;if(!0===e)return new Set(["over","before","after"]);if("string"==typeof e||S(e))return(e=A(e)).size>0&&e;throw new Error("Unsupported drop region definition: "+e)}_calcDropRegion(e,t){const i=e.offsetY;return!!t&&(3===t.size?i<5.5?"before":i>16.5?"after":"over":1===t.size&&t.has("over")?"over":i>11?"after":"before")}_guessDropEffect(e){var t;const i=this.treeOpts.dnd,s=null!==(t=i.effectAllowed)&&void 0!==t?t:"all",n=["all","copy","copyLink","copyMove"].includes(s),r=["all","link","copyLink","linkMove"].includes(s),o=["all","move","copyMove","linkMove"].includes(s);let l=i.dropEffectDefault;return i.guessDropEffect&&(d?(e.altKey&&n&&(l="copy"),e.metaKey&&o&&(l="move"),e.altKey&&e.metaKey&&r&&(l="link")):(e.ctrlKey&&n&&(l="copy"),e.shiftKey&&o&&(l="move"),e.altKey&&r&&(l="link"))),l}_isVoidDrop(e,t,i){return!(!this.treeOpts.dnd.preventVoidMoves||!t)&&("before"===i&&e===t.getNextSibling()||"after"===i&&e===t.getPrevSibling()||(t===e||t.parent===e))}_applyScrollDir(){if(this.isDragging()&&this.currentScrollDir){const e=this.tree.options.dnd,t=this.tree.element,i=t.scrollTop;this.currentScrollDir<0?t.scrollTop=Math.max(0,i-e.scrollSpeed):this.currentScrollDir>0&&(t.scrollTop=i+e.scrollSpeed)}}_autoScroll(e){const t=this.tree,i=t.options.dnd.scrollSensitivity,s=t.element,n=t.headerElement.clientHeight,r=s.offsetHeight,o=s.scrollTop;return this.currentScrollDir=0,o>0&&e>0&&e<=i+n?this.currentScrollDir=-1:o=r-i&&(this.currentScrollDir=1),this.currentScrollDir&&this.applyScrollDirThrottled(),s.scrollTop-o}isDragging(){return!!this.srcNode}onDragEvent(e){var t;const i=this.treeOpts.dnd,s=pe.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(se,i.serializeClipboardData(n,s)):e.dataTransfer.setData(se,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=pe.getNode(e),r=this.treeOpts.dnd,o=e.dataTransfer,l=this._calcDropRegion(e,this.lastAllowedDropRegions),a=(e,t)=>(e&&this.tree.log(`Prevented drop operation (${t}).`),e);if(n){if(["drop"].includes(e.type)&&this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${n}, ea: ${null==o?void 0:o.effectAllowed}, de: ${null==o?void 0:o.dropEffect}, cy: ${e.offsetY}, r: ${l}, srcNode: ${i}`,e),"dragenter"===e.type){if(this.lastAllowedDropRegions=null,this.lastTargetNode&&this.lastTargetNode!==n&&this._leaveNode(),this.lastTargetNode=n,this.lastEnterStamp=Date.now(),a(n.isStatusNode(),"is status node")||a(r.preventForeignNodes&&n.tree!==s,"preventForeignNodes")||a(r.preventLazyParents&&!n.isLoaded(),"preventLazyParents")||a(r.preventNonNodes&&!i,"preventNonNodes")||a(r.preventRecursion&&(null==i?void 0:i.isAncestorOf(n)),"preventRecursion")||a(r.preventSameParent&&i&&n.parent===i.parent,"preventSameParent")||a(r.preventVoidMoves&&n===i,"preventVoidMoves"))return o.dropEffect="none",!0;o.dropEffect=this._guessDropEffect(e)||"none";let t=n._callEvent("dnd.dragEnter",{event:e,sourceNode:i});return t=this.unifyDragover(t),t?(this.lastAllowedDropRegions=t,this.lastDropEffect=o.dropEffect,n.setClass("wb-drop-target"),e.preventDefault(),!1):(o.dropEffect="none",!0)}if("dragover"===e.type){const t=e.clientY-this.tree.element.offsetTop;this._autoScroll(t),o.dropEffect=this._guessDropEffect(e)||"none",n._callEvent("dnd.dragOver",{event:e,sourceNode:i});const s=this._calcDropRegion(e,this.lastAllowedDropRegions);if(this.lastDropRegion=s,this.lastDropEffect=o.dropEffect,r.autoExpandMS>0&&n.isExpandable(!0)&&!n._isLoading&&Date.now()-this.lastEnterStamp>r.autoExpandMS&&!1!==n._callEvent("dnd.dragExpand",{event:e,sourceNode:i})&&n.setExpanded(),!s||this._isVoidDrop(n,i,s))return;return n.setClass("wb-drop-over","over"===s),n.setClass("wb-drop-before","before"===s),n.setClass("wb-drop-after","after"===s),e.preventDefault(),!1}if("dragleave"===e.type)n._callEvent("dnd.dragLeave",{event:e,sourceNode:i});else if("drop"===e.type){e.stopPropagation(),e.preventDefault(),this._leaveNode();const i=this.lastDropRegion;let s=null===(t=e.dataTransfer)||void 0===t?void 0:t.getData(se);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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */class re{constructor(e){if(this.start={x:0,y:0,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1},this.dragElem=null,this.dragging=!1,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){this.dragging&&this.opts.dragstop&&e&&(e.type="dragstop",this.opts.dragstop(e)),this.dragElem=null,this.dragging=!1}handleEvent(e){const t=e.type,i=this.opts,s={type:e.type,event:e,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.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.dythis.tree.element.contains(e.dragElem),drag:e=>this.handleDrag(e),dragstop:e=>this.handleDrag(e)})}init(){super.init()}handleDrag(e){const t=pe.getEventInfo(e.event);this.tree.log(`${e.type}(${e.dx})`,e,t)}} /*! * Wunderbaum - deferred - * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) + * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license. + * v0.9.0, Sun, 05 May 2024 16:08:56 GMT (https://github.com/mar10/wunderbaum) */class le{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-2023, Martin Wendt. Released under the MIT license. - * v0.8.4, Wed, 01 May 2024 06:13:52 GMT (https://github.com/mar10/wunderbaum) - */const ae=new Set(["checkbox","classes","expanded","icon","iconTooltip","key","lazy","_partsel","radiogroup","refKey","selected","statusNodeType","title","tooltip","type","unselectable"]),de=new Set(ae);de.delete("_partsel"),de.delete("unselectable");class ce{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:++ce.sequence),this.title=""+(null!==(n=i.title)&&void 0!==n?n:"<"+this.key+">"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))ae.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($.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}f(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=A(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:ee(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)}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(R.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(R.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(R.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(R.ok);f(S(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(R.ok),t?(this.expanded=!0,this.tree.update($.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(R.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 le,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($.any)}),0)}}async navigate(e,t){e=Z[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($.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($.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=_(r):Y.test(r)?n=_(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";T(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=_(`${m(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;f(h,"Expected unrendered node"),f(!h||e&&e.after,"opts.after expected, unless updating"),f(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=this._rowIdx*Q+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const g=document.createElement("span");g.classList.add("wb-title"),u.appendChild(g),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){f(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):Y.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:$.data},e);switch(this._rowElem||(t.change=$.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($.structure)}toDict(e=!1,t){const i={};if(de.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($.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update($.status),this.update($.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($.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=$.data){f(e===$.status||e===$.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($.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($.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($.structure),r}setTitle(e){this.title=e,this.update()}setTooltip(e){this.tooltip=e,this.update()}_sortChildren(e,t){const i=this.children;if(i&&(i.sort(e),t))for(let s=0,n=i.length;s"),null!=i.refKey&&(this.refKey=""+i.refKey),null!=i.type&&(this.type=""+i.type),this.expanded=!0===i.expanded,null!=i.icon&&(this.icon=i.icon),this.lazy=!0===i.lazy,null!=i.statusNodeType&&(this.statusNodeType=""+i.statusNodeType),null!=i.colspan&&(this.colspan=!!i.colspan),null!=i.checkbox&&(this.checkbox=!!i.checkbox),null!=i.radiogroup&&(this.radiogroup=!!i.radiogroup),this.selected=!0===i.selected,!0===i.unselectable&&(this.unselectable=!0),i.classes&&this.setClass(i.classes);for(const[e,t]of Object.entries(i))ae.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($.structure)}finally{i.enableUpdate(!0)}return o[0]}addNode(e,t="appendChild"){switch("over"===t&&(t="appendChild"),t){case"after":return this.parent.addChildren(e,{before:this.getNextSibling()});case"before":return this.parent.addChildren(e,{before:this});case"prependChild":return this.addChildren(e,{before:0});case"appendChild":return this.addChildren(e)}f(!1,`Invalid mode: ${t}`)}applyCommand(e,t){return this.tree.applyCommand(e,this,t)}collapseSiblings(e){for(const t of this.parent.children)t!==this&&t.expanded&&t.setExpanded(!1,e)}setClass(e,t=!0){const i=A(e);if(t)null===this.classes&&(this.classes=new Set),i.forEach((e=>{var i;this.classes.add(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)}));else{if(null===this.classes)return;i.forEach((e=>{var i;this.classes.delete(e),null===(i=this._rowElem)||void 0===i||i.classList.toggle(e,t)})),0===this.classes.size&&(this.classes=null)}}startEditTitle(){this.tree._callMethod("edit.startEditTitle",this)}async expandAll(e=!0,t){const i=this.tree,s=this.tree.options.minExpandLevel,{depth:n=99,loadLazy:r,force:o,keepActiveNodeVisible:l=!0}=null!=t?t:{},a={scrollIntoView:!1,force:o,loadLazy:r};const d=i.logTime(`${this}.expandAll(${e})`);try{i.enableUpdate(!1),await async function t(i,n){var l;if(0===n)return;const d=null==n?null:n-1,c=[];return null===(l=i.children)||void 0===l||l.forEach((i=>{if(e)if(!i.expanded&&(i.children||r&&i.lazy)){const e=i.setExpanded(!0,a);c.push(e),e.then((async()=>{await t(i,d)}))}else c.push(t(i,d));else(!s||o||i.getLevel()>s)&&i.setExpanded(!1,a),t(i,d)})),new Promise((e=>{Promise.all(c).then((()=>{e(!0)}))}))}(this,n)}finally{i.enableUpdate(!0),i.logTimeEnd(d)}i.activeNode&&l&&i.activeNode.scrollIntoView()}findAll(e){const t="function"==typeof e?e:ee(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(R.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(R.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(R.loading);try{const e=await this._callEvent("lazyLoad");if(!1===e)return void this.setStatus(R.ok);f(S(e)||e&&e.url,"The lazyLoad event must return a node list, `{url: ...}`, or false."),await this.load(e),this.setStatus(R.ok),t?(this.expanded=!0,this.tree.update($.structure)):this.update()}catch(e){this.logError("Error during loadLazy()",e),this._callEvent("error",{error:e}),this.setStatus(R.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 le,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($.any)}),0)}}async navigate(e,t){e=Z[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($.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($.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):Y.test(r)?n=x(``):(n=document.createElement("i"),n.className="wb-icon "+r):(n=document.createElement("i"),n.className="wb-icon"),i?t.replaceChild(n,i):t.appendChild(n);const o=this._callEvent("iconBadge",{iconSpan:n});let l=null;if(null!=o&&!1!==o){let e="",t="";T(o)?(l=""+o.badge,e=o.badgeClass?" "+o.badgeClass:"",t=o.badgeTooltip?` title="${o.badgeTooltip}"`:""):l="number"==typeof o?""+o:o,"string"==typeof l&&(l=x(`${m(l)}`)),l&&n.append(l)}return n}_render_markup(e){const t=this.tree,i=t.options,s=this.getOption("checkbox"),n=t.columns,r=this.getLevel(),o=t.isRowNav()?null:t.activeColIdx;let l,a=this._rowElem,d=null,c=null;const h=!a;f(h,"Expected unrendered node"),f(!h||e&&e.after,"opts.after expected, unless updating"),f(!this.isRootNode(),"Root node not allowed"),a=document.createElement("div"),a.classList.add("wb-row"),a.style.top=this._rowIdx*Q+"px",this._rowElem=a,a._wb_node=this;const u=document.createElement("span");u.classList.add("wb-node","wb-col"),a.appendChild(u);let p=0;s&&(d=document.createElement("i"),d.classList.add("wb-checkbox"),("radio"===s||this.parent.radiogroup)&&d.classList.add("wb-radio"),u.appendChild(d),p+=20);for(let e=r-1;e>0;e--)l=document.createElement("i"),l.classList.add("wb-indent"),u.appendChild(l),p+=20;(!i.minExpandLevel||r>i.minExpandLevel)&&(c=document.createElement("i"),c.classList.add("wb-expander"),u.appendChild(c),p+=20);this._createIcon(t.iconMap,u,null,!c)&&(p+=20);const g=document.createElement("span");g.classList.add("wb-title"),u.appendChild(g),u._ofsTitlePx=p,t.options.dnd.dragStart&&(u.draggable=!0);if(!this.isColspan()&&n.length>1){let e=0;for(const t of n){let i;e++,"*"===t.id?i=u:(i=document.createElement("span"),i.classList.add("wb-col"),a.appendChild(i)),e===o&&i.classList.add("wb-active"),t.classes&&i.classList.add(...t.classes.split(" ")),i.style.left=t._ofsPx+"px",i.style.width=t._widthPx+"px",h&&t.html&&"string"==typeof t.html&&(i.innerHTML=t.html)}}switch(e?e.after:"last"){case"first":t.nodeListElement.prepend(a);break;case"last":t.nodeListElement.appendChild(a);break;default:e.after.after(a)}e.isNew=!0,this._render_data(e)}_render_data(e){f(this._rowElem,"No _rowElem");const t=this.tree,i=t.options,s=this._rowElem,n=!!e.isNew,r=!!e.preventScroll,o=t.columns,l=this.isColspan(),a=s.querySelector("span.wb-node"),d=a.querySelector("span.wb-title"),c=t.element.scrollTop;this.titleWithHighlight?d.innerHTML=this.titleWithHighlight:d.textContent=this.title;const h=this.getOption("tooltip",!1);if(h&&(d.title=!0===h?this.title:h),r&&(t.element.scrollTop=c),!i.skeleton)if(l){const e=t.element.clientWidth;d.style.width=e-a._ofsTitlePx-7+"px"}else d.style.width=o[0]._widthPx-a._ofsTitlePx-7+"px";if(e.isDataChange=!0,this._render_status(e),this.statusNodeType)this._callEvent("renderStatusNode",{isNew:n,nodeElem:a,isColspan:l});else if(this.parent){const e=this._getRenderInfo();this._callEvent("render",{isNew:n,nodeElem:a,isColspan:l,allColInfosById:e.allColInfosById,renderColInfosById:e.renderColInfosById})}}_render_status(e){const t=this.tree,i=t.iconMap,s=t.options,n=this.type?t.types[this.type]:null,r=this._rowElem,o=r.querySelector("span.wb-node"),l=o.querySelector("i.wb-expander"),a=o.querySelector("i.wb-checkbox"),d=["wb-row"];if(this.expanded&&d.push("wb-expanded"),this.lazy&&d.push("wb-lazy"),this.selected&&d.push("wb-selected"),this._partsel&&d.push("wb-partsel"),this===t.activeNode&&d.push("wb-active"),this===t.focusNode&&d.push("wb-focus"),this._errorInfo&&d.push("wb-error"),this._isLoading&&d.push("wb-loading"),this.isColspan()&&d.push("wb-colspan"),this.statusNodeType&&d.push("wb-status-"+this.statusNodeType),this.match&&d.push("wb-match"),this.subMatchCount&&d.push("wb-submatch"),s.skeleton&&d.push("wb-skeleton"),r.className=d.join(" "),this.classes&&r.classList.add(...this.classes),n&&n.classes&&r.classList.add(...n.classes),l){let e=null;this._isLoading?e=i.loading:this.isExpandable(!1)?e=this.expanded?i.expanderExpanded:i.expanderCollapsed:this.lazy&&null==this.children&&(e=i.expanderLazy),null==e?l.classList.add("wb-indent"):Y.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:$.data},e);switch(this._rowElem||(t.change=$.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($.structure)}toDict(e=!1,t){const i={};if(de.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($.status)}}else(s===this||n)&&this._callEvent("deactivate",{nextNode:null,event:l});return s!==this&&(e&&i._setActiveNode(this),null==s||s.update($.status),this.update($.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($.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=$.data){f(e===$.status||e===$.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($.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($.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($.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{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=pe.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:pe.util.getValueFromElem(e.target),inputValid:e.target.checkValidity()}):this.tree.log("Ignored change event for removed element or node title")}init(){super.init(),L(this.tree.element,"change",".contenteditable,input,textarea,select",(e=>this._onChange(e)))}_preprocessKeyEvent(e){const t=e.event,i=C(t),s=this.tree,n=this.getPluginOption("trigger");if(this.isEditingTitle()){switch(i){case"Enter":return this._stopEditTitle(!0,{event:t}),!1;case"Escape":return this._stopEditTitle(!1,{event:t}),!1}return!1}if(s.isRowNav()||0===s.activeColIdx){switch(i){case"Enter":if(n.indexOf("macEnter")>=0&&d)return this.startEditTitle(),!1;break;case"F2":if(n.indexOf("F2")>=0)return this.startEditTitle(),!1}return!0}return!0}isEditingTitle(e){return e?this.curEditNode===e:!!this.curEditNode}startEditTitle(e){e=null!=e?e:this.tree.getActiveNode();const t=this.getPluginOption("validity"),i=this.getPluginOption("select");if(!e)return;this.tree.logDebug(`startEditTitle(node=${e})`);let s=e._callEvent("edit.beforeEdit");if(!1===s)return void e.logDebug("beforeEdit canceled operation.");if(!0===s||!s){const t=m(e.title);let i=this.getPluginOption("maxlength");const n=i?` maxlength="${i}"`:"";i=this.getPluginOption("minlength");s=`0?" required":""}${i?` minlength="${i}"`:""}${n} >`}const n=e.getColElem(0).querySelector(".wb-title");n.innerHTML=s;const r=n.firstElementChild;t&&r.addEventListener("keydown",(t=>{r.setCustomValidity(""),r.reportValidity()||e.logWarn(`Invalid input: '${r.value}'`)})),r.focus(),i&&r.select(),this.curEditNode=e,e._callEvent("edit.edit",{inputElem:r})}stopEditTitle(e){return this._stopEditTitle(e,{})}_stopEditTitle(e,t){var i;null!=t||(t={});const s=document.activeElement;let n=s?w(s):null;const r=this.curEditNode,o=!!t.forceClose,l=this.getPluginOption("validity");if(n&&this.getPluginOption("trim")&&(n=n.trim()),r)if(r.logDebug(`stopEditTitle(${e})`,t,s,n),e&&null!==n&&n!==r.title){const e=s.validationMessage;if(e)throw new Error(`Input validation failed for "${n}": ${e}.`);const t=r.getColElem(0);this._applyChange("edit.apply",r,t,s,{oldValue:r.title,newValue:n,inputElem:s,inputValid:s.checkValidity()}).then((e=>{var t;const i=s.validationMessage;if(l&&i&&!1!==e)throw new Error(`Edit apply validation failed for "${n}": ${i}.`);(o||!1!==e)&&(null==r||r.setTitle(n),null===(t=this.curEditNode)||void 0===t||t._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus())}))}else null===(i=this.curEditNode)||void 0===i||i._render({preventScroll:!0}),this.curEditNode=null,this.relatedNode=null,this.tree.setFocus();else this.tree.logDebug("stopEditTitle: not in edit mode.")}createNode(e="after",t,i){const s=this.tree;if(f(t=null!=t?t:s.getActiveNode(),"No node was passed, or no node is currently active."),e=e||"prependChild",null==i?i={title:""}:"string"==typeof i?i={title:i}:f(T(i),`Expected a plain object: ${i}`),("prependChild"===e||"appendChild"===e)&&(null==t?void 0:t.isExpandable(!0)))return void t.setExpanded().then((()=>{this.createNode(e,t,i)}));const n=t.addNode(i,e);n.setClass("wb-edit-new"),this.relatedNode=t,n.match=!0,n.makeVisible({noAnimation:!0}).then((()=>{this.startEditTitle(n)}))}} /*! @@ -76,11 +76,11 @@ class he extends V{constructor(e){super(e,"edit",{debounce:100,minlength:1,maxle * * A treegrid control. * - * Copyright (c) 2021-2023, Martin Wendt (https://wwWendt.de). + * Copyright (c) 2021-2024, Martin Wendt (https://wwWendt.de). * https://github.com/mar10/wunderbaum * * Released under the MIT license. - * @version v0.8.4 - * @date Wed, 01 May 2024 06:13:52 GMT - */class ue extends ce{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class pe{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=U,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:Q,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 le;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_"+ ++pe.sequence,this.root=new ue(this),this._registerExtension(new B(this)),this._registerExtension(new he(this)),this._registerExtension(new W(this)),this._registerExtension(new ne(this)),this._registerExtension(new oe(this)),this._registerExtension(new G(this)),this._updateViewportThrottled=O(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=k(t.element),f(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){f(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(z.cell):this.setNavigationOption(z.row):this.setNavigationOption(t.navigationModeOption),this.update($.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($.any),this.element.addEventListener("scroll",(e=>{this.update($.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update($.resize)})),this.resizeObserver.observe(this.element),L(this.nodeListElement,"click","div.wb-row",(t=>{const i=pe.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===F.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===F.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),L(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=pe.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()))})),L(this.element,"keydown",(e=>{const t=pe.getEventInfo(e),i=C(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),L(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=pe.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===z.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof pe)return e;if(e instanceof ce)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?J[e]:e}static getNode(e){if(!e)return null;if(e instanceof ce)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;f(null!=t,`Missing key: '${e}'.`),f(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=N({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,N({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/Q):Math.floor(t/Q),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/Q)-1:Math.ceil((s+n)/Q)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof ce?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($.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($.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=y(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/Q);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=pe.getNode(t),r=n?n.tree:pe.getTree(e),o={event:e,canonicalName:C(e),tree:r,node:n,region:F.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=F.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?F.expander:F.prefix;else if(i.contains("wb-checkbox"))o.region=F.checkbox;else if(i.contains("wb-icon"))o.region=F.icon;else if(i.contains("wb-node"))o.region=F.title;else if(s){o.region=F.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=F.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)}scrollTo(e){let t,i;e instanceof ce?t=e:(i=e,t=i.node),f(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=t._rowIdx*Q+n,a=n,d=l-r,c=d+Q,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+Q-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(f(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;f((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(f(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update($.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===z.row)switch(this.options.navigationModeOption=e,e){case z.cell:this.setCellNav(!0);break;case z.row:this.setCellNav(!1);break;case z.startCell:t&&this.setCellNav(!0);break;case z.startRow:t&&this.setCellNav(!1);break;default:v(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){f(T(e),`Expected plain objext: ${e}`),t?this.types=e:N(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=A(e.classes))}sortChildren(e=te,t=!1){this.root.sortChildren(e,t)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else v(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_renderHeaderMarkup(){f(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(E(this.headerElement,e),!e)return;const t=this.columns.length,i=this.headerElement.querySelector(".wb-row");f(i,"Expected a row in header element"),i.innerHTML="".repeat(t);for(let e=0;e${r}${l}`,this.isCellNav()&&n.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=P,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){let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=l*Q+"px",c=i):(o.delete(e),i&&(i.style.top=l*Q+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,f(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),f(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(f(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update($.any,{immediate:!0}))):this._disableUpdateCount++}filterNodes(e,t){return this.extensions.filter.filterNodes(e,t)}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()}}pe.sequence=0,pe.version="v0.8.4",pe.util=U,e.Wunderbaum=pe})); + * @version v0.9.0 + * @date Sun, 05 May 2024 16:08:56 GMT + */class ue extends ce{constructor(e){super(e,null,{key:"__root__",title:e.id})}toString(){return`WbSystemRoot@${this.key}<'${this.tree.id}'>`}}class pe{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=U,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:Q,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 le;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_"+ ++pe.sequence,this.root=new ue(this),this._registerExtension(new B(this)),this._registerExtension(new he(this)),this._registerExtension(new W(this)),this._registerExtension(new ne(this)),this._registerExtension(new oe(this)),this._registerExtension(new G(this)),this._updateViewportThrottled=O(this._updateViewportImmediately.bind(this),{}),this.columns=t.columns,delete t.columns,!this.columns||!this.columns.length){const e="string"==typeof t.header?t.header:this.id;this.columns=[{id:"*",title:e,width:"*"}]}t.types&&this.setTypes(t.types,!0),delete t.types,this.element=k(t.element),f(!!this.element,`Invalid 'element' option: ${t.element}`),this.element.classList.add("wunderbaum"),this.element.getAttribute("tabindex")||(this.element.tabIndex=0),this.element._wb_tree=this,this.headerElement=this.element.querySelector("div.wb-header");const n=null==t.header?this.columns.length>1:!!t.header;if(this.headerElement){f(!this.columns,"`opts.columns` must not be set if markup already contains a header"),this.columns=[];const e=this.headerElement.querySelector("div.wb-row");for(const t of e.querySelectorAll("div"))this.columns.push({id:t.dataset.id||`col_${this.columns.length}`,title:""+t.textContent,width:"*"})}else{const e="".repeat(this.columns.length);if(this.element.innerHTML=`\n
\n
\n ${e}\n
\n
`,!n){this.element.querySelector("div.wb-header").style.display="none"}}this.element.innerHTML+='\n
\n
\n
',this.listContainerElement=this.element.querySelector("div.wb-list-container"),this.nodeListElement=this.listContainerElement.querySelector("div.wb-node-list"),this.headerElement=this.element.querySelector("div.wb-header"),this.element.classList.toggle("wb-grid",this.columns.length>1),this._initExtensions(),["enabled","fixedCol"].forEach((e=>{null!=t[e]&&this.setOption(e,t[e])})),t.source?(t.showSpinner&&(this.nodeListElement.innerHTML="loading..."),this.load(t.source).then((()=>{null==t.navigationModeOption?this.isGrid()?this.setNavigationOption(z.cell):this.setNavigationOption(z.row):this.setNavigationOption(t.navigationModeOption),this.update($.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($.any),this.element.addEventListener("scroll",(e=>{this.update($.scroll)})),this.resizeObserver=new ResizeObserver((e=>{this.update($.resize)})),this.resizeObserver.observe(this.element),L(this.nodeListElement,"click","div.wb-row",(t=>{const i=pe.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===F.expander?s.setExpanded(!s.isExpanded(),{scrollIntoView:!1!==e.scrollIntoViewOnExpandClick}):i.region===F.checkbox&&s.toggleSelected()}this.lastClickTime=Date.now()})),L(this.nodeListElement,"dblclick","div.wb-row",(e=>{const t=pe.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()))})),L(this.element,"keydown",(e=>{const t=pe.getEventInfo(e),i=C(e),s=t.node||this.getFocusNode();this._callHook("onKeyEvent",{event:e,node:s,info:t,eventName:i})})),L(this.element,"focusin focusout",(e=>{const i="focusin"===e.type,s=pe.getNode(e);this._callEvent("focus",{flag:i,event:e}),i&&this.isRowNav()&&!this.isEditingTitle()&&(t.navigationModeOption===z.row?null==s||s.setActive():this.setCellNav()),i||this._callMethod("edit._stopEditTitle",!0,{event:e,forceClose:!0})}))}static getTree(e){if(e instanceof pe)return e;if(e instanceof ce)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?J[e]:e}static getNode(e){if(!e)return null;if(e instanceof ce)return e;for(void 0!==e.target&&(e=e.target);e;){if(e._wb_node)return e._wb_node;e=e.parentElement}return null}*[Symbol.iterator](){yield*this.root}_registerExtension(e){this.extensionList.push(e),this.extensions[e.id]=e}_initExtensions(){for(const e of this.extensionList)e.init()}_registerNode(e){const t=e.key;f(null!=t,`Missing key: '${e}'.`),f(!this.keyMap.has(t),`Duplicate key: '${t}': ${e}.`),this.keyMap.set(t,e);const i=e.refKey;if(null!=i){const t=this.refKeyMap.get(i);t?t.add(e):this.refKeyMap.set(i,new Set([e]))}}_unregisterNode(e){const t=e.refKey;if(null!=t){const i=this.refKeyMap.get(t);i&&i.delete(e)&&!i.size&&this.refKeyMap.delete(t)}this.keyMap.delete(e.key),e.tree=null,e.parent=null,e.removeMarkup()}_callHook(e,t={}){let i;const s=N({},{tree:this,options:this.options,result:void 0},t);for(const t of this.extensionList){if(i=t[e].call(t,s),!1===i)break;void 0!==s.result&&(i=s.result)}return i}_callMethod(e,...t){const[i,s]=e.split("."),n=s?this.extensions[i]:this,r=n[s];if(r)return r.apply(n,t);this.logError(`Calling undefined method '${e}()'.`)}_callEvent(e,t){const[i,s]=e.split("."),n=this.options,r=s?n[i][s]:n[i];if(r)return r.call(this,N({type:e,tree:this,util:this._util},t))}_getNodeByRowIdx(e){let t=null;return this.visitRows((i=>{if(i._rowIdx===e)return t=i,!1})),t}getTopmostVpNode(e=!0){const t=this.element.scrollTop;let i;return i=e?Math.ceil((t-1)/Q):Math.floor(t/Q),this._getNodeByRowIdx(i)}getLowestVpNode(e=!0){const t=this.element,i=this.headerElement.clientHeight,s=t.scrollTop,n=t.clientHeight-i;let r;return r=e?Math.floor((s+n)/Q)-1:Math.ceil((s+n)/Q)-1,r=Math.min(r,this.count(!0)-1),this._getNodeByRowIdx(r)}_getPrevNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!0,start:e||this.getActiveNode()}),e}_getNextNodeInView(e,t=1){return this.visitRows((i=>{if(e=i,t--<=0)return!1}),{reverse:!1,start:e||this.getActiveNode()}),e}addChildren(e,t){return this.root.addChildren(e,t)}applyCommand(e,t,i){let s,n;switch(t instanceof ce?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($.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($.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=y(e);const t=new RegExp("^"+e,"i");return function(e){return t.test(e.title)}}(e):e;function r(e){if(n(e)&&(i=e),i||e===t)return!1}return t=t||s,this.visitRows(r,{start:t,includeSelf:!1}),i||t===s||this.visitRows(r,{start:s,includeSelf:!0}),i}findRelatedNode(e,t,i=!1){let s=null;const n=Math.floor(this.listContainerElement.clientHeight/Q);switch(t){case"parent":case"left":e.parent&&e.parent.parent&&(s=e.parent);break;case"first":this.visit((e=>{if(e.isVisible())return s=e,!1}));break;case"last":this.visit((e=>{e.isVisible()&&(s=e)}));break;case"right":e.children&&e.children.length&&(s=e.children[0]);break;case"up":s=this._getPrevNodeInView(e);break;case"down":s=this._getNextNodeInView(e);break;case"pageDown":{const t=this.getLowestVpNode();s=e._rowIdxt._rowIdx?t:this._getPrevNodeInView(e,n)}break;default:this.logWarn("Unknown relation '"+t+"'.")}return s}*format_iter(e,t){yield*this.root.format_iter(e,t)}format(e,t){return this.root.format(e,t)}getActiveColElem(){return this.activeNode&&this.activeColIdx>=0?this.activeNode.getColElem(this.activeColIdx):null}getActiveNode(){return this.activeNode}getFirstChild(){return this.root.getFirstChild()}getFocusNode(){return this.focusNode}static getEventInfo(e){const t=e.target,i=t.classList,s=t.closest("span.wb-col"),n=pe.getNode(t),r=n?n.tree:pe.getTree(e),o={event:e,canonicalName:C(e),tree:r,node:n,region:F.unknown,colDef:void 0,colIdx:-1,colId:void 0,colElem:s};if(i.contains("wb-title"))o.region=F.title;else if(i.contains("wb-expander"))o.region=n.isExpandable()?F.expander:F.prefix;else if(i.contains("wb-checkbox"))o.region=F.checkbox;else if(i.contains("wb-icon"))o.region=F.icon;else if(i.contains("wb-node"))o.region=F.title;else if(s){o.region=F.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=F.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)}scrollTo(e){let t,i;e instanceof ce?t=e:(i=e,t=i.node),f(t&&null!=t._rowIdx,`Invalid node: ${t}`);const s=this.element,n=this.headerElement.clientHeight,r=s.scrollTop,o=s.clientHeight,l=t._rowIdx*Q+n,a=n,d=l-r,c=d+Q,h=null==i?void 0:i.topNode;let u=null;d>=a?c<=o||(u=l+Q-o+2):u=l-a-2,null!=u&&(this.log(`scrollTo(${l}): ${r} => ${u}`),s.scrollTop=u,h&&this.scrollTo(h))}scrollToHorz(){const e=this.columns[0]._widthPx,t=this.element.clientWidth,i=this.element.scrollLeft,s=this.getActiveColElem(),n=Number.parseInt(null==s?void 0:s.style.left,10),r=n+Number.parseInt(null==s?void 0:s.style.width,10);let o=i;n-it&&(o=r-t),o=Math.max(0,o),this.log(`scrollToHorz(${this.activeColIdx}): ${n}..${r}, fixedOfs=${e}, vpWidth=${t}, curLeft=${i} -> ${o}`),this.element.scrollLeft=o}setColumn(e,t){var i,s,n;const r=null==t?void 0:t.edit,o=!1!==(null==t?void 0:t.scrollIntoView);if(f(this.isCellNav(),"Expected cellNav mode"),"string"==typeof e){const t=e;f((e=this.columns.findIndex((t=>t.id===e)))>=0,`Invalid colId: ${t}`)}if(f(0<=e&&e0&&(s?this._updateViewportImmediately():this._updateViewportThrottled())}}setEnabled(e=!0){const t=this.enabled;return this.enabled=!!e,this.element.classList.toggle("wb-disabled",!e),t}isEnabled(){return this.enabled}isGrid(){return this.columns&&this.columns.length>1}isCellNav(){return!!this._cellNavMode}isRowNav(){return!this._cellNavMode}setCellNav(e=!0){var t;const i=this._cellNavMode;this._cellNavMode=!!e,e&&!i&&this.setColumn(0),this.element.classList.toggle("wb-cell-mode",e),null===(t=this.activeNode)||void 0===t||t.update($.status)}setNavigationOption(e,t=!1){if(this.isGrid()||e===z.row)switch(this.options.navigationModeOption=e,e){case z.cell:this.setCellNav(!0);break;case z.row:this.setCellNav(!1);break;case z.startCell:t&&this.setCellNav(!0);break;case z.startRow:t&&this.setCellNav(!1);break;default:v(`Invalid mode '${e}'.`)}else this.logWarn("Plain trees only support row navigation mode.")}setStatus(e,t){return this.root.setStatus(e,t)}setTypes(e,t=!0){f(T(e),`Expected plain objext: ${e}`),t?this.types=e:N(this.types,e);for(const e of Object.values(this.types))e.classes&&(e.classes=A(e.classes))}sortChildren(e=te,t=!1){this.root.sortChildren(e,t)}toDictArray(e){var t;return null!==(t=this.root.toDict(!0,e).children)&&void 0!==t?t:[]}_updateColumnWidths(){const e=this.element.clientWidth,t=this.columns,i=t[0];let s=0,n=0,r=0,o=!1;if("*"!==i.id)throw new Error(`First column must have id '*': got '${i.id}'.`);this._columnsById={};for(const e of t){this._columnsById[e.id]=e;const t=e.width;if("*"===e.id&&e!==i)throw new Error(`Column id '*' must be defined only once: '${e.title}'.`);if(t&&"*"!==t)if("number"==typeof t)e._weight=t,n+=t;else if("string"==typeof t&&t.endsWith("px")){e._weight=0;const i=parseFloat(t.slice(0,-2));e._widthPx!=i&&(o=!0,e._widthPx=i),r+=i}else v(`Invalid column width: ${t} (expected string ending with 'px' or number, e.g. "px" or ).`);else e._weight=1,n+=1}const l=Math.max(0,e-r);let a=0;for(const e of t){let t;if(e._weight){const i=e.minWidth;t="number"==typeof i?i:"string"==typeof i&&i.endsWith("px")?parseFloat(i.slice(0,-2)):4;const s=Math.max(t,l*e._weight/n);e._widthPx!=s&&(o=!0,e._widthPx=s)}e._ofsPx=a,a+=e._widthPx}t[t.length-1]._widthPx-=1,s=a-1;const d=`${s}px`;return this.headerElement.style.width=d,this.listContainerElement.style.width=d,o}_renderHeaderMarkup(){f(this.headerElement,"Expected a headerElement");const e=this.hasHeader();if(E(this.headerElement,e),!e)return;const t=this.columns.length,i=this.headerElement.querySelector(".wb-row");f(i,"Expected a row in header element"),i.innerHTML="".repeat(t);for(let e=0;e${r}${l}`,this.isCellNav()&&n.classList.toggle("wb-active",e===this.activeColIdx)}}updatePendingModifications(){this.pendingChangeTypes.size>0&&this._updateViewportImmediately()}_updateViewportImmediately(){var e;if(this._disableUpdateCount)return this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`),void this._disableUpdateIgnoreCount++;this._updateViewportThrottled.pending()&&this._updateViewportThrottled.cancel();const t=P,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){let t=null===(e=this.getTopmostVpNode(!0))||void 0===e?void 0:e.getPath(!1,"title"," > ");t=t?t+" >":"",this.options.connectTopBreadcrumb.textContent=t}this._callEvent("update")}_updateRows(e){const t=!!(e=Object.assign({newNodesOnly:!1},e)).newNodesOnly,i=this.element.clientHeight,s=this.element.scrollTop;let n=Math.max(0,s/22-5);n=Math.floor(n),n%2&&n--;let r=Math.max(0,(s+i)/22+5);r=Math.ceil(r);const o=new Set;this.nodeListElement.childNodes.forEach((e=>{const t=e;o.add(t._wb_node)}));let l=0,a=0,d=!1,c="first";this.visitRows((function(e){const i=e._rowElem;e._rowIdx!==l&&(e._rowIdx=l,d=!0),lr?i&&(c=i):i&&t?(o.delete(e),i.style.top=l*Q+"px",c=i):(o.delete(e),i&&(i.style.top=l*Q+"px"),e._render({top:a,after:c}),c=e._rowElem),l++,a+=22})),this.treeRowCount=l;for(const e of o)e._callEvent("discard"),e.removeMarkup();return this.nodeListElement.style.height=`${a}px`,d}visit(e){return this.root.visit(e,!1)}visitRows(e,t){if(!this.root.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(e,t);let i,s,n,r,o,l,a=0,d=!1===(t=t||{}).includeSelf,c=t.start||this.root.children[0];const h=!!t.includeHidden,u=!h&&"hide"===this.filterMode;for(n=c.parent;n;){for(o=n.children,s=o.indexOf(c)+a,f(s>=0,`Could not find ${c} in parent's children: ${n}`),i=s;it!==l&&(!u||t.match||t.subMatchCount?!1!==e(t)&&(h||!t.children||t.expanded?void 0:"skip"):"skip")),!1),!1===r))return!1}}c=n,n=n.parent,a=1,!n&&t.wrap&&(this.logDebug("visitRows(): wrap around"),f(t.start,"`wrap` option requires `start`"),l=t.start,t.wrap=!1,n=this.root,a=0)}return!0}_visitRowsUp(e,t){let i,s,n,r=t.start||this.root.children[0];const o=!!t.includeHidden;if(!1!==t.includeSelf&&!1===e(r))return!1;for(;;){if(n=r.parent,i=n.children,i[0]===r){if(r=n,!r.parent)break;i=n.children}else for(s=i.indexOf(r),r=i[s-1];(o||r.expanded)&&r.children&&r.children.length;)i=r.children,n=r,r=i[i.length-1];if((o||r.isVisible())&&!1===e(r))return!1}return!0}load(e){return this.clear(),this.root.load(e)}enableUpdate(e){e?(f(this._disableUpdateCount>0,"enableUpdate(true) was called too often"),this._disableUpdateCount--,0===this._disableUpdateCount&&(this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`),this._disableUpdateIgnoreCount=0,this.update($.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()}}pe.sequence=0,pe.version="v0.9.0",pe.util=U,e.Wunderbaum=pe})); //# 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 5f9c887e..f199a606 100644 --- a/dist/wunderbaum.umd.min.js.map +++ b/dist/wunderbaum.umd.min.js.map @@ -1 +1 @@ -{"version":3,"file":"wunderbaum.umd.js","names":["global","factory","exports","module","define","amd","globalThis","self","mar10","this","freeGlobal","Object","freeGlobalThis","freeSelf","root","Function","isObject","value","type","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","requestAnimationFrame","TypeError","invokeFunc","time","args","thisArg","undefined","apply","startTimer","pendingFunc","cancelAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","Date","now","trailingEdge","timeSinceLastInvoke","timeWaiting","Math","min","remainingWait","debounced","isInvoking","leadingEdge","max","cancel","id","clearTimeout","cancelTimer","flush","pending","throttle","MOUSE_BUTTONS","isMac","nav","navigator","test","platform","_getUserInfo","REX_HTML","REX_TOOLTIP","ENTITY_MAP","ValidationError","Error","constructor","message","super","name","assert","cond","msg","documentReady","callback","document","readyState","addEventListener","error","escapeHtml","s","replace","escapeRegex","escapeTooltip","getValueFromElem","elem","coerce","tag","tagName","classList","contains","span","embeddedInput","querySelector","innerText","input","indeterminate","checked","valueAsDate","valueAsNumber","parentElement","setElemDisplay","flag","style","elemFromSelector","display","elemFromHtml","html","t","createElement","innerHTML","trim","content","firstElementChild","_IGNORE_KEYS","Set","obj","eventToString","event","key","et","altKey","push","ctrlKey","metaKey","shiftKey","button","has","join","extend","i","length","arg","prototype","hasOwnProperty","call","isArray","Array","isEmptyObject","keys","isPlainObject","toString","onEvent","rootTarget","eventNames","selectorOrHandler","handlerOrNone","selector","handler","split","forEach","evn","e","target","matches","closest","overrideMethod","instance","methodName","ctx","prevSuper","prevSuperApply","prevFunc","_super","_superApply","argsArray","getOption","opts","defaultValue","ext","indexOf","toSet","val","set","c","add","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","defaults","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","connectInput","autoApply","autoExpand","counter","fuzzy","hideExpandedCounter","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","branchMode","_opts","runWithDeferredUpdate","_applyFilterImpl","match","temp","count","prevAutoCollapse","autoCollapse","hideMode","logInfo","clearFilter","map","reduce","a","b","re","reHighlight","node","title","text","res","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","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","logDebug","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","ROW_HEIGHT","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","nodeTitleSorter","x","y","decompressSourceData","source","_format","_version","_keyMap","_valueMap","longToShort","shortToLong","entries","warn","_typeList","_b","_c","_positional","includes","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","unflattenSource","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","n","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","dx","pageX","pageY","dragstart","GridExtension","observer","window","handleDrag","info","getEventInfo","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","statusNodeType","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","update","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","idx","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","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","colStructure","selectMode","fixSelection3FromEndNodes","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","colElem","left","_ofsPx","width","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","colDef","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","d","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasFocus","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","reMatch","makeNodeTitleStartMatcher","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","colId","column","KeyboardEvent","isEditing","label","timeEnd","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","Number","parseInt","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","values","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","endsWith","px","parseFloat","slice","restPx","ofsPx","minWidth","cmw","tw","_renderHeaderMarkup","colCount","headerRow","headerClasses","resizer","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.umd.js"],"mappings":"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"} \ 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","toSet","val","set","c","add","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","defaults","enabled","treeOpts","extensionOpts","getPluginOption","init","_a","setPluginOption","setEnabled","onKeyEvent","data","onRender","START_MARKER","END_MARKER","RE_START_MARKER","RegExp","RE_END_MARTKER","FilterExtension","autoApply","autoExpand","matchBranch","connectInput","fuzzy","hideExpanders","highlight","leavesOnly","mode","noData","lastFilterArgs","queryInput","filterNodes","filterMode","updateFilter","_applyFilterNoUpdate","filter","_opts","runWithDeferredUpdate","_applyFilterImpl","count","prevAutoCollapse","autoCollapse","hideMode","filterRegExp","highlightRegExp","logInfo","clearFilter","matchReString","map","reduce","a","b","logDebug","node","title","text","res","exec","highlightString","escapeTitles","matchingIndices","_matchingArrIdx","_mIdx","textPoses","v","_markFuzzyMatchedChars","titleWithHighlight","arguments","toggle","subMatchCount","visit","match","setStatus","ok","children","matchedByBranch","parent","visitParents","p","expanded","setExpanded","noAnimation","noEvents","_filterAutoExpanded","filterBranches","countMatches","n","statusNodeType","logWarn","enableUpdate","remove","KeynavExtension","_getEmbeddedInputElem","ace","getActiveColElem","_isCurInputFocused","activate","autoActivate","curInput","inputHasFocus","navModeOption","navigationModeOption","focusNode","eventName","handled","isEnabled","_callEvent","_callMethod","currentNode","getFocusNode","getActiveNode","firstNode","getFirstChild","setActive","setFocus","isColspan","isRowNav","blur","_render","quicksearch","stamp","lastQuicksearchTime","lastQuicksearchTerm","matchNode","findNextNode","preventDefault","isActive","isExpanded","isExpandable","startCell","startRow","setCellNav","toggleSelected","navigate","curInputType","inputCanFocus","setCustomValidity","setColumn","activeColIdx","checkValidity","focus","click","log","isCellNav","cell","columns","LoggerExtension","ignoreEvents","prefix","extra","ROW_HEIGHT","TEST_IMG","iconMaps","bootstrap","loading","expanderExpanded","expanderCollapsed","expanderLazy","checkChecked","checkUnchecked","checkUnknown","radioChecked","radioUnchecked","radioUnknown","folder","folderOpen","folderLazy","doc","fontawesome6","RESERVED_TREE_SOURCE_KEYS","KEY_TO_ACTION_DICT","Add","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Divide","End","Home","Multiply","PageDown","PageUp","Subtract","makeNodeTitleMatcher","nodeTitleSorter","x","y","decompressSourceData","source","_format","_version","_keyMap","_valueMap","longToShort","shortToLong","entries","warn","_typeList","_b","_c","_positional","includes","positionalShort","newChildren","keyToNodeMap","indexToNodeMap","keyAttrName","childrenAttrName","index","nodeTuple","parentId","kwargs","positionalIdx","parentNode","unflattenSource","_iter","childList","getOwnPropertyNames","propName","longName","newValue","nodeMimeType","DndExtension","autoExpandMS","multiSource","effectAllowed","dropEffectDefault","guessDropEffect","preventForeignNodes","preventLazyParents","preventNonNodes","preventRecursion","preventSameParent","preventVoidMoves","serializeClipboardData","scroll","scrollSensitivity","scrollSpeed","sourceCopyHook","dragStart","drag","dragEnd","dragEnter","dragOver","dragExpand","drop","dragLeave","srcNode","lastTargetNode","lastEnterStamp","lastAllowedDropRegions","lastDropEffect","lastDropRegion","currentScrollDir","applyScrollDirThrottled","_applyScrollDir","dndOpts","dnd","onDragEvent","bind","onDropEvent","_leaveNode","ltn","setClass","unifyDragover","size","_calcDropRegion","allowed","dy","offsetY","_guessDropEffect","ea","canCopy","canLink","canMove","_isVoidDrop","targetNode","dropRegion","getNextSibling","getPrevSibling","isDragging","sp","scrollTop","_autoScroll","viewportY","sensitivity","headerHeight","headerElement","clientHeight","height","offsetHeight","scrollHeight","Wunderbaum","getNode","dataTransfer","isEditingTitle","nodeData","toDict","_orgKey","_treeId","setData","JSON","stringify","types","srcTree","dt","_t","pred","dropEffect","isStatusNode","isLoaded","isAncestorOf","regionSet","sourceNode","clientY","offsetTop","region","_isLoading","stopPropagation","getData","parse","suggestedDropMode","suggestedDropEffect","sourceNodeData","DragObserver","dragElem","dragging","events","thresh","_handler","handleEvent","disconnect","removeEventListener","getDragElem","stopDrag","cb_event","dragstop","dx","pageX","pageY","dragstart","GridExtension","observer","window","handleDrag","info","getEventInfo","_promise","_resolve","_reject","reason","finally","NODE_PROPS","NODE_DICT_PROPS","delete","WunderbaumNode","refKey","classes","_requestId","_errorInfo","_partsel","_partload","_rowIdx","_rowElem","sequence","icon","lazy","colspan","checkbox","radiogroup","selected","unselectable","_registerNode","Symbol","iterator","cl","l","typeInfo","addChildren","before","applyMinExpanLevel","_level","getLevel","nodeList","forceExpand","minExpandLevel","child","subChildren","isUnloaded","concat","findDirectChild","pos","splice","update","structure","addNode","applyCommand","cmd","collapseSiblings","className","cnSet","cn","startEditTitle","expandAll","depth","loadLazy","force","keepActiveNodeVisible","expandOpts","scrollIntoView","logTime","level","level_1","promises","all","logTimeEnd","activeNode","findAll","matcher","ptr","findFirst","findRelatedNode","where","includeHidden","format_iter","name_cb","connectors","_is_last","ca","_format_line","parts","format","line","getColElem","colIdx","findIndex","colElems","querySelectorAll","getCloneList","includeSelf","clones","findByRefKey","getLastChild","ac","idx","getParent","getParentList","includeRoot","dtn","getPath","part","separator","path","isFunc","hasChildren","hasClass","hasFocus","other","isDescendantOf","isChildOf","isClone","andCollapsed","emptyChildListExpandable","isFirstSibling","isLastSibling","isLazy","isLoading","isPagingNode","isParentOf","isPartload","isPartsel","isRadio","isRendered","isRootNode","isSelected","isTopLevel","isVisible","hasFilter","parents","_loadSourceObject","response","setTypes","colStructure","selectMode","fixSelection3FromEndNodes","_fetchWithOptions","url","params","body","rest","fetchOpts","method","URLSearchParams","fetch","json","load","requestId","prevParent","elapLoad","elapProcess","startProcess","logError","debugLevel","forceReload","wasExpanded","resetLazy","debug","makeVisible","dfd","deferreds","len","seOpts","updatePendingModifications","moveTo","targetParent","triggerModifyChild","any","triggerModify","removeMarkup","_unregisterNode","removeChildren","_setFocusNode","_wb_node","_getRenderInfo","allColInfosById","renderColInfosById","col","_createIcon","iconMap","parentElem","replaceChild","showLoading","iconSpan","appendChild","cbRes","badge","tooltip","badgeClass","badgeTooltip","append","_render_markup","treeOptions","rowDiv","checkboxSpan","expanderSpan","isNew","after","top","nodeElem","ofsTitlePx","titleSpan","_ofsTitlePx","draggable","colElem","left","_ofsPx","width","_widthPx","nodeListElement","prepend","_render_data","preventScroll","textContent","skeleton","vpWidth","clientWidth","isDataChange","_render_status","renderInfo","rowClasses","image","backgroundImage","cbclass","colSpan","resizeCols","ofs","colDef","change","row","recursive","dict","scrollTo","prev","retrigger","focusTree","orgEvent","edit","nextNode","prevNode","_setActiveNode","immediate","sendEvents","updateOpts","lastChild","topNode","setIcon","setKey","getSelectedNodes","stopOnParents","_anySelectable","setSelected","found","_changeSelectStatusProps","state","changed","fixSelection3AfterClick","_walk","allSelected","someSelected","canSelect","propagateDown","sibling","details","statusNode","_setStatusNode","firstChild","_clearStatusNode","strings","loadError","setTitle","setTooltip","_sortChildren","cmp","deep","sort","sortChildren","operation","modifyChild","visitSiblings","isMatched","EditExtension","minlength","maxlength","trigger","slowClickDelay","validity","beforeEdit","curEditNode","relatedNode","debouncedOnChange","_onChange","_applyChange","inputElem","validationMessage","reportValidity","inputValue","inputValid","_preprocessKeyEvent","_stopEditTitle","inputHtml","opt","stopEditTitle","focusElem","activeElement","forceClose","errMsg","oldValue","createNode","newNode","WbSystemRoot","_activeNode","_focusNode","extensionList","extensions","keyMap","Map","refKeyMap","treeRowCount","_disableUpdateCount","_disableUpdateIgnoreCount","_columnsById","pendingChangeTypes","_util","_cellNavMode","lastClickTime","header","rowHeightPx","fixedCol","showSpinner","connectTopBreadcrumb","iconBadge","receive","readyDeferred","ready","readyOk","_registerExtension","_updateViewportThrottled","_updateViewportImmediately","getAttribute","tabIndex","_wb_tree","wantHeader","rowElement","colDiv","dataset","coldivs","repeat","listContainerElement","_initExtensions","optName","setOption","isGrid","setNavigationOption","resizeObserver","ResizeObserver","resize","observe","mouseEvent","expander","scrollIntoViewOnExpandClick","_callHook","getTree","el","treeElem","Element","extension","rk","rks","get","hook","d","_getNodeByRowIdx","visitRows","getTopmostVpNode","complete","topIdx","ceil","floor","getLowestVpNode","scrollParent","bottomIdx","_getPrevNodeInView","reverse","_getNextNodeInView","nodeOrOpts","refNode","clear","destroy","outerHTML","hasHeader","hint","selectAll","toggleSelect","_selectRange","eventInfo","visible","_check","from","findKey","startNode","reMatch","makeNodeTitleStartMatcher","_checkNode","pageSize","bottomNode","parentCol","canonicalName","unknown","colId","column","KeyboardEvent","isEditing","label","timeEnd","vpHeight","rowTop","vpTop","vpRowTop","vpRowBottom","newScrollTop","scrollToHorz","fixedWidth","scrollLeft","colLeft","Number","parseInt","colRight","newLeft","cid","setActiveNode","RF","clearMarkup","redraw","reset","values","toDictArray","_updateColumnWidths","col0","totalWidth","totalWeight","modified","cw","_weight","endsWith","px","parseFloat","slice","restPx","ofsPx","minWidth","cmw","tw","_renderHeaderMarkup","colCount","headerRow","headerClasses","resizer","_updateRows","newNodesOnly","adjustHeight","wantHeight","abs","vp_height","startIdx","endIdx","obsoleteNodes","childNodes","tr","prevElem","_visitRowsUp","nextIdx","siblings","stopNode","siblingOfs","skipFirstNode","checkFilter","wrap","isFilterActive","version"],"sources":["wunderbaum.umd.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/docs/api/classes/util.Deferred.html b/docs/api/classes/util.Deferred.html index b43bc0d2..c338f2bd 100644 --- a/docs/api/classes/util.Deferred.html +++ b/docs/api/classes/util.Deferred.html @@ -1,10 +1,10 @@ -Deferred | wunderbaum - v0.8.5-0

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

+Deferred | wunderbaum - v0.9.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 104992e3..0aa28501 100644 --- a/docs/api/classes/util.ValidationError.html +++ b/docs/api/classes/util.ValidationError.html @@ -1,14 +1,14 @@ -ValidationError | wunderbaum - v0.8.5-0

Class ValidationError

A generic error that can be thrown to indicate a validation error when +ValidationError | wunderbaum - v0.9.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 a0fb5bc3..35d5d68e 100644 --- a/docs/api/classes/wb_node.WunderbaumNode.html +++ b/docs/api/classes/wb_node.WunderbaumNode.html @@ -1,8 +1,8 @@ -WunderbaumNode | wunderbaum - v0.8.5-0

A single tree node.

+WunderbaumNode | wunderbaum - v0.9.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
children: null | WunderbaumNode[] = null
classes: null | Set<string> = null

Additional classes added to div.wb-row.

+

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
children: null | WunderbaumNode[] = null
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
key: string

Unique key. Passed with constructor or defaults to SEQUENCE.

+
icon?: IconOption
key: string

Unique key. Passed with constructor or defaults to SEQUENCE.

See

Use setKey to modify.

-
lazy?: boolean
match?: boolean

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

-
radiogroup?: boolean
refKey: undefined | string = undefined

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

lazy?: boolean
match?: boolean

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

+
radiogroup?: boolean
refKey: undefined | string = undefined

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

See

Use setKey to modify.

-
selected?: boolean

Selection state.

+
selected?: boolean

Selection state.

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

Name of the node.

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

Name of the node.

See

Use setTitle to modify.

-
titleWithHighlight?: string
tooltip?: string | boolean

Reference to owning tree.

-
type?: string
unselectable?: boolean
sequence: number = 0

Methods

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

titleWithHighlight?: string
tooltip?: string | boolean

Reference to owning tree.

+
type?: string
unselectable?: boolean
sequence: number = 0

Methods

  • Internal

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

    -

    Returns boolean

  • Internal

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

    +

    Returns boolean

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

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

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Parameters

    • source: any

    Returns Promise<any>

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

    +

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Parameters

    • source: any

    Returns Promise<any>

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

    This a convenience function that calls addChildren()

    Parameters

    • nodeData: WbNodeData

      node definition

    • Optional mode: InsertNodeType = "appendChild"

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

    Returns WunderbaumNode

    new node

    -
  • Apply a modification (or navigation) operation.

    +
  • Collapse all expanded sibling nodes if any. +

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

    -

    Parameters

    Returns any

  • Call setExpanded() on all descendant nodes.

    -

    Parameters

    Returns Promise<void>

  • Call setExpanded() on all descendant nodes.

    +

    Parameters

    Returns Promise<void>

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

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

    Examples:

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

    Parameters

    Returns WunderbaumNode[]

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

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

    -

    Parameters

    Returns void

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

    -

    Parameters

    Returns void

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

    Parameters

    Returns void

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

    Example:

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

    Parameters

    Returns string

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

    -

    Parameters

    • colIdx: string | number

    Returns null | HTMLSpanElement

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

    -

    Returns number

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

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

    +

    Parameters

    • colIdx: string | number

    Returns null | HTMLSpanElement

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

    +

    Returns number

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

    Evaluation sequence:

      @@ -222,77 +222,77 @@

    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 boolean

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

    +

    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

  • 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 @@ -300,34 +300,34 @@

    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

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

    +

    Returns void

  • 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

  • Sort child list by title or custom criteria.

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

    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 @@ -335,20 +335,20 @@ Return false to ignore this node or "skip" to include this node without its children.

    Returns WbNodeData

  • Internal

    Return readable string representation for this instance.

    -

    Returns string

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

    +
  • Internal

    Return readable string representation for this instance.

    +

    Returns string

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

    Parameters

    • operation: string

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

      -
    • Optional extra: any

    Returns void

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

    +
  • Optional extra: any

Returns void

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

    Parameters

    • operation: string

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

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

    Returns void

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

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

Returns void

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

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

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

    -

    Parameters

    Returns void

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

    +

    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.

    @@ -356,14 +356,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 4546e9ef..c5d11fc7 100644 --- a/docs/api/classes/wunderbaum.Wunderbaum.html +++ b/docs/api/classes/wunderbaum.Wunderbaum.html @@ -1,6 +1,6 @@ -Wunderbaum | wunderbaum - v0.8.5-0

A persistent plain object or array.

+Wunderbaum | wunderbaum - v0.9.0

A persistent plain object or array.

See also WunderbaumOptions.

-

Constructors

Constructors

Properties

Constructors

Properties

_cellNavMode: boolean = false
_util: util = util

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

-
activeColIdx: number = 0

Use setColumn()/getActiveColElem() to access.

-

Show/hide a checkbox or radiobutton.

-
columns: ColumnDefinitionList = []

List of column definitions.

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

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

-

Type declaration

  • [key: string]: any
element: HTMLDivElement

The div container element that was passed to the constructor.

-
filterMode: FilterModeType = null

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

-
headerElement: HTMLDivElement

The div.wb-header element if any.

-

Show/hide a node icon.

-
iconTooltip?: DynamicStringOption

Show/hide a tooltip for the node icon.

-
id: string

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

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

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

-
nodeListElement: HTMLDivElement

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

-

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

-
ready: Promise<any>

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

-

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

-

Show/hide a tooltip.

-

Shared properties, referenced by node.type.

-
unselectable?: DynamicBoolOption

Define a node checkbox as readonly.

-
util: util = util

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

-
version: string = "@VERSION"

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

-

Accessors

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

Constructors

Properties

_cellNavMode: boolean = false
_util: util = util

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

+
activeColIdx: number = 0

Use setColumn()/getActiveColElem() to access.

+

Show/hide a checkbox or radiobutton.

+
columns: ColumnDefinitionList = []

List of column definitions.

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

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

+

Type declaration

  • [key: string]: any
element: HTMLDivElement

The div container element that was passed to the constructor.

+
filterMode: FilterModeType = null

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

+
headerElement: HTMLDivElement

The div.wb-header element if any.

+

Show/hide a node icon.

+
iconTooltip?: DynamicStringOption

Show/hide a tooltip for the node icon.

+
id: string

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

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

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

+
nodeListElement: HTMLDivElement

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

+

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

+
ready: Promise<any>

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

+

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

+

Show/hide a tooltip.

+

Shared properties, referenced by node.type.

+
unselectable?: DynamicBoolOption

Define a node checkbox as readonly.

+
util: util = util

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

+
version: string = "@VERSION"

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

+

Accessors

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

    -

    Returns {
        [key: string]: string;
    }

    • [key: string]: string

Methods

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

    +

    Returns {
        [key: string]: string;
    }

    • [key: string]: string

Methods

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

    Example:

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

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Call tree method or extension method if defined.

    +

    Parameters

    • type: string
    • Optional extra: any

    Returns any

  • Call tree method or extension method if defined.

    Example:

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

    Parameters

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

    Returns any

  • Update column headers and column width. +

    Parameters

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

    Returns any

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

    -

    Returns boolean

  • Return the number of nodes in the data model.

    Parameters

    • visible: boolean = false

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

      -

    Returns number

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

    +

Returns number

  • Clear nodes and markup and detach events and observers.

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

    -

    Returns void

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

    +

    Returns void

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

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

    Parameters

    • flag: boolean

    Returns void

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

    -

    Parameters

    Returns Promise<void>

  • Dim or hide whole branches.

    +

    Parameters

    • flag: boolean

    Returns void

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

    +

    Parameters

    Returns Promise<void>

  • Dim or hide unmatched nodes.

    Parameters

    • filter: string | RegExp | NodeFilterCallback

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

    • options: FilterNodesOptions

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

    Returns number

    the number of nodes that match the filter.

    Example

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

    Parameters

    • node: WunderbaumNode
    • where: string

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

    • includeHidden: boolean = false

      Not yet implemented

      -

    Returns undefined | null | WunderbaumNode

  • Return multiline string representation of the node hierarchy. +

Returns undefined | null | WunderbaumNode

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

    Example:

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

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

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

  • 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

  • Sort nodes list by title or custom criteria.

    +

    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.

    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
    • @@ -314,24 +314,24 @@

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

    -

    Returns void

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

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

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

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

    Parameters

    Returns boolean

    false if iteration was canceled

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

    Parameters

    • event: Event

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

    Returns WbEventInfo

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

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

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

    Parameters

    Returns null | Wunderbaum

\ No newline at end of file +

Parameters

Returns null | Wunderbaum

\ No newline at end of file diff --git a/docs/api/enums/types.ChangeType.html b/docs/api/enums/types.ChangeType.html index c5dd7d04..0e142c56 100644 --- a/docs/api/enums/types.ChangeType.html +++ b/docs/api/enums/types.ChangeType.html @@ -1,5 +1,5 @@ -ChangeType | wunderbaum - v0.8.5-0

Enumeration ChangeType

Possible values for () and ().

-

Enumeration Members

any +ChangeType | wunderbaum - v0.9.0

Enumeration ChangeType

Possible values for () and ().

+

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 f166ab4f..c08af79f 100644 --- a/docs/api/enums/types.NavModeEnum.html +++ b/docs/api/enums/types.NavModeEnum.html @@ -1,6 +1,6 @@ -NavModeEnum | wunderbaum - v0.8.5-0

Enumeration NavModeEnum

Initial navigation mode and possible transition.

-

Enumeration Members

cell +NavModeEnum | wunderbaum - v0.9.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 42964962..d3f47e80 100644 --- a/docs/api/enums/types.NodeRegion.html +++ b/docs/api/enums/types.NodeRegion.html @@ -1,9 +1,9 @@ -NodeRegion | wunderbaum - v0.8.5-0

Enumeration NodeRegion

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

-

Enumeration Members

checkbox +NodeRegion | wunderbaum - v0.9.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 240fce5c..07391a5d 100644 --- a/docs/api/enums/types.NodeStatusType.html +++ b/docs/api/enums/types.NodeStatusType.html @@ -1,7 +1,7 @@ -NodeStatusType | wunderbaum - v0.8.5-0

Enumeration NodeStatusType

Possible values for ().

-

Enumeration Members

error +NodeStatusType | wunderbaum - v0.9.0

Enumeration NodeStatusType

Possible values for ().

+

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 0940fcf4..196edffd 100644 --- a/docs/api/enums/types.RenderFlag.html +++ b/docs/api/enums/types.RenderFlag.html @@ -1,5 +1,5 @@ -RenderFlag | wunderbaum - v0.8.5-0

Enumeration RenderFlag

Enumeration Members

clearMarkup +RenderFlag | wunderbaum - v0.9.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 0d52a294..506f8df3 100644 --- a/docs/api/functions/common.decompressSourceData.html +++ b/docs/api/functions/common.decompressSourceData.html @@ -1,4 +1,4 @@ -decompressSourceData | wunderbaum - v0.8.5-0

Function decompressSourceData

  • Decompresses the source data by

    +decompressSourceData | wunderbaum - v0.9.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 bd9bb269..7e0eb8d5 100644 --- a/docs/api/functions/common.makeNodeTitleMatcher.html +++ b/docs/api/functions/common.makeNodeTitleMatcher.html @@ -1,4 +1,4 @@ -makeNodeTitleMatcher | wunderbaum - v0.8.5-0

Function makeNodeTitleMatcher

  • Return a callback that returns true if the node title matches the string +makeNodeTitleMatcher | wunderbaum - v0.9.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 421683b9..875c06ef 100644 --- a/docs/api/functions/common.makeNodeTitleStartMatcher.html +++ b/docs/api/functions/common.makeNodeTitleStartMatcher.html @@ -1,2 +1,2 @@ -makeNodeTitleStartMatcher | wunderbaum - v0.8.5-0

Function makeNodeTitleStartMatcher

\ No newline at end of file +makeNodeTitleStartMatcher | wunderbaum - v0.9.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 ab37a623..1a4c0168 100644 --- a/docs/api/functions/common.nodeTitleSorter.html +++ b/docs/api/functions/common.nodeTitleSorter.html @@ -1,2 +1,2 @@ -nodeTitleSorter | wunderbaum - v0.8.5-0

Function nodeTitleSorter

\ No newline at end of file +nodeTitleSorter | wunderbaum - v0.9.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 bca10ed9..2ff12420 100644 --- a/docs/api/functions/util.adaptiveThrottle.html +++ b/docs/api/functions/util.adaptiveThrottle.html @@ -1,8 +1,8 @@ -adaptiveThrottle | wunderbaum - v0.8.5-0

Function adaptiveThrottle

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

    Function adaptiveThrottle

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

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

      Parameters

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

            • Rest ...args: any[]

            Returns void

      • options: object

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

    \ No newline at end of file +

    Parameters

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

          • Rest ...args: any[]

          Returns void

    • options: object

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

\ No newline at end of file diff --git a/docs/api/functions/util.assert.html b/docs/api/functions/util.assert.html index aa95456e..b8682410 100644 --- a/docs/api/functions/util.assert.html +++ b/docs/api/functions/util.assert.html @@ -1,2 +1,2 @@ -assert | wunderbaum - v0.8.5-0

Function assert

  • Throw an Error if cond is falsey.

    -

    Parameters

    • cond: any
    • msg: string

    Returns void

\ No newline at end of file +assert | wunderbaum - v0.9.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 4cbb9b4c..93c358d7 100644 --- a/docs/api/functions/util.debounce.html +++ b/docs/api/functions/util.debounce.html @@ -1,4 +1,4 @@ -debounce | wunderbaum - v0.8.5-0

Function debounce

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

    Function debounce

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

      Since

      0.1.0

      Example

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

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

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

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

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

Function documentReady

  • Run callback when document was loaded.

    -

    Parameters

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

    Returns void

\ No newline at end of file +documentReady | wunderbaum - v0.9.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 bf6c1abe..9ffad708 100644 --- a/docs/api/functions/util.documentReadyPromise.html +++ b/docs/api/functions/util.documentReadyPromise.html @@ -1,2 +1,2 @@ -documentReadyPromise | wunderbaum - v0.8.5-0

Function documentReadyPromise

  • Resolve when document was loaded.

    -

    Returns Promise<void>

\ No newline at end of file +documentReadyPromise | wunderbaum - v0.9.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 b2c1e189..b189dd3c 100644 --- a/docs/api/functions/util.each.html +++ b/docs/api/functions/util.each.html @@ -1,6 +1,6 @@ -each | wunderbaum - v0.8.5-0

Function each

  • Iterate over Object properties or array elements.

    +each | wunderbaum - v0.9.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 a381b38d..19d5b7e6 100644 --- a/docs/api/functions/util.elemFromHtml.html +++ b/docs/api/functions/util.elemFromHtml.html @@ -1,2 +1,2 @@ -elemFromHtml | wunderbaum - v0.8.5-0

Function elemFromHtml

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

    -

    Type Parameters

    • T = HTMLElement

    Parameters

    • html: string

    Returns T

\ No newline at end of file +elemFromHtml | wunderbaum - v0.9.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 ebfe63bb..ffe7fc5b 100644 --- a/docs/api/functions/util.elemFromSelector.html +++ b/docs/api/functions/util.elemFromSelector.html @@ -1,2 +1,2 @@ -elemFromSelector | wunderbaum - v0.8.5-0

Function elemFromSelector

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

    -

    Type Parameters

    • T = HTMLElement

    Parameters

    • obj: string | T

    Returns T | null

\ No newline at end of file +elemFromSelector | wunderbaum - v0.9.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 f90b104d..1b94b850 100644 --- a/docs/api/functions/util.error.html +++ b/docs/api/functions/util.error.html @@ -1,2 +1,2 @@ -error | wunderbaum - v0.8.5-0

Function error

  • Shortcut for throw new Error(msg).

    -

    Parameters

    • msg: string

    Returns void

\ No newline at end of file +error | wunderbaum - v0.9.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 003957b2..c4705cb2 100644 --- a/docs/api/functions/util.escapeHtml.html +++ b/docs/api/functions/util.escapeHtml.html @@ -1,2 +1,2 @@ -escapeHtml | wunderbaum - v0.8.5-0

Function escapeHtml

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

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeHtml | wunderbaum - v0.9.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 976a8f36..c14ce5a1 100644 --- a/docs/api/functions/util.escapeRegex.html +++ b/docs/api/functions/util.escapeRegex.html @@ -1,2 +1,2 @@ -escapeRegex | wunderbaum - v0.8.5-0

Function escapeRegex

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

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeRegex | wunderbaum - v0.9.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 ca3d8dda..f1bfa4d0 100644 --- a/docs/api/functions/util.escapeTooltip.html +++ b/docs/api/functions/util.escapeTooltip.html @@ -1,2 +1,2 @@ -escapeTooltip | wunderbaum - v0.8.5-0

Function escapeTooltip

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

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +escapeTooltip | wunderbaum - v0.9.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 c1b136a0..76574c82 100644 --- a/docs/api/functions/util.eventToString.html +++ b/docs/api/functions/util.eventToString.html @@ -1,8 +1,8 @@ -eventToString | wunderbaum - v0.8.5-0

Function eventToString

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

    +eventToString | wunderbaum - v0.9.0

    Function eventToString

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

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

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

      Parameters

      • event: Event

      Returns string

    \ No newline at end of file +

    Parameters

    • event: Event

    Returns string

\ No newline at end of file diff --git a/docs/api/functions/util.extend.html b/docs/api/functions/util.extend.html index 0158c31a..5bbbfa50 100644 --- a/docs/api/functions/util.extend.html +++ b/docs/api/functions/util.extend.html @@ -1,3 +1,3 @@ -extend | wunderbaum - v0.8.5-0

Function extend

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

    +extend | wunderbaum - v0.9.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 2feef38e..1a639fec 100644 --- a/docs/api/functions/util.extractHtmlText.html +++ b/docs/api/functions/util.extractHtmlText.html @@ -1,2 +1,2 @@ -extractHtmlText | wunderbaum - v0.8.5-0

Function extractHtmlText

  • TODO

    -

    Parameters

    • s: string

    Returns string

\ No newline at end of file +extractHtmlText | wunderbaum - v0.9.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 4a2d80ad..d2ba1ad1 100644 --- a/docs/api/functions/util.getOption.html +++ b/docs/api/functions/util.getOption.html @@ -1,5 +1,5 @@ -getOption | wunderbaum - v0.8.5-0

Function getOption

  • Return opts.NAME if opts is valid and

    +getOption | wunderbaum - v0.9.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 77492b46..fa50ae03 100644 --- a/docs/api/functions/util.getValueFromElem.html +++ b/docs/api/functions/util.getValueFromElem.html @@ -1,4 +1,4 @@ -getValueFromElem | wunderbaum - v0.8.5-0

Function getValueFromElem

  • Read the value from an HTML input element.

    +getValueFromElem | wunderbaum - v0.9.0

    Function getValueFromElem

    • Read the value from an HTML input element.

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

      Parameters

      • elem: HTMLElement

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

      • coerce: boolean = false

        pass true to convert date/time inputs to Date.

      Returns any

      the value

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

Function isArray

  • Return true if obj is of type array.

    -

    Parameters

    • obj: any

    Returns boolean

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

Function isArray

  • Return true if obj is of type array.

    +

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file diff --git a/docs/api/functions/util.isEmptyObject.html b/docs/api/functions/util.isEmptyObject.html index 59e8f5a1..c9636f50 100644 --- a/docs/api/functions/util.isEmptyObject.html +++ b/docs/api/functions/util.isEmptyObject.html @@ -1,2 +1,2 @@ -isEmptyObject | wunderbaum - v0.8.5-0

Function isEmptyObject

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

    -

    Parameters

    • obj: any

    Returns boolean

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

Function isEmptyObject

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

    +

    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 7f445b67..2ecdc689 100644 --- a/docs/api/functions/util.isFunction.html +++ b/docs/api/functions/util.isFunction.html @@ -1,2 +1,2 @@ -isFunction | wunderbaum - v0.8.5-0

Function isFunction

  • Return true if obj is of type function.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isFunction | wunderbaum - v0.9.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 0d6cca26..3eba8852 100644 --- a/docs/api/functions/util.isPlainObject.html +++ b/docs/api/functions/util.isPlainObject.html @@ -1,2 +1,2 @@ -isPlainObject | wunderbaum - v0.8.5-0

Function isPlainObject

  • Return true if obj is of type Object.

    -

    Parameters

    • obj: any

    Returns boolean

\ No newline at end of file +isPlainObject | wunderbaum - v0.9.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 e3133b68..f713e7b3 100644 --- a/docs/api/functions/util.noop.html +++ b/docs/api/functions/util.noop.html @@ -1,2 +1,2 @@ -noop | wunderbaum - v0.8.5-0

Function noop

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

    -

    Parameters

    • Rest ...args: any[]

    Returns any

\ No newline at end of file +noop | wunderbaum - v0.9.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 e262e7b8..9b58ed63 100644 --- a/docs/api/functions/util.onEvent.html +++ b/docs/api/functions/util.onEvent.html @@ -1,9 +1,9 @@ -onEvent | wunderbaum - v0.8.5-0

Function onEvent

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

    +onEvent | wunderbaum - v0.9.0

    Function onEvent

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

      Parameters

      • rootTarget: string | EventTarget

        EventTarget or selector

        -
      • eventNames: string
      • handler: EventCallbackType

      Returns void

    • Bind one or more event handlers using event delegation.

      +
    • eventNames: string
    • handler: EventCallbackType

    Returns void

  • Bind one or more event handlers using event delegation.

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

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

    Parameters

    • rootTarget: string | EventTarget

      EventTarget or selector

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

    Returns void

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

    \ No newline at end of file diff --git a/docs/api/functions/util.overrideMethod.html b/docs/api/functions/util.overrideMethod.html index ecf89d47..cb23c545 100644 --- a/docs/api/functions/util.overrideMethod.html +++ b/docs/api/functions/util.overrideMethod.html @@ -1,4 +1,4 @@ -overrideMethod | wunderbaum - v0.8.5-0

    Function overrideMethod

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

      +overrideMethod | wunderbaum - v0.9.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.setElemDisplay.html b/docs/api/functions/util.setElemDisplay.html index 03ed3667..a7e02381 100644 --- a/docs/api/functions/util.setElemDisplay.html +++ b/docs/api/functions/util.setElemDisplay.html @@ -1,2 +1,2 @@ -setElemDisplay | wunderbaum - v0.8.5-0

    Function setElemDisplay

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

      -

      Parameters

      • elem: string | HTMLElement
      • flag: boolean

      Returns void

    \ No newline at end of file +setElemDisplay | wunderbaum - v0.9.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 c4b2a010..682d6601 100644 --- a/docs/api/functions/util.setTimeoutPromise.html +++ b/docs/api/functions/util.setTimeoutPromise.html @@ -1,2 +1,2 @@ -setTimeoutPromise | wunderbaum - v0.8.5-0

    Function setTimeoutPromise

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

      -

      Type Parameters

      • T = unknown

      Parameters

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

            • Rest ...args: any[]

            Returns T

      • ms: number

      Returns Promise<T>

    \ No newline at end of file +setTimeoutPromise | wunderbaum - v0.9.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 fb38d7a4..8240716d 100644 --- a/docs/api/functions/util.setValueToElem.html +++ b/docs/api/functions/util.setValueToElem.html @@ -1,4 +1,4 @@ -setValueToElem | wunderbaum - v0.8.5-0

    Function setValueToElem

    • Set the value of an HTML input element.

      +setValueToElem | wunderbaum - v0.9.0

      Function setValueToElem

      • Set the value of an HTML input element.

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

        Parameters

        • elem: HTMLElement

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

        • value: any

          a value that matches the target element.

          -

        Returns void

      \ No newline at end of file +

    Returns void

    \ No newline at end of file diff --git a/docs/api/functions/util.sleep.html b/docs/api/functions/util.sleep.html index 1253c5e1..1a76e59f 100644 --- a/docs/api/functions/util.sleep.html +++ b/docs/api/functions/util.sleep.html @@ -1,6 +1,6 @@ -sleep | wunderbaum - v0.8.5-0

    Function sleep

    • Wait ms microseconds.

      +sleep | wunderbaum - v0.9.0

      Function sleep

      • Wait ms microseconds.

        Example:

        await sleep(1000);
         

        Parameters

        • ms: number

          duration

          -

        Returns Promise<unknown>

      \ No newline at end of file +

    Returns Promise<unknown>

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

    Function throttle

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

      Function throttle

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

        Since

        0.1.0

        Example

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

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

        // Cancel the trailing throttled invocation.
        jQuery(window).on('popstate', throttled.cancel)
        -
      \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/functions/util.toSet.html b/docs/api/functions/util.toSet.html index 060e8a67..cb13638f 100644 --- a/docs/api/functions/util.toSet.html +++ b/docs/api/functions/util.toSet.html @@ -1,2 +1,2 @@ -toSet | wunderbaum - v0.8.5-0

    Function toSet

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

      -

      Parameters

      • val: any

      Returns Set<string>

    \ No newline at end of file +toSet | wunderbaum - v0.9.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 f0df7d1f..c1f5b708 100644 --- a/docs/api/functions/util.toggleCheckbox.html +++ b/docs/api/functions/util.toggleCheckbox.html @@ -1,7 +1,7 @@ -toggleCheckbox | wunderbaum - v0.8.5-0

    Function toggleCheckbox

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

      +toggleCheckbox | wunderbaum - v0.9.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 541004bb..5b985c87 100644 --- a/docs/api/functions/util.type.html +++ b/docs/api/functions/util.type.html @@ -1,2 +1,2 @@ -type | wunderbaum - v0.8.5-0

    Function type

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

      -

      Parameters

      • obj: any

      Returns string

    \ No newline at end of file +type | wunderbaum - v0.9.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 1542ede3..4a858e89 100644 --- a/docs/api/hierarchy.html +++ b/docs/api/hierarchy.html @@ -1 +1 @@ -wunderbaum - v0.8.5-0
    \ No newline at end of file +wunderbaum - v0.9.0
    \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index dd4b5b87..3ca0f214 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1,4 +1,4 @@ -wunderbaum - v0.8.5-0

    wunderbaum - v0.8.5-0

    wunderbaum

    GitHub version +wunderbaum - v0.9.0

    wunderbaum - v0.9.0

    \ 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 1588891d..013d8de1 100644 --- a/docs/api/interfaces/types.AddChildrenOptions.html +++ b/docs/api/interfaces/types.AddChildrenOptions.html @@ -1,13 +1,13 @@ -AddChildrenOptions | wunderbaum - v0.8.5-0

    Interface AddChildrenOptions

    Possible values for ().

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

    Properties

    _level? +AddChildrenOptions | wunderbaum - v0.9.0

    Interface AddChildrenOptions

    Possible values for ().

    +
    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 174157e7..98331ad7 100644 --- a/docs/api/interfaces/types.ApplyCommandOptions.html +++ b/docs/api/interfaces/types.ApplyCommandOptions.html @@ -1,2 +1,2 @@ -ApplyCommandOptions | wunderbaum - v0.8.5-0

    Interface ApplyCommandOptions

    Possible values for () and ().

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

    Indexable

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

    Interface ApplyCommandOptions

    Possible values for () and ().

    +
    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 a7daaf50..7caa3dfe 100644 --- a/docs/api/interfaces/types.ColumnDefinition.html +++ b/docs/api/interfaces/types.ColumnDefinition.html @@ -1,6 +1,6 @@ -ColumnDefinition | wunderbaum - v0.8.5-0

    Interface ColumnDefinition

    Column type definitions.

    +ColumnDefinition | wunderbaum - v0.9.0

    Interface ColumnDefinition

    Column type definitions.

    interface ColumnDefinition {
        _ofsPx?: number;
        _weight?: number;
        _widthPx?: number;
        classes?: string;
        headerClasses?: string;
        html?: string;
        id: string;
        minWidth?: string | number;
        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;
        headerClasses?: string;
        html?: string;
        id: string;
        minWidth?: string | number;
        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.

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

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

    -
    minWidth?: string | number

    Only used for columns with a relative weight. +

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

    +
    minWidth?: string | number

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

    -
    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 a26f7030..14743b6c 100644 --- a/docs/api/interfaces/types.ColumnEventInfo.html +++ b/docs/api/interfaces/types.ColumnEventInfo.html @@ -1,10 +1,10 @@ -ColumnEventInfo | wunderbaum - v0.8.5-0

    Interface ColumnEventInfo

    Column information (passed to the render event).

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

    Properties

    elem +ColumnEventInfo | wunderbaum - v0.9.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 829b73d1..53f2c3cb 100644 --- a/docs/api/interfaces/types.DragEventType.html +++ b/docs/api/interfaces/types.DragEventType.html @@ -1,16 +1,16 @@ -DragEventType | wunderbaum - v0.8.5-0

    Interface DragEventType

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

    Hierarchy (view full)

    Properties

    event +DragEventType | wunderbaum - v0.9.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 866330f9..51f60067 100644 --- a/docs/api/interfaces/types.DropEventType.html +++ b/docs/api/interfaces/types.DropEventType.html @@ -1,4 +1,4 @@ -DropEventType | wunderbaum - v0.8.5-0

    Interface DropEventType

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

    Hierarchy (view full)

    Properties

    event +DropEventType | wunderbaum - v0.9.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 efa28af0..954a31d7 100644 --- a/docs/api/interfaces/types.ExpandAllOptions.html +++ b/docs/api/interfaces/types.ExpandAllOptions.html @@ -1,18 +1,18 @@ -ExpandAllOptions | wunderbaum - v0.8.5-0

    Interface ExpandAllOptions

    Possible values for () and ().

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

    Properties

    depth? +ExpandAllOptions | wunderbaum - v0.9.0

    Interface ExpandAllOptions

    Possible values for () and ().

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

    Properties

    depth?: number

    Restrict expand level

    Default

    99
     
    -
    force?: boolean

    Ignore minExpandLevel option

    +
    force?: boolean

    Ignore minExpandLevel option

    Default

    false
     
    -
    keepActiveNodeVisible?: boolean

    Keep active node visible

    +
    keepActiveNodeVisible?: boolean

    Keep active node visible

    Default

    true
     
    -
    loadLazy?: boolean

    Expand and load lazy nodes

    +
    loadLazy?: boolean

    Expand and load lazy nodes

    Default

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

    Interface FilterNodesOptions

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

    Interface FilterNodesOptions

    Possible option values for (). 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 93a4aef1..ee8abc65 100644 --- a/docs/api/interfaces/types.MakeVisibleOptions.html +++ b/docs/api/interfaces/types.MakeVisibleOptions.html @@ -1,14 +1,14 @@ -MakeVisibleOptions | wunderbaum - v0.8.5-0

    Interface MakeVisibleOptions

    Possible values for ().

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

    Properties

    noAnimation? +MakeVisibleOptions | wunderbaum - v0.9.0

    Interface MakeVisibleOptions

    Possible values for ().

    +
    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 f3893d4c..1cd9084a 100644 --- a/docs/api/interfaces/types.NavigateOptions.html +++ b/docs/api/interfaces/types.NavigateOptions.html @@ -1,8 +1,8 @@ -NavigateOptions | wunderbaum - v0.8.5-0

    Interface NavigateOptions

    Possible values for ().

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

    Properties

    activate? +NavigateOptions | wunderbaum - v0.9.0

    Interface NavigateOptions

    Possible values for ().

    +
    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 94f125f0..b697163b 100644 --- a/docs/api/interfaces/types.NodeTypeDefinition.html +++ b/docs/api/interfaces/types.NodeTypeDefinition.html @@ -1,15 +1,15 @@ -NodeTypeDefinition | wunderbaum - v0.8.5-0

    Interface NodeTypeDefinition

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

    Interface NodeTypeDefinition

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

    See

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

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

    Indexable

    [key: string]: unknown

    Properties

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

    Indexable

    [key: string]: unknown

    Properties

    checkbox?: CheckboxOption

    En/disable checkbox for matching nodes.

    -
    classes?: string

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

    -
    colspan?: boolean

    Only show title and hide other columns if any.

    -
    icon?: IconOption

    Default icon for matching nodes.

    -
    iconTooltip?: string | boolean

    Default icon for matching nodes.

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

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

    +
    colspan?: boolean

    Only show title and hide other columns if any.

    +
    icon?: IconOption

    Default icon for matching nodes.

    +
    iconTooltip?: string | boolean

    Default icon for matching nodes.

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

    Interface RenderOptions

    Possible values for ().

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

    Properties

    after? +RenderOptions | wunderbaum - v0.9.0

    Interface RenderOptions

    Possible values for ().

    +
    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.ScrollIntoViewOptions.html b/docs/api/interfaces/types.ScrollIntoViewOptions.html index 84ad4f09..6ab4d925 100644 --- a/docs/api/interfaces/types.ScrollIntoViewOptions.html +++ b/docs/api/interfaces/types.ScrollIntoViewOptions.html @@ -1,14 +1,14 @@ -ScrollIntoViewOptions | wunderbaum - v0.8.5-0

    Interface ScrollIntoViewOptions

    Possible values for () options argument.

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

    Hierarchy (view full)

    Properties

    noAnimation? +ScrollIntoViewOptions | wunderbaum - v0.9.0

    Interface ScrollIntoViewOptions

    Possible values for () 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 95247c02..9ffebffa 100644 --- a/docs/api/interfaces/types.ScrollToOptions.html +++ b/docs/api/interfaces/types.ScrollToOptions.html @@ -1,5 +1,5 @@ -ScrollToOptions | wunderbaum - v0.8.5-0

    Interface ScrollToOptions

    Possible values for () options argument.

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

    Hierarchy (view full)

    Properties

    noAnimation? +ScrollToOptions | wunderbaum - v0.9.0

    Interface ScrollToOptions

    Possible values for () options argument.

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

    Hierarchy (view full)

    Properties

    noAnimation? 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 740a3483..8721e201 100644 --- a/docs/api/interfaces/types.SetActiveOptions.html +++ b/docs/api/interfaces/types.SetActiveOptions.html @@ -1,16 +1,16 @@ -SetActiveOptions | wunderbaum - v0.8.5-0

    Interface SetActiveOptions

    Possible values for WunderbaumNode.setActive options argument.

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

    Properties

    colIdx? +SetActiveOptions | wunderbaum - v0.9.0

    Interface SetActiveOptions

    Possible values for WunderbaumNode.setActive options argument.

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

    Properties

    colIdx?: string | number

    Also call ().

    -
    edit?: boolean

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

    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 ea11b61d..bca4e6ce 100644 --- a/docs/api/interfaces/types.SetColumnOptions.html +++ b/docs/api/interfaces/types.SetColumnOptions.html @@ -1,9 +1,9 @@ -SetColumnOptions | wunderbaum - v0.8.5-0

    Interface SetColumnOptions

    Possible values for () options argument.

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

    Properties

    edit? +SetColumnOptions | wunderbaum - v0.9.0

    Interface SetColumnOptions

    Possible values for () 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 7115214a..3f62b352 100644 --- a/docs/api/interfaces/types.SetExpandedOptions.html +++ b/docs/api/interfaces/types.SetExpandedOptions.html @@ -1,5 +1,5 @@ -SetExpandedOptions | wunderbaum - v0.8.5-0

    Interface SetExpandedOptions

    Possible values for WunderbaumNode.setExpanded options argument.

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

    Properties

    force? +SetExpandedOptions | wunderbaum - v0.9.0

    Interface SetExpandedOptions

    Possible values for WunderbaumNode.setExpanded options argument.

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

    Properties

    Properties

    force?: boolean

    Default

    false
     
    -
    immediate?: boolean

    Immediately update viewport (async otherwise).

    +
    immediate?: boolean

    Immediately update viewport (async otherwise).

    Default

    false
     
    -
    noAnimation?: boolean

    Do not animate expand (currently not implemented).

    +
    noAnimation?: boolean

    Do not animate expand (currently not implemented).

    Default

    false
     
    -
    noEvents?: boolean

    Do not send events.

    +
    noEvents?: boolean

    Do not send events.

    Default

    false
     
    -
    scrollIntoView?: boolean

    Scroll up to bring expanded nodes into viewport.

    +
    scrollIntoView?: boolean

    Scroll up to bring expanded nodes into viewport.

    Default

    false
     
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/interfaces/types.SetSelectedOptions.html b/docs/api/interfaces/types.SetSelectedOptions.html index 9dd3b040..45ed3b18 100644 --- a/docs/api/interfaces/types.SetSelectedOptions.html +++ b/docs/api/interfaces/types.SetSelectedOptions.html @@ -1,18 +1,18 @@ -SetSelectedOptions | wunderbaum - v0.8.5-0

    Interface SetSelectedOptions

    Possible values for () options argument.

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

    Properties

    callback? +SetSelectedOptions | wunderbaum - v0.9.0

    Interface SetSelectedOptions

    Possible values for () 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 90ae055d..dd608e5f 100644 --- a/docs/api/interfaces/types.SetStatusOptions.html +++ b/docs/api/interfaces/types.SetStatusOptions.html @@ -1,6 +1,6 @@ -SetStatusOptions | wunderbaum - v0.8.5-0

    Interface SetStatusOptions

    Possible values for () options argument.

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

    Properties

    details? +SetStatusOptions | wunderbaum - v0.9.0

    Interface SetStatusOptions

    Possible values for () 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.SourceAjaxType.html b/docs/api/interfaces/types.SourceAjaxType.html index 812bb649..f720db42 100644 --- a/docs/api/interfaces/types.SourceAjaxType.html +++ b/docs/api/interfaces/types.SourceAjaxType.html @@ -1,5 +1,5 @@ -SourceAjaxType | wunderbaum - v0.8.5-0

    Interface SourceAjaxType

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

    Properties

    body? +SourceAjaxType | wunderbaum - v0.9.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 223d2d7d..778bf8e0 100644 --- a/docs/api/interfaces/types.SourceObjectType.html +++ b/docs/api/interfaces/types.SourceObjectType.html @@ -1,4 +1,4 @@ -SourceObjectType | wunderbaum - v0.8.5-0

    Interface SourceObjectType

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

    Properties

    _format? +SourceObjectType | wunderbaum - v0.9.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 51d58aed..32dde093 100644 --- a/docs/api/interfaces/types.UpdateOptions.html +++ b/docs/api/interfaces/types.UpdateOptions.html @@ -1,6 +1,6 @@ -UpdateOptions | wunderbaum - v0.8.5-0

    Interface UpdateOptions

    Possible values for () options argument.

    -
    interface UpdateOptions {
        immediate?: boolean;
    }

    Properties

    immediate? +UpdateOptions | wunderbaum - v0.9.0

    Interface UpdateOptions

    Possible values for () 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 b06c3980..5a7b7ed0 100644 --- a/docs/api/interfaces/types.VisitRowsOptions.html +++ b/docs/api/interfaces/types.VisitRowsOptions.html @@ -1,5 +1,5 @@ -VisitRowsOptions | wunderbaum - v0.8.5-0

    Interface VisitRowsOptions

    Options passed to ().

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

    Properties

    includeHidden? +VisitRowsOptions | wunderbaum - v0.9.0

    Interface VisitRowsOptions

    Options passed to ().

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

    Properties

    Properties

    includeHidden?: boolean

    Skip filtered nodes and children of collapsed nodes.

    Default

    false
     
    -
    includeSelf?: boolean

    Return the start node as first result.

    +
    includeSelf?: boolean

    Return the start node as first result.

    Default

    true
     
    -
    reverse?: boolean

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

    +
    reverse?: boolean

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

    Default

    false
     
    -
    start?: null | WunderbaumNode

    Start traversal at this node

    +
    start?: null | WunderbaumNode

    Start traversal at this node

    Default

    first (topmost) tree node
     
    -
    wrap?: boolean

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

    wrap?: boolean

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

    Default

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

    Interface WbActivateEventType

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

    Hierarchy (view full)

    Properties

    event +WbActivateEventType | wunderbaum - v0.9.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.WbChangeEventType.html b/docs/api/interfaces/types.WbChangeEventType.html index 6c490d74..55f0831a 100644 --- a/docs/api/interfaces/types.WbChangeEventType.html +++ b/docs/api/interfaces/types.WbChangeEventType.html @@ -1,4 +1,4 @@ -WbChangeEventType | wunderbaum - v0.8.5-0

    Interface WbChangeEventType

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

    Hierarchy (view full)

    Properties

    event? +WbChangeEventType | wunderbaum - v0.9.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 69ed08dc..26f3c668 100644 --- a/docs/api/interfaces/types.WbClickEventType.html +++ b/docs/api/interfaces/types.WbClickEventType.html @@ -1,14 +1,14 @@ -WbClickEventType | wunderbaum - v0.8.5-0

    Interface WbClickEventType

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

    Hierarchy (view full)

    Properties

    event +WbClickEventType | wunderbaum - v0.9.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 eb570dd5..0c596934 100644 --- a/docs/api/interfaces/types.WbDeactivateEventType.html +++ b/docs/api/interfaces/types.WbDeactivateEventType.html @@ -1,4 +1,4 @@ -WbDeactivateEventType | wunderbaum - v0.8.5-0

    Interface WbDeactivateEventType

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

    Hierarchy (view full)

    Properties

    event +WbDeactivateEventType | wunderbaum - v0.9.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 17138670..082b9321 100644 --- a/docs/api/interfaces/types.WbEditApplyEventType.html +++ b/docs/api/interfaces/types.WbEditApplyEventType.html @@ -1,4 +1,4 @@ -WbEditApplyEventType | wunderbaum - v0.8.5-0

    Interface WbEditApplyEventType

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

    Hierarchy (view full)

    Properties

    event? +WbEditApplyEventType | wunderbaum - v0.9.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 a629072f..7e819774 100644 --- a/docs/api/interfaces/types.WbEditEditEventType.html +++ b/docs/api/interfaces/types.WbEditEditEventType.html @@ -1,4 +1,4 @@ -WbEditEditEventType | wunderbaum - v0.8.5-0

    Interface WbEditEditEventType

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

    Hierarchy (view full)

    Properties

    event? +WbEditEditEventType | wunderbaum - v0.9.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 02c8f123..b7a8b6a7 100644 --- a/docs/api/interfaces/types.WbErrorEventType.html +++ b/docs/api/interfaces/types.WbErrorEventType.html @@ -1,17 +1,17 @@ -WbErrorEventType | wunderbaum - v0.8.5-0

    Interface WbErrorEventType

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

    Hierarchy (view full)

    Properties

    error +WbErrorEventType | wunderbaum - v0.9.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 fa3ef207..8be06c44 100644 --- a/docs/api/interfaces/types.WbEventInfo.html +++ b/docs/api/interfaces/types.WbEventInfo.html @@ -1,6 +1,6 @@ -WbEventInfo | wunderbaum - v0.8.5-0

    Interface WbEventInfo

    Additional information derived from mouse or keyboard events.

    +WbEventInfo | wunderbaum - v0.9.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 b7e998d7..b3938791 100644 --- a/docs/api/interfaces/types.WbExpandEventType.html +++ b/docs/api/interfaces/types.WbExpandEventType.html @@ -1,4 +1,4 @@ -WbExpandEventType | wunderbaum - v0.8.5-0

    Interface WbExpandEventType

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

    Hierarchy (view full)

    Properties

    event? +WbExpandEventType | wunderbaum - v0.9.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 dceec345..1549fc8a 100644 --- a/docs/api/interfaces/types.WbFocusEventType.html +++ b/docs/api/interfaces/types.WbFocusEventType.html @@ -1,12 +1,12 @@ -WbFocusEventType | wunderbaum - v0.8.5-0

    Interface WbFocusEventType

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

    Hierarchy (view full)

    Properties

    event +WbFocusEventType | wunderbaum - v0.9.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 4f679dcf..24bb8b99 100644 --- a/docs/api/interfaces/types.WbIconBadgeEventResultType.html +++ b/docs/api/interfaces/types.WbIconBadgeEventResultType.html @@ -1,7 +1,7 @@ -WbIconBadgeEventResultType | wunderbaum - v0.8.5-0

    Interface WbIconBadgeEventResultType

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

    Properties

    badge +WbIconBadgeEventResultType | wunderbaum - v0.9.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 b3ed19a6..62cd29c1 100644 --- a/docs/api/interfaces/types.WbIconBadgeEventType.html +++ b/docs/api/interfaces/types.WbIconBadgeEventType.html @@ -1,4 +1,4 @@ -WbIconBadgeEventType | wunderbaum - v0.8.5-0

    Interface WbIconBadgeEventType

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

    Hierarchy (view full)

    Properties

    event? +WbIconBadgeEventType | wunderbaum - v0.9.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 87f996cb..028430d0 100644 --- a/docs/api/interfaces/types.WbInitEventType.html +++ b/docs/api/interfaces/types.WbInitEventType.html @@ -1,11 +1,11 @@ -WbInitEventType | wunderbaum - v0.8.5-0

    Interface WbInitEventType

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

    Hierarchy (view full)

    Properties

    error? +WbInitEventType | wunderbaum - v0.9.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 53e3efc5..a2393545 100644 --- a/docs/api/interfaces/types.WbKeydownEventType.html +++ b/docs/api/interfaces/types.WbKeydownEventType.html @@ -1,13 +1,13 @@ -WbKeydownEventType | wunderbaum - v0.8.5-0

    Interface WbKeydownEventType

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

    Hierarchy (view full)

    Properties

    event +WbKeydownEventType | wunderbaum - v0.9.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 c472957b..5d1fc9af 100644 --- a/docs/api/interfaces/types.WbModifyChildEventType.html +++ b/docs/api/interfaces/types.WbModifyChildEventType.html @@ -1,4 +1,4 @@ -WbModifyChildEventType | wunderbaum - v0.8.5-0

    Interface WbModifyChildEventType

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

    Hierarchy (view full)

    Properties

    child +WbModifyChildEventType | wunderbaum - v0.9.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 a84e6100..c21805fd 100644 --- a/docs/api/interfaces/types.WbNodeData.html +++ b/docs/api/interfaces/types.WbNodeData.html @@ -1,6 +1,6 @@ -WbNodeData | wunderbaum - v0.8.5-0

    Interface WbNodeData

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

    +WbNodeData | wunderbaum - v0.9.0

    Interface WbNodeData

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

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

    Indexable

    [key: string]: unknown

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

    -

    Properties

    Properties

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

    Make child nodes single-select radio buttons.

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

    Properties

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

    Make child nodes single-select radio buttons.

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

    Interface WbNodeEventType

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

    Hierarchy (view full)

    Properties

    event? +WbNodeEventType | wunderbaum - v0.9.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 a7de2aea..9684ab05 100644 --- a/docs/api/interfaces/types.WbReceiveEventType.html +++ b/docs/api/interfaces/types.WbReceiveEventType.html @@ -1,4 +1,4 @@ -WbReceiveEventType | wunderbaum - v0.8.5-0

    Interface WbReceiveEventType

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

    Hierarchy (view full)

    Properties

    event? +WbReceiveEventType | wunderbaum - v0.9.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 abbe3683..085888b9 100644 --- a/docs/api/interfaces/types.WbRenderEventType.html +++ b/docs/api/interfaces/types.WbRenderEventType.html @@ -1,4 +1,4 @@ -WbRenderEventType | wunderbaum - v0.8.5-0

    Interface WbRenderEventType

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

    Hierarchy (view full)

    Properties

    allColInfosById +WbRenderEventType | wunderbaum - v0.9.0

    Interface WbRenderEventType

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

    Hierarchy (view full)

    Properties

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

    Properties

    allColInfosById: ColumnEventInfoMap

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

    -
    event?: Event

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

    -
    isColspan: boolean

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

    -
    isNew: boolean

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

    event?: Event

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

    +
    isColspan: boolean

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

    +
    isNew: boolean

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

    -

    The affected target node.

    -
    nodeElem: HTMLSpanElement

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

    -
    renderColInfosById: ColumnEventInfoMap

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

    The affected target node.

    +
    nodeElem: HTMLSpanElement

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

    +
    renderColInfosById: ColumnEventInfoMap

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

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

    The affected tree instance.

    -
    type: string

    Name of the event.

    -

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

    The affected tree instance.

    +
    type: string

    Name of the event.

    +

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

    util: any

    Exposed utility module methods +

    util: any

    Exposed utility module methods (see API docs).

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

    Interface WbSelectEventType

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

    Hierarchy (view full)

    Properties

    event? +WbSelectEventType | wunderbaum - v0.9.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 0560d699..9f8a3417 100644 --- a/docs/api/interfaces/types.WbTreeEventType.html +++ b/docs/api/interfaces/types.WbTreeEventType.html @@ -1,10 +1,10 @@ -WbTreeEventType | wunderbaum - v0.8.5-0

    Interface WbTreeEventType

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

    Hierarchy (view full)

    Properties

    event? +WbTreeEventType | wunderbaum - v0.9.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 efa42655..aeafd048 100644 --- a/docs/api/interfaces/wb_options.WunderbaumOptions.html +++ b/docs/api/interfaces/wb_options.WunderbaumOptions.html @@ -1,11 +1,11 @@ -WunderbaumOptions | wunderbaum - v0.8.5-0

    Interface WunderbaumOptions

    Available options for wunderbaum.Wunderbaum.

    +WunderbaumOptions | wunderbaum - v0.9.0

    Interface WunderbaumOptions

    Available options for wunderbaum.Wunderbaum.

    Options are passed to the constructor as plain object:

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

    Event handlers are also passed as callbacks

    const tree = new mar10.Wunderbaum({
    ...
    init: (e) => {
    console.log(`Tree ${e.tree} was initialized and loaded.`)
    },
    activate: (e) => {
    console.log(`Node ${e.node} was activated.`)
    },
    ...
    });
    -
    interface WunderbaumOptions {
        activate?: ((e) => void);
        adjustHeight?: boolean;
        autoCollapse?: boolean;
        beforeActivate?: ((e) => WbCancelableEventResultType);
        beforeExpand?: ((e) => WbCancelableEventResultType);
        beforeSelect?: ((e) => WbCancelableEventResultType);
        change?: ((e) => void);
        checkbox?: DynamicCheckboxOption;
        click?: ((e) => WbCancelableEventResultType);
        columns?: ColumnDefinitionList;
        connectTopBreadcrumb?: HTMLElement;
        dblclick?: ((e) => WbCancelableEventResultType);
        deactivate?: ((e) => WbCancelableEventResultType);
        debugLevel?: number;
        discard?: ((e) => void);
        dnd?: DndOptionsType;
        edit?: EditOptionsType;
        element: string | HTMLDivElement;
        emptyChildListExpandable?: boolean;
        enabled?: boolean;
        error?: ((e) => void);
        expand?: ((e) => void);
        filter?: FilterOptionsType;
        fixedCol?: boolean;
        focus?: ((e) => void);
        header?: null | string | boolean;
        icon?: DynamicIconOption;
        iconBadge?: ((e) => WbIconBadgeEventResultType);
        iconMap?: string | {
            [key: string]: string;
        };
        iconTooltip?: DynamicBoolOrStringOption;
        id?: string;
        init?: ((e) => void);
        keydown?: ((e) => WbCancelableEventResultType);
        lazyLoad?: ((e) => void);
        load?: ((e) => void);
        minExpandLevel?: number;
        modifyChild?: ((e) => void);
        navigationModeOption?: NavModeEnum;
        quicksearch?: boolean;
        receive?: ((e) => void);
        render?: ((e) => void);
        renderStatusNode?: ((e) => void);
        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);
        change?: ((e) => void);
        checkbox?: DynamicCheckboxOption;
        click?: ((e) => WbCancelableEventResultType);
        columns?: ColumnDefinitionList;
        connectTopBreadcrumb?: HTMLElement;
        dblclick?: ((e) => WbCancelableEventResultType);
        deactivate?: ((e) => WbCancelableEventResultType);
        debugLevel?: number;
        discard?: ((e) => void);
        dnd?: DndOptionsType;
        edit?: EditOptionsType;
        element: string | HTMLDivElement;
        emptyChildListExpandable?: boolean;
        enabled?: boolean;
        error?: ((e) => void);
        expand?: ((e) => void);
        filter?: FilterOptionsType;
        fixedCol?: boolean;
        focus?: ((e) => void);
        header?: null | string | boolean;
        icon?: DynamicIconOption;
        iconBadge?: ((e) => WbIconBadgeEventResultType);
        iconMap?: string | {
            [key: string]: string;
        };
        iconTooltip?: DynamicBoolOrStringOption;
        id?: string;
        init?: ((e) => void);
        keydown?: ((e) => WbCancelableEventResultType);
        lazyLoad?: ((e) => void);
        load?: ((e) => void);
        minExpandLevel?: number;
        modifyChild?: ((e) => void);
        navigationModeOption?: NavModeEnum;
        quicksearch?: boolean;
        receive?: ((e) => void);
        render?: ((e) => void);
        renderStatusNode?: ((e) => void);
        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.

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

    +
    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), @@ -111,65 +111,65 @@ on the parent container.

    Set this option to false will disable auto-resizing.

    @default: true

    -
    autoCollapse?: boolean

    Collapse siblings when a node is expanded. +

    autoCollapse?: boolean

    Collapse siblings when a node is expanded. Default: false

    -

    If true, render a checkbox before the node tile to allow selection with the +

    If true, render a checkbox before the node tile to allow selection with the mouse. Pass "radio" to render a radio button instead. Default: false.

    -

    A list of maps that define column headers. If this option is set, +

    A list of maps that define column headers. If this option is set, Wunderbaum becomes a treegrid control instead of a plain tree. Column definitions can be passed as tree option, or be part of a source response. Default: [] meaning this is a plain tree.

    -
    connectTopBreadcrumb?: HTMLElement

    HTMLElement that receives the top nodes breadcrumb. +

    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 4af40606..1ca22730 100644 --- a/docs/api/modules/common.html +++ b/docs/api/modules/common.html @@ -1,4 +1,4 @@ -common | wunderbaum - v0.8.5-0

    Module common

    Index

    Variables

    DEFAULT_DEBUGLEVEL +common | wunderbaum - v0.9.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 a4bda70f..4efde593 100644 --- a/docs/api/modules/types.html +++ b/docs/api/modules/types.html @@ -1,4 +1,4 @@ -types | wunderbaum - v0.8.5-0

    Module types

    Index

    Enumerations

    ChangeType +types | wunderbaum - v0.9.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 7903f286..c40f66a5 100644 --- a/docs/api/modules/util.html +++ b/docs/api/modules/util.html @@ -1,4 +1,4 @@ -util | wunderbaum - v0.8.5-0

    Module util

    Index

    Function

    debounce +util | wunderbaum - v0.9.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 688792fb..8d48d33a 100644 --- a/docs/api/modules/wb_node.html +++ b/docs/api/modules/wb_node.html @@ -1,2 +1,2 @@ -wb_node | wunderbaum - v0.8.5-0

    Module wb_node

    Index

    Classes

    \ No newline at end of file +wb_node | wunderbaum - v0.9.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 21925a33..8f5e9a08 100644 --- a/docs/api/modules/wb_options.html +++ b/docs/api/modules/wb_options.html @@ -1,2 +1,2 @@ -wb_options | wunderbaum - v0.8.5-0

    Module wb_options

    Index

    Interfaces

    \ No newline at end of file +wb_options | wunderbaum - v0.9.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 528d391c..9ccf0ba7 100644 --- a/docs/api/modules/wunderbaum.html +++ b/docs/api/modules/wunderbaum.html @@ -1,2 +1,2 @@ -wunderbaum | wunderbaum - v0.8.5-0

    Module wunderbaum

    Index

    Classes

    \ No newline at end of file +wunderbaum | wunderbaum - v0.9.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 708b047a..a8be3d5d 100644 --- a/docs/api/types/types.ApplyCommandType.html +++ b/docs/api/types/types.ApplyCommandType.html @@ -1 +1 @@ -ApplyCommandType | wunderbaum - v0.8.5-0

    Type alias ApplyCommandType

    ApplyCommandType: "addChild" | "addSibling" | "copy" | "cut" | "down" | "first" | "indent" | "last" | "left" | "moveDown" | "moveUp" | "outdent" | "pageDown" | "pageUp" | "parent" | "paste" | "remove" | "rename" | "right" | "up"
    \ No newline at end of file +ApplyCommandType | wunderbaum - v0.9.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 05294471..19cbe7c9 100644 --- a/docs/api/types/types.BoolOptionResolver.html +++ b/docs/api/types/types.BoolOptionResolver.html @@ -1,2 +1,2 @@ -BoolOptionResolver | wunderbaum - v0.8.5-0

    Type alias BoolOptionResolver

    BoolOptionResolver: ((node) => boolean)

    When set as option, called when the value is needed (e.g. colspan type definition).

    -

    Type declaration

    \ No newline at end of file +BoolOptionResolver | wunderbaum - v0.9.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 c5b6f29d..314cf2fb 100644 --- a/docs/api/types/types.BoolOrStringOptionResolver.html +++ b/docs/api/types/types.BoolOrStringOptionResolver.html @@ -1,2 +1,2 @@ -BoolOrStringOptionResolver | wunderbaum - v0.8.5-0

    Type alias BoolOrStringOptionResolver

    BoolOrStringOptionResolver: ((node) => boolean | string)

    When set as option, called when the value is needed (e.g. icon type definition).

    -

    Type declaration

      • (node): boolean | string
      • Parameters

        Returns boolean | string

    \ No newline at end of file +BoolOrStringOptionResolver | wunderbaum - v0.9.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 db994414..9485970a 100644 --- a/docs/api/types/types.CheckboxOption.html +++ b/docs/api/types/types.CheckboxOption.html @@ -1,2 +1,2 @@ -CheckboxOption | wunderbaum - v0.8.5-0

    Type alias CheckboxOption

    CheckboxOption: boolean | "radio"

    Show/hide checkbox or display a radiobutton icon instead.

    -
    \ No newline at end of file +CheckboxOption | wunderbaum - v0.9.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 a092ec86..63fe9df0 100644 --- a/docs/api/types/types.ColumnDefinitionList.html +++ b/docs/api/types/types.ColumnDefinitionList.html @@ -1 +1 @@ -ColumnDefinitionList | wunderbaum - v0.8.5-0

    Type alias ColumnDefinitionList

    ColumnDefinitionList: ColumnDefinition[]
    \ No newline at end of file +ColumnDefinitionList | wunderbaum - v0.9.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 1d5c3889..6c0d1d90 100644 --- a/docs/api/types/types.ColumnEventInfoMap.html +++ b/docs/api/types/types.ColumnEventInfoMap.html @@ -1 +1 @@ -ColumnEventInfoMap | wunderbaum - v0.8.5-0

    Type alias ColumnEventInfoMap

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

    Type declaration

    \ No newline at end of file +ColumnEventInfoMap | wunderbaum - v0.9.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 b5321ac9..e86f9ab7 100644 --- a/docs/api/types/types.DndOptionsType.html +++ b/docs/api/types/types.DndOptionsType.html @@ -1,4 +1,4 @@ -DndOptionsType | wunderbaum - v0.8.5-0

    Type alias DndOptionsType

    DndOptionsType: {
        autoExpandMS?: 1500;
        drag?: null | ((e) => void);
        dragEnd?: null | ((e) => void);
        dragEnter?: null | ((e) => DropRegionType | DropRegionTypeSet | boolean);
        dragExpand?: null | ((e) => boolean);
        dragLeave?: null | ((e) => void);
        dragOver?: null | ((e) => void);
        dragStart?: null | ((e) => boolean);
        drop?: null | ((e) => void);
        dropEffectDefault?: DropEffectType;
        effectAllowed?: DropEffectAllowedType;
        guessDropEffect: boolean;
        multiSource?: false;
        preventForeignNodes?: boolean;
        preventLazyParents?: boolean;
        preventNonNodes?: boolean;
        preventRecursion?: boolean;
        preventSameParent?: boolean;
        preventVoidMoves?: boolean;
        scroll?: boolean;
        scrollSensitivity?: 20;
        scrollSpeed?: 5;
        serializeClipboardData?: boolean | ((nodeData, node) => string);
        sourceCopyHook?: null;
    }

    Type declaration

    • Optional autoExpandMS?: 1500

      Expand nodes after n milliseconds of hovering

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

        @@ -76,4 +76,4 @@

        Since

        2.38

        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 f45dcfcb..41535c7d 100644 --- a/docs/api/types/types.DropEffectAllowedType.html +++ b/docs/api/types/types.DropEffectAllowedType.html @@ -1 +1 @@ -DropEffectAllowedType | wunderbaum - v0.8.5-0

    Type alias DropEffectAllowedType

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

    Type alias DropEffectType

    DropEffectType: "none" | "copy" | "link" | "move"
    \ No newline at end of file +DropEffectType | wunderbaum - v0.9.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 e709bff5..3c999609 100644 --- a/docs/api/types/types.DropRegionType.html +++ b/docs/api/types/types.DropRegionType.html @@ -1 +1 @@ -DropRegionType | wunderbaum - v0.8.5-0

    Type alias DropRegionType

    DropRegionType: "over" | "before" | "after"
    \ No newline at end of file +DropRegionType | wunderbaum - v0.9.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 22f96c95..9bea4365 100644 --- a/docs/api/types/types.DropRegionTypeSet.html +++ b/docs/api/types/types.DropRegionTypeSet.html @@ -1 +1 @@ -DropRegionTypeSet | wunderbaum - v0.8.5-0

    Type alias DropRegionTypeSet

    DropRegionTypeSet: Set<DropRegionType>
    \ No newline at end of file +DropRegionTypeSet | wunderbaum - v0.9.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 8b96b5f8..1f61143f 100644 --- a/docs/api/types/types.DynamicBoolOption.html +++ b/docs/api/types/types.DynamicBoolOption.html @@ -1,3 +1,3 @@ -DynamicBoolOption | wunderbaum - v0.8.5-0

    Type alias DynamicBoolOption

    DynamicBoolOption: boolean | BoolOptionResolver

    See also WunderbaumNode.getOption() +DynamicBoolOption | wunderbaum - v0.9.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 62fd9a97..f3e6e8b7 100644 --- a/docs/api/types/types.DynamicBoolOrStringOption.html +++ b/docs/api/types/types.DynamicBoolOrStringOption.html @@ -1 +1 @@ -DynamicBoolOrStringOption | wunderbaum - v0.8.5-0

    Type alias DynamicBoolOrStringOption

    DynamicBoolOrStringOption: boolean | string | BoolOrStringOptionResolver
    \ No newline at end of file +DynamicBoolOrStringOption | wunderbaum - v0.9.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 baa2d9c5..cf4e3b05 100644 --- a/docs/api/types/types.DynamicCheckboxOption.html +++ b/docs/api/types/types.DynamicCheckboxOption.html @@ -1 +1 @@ -DynamicCheckboxOption | wunderbaum - v0.8.5-0

    Type alias DynamicCheckboxOption

    \ No newline at end of file +DynamicCheckboxOption | wunderbaum - v0.9.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 733af992..62a36cb3 100644 --- a/docs/api/types/types.DynamicIconOption.html +++ b/docs/api/types/types.DynamicIconOption.html @@ -1 +1 @@ -DynamicIconOption | wunderbaum - v0.8.5-0

    Type alias DynamicIconOption

    \ No newline at end of file +DynamicIconOption | wunderbaum - v0.9.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 48bd7c96..eaf7786c 100644 --- a/docs/api/types/types.DynamicStringOption.html +++ b/docs/api/types/types.DynamicStringOption.html @@ -1 +1 @@ -DynamicStringOption | wunderbaum - v0.8.5-0

    Type alias DynamicStringOption

    DynamicStringOption: string | BoolOptionResolver
    \ No newline at end of file +DynamicStringOption | wunderbaum - v0.9.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 4ec4b4f3..0fd68194 100644 --- a/docs/api/types/types.DynamicTooltipOption.html +++ b/docs/api/types/types.DynamicTooltipOption.html @@ -1 +1 @@ -DynamicTooltipOption | wunderbaum - v0.8.5-0

    Type alias DynamicTooltipOption

    \ No newline at end of file +DynamicTooltipOption | wunderbaum - v0.9.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 20544963..7e180ed7 100644 --- a/docs/api/types/types.EditOptionsType.html +++ b/docs/api/types/types.EditOptionsType.html @@ -1,4 +1,4 @@ -EditOptionsType | wunderbaum - v0.8.5-0

    Type alias EditOptionsType

    EditOptionsType: {
        apply?: null | ((e) => any) | Promise<any>;
        beforeEdit?: null | ((e) => boolean) | string;
        debounce?: number;
        edit?: null | ((e) => void);
        maxlength?: null | number;
        minlength?: number;
        select?: boolean;
        slowClickDelay?: number;
        trigger?: string[];
        trim?: boolean;
        validity?: boolean;
    }

    Note:
    +EditOptionsType | wunderbaum - v0.9.0

    Type alias EditOptionsType

    EditOptionsType: {
        apply?: null | ((e) => any) | Promise<any>;
        beforeEdit?: null | ((e) => boolean) | string;
        debounce?: number;
        edit?: null | ((e) => void);
        maxlength?: null | number;
        minlength?: number;
        select?: boolean;
        slowClickDelay?: number;
        trigger?: string[];
        trim?: boolean;
        validity?: boolean;
    }

    Note:
    This options are used for renaming node titles.
    There is also the tree.change event to handle modifying node data from input controls that are embedded in grid cells.

    @@ -32,4 +32,4 @@
  • Optional validity?: boolean

    Permanently apply node title input validations (CSS and tooltip) on keydown.

    Default

    true
     
    -
  • \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/api/types/types.FilterModeType.html b/docs/api/types/types.FilterModeType.html index 7aceda4b..a60a41aa 100644 --- a/docs/api/types/types.FilterModeType.html +++ b/docs/api/types/types.FilterModeType.html @@ -1 +1 @@ -FilterModeType | wunderbaum - v0.8.5-0

    Type alias FilterModeType

    FilterModeType: null | "dim" | "hide"
    \ No newline at end of file +FilterModeType | wunderbaum - v0.9.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 5eb1c498..6a049005 100644 --- a/docs/api/types/types.FilterOptionsType.html +++ b/docs/api/types/types.FilterOptionsType.html @@ -1,4 +1,4 @@ -FilterOptionsType | wunderbaum - v0.8.5-0

    Type alias FilterOptionsType

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

    Passed as tree options to configure default filtering behavior.

    +FilterOptionsType | wunderbaum - v0.9.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 da910e24..3c2a25fc 100644 --- a/docs/api/types/types.GridOptionsType.html +++ b/docs/api/types/types.GridOptionsType.html @@ -1 +1 @@ -GridOptionsType | wunderbaum - v0.8.5-0

    Type alias GridOptionsType

    GridOptionsType: object
    \ No newline at end of file +GridOptionsType | wunderbaum - v0.9.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 13e32879..26ee6a5a 100644 --- a/docs/api/types/types.IconOption.html +++ b/docs/api/types/types.IconOption.html @@ -1,7 +1,7 @@ -IconOption | wunderbaum - v0.8.5-0

    Type alias IconOption

    IconOption: boolean | string

    An icon may either be +IconOption | wunderbaum - v0.9.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 17747c82..f814653e 100644 --- a/docs/api/types/types.InsertNodeType.html +++ b/docs/api/types/types.InsertNodeType.html @@ -1 +1 @@ -InsertNodeType | wunderbaum - v0.8.5-0

    Type alias InsertNodeType

    InsertNodeType: "before" | "after" | "prependChild" | "appendChild"
    \ No newline at end of file +InsertNodeType | wunderbaum - v0.9.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 5e994099..f3ca7fb9 100644 --- a/docs/api/types/types.KeynavOptionsType.html +++ b/docs/api/types/types.KeynavOptionsType.html @@ -1 +1 @@ -KeynavOptionsType | wunderbaum - v0.8.5-0

    Type alias KeynavOptionsType

    KeynavOptionsType: object
    \ No newline at end of file +KeynavOptionsType | wunderbaum - v0.9.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 c096e774..52148f67 100644 --- a/docs/api/types/types.LoggerOptionsType.html +++ b/docs/api/types/types.LoggerOptionsType.html @@ -1 +1 @@ -LoggerOptionsType | wunderbaum - v0.8.5-0

    Type alias LoggerOptionsType

    LoggerOptionsType: object
    \ No newline at end of file +LoggerOptionsType | wunderbaum - v0.9.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 c0983387..65c36e64 100644 --- a/docs/api/types/types.MatcherCallback.html +++ b/docs/api/types/types.MatcherCallback.html @@ -1,2 +1,2 @@ -MatcherCallback | wunderbaum - v0.8.5-0

    Type alias MatcherCallback

    MatcherCallback: ((node) => boolean)

    Passed to find...() methods. Should return true if node matches.

    -

    Type declaration

    \ No newline at end of file +MatcherCallback | wunderbaum - v0.9.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 befef7a2..bee0f90a 100644 --- a/docs/api/types/types.NodeAnyCallback.html +++ b/docs/api/types/types.NodeAnyCallback.html @@ -1,2 +1,2 @@ -NodeAnyCallback | wunderbaum - v0.8.5-0

    Type alias NodeAnyCallback

    NodeAnyCallback: ((node) => any)

    A callback that receives a node instance and returns an arbitrary value type.

    -

    Type declaration

    \ No newline at end of file +NodeAnyCallback | wunderbaum - v0.9.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 f4bd77f6..0fa38609 100644 --- a/docs/api/types/types.NodeFilterCallback.html +++ b/docs/api/types/types.NodeFilterCallback.html @@ -1 +1 @@ -NodeFilterCallback | wunderbaum - v0.8.5-0

    Type alias NodeFilterCallback

    NodeFilterCallback: ((node) => NodeFilterResponse)

    Type declaration

    \ No newline at end of file +NodeFilterCallback | wunderbaum - v0.9.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 d6a3bdb2..069d77ff 100644 --- a/docs/api/types/types.NodeFilterResponse.html +++ b/docs/api/types/types.NodeFilterResponse.html @@ -1 +1 @@ -NodeFilterResponse | wunderbaum - v0.8.5-0

    Type alias NodeFilterResponse

    NodeFilterResponse: "skip" | "branch" | boolean | void
    \ No newline at end of file +NodeFilterResponse | wunderbaum - v0.9.0

    Type alias NodeFilterResponse

    NodeFilterResponse: "skip" | "branch" | boolean | void
    \ No newline at end of file diff --git a/docs/api/types/types.NodeSelectCallback.html b/docs/api/types/types.NodeSelectCallback.html index df0bb71b..dcc7e2a9 100644 --- a/docs/api/types/types.NodeSelectCallback.html +++ b/docs/api/types/types.NodeSelectCallback.html @@ -1,2 +1,2 @@ -NodeSelectCallback | wunderbaum - v0.8.5-0

    Type alias NodeSelectCallback

    NodeSelectCallback: ((node) => boolean | void)

    A callback that receives a node instance and returns a string value.

    -

    Type declaration

      • (node): boolean | void
      • Parameters

        Returns boolean | void

    \ No newline at end of file +NodeSelectCallback | wunderbaum - v0.9.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 f5f0f610..d007b603 100644 --- a/docs/api/types/types.NodeStringCallback.html +++ b/docs/api/types/types.NodeStringCallback.html @@ -1,2 +1,2 @@ -NodeStringCallback | wunderbaum - v0.8.5-0

    Type alias NodeStringCallback

    NodeStringCallback: ((node) => string)

    A callback that receives a node instance and returns a string value.

    -

    Type declaration

    \ No newline at end of file +NodeStringCallback | wunderbaum - v0.9.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 98e33a0f..a1f46e64 100644 --- a/docs/api/types/types.NodeToDictCallback.html +++ b/docs/api/types/types.NodeToDictCallback.html @@ -1,2 +1,2 @@ -NodeToDictCallback | wunderbaum - v0.8.5-0

    Type alias NodeToDictCallback

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

    A callback that receives a node-data dictionary and a node instance and returns an iteration modifier.

    -

    Type declaration

    \ No newline at end of file +NodeToDictCallback | wunderbaum - v0.9.0

    Type alias NodeToDictCallback

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

    A callback that receives a node-data dictionary and a node instance and returns an iteration modifier.

    +

    Type declaration

    \ No newline at end of file diff --git a/docs/api/types/types.NodeTypeDefinitionMap.html b/docs/api/types/types.NodeTypeDefinitionMap.html index d79df76b..a0a91a0d 100644 --- a/docs/api/types/types.NodeTypeDefinitionMap.html +++ b/docs/api/types/types.NodeTypeDefinitionMap.html @@ -1 +1 @@ -NodeTypeDefinitionMap | wunderbaum - v0.8.5-0

    Type alias NodeTypeDefinitionMap

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

    Type declaration

    \ No newline at end of file +NodeTypeDefinitionMap | wunderbaum - v0.9.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 2e00c280..aede33ec 100644 --- a/docs/api/types/types.NodeVisitCallback.html +++ b/docs/api/types/types.NodeVisitCallback.html @@ -1,2 +1,2 @@ -NodeVisitCallback | wunderbaum - v0.8.5-0

    Type alias NodeVisitCallback

    NodeVisitCallback: ((node) => NodeVisitResponse)

    A callback that receives a node instance and returns an iteration modifier.

    -

    Type declaration

    \ No newline at end of file +NodeVisitCallback | wunderbaum - v0.9.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 2911fa46..9d18d24e 100644 --- a/docs/api/types/types.NodeVisitResponse.html +++ b/docs/api/types/types.NodeVisitResponse.html @@ -1,2 +1,2 @@ -NodeVisitResponse | wunderbaum - v0.8.5-0

    Type alias NodeVisitResponse

    NodeVisitResponse: "skip" | boolean | void

    A callback that receives a node instance and returns a string value.

    -
    \ No newline at end of file +NodeVisitResponse | wunderbaum - v0.9.0

    Type alias NodeVisitResponse

    NodeVisitResponse: "skip" | boolean | void

    A callback that receives a node instance and returns a string value.

    +
    \ No newline at end of file diff --git a/docs/api/types/types.SelectModeType.html b/docs/api/types/types.SelectModeType.html index 44270dd4..bc471a41 100644 --- a/docs/api/types/types.SelectModeType.html +++ b/docs/api/types/types.SelectModeType.html @@ -1 +1 @@ -SelectModeType | wunderbaum - v0.8.5-0

    Type alias SelectModeType

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

    Type alias SortCallback

    SortCallback: ((a, b) => number)

    Passed to sortChildren() methods. Should return -1, 0, or 1.

    -

    Type declaration

    \ No newline at end of file +SortCallback | wunderbaum - v0.9.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.SourceListType.html b/docs/api/types/types.SourceListType.html index da2a1738..b41276b8 100644 --- a/docs/api/types/types.SourceListType.html +++ b/docs/api/types/types.SourceListType.html @@ -1 +1 @@ -SourceListType | wunderbaum - v0.8.5-0

    Type alias SourceListType

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

    Type alias SourceType

    Possible initilization for tree nodes.

    -
    \ No newline at end of file +SourceType | wunderbaum - v0.9.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 4dac8131..67e15ebf 100644 --- a/docs/api/types/types.TooltipOption.html +++ b/docs/api/types/types.TooltipOption.html @@ -1,2 +1,2 @@ -TooltipOption | wunderbaum - v0.8.5-0

    Type alias TooltipOption

    TooltipOption: boolean | string

    Show/hide tooltip or display a string.

    -
    \ No newline at end of file +TooltipOption | wunderbaum - v0.9.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 635aefbe..cac75ae3 100644 --- a/docs/api/types/types.TristateType.html +++ b/docs/api/types/types.TristateType.html @@ -1,2 +1,2 @@ -TristateType | wunderbaum - v0.8.5-0

    Type alias TristateType

    TristateType: boolean | undefined

    A value that can either be true, false, or undefined.

    -
    \ No newline at end of file +TristateType | wunderbaum - v0.9.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 ab44baa4..7c0b99ba 100644 --- a/docs/api/types/types.WbCancelableEventResultType.html +++ b/docs/api/types/types.WbCancelableEventResultType.html @@ -1,2 +1,2 @@ -WbCancelableEventResultType | wunderbaum - v0.8.5-0

    Type alias WbCancelableEventResultType

    WbCancelableEventResultType: false | void

    A callback that receives a node instance and returns a string value.

    -
    \ No newline at end of file +WbCancelableEventResultType | wunderbaum - v0.9.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 5c889d6e..80d47585 100644 --- a/docs/api/types/types.WbIconBadgeCallback.html +++ b/docs/api/types/types.WbIconBadgeCallback.html @@ -1,2 +1,2 @@ -WbIconBadgeCallback | wunderbaum - v0.8.5-0

    Type alias WbIconBadgeCallback

    WbIconBadgeCallback: ((e) => WbIconBadgeEventResultType)

    Used for tree.iconBadge event.

    -
    \ No newline at end of file +WbIconBadgeCallback | wunderbaum - v0.9.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 5b1bfd6f..68f8f40a 100644 --- a/docs/api/types/util.EventCallbackType.html +++ b/docs/api/types/util.EventCallbackType.html @@ -1 +1 @@ -EventCallbackType | wunderbaum - v0.8.5-0

    Type alias EventCallbackType

    EventCallbackType: ((e) => boolean | void)

    Type declaration

      • (e): boolean | void
      • Parameters

        • e: Event

        Returns boolean | void

    \ No newline at end of file +EventCallbackType | wunderbaum - v0.9.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 c0a8e4ff..048826da 100644 --- a/docs/api/types/util.FunctionType.html +++ b/docs/api/types/util.FunctionType.html @@ -1 +1 @@ -FunctionType | wunderbaum - v0.8.5-0

    Type alias FunctionType

    FunctionType: ((...args) => any)

    Type declaration

      • (...args): any
      • Parameters

        • Rest ...args: any[]

        Returns any

    \ No newline at end of file +FunctionType | wunderbaum - v0.9.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 bbba9a8d..33f09403 100644 --- a/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html +++ b/docs/api/variables/common.DEFAULT_DEBUGLEVEL.html @@ -1 +1 @@ -DEFAULT_DEBUGLEVEL | wunderbaum - v0.8.5-0

    Variable DEFAULT_DEBUGLEVELConst

    DEFAULT_DEBUGLEVEL: 4 = 4
    \ No newline at end of file +DEFAULT_DEBUGLEVEL | wunderbaum - v0.9.0

    Variable DEFAULT_DEBUGLEVELConst

    DEFAULT_DEBUGLEVEL: 4 = 4
    \ 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 e6b0fc74..69fbabd5 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.8.5-0

    Variable ICON_WIDTHConst

    ICON_WIDTH: 20 = 20

    Fixed width of node icons in pixel. Must match the SCSS variable $icon-outer-width.

    -
    \ No newline at end of file +ICON_WIDTH | wunderbaum - v0.9.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 864d65fd..1ad114b3 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.8.5-0

    Variable INPUT_KEYSConst

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

    Define which keys are handled by embedded control, and should +INPUT_KEYS | wunderbaum - v0.9.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 c436f71f..2c602436 100644 --- a/docs/api/variables/common.KEY_NODATA.html +++ b/docs/api/variables/common.KEY_NODATA.html @@ -1 +1 @@ -KEY_NODATA | wunderbaum - v0.8.5-0

    Variable KEY_NODATAConst

    KEY_NODATA: "__not_found__" = "__not_found__"
    \ No newline at end of file +KEY_NODATA | wunderbaum - v0.9.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 7e51546c..c4189593 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.8.5-0

    Variable KEY_TO_ACTION_DICTConst

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

    Map KeyEvent.key to navigation action.

    -

    Type declaration

    • [key: string]: string
    \ No newline at end of file +KEY_TO_ACTION_DICT | wunderbaum - v0.9.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 aebed938..e4c727e0 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.8.5-0

    Variable RENDER_MAX_PREFETCHConst

    RENDER_MAX_PREFETCH: 5 = 5

    Render row markup for N nodes above and below the visible viewport.

    -
    \ No newline at end of file +RENDER_MAX_PREFETCH | wunderbaum - v0.9.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 0159c9e4..a91c38e8 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.8.5-0

    Variable RENDER_MIN_PREFETCHConst

    RENDER_MIN_PREFETCH: 5 = 5

    Skip rendering new rows when we have at least N nodes rendeed above and below the viewport.

    -
    \ No newline at end of file +RENDER_MIN_PREFETCH | wunderbaum - v0.9.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 eacc0421..8852b3bd 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.8.5-0

    Variable RESERVED_TREE_SOURCE_KEYSConst

    RESERVED_TREE_SOURCE_KEYS: Set<string> = ...

    Dict keys that are evaluated by source loader (others are added to tree.data instead).

    -
    \ No newline at end of file +RESERVED_TREE_SOURCE_KEYS | wunderbaum - v0.9.0

    Variable RESERVED_TREE_SOURCE_KEYSConst

    RESERVED_TREE_SOURCE_KEYS: Set<string> = ...

    Dict keys that are evaluated by source loader (others are added to tree.data instead).

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.ROW_HEIGHT.html b/docs/api/variables/common.ROW_HEIGHT.html index 719af1c4..f47b8f2b 100644 --- a/docs/api/variables/common.ROW_HEIGHT.html +++ b/docs/api/variables/common.ROW_HEIGHT.html @@ -1,2 +1,2 @@ -ROW_HEIGHT | wunderbaum - v0.8.5-0

    Variable ROW_HEIGHTConst

    ROW_HEIGHT: 22 = 22

    Fixed height of a row in pixel. Must match the SCSS variable $row-outer-height.

    -
    \ No newline at end of file +ROW_HEIGHT | wunderbaum - v0.9.0

    Variable ROW_HEIGHTConst

    ROW_HEIGHT: 22 = 22

    Fixed height of a row in pixel. Must match the SCSS variable $row-outer-height.

    +
    \ No newline at end of file diff --git a/docs/api/variables/common.TEST_IMG.html b/docs/api/variables/common.TEST_IMG.html index 43f75f68..60b9de2d 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.8.5-0

    Variable TEST_IMGConst

    TEST_IMG: RegExp = ...

    Regular expression to detect if a string describes an image URL (in contrast +TEST_IMG | wunderbaum - v0.9.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 f06474d1..69bb32b9 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.8.5-0

    Variable TITLE_SPAN_PAD_YConst

    TITLE_SPAN_PAD_Y: 7 = 7

    Adjust the width of the title span, so overflow ellipsis work. +TITLE_SPAN_PAD_Y | wunderbaum - v0.9.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 25f9ffcf..a7139ffe 100644 --- a/docs/api/variables/common.iconMaps.html +++ b/docs/api/variables/common.iconMaps.html @@ -1,3 +1,3 @@ -iconMaps | wunderbaum - v0.8.5-0

    Variable iconMapsConst

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

    Default node icons. +iconMaps | wunderbaum - v0.9.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 4b79d151..fd22c04d 100644 --- a/docs/api/variables/util.MAX_INT.html +++ b/docs/api/variables/util.MAX_INT.html @@ -1 +1 @@ -MAX_INT | wunderbaum - v0.8.5-0

    Variable MAX_INTConst

    MAX_INT: 9007199254740991 = 9007199254740991
    \ No newline at end of file +MAX_INT | wunderbaum - v0.9.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 8bc34baa..452344bb 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.8.5-0

    Variable MOUSE_BUTTONSConst

    MOUSE_BUTTONS: {
        [key: number]: string;
    } = ...

    Readable names for MouseEvent.button

    -

    Type declaration

    • [key: number]: string
    \ No newline at end of file +MOUSE_BUTTONS | wunderbaum - v0.9.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 bf2e301d..db3cfd16 100644 --- a/docs/api/variables/util.isMac.html +++ b/docs/api/variables/util.isMac.html @@ -1,2 +1,2 @@ -isMac | wunderbaum - v0.8.5-0

    Variable isMacConst

    isMac: boolean = userInfo.isMac

    True if the client is using a macOS platform.

    -
    \ No newline at end of file +isMac | wunderbaum - v0.9.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 28b40bab..cfee20d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wunderbaum", - "version": "0.8.5-0", + "version": "0.9.0", "title": "A treegrid control.", "description": "JavaScript tree/grid/treegrid control.", "homepage": "https://github.com/mar10/wunderbaum",