wunderbaum 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wunderbaum.css +11 -5
- package/dist/wunderbaum.css.map +1 -1
- package/dist/wunderbaum.d.ts +201 -52
- package/dist/wunderbaum.esm.js +296 -218
- package/dist/wunderbaum.esm.min.js +24 -24
- package/dist/wunderbaum.esm.min.js.map +1 -1
- package/dist/wunderbaum.umd.js +296 -218
- package/dist/wunderbaum.umd.min.js +30 -30
- package/dist/wunderbaum.umd.min.js.map +1 -1
- package/package.json +8 -6
- package/src/common.ts +2 -2
- package/src/debounce.ts +1 -0
- package/src/types.ts +158 -24
- package/src/util.ts +28 -27
- package/src/wb_ext_dnd.ts +73 -25
- package/src/wb_ext_edit.ts +2 -2
- package/src/wb_ext_filter.ts +27 -26
- package/src/wb_ext_grid.ts +2 -1
- package/src/wb_ext_keynav.ts +9 -9
- package/src/wb_ext_logger.ts +4 -3
- package/src/wb_extension_base.ts +3 -3
- package/src/wb_node.ts +120 -109
- package/src/wb_options.ts +24 -2
- package/src/wunderbaum.scss +13 -5
- package/src/wunderbaum.ts +79 -87
package/dist/wunderbaum.css
CHANGED
|
@@ -210,7 +210,7 @@ div.wunderbaum span.wb-col {
|
|
|
210
210
|
overflow: hidden;
|
|
211
211
|
height: var(--wb-row-inner-height);
|
|
212
212
|
line-height: var(--wb-row-inner-height);
|
|
213
|
-
padding: 0
|
|
213
|
+
padding: 0 var(--wb-col-padding-x);
|
|
214
214
|
border-right: 1px solid var(--wb-grid-color);
|
|
215
215
|
white-space: nowrap;
|
|
216
216
|
}
|
|
@@ -227,9 +227,14 @@ div.wunderbaum span.wb-node i.wb-icon,
|
|
|
227
227
|
div.wunderbaum span.wb-node i.wb-indent {
|
|
228
228
|
height: var(--wb-icon-outer-height);
|
|
229
229
|
width: var(--wb-icon-outer-width);
|
|
230
|
-
padding: var(--wb-icon-padding) var(--wb-icon-padding-x);
|
|
230
|
+
padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x);
|
|
231
231
|
display: inline-block;
|
|
232
232
|
}
|
|
233
|
+
div.wunderbaum span.wb-node i.wb-expander,
|
|
234
|
+
div.wunderbaum span.wb-node i.wb-icon {
|
|
235
|
+
background-repeat: no-repeat;
|
|
236
|
+
background-size: contain;
|
|
237
|
+
}
|
|
233
238
|
div.wunderbaum span.wb-node i.bi::before {
|
|
234
239
|
vertical-align: baseline;
|
|
235
240
|
}
|
|
@@ -350,16 +355,16 @@ div.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon::after {
|
|
|
350
355
|
z-index: 1000;
|
|
351
356
|
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACKUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxnuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAALM9X5QAAAAudFJOU////////////////////////////////////////////////////////////wCCj3NVAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAqUlEQVQoU6WQ2w6CMAxA54agsCHq1HlFBREv/f/fs1tHAoaoiedlbXrWtGXwhV8FNqAXuAi4DwkShmE0cgGIcSwCCgkSkrAxpEonot0DhQxJptFsbnOpdNdgsFh6VtYwyqzTmG+oijDY7hr22E4qY7QybeGQe46nsxP0Wwc3Q1GWl+qKec8MlqKubxX+xzV7tkDuD1+3d+heigT2zGx/hCMUeUj4wL8CwAsW1kqCTugMCwAAAABJRU5ErkJggg==);
|
|
352
357
|
left: 0;
|
|
353
|
-
top: calc((22px - --wb-icon-height) / 2);
|
|
358
|
+
top: calc((22px - var(--wb-icon-height)) / 2);
|
|
354
359
|
}
|
|
355
360
|
div.wunderbaum div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after,
|
|
356
361
|
div.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {
|
|
357
362
|
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACNUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxgAAAHuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAAParqS4AAAAvdFJOU/////////////////////////////////////////////////////////////8AWqU49wAAAAlwSFlzAAAOwwAADsMBx2+oZAAAALlJREFUOE/FktsSgiAQhglMS8WstKLzQTM77Ps/XguL16I208cFyzB8/LPAYCC/ErARzcCFx23pBgnGfjAxBYhpKDwq3SBB5DeGWCYz0SUDClIkmgeLpV7HMiNDbrbbYbBaWzbaoKTaJiHfQe5oYLA/NBwxTiyVyqTSghYwox4MTmfL5XozgqxjAtODoizv1QPXPXqgKer6WeH9+Iw9XgF5ve15/Q+6/SQSsE+q8yMcocoREgzg3wKAL4vrpBIKREShAAAAAElFTkSuQmCC);
|
|
358
363
|
left: 0;
|
|
359
|
-
top: calc((22px - --wb-icon-height) / 2 - 11px);
|
|
364
|
+
top: calc((22px - var(--wb-icon-height)) / 2 - 11px);
|
|
360
365
|
}
|
|
361
366
|
div.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {
|
|
362
|
-
top: calc((22px - --wb-icon-height) / 2 + 11px);
|
|
367
|
+
top: calc((22px - var(--wb-icon-height)) / 2 + 11px);
|
|
363
368
|
}
|
|
364
369
|
div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+1),
|
|
365
370
|
div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+1) {
|
|
@@ -475,6 +480,7 @@ i.wb-icon > span.wb-badge {
|
|
|
475
480
|
text-align: center;
|
|
476
481
|
white-space: nowrap;
|
|
477
482
|
border-radius: 0.5rem;
|
|
483
|
+
pointer-events: none;
|
|
478
484
|
}
|
|
479
485
|
|
|
480
486
|
/* Class 'wb-tristate' is used to mark checkboxes that should toggle like
|
package/dist/wunderbaum.css.map
CHANGED
|
@@ -1 +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;
|
|
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;EAEE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"wunderbaum.css"}
|
package/dist/wunderbaum.d.ts
CHANGED
|
@@ -412,7 +412,6 @@ declare module "wb_node" {
|
|
|
412
412
|
_partload: boolean;
|
|
413
413
|
match?: boolean;
|
|
414
414
|
subMatchCount?: number;
|
|
415
|
-
subMatchBadge?: HTMLElement;
|
|
416
415
|
/** @internal */
|
|
417
416
|
titleWithHighlight?: string;
|
|
418
417
|
_filterAutoExpanded?: boolean;
|
|
@@ -764,10 +763,6 @@ declare module "wb_node" {
|
|
|
764
763
|
setIcon(icon: string): void;
|
|
765
764
|
/** Change node's {@link key} and/or {@link refKey}. */
|
|
766
765
|
setKey(key: string | null, refKey: string | null): void;
|
|
767
|
-
/**
|
|
768
|
-
* @deprecated since v0.3.6: use `update()` instead.
|
|
769
|
-
*/
|
|
770
|
-
setModified(change?: ChangeType): void;
|
|
771
766
|
/**
|
|
772
767
|
* Trigger a repaint, typically after a status or data change.
|
|
773
768
|
*
|
|
@@ -868,7 +863,7 @@ declare module "wb_options" {
|
|
|
868
863
|
* Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
|
|
869
864
|
* @VERSION, @DATE (https://github.com/mar10/wunderbaum)
|
|
870
865
|
*/
|
|
871
|
-
import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbErrorEventType, WbIconBadgeCallback, WbInitEventType, WbKeydownEventType, WbNodeData, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbTreeEventType } from "types";
|
|
866
|
+
import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, EditOptionsType, FilterOptionsType, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbErrorEventType, WbIconBadgeCallback, WbInitEventType, WbKeydownEventType, WbNodeData, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbTreeEventType } from "types";
|
|
872
867
|
/**
|
|
873
868
|
* Available options for [[Wunderbaum]].
|
|
874
869
|
*
|
|
@@ -981,6 +976,20 @@ declare module "wb_options" {
|
|
|
981
976
|
* Default: false
|
|
982
977
|
*/
|
|
983
978
|
autoCollapse?: boolean;
|
|
979
|
+
/**
|
|
980
|
+
* If true, the tree will automatically adjust its height to fit the parent
|
|
981
|
+
* container. This is useful when the tree is embedded in a container with
|
|
982
|
+
* a fixed or calculated sized.
|
|
983
|
+
* If the parent container is unsized (e.g. grows with its content, `height: auto`),
|
|
984
|
+
* then we can define a `height: ...` or `max_height: ...` style on the parent.
|
|
985
|
+
* To avoid a recursive resize-loop, it may be helpful to set `overflow: hidden`
|
|
986
|
+
* on the parent container.
|
|
987
|
+
*
|
|
988
|
+
* Set this option to `false` will disable auto-resizing.
|
|
989
|
+
*
|
|
990
|
+
* @default: true
|
|
991
|
+
*/
|
|
992
|
+
adjustHeight?: boolean;
|
|
984
993
|
/**
|
|
985
994
|
* HTMLElement that receives the top nodes breadcrumb.
|
|
986
995
|
* Default: undefined
|
|
@@ -1034,9 +1043,14 @@ declare module "wb_options" {
|
|
|
1034
1043
|
* Default: true
|
|
1035
1044
|
*/
|
|
1036
1045
|
quicksearch?: boolean;
|
|
1046
|
+
/**
|
|
1047
|
+
* Scroll Node into view on Expand Click
|
|
1048
|
+
* @default true
|
|
1049
|
+
*/
|
|
1050
|
+
scrollIntoViewOnExpandClick?: boolean;
|
|
1037
1051
|
dnd?: DndOptionsType;
|
|
1038
|
-
edit?:
|
|
1039
|
-
filter?:
|
|
1052
|
+
edit?: EditOptionsType;
|
|
1053
|
+
filter?: FilterOptionsType;
|
|
1040
1054
|
grid?: any;
|
|
1041
1055
|
/**
|
|
1042
1056
|
*
|
|
@@ -1307,7 +1321,7 @@ declare module "types" {
|
|
|
1307
1321
|
badge: string | number | HTMLSpanElement | null | false;
|
|
1308
1322
|
/** Additional class name(s), separate with space. */
|
|
1309
1323
|
badgeClass?: string;
|
|
1310
|
-
/**
|
|
1324
|
+
/** Tooltip for the badge. */
|
|
1311
1325
|
badgeTooltip?: string;
|
|
1312
1326
|
}
|
|
1313
1327
|
export interface WbFocusEventType extends WbTreeEventType {
|
|
@@ -1537,6 +1551,8 @@ declare module "types" {
|
|
|
1537
1551
|
loadLazy?: boolean;
|
|
1538
1552
|
/** Ignore `minExpandLevel` option @default false */
|
|
1539
1553
|
force?: boolean;
|
|
1554
|
+
/** Keep active node visible @default true */
|
|
1555
|
+
keepActiveNodeVisible?: boolean;
|
|
1540
1556
|
}
|
|
1541
1557
|
/** Possible values for {@link Wunderbaum.filterNodes()} and {@link Wunderbaum.filterBranches()}. */
|
|
1542
1558
|
export interface FilterNodesOptions {
|
|
@@ -1662,6 +1678,117 @@ declare module "types" {
|
|
|
1662
1678
|
* until the start node is reached again @default false */
|
|
1663
1679
|
wrap?: boolean;
|
|
1664
1680
|
}
|
|
1681
|
+
export type FilterOptionsType = {
|
|
1682
|
+
/**
|
|
1683
|
+
* Element or selector of an input control for filter query strings
|
|
1684
|
+
* @default null
|
|
1685
|
+
*/
|
|
1686
|
+
connectInput?: null | string | Element;
|
|
1687
|
+
/**
|
|
1688
|
+
* Re-apply last filter if lazy data is loaded
|
|
1689
|
+
* @default true
|
|
1690
|
+
*/
|
|
1691
|
+
autoApply?: boolean;
|
|
1692
|
+
/**
|
|
1693
|
+
* Expand all branches that contain matches while filtered
|
|
1694
|
+
* @default false
|
|
1695
|
+
*/
|
|
1696
|
+
autoExpand?: boolean;
|
|
1697
|
+
/**
|
|
1698
|
+
* Show a badge with number of matching child nodes near parent icons
|
|
1699
|
+
* @default true
|
|
1700
|
+
*/
|
|
1701
|
+
counter?: boolean;
|
|
1702
|
+
/**
|
|
1703
|
+
* Match single characters in order, e.g. 'fb' will match 'FooBar'
|
|
1704
|
+
* @default false
|
|
1705
|
+
*/
|
|
1706
|
+
fuzzy?: boolean;
|
|
1707
|
+
/**
|
|
1708
|
+
* Hide counter badge if parent is expanded
|
|
1709
|
+
* @default true
|
|
1710
|
+
*/
|
|
1711
|
+
hideExpandedCounter?: boolean;
|
|
1712
|
+
/**
|
|
1713
|
+
* Hide expanders if all child nodes are hidden by filter
|
|
1714
|
+
* @default false;
|
|
1715
|
+
*/
|
|
1716
|
+
hideExpanders?: boolean;
|
|
1717
|
+
/**
|
|
1718
|
+
* Highlight matches by wrapping inside <mark> tags
|
|
1719
|
+
* @default true
|
|
1720
|
+
*/
|
|
1721
|
+
highlight?: boolean;
|
|
1722
|
+
/**
|
|
1723
|
+
* Match end nodes only
|
|
1724
|
+
* @default false
|
|
1725
|
+
*/
|
|
1726
|
+
leavesOnly?: boolean;
|
|
1727
|
+
/**
|
|
1728
|
+
* Grayout unmatched nodes (pass "hide" to remove unmatched node instead)
|
|
1729
|
+
* @default 'dim'
|
|
1730
|
+
*/
|
|
1731
|
+
mode?: "dim" | "hide";
|
|
1732
|
+
/**
|
|
1733
|
+
* Display a 'no data' status node if result is empty
|
|
1734
|
+
* @default true
|
|
1735
|
+
*/
|
|
1736
|
+
noData?: boolean;
|
|
1737
|
+
};
|
|
1738
|
+
export type EditOptionsType = {
|
|
1739
|
+
/**
|
|
1740
|
+
* @default 100
|
|
1741
|
+
*/
|
|
1742
|
+
debounce?: number;
|
|
1743
|
+
/**
|
|
1744
|
+
* @default 1
|
|
1745
|
+
*/
|
|
1746
|
+
minlength?: number;
|
|
1747
|
+
/**
|
|
1748
|
+
* @default null;
|
|
1749
|
+
*/
|
|
1750
|
+
maxlength?: null | number;
|
|
1751
|
+
/**
|
|
1752
|
+
* ["clickActive", "F2", "macEnter"],
|
|
1753
|
+
* @default []
|
|
1754
|
+
*/
|
|
1755
|
+
trigger?: string[];
|
|
1756
|
+
/**
|
|
1757
|
+
* @default true
|
|
1758
|
+
*/
|
|
1759
|
+
trim?: boolean;
|
|
1760
|
+
/**
|
|
1761
|
+
* @default true
|
|
1762
|
+
*/
|
|
1763
|
+
select?: boolean;
|
|
1764
|
+
/**
|
|
1765
|
+
* Handle 'clickActive' only if last click is less than this old (0: always)
|
|
1766
|
+
* @default 1000
|
|
1767
|
+
*/
|
|
1768
|
+
slowClickDelay?: number;
|
|
1769
|
+
/**
|
|
1770
|
+
* Please enter a title",
|
|
1771
|
+
* @default true
|
|
1772
|
+
*/
|
|
1773
|
+
validity?: boolean;
|
|
1774
|
+
/**
|
|
1775
|
+
* `beforeEdit(e)` may return an input HTML string. Otherwise use a default.
|
|
1776
|
+
*/
|
|
1777
|
+
beforeEdit?: null | ((e: WbNodeEventType) => boolean) | string;
|
|
1778
|
+
/**
|
|
1779
|
+
*
|
|
1780
|
+
*/
|
|
1781
|
+
edit?: null | ((e: WbNodeEventType & {
|
|
1782
|
+
inputElem: HTMLInputElement;
|
|
1783
|
+
}) => void);
|
|
1784
|
+
/**
|
|
1785
|
+
*
|
|
1786
|
+
*/
|
|
1787
|
+
apply?: null | ((e: WbNodeEventType & {
|
|
1788
|
+
inputElem: HTMLInputElement;
|
|
1789
|
+
}) => any) | Promise<any>;
|
|
1790
|
+
};
|
|
1791
|
+
export type GridOptionsType = object;
|
|
1665
1792
|
export type InsertNodeType = "before" | "after" | "prependChild" | "appendChild";
|
|
1666
1793
|
export type DropRegionType = "over" | "before" | "after";
|
|
1667
1794
|
export type DropRegionTypeSet = Set<DropRegionType>;
|
|
@@ -1670,126 +1797,148 @@ declare module "types" {
|
|
|
1670
1797
|
* Expand nodes after n milliseconds of hovering
|
|
1671
1798
|
* @default 1500
|
|
1672
1799
|
*/
|
|
1673
|
-
autoExpandMS
|
|
1800
|
+
autoExpandMS?: 1500;
|
|
1674
1801
|
/**
|
|
1675
1802
|
* true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed
|
|
1676
1803
|
* @default false
|
|
1677
1804
|
*/
|
|
1678
|
-
multiSource
|
|
1805
|
+
multiSource?: false;
|
|
1679
1806
|
/**
|
|
1680
1807
|
* Restrict the possible cursor shapes and modifier operations (can also be set in the dragStart event)
|
|
1681
1808
|
* @default "all"
|
|
1682
1809
|
*/
|
|
1683
|
-
effectAllowed
|
|
1810
|
+
effectAllowed?: "all";
|
|
1684
1811
|
/**
|
|
1685
|
-
* Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (overide in
|
|
1812
|
+
* Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (overide in drag, dragOver).
|
|
1686
1813
|
* @default "move"
|
|
1687
1814
|
*/
|
|
1688
|
-
dropEffectDefault
|
|
1815
|
+
dropEffectDefault?: string;
|
|
1689
1816
|
/**
|
|
1690
1817
|
* Prevent dropping nodes from different Wunderbaum trees
|
|
1691
1818
|
* @default false
|
|
1692
1819
|
*/
|
|
1693
|
-
preventForeignNodes
|
|
1820
|
+
preventForeignNodes?: boolean;
|
|
1694
1821
|
/**
|
|
1695
1822
|
* Prevent dropping items on unloaded lazy Wunderbaum tree nodes
|
|
1696
1823
|
* @default true
|
|
1697
1824
|
*/
|
|
1698
|
-
preventLazyParents
|
|
1825
|
+
preventLazyParents?: boolean;
|
|
1699
1826
|
/**
|
|
1700
1827
|
* Prevent dropping items other than Wunderbaum tree nodes
|
|
1701
1828
|
* @default false
|
|
1702
1829
|
*/
|
|
1703
|
-
preventNonNodes
|
|
1830
|
+
preventNonNodes?: boolean;
|
|
1704
1831
|
/**
|
|
1705
1832
|
* Prevent dropping nodes on own descendants
|
|
1706
1833
|
* @default true
|
|
1707
1834
|
*/
|
|
1708
|
-
preventRecursion
|
|
1835
|
+
preventRecursion?: boolean;
|
|
1709
1836
|
/**
|
|
1710
1837
|
* Prevent dropping nodes under same direct parent
|
|
1711
1838
|
* @default false
|
|
1712
1839
|
*/
|
|
1713
|
-
preventSameParent
|
|
1840
|
+
preventSameParent?: false;
|
|
1714
1841
|
/**
|
|
1715
1842
|
* Prevent dropping nodes 'before self', etc. (move only)
|
|
1716
1843
|
* @default true
|
|
1717
1844
|
*/
|
|
1718
|
-
preventVoidMoves
|
|
1845
|
+
preventVoidMoves?: boolean;
|
|
1846
|
+
/**
|
|
1847
|
+
* Serialize Node Data to datatransfer object
|
|
1848
|
+
* @default true
|
|
1849
|
+
*/
|
|
1850
|
+
serializeClipboardData?: boolean | ((nodeData: WbNodeData) => string);
|
|
1719
1851
|
/**
|
|
1720
1852
|
* Enable auto-scrolling while dragging
|
|
1721
1853
|
* @default true
|
|
1722
1854
|
*/
|
|
1723
|
-
scroll
|
|
1855
|
+
scroll?: boolean;
|
|
1724
1856
|
/**
|
|
1725
1857
|
* Active top/bottom margin in pixel
|
|
1726
1858
|
* @default 20
|
|
1727
1859
|
*/
|
|
1728
|
-
scrollSensitivity
|
|
1860
|
+
scrollSensitivity?: 20;
|
|
1729
1861
|
/**
|
|
1730
1862
|
* Pixel per event
|
|
1731
1863
|
* @default 5
|
|
1732
1864
|
*/
|
|
1733
|
-
scrollSpeed
|
|
1865
|
+
scrollSpeed?: 5;
|
|
1734
1866
|
/**
|
|
1735
1867
|
* Optional callback passed to `toDict` on dragStart @since 2.38
|
|
1736
1868
|
* @default null
|
|
1737
1869
|
*/
|
|
1738
|
-
sourceCopyHook
|
|
1870
|
+
sourceCopyHook?: null;
|
|
1739
1871
|
/**
|
|
1740
1872
|
* Callback(sourceNode, data), return true, to enable dnd drag
|
|
1741
1873
|
* @default null
|
|
1742
1874
|
*/
|
|
1743
|
-
dragStart?: WbNodeEventType
|
|
1875
|
+
dragStart?: null | ((e: WbNodeEventType & {
|
|
1876
|
+
event: DragEvent;
|
|
1877
|
+
}) => boolean);
|
|
1744
1878
|
/**
|
|
1745
1879
|
* Callback(sourceNode, data)
|
|
1746
1880
|
* @default null
|
|
1747
1881
|
*/
|
|
1748
|
-
|
|
1882
|
+
drag?: null | ((e: WbNodeEventType & {
|
|
1883
|
+
event: DragEvent;
|
|
1884
|
+
}) => void);
|
|
1749
1885
|
/**
|
|
1750
1886
|
* Callback(sourceNode, data)
|
|
1751
1887
|
* @default null
|
|
1752
1888
|
*/
|
|
1753
|
-
dragEnd:
|
|
1889
|
+
dragEnd?: null | ((e: WbNodeEventType & {
|
|
1890
|
+
event: DragEvent;
|
|
1891
|
+
}) => void);
|
|
1754
1892
|
/**
|
|
1755
1893
|
* Callback(targetNode, data), return true, to enable dnd drop
|
|
1756
1894
|
* @default null
|
|
1757
1895
|
*/
|
|
1758
|
-
dragEnter:
|
|
1896
|
+
dragEnter?: null | ((e: WbNodeEventType & {
|
|
1897
|
+
event: DragEvent;
|
|
1898
|
+
}) => boolean);
|
|
1759
1899
|
/**
|
|
1760
1900
|
* Callback(targetNode, data)
|
|
1761
1901
|
* @default null
|
|
1762
1902
|
*/
|
|
1763
|
-
dragOver:
|
|
1903
|
+
dragOver?: null | ((e: WbNodeEventType & {
|
|
1904
|
+
event: DragEvent;
|
|
1905
|
+
}) => void);
|
|
1764
1906
|
/**
|
|
1765
1907
|
* Callback(targetNode, data), return false to prevent autoExpand
|
|
1766
1908
|
* @default null
|
|
1767
1909
|
*/
|
|
1768
|
-
dragExpand:
|
|
1910
|
+
dragExpand?: null | ((e: WbNodeEventType & {
|
|
1911
|
+
event: DragEvent;
|
|
1912
|
+
}) => boolean);
|
|
1769
1913
|
/**
|
|
1770
1914
|
* Callback(targetNode, data)
|
|
1771
1915
|
* @default null
|
|
1772
1916
|
*/
|
|
1773
|
-
|
|
1917
|
+
drop?: null | ((e: WbNodeEventType & {
|
|
1918
|
+
event: DragEvent;
|
|
1919
|
+
region: DropRegionType;
|
|
1920
|
+
defaultDropMode: string;
|
|
1921
|
+
sourceNode: WunderbaumNode;
|
|
1922
|
+
}) => void);
|
|
1774
1923
|
/**
|
|
1775
1924
|
* Callback(targetNode, data)
|
|
1776
1925
|
* @default null
|
|
1777
1926
|
*/
|
|
1778
|
-
dragLeave
|
|
1927
|
+
dragLeave?: null;
|
|
1779
1928
|
};
|
|
1780
1929
|
}
|
|
1781
1930
|
declare module "wb_extension_base" {
|
|
1782
1931
|
import { Wunderbaum } from "wunderbaum";
|
|
1783
1932
|
export type ExtensionsDict = {
|
|
1784
|
-
[key: string]: WunderbaumExtension
|
|
1933
|
+
[key: string]: WunderbaumExtension<any>;
|
|
1785
1934
|
};
|
|
1786
|
-
export abstract class WunderbaumExtension {
|
|
1935
|
+
export abstract class WunderbaumExtension<TOptions> {
|
|
1787
1936
|
enabled: boolean;
|
|
1788
1937
|
readonly id: string;
|
|
1789
1938
|
readonly tree: Wunderbaum;
|
|
1790
1939
|
readonly treeOpts: any;
|
|
1791
1940
|
readonly extensionOpts: any;
|
|
1792
|
-
constructor(tree: Wunderbaum, id: string, defaults:
|
|
1941
|
+
constructor(tree: Wunderbaum, id: string, defaults: TOptions);
|
|
1793
1942
|
/** Called on tree (re)init after all extensions are added, but before loading.*/
|
|
1794
1943
|
init(): void;
|
|
1795
1944
|
getPluginOption(name: string, defaultValue?: any): any;
|
|
@@ -1934,10 +2083,10 @@ declare module "debounce" {
|
|
|
1934
2083
|
export function throttle<F extends Procedure>(func: F, wait?: number, options?: ThrottleOptions): DebouncedFunction<F>;
|
|
1935
2084
|
}
|
|
1936
2085
|
declare module "wb_ext_filter" {
|
|
1937
|
-
import { FilterNodesOptions, NodeFilterCallback } from "types";
|
|
2086
|
+
import { FilterNodesOptions, FilterOptionsType, NodeFilterCallback } from "types";
|
|
1938
2087
|
import { Wunderbaum } from "wunderbaum";
|
|
1939
2088
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1940
|
-
export class FilterExtension extends WunderbaumExtension {
|
|
2089
|
+
export class FilterExtension extends WunderbaumExtension<FilterOptionsType> {
|
|
1941
2090
|
queryInput?: HTMLInputElement;
|
|
1942
2091
|
lastFilterArgs: IArguments | null;
|
|
1943
2092
|
constructor(tree: Wunderbaum);
|
|
@@ -1966,7 +2115,7 @@ declare module "wb_ext_filter" {
|
|
|
1966
2115
|
declare module "wb_ext_keynav" {
|
|
1967
2116
|
import { Wunderbaum } from "wunderbaum";
|
|
1968
2117
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1969
|
-
export class KeynavExtension extends WunderbaumExtension {
|
|
2118
|
+
export class KeynavExtension extends WunderbaumExtension<any> {
|
|
1970
2119
|
constructor(tree: Wunderbaum);
|
|
1971
2120
|
protected _getEmbeddedInputElem(elem: any): HTMLInputElement | null;
|
|
1972
2121
|
protected _isCurInputFocused(): boolean;
|
|
@@ -1976,7 +2125,7 @@ declare module "wb_ext_keynav" {
|
|
|
1976
2125
|
declare module "wb_ext_logger" {
|
|
1977
2126
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1978
2127
|
import { Wunderbaum } from "wunderbaum";
|
|
1979
|
-
export class LoggerExtension extends WunderbaumExtension {
|
|
2128
|
+
export class LoggerExtension extends WunderbaumExtension<any> {
|
|
1980
2129
|
readonly prefix: string;
|
|
1981
2130
|
protected ignoreEvents: Set<string>;
|
|
1982
2131
|
constructor(tree: Wunderbaum);
|
|
@@ -1988,9 +2137,9 @@ declare module "wb_ext_dnd" {
|
|
|
1988
2137
|
import { Wunderbaum } from "wunderbaum";
|
|
1989
2138
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1990
2139
|
import { WunderbaumNode } from "wb_node";
|
|
1991
|
-
import { DropRegionType, DropRegionTypeSet } from "types";
|
|
2140
|
+
import { DndOptionsType, DropRegionType, DropRegionTypeSet } from "types";
|
|
1992
2141
|
import { DebouncedFunction } from "debounce";
|
|
1993
|
-
export class DndExtension extends WunderbaumExtension {
|
|
2142
|
+
export class DndExtension extends WunderbaumExtension<DndOptionsType> {
|
|
1994
2143
|
protected srcNode: WunderbaumNode | null;
|
|
1995
2144
|
protected lastTargetNode: WunderbaumNode | null;
|
|
1996
2145
|
protected lastEnterStamp: number;
|
|
@@ -2005,13 +2154,16 @@ declare module "wb_ext_dnd" {
|
|
|
2005
2154
|
protected _leaveNode(): void;
|
|
2006
2155
|
/** */
|
|
2007
2156
|
protected unifyDragover(res: any): DropRegionTypeSet | false;
|
|
2008
|
-
/**
|
|
2157
|
+
/**
|
|
2158
|
+
* Calculates the drop region based on the drag event and the allowed drop regions.
|
|
2159
|
+
*/
|
|
2009
2160
|
protected _calcDropRegion(e: DragEvent, allowed: DropRegionTypeSet | null): DropRegionType | false;
|
|
2010
2161
|
protected applyScrollDir(): void;
|
|
2011
2162
|
protected autoScroll(viewportY: number): number;
|
|
2012
2163
|
/** Return true if a drag operation currently in progress. */
|
|
2013
2164
|
isDragging(): boolean;
|
|
2014
2165
|
protected onDragEvent(e: DragEvent): boolean;
|
|
2166
|
+
private _isVoidDrop;
|
|
2015
2167
|
protected onDropEvent(e: DragEvent): boolean;
|
|
2016
2168
|
}
|
|
2017
2169
|
}
|
|
@@ -2084,7 +2236,8 @@ declare module "wb_ext_grid" {
|
|
|
2084
2236
|
import { Wunderbaum } from "wunderbaum";
|
|
2085
2237
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
2086
2238
|
import { DragCallbackArgType, DragObserver } from "drag_observer";
|
|
2087
|
-
|
|
2239
|
+
import { GridOptionsType } from "types";
|
|
2240
|
+
export class GridExtension extends WunderbaumExtension<GridOptionsType> {
|
|
2088
2241
|
protected observer: DragObserver;
|
|
2089
2242
|
constructor(tree: Wunderbaum);
|
|
2090
2243
|
init(): void;
|
|
@@ -2100,8 +2253,8 @@ declare module "wb_ext_edit" {
|
|
|
2100
2253
|
import { Wunderbaum } from "wunderbaum";
|
|
2101
2254
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
2102
2255
|
import { WunderbaumNode } from "wb_node";
|
|
2103
|
-
import { InsertNodeType, WbNodeData } from "types";
|
|
2104
|
-
export class EditExtension extends WunderbaumExtension {
|
|
2256
|
+
import { EditOptionsType, InsertNodeType, WbNodeData } from "types";
|
|
2257
|
+
export class EditExtension extends WunderbaumExtension<EditOptionsType> {
|
|
2105
2258
|
protected debouncedOnChange: (e: Event) => void;
|
|
2106
2259
|
protected curEditNode: WunderbaumNode | null;
|
|
2107
2260
|
protected relatedNode: WunderbaumNode | null;
|
|
@@ -2172,7 +2325,7 @@ declare module "wunderbaum" {
|
|
|
2172
2325
|
[key: string]: any;
|
|
2173
2326
|
};
|
|
2174
2327
|
protected readonly _updateViewportThrottled: (...args: any) => void;
|
|
2175
|
-
protected extensionList: WunderbaumExtension[];
|
|
2328
|
+
protected extensionList: WunderbaumExtension<any>[];
|
|
2176
2329
|
protected extensions: ExtensionsDict;
|
|
2177
2330
|
/** Merged options from constructor args and tree- and extension defaults. */
|
|
2178
2331
|
options: WunderbaumOptions;
|
|
@@ -2251,7 +2404,7 @@ declare module "wunderbaum" {
|
|
|
2251
2404
|
*/
|
|
2252
2405
|
[Symbol.iterator](): IterableIterator<WunderbaumNode>;
|
|
2253
2406
|
/** @internal */
|
|
2254
|
-
protected _registerExtension(extension: WunderbaumExtension): void;
|
|
2407
|
+
protected _registerExtension(extension: WunderbaumExtension<any>): void;
|
|
2255
2408
|
/** Called on tree (re)init after markup is created, before loading. */
|
|
2256
2409
|
protected _initExtensions(): void;
|
|
2257
2410
|
/** Add node to tree's bookkeeping data structures. */
|
|
@@ -2259,7 +2412,7 @@ declare module "wunderbaum" {
|
|
|
2259
2412
|
/** Remove node from tree's bookkeeping data structures. */
|
|
2260
2413
|
_unregisterNode(node: WunderbaumNode): void;
|
|
2261
2414
|
/** Call all hook methods of all registered extensions.*/
|
|
2262
|
-
protected _callHook(hook: keyof WunderbaumExtension
|
|
2415
|
+
protected _callHook(hook: keyof WunderbaumExtension<any>, data?: any): any;
|
|
2263
2416
|
/**
|
|
2264
2417
|
* Call tree method or extension method if defined.
|
|
2265
2418
|
*
|
|
@@ -2497,10 +2650,6 @@ declare module "wunderbaum" {
|
|
|
2497
2650
|
setActiveNode(key: string, flag?: boolean, options?: SetActiveOptions): void;
|
|
2498
2651
|
/** Set or remove keybaord focus to the tree container. */
|
|
2499
2652
|
setFocus(flag?: boolean): void;
|
|
2500
|
-
/**
|
|
2501
|
-
* @deprecated since v0.3.6: use `update()` instead.
|
|
2502
|
-
*/
|
|
2503
|
-
setModified(change: ChangeType, ...args: any[]): void;
|
|
2504
2653
|
/**
|
|
2505
2654
|
* Schedule an update request to reflect a tree change.
|
|
2506
2655
|
* The render operation is async and debounced unless the `immediate` option
|