wunderbaum 0.11.1 → 0.12.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.
package/README.md CHANGED
@@ -7,11 +7,11 @@
7
7
  [![Released with: grunt-yabs](https://img.shields.io/badge/released%20with-grunt--yabs-yellowgreen)](https://github.com/mar10/grunt-yabs)
8
8
  [![StackOverflow: wunderbaum](https://img.shields.io/badge/StackOverflow-wunderbaum-blue.svg)](https://stackoverflow.com/questions/tagged/wunderbaum)
9
9
 
10
- > A modern tree/treegrid control for the web. <br>
11
- > Designated successor of [Fancytree](https://github.com/mar10/fancytree).
12
- >
13
- > Status _beta_:<br>
14
- > API, Markup, Stylesheet, etc. are still subject to change.
10
+ > A modern tree/treegrid control for the web.
11
+
12
+ Designated successor of [Fancytree](https://github.com/mar10/fancytree).<br>
13
+ See the [upgrade guide](https://mar10.github.io/wunderbaum/tutorial/migrate/#what-has-changed)
14
+ for details.
15
15
 
16
16
  [![Demo](https://mar10.github.io/wunderbaum/assets/teaser_2.png)](https://mar10.github.io/wunderbaum/demo/)
17
17
 
@@ -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;AAyBA;AAwRA;AAoHA;AA8BA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAjkBA;EAEE;;AAIF;EACE;EACA;;AAGF;EACE;EAEA;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;;AAIA;EACE;;AAKF;EAEE;;AAGF;EAEE;;AAGF;EACE;;AAOA;EAEE;EACA;;AAEA;EACE;;AAaN;EAEE;EACA;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAOF;EACE;;AAGF;EAEE;;AAGA;EACE;;AAKJ;EACE;EACA;;AAGF;EAEE;EACA;;AAEA;EAEE;;AAIJ;EACE;;AAGF;AAAA;AAAA;EAGE;EAcA;EASA;;AAGF;EAEE;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAIA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;EACA;;AAKN;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;AAqBA;;AAhBA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;;AAIF;EACE;;AAGF;EACE;EACA;EACA;;AAMA;EACE;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;EAEA;EACA;EACA;EACA;EACA;;AAUI;EACE;;AAON;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIF;EACE;;AAGF;EACE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAgBE;EACA;EACA;;AAGF;AAAA;EAEE;;AAcA;EACE;;AAWJ;EACE;;AAGF;EACE;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAQJ;EACE;;AASJ;EACE;;AAEA;EACE;;AAGF;EACE;;AAMJ;EACE;;AAaJ;EACE;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGA;EACE;EACA;;AAEA;EAGE;EACA;EAGA;EACA;EACA;;AAgBR;AAAA;EAIE;EACA;EACA;;AAKF;EACE;;AAUE;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAOJ;EAIE;EACA;;AAGF;AAAA;EAKE;EACA;;AAMF;AAAA;EAEE;EACA;EACA;EACA;;AAOF;EACE;;AAGF;AAAA;EAEE;;AAKA;EACE;;;AAMR;AAEA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAQJ;AACA;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAIA;AAAA;EAEE;;AAGF;AAAA;EAEE;;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAIJ;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EAGE;;;AAGF;EACE;;;AAKF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"wunderbaum.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../src/wunderbaum.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AA6EA;AAAA;EAME;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAMF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAGA;AAsBA;AAyBA;AAwRA;AAoHA;AA8BA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAjkBA;EAEE;;AAIF;EACE;EACA;;AAGF;EACE;EAEA;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;;AAIA;EACE;;AAKF;EAEE;;AAGF;EAEE;;AAGF;EACE;;AAOA;EAEE;EACA;;AAEA;EACE;;AAaN;EAEE;EACA;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAOF;EACE;;AAGF;EAEE;;AAGA;EACE;;AAKJ;EACE;EACA;;AAGF;EAEE;EACA;;AAEA;EAEE;;AAIJ;EACE;;AAGF;AAAA;AAAA;EAGE;EAcA;EASA;;AAGF;EAEE;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAIA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;EACA;;AAKN;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;AAqBA;;AAhBA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;;AAIF;EACE;;AAGF;EACE;EACA;EACA;;AAMA;EACE;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;EAEA;EACA;EACA;EACA;EACA;;AAUI;EACE;;AAON;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIF;EACE;;AAGF;EACE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAgBE;EACA;EACA;;AAGF;AAAA;EAEE;;AAcA;EACE;;AAWJ;EACE;;AAGF;EACE;;AAEA;EACE;;AAON;EACE;;AAEA;EACE;;AAQJ;EACE;;AASJ;EACE;;AAEA;EACE;;AAGF;EACE;;AAMJ;EACE;;AAaJ;EACE;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGA;EACE;EACA;;AAEA;EAGE;EACA;EAGA;EACA;EACA;;AAgBR;AAAA;EAIE;EACA;EACA;;AAKF;EACE;;AAUE;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAFF;AAAA;EAEE;;AAOJ;EAIE;EACA;;AAGF;AAAA;EAKE;EACA;;AAMF;AAAA;EAEE;EACA;EACA;EACA;;AAOF;EACE;;AAGF;AAAA;EAEE;;AAKA;EACE;;;AAMR;AAEA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAQJ;AACA;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAIA;AAAA;EAEE;;AAGF;AAAA;EAEE;;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAIJ;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EAGE;;;AAGF;EACE;;;AAKF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"wunderbaum.css"}
@@ -681,7 +681,14 @@ declare module "wb_node" {
681
681
  setClass(className: string | string[] | Set<string>, flag?: boolean): void;
682
682
  /** Start editing this node's title. */
683
683
  startEditTitle(): void;
684
- /** Call `setExpanded()` on all descendant nodes. */
684
+ /**
685
+ * Call `setExpanded()` on all descendant nodes.
686
+ *
687
+ * @param flag true to expand, false to collapse.
688
+ * @param options Additional options.
689
+ * @see {@link Wunderbaum.expandAll}
690
+ * @see {@link WunderbaumNode.setExpanded}
691
+ */
685
692
  expandAll(flag?: boolean, options?: ExpandAllOptions): Promise<void>;
686
693
  /**
687
694
  * Find all descendant nodes that match condition (excluding self).
@@ -1955,12 +1962,34 @@ declare module "types" {
1955
1962
  }
1956
1963
  /** Possible values for {@link Wunderbaum.expandAll} and {@link WunderbaumNode.expandAll}. */
1957
1964
  export interface ExpandAllOptions {
1958
- /** Restrict expand level @default 99 */
1959
- depth?: number;
1960
1965
  /** Expand and load lazy nodes @default false */
1961
1966
  loadLazy?: boolean;
1962
- /** Ignore `minExpandLevel` option @default false */
1967
+ /** Unload lazily loaded children if any (if collapsing). @default false */
1968
+ resetLazy?: boolean;
1969
+ /** Ignore tree's `minExpandLevel` option @default false */
1963
1970
  force?: boolean;
1971
+ /** Restrict expand level.
1972
+ * Pass 0 to make only toplevel nodes visible, 1 to expand one level deeper, etc.
1973
+ * @default unset (unlimited)
1974
+ */
1975
+ depth?: number;
1976
+ /**
1977
+ * Also collapse child nodes beyond the `depth` level.
1978
+ * Otherwise only the `depth` level is collapsed and the expand state of the
1979
+ * descendants is retained.
1980
+ * Only in combination with collapse and `depth`.
1981
+ * Expanding with `deep` option is not supported as recursion depth implied by
1982
+ * the `depth` option. However a `deep` option will be considered if
1983
+ * `collapseOthers` is set.
1984
+ * @default false
1985
+ */
1986
+ deep?: boolean;
1987
+ /**
1988
+ * Expand up to level=depth and collapse all other branches.
1989
+ * Only in combination with `flag == true`, `depth > 0`.
1990
+ * @default false
1991
+ */
1992
+ collapseOthers?: boolean;
1964
1993
  /** Keep active node visible @default true */
1965
1994
  keepActiveNodeVisible?: boolean;
1966
1995
  }
@@ -2071,7 +2100,7 @@ declare module "types" {
2071
2100
  }
2072
2101
  /** Possible values for {@link WunderbaumNode.setExpanded} `options` argument. */
2073
2102
  export interface SetExpandedOptions {
2074
- /** Ignore {@link WunderbaumOptions.minExpandLevel}. @default false */
2103
+ /** Ignore {@link WunderbaumOptions}.minExpandLevel. @default false */
2075
2104
  force?: boolean;
2076
2105
  /** Immediately update viewport (async otherwise). @default false */
2077
2106
  immediate?: boolean;
@@ -2079,6 +2108,8 @@ declare module "types" {
2079
2108
  noAnimation?: boolean;
2080
2109
  /** Do not send events. @default false */
2081
2110
  noEvents?: boolean;
2111
+ /** Unload lazily loaded children if any (if collapsing). @default false */
2112
+ resetLazy?: boolean;
2082
2113
  /** Scroll up to bring expanded nodes into viewport. @default false */
2083
2114
  scrollIntoView?: boolean;
2084
2115
  }
@@ -288,7 +288,7 @@ function throttle(func, wait = 0, options = {}) {
288
288
  /*!
289
289
  * Wunderbaum - util
290
290
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
291
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
291
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
292
292
  */
293
293
  /** @module util */
294
294
  /** Readable names for `MouseEvent.button` */
@@ -1142,7 +1142,7 @@ var util = /*#__PURE__*/Object.freeze({
1142
1142
  /*!
1143
1143
  * Wunderbaum - types
1144
1144
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
1145
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
1145
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
1146
1146
  */
1147
1147
  /**
1148
1148
  * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}.
@@ -1206,7 +1206,7 @@ var NavModeEnum;
1206
1206
  /*!
1207
1207
  * Wunderbaum - wb_extension_base
1208
1208
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
1209
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
1209
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
1210
1210
  */
1211
1211
  class WunderbaumExtension {
1212
1212
  constructor(tree, id, defaults) {
@@ -1265,7 +1265,7 @@ class WunderbaumExtension {
1265
1265
  /*!
1266
1266
  * Wunderbaum - ext-filter
1267
1267
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
1268
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
1268
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
1269
1269
  */
1270
1270
  const START_MARKER = "\uFFF7";
1271
1271
  const END_MARKER = "\uFFF8";
@@ -1590,7 +1590,7 @@ function _markFuzzyMatchedChars(text, matches, escapeTitles = true) {
1590
1590
  /*!
1591
1591
  * Wunderbaum - ext-keynav
1592
1592
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
1593
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
1593
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
1594
1594
  */
1595
1595
  const QUICKSEARCH_DELAY = 500;
1596
1596
  class KeynavExtension extends WunderbaumExtension {
@@ -1954,7 +1954,7 @@ class KeynavExtension extends WunderbaumExtension {
1954
1954
  /*!
1955
1955
  * Wunderbaum - ext-logger
1956
1956
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
1957
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
1957
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
1958
1958
  */
1959
1959
  class LoggerExtension extends WunderbaumExtension {
1960
1960
  constructor(tree) {
@@ -1996,7 +1996,7 @@ class LoggerExtension extends WunderbaumExtension {
1996
1996
  /*!
1997
1997
  * Wunderbaum - ext-dnd
1998
1998
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
1999
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
1999
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
2000
2000
  */
2001
2001
  const nodeMimeType = "application/x-wunderbaum-node";
2002
2002
  class DndExtension extends WunderbaumExtension {
@@ -2446,7 +2446,7 @@ class DndExtension extends WunderbaumExtension {
2446
2446
  /*!
2447
2447
  * Wunderbaum - drag_observer
2448
2448
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
2449
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
2449
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
2450
2450
  */
2451
2451
  /**
2452
2452
  * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'.
@@ -2595,7 +2595,7 @@ class DragObserver {
2595
2595
  /*!
2596
2596
  * Wunderbaum - common
2597
2597
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
2598
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
2598
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
2599
2599
  */
2600
2600
  const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script
2601
2601
  /**
@@ -2935,7 +2935,7 @@ function decompressSourceData(source) {
2935
2935
  /*!
2936
2936
  * Wunderbaum - ext-grid
2937
2937
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
2938
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
2938
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
2939
2939
  */
2940
2940
  class GridExtension extends WunderbaumExtension {
2941
2941
  constructor(tree) {
@@ -3026,7 +3026,7 @@ class GridExtension extends WunderbaumExtension {
3026
3026
  /*!
3027
3027
  * Wunderbaum - deferred
3028
3028
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
3029
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
3029
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
3030
3030
  */
3031
3031
  /**
3032
3032
  * Implement a ES6 Promise, that exposes a resolve() and reject() method.
@@ -3079,7 +3079,7 @@ class Deferred {
3079
3079
  /*!
3080
3080
  * Wunderbaum - wunderbaum_node
3081
3081
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
3082
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
3082
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
3083
3083
  */
3084
3084
  /** WunderbaumNode properties that can be passed with source data.
3085
3085
  * (Any other source properties will be stored as `node.data.PROP`.)
@@ -3411,54 +3411,65 @@ class WunderbaumNode {
3411
3411
  startEditTitle() {
3412
3412
  this.tree._callMethod("edit.startEditTitle", this);
3413
3413
  }
3414
- /** Call `setExpanded()` on all descendant nodes. */
3414
+ /**
3415
+ * Call `setExpanded()` on all descendant nodes.
3416
+ *
3417
+ * @param flag true to expand, false to collapse.
3418
+ * @param options Additional options.
3419
+ * @see {@link Wunderbaum.expandAll}
3420
+ * @see {@link WunderbaumNode.setExpanded}
3421
+ */
3415
3422
  async expandAll(flag = true, options) {
3416
3423
  const tree = this.tree;
3417
- const minExpandLevel = this.tree.options.minExpandLevel;
3418
- const { depth = 99, loadLazy, force, keepActiveNodeVisible = true, } = options !== null && options !== void 0 ? options : {};
3424
+ const { collapseOthers, deep, depth, force, keepActiveNodeVisible = true, loadLazy, resetLazy, } = options !== null && options !== void 0 ? options : {};
3425
+ // limit expansion level to `depth` (or tree.minExpandLevel). Default: unlimited
3426
+ const treeLevel = this.tree.options.minExpandLevel || null; // 0 -> null
3427
+ const minLevel = depth !== null && depth !== void 0 ? depth : (force ? null : treeLevel);
3419
3428
  const expandOpts = {
3420
- scrollIntoView: false, // don't scroll very node on iteration
3429
+ deep: deep,
3421
3430
  force: force,
3422
3431
  loadLazy: loadLazy,
3432
+ resetLazy: resetLazy,
3433
+ scrollIntoView: false, // don't scroll every node while iterating
3423
3434
  };
3424
- // this.logInfo(`expandAll(${flag})`);
3435
+ this.logInfo(`expandAll(${flag}, depth=${depth}, minLevel=${minLevel})`);
3436
+ assert(!(flag && deep != null && !collapseOthers), "Expanding with `deep` option is not supported (implied by the `depth` option).");
3425
3437
  // Expand all direct children in parallel:
3426
3438
  async function _iter(n, level) {
3427
3439
  var _a;
3428
- // n.logInfo(` _iter(${level})`);
3429
- if (level === 0) {
3430
- return;
3431
- }
3432
- // if (!flag && minExpandLevel && !force && n.getLevel() <= minExpandLevel) {
3433
- // return; // Do not collapse until minExpandLevel
3434
- // }
3435
- const level_1 = level == null ? null : level - 1;
3440
+ // n.logInfo(` _iter(level=${level})`);
3436
3441
  const promises = [];
3437
3442
  (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach((cn) => {
3438
3443
  if (flag) {
3439
- if (!cn.expanded && (cn.children || (loadLazy && cn.lazy))) {
3444
+ if (!cn.expanded &&
3445
+ (minLevel == null || level < minLevel) &&
3446
+ (cn.children || (loadLazy && cn.lazy))) {
3440
3447
  // Node is collapsed and may be expanded (i.e. has children or is lazy)
3441
3448
  // Expanding may be async, so we store the promise.
3442
3449
  // Also the recursion is delayed until expansion finished.
3443
3450
  const p = cn.setExpanded(true, expandOpts);
3444
3451
  promises.push(p);
3445
- p.then(async () => {
3446
- await _iter(cn, level_1);
3447
- });
3452
+ if (depth == null) {
3453
+ p.then(async () => {
3454
+ await _iter(cn, level + 1);
3455
+ });
3456
+ }
3448
3457
  }
3449
3458
  else {
3450
3459
  // We don't expand the node, but still visit descendants.
3451
3460
  // There we may find lazy nodes, so we
3452
- promises.push(_iter(cn, level_1));
3461
+ promises.push(_iter(cn, level + 1));
3453
3462
  }
3454
3463
  }
3455
3464
  else {
3456
3465
  // Collapsing is always synchronous, so no promises required
3457
- if (!minExpandLevel || force || cn.getLevel() > minExpandLevel) {
3458
- // Do not collapse until minExpandLevel
3466
+ // Do not collapse until minExpandLevel
3467
+ if (minLevel == null || level >= minLevel) {
3459
3468
  cn.setExpanded(false, expandOpts);
3460
3469
  }
3461
- _iter(cn, level_1); // recursion, even if cn was already collapsed
3470
+ if ((minLevel != null && level < minLevel) || deep) {
3471
+ _iter(cn, level + 1); // recursion, even if cn was already collapsed
3472
+ }
3462
3473
  }
3463
3474
  });
3464
3475
  return new Promise((resolve) => {
@@ -3467,10 +3478,15 @@ class WunderbaumNode {
3467
3478
  });
3468
3479
  });
3469
3480
  }
3470
- const tag = tree.logTime(`${this}.expandAll(${flag})`);
3481
+ const tag = tree.logTime(`${this}.expandAll(${flag}, depth=${depth})`);
3471
3482
  try {
3472
3483
  tree.enableUpdate(false);
3473
- await _iter(this, depth);
3484
+ await _iter(this, 0);
3485
+ if (collapseOthers) {
3486
+ assert(flag, "Option `collapseOthers` requires flag=true");
3487
+ assert(minLevel != null, "Option `collapseOthers` requires `depth` or `minExpandLevel`");
3488
+ this.expandAll(false, { depth: minLevel });
3489
+ }
3474
3490
  }
3475
3491
  finally {
3476
3492
  tree.enableUpdate(true);
@@ -4959,7 +4975,7 @@ class WunderbaumNode {
4959
4975
  const orgEvent = options === null || options === void 0 ? void 0 : options.event; // Default: null
4960
4976
  const colIdx = options === null || options === void 0 ? void 0 : options.colIdx; // Default: null
4961
4977
  const edit = options === null || options === void 0 ? void 0 : options.edit; // Default: false
4962
- assert(!colIdx || tree.isCellNav(), "colIdx requires cellNav");
4978
+ // util.assert(!colIdx || tree.isCellNav(), "colIdx requires cellNav");
4963
4979
  assert(!edit || colIdx != null, "edit requires colIdx");
4964
4980
  if (!noEvents) {
4965
4981
  if (flag) {
@@ -5013,7 +5029,7 @@ class WunderbaumNode {
5013
5029
  * Expand or collapse this node.
5014
5030
  */
5015
5031
  async setExpanded(flag = true, options) {
5016
- const { force, scrollIntoView, immediate } = options !== null && options !== void 0 ? options : {};
5032
+ const { force, scrollIntoView, immediate, resetLazy } = options !== null && options !== void 0 ? options : {};
5017
5033
  const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events
5018
5034
  if (!flag &&
5019
5035
  this.isExpanded() &&
@@ -5036,6 +5052,9 @@ class WunderbaumNode {
5036
5052
  if (flag && this.lazy && this.children == null) {
5037
5053
  await this.loadLazy();
5038
5054
  }
5055
+ else if (!flag && resetLazy && this.lazy && this.children) {
5056
+ this.resetLazy();
5057
+ }
5039
5058
  this.expanded = flag;
5040
5059
  const updateOpts = { immediate: immediate };
5041
5060
  // const updateOpts = { immediate: !!util.getOption(options, "immediate") };
@@ -5606,7 +5625,7 @@ WunderbaumNode.sequence = 0;
5606
5625
  /*!
5607
5626
  * Wunderbaum - ext-edit
5608
5627
  * Copyright (c) 2021-2024, Martin Wendt. Released under the MIT license.
5609
- * v0.11.1, Fri, 27 Dec 2024 22:58:06 GMT (https://github.com/mar10/wunderbaum)
5628
+ * v0.12.0, Sun, 12 Jan 2025 10:51:41 GMT (https://github.com/mar10/wunderbaum)
5610
5629
  */
5611
5630
  // const START_MARKER = "\uFFF7";
5612
5631
  class EditExtension extends WunderbaumExtension {
@@ -5941,8 +5960,8 @@ class EditExtension extends WunderbaumExtension {
5941
5960
  * https://github.com/mar10/wunderbaum
5942
5961
  *
5943
5962
  * Released under the MIT license.
5944
- * @version v0.11.1
5945
- * @date Fri, 27 Dec 2024 22:58:06 GMT
5963
+ * @version v0.12.0
5964
+ * @date Sun, 12 Jan 2025 10:51:41 GMT
5946
5965
  */
5947
5966
  // import "./wunderbaum.scss";
5948
5967
  class WbSystemRoot extends WunderbaumNode {
@@ -6275,7 +6294,10 @@ class Wunderbaum {
6275
6294
  false) {
6276
6295
  return false;
6277
6296
  }
6278
- if (node && info.colIdx === 0 && node.isExpandable()) {
6297
+ if (node &&
6298
+ info.colIdx === 0 &&
6299
+ node.isExpandable() &&
6300
+ info.region !== NodeRegion.expander) {
6279
6301
  this._callMethod("edit._stopEditTitle");
6280
6302
  node.setExpanded(!node.isExpanded());
6281
6303
  }
@@ -8264,7 +8286,7 @@ class Wunderbaum {
8264
8286
  }
8265
8287
  Wunderbaum.sequence = 0;
8266
8288
  /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */
8267
- Wunderbaum.version = "v0.11.1"; // Set to semver by 'grunt release'
8289
+ Wunderbaum.version = "v0.12.0"; // Set to semver by 'grunt release'
8268
8290
  /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */
8269
8291
  Wunderbaum.util = util;
8270
8292