wunderbaum 0.5.0 → 0.5.1

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.
@@ -458,6 +458,25 @@ div.wunderbaum.wb-checkbox-auto-hide:focus .wb-row.wb-active i.wb-checkbox, div.
458
458
  text-align: left;
459
459
  }
460
460
 
461
+ i.wb-icon {
462
+ position: relative;
463
+ }
464
+ i.wb-icon > span.wb-badge {
465
+ position: absolute;
466
+ display: inline-block;
467
+ top: 0;
468
+ left: -0.6rem;
469
+ color: white;
470
+ background-color: var(--wb-bg-highlight-color);
471
+ padding: 0.2em 0.3rem 0.1em 0.3rem;
472
+ font-size: 60%;
473
+ font-weight: 200;
474
+ line-height: 1;
475
+ text-align: center;
476
+ white-space: nowrap;
477
+ border-radius: 0.5rem;
478
+ }
479
+
461
480
  /* Class 'wb-tristate' is used to mark checkboxes that should toggle like
462
481
  * indeterminate -> checked -> unchecked -> indeterminate ...
463
482
  */
@@ -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;AAkQA;AAoHA;AAwBA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAniBA;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;AAeA;;AAVA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;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;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"}
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;AAkQA;AAoHA;AAwBA;AAgEA;AAEA;AAUA;AAoBA;AAYA;;AAniBA;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;AAeA;;AAVA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;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;;AACA;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"}
@@ -627,6 +627,8 @@ declare module "wb_node" {
627
627
  /** Return true if this node is partially selected (tri-state). */
628
628
  isPartsel(): boolean;
629
629
  /** Return true if this node has DOM representaion, i.e. is displayed in the viewport. */
630
+ isRadio(): boolean;
631
+ /** Return true if this node has DOM representaion, i.e. is displayed in the viewport. */
630
632
  isRendered(): boolean;
631
633
  /** Return true if this node is the (invisible) system root node.
632
634
  * (See also [[isTopLevel()]].)
@@ -866,7 +868,7 @@ declare module "wb_options" {
866
868
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
867
869
  * @VERSION, @DATE (https://github.com/mar10/wunderbaum)
868
870
  */
869
- import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, WbActivateEventType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbEnhanceTitleEventType, WbErrorEventType, WbInitEventType, WbKeydownEventType, WbNodeData, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbTreeEventType } from "types";
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";
870
872
  /**
871
873
  * Available options for [[Wunderbaum]].
872
874
  *
@@ -1079,7 +1081,7 @@ declare module "wb_options" {
1079
1081
  *
1080
1082
  * @category Callback
1081
1083
  */
1082
- enhanceTitle?: (e: WbEnhanceTitleEventType) => void;
1084
+ iconBadge?: WbIconBadgeCallback;
1083
1085
  /**
1084
1086
  *
1085
1087
  * @category Callback
@@ -1198,6 +1200,8 @@ declare module "types" {
1198
1200
  export type SourceType = string | SourceListType | SourceAjaxType | SourceObjectType;
1199
1201
  /** Passed to `find...()` methods. Should return true if node matches. */
1200
1202
  export type MatcherCallback = (node: WunderbaumNode) => boolean;
1203
+ /** Used for `tree.iconBadge` event. */
1204
+ export type WbIconBadgeCallback = (e: WbIconBadgeEventType) => WbIconBadgeEventResultType;
1201
1205
  /** Passed to `sortChildren()` methods. Should return -1, 0, or 1. */
1202
1206
  export type SortCallback = (a: WunderbaumNode, b: WunderbaumNode) => number;
1203
1207
  /** When set as option, called when the value is needed (e.g. `colspan` type definition). */
@@ -1295,8 +1299,16 @@ declare module "types" {
1295
1299
  /** The original event. */
1296
1300
  event: Event;
1297
1301
  }
