wunderbaum 0.5.0 → 0.5.2
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 +25 -1
- package/dist/wunderbaum.css.map +1 -1
- package/dist/wunderbaum.d.ts +196 -30
- package/dist/wunderbaum.esm.js +122 -76
- package/dist/wunderbaum.esm.min.js +21 -21
- package/dist/wunderbaum.esm.min.js.map +1 -1
- package/dist/wunderbaum.umd.js +122 -76
- package/dist/wunderbaum.umd.min.js +28 -28
- package/dist/wunderbaum.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/common.ts +4 -4
- package/src/types.ts +160 -10
- package/src/wb_ext_dnd.ts +22 -10
- package/src/wb_ext_edit.ts +2 -2
- package/src/wb_ext_filter.ts +11 -19
- package/src/wb_ext_grid.ts +2 -1
- package/src/wb_ext_keynav.ts +1 -1
- package/src/wb_ext_logger.ts +3 -2
- package/src/wb_extension_base.ts +3 -3
- package/src/wb_node.ts +63 -17
- package/src/wb_options.ts +31 -4
- package/src/wunderbaum.scss +28 -1
- package/src/wunderbaum.ts +25 -21
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
|
}
|
|
@@ -230,6 +230,11 @@ div.wunderbaum span.wb-node i.wb-indent {
|
|
|
230
230
|
padding: var(--wb-icon-padding) 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
|
}
|
|
@@ -458,6 +463,25 @@ div.wunderbaum.wb-checkbox-auto-hide:focus .wb-row.wb-active i.wb-checkbox, div.
|
|
|
458
463
|
text-align: left;
|
|
459
464
|
}
|
|
460
465
|
|
|
466
|
+
i.wb-icon {
|
|
467
|
+
position: relative;
|
|
468
|
+
}
|
|
469
|
+
i.wb-icon > span.wb-badge {
|
|
470
|
+
position: absolute;
|
|
471
|
+
display: inline-block;
|
|
472
|
+
top: 0;
|
|
473
|
+
left: -0.6rem;
|
|
474
|
+
color: white;
|
|
475
|
+
background-color: var(--wb-bg-highlight-color);
|
|
476
|
+
padding: 0.2em 0.3rem 0.1em 0.3rem;
|
|
477
|
+
font-size: 60%;
|
|
478
|
+
font-weight: 200;
|
|
479
|
+
line-height: 1;
|
|
480
|
+
text-align: center;
|
|
481
|
+
white-space: nowrap;
|
|
482
|
+
border-radius: 0.5rem;
|
|
483
|
+
}
|
|
484
|
+
|
|
461
485
|
/* Class 'wb-tristate' is used to mark checkboxes that should toggle like
|
|
462
486
|
* indeterminate -> checked -> unchecked -> indeterminate ...
|
|
463
487
|
*/
|
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;;;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;
|
|
@@ -627,6 +626,8 @@ declare module "wb_node" {
|
|
|
627
626
|
/** Return true if this node is partially selected (tri-state). */
|
|
628
627
|
isPartsel(): boolean;
|
|
629
628
|
/** Return true if this node has DOM representaion, i.e. is displayed in the viewport. */
|
|
629
|
+
isRadio(): boolean;
|
|
630
|
+
/** Return true if this node has DOM representaion, i.e. is displayed in the viewport. */
|
|
630
631
|
isRendered(): boolean;
|
|
631
632
|
/** Return true if this node is the (invisible) system root node.
|
|
632
633
|
* (See also [[isTopLevel()]].)
|
|
@@ -866,7 +867,7 @@ declare module "wb_options" {
|
|
|
866
867
|
* Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
|
|
867
868
|
* @VERSION, @DATE (https://github.com/mar10/wunderbaum)
|
|
868
869
|
*/
|
|
869
|
-
import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbChangeEventType, WbClickEventType, WbDeactivateEventType,
|
|
870
|
+
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";
|
|
870
871
|
/**
|
|
871
872
|
* Available options for [[Wunderbaum]].
|
|
872
873
|
*
|
|
@@ -979,6 +980,20 @@ declare module "wb_options" {
|
|
|
979
980
|
* Default: false
|
|
980
981
|
*/
|
|
981
982
|
autoCollapse?: boolean;
|
|
983
|
+
/**
|
|
984
|
+
* If true, the tree will automatically adjust its height to fit the parent
|
|
985
|
+
* container. This is useful when the tree is embedded in a container with
|
|
986
|
+
* a fixed or calculated sized.
|
|
987
|
+
* If the parent container is unsized (e.g. grows with its content, `height: auto`),
|
|
988
|
+
* then we can define a `height: ...` or `max_height: ...` style on the parent.
|
|
989
|
+
* To avoid a recursive resize-loop, it may be helpful to set `overflow: hidden`
|
|
990
|
+
* on the parent container.
|
|
991
|
+
*
|
|
992
|
+
* Set this option to `false` will disable auto-resizing.
|
|
993
|
+
*
|
|
994
|
+
* @default: true
|
|
995
|
+
*/
|
|
996
|
+
adjustHeight?: boolean;
|
|
982
997
|
/**
|
|
983
998
|
* HTMLElement that receives the top nodes breadcrumb.
|
|
984
999
|
* Default: undefined
|
|
@@ -1032,9 +1047,14 @@ declare module "wb_options" {
|
|
|
1032
1047
|
* Default: true
|
|
1033
1048
|
*/
|
|
1034
1049
|
quicksearch?: boolean;
|
|
1050
|
+
/**
|
|
1051
|
+
* Scroll Node into view on Expand Click
|
|
1052
|
+
* @default true
|
|
1053
|
+
*/
|
|
1054
|
+
scrollIntoViewOnExpandClick?: boolean;
|
|
1035
1055
|
dnd?: DndOptionsType;
|
|
1036
|
-
edit?:
|
|
1037
|
-
filter?:
|
|
1056
|
+
edit?: EditOptionsType;
|
|
1057
|
+
filter?: FilterOptionsType;
|
|
1038
1058
|
grid?: any;
|
|
1039
1059
|
/**
|
|
1040
1060
|
*
|
|
@@ -1079,7 +1099,7 @@ declare module "wb_options" {
|
|
|
1079
1099
|
*
|
|
1080
1100
|
* @category Callback
|
|
1081
1101
|
*/
|
|
1082
|
-
|
|
1102
|
+
iconBadge?: WbIconBadgeCallback;
|
|
1083
1103
|
/**
|
|
1084
1104
|
*
|
|
1085
1105
|
* @category Callback
|
|
@@ -1198,6 +1218,8 @@ declare module "types" {
|
|
|
1198
1218
|
export type SourceType = string | SourceListType | SourceAjaxType | SourceObjectType;
|
|
1199
1219
|
/** Passed to `find...()` methods. Should return true if node matches. */
|
|
1200
1220
|
export type MatcherCallback = (node: WunderbaumNode) => boolean;
|
|
1221
|
+
/** Used for `tree.iconBadge` event. */
|
|
1222
|
+
export type WbIconBadgeCallback = (e: WbIconBadgeEventType) => WbIconBadgeEventResultType;
|
|
1201
1223
|
/** Passed to `sortChildren()` methods. Should return -1, 0, or 1. */
|
|
1202
1224
|
export type SortCallback = (a: WunderbaumNode, b: WunderbaumNode) => number;
|
|
1203
1225
|
/** When set as option, called when the value is needed (e.g. `colspan` type definition). */
|
|
@@ -1295,8 +1317,16 @@ declare module "types" {
|
|
|
1295
1317
|
/** The original event. */
|
|
1296
1318
|
event: Event;
|
|
1297
1319
|
}
|
|
1298
|
-
export interface
|
|
1299
|
-
|
|
1320
|
+
export interface WbIconBadgeEventType extends WbNodeEventType {
|
|
1321
|
+
iconSpan: HTMLElement;
|
|
1322
|
+
}
|
|
1323
|
+
export interface WbIconBadgeEventResultType {
|
|
1324
|
+
/** Content of the badge `<span class='wb-badge'>` if any. */
|
|
1325
|
+
badge: string | number | HTMLSpanElement | null | false;
|
|
1326
|
+
/** Additional class name(s), separate with space. */
|
|
1327
|
+
badgeClass?: string;
|
|
1328
|
+
/** Tooltip for the badge. */
|
|
1329
|
+
badgeTooltip?: string;
|
|
1300
1330
|
}
|
|
1301
1331
|
export interface WbFocusEventType extends WbTreeEventType {
|
|
1302
1332
|
/** The original event. */
|
|
@@ -1525,6 +1555,8 @@ declare module "types" {
|
|
|
1525
1555
|
loadLazy?: boolean;
|
|
1526
1556
|
/** Ignore `minExpandLevel` option @default false */
|
|
1527
1557
|
force?: boolean;
|
|
1558
|
+
/** Keep active node visible @default true */
|
|
1559
|
+
keepActiveNodeVisible?: boolean;
|
|
1528
1560
|
}
|
|
1529
1561
|
/** Possible values for {@link Wunderbaum.filterNodes()} and {@link Wunderbaum.filterBranches()}. */
|
|
1530
1562
|
export interface FilterNodesOptions {
|
|
@@ -1650,6 +1682,117 @@ declare module "types" {
|
|
|
1650
1682
|
* until the start node is reached again @default false */
|
|
1651
1683
|
wrap?: boolean;
|
|
1652
1684
|
}
|
|
1685
|
+
export type FilterOptionsType = {
|
|
1686
|
+
/**
|
|
1687
|
+
* Element or selector of an input control for filter query strings
|
|
1688
|
+
* @default null
|
|
1689
|
+
*/
|
|
1690
|
+
connectInput?: null | string | Element;
|
|
1691
|
+
/**
|
|
1692
|
+
* Re-apply last filter if lazy data is loaded
|
|
1693
|
+
* @default true
|
|
1694
|
+
*/
|
|
1695
|
+
autoApply?: boolean;
|
|
1696
|
+
/**
|
|
1697
|
+
* Expand all branches that contain matches while filtered
|
|
1698
|
+
* @default false
|
|
1699
|
+
*/
|
|
1700
|
+
autoExpand?: boolean;
|
|
1701
|
+
/**
|
|
1702
|
+
* Show a badge with number of matching child nodes near parent icons
|
|
1703
|
+
* @default true
|
|
1704
|
+
*/
|
|
1705
|
+
counter?: boolean;
|
|
1706
|
+
/**
|
|
1707
|
+
* Match single characters in order, e.g. 'fb' will match 'FooBar'
|
|
1708
|
+
* @default false
|
|
1709
|
+
*/
|
|
1710
|
+
fuzzy?: boolean;
|
|
1711
|
+
/**
|
|
1712
|
+
* Hide counter badge if parent is expanded
|
|
1713
|
+
* @default true
|
|
1714
|
+
*/
|
|
1715
|
+
hideExpandedCounter?: boolean;
|
|
1716
|
+
/**
|
|
1717
|
+
* Hide expanders if all child nodes are hidden by filter
|
|
1718
|
+
* @default false;
|
|
1719
|
+
*/
|
|
1720
|
+
hideExpanders?: boolean;
|
|
1721
|
+
/**
|
|
1722
|
+
* Highlight matches by wrapping inside <mark> tags
|
|
1723
|
+
* @default true
|
|
1724
|
+
*/
|
|
1725
|
+
highlight?: boolean;
|
|
1726
|
+
/**
|
|
1727
|
+
* Match end nodes only
|
|
1728
|
+
* @default false
|
|
1729
|
+
*/
|
|
1730
|
+
leavesOnly?: boolean;
|
|
1731
|
+
/**
|
|
1732
|
+
* Grayout unmatched nodes (pass "hide" to remove unmatched node instead)
|
|
1733
|
+
* @default 'dim'
|
|
1734
|
+
*/
|
|
1735
|
+
mode?: "dim" | "hide";
|
|
1736
|
+
/**
|
|
1737
|
+
* Display a 'no data' status node if result is empty
|
|
1738
|
+
* @default true
|
|
1739
|
+
*/
|
|
1740
|
+
noData?: boolean;
|
|
1741
|
+
};
|
|
1742
|
+
export type EditOptionsType = {
|
|
1743
|
+
/**
|
|
1744
|
+
* @default 100
|
|
1745
|
+
*/
|
|
1746
|
+
debounce?: number;
|
|
1747
|
+
/**
|
|
1748
|
+
* @default 1
|
|
1749
|
+
*/
|
|
1750
|
+
minlength?: number;
|
|
1751
|
+
/**
|
|
1752
|
+
* @default null;
|
|
1753
|
+
*/
|
|
1754
|
+
maxlength?: null | number;
|
|
1755
|
+
/**
|
|
1756
|
+
* ["clickActive", "F2", "macEnter"],
|
|
1757
|
+
* @default []
|
|
1758
|
+
*/
|
|
1759
|
+
trigger?: string[];
|
|
1760
|
+
/**
|
|
1761
|
+
* @default true
|
|
1762
|
+
*/
|
|
1763
|
+
trim?: boolean;
|
|
1764
|
+
/**
|
|
1765
|
+
* @default true
|
|
1766
|
+
*/
|
|
1767
|
+
select?: boolean;
|
|
1768
|
+
/**
|
|
1769
|
+
* Handle 'clickActive' only if last click is less than this old (0: always)
|
|
1770
|
+
* @default 1000
|
|
1771
|
+
*/
|
|
1772
|
+
slowClickDelay?: number;
|
|
1773
|
+
/**
|
|
1774
|
+
* Please enter a title",
|
|
1775
|
+
* @default true
|
|
1776
|
+
*/
|
|
1777
|
+
validity?: boolean;
|
|
1778
|
+
/**
|
|
1779
|
+
* `beforeEdit(e)` may return an input HTML string. Otherwise use a default.
|
|
1780
|
+
*/
|
|
1781
|
+
beforeEdit?: null | ((e: WbNodeEventType) => boolean) | string;
|
|
1782
|
+
/**
|
|
1783
|
+
*
|
|
1784
|
+
*/
|
|
1785
|
+
edit?: null | ((e: WbNodeEventType & {
|
|
1786
|
+
inputElem: HTMLInputElement;
|
|
1787
|
+
}) => void);
|
|
1788
|
+
/**
|
|
1789
|
+
*
|
|
1790
|
+
*/
|
|
1791
|
+
apply?: null | ((e: WbNodeEventType & {
|
|
1792
|
+
inputElem: HTMLInputElement;
|
|
1793
|
+
}) => any) | Promise<any>;
|
|
1794
|
+
};
|
|
1795
|
+
export type GridOptionsType = {};
|
|
1653
1796
|
export type InsertNodeType = "before" | "after" | "prependChild" | "appendChild";
|
|
1654
1797
|
export type DropRegionType = "over" | "before" | "after";
|
|
1655
1798
|
export type DropRegionTypeSet = Set<DropRegionType>;
|
|
@@ -1670,7 +1813,7 @@ declare module "types" {
|
|
|
1670
1813
|
*/
|
|
1671
1814
|
effectAllowed: "all";
|
|
1672
1815
|
/**
|
|
1673
|
-
* Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (overide in
|
|
1816
|
+
* Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (overide in drag, dragOver).
|
|
1674
1817
|
* @default "move"
|
|
1675
1818
|
*/
|
|
1676
1819
|
dropEffectDefault: string;
|
|
@@ -1704,6 +1847,11 @@ declare module "types" {
|
|
|
1704
1847
|
* @default true
|
|
1705
1848
|
*/
|
|
1706
1849
|
preventVoidMoves: boolean;
|
|
1850
|
+
/**
|
|
1851
|
+
* Serialize Node Data to datatransfer object
|
|
1852
|
+
* @default true
|
|
1853
|
+
*/
|
|
1854
|
+
serializeClipboardData: boolean | ((nodeData: WbNodeData) => string);
|
|
1707
1855
|
/**
|
|
1708
1856
|
* Enable auto-scrolling while dragging
|
|
1709
1857
|
* @default true
|
|
@@ -1728,37 +1876,54 @@ declare module "types" {
|
|
|
1728
1876
|
* Callback(sourceNode, data), return true, to enable dnd drag
|
|
1729
1877
|
* @default null
|
|
1730
1878
|
*/
|
|
1731
|
-
dragStart
|
|
1879
|
+
dragStart: null | ((e: WbNodeEventType & {
|
|
1880
|
+
event: DragEvent;
|
|
1881
|
+
}) => boolean);
|
|
1732
1882
|
/**
|
|
1733
1883
|
* Callback(sourceNode, data)
|
|
1734
1884
|
* @default null
|
|
1735
1885
|
*/
|
|
1736
|
-
|
|
1886
|
+
drag: null | ((e: WbNodeEventType & {
|
|
1887
|
+
event: DragEvent;
|
|
1888
|
+
}) => void);
|
|
1737
1889
|
/**
|
|
1738
1890
|
* Callback(sourceNode, data)
|
|
1739
1891
|
* @default null
|
|
1740
1892
|
*/
|
|
1741
|
-
dragEnd: null
|
|
1893
|
+
dragEnd: null | ((e: WbNodeEventType & {
|
|
1894
|
+
event: DragEvent;
|
|
1895
|
+
}) => void);
|
|
1742
1896
|
/**
|
|
1743
1897
|
* Callback(targetNode, data), return true, to enable dnd drop
|
|
1744
1898
|
* @default null
|
|
1745
1899
|
*/
|
|
1746
|
-
dragEnter:
|
|
1900
|
+
dragEnter?: null | ((e: WbNodeEventType & {
|
|
1901
|
+
event: DragEvent;
|
|
1902
|
+
}) => boolean);
|
|
1747
1903
|
/**
|
|
1748
1904
|
* Callback(targetNode, data)
|
|
1749
1905
|
* @default null
|
|
1750
1906
|
*/
|
|
1751
|
-
dragOver: null
|
|
1907
|
+
dragOver: null | ((e: WbNodeEventType & {
|
|
1908
|
+
event: DragEvent;
|
|
1909
|
+
}) => void);
|
|
1752
1910
|
/**
|
|
1753
1911
|
* Callback(targetNode, data), return false to prevent autoExpand
|
|
1754
1912
|
* @default null
|
|
1755
1913
|
*/
|
|
1756
|
-
dragExpand:
|
|
1914
|
+
dragExpand?: null | ((e: WbNodeEventType & {
|
|
1915
|
+
event: DragEvent;
|
|
1916
|
+
}) => boolean);
|
|
1757
1917
|
/**
|
|
1758
1918
|
* Callback(targetNode, data)
|
|
1759
1919
|
* @default null
|
|
1760
1920
|
*/
|
|
1761
|
-
|
|
1921
|
+
drop?: null | ((e: WbNodeEventType & {
|
|
1922
|
+
event: DragEvent;
|
|
1923
|
+
region: DropRegionType;
|
|
1924
|
+
defaultDropMode: string;
|
|
1925
|
+
sourceNode: WunderbaumNode;
|
|
1926
|
+
}) => void);
|
|
1762
1927
|
/**
|
|
1763
1928
|
* Callback(targetNode, data)
|
|
1764
1929
|
* @default null
|
|
@@ -1769,15 +1934,15 @@ declare module "types" {
|
|
|
1769
1934
|
declare module "wb_extension_base" {
|
|
1770
1935
|
import { Wunderbaum } from "wunderbaum";
|
|
1771
1936
|
export type ExtensionsDict = {
|
|
1772
|
-
[key: string]: WunderbaumExtension
|
|
1937
|
+
[key: string]: WunderbaumExtension<any>;
|
|
1773
1938
|
};
|
|
1774
|
-
export abstract class WunderbaumExtension {
|
|
1939
|
+
export abstract class WunderbaumExtension<TOptions> {
|
|
1775
1940
|
enabled: boolean;
|
|
1776
1941
|
readonly id: string;
|
|
1777
1942
|
readonly tree: Wunderbaum;
|
|
1778
1943
|
readonly treeOpts: any;
|
|
1779
1944
|
readonly extensionOpts: any;
|
|
1780
|
-
constructor(tree: Wunderbaum, id: string, defaults:
|
|
1945
|
+
constructor(tree: Wunderbaum, id: string, defaults: TOptions);
|
|
1781
1946
|
/** Called on tree (re)init after all extensions are added, but before loading.*/
|
|
1782
1947
|
init(): void;
|
|
1783
1948
|
getPluginOption(name: string, defaultValue?: any): any;
|
|
@@ -1922,10 +2087,10 @@ declare module "debounce" {
|
|
|
1922
2087
|
export function throttle<F extends Procedure>(func: F, wait?: number, options?: ThrottleOptions): DebouncedFunction<F>;
|
|
1923
2088
|
}
|
|
1924
2089
|
declare module "wb_ext_filter" {
|
|
1925
|
-
import { FilterNodesOptions, NodeFilterCallback } from "types";
|
|
2090
|
+
import { FilterNodesOptions, FilterOptionsType, NodeFilterCallback } from "types";
|
|
1926
2091
|
import { Wunderbaum } from "wunderbaum";
|
|
1927
2092
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1928
|
-
export class FilterExtension extends WunderbaumExtension {
|
|
2093
|
+
export class FilterExtension extends WunderbaumExtension<FilterOptionsType> {
|
|
1929
2094
|
queryInput?: HTMLInputElement;
|
|
1930
2095
|
lastFilterArgs: IArguments | null;
|
|
1931
2096
|
constructor(tree: Wunderbaum);
|
|
@@ -1954,7 +2119,7 @@ declare module "wb_ext_filter" {
|
|
|
1954
2119
|
declare module "wb_ext_keynav" {
|
|
1955
2120
|
import { Wunderbaum } from "wunderbaum";
|
|
1956
2121
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1957
|
-
export class KeynavExtension extends WunderbaumExtension {
|
|
2122
|
+
export class KeynavExtension extends WunderbaumExtension<any> {
|
|
1958
2123
|
constructor(tree: Wunderbaum);
|
|
1959
2124
|
protected _getEmbeddedInputElem(elem: any): HTMLInputElement | null;
|
|
1960
2125
|
protected _isCurInputFocused(): boolean;
|
|
@@ -1964,7 +2129,7 @@ declare module "wb_ext_keynav" {
|
|
|
1964
2129
|
declare module "wb_ext_logger" {
|
|
1965
2130
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1966
2131
|
import { Wunderbaum } from "wunderbaum";
|
|
1967
|
-
export class LoggerExtension extends WunderbaumExtension {
|
|
2132
|
+
export class LoggerExtension extends WunderbaumExtension<any> {
|
|
1968
2133
|
readonly prefix: string;
|
|
1969
2134
|
protected ignoreEvents: Set<string>;
|
|
1970
2135
|
constructor(tree: Wunderbaum);
|
|
@@ -1976,9 +2141,9 @@ declare module "wb_ext_dnd" {
|
|
|
1976
2141
|
import { Wunderbaum } from "wunderbaum";
|
|
1977
2142
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
1978
2143
|
import { WunderbaumNode } from "wb_node";
|
|
1979
|
-
import { DropRegionType, DropRegionTypeSet } from "types";
|
|
2144
|
+
import { DndOptionsType, DropRegionType, DropRegionTypeSet } from "types";
|
|
1980
2145
|
import { DebouncedFunction } from "debounce";
|
|
1981
|
-
export class DndExtension extends WunderbaumExtension {
|
|
2146
|
+
export class DndExtension extends WunderbaumExtension<DndOptionsType> {
|
|
1982
2147
|
protected srcNode: WunderbaumNode | null;
|
|
1983
2148
|
protected lastTargetNode: WunderbaumNode | null;
|
|
1984
2149
|
protected lastEnterStamp: number;
|
|
@@ -2072,7 +2237,8 @@ declare module "wb_ext_grid" {
|
|
|
2072
2237
|
import { Wunderbaum } from "wunderbaum";
|
|
2073
2238
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
2074
2239
|
import { DragCallbackArgType, DragObserver } from "drag_observer";
|
|
2075
|
-
|
|
2240
|
+
import { GridOptionsType } from "types";
|
|
2241
|
+
export class GridExtension extends WunderbaumExtension<GridOptionsType> {
|
|
2076
2242
|
protected observer: DragObserver;
|
|
2077
2243
|
constructor(tree: Wunderbaum);
|
|
2078
2244
|
init(): void;
|
|
@@ -2088,8 +2254,8 @@ declare module "wb_ext_edit" {
|
|
|
2088
2254
|
import { Wunderbaum } from "wunderbaum";
|
|
2089
2255
|
import { WunderbaumExtension } from "wb_extension_base";
|
|
2090
2256
|
import { WunderbaumNode } from "wb_node";
|
|
2091
|
-
import { InsertNodeType, WbNodeData } from "types";
|
|
2092
|
-
export class EditExtension extends WunderbaumExtension {
|
|
2257
|
+
import { EditOptionsType, InsertNodeType, WbNodeData } from "types";
|
|
2258
|
+
export class EditExtension extends WunderbaumExtension<EditOptionsType> {
|
|
2093
2259
|
protected debouncedOnChange: (e: Event) => void;
|
|
2094
2260
|
protected curEditNode: WunderbaumNode | null;
|
|
2095
2261
|
protected relatedNode: WunderbaumNode | null;
|
|
@@ -2160,7 +2326,7 @@ declare module "wunderbaum" {
|
|
|
2160
2326
|
[key: string]: any;
|
|
2161
2327
|
};
|
|
2162
2328
|
protected readonly _updateViewportThrottled: (...args: any) => void;
|
|
2163
|
-
protected extensionList: WunderbaumExtension[];
|
|
2329
|
+
protected extensionList: WunderbaumExtension<any>[];
|
|
2164
2330
|
protected extensions: ExtensionsDict;
|
|
2165
2331
|
/** Merged options from constructor args and tree- and extension defaults. */
|
|
2166
2332
|
options: WunderbaumOptions;
|
|
@@ -2239,7 +2405,7 @@ declare module "wunderbaum" {
|
|
|
2239
2405
|
*/
|
|
2240
2406
|
[Symbol.iterator](): IterableIterator<WunderbaumNode>;
|
|
2241
2407
|
/** @internal */
|
|
2242
|
-
protected _registerExtension(extension: WunderbaumExtension): void;
|
|
2408
|
+
protected _registerExtension(extension: WunderbaumExtension<any>): void;
|
|
2243
2409
|
/** Called on tree (re)init after markup is created, before loading. */
|
|
2244
2410
|
protected _initExtensions(): void;
|
|
2245
2411
|
/** Add node to tree's bookkeeping data structures. */
|
|
@@ -2247,7 +2413,7 @@ declare module "wunderbaum" {
|
|
|
2247
2413
|
/** Remove node from tree's bookkeeping data structures. */
|
|
2248
2414
|
_unregisterNode(node: WunderbaumNode): void;
|
|
2249
2415
|
/** Call all hook methods of all registered extensions.*/
|
|
2250
|
-
protected _callHook(hook: keyof WunderbaumExtension
|
|
2416
|
+
protected _callHook(hook: keyof WunderbaumExtension<any>, data?: any): any;
|
|
2251
2417
|
/**
|
|
2252
2418
|
* Call tree method or extension method if defined.
|
|
2253
2419
|
*
|