wunderbaum 0.0.9 → 0.1.0

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.
@@ -337,7 +337,7 @@ declare module "wb_options" {
337
337
  * Copyright (c) 2021-2022, Martin Wendt. Released under the MIT license.
338
338
  * @VERSION, @DATE (https://github.com/mar10/wunderbaum)
339
339
  */
340
- import { BoolOptionResolver, ColumnDefinitionList, DndOptionsType, NavigationOptions, NodeTypeDefinitions, WbNodeEventType, WbRenderEventType, WbTreeEventType } from "types";
340
+ import { BoolOptionResolver, ColumnDefinitionList, DndOptionsType, NavModeEnum, NodeTypeDefinitionMap, WbActivateEventType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbEnhanceTitleEventType, WbErrorEventType, WbInitEventType, WbKeydownEventType, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbTreeEventType } from "types";
341
341
  export interface WbNodeData {
342
342
  title: string;
343
343
  key?: string;
@@ -345,6 +345,7 @@ declare module "wb_options" {
345
345
  expanded?: boolean;
346
346
  selected?: boolean;
347
347
  checkbox?: boolean | string;
348
+ colspan?: boolean;
348
349
  children?: Array<WbNodeData>;
349
350
  }
350
351
  /**
@@ -403,7 +404,7 @@ declare module "wb_options" {
403
404
  *
404
405
  * Default: `{}`.
405
406
  */
406
- types?: NodeTypeDefinitions;
407
+ types?: NodeTypeDefinitionMap;
407
408
  /**
408
409
  * A list of maps that define column headers. If this option is set,
409
410
  * Wunderbaum becomes a treegrid control instead of a plain tree.
@@ -450,9 +451,9 @@ declare module "wb_options" {
450
451
  */
451
452
  connectTopBreadcrumb?: HTMLElement;
452
453
  /**
453
- * Default: NavigationOptions.startRow
454
+ * Default: NavModeEnum.startRow
454
455
  */
455
- navigationModeOption?: NavigationOptions;
456
+ navigationModeOption?: NavModeEnum;
456
457
  /**
457
458
  * Show/hide header (default: null)
458
459
  * null: assume false for plain tree and true for grids.
@@ -495,32 +496,36 @@ declare module "wb_options" {
495
496
  *
496
497
  * @category Callback
497
498
  */
498
- activate?: (e: WbNodeEventType) => void;
499
+ activate?: (e: WbActivateEventType) => void;
499
500
  /**
500
501
  *
502
+ * Return `false` to prevent default handling, e.g. activating the node.
501
503
  * @category Callback
502
504
  */
503
- change?: (e: WbNodeEventType) => void;
505
+ beforeActivate?: (e: WbActivateEventType) => void;
504
506
  /**
505
507
  *
506
- * Return `false` to prevent default handling, e.g. activating the node.
507
508
  * @category Callback
508
509
  */
509
- click?: (e: WbTreeEventType) => void;
510
+ change?: (e: WbChangeEventType) => void;
510
511
  /**
511
512
  *
512
513
  * Return `false` to prevent default handling, e.g. activating the node.
513
514
  * @category Callback
514
515
  */
515
- beforeActivate?: (e: WbNodeEventType) => void;
516
+ click?: (e: WbClickEventType) => void;
516
517
  /**
518
+ *
519
+ * @category Callback
520
+ */
521
+ dblclick?: (e: WbClickEventType) => void;
517
522
  /**
518
523
  *
519
524
  * Return `false` to prevent default handling, e.g. deactivating the node
520
525
  * and activating the next.
521
526
  * @category Callback
522
527
  */
523
- deactivate?: (e: WbNodeEventType) => void;
528
+ deactivate?: (e: WbDeactivateEventType) => void;
524
529
  /**
525
530
  *
526
531
  * @category Callback
@@ -530,12 +535,12 @@ declare module "wb_options" {
530
535
  *
531
536
  * @category Callback
532
537
  */
533
- enhanceTitle?: (e: WbNodeEventType) => void;
538
+ enhanceTitle?: (e: WbEnhanceTitleEventType) => void;
534
539
  /**
535
540
  *
536
541
  * @category Callback
537
542
  */
538
- error?: (e: WbTreeEventType) => void;
543
+ error?: (e: WbErrorEventType) => void;
539
544
  /**
540
545
  *
541
546
  * Check `e.flag` for status.
@@ -549,12 +554,12 @@ declare module "wb_options" {
549
554
  * Check `e.error` for status.
550
555
  * @category Callback
551
556
  */
552
- init?: (e: WbTreeEventType) => void;
557
+ init?: (e: WbInitEventType) => void;
553
558
  /**
554
559
  *
555
560
  * @category Callback
556
561
  */
557
- keydown?: (e: WbNodeEventType) => void;
562
+ keydown?: (e: WbKeydownEventType) => void;
558
563
  /**
559
564
  * Fires when a node that was marked 'lazy', is expanded for the first time.
560
565
  * Typically we return an endpoint URL or the Promise of a fetch request that
@@ -579,7 +584,7 @@ declare module "wb_options" {
579
584
  * external response to native Wunderbaum syntax.
580
585
  * @category Callback
581
586
  */
582
- receive?: (e: WbNodeEventType) => void;
587
+ receive?: (e: WbReceiveEventType) => void;
583
588
  /**
584
589
  * Fires when a node is about to be displayed.
585
590
  * The default HTML markup is already created, but not yet added to the DOM.
@@ -593,7 +598,7 @@ declare module "wb_options" {
593
598
  *
594
599
  * @category Callback
595
600
  */
596
- renderStatusNode?: (e: WbNodeEventType) => void;
601
+ renderStatusNode?: (e: WbRenderEventType) => void;
597
602
  /**
598
603
  *
599
604
  * Check `e.flag` for status.
@@ -615,7 +620,7 @@ declare module "wb_node" {
615
620
  */
616
621
  import "./wunderbaum.scss";
617
622
  import { Wunderbaum } from "wunderbaum";
618
- import { AddChildrenOptions, AddNodeType, ApplyCommandType, ChangeType, ExpandAllOptions, MakeVisibleOptions, MatcherCallback, NodeAnyCallback, NodeStatusType, NodeStringCallback, NodeVisitCallback, NodeVisitResponse, ScrollIntoViewOptions, SetActiveOptions, SetExpandedOptions, SetSelectedOptions, SetStatusOptions } from "types";
623
+ import { AddChildrenOptions, AddNodeType, ApplyCommandOptions, ApplyCommandType, ChangeType, ExpandAllOptions, MakeVisibleOptions, MatcherCallback, NavigateOptions, NodeAnyCallback, NodeStatusType, NodeStringCallback, NodeVisitCallback, NodeVisitResponse, RenderOptions, ScrollIntoViewOptions, SetActiveOptions, SetExpandedOptions, SetSelectedOptions, SetStatusOptions } from "types";
619
624
  import { WbNodeData } from "wb_options";
620
625
  /**
621
626
  * A single tree node.
@@ -722,7 +727,7 @@ declare module "wb_node" {
722
727
  *
723
728
  * @see {@link Wunderbaum.applyCommand}
724
729
  */
725
- applyCommand(cmd: ApplyCommandType, opts: any): any;
730
+ applyCommand(cmd: ApplyCommandType, options: ApplyCommandOptions): any;
726
731
  /**
727
732
  * Add/remove one or more classes to `<div class='wb-row'>`.
728
733
  *
@@ -777,7 +782,7 @@ declare module "wb_node" {
777
782
  */
778
783
  format_iter(name_cb?: NodeStringCallback, connectors?: string[]): IterableIterator<string>;
779
784
  /**
780
- * Return multiline string representation of a node/subnode hierarchy.
785
+ * Return a multiline string representation of a node/subnode hierarchy.
781
786
  * Mostly useful for debugging.
782
787
  *
783
788
  * Example:
@@ -789,7 +794,6 @@ declare module "wb_node" {
789
794
  * Books
790
795
  * ├─ Art of War
791
796
  * ╰─ Don Quixote
792
- * ...
793
797
  * ```
794
798
  * @see {@link WunderbaumNode.format_iter}
795
799
  */
@@ -833,7 +837,11 @@ declare module "wb_node" {
833
837
  hasClass(className: string): boolean;
834
838
  /** Return true if this node is the currently active tree node. */
835
839
  isActive(): boolean;
836
- /** Return true if this node is a *direct* child of `other`.
840
+ /** Return true if this node is a direct or indirect parent of `other`.
841
+ * (See also [[isParentOf]].)
842
+ */
843
+ isAncestorOf(other: WunderbaumNode): boolean;
844
+ /** Return true if this node is a **direct** subnode of `other`.
837
845
  * (See also [[isDescendantOf]].)
838
846
  */
839
847
  isChildOf(other: WunderbaumNode): boolean;
@@ -841,7 +849,7 @@ declare module "wb_node" {
841
849
  * grid cells.
842
850
  */
843
851
  isColspan(): boolean;
844
- /** Return true if this node is a direct or indirect sub node of `other`.
852
+ /** Return true if this node is a direct or indirect subnode of `other`.
845
853
  * (See also [[isChildOf]].)
846
854
  */
847
855
  isDescendantOf(other: WunderbaumNode): boolean;
@@ -866,6 +874,10 @@ declare module "wb_node" {
866
874
  isLoading(): boolean;
867
875
  /** Return true if this node is a temporarily generated status node of type 'paging'. */
868
876
  isPagingNode(): boolean;
877
+ /** Return true if this node is a **direct** parent of `other`.
878
+ * (See also [[isAncestorOf]].)
879
+ */
880
+ isParentOf(other: WunderbaumNode): boolean;
869
881
  /** (experimental) Return true if this node is partially loaded. */
870
882
  isPartload(): boolean;
871
883
  /** Return true if this node is partially selected (tri-state). */
@@ -923,7 +935,7 @@ declare module "wb_node" {
923
935
  * e.g. `ArrowLeft` = 'left'.
924
936
  * @param options
925
937
  */
926
- navigate(where: string, options?: any): Promise<any>;
938
+ navigate(where: string, options?: NavigateOptions): Promise<any>;
927
939
  /** Delete this node and all descendants. */
928
940
  remove(): void;
929
941
  /** Remove all descendants of this node. */
@@ -936,18 +948,18 @@ declare module "wb_node" {
936
948
  * Create a whole new `<div class="wb-row">` element.
937
949
  * @see {@link WunderbaumNode.render}
938
950
  */
939
- protected _render_markup(opts: any): void;
951
+ protected _render_markup(opts: RenderOptions): void;
940
952
  /**
941
953
  * Render `node.title`, `.icon` into an existing row.
942
954
  *
943
955
  * @see {@link WunderbaumNode.render}
944
956
  */
945
- protected _render_data(opts: any): void;
957
+ protected _render_data(opts: RenderOptions): void;
946
958
  /**
947
959
  * Update row classes to reflect active, focuses, etc.
948
960
  * @see {@link WunderbaumNode.render}
949
961
  */
950
- protected _render_status(opts: any): void;
962
+ protected _render_status(opts: RenderOptions): void;
951
963
  /**
952
964
  * Create or update node's markup.
953
965
  *
@@ -962,7 +974,7 @@ declare module "wb_node" {
962
974
  * Calling `setModified` instead may be a better alternative.
963
975
  * @see {@link WunderbaumNode.setModified}
964
976
  */
965
- render(options?: any): void;
977
+ render(options?: RenderOptions): void;
966
978
  /**
967
979
  * Remove all children, collapse, and set the lazy-flag, so that the lazyLoad
968
980
  * event is triggered on next expand.
@@ -1098,8 +1110,10 @@ declare module "types" {
1098
1110
  export interface WbTreeEventType {
1099
1111
  /** Name of the event. */
1100
1112
  type: string;
1101
- /** The affected tree. */
1113
+ /** The affected tree instance. */
1102
1114
  tree: Wunderbaum;
1115
+ /** Exposed utility module methods. */
1116
+ util: any;
1103
1117
  /** Originating HTML event, e.g. `click` if any. */
1104
1118
  event?: Event;
1105
1119
  }
@@ -1112,6 +1126,53 @@ declare module "types" {
1112
1126
  */
1113
1127
  typeInfo: NodeTypeDefinition;
1114
1128
  }
1129
+ export interface WbActivateEventType extends WbNodeEventType {
1130
+ prevNode: WunderbaumNode;
1131
+ /** The original event. */
1132
+ event: Event;
1133
+ }
1134
+ export interface WbChangeEventType extends WbNodeEventType {
1135
+ info: WbEventInfo;
1136
+ inputElem: HTMLInputElement;
1137
+ inputValue: any;
1138
+ }
1139
+ export interface WbClickEventType extends WbTreeEventType {
1140
+ /** The original event. */
1141
+ event: MouseEvent;
1142
+ node: WunderbaumNode;
1143
+ info: WbEventInfo;
1144
+ }
1145
+ export interface WbErrorEventType extends WbNodeEventType {
1146
+ error: any;
1147
+ }
1148
+ export interface WbDeactivateEventType extends WbNodeEventType {
1149
+ nextNode: WunderbaumNode;
1150
+ /** The original event. */
1151
+ event: Event;
1152
+ }
1153
+ export interface WbEnhanceTitleEventType extends WbNodeEventType {
1154
+ titleSpan: HTMLSpanElement;
1155
+ }
1156
+ export interface WbFocusEventType extends WbTreeEventType {
1157
+ /** The original event. */
1158
+ event: FocusEvent;
1159
+ /** True if `focusin`, false if `focusout`. */
1160
+ flag: boolean;
1161
+ }
1162
+ export interface WbKeydownEventType extends WbTreeEventType {
1163
+ /** The original event. */
1164
+ event: KeyboardEvent;
1165
+ node: WunderbaumNode;
1166
+ info: WbEventInfo;
1167
+ /** Canical name of the key including modifiers. @see {@link eventToString} */
1168
+ eventName: string;
1169
+ }
1170
+ export interface WbInitEventType extends WbTreeEventType {
1171
+ error?: any;
1172
+ }
1173
+ export interface WbReceiveEventType extends WbNodeEventType {
1174
+ response: any;
1175
+ }
1115
1176
  export interface WbRenderEventType extends WbNodeEventType {
1116
1177
  /**
1117
1178
  * True if the node's markup was not yet created. In this case the render
@@ -1119,35 +1180,35 @@ declare module "types" {
1119
1180
  * values according to to current node data).
1120
1181
  */
1121
1182
  isNew: boolean;
1122
- /** True if the node only displays the title and is stretched over all remaining columns. */
1123
- isColspan: boolean;
1124
1183
  /** The node's `<span class='wb-node'>` element. */
1125
1184
  nodeElem: HTMLSpanElement;
1185
+ /** True if the node only displays the title and is stretched over all remaining columns. */
1186
+ isColspan: boolean;
1126
1187
  /**
1127
1188
  * Array of node's `<span class='wb-col'>` elements.
1128
1189
  * The first element is `<span class='wb-node wb-col'>`, which contains the
1129
1190
  * node title and icon (`idx: 0`, id: '*'`).
1130
1191
  */
1131
- allColInfosById: ColumnEventInfos;
1192
+ allColInfosById: ColumnEventInfoMap;
1132
1193
  /**
1133
1194
  * Array of node's `<span class='wb-node'>` elements, *that should be rendered*.
1134
1195
  * In contrast to `allColInfosById`, the node title is not part of this array.
1135
1196
  * If node.isColspan() is true, this array is empty (`[]`).
1136
1197
  */
1137
- renderColInfosById: ColumnEventInfos;
1198
+ renderColInfosById: ColumnEventInfoMap;
1138
1199
  }
1139
1200
  /**
1140
1201
  * Contains the node's type information, i.e. `tree.types[node.type]` if
1141
1202
  * defined. @see {@link Wunderbaum.types}
1142
1203
  */
1143
1204
  export interface NodeTypeDefinition {
1144
- /** En/disable checkbox for matching nodes.*/
1205
+ /** En/disable checkbox for matching nodes. */
1145
1206
  checkbox?: boolean | BoolOrStringOptionResolver;
1146
- /** En/disable checkbox for matching nodes.*/
1147
- colspan?: boolean | BoolOptionResolver;
1148
- /** Optional class names that are added to all `div.wb-row` elements of matching nodes.*/
1207
+ /** Optional class names that are added to all `div.wb-row` elements of matching nodes. */
1149
1208
  classes?: string;
1150
- /**Default icon for matching nodes.*/
1209
+ /** Only show title and hide other columns if any. */
1210
+ colspan?: boolean | BoolOptionResolver;
1211
+ /** Default icon for matching nodes. */
1151
1212
  icon?: boolean | string | BoolOrStringOptionResolver;
1152
1213
  /**
1153
1214
  * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}
@@ -1155,10 +1216,11 @@ declare module "types" {
1155
1216
  */
1156
1217
  [key: string]: unknown;
1157
1218
  }
1158
- export type NodeTypeDefinitions = {
1219
+ export type NodeTypeDefinitionMap = {
1159
1220
  [type: string]: NodeTypeDefinition;
1160
1221
  };
1161
1222
  /**
1223
+ * Column type definitions.
1162
1224
  * @see {@link `Wunderbaum.columns`}
1163
1225
  */
1164
1226
  export interface ColumnDefinition {
@@ -1187,6 +1249,9 @@ declare module "types" {
1187
1249
  _ofsPx?: number;
1188
1250
  }
1189
1251
  export type ColumnDefinitionList = Array<ColumnDefinition>;
1252
+ /**
1253
+ * Column information (passed to the `render` event).
1254
+ */
1190
1255
  export interface ColumnEventInfo {
1191
1256
  /** Column ID as defined in `tree.columns` definition ("*" for title column). */
1192
1257
  id: string;
@@ -1197,12 +1262,29 @@ declare module "types" {
1197
1262
  /** The value of `tree.columns[]` for the current index. */
1198
1263
  info: ColumnDefinition;
1199
1264
  }
1200
- export type ColumnEventInfos = {
1265
+ export type ColumnEventInfoMap = {
1201
1266
  [colId: string]: ColumnEventInfo;
1202
1267
  };
1203
- export type WbTreeCallbackType = (e: WbTreeEventType) => any;
1204
- export type WbNodeCallbackType = (e: WbNodeEventType) => any;
1205
- export type WbRenderCallbackType = (e: WbRenderEventType) => void;
1268
+ /**
1269
+ * Additional inforation derived from mouse or keyboard events.
1270
+ * @see {@link Wunderbaum.getEventInfo}
1271
+ */
1272
+ export interface WbEventInfo {
1273
+ /** The tree instance. */
1274
+ tree: Wunderbaum;
1275
+ /** The affected node instance instance if any. */
1276
+ node: WunderbaumNode | null;
1277
+ /** The affected part of the node span (e.g. title, expander, ...). */
1278
+ region: NodeRegion;
1279
+ /** The definition of the affected column if any. */
1280
+ colDef?: ColumnDefinition;
1281
+ /** The index of affected column or -1. */
1282
+ colIdx: number;
1283
+ /** The column definition ID of affected column if any. */
1284
+ colId?: string;
1285
+ /** The affected column's span tag if any. */
1286
+ colElem?: HTMLSpanElement;
1287
+ }
1206
1288
  export type FilterModeType = null | "dim" | "hide";
1207
1289
  export type ApplyCommandType = "moveUp" | "moveDown" | "indent" | "outdent" | "remove" | "rename" | "addChild" | "addSibling" | "cut" | "copy" | "paste" | "down" | "first" | "last" | "left" | "pageDown" | "pageUp" | "parent" | "right" | "up";
1208
1290
  export type NodeFilterResponse = "skip" | "branch" | boolean | void;
@@ -1234,7 +1316,7 @@ declare module "types" {
1234
1316
  noData = "noData"
1235
1317
  }
1236
1318
  /** Define the subregion of a node, where an event occurred. */
1237
- export enum TargetType {
1319
+ export enum NodeRegion {
1238
1320
  unknown = "",
1239
1321
  checkbox = "checkbox",
1240
1322
  column = "column",
@@ -1243,6 +1325,13 @@ declare module "types" {
1243
1325
  prefix = "prefix",
1244
1326
  title = "title"
1245
1327
  }
1328
+ /** Initial navigation mode and possible transition. */
1329
+ export enum NavModeEnum {
1330
+ startRow = "startRow",
1331
+ cell = "cell",
1332
+ startCell = "startCell",
1333
+ row = "row"
1334
+ }
1246
1335
  /** Possible values for {@link WunderbaumNode.addChildren()}. */
1247
1336
  export interface AddChildrenOptions {
1248
1337
  /** Insert children before this node (or index)
@@ -1258,6 +1347,10 @@ declare module "types" {
1258
1347
  /** (@internal Internal use, do not set! ) */
1259
1348
  _level?: number;
1260
1349
  }
1350
+ /** Possible values for {@link Wunderbaum.applyCommand()} and {@link WunderbaumNode.applyCommand()}. */
1351
+ export interface ApplyCommandOptions {
1352
+ [key: string]: unknown;
1353
+ }
1261
1354
  /** Possible values for {@link Wunderbaum.expandAll()} and {@link WunderbaumNode.expandAll()}. */
1262
1355
  export interface ExpandAllOptions {
1263
1356
  /** Restrict expand level @default 99 */
@@ -1267,6 +1360,16 @@ declare module "types" {
1267
1360
  /** Ignore `minExpandLevel` option @default false */
1268
1361
  force?: boolean;
1269
1362
  }
1363
+ /** Possible values for {@link Wunderbaum.filterNodes()} and {@link Wunderbaum.filterBranches()}. */
1364
+ export interface FilterNodesOptions {
1365
+ mode?: string;
1366
+ leavesOnly?: boolean;
1367
+ fuzzy?: boolean;
1368
+ highlight?: boolean;
1369
+ hideExpanders?: boolean;
1370
+ autoExpand?: boolean;
1371
+ noData?: boolean;
1372
+ }
1270
1373
  /** Possible values for {@link WunderbaumNode.makeVisible()}. */
1271
1374
  export interface MakeVisibleOptions {
1272
1375
  /** Do not animate expand (currently not implemented). @default false */
@@ -1276,12 +1379,19 @@ declare module "types" {
1276
1379
  /** Do not send events. @default false */
1277
1380
  noEvents?: boolean;
1278
1381
  }
1279
- /** Initial navigation mode and possible transition. */
1280
- export enum NavigationOptions {
1281
- startRow = "startRow",
1282
- cell = "cell",
1283
- startCell = "startCell",
1284
- row = "row"
1382
+ /** Possible values for {@link Wunderbaum.navigate()}. */
1383
+ export interface NavigateOptions {
1384
+ activate?: boolean;
1385
+ event?: Event;
1386
+ }
1387
+ /** Possible values for {@link WunderbaumNode.render()}. */
1388
+ export interface RenderOptions {
1389
+ change?: ChangeType;
1390
+ after?: any;
1391
+ isNew?: boolean;
1392
+ preventScroll?: boolean;
1393
+ isDataChange?: boolean;
1394
+ top?: number;
1285
1395
  }
1286
1396
  /** Possible values for {@link scrollIntoView()}. */
1287
1397
  export interface ScrollIntoViewOptions {
@@ -1348,6 +1458,19 @@ declare module "types" {
1348
1458
  /** Used as tooltip. */
1349
1459
  details?: string;
1350
1460
  }
1461
+ /** Possible values for {@link Wunderbaum.updateColumns()}. */
1462
+ export interface UpdateColumnsOptions {
1463
+ calculateCols?: boolean;
1464
+ updateRows?: boolean;
1465
+ }
1466
+ /** Possible values for {@link Wunderbaum.visitRows()} and {@link Wunderbaum.visitRowsUp()}. */
1467
+ export interface VisitRowsOptions {
1468
+ reverse?: boolean;
1469
+ includeSelf?: boolean;
1470
+ includeHidden?: boolean;
1471
+ wrap?: boolean;
1472
+ start?: WunderbaumNode | null;
1473
+ }
1351
1474
  export type DropRegionType = "over" | "before" | "after";
1352
1475
  export type DropRegionTypeSet = Set<DropRegionType>;
1353
1476
  export type DndOptionsType = {
@@ -1619,7 +1742,7 @@ declare module "debounce" {
1619
1742
  export function throttle<F extends Procedure>(func: F, wait?: number, options?: ThrottleOptions): DebouncedFunction<F>;
1620
1743
  }
1621
1744
  declare module "wb_ext_filter" {
1622
- import { NodeFilterCallback } from "types";
1745
+ import { FilterNodesOptions, NodeFilterCallback } from "types";
1623
1746
  import { Wunderbaum } from "wunderbaum";
1624
1747
  import { WunderbaumExtension } from "wb_extension_base";
1625
1748
  export class FilterExtension extends WunderbaumExtension {
@@ -1633,15 +1756,15 @@ declare module "wb_ext_filter" {
1633
1756
  /**
1634
1757
  * [ext-filter] Dim or hide nodes.
1635
1758
  *
1636
- * @param {boolean} [opts={autoExpand: false, leavesOnly: false}]
1759
+ * @param {boolean} [options={autoExpand: false, leavesOnly: false}]
1637
1760
  */
1638
- filterNodes(filter: string | NodeFilterCallback, opts: any): void;
1761
+ filterNodes(filter: string | NodeFilterCallback, options: FilterNodesOptions): void;
1639
1762
  /**
1640
1763
  * [ext-filter] Dim or hide whole branches.
1641
1764
  *
1642
- * @param {boolean} [opts={autoExpand: false}]
1765
+ * @param {boolean} [options={autoExpand: false}]
1643
1766
  */
1644
- filterBranches(filter: string | NodeFilterCallback, opts: any): void;
1767
+ filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): void;
1645
1768
  /**
1646
1769
  * [ext-filter] Re-apply current filter.
1647
1770
  */
@@ -1804,7 +1927,7 @@ declare module "wb_ext_edit" {
1804
1927
  * @returns
1805
1928
  */
1806
1929
  stopEditTitle(apply: boolean): void;
1807
- _stopEditTitle(apply: boolean, opts: any): void;
1930
+ _stopEditTitle(apply: boolean, options: any): void;
1808
1931
  /**
1809
1932
  * Create a new child or sibling node and start edit mode.
1810
1933
  */
@@ -1827,7 +1950,7 @@ declare module "wunderbaum" {
1827
1950
  import "./wunderbaum.scss";
1828
1951
  import * as util from "util";
1829
1952
  import { ExtensionsDict, WunderbaumExtension } from "wb_extension_base";
1830
- import { ApplyCommandType, ChangeType, ColumnDefinitionList, ExpandAllOptions, FilterModeType, MatcherCallback, NavigationOptions, NodeStatusType, NodeStringCallback, NodeTypeDefinitions, ScrollToOptions, SetActiveOptions, SetStatusOptions, TargetType as NodeRegion } from "types";
1953
+ import { ApplyCommandType, ChangeType, ColumnDefinitionList, ExpandAllOptions, FilterModeType, MatcherCallback, NavModeEnum, NodeStatusType, NodeStringCallback, NodeTypeDefinitionMap, ScrollToOptions, SetActiveOptions, SetModifiedOptions, SetStatusOptions, WbEventInfo, ApplyCommandOptions, AddChildrenOptions, UpdateColumnsOptions, VisitRowsOptions } from "types";
1831
1954
  import { WunderbaumNode } from "wb_node";
1832
1955
  import { WunderbaumOptions } from "wb_options";
1833
1956
  /**
@@ -1848,8 +1971,8 @@ declare module "wunderbaum" {
1848
1971
  readonly element: HTMLDivElement;
1849
1972
  /** The `div.wb-header` element if any. */
1850
1973
  readonly headerElement: HTMLDivElement;
1851
- /** The `div.wb-scroll-container` element that contains the `nodeListElement`. */
1852
- readonly scrollContainerElement: HTMLDivElement;
1974
+ /** The `div.wb-list-container` element that contains the `nodeListElement`. */
1975
+ readonly listContainerElement: HTMLDivElement;
1853
1976
  /** The `div.wb-node-list` element that contains all visible div.wb-row child elements. */
1854
1977
  readonly nodeListElement: HTMLDivElement;
1855
1978
  /** Contains additional data that was sent as response to an Ajax source load request. */
@@ -1870,7 +1993,7 @@ declare module "wunderbaum" {
1870
1993
  /** Current node hat has keyboard focus if any. */
1871
1994
  focusNode: WunderbaumNode | null;
1872
1995
  /** Shared properties, referenced by `node.type`. */
1873
- types: NodeTypeDefinitions;
1996
+ types: NodeTypeDefinitionMap;
1874
1997
  /** List of column definitions. */
1875
1998
  columns: ColumnDefinitionList;
1876
1999
  protected _columnsById: {
@@ -1967,16 +2090,16 @@ declare module "wunderbaum" {
1967
2090
  *
1968
2091
  * @see {@link WunderbaumNode.addChildren}
1969
2092
  */
1970
- addChildren(nodeData: any, options?: any): WunderbaumNode;
2093
+ addChildren(nodeData: any, options?: AddChildrenOptions): WunderbaumNode;
1971
2094
  /**
1972
2095
  * Apply a modification (or navigation) operation on the **tree or active node**.
1973
2096
  */
1974
- applyCommand(cmd: ApplyCommandType, options?: any): any;
2097
+ applyCommand(cmd: ApplyCommandType, options?: ApplyCommandOptions): any;
1975
2098
  /**
1976
2099
  * Apply a modification (or navigation) operation on a **node**.
1977
2100
  * @see {@link WunderbaumNode.applyCommand}
1978
2101
  */
1979
- applyCommand(cmd: ApplyCommandType, node: WunderbaumNode, options?: any): any;
2102
+ applyCommand(cmd: ApplyCommandType, node: WunderbaumNode, options?: ApplyCommandOptions): any;
1980
2103
  /** Delete all nodes. */
1981
2104
  clear(): void;
1982
2105
  /**
@@ -2103,15 +2226,7 @@ declare module "wunderbaum" {
2103
2226
  * @returns {object} Return a {node: WunderbaumNode, region: TYPE} object
2104
2227
  * TYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined
2105
2228
  */
2106
- static getEventInfo(event: Event): {
2107
- tree: Wunderbaum;
2108
- node: WunderbaumNode;
2109
- region: NodeRegion;
2110
- colDef: any;
2111
- colIdx: number;
2112
- colId: any;
2113
- colElem: HTMLSpanElement;
2114
- };
2229
+ static getEventInfo(event: Event): WbEventInfo;
2115
2230
  /**
2116
2231
  * Return readable string representation for this instance.
2117
2232
  * @internal
@@ -2163,11 +2278,11 @@ declare module "wunderbaum" {
2163
2278
  /** Set or remove keybaord focus to the tree container. */
2164
2279
  setFocus(flag?: boolean): void;
2165
2280
  /** Schedule an update request to reflect a tree change. */
2166
- setModified(change: ChangeType, options?: any): void;
2281
+ setModified(change: ChangeType, options?: SetModifiedOptions): void;
2167
2282
  /** Schedule an update request to reflect a single node modification.
2168
2283
  * @see {@link WunderbaumNode.setModified}
2169
2284
  */
2170
- setModified(change: ChangeType, node: WunderbaumNode, options?: any): void;
2285
+ setModified(change: ChangeType, node: WunderbaumNode, options?: SetModifiedOptions): void;
2171
2286
  /** Disable mouse and keyboard interaction (return prev. state). */
2172
2287
  setEnabled(flag?: boolean): boolean;
2173
2288
  /** Return false if tree is disabled. */
@@ -2181,13 +2296,13 @@ declare module "wunderbaum" {
2181
2296
  /** Set the tree's navigation mode. */
2182
2297
  setCellNav(flag?: boolean): void;
2183
2298
  /** Set the tree's navigation mode option. */
2184
- setNavigationOption(mode: NavigationOptions, reset?: boolean): void;
2299
+ setNavigationOption(mode: NavModeEnum, reset?: boolean): void;
2185
2300
  /** Display tree status (ok, loading, error, noData) using styles and a dummy root node. */
2186
2301
  setStatus(status: NodeStatusType, options?: SetStatusOptions): WunderbaumNode | null;
2187
2302
  /** Add or redefine node type definitions. */
2188
2303
  setTypes(types: any, replace?: boolean): void;
2189
2304
  /** Update column headers and width. */
2190
- updateColumns(options?: any): void;
2305
+ updateColumns(options?: UpdateColumnsOptions): void;
2191
2306
  /** Create/update header markup from `this.columns` definition.
2192
2307
  * @internal
2193
2308
  */
@@ -2240,12 +2355,12 @@ declare module "wunderbaum" {
2240
2355
  * {start: First tree node, reverse: false, includeSelf: true, includeHidden: false, wrap: false}
2241
2356
  * @returns {boolean} false if iteration was canceled
2242
2357
  */
2243
- visitRows(callback: (node: WunderbaumNode) => any, options?: any): boolean;
2358
+ visitRows(callback: (node: WunderbaumNode) => any, options?: VisitRowsOptions): boolean;
2244
2359
  /**
2245
2360
  * Call fn(node) for all nodes in vertical order, bottom up.
2246
2361
  * @internal
2247
2362
  */
2248
- protected _visitRowsUp(callback: (node: WunderbaumNode) => any, opts: any): boolean;
2363
+ protected _visitRowsUp(callback: (node: WunderbaumNode) => any, options: VisitRowsOptions): boolean;
2249
2364
  /**
2250
2365
  * Reload the tree with a new source.
2251
2366
  *