1298
- export interface WbEnhanceTitleEventType extends WbNodeEventType {
1299
- titleSpan: HTMLSpanElement;
1302
+ export interface WbIconBadgeEventType extends WbNodeEventType {
1303
+ iconSpan: HTMLElement;
1304
+ }
1305
+ export interface WbIconBadgeEventResultType {
1306
+ /** Content of the badge `<span class='wb-badge'>` if any. */
1307
+ badge: string | number | HTMLSpanElement | null | false;
1308
+ /** Additional class name(s), separate with space. */
1309
+ badgeClass?: string;
1310
+ /** Additional class name(s), separate with space. */
1311
+ badgeTooltip?: string;
1300
1312
  }
1301
1313
  export interface WbFocusEventType extends WbTreeEventType {
1302
1314
  /** The original event. */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Wunderbaum - util
3
3
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
4
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
4
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
5
5
  */
6
6
  /** @module util */
7
7
  /** Readable names for `MouseEvent.button` */
@@ -756,7 +756,7 @@ var util = /*#__PURE__*/Object.freeze({
756
756
  /*!
757
757
  * Wunderbaum - types
758
758
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
759
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
759
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
760
760
  */
761
761
  /**
762
762
  * Possible values for {@link WunderbaumNode.update()} and {@link Wunderbaum.update()}.
@@ -820,7 +820,7 @@ var NavModeEnum;
820
820
  /*!
821
821
  * Wunderbaum - wb_extension_base
822
822
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
823
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
823
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
824
824
  */
825
825
  class WunderbaumExtension {
826
826
  constructor(tree, id, defaults) {
@@ -1175,7 +1175,7 @@ function throttle(func, wait = 0, options = {}) {
1175
1175
  /*!
1176
1176
  * Wunderbaum - ext-filter
1177
1177
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
1178
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
1178
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
1179
1179
  */
1180
1180
  const START_MARKER = "\uFFF7";
1181
1181
  const END_MARKER = "\uFFF8";
@@ -1390,7 +1390,6 @@ class FilterExtension extends WunderbaumExtension {
1390
1390
  let tree = this.tree;
1391
1391
  // statusNode = tree.root.findDirectChild(KEY_NODATA),
1392
1392
  // escapeTitles = tree.options.escapeTitles;
1393
- // enhanceTitle = tree.options.enhanceTitle,
1394
1393
  tree.enableUpdate(false);
1395
1394
  // if (statusNode) {
1396
1395
  // statusNode.remove();
@@ -1400,16 +1399,10 @@ class FilterExtension extends WunderbaumExtension {
1400
1399
  delete tree.root.match;
1401
1400
  delete tree.root.subMatchCount;
1402
1401
  tree.visit((node) => {
1403
- if (node.match && node._rowElem) {
1404
- // #491, #601
1405
- let titleElem = node._rowElem.querySelector("span.wb-title");
1406
- // if (escapeTitles) {
1407
- titleElem.textContent = node.title;
1408
- // } else {
1409
- // titleElem.innerHTML = node.title;
1410
- // }
1411
- node._callEvent("enhanceTitle", { titleElem: titleElem });
1412
- }
1402
+ // if (node.match && node._rowElem) {
1403
+ // let titleElem = node._rowElem.querySelector("span.wb-title")!;
1404
+ // node._callEvent("enhanceTitle", { titleElem: titleElem });
1405
+ // }
1413
1406
  delete node.match;
1414
1407
  delete node.subMatchCount;
1415
1408
  delete node.titleWithHighlight;
@@ -1475,7 +1468,7 @@ function _markFuzzyMatchedChars(text, matches, escapeTitles = true) {
1475
1468
  /*!
1476
1469
  * Wunderbaum - ext-keynav
1477
1470
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
1478
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
1471
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
1479
1472
  */
1480
1473
  const QUICKSEARCH_DELAY = 500;
1481
1474
  class KeynavExtension extends WunderbaumExtension {
@@ -1815,13 +1808,14 @@ class KeynavExtension extends WunderbaumExtension {
1815
1808
  /*!
1816
1809
  * Wunderbaum - ext-logger
1817
1810
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
1818
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
1811
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
1819
1812
  */
1820
1813
  class LoggerExtension extends WunderbaumExtension {
1821
1814
  constructor(tree) {
1822
1815
  super(tree, "logger", {});
1823
1816
  this.ignoreEvents = new Set([
1824
- "enhanceTitle",
1817
+ "iconBadge",
1818
+ // "enhanceTitle",
1825
1819
  "render",
1826
1820
  "discard",
1827
1821
  ]);
@@ -1855,7 +1849,7 @@ class LoggerExtension extends WunderbaumExtension {
1855
1849
  /*!
1856
1850
  * Wunderbaum - common
1857
1851
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
1858
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
1852
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
1859
1853
  */
1860
1854
  const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script
1861
1855
  /**
@@ -1911,11 +1905,11 @@ const iconMaps = {
1911
1905
  },
1912
1906
  fontawesome6: {
1913
1907
  error: "fa-solid fa-triangle-exclamation",
1914
- loading: "fa-regular fa-chevron-right fa-beat",
1908
+ loading: "fa-solid fa-chevron-right fa-beat",
1915
1909
  noData: "fa-solid fa-circle-question",
1916
- expanderExpanded: "fa-regular fa-chevron-down",
1917
- expanderCollapsed: "fa-regular fa-chevron-right",
1918
- expanderLazy: "fa-regular fa-chevron-right wb-helper-lazy-expander",
1910
+ expanderExpanded: "fa-solid fa-chevron-down",
1911
+ expanderCollapsed: "fa-solid fa-chevron-right",
1912
+ expanderLazy: "fa-solid fa-chevron-right wb-helper-lazy-expander",
1919
1913
  checkChecked: "fa-regular fa-square-check",
1920
1914
  checkUnchecked: "fa-regular fa-square",
1921
1915
  checkUnknown: "fa-regular fa-square-minus",
@@ -2121,7 +2115,7 @@ function inflateSourceData(source) {
2121
2115
  /*!
2122
2116
  * Wunderbaum - ext-dnd
2123
2117
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
2124
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
2118
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
2125
2119
  */
2126
2120
  const nodeMimeType = "application/x-wunderbaum-node";
2127
2121
  class DndExtension extends WunderbaumExtension {
@@ -2451,7 +2445,7 @@ class DndExtension extends WunderbaumExtension {
2451
2445
  /*!
2452
2446
  * Wunderbaum - drag_observer
2453
2447
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
2454
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
2448
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
2455
2449
  */
2456
2450
  /**
2457
2451
  * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'.
@@ -2587,7 +2581,7 @@ class DragObserver {
2587
2581
  /*!
2588
2582
  * Wunderbaum - ext-grid
2589
2583
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
2590
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
2584
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
2591
2585
  */
2592
2586
  class GridExtension extends WunderbaumExtension {
2593
2587
  constructor(tree) {
@@ -2624,7 +2618,7 @@ class GridExtension extends WunderbaumExtension {
2624
2618
  /*!
2625
2619
  * Wunderbaum - deferred
2626
2620
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
2627
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
2621
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
2628
2622
  */
2629
2623
  /**
2630
2624
  * Implement a ES6 Promise, that exposes a resolve() and reject() method.
@@ -2677,7 +2671,7 @@ class Deferred {
2677
2671
  /*!
2678
2672
  * Wunderbaum - wunderbaum_node
2679
2673
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
2680
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
2674
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
2681
2675
  */
2682
2676
  /** WunderbaumNode properties that can be passed with source data.
2683
2677
  * (Any other source properties will be stored as `node.data.PROP`.)
@@ -3386,6 +3380,10 @@ class WunderbaumNode {
3386
3380
  return !this.selected && !!this._partsel;
3387
3381
  }
3388
3382
  /** Return true if this node has DOM representaion, i.e. is displayed in the viewport. */
3383
+ isRadio() {
3384
+ return this.checkbox === "radio" || !!this.parent.radiogroup;
3385
+ }
3386
+ /** Return true if this node has DOM representaion, i.e. is displayed in the viewport. */
3389
3387
  isRendered() {
3390
3388
  return !!this._rowElem;
3391
3389
  }
@@ -3952,6 +3950,30 @@ class WunderbaumNode {
3952
3950
  else {
3953
3951
  parentElem.appendChild(iconSpan);
3954
3952
  }
3953
+ // Event handler `tree.iconBadge` can return a badge text or HTMLSpanElement
3954
+ let cbRes = this._callEvent("iconBadge", { iconSpan: iconSpan });
3955
+ let badge = null;
3956
+ if (cbRes != null && cbRes !== false) {
3957
+ let classes = "";
3958
+ let tooltip = "";
3959
+ if (isPlainObject(cbRes)) {
3960
+ badge = "" + cbRes.badge;
3961
+ classes = cbRes.badgeClass ? " " + cbRes.badgeClass : "";
3962
+ tooltip = cbRes.badgeTooltip ? ` title="${cbRes.badgeTooltip}"` : "";
3963
+ }
3964
+ else if (typeof cbRes === "number") {
3965
+ badge = "" + cbRes;
3966
+ }
3967
+ else {
3968
+ badge = cbRes; // string or HTMLSpanElement
3969
+ }
3970
+ if (typeof badge === "string") {
3971
+ badge = elemFromHtml(`<span class="wb-badge${classes}"${tooltip}>${escapeHtml(badge)}</span>`);
3972
+ }
3973
+ if (badge) {
3974
+ iconSpan.append(badge);
3975
+ }
3976
+ }
3955
3977
  // this.log("_createIcon: ", iconSpan);
3956
3978
  return iconSpan;
3957
3979
  }
@@ -4018,7 +4040,7 @@ class WunderbaumNode {
4018
4040
  titleSpan = document.createElement("span");
4019
4041
  titleSpan.classList.add("wb-title");
4020
4042
  nodeElem.appendChild(titleSpan);
4021
- this._callEvent("enhanceTitle", { titleSpan: titleSpan });
4043
+ // this._callEvent("enhanceTitle", { titleSpan: titleSpan });
4022
4044
  // Store the width of leading icons with the node, so we can calculate
4023
4045
  // the width of the embedded title span later
4024
4046
  nodeElem._ofsTitlePx = ofsTitlePx;
@@ -4556,7 +4578,7 @@ class WunderbaumNode {
4556
4578
  /** Toggle the check/uncheck state. */
4557
4579
  toggleSelected(options) {
4558
4580
  let flag = this.isSelected();
4559
- if (flag === undefined) {
4581
+ if (flag === undefined && !this.isRadio()) {
4560
4582
  flag = this._anySelectable();
4561
4583
  }
4562
4584
  else {
@@ -4960,7 +4982,7 @@ WunderbaumNode.sequence = 0;
4960
4982
  /*!
4961
4983
  * Wunderbaum - ext-edit
4962
4984
  * Copyright (c) 2021-2023, Martin Wendt. Released under the MIT license.
4963
- * v0.5.0, Fri, 15 Sep 2023 14:34:23 GMT (https://github.com/mar10/wunderbaum)
4985
+ * v0.5.1, Sat, 16 Sep 2023 19:08:55 GMT (https://github.com/mar10/wunderbaum)
4964
4986
  */
4965
4987
  // const START_MARKER = "\uFFF7";
4966
4988
  class EditExtension extends WunderbaumExtension {
@@ -5256,8 +5278,8 @@ class EditExtension extends WunderbaumExtension {
5256
5278
  * https://github.com/mar10/wunderbaum
5257
5279
  *
5258
5280
  * Released under the MIT license.
5259
- * @version v0.5.0
5260
- * @date Fri, 15 Sep 2023 14:34:23 GMT
5281
+ * @version v0.5.1
5282
+ * @date Sat, 16 Sep 2023 19:08:55 GMT
5261
5283
  */
5262
5284
  // import "./wunderbaum.scss";
5263
5285
  class WbSystemRoot extends WunderbaumNode {
@@ -5347,10 +5369,11 @@ class Wunderbaum {
5347
5369
  navigationModeOption: null,
5348
5370
  quicksearch: true,
5349
5371
  // --- Events ---
5350
- change: noop,
5351
- enhanceTitle: noop,
5352
- error: noop,
5353
- receive: noop,
5372
+ iconBadge: null,
5373
+ change: null,
5374
+ // enhanceTitle: null,
5375
+ error: null,
5376
+ receive: null,
5354
5377
  // --- Strings ---
5355
5378
  strings: {
5356
5379
  loadError: "Error",
@@ -7390,7 +7413,7 @@ class Wunderbaum {
7390
7413
  }
7391
7414
  Wunderbaum.sequence = 0;
7392
7415
  /** Wunderbaum release version number "MAJOR.MINOR.PATCH". */
7393
- Wunderbaum.version = "v0.5.0"; // Set to semver by 'grunt release'
7416
+ Wunderbaum.version = "v0.5.1"; // Set to semver by 'grunt release'
7394
7417
  /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */
7395
7418
  Wunderbaum.util = util;
7396
7419