@gtkx/react 0.18.8 → 0.19.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.
Files changed (184) hide show
  1. package/dist/generated/internal.d.ts +6 -0
  2. package/dist/generated/internal.d.ts.map +1 -1
  3. package/dist/generated/internal.js +331 -44
  4. package/dist/generated/internal.js.map +1 -1
  5. package/dist/generated/jsx.d.ts +178 -2
  6. package/dist/generated/jsx.d.ts.map +1 -1
  7. package/dist/generated/jsx.js.map +1 -1
  8. package/dist/host-config.d.ts.map +1 -1
  9. package/dist/host-config.js +46 -10
  10. package/dist/host-config.js.map +1 -1
  11. package/dist/jsx.d.ts +133 -13
  12. package/dist/jsx.d.ts.map +1 -1
  13. package/dist/jsx.js +41 -2
  14. package/dist/jsx.js.map +1 -1
  15. package/dist/metadata.d.ts +1 -0
  16. package/dist/metadata.d.ts.map +1 -1
  17. package/dist/metadata.js +3 -1
  18. package/dist/metadata.js.map +1 -1
  19. package/dist/node.d.ts +2 -0
  20. package/dist/node.d.ts.map +1 -1
  21. package/dist/node.js +22 -6
  22. package/dist/node.js.map +1 -1
  23. package/dist/nodes/column-view-column.d.ts +5 -1
  24. package/dist/nodes/column-view-column.d.ts.map +1 -1
  25. package/dist/nodes/column-view-column.js +31 -7
  26. package/dist/nodes/column-view-column.js.map +1 -1
  27. package/dist/nodes/column-view.d.ts +4 -3
  28. package/dist/nodes/column-view.d.ts.map +1 -1
  29. package/dist/nodes/column-view.js +47 -12
  30. package/dist/nodes/column-view.js.map +1 -1
  31. package/dist/nodes/drop-down.d.ts +12 -2
  32. package/dist/nodes/drop-down.d.ts.map +1 -1
  33. package/dist/nodes/drop-down.js +151 -5
  34. package/dist/nodes/drop-down.js.map +1 -1
  35. package/dist/nodes/event-controller.d.ts +1 -0
  36. package/dist/nodes/event-controller.d.ts.map +1 -1
  37. package/dist/nodes/event-controller.js +11 -3
  38. package/dist/nodes/event-controller.js.map +1 -1
  39. package/dist/nodes/fixed-child.d.ts +1 -2
  40. package/dist/nodes/fixed-child.d.ts.map +1 -1
  41. package/dist/nodes/fixed-child.js +21 -21
  42. package/dist/nodes/fixed-child.js.map +1 -1
  43. package/dist/nodes/font-dialog-button.d.ts +1 -1
  44. package/dist/nodes/font-dialog-button.d.ts.map +1 -1
  45. package/dist/nodes/font-dialog-button.js +8 -0
  46. package/dist/nodes/font-dialog-button.js.map +1 -1
  47. package/dist/nodes/grid-view.d.ts +6 -5
  48. package/dist/nodes/grid-view.d.ts.map +1 -1
  49. package/dist/nodes/grid-view.js +23 -18
  50. package/dist/nodes/grid-view.js.map +1 -1
  51. package/dist/nodes/internal/accessible.d.ts +5 -0
  52. package/dist/nodes/internal/accessible.d.ts.map +1 -0
  53. package/dist/nodes/internal/accessible.js +119 -0
  54. package/dist/nodes/internal/accessible.js.map +1 -0
  55. package/dist/nodes/internal/base-item-renderer.d.ts.map +1 -1
  56. package/dist/nodes/internal/base-item-renderer.js +0 -1
  57. package/dist/nodes/internal/base-item-renderer.js.map +1 -1
  58. package/dist/nodes/internal/construct.d.ts +10 -0
  59. package/dist/nodes/internal/construct.d.ts.map +1 -0
  60. package/dist/nodes/internal/construct.js +68 -0
  61. package/dist/nodes/internal/construct.js.map +1 -0
  62. package/dist/nodes/internal/grid-item-renderer.d.ts +1 -0
  63. package/dist/nodes/internal/grid-item-renderer.d.ts.map +1 -1
  64. package/dist/nodes/internal/grid-item-renderer.js +6 -0
  65. package/dist/nodes/internal/grid-item-renderer.js.map +1 -1
  66. package/dist/nodes/internal/header-item-renderer.d.ts +23 -0
  67. package/dist/nodes/internal/header-item-renderer.d.ts.map +1 -0
  68. package/dist/nodes/internal/header-item-renderer.js +87 -0
  69. package/dist/nodes/internal/header-item-renderer.js.map +1 -0
  70. package/dist/nodes/internal/header-renderer-manager.d.ts +13 -0
  71. package/dist/nodes/internal/header-renderer-manager.d.ts.map +1 -0
  72. package/dist/nodes/internal/header-renderer-manager.js +20 -0
  73. package/dist/nodes/internal/header-renderer-manager.js.map +1 -0
  74. package/dist/nodes/internal/list-item-renderer.d.ts +1 -0
  75. package/dist/nodes/internal/list-item-renderer.d.ts.map +1 -1
  76. package/dist/nodes/internal/list-item-renderer.js +6 -0
  77. package/dist/nodes/internal/list-item-renderer.js.map +1 -1
  78. package/dist/nodes/internal/list-store.d.ts +10 -11
  79. package/dist/nodes/internal/list-store.d.ts.map +1 -1
  80. package/dist/nodes/internal/list-store.js +28 -29
  81. package/dist/nodes/internal/list-store.js.map +1 -1
  82. package/dist/nodes/internal/sectioned-list-store.d.ts +50 -0
  83. package/dist/nodes/internal/sectioned-list-store.d.ts.map +1 -0
  84. package/dist/nodes/internal/sectioned-list-store.js +250 -0
  85. package/dist/nodes/internal/sectioned-list-store.js.map +1 -0
  86. package/dist/nodes/internal/selection-helpers.d.ts +12 -0
  87. package/dist/nodes/internal/selection-helpers.d.ts.map +1 -0
  88. package/dist/nodes/internal/selection-helpers.js +25 -0
  89. package/dist/nodes/internal/selection-helpers.js.map +1 -0
  90. package/dist/nodes/internal/selection-model-controller.d.ts.map +1 -1
  91. package/dist/nodes/internal/selection-model-controller.js +3 -0
  92. package/dist/nodes/internal/selection-model-controller.js.map +1 -1
  93. package/dist/nodes/internal/simple-list-store.d.ts +7 -12
  94. package/dist/nodes/internal/simple-list-store.d.ts.map +1 -1
  95. package/dist/nodes/internal/simple-list-store.js +58 -35
  96. package/dist/nodes/internal/simple-list-store.js.map +1 -1
  97. package/dist/nodes/internal/text-buffer-controller.d.ts +4 -0
  98. package/dist/nodes/internal/text-buffer-controller.d.ts.map +1 -1
  99. package/dist/nodes/internal/text-buffer-controller.js +49 -9
  100. package/dist/nodes/internal/text-buffer-controller.js.map +1 -1
  101. package/dist/nodes/internal/tree-store.d.ts +3 -0
  102. package/dist/nodes/internal/tree-store.d.ts.map +1 -1
  103. package/dist/nodes/internal/tree-store.js +55 -10
  104. package/dist/nodes/internal/tree-store.js.map +1 -1
  105. package/dist/nodes/list-section.d.ts +27 -0
  106. package/dist/nodes/list-section.d.ts.map +1 -0
  107. package/dist/nodes/list-section.js +43 -0
  108. package/dist/nodes/list-section.js.map +1 -0
  109. package/dist/nodes/list-view.d.ts +6 -3
  110. package/dist/nodes/list-view.d.ts.map +1 -1
  111. package/dist/nodes/list-view.js +54 -14
  112. package/dist/nodes/list-view.js.map +1 -1
  113. package/dist/nodes/models/list.d.ts +13 -5
  114. package/dist/nodes/models/list.d.ts.map +1 -1
  115. package/dist/nodes/models/list.js +135 -21
  116. package/dist/nodes/models/list.js.map +1 -1
  117. package/dist/nodes/shortcut.d.ts +3 -2
  118. package/dist/nodes/shortcut.d.ts.map +1 -1
  119. package/dist/nodes/shortcut.js +19 -4
  120. package/dist/nodes/shortcut.js.map +1 -1
  121. package/dist/nodes/text-anchor.d.ts.map +1 -1
  122. package/dist/nodes/text-anchor.js +7 -1
  123. package/dist/nodes/text-anchor.js.map +1 -1
  124. package/dist/nodes/text-tag.d.ts.map +1 -1
  125. package/dist/nodes/text-tag.js +5 -1
  126. package/dist/nodes/text-tag.js.map +1 -1
  127. package/dist/nodes/text-view.d.ts +1 -0
  128. package/dist/nodes/text-view.d.ts.map +1 -1
  129. package/dist/nodes/text-view.js +4 -0
  130. package/dist/nodes/text-view.js.map +1 -1
  131. package/dist/nodes/widget.d.ts +0 -2
  132. package/dist/nodes/widget.d.ts.map +1 -1
  133. package/dist/nodes/widget.js +44 -61
  134. package/dist/nodes/widget.js.map +1 -1
  135. package/dist/registry.d.ts.map +1 -1
  136. package/dist/registry.js +2 -2
  137. package/dist/registry.js.map +1 -1
  138. package/package.json +3 -3
  139. package/src/generated/internal.ts +333 -44
  140. package/src/generated/jsx.ts +178 -2
  141. package/src/host-config.ts +41 -10
  142. package/src/jsx.ts +166 -15
  143. package/src/metadata.ts +5 -1
  144. package/src/node.ts +20 -6
  145. package/src/nodes/column-view-column.ts +35 -7
  146. package/src/nodes/column-view.ts +63 -13
  147. package/src/nodes/drop-down.ts +182 -6
  148. package/src/nodes/event-controller.ts +11 -3
  149. package/src/nodes/fixed-child.ts +24 -23
  150. package/src/nodes/font-dialog-button.ts +10 -0
  151. package/src/nodes/grid-view.ts +29 -19
  152. package/src/nodes/internal/accessible.ts +156 -0
  153. package/src/nodes/internal/base-item-renderer.ts +0 -1
  154. package/src/nodes/internal/construct.ts +90 -0
  155. package/src/nodes/internal/grid-item-renderer.ts +7 -0
  156. package/src/nodes/internal/header-item-renderer.ts +105 -0
  157. package/src/nodes/internal/header-renderer-manager.ts +33 -0
  158. package/src/nodes/internal/list-item-renderer.ts +7 -0
  159. package/src/nodes/internal/list-store.ts +32 -30
  160. package/src/nodes/internal/sectioned-list-store.ts +287 -0
  161. package/src/nodes/internal/selection-helpers.ts +35 -0
  162. package/src/nodes/internal/selection-model-controller.ts +4 -0
  163. package/src/nodes/internal/simple-list-store.ts +60 -43
  164. package/src/nodes/internal/text-buffer-controller.ts +51 -8
  165. package/src/nodes/internal/tree-store.ts +61 -9
  166. package/src/nodes/list-section.ts +64 -0
  167. package/src/nodes/list-view.ts +65 -14
  168. package/src/nodes/models/list.ts +147 -37
  169. package/src/nodes/shortcut.ts +22 -5
  170. package/src/nodes/text-anchor.ts +6 -1
  171. package/src/nodes/text-tag.ts +7 -1
  172. package/src/nodes/text-view.ts +5 -0
  173. package/src/nodes/widget.ts +45 -62
  174. package/src/registry.ts +4 -2
  175. package/dist/nodes/models/grid.d.ts +0 -28
  176. package/dist/nodes/models/grid.d.ts.map +0 -1
  177. package/dist/nodes/models/grid.js +0 -69
  178. package/dist/nodes/models/grid.js.map +0 -1
  179. package/dist/nodes/shortcut-controller.d.ts +0 -10
  180. package/dist/nodes/shortcut-controller.d.ts.map +0 -1
  181. package/dist/nodes/shortcut-controller.js +0 -23
  182. package/dist/nodes/shortcut-controller.js.map +0 -1
  183. package/src/nodes/models/grid.ts +0 -105
  184. package/src/nodes/shortcut-controller.ts +0 -27
@@ -5,14 +5,17 @@ import type { Container } from "../types.js";
5
5
  import { ContainerSlotNode } from "./container-slot.js";
6
6
  import { EventControllerNode } from "./event-controller.js";
7
7
  import { ListItemNode } from "./list-item.js";
8
+ import { ListSectionNode } from "./list-section.js";
8
9
  import { type ListModelProps } from "./models/list.js";
9
10
  import { SlotNode } from "./slot.js";
10
11
  import { WidgetNode } from "./widget.js";
11
- declare const RENDERER_PROPS: readonly ["renderItem", "estimatedItemHeight"];
12
+ declare const RENDERER_PROPS: readonly ["renderItem", "renderHeader", "estimatedItemHeight"];
12
13
  type ListViewProps = Pick<GtkListViewProps, (typeof RENDERER_PROPS)[number]> & ListModelProps;
13
- type ListViewChild = ListItemNode | EventControllerNode | SlotNode | ContainerSlotNode;
14
+ type ListViewChild = ListItemNode | ListSectionNode | EventControllerNode | SlotNode | ContainerSlotNode;
14
15
  export declare class ListViewNode extends WidgetNode<Gtk.ListView, ListViewProps, ListViewChild> {
15
- private itemRenderer;
16
+ private treeRenderer;
17
+ private flatRenderer;
18
+ private headerRenderer;
16
19
  private list;
17
20
  isValidChild(child: Node): boolean;
18
21
  constructor(typeName: string, props: ListViewProps, container: Gtk.ListView, rootContainer: Container);
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.d.ts","sourceRoot":"","sources":["../../src/nodes/list-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,cAAc,gDAAiD,CAAC;AAGtE,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC;AAE9F,KAAK,aAAa,GAAG,YAAY,GAAG,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEvF,qBAAa,YAAa,SAAQ,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;IACpF,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,IAAI,CAAY;IAER,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;gBAStC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS;IAiBrF,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAO/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAKtD,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,WAAW,IAAI,IAAI;IAMnB,qBAAqB,IAAI,IAAI;IAK7C,OAAO,CAAC,aAAa;CAoBxB"}
1
+ {"version":3,"file":"list-view.d.ts","sourceRoot":"","sources":["../../src/nodes/list-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,cAAc,gEAAiE,CAAC;AAGtF,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC;AAE9F,KAAK,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEzG,qBAAa,YAAa,SAAQ,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;IACpF,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,IAAI,CAAY;IAER,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;gBAUtC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS;IA+BrF,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAU/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAKtD,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,WAAW,IAAI,IAAI;IAMnB,qBAAqB,IAAI,IAAI;IAO7C,OAAO,CAAC,aAAa;CA6CxB"}
@@ -1,49 +1,67 @@
1
1
  import { ContainerSlotNode } from "./container-slot.js";
2
2
  import { EventControllerNode } from "./event-controller.js";
3
+ import { GridItemRenderer } from "./internal/grid-item-renderer.js";
4
+ import { updateHeaderRenderer } from "./internal/header-renderer-manager.js";
3
5
  import { ListItemRenderer } from "./internal/list-item-renderer.js";
4
6
  import { filterProps, hasChanged } from "./internal/props.js";
5
7
  import { ListItemNode } from "./list-item.js";
8
+ import { ListSectionNode } from "./list-section.js";
6
9
  import { ListModel } from "./models/list.js";
7
10
  import { SlotNode } from "./slot.js";
8
11
  import { WidgetNode } from "./widget.js";
9
- const RENDERER_PROPS = ["renderItem", "estimatedItemHeight"];
12
+ const RENDERER_PROPS = ["renderItem", "renderHeader", "estimatedItemHeight"];
10
13
  const OWN_PROPS = [...RENDERER_PROPS, "autoexpand", "selectionMode", "selected", "onSelectionChanged"];
11
14
  export class ListViewNode extends WidgetNode {
12
- itemRenderer;
15
+ treeRenderer = null;
16
+ flatRenderer = null;
17
+ headerRenderer = null;
13
18
  list;
14
19
  isValidChild(child) {
15
20
  return (child instanceof ListItemNode ||
21
+ child instanceof ListSectionNode ||
16
22
  child instanceof EventControllerNode ||
17
23
  child instanceof SlotNode ||
18
24
  child instanceof ContainerSlotNode);
19
25
  }
20
26
  constructor(typeName, props, container, rootContainer) {
21
27
  super(typeName, props, container, rootContainer);
28
+ const flat = props.renderHeader != null;
22
29
  this.list = new ListModel({ owner: this, signalStore: this.signalStore }, {
23
- autoexpand: props.autoexpand,
30
+ autoexpand: flat ? undefined : props.autoexpand,
24
31
  selectionMode: props.selectionMode,
25
32
  selected: props.selected,
26
33
  onSelectionChanged: props.onSelectionChanged,
27
- });
28
- this.itemRenderer = new ListItemRenderer(this.signalStore);
29
- this.itemRenderer.setStore(this.list.getStore());
30
- this.list.getStore().setOnItemUpdated((id) => this.itemRenderer.rebindItem(id));
31
- this.container.setFactory(this.itemRenderer.getFactory());
34
+ }, flat);
35
+ if (flat) {
36
+ const store = this.list.getFlatStore();
37
+ this.flatRenderer = new GridItemRenderer(this.signalStore);
38
+ this.flatRenderer.setStore(store);
39
+ store.setOnItemUpdated((id) => this.flatRenderer?.rebindItem(id));
40
+ this.container.setFactory(this.flatRenderer.getFactory());
41
+ }
42
+ else {
43
+ const store = this.list.getStore();
44
+ this.treeRenderer = new ListItemRenderer(this.signalStore);
45
+ this.treeRenderer.setStore(store);
46
+ store.setOnItemUpdated((id) => this.treeRenderer?.rebindItem(id));
47
+ this.container.setFactory(this.treeRenderer.getFactory());
48
+ }
32
49
  }
33
50
  appendChild(child) {
34
51
  super.appendChild(child);
35
- if (child instanceof ListItemNode) {
52
+ if (child instanceof ListItemNode || child instanceof ListSectionNode) {
36
53
  this.list.appendChild(child);
37
54
  }
38
55
  }
39
56
  insertBefore(child, before) {
40
57
  super.insertBefore(child, before);
41
- if (child instanceof ListItemNode && before instanceof ListItemNode) {
58
+ if ((child instanceof ListItemNode || child instanceof ListSectionNode) &&
59
+ (before instanceof ListItemNode || before instanceof ListSectionNode)) {
42
60
  this.list.insertBefore(child, before);
43
61
  }
44
62
  }
45
63
  removeChild(child) {
46
- if (child instanceof ListItemNode) {
64
+ if (child instanceof ListItemNode || child instanceof ListSectionNode) {
47
65
  this.list.removeChild(child);
48
66
  }
49
67
  super.removeChild(child);
@@ -62,15 +80,37 @@ export class ListViewNode extends WidgetNode {
62
80
  this.container.setModel(this.list.getSelectionModel());
63
81
  }
64
82
  detachDeletedInstance() {
65
- this.itemRenderer.dispose();
83
+ this.treeRenderer?.dispose();
84
+ this.flatRenderer?.dispose();
85
+ this.headerRenderer?.dispose();
66
86
  super.detachDeletedInstance();
67
87
  }
68
88
  applyOwnProps(oldProps, newProps) {
69
89
  if (hasChanged(oldProps, newProps, "renderItem")) {
70
- this.itemRenderer.setRenderFn(newProps.renderItem ?? null);
90
+ if (this.treeRenderer) {
91
+ this.treeRenderer.setRenderFn(newProps.renderItem ?? null);
92
+ }
93
+ if (this.flatRenderer) {
94
+ const renderItem = newProps.renderItem;
95
+ this.flatRenderer.setRenderFn(renderItem ? (item) => renderItem(item, null) : null);
96
+ }
71
97
  }
72
98
  if (hasChanged(oldProps, newProps, "estimatedItemHeight")) {
73
- this.itemRenderer.setEstimatedItemHeight(newProps.estimatedItemHeight ?? null);
99
+ const height = newProps.estimatedItemHeight ?? null;
100
+ if (this.treeRenderer) {
101
+ this.treeRenderer.setEstimatedItemHeight(height);
102
+ }
103
+ if (this.flatRenderer) {
104
+ this.flatRenderer.setEstimatedItemHeight(height);
105
+ }
106
+ }
107
+ if (hasChanged(oldProps, newProps, "renderHeader")) {
108
+ this.headerRenderer = updateHeaderRenderer(this.headerRenderer, {
109
+ signalStore: this.signalStore,
110
+ isEnabled: () => this.list.isFlatMode(),
111
+ resolveItem: (id) => this.list.getFlatStore().getHeaderValue(id),
112
+ setFactory: (factory) => this.container.setHeaderFactory(factory),
113
+ }, newProps.renderHeader);
74
114
  }
75
115
  const previousModel = this.list.getSelectionModel();
76
116
  this.list.updateProps(oldProps ? filterProps(oldProps, RENDERER_PROPS) : null, filterProps(newProps, RENDERER_PROPS));
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.js","sourceRoot":"","sources":["../../src/nodes/list-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-view.js","sourceRoot":"","sources":["../../src/nodes/list-view.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,qBAAqB,CAAU,CAAC;AACtF,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,CAAU,CAAC;AAMhH,MAAM,OAAO,YAAa,SAAQ,UAAsD;IAC5E,YAAY,GAA4B,IAAI,CAAC;IAC7C,YAAY,GAA4B,IAAI,CAAC;IAC7C,cAAc,GAA8B,IAAI,CAAC;IACjD,IAAI,CAAY;IAER,YAAY,CAAC,KAAW;QACpC,OAAO,CACH,KAAK,YAAY,YAAY;YAC7B,KAAK,YAAY,eAAe;YAChC,KAAK,YAAY,mBAAmB;YACpC,KAAK,YAAY,QAAQ;YACzB,KAAK,YAAY,iBAAiB,CACrC,CAAC;IACN,CAAC;IAED,YAAY,QAAgB,EAAE,KAAoB,EAAE,SAAuB,EAAE,aAAwB;QACjG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;QAExC,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CACrB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAC9C;YACI,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU;YAC/C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;SAC/C,EACD,IAAI,CACP,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAEe,WAAW,CAAC,KAAoB;QAC5C,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAEe,YAAY,CAAC,KAAoB,EAAE,MAAqB;QACpE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,IACI,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,eAAe,CAAC;YACnE,CAAC,MAAM,YAAY,YAAY,IAAI,MAAM,YAAY,eAAe,CAAC,EACvE,CAAC;YACC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAEe,WAAW,CAAC,KAAoB;QAC5C,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEe,uBAAuB,CAAC,KAAoB;QACxD,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEe,YAAY,CAAC,QAA8B,EAAE,QAAuB;QAChF,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEe,WAAW;QACvB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEe,qBAAqB;QACjC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,qBAAqB,EAAE,CAAC;IAClC,CAAC;IAEO,aAAa,CAAC,QAA8B,EAAE,QAAuB;QACzE,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjG,CAAC;QACL,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,mBAAmB,IAAI,IAAI,CAAC;YACpD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,GAAG,oBAAoB,CACtC,IAAI,CAAC,cAAc,EACnB;gBACI,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACvC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChE,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC;aACpE,EACD,QAAQ,CAAC,YAAY,CACxB,CAAC;QACN,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,WAAW,CACjB,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACvD,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CACxC,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEnD,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;CACJ"}
@@ -1,8 +1,10 @@
1
1
  import * as Gtk from "@gtkx/ffi/gtk";
2
2
  import type { GtkListViewProps } from "../../jsx.js";
3
+ import { ListStore } from "../internal/list-store.js";
3
4
  import type { SignalStore } from "../internal/signal-store.js";
4
5
  import { TreeStore } from "../internal/tree-store.js";
5
6
  import { ListItemNode } from "../list-item.js";
7
+ import { ListSectionNode } from "../list-section.js";
6
8
  export type ListModelProps = Pick<GtkListViewProps, "autoexpand" | "selectionMode" | "selected" | "onSelectionChanged">;
7
9
  type ListModelConfig = {
8
10
  owner: object;
@@ -10,20 +12,26 @@ type ListModelConfig = {
10
12
  };
11
13
  export declare class ListModel {
12
14
  private config;
13
- private store;
15
+ private flatMode;
16
+ private treeStore;
14
17
  private treeListModel;
18
+ private flatStore;
15
19
  private selectionManager;
16
20
  private initialSelected;
17
- constructor(config: ListModelConfig, props?: ListModelProps);
21
+ constructor(config: ListModelConfig, props?: ListModelProps, flat?: boolean);
22
+ isFlatMode(): boolean;
18
23
  flushBatch(): void;
19
24
  private createChildModel;
20
25
  getStore(): TreeStore;
26
+ getFlatStore(): ListStore;
27
+ setOnItemUpdated(callback: (id: string) => void): void;
21
28
  getSelectionModel(): Gtk.NoSelection | Gtk.SingleSelection | Gtk.MultiSelection;
22
- appendChild(child: ListItemNode): void;
29
+ appendChild(child: ListItemNode | ListSectionNode): void;
23
30
  private addItemWithChildren;
24
- insertBefore(child: ListItemNode, before: ListItemNode): void;
25
- removeChild(child: ListItemNode): void;
31
+ insertBefore(child: ListItemNode | ListSectionNode, before: ListItemNode | ListSectionNode): void;
32
+ removeChild(child: ListItemNode | ListSectionNode): void;
26
33
  updateProps(oldProps: ListModelProps | null, newProps: ListModelProps): void;
34
+ private getNItems;
27
35
  private getSelection;
28
36
  private resolveSelectionIndices;
29
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/nodes/models/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,oBAAoB,CAAC,CAAC;AAExH,KAAK,eAAe,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,OAAO,CAAC,eAAe,CAA8B;gBAEzC,MAAM,EAAE,eAAe,EAAE,KAAK,GAAE,cAAmB;IAsBxD,UAAU,IAAI,IAAI;IAMzB,OAAO,CAAC,gBAAgB;IAMjB,QAAQ,IAAI,SAAS;IAIrB,iBAAiB,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc;IAI/E,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAK7C,OAAO,CAAC,mBAAmB;IAUpB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAK7D,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKtC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAYnF,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,uBAAuB;CAiBlC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/nodes/models/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,oBAAoB,CAAC,CAAC;AAExH,KAAK,eAAe,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAkC;IAEvD,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,eAAe,CAA8B;gBAEzC,MAAM,EAAE,eAAe,EAAE,KAAK,GAAE,cAAmB,EAAE,IAAI,UAAQ;IAkCtE,UAAU,IAAI,OAAO;IAIrB,UAAU,IAAI,IAAI;IAczB,OAAO,CAAC,gBAAgB;IAOjB,QAAQ,IAAI,SAAS;IAOrB,YAAY,IAAI,SAAS;IAOzB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAQtD,iBAAiB,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc;IAI/E,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI;IAe/D,OAAO,CAAC,mBAAmB;IAWpB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI;IAoBjG,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI;IAexD,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAiBnF,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,uBAAuB;CAsBlC"}
@@ -1,69 +1,178 @@
1
1
  import * as Gtk from "@gtkx/ffi/gtk";
2
+ import { ListStore } from "../internal/list-store.js";
3
+ import { getSelectionFromStore, resolveSelectionIndices } from "../internal/selection-helpers.js";
2
4
  import { SelectionModelController } from "../internal/selection-model-controller.js";
3
5
  import { TreeStore } from "../internal/tree-store.js";
4
6
  import { ListItemNode } from "../list-item.js";
7
+ import { ListSectionNode } from "../list-section.js";
5
8
  export class ListModel {
6
9
  config;
7
- store;
8
- treeListModel;
10
+ flatMode;
11
+ treeStore = null;
12
+ treeListModel = null;
13
+ flatStore = null;
9
14
  selectionManager;
10
15
  initialSelected;
11
- constructor(config, props = {}) {
16
+ constructor(config, props = {}, flat = false) {
12
17
  this.config = config;
13
- this.store = new TreeStore();
14
- this.store.beginBatch();
18
+ this.flatMode = flat;
15
19
  this.initialSelected = props.selected;
16
- this.treeListModel = new Gtk.TreeListModel(this.store.getRootModel(), false, props.autoexpand ?? false, (item) => this.createChildModel(item));
17
- this.selectionManager = new SelectionModelController({ ...config, ...props }, this.treeListModel, () => this.getSelection(), (ids) => this.resolveSelectionIndices(ids), () => this.treeListModel.getNItems());
20
+ let model;
21
+ if (flat) {
22
+ const store = new ListStore();
23
+ store.beginBatch();
24
+ this.flatStore = store;
25
+ model = store.getModel();
26
+ }
27
+ else {
28
+ const store = new TreeStore();
29
+ store.beginBatch();
30
+ this.treeStore = store;
31
+ this.treeListModel = new Gtk.TreeListModel(store.getRootModel(), false, props.autoexpand ?? false, (item) => this.createChildModel(item));
32
+ model = this.treeListModel;
33
+ }
34
+ this.selectionManager = new SelectionModelController({ ...config, ...props }, model, () => this.getSelection(), (ids) => this.resolveSelectionIndices(ids), () => this.getNItems());
35
+ }
36
+ isFlatMode() {
37
+ return this.flatMode;
18
38
  }
19
39
  flushBatch() {
20
- this.store.flushBatch();
40
+ if (this.flatStore) {
41
+ this.flatStore.flushBatch();
42
+ const model = this.flatStore.getModel();
43
+ if (this.selectionManager.getSelectionModel().getModel() !== model) {
44
+ this.selectionManager.update(null, { ...this.config }, model);
45
+ }
46
+ }
47
+ else if (this.treeStore) {
48
+ this.treeStore.flushBatch();
49
+ }
21
50
  this.selectionManager.reapplySelection(this.initialSelected);
22
51
  this.initialSelected = undefined;
23
52
  }
24
53
  createChildModel(item) {
54
+ if (!this.treeStore)
55
+ return null;
25
56
  if (!(item instanceof Gtk.StringObject))
26
57
  return null;
27
58
  const parentId = item.getString();
28
- return this.store.getChildrenModel(parentId);
59
+ return this.treeStore.getChildrenModel(parentId);
29
60
  }
30
61
  getStore() {
31
- return this.store;
62
+ if (!this.treeStore) {
63
+ throw new Error("getStore() called in flat mode. Use getFlatStore() instead.");
64
+ }
65
+ return this.treeStore;
66
+ }
67
+ getFlatStore() {
68
+ if (!this.flatStore) {
69
+ throw new Error("getFlatStore() called in tree mode. Use getStore() instead.");
70
+ }
71
+ return this.flatStore;
72
+ }
73
+ setOnItemUpdated(callback) {
74
+ if (this.flatStore) {
75
+ this.flatStore.setOnItemUpdated(callback);
76
+ }
77
+ else if (this.treeStore) {
78
+ this.treeStore.setOnItemUpdated(callback);
79
+ }
32
80
  }
33
81
  getSelectionModel() {
34
82
  return this.selectionManager.getSelectionModel();
35
83
  }
36
84
  appendChild(child) {
37
- child.setStore(this.store);
38
- this.addItemWithChildren(child);
85
+ if (this.flatStore) {
86
+ if (child instanceof ListSectionNode) {
87
+ this.flatStore.addSection(child.props.id, child.props.value);
88
+ child.setStore(this.flatStore);
89
+ }
90
+ else {
91
+ child.setStore(this.flatStore);
92
+ this.flatStore.addItem(child.props.id, child.props.value);
93
+ }
94
+ }
95
+ else if (child instanceof ListItemNode && this.treeStore) {
96
+ child.setStore(this.treeStore);
97
+ this.addItemWithChildren(child);
98
+ }
39
99
  }
40
100
  addItemWithChildren(node, parentId) {
101
+ if (!this.treeStore)
102
+ return;
41
103
  const id = node.props.id;
42
104
  for (const child of node.getChildNodes()) {
43
105
  this.addItemWithChildren(child, id);
44
106
  }
45
- this.store.addItem(id, ListItemNode.createItemData(node.props), parentId);
107
+ this.treeStore.addItem(id, ListItemNode.createItemData(node.props), parentId);
46
108
  }
47
109
  insertBefore(child, before) {
48
- child.setStore(this.store);
49
- this.store.insertItemBefore(child.props.id, before.props.id, ListItemNode.createItemData(child.props));
110
+ if (this.flatStore) {
111
+ if (child instanceof ListSectionNode) {
112
+ this.flatStore.addSection(child.props.id, child.props.value);
113
+ child.setStore(this.flatStore);
114
+ return;
115
+ }
116
+ if (before instanceof ListSectionNode) {
117
+ child.setStore(this.flatStore);
118
+ this.flatStore.addItem(child.props.id, child.props.value);
119
+ return;
120
+ }
121
+ child.setStore(this.flatStore);
122
+ this.flatStore.insertItemBefore(child.props.id, before.props.id, child.props.value);
123
+ }
124
+ else if (child instanceof ListItemNode && before instanceof ListItemNode && this.treeStore) {
125
+ child.setStore(this.treeStore);
126
+ this.treeStore.insertItemBefore(child.props.id, before.props.id, ListItemNode.createItemData(child.props));
127
+ }
50
128
  }
51
129
  removeChild(child) {
52
- this.store.removeItem(child.props.id);
53
- child.setStore(null);
130
+ if (this.flatStore) {
131
+ if (child instanceof ListSectionNode) {
132
+ this.flatStore.removeSection(child.props.id);
133
+ child.setStore(null);
134
+ }
135
+ else {
136
+ this.flatStore.removeItem(child.props.id);
137
+ child.setStore(null);
138
+ }
139
+ }
140
+ else if (child instanceof ListItemNode && this.treeStore) {
141
+ this.treeStore.removeItem(child.props.id);
142
+ child.setStore(null);
143
+ }
54
144
  }
55
145
  updateProps(oldProps, newProps) {
56
- if (!oldProps || oldProps.autoexpand !== newProps.autoexpand) {
57
- this.treeListModel.setAutoexpand(newProps.autoexpand ?? false);
146
+ if (this.treeListModel) {
147
+ if (!oldProps || oldProps.autoexpand !== newProps.autoexpand) {
148
+ this.treeListModel.setAutoexpand(newProps.autoexpand ?? false);
149
+ }
150
+ }
151
+ const model = this.flatStore ? this.flatStore.getModel() : this.treeListModel;
152
+ if (model) {
153
+ this.selectionManager.update(oldProps ? { ...this.config, ...oldProps } : null, { ...this.config, ...newProps }, model);
58
154
  }
59
- this.selectionManager.update(oldProps ? { ...this.config, ...oldProps } : null, { ...this.config, ...newProps }, this.treeListModel);
155
+ }
156
+ getNItems() {
157
+ if (this.flatStore) {
158
+ return this.flatStore.getNItems();
159
+ }
160
+ if (this.treeListModel) {
161
+ return this.treeListModel.getNItems();
162
+ }
163
+ return 0;
60
164
  }
61
165
  getSelection() {
62
166
  const selection = this.selectionManager.getSelectionModel().getSelection();
167
+ if (this.flatStore) {
168
+ return getSelectionFromStore(selection, this.flatStore);
169
+ }
63
170
  const size = selection.getSize();
64
171
  const ids = [];
65
172
  for (let i = 0; i < size; i++) {
66
173
  const index = selection.getNth(i);
174
+ if (!this.treeListModel)
175
+ continue;
67
176
  const row = this.treeListModel.getRow(index);
68
177
  if (!row)
69
178
  continue;
@@ -75,8 +184,13 @@ export class ListModel {
75
184
  return ids;
76
185
  }
77
186
  resolveSelectionIndices(ids) {
78
- const nItems = this.treeListModel.getNItems();
187
+ if (this.flatStore) {
188
+ return resolveSelectionIndices(ids, this.flatStore);
189
+ }
79
190
  const selected = new Gtk.Bitset();
191
+ if (!this.treeListModel)
192
+ return selected;
193
+ const nItems = this.treeListModel.getNItems();
80
194
  const idSet = new Set(ids);
81
195
  for (let i = 0; i < nItems; i++) {
82
196
  const row = this.treeListModel.getRow(i);
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/nodes/models/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/nodes/models/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASrD,MAAM,OAAO,SAAS;IACV,MAAM,CAAkB;IACxB,QAAQ,CAAU;IAElB,SAAS,GAAqB,IAAI,CAAC;IACnC,aAAa,GAA6B,IAAI,CAAC;IAE/C,SAAS,GAAqB,IAAI,CAAC;IAEnC,gBAAgB,CAA2B;IAC3C,eAAe,CAA8B;IAErD,YAAY,MAAuB,EAAE,QAAwB,EAAE,EAAE,IAAI,GAAG,KAAK;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEtC,IAAI,KAAoB,CAAC;QAEzB,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CACtC,KAAK,CAAC,YAAY,EAAE,EACpB,KAAK,EACL,KAAK,CAAC,UAAU,IAAI,KAAK,EACzB,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CACxD,CAAC;YACF,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,wBAAwB,CAChD,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,EACvB,KAAK,EACL,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EACzB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAC1C,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CACzB,CAAC;IACN,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACrC,CAAC;IAEO,gBAAgB,CAAC,IAAoB;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,gBAAgB,CAAC,QAA8B;QAClD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;IACrD,CAAC;IAEM,WAAW,CAAC,KAAqC;QACpD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7D,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,YAAY,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,IAAkB,EAAE,QAAiB;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAEM,YAAY,CAAC,KAAqC,EAAE,MAAsC;QAC7F,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7D,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,OAAO;YACX,CAAC;YACD,IAAI,MAAM,YAAY,eAAe,EAAE,CAAC;gBACpC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1D,OAAO;YACX,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,KAAK,YAAY,YAAY,IAAI,MAAM,YAAY,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3F,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/G,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,KAAqC;QACpD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,YAAY,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,QAA+B,EAAE,QAAwB;QACxE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAC9E,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,gBAAgB,CAAC,MAAM,CACxB,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EACjD,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,EAC/B,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;IAEO,SAAS;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,YAAY;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;QAE3E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,SAAS;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,YAAY,GAAG,CAAC,YAAY,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,uBAAuB,CAAC,GAAa;QACzC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,QAAQ,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,YAAY,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;gBAClE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ"}
@@ -8,10 +8,11 @@ export declare class ShortcutNode extends VirtualNode<ShortcutProps, EventContro
8
8
  isValidParent(parent: Node): boolean;
9
9
  private shortcut;
10
10
  private action;
11
+ setParent(parent: EventControllerNode<Gtk.ShortcutController> | null): void;
11
12
  commitUpdate(oldProps: ShortcutProps | null, newProps: ShortcutProps): void;
12
13
  detachDeletedInstance(): void;
13
- getShortcut(): Gtk.Shortcut | null;
14
- createShortcut(): void;
14
+ private removeFromController;
15
+ private createShortcut;
15
16
  private applyOwnProps;
16
17
  private createTrigger;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shortcut.d.ts","sourceRoot":"","sources":["../../src/nodes/shortcut.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,YAAa,SAAQ,WAAW,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;IAC5F,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAInC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAGpD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,MAAM,CAAmC;IAEjC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,qBAAqB,IAAI,IAAI;IAMtC,WAAW,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI;IAIlC,cAAc,IAAI,IAAI;IAS7B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;CAkBxB"}
1
+ {"version":3,"file":"shortcut.d.ts","sourceRoot":"","sources":["../../src/nodes/shortcut.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,YAAa,SAAQ,WAAW,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;IAC5F,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAInC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,MAAM,CAAmC;IAEjC,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI;IAc3E,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,qBAAqB,IAAI,IAAI;IAK7C,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;CAkBxB"}
@@ -11,17 +11,32 @@ export class ShortcutNode extends VirtualNode {
11
11
  }
12
12
  shortcut = null;
13
13
  action = null;
14
+ setParent(parent) {
15
+ if (!parent && this.parent) {
16
+ this.removeFromController();
17
+ }
18
+ super.setParent(parent);
19
+ if (parent && !this.shortcut) {
20
+ this.createShortcut();
21
+ const shortcut = this.shortcut;
22
+ if (shortcut)
23
+ parent.container.addShortcut(shortcut);
24
+ }
25
+ }
14
26
  commitUpdate(oldProps, newProps) {
15
27
  super.commitUpdate(oldProps, newProps);
16
28
  this.applyOwnProps(oldProps, newProps);
17
29
  }
18
30
  detachDeletedInstance() {
19
- this.shortcut = null;
20
- this.action = null;
31
+ this.removeFromController();
21
32
  super.detachDeletedInstance();
22
33
  }
23
- getShortcut() {
24
- return this.shortcut;
34
+ removeFromController() {
35
+ if (!this.parent || !this.shortcut)
36
+ return;
37
+ this.parent.container.removeShortcut(this.shortcut);
38
+ this.shortcut = null;
39
+ this.action = null;
25
40
  }
26
41
  createShortcut() {
27
42
  const trigger = this.createTrigger();
@@ -1 +1 @@
1
- {"version":3,"file":"shortcut.js","sourceRoot":"","sources":["../../src/nodes/shortcut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortcut.js","sourceRoot":"","sources":["../../src/nodes/shortcut.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-anchor.d.ts","sourceRoot":"","sources":["../../src/nodes/text-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,cAAe,SAAQ,WAAW,CAAC,eAAe,EAAE,IAAI,GAAG,iBAAiB,EAAE,UAAU,CAAC;IAClG,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAoC;IAElD,OAAO,CAAC,YAAY,CAAK;IAElB,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAI7C,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,MAAM;IAIjB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI;IAMjF,OAAO,CAAC,WAAW;IAcH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQpC,qBAAqB,IAAI,IAAI;CAMhD"}
1
+ {"version":3,"file":"text-anchor.d.ts","sourceRoot":"","sources":["../../src/nodes/text-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,cAAe,SAAQ,WAAW,CAAC,eAAe,EAAE,IAAI,GAAG,iBAAiB,EAAE,UAAU,CAAC;IAClG,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAoC;IAElD,OAAO,CAAC,YAAY,CAAK;IAElB,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAI7C,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,MAAM;IAIjB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI;IAMjF,OAAO,CAAC,WAAW;IAmBH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQpC,qBAAqB,IAAI,IAAI;CAMhD"}
@@ -36,7 +36,13 @@ export class TextAnchorNode extends VirtualNode {
36
36
  return;
37
37
  const iter = new Gtk.TextIter();
38
38
  this.buffer.getIterAtOffset(iter, this.bufferOffset);
39
- this.anchor = this.buffer.createChildAnchor(iter);
39
+ if (this.props.replacementChar) {
40
+ this.anchor = Gtk.TextChildAnchor.newWithReplacement(this.props.replacementChar);
41
+ this.buffer.insertChildAnchor(iter, this.anchor);
42
+ }
43
+ else {
44
+ this.anchor = this.buffer.createChildAnchor(iter);
45
+ }
40
46
  const widgetChild = this.children[0];
41
47
  if (widgetChild?.container && this.anchor) {
42
48
  this.textView.addChildAtAnchor(widgetChild.container, this.anchor);
@@ -1 +1 @@
1
- {"version":3,"file":"text-anchor.js","sourceRoot":"","sources":["../../src/nodes/text-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAA0B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,cAAe,SAAQ,WAAkE;IAC1F,QAAQ,GAAwB,IAAI,CAAC;IACrC,MAAM,GAA0B,IAAI,CAAC;IACrC,MAAM,GAA+B,IAAI,CAAC;IAE1C,YAAY,GAAG,CAAC,CAAC;IAElB,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,MAAc;QACjC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEe,YAAY,CAAC,KAAW;QACpC,OAAO,KAAK,YAAY,UAAU,CAAC;IACvC,CAAC;IAEe,aAAa,CAAC,MAAY;QACtC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,SAAS;QACZ,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,OAAO;QACV,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAEM,oBAAoB,CAAC,QAAsB,EAAE,MAAsB;QACtE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAE3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,WAAW,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAEe,WAAW,CAAC,KAAiB;QACzC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAEe,qBAAqB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,qBAAqB,EAAE,CAAC;IAClC,CAAC;CACJ"}
1
+ {"version":3,"file":"text-anchor.js","sourceRoot":"","sources":["../../src/nodes/text-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAA0B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,cAAe,SAAQ,WAAkE;IAC1F,QAAQ,GAAwB,IAAI,CAAC;IACrC,MAAM,GAA0B,IAAI,CAAC;IACrC,MAAM,GAA+B,IAAI,CAAC;IAE1C,YAAY,GAAG,CAAC,CAAC;IAElB,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,MAAc;QACjC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEe,YAAY,CAAC,KAAW;QACpC,OAAO,KAAK,YAAY,UAAU,CAAC;IACvC,CAAC;IAEe,aAAa,CAAC,MAAY;QACtC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,SAAS;QACZ,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,OAAO;QACV,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAEM,oBAAoB,CAAC,QAAsB,EAAE,MAAsB;QACtE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAE3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAErD,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,WAAW,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAEe,WAAW,CAAC,KAAiB;QACzC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAEe,qBAAqB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,qBAAqB,EAAE,CAAC;IAClC,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-tag.d.ts","sourceRoot":"","sources":["../../src/nodes/text-tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAuB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA2C3C,KAAK,aAAa,GAAG,IAAI,GAAG,iBAAiB,CAAC;AAE9C,qBAAa,WACT,SAAQ,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CACjE,YAAW,iBAAiB;IAE5B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,YAAY,CAAK;IAElB,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAY1C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAY1C,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAcrE,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKzE,qBAAqB,IAAI,IAAI;IAWtC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI;IAYvC,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,MAAM;IAQjB,SAAS,IAAI,MAAM;IAQnB,UAAU,IAAI,IAAI;IAMlB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAS9C,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAI7C,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAS7F,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;CAG7B"}
1
+ {"version":3,"file":"text-tag.d.ts","sourceRoot":"","sources":["../../src/nodes/text-tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAuB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA2C3C,KAAK,aAAa,GAAG,IAAI,GAAG,iBAAiB,CAAC;AAE9C,qBAAa,WACT,SAAQ,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CACjE,YAAW,iBAAiB;IAE5B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,YAAY,CAAK;IAElB,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAY1C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAY1C,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAcrE,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKzE,qBAAqB,IAAI,IAAI;IAWtC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI;IAYvC,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,MAAM;IAQjB,SAAS,IAAI,MAAM;IAQnB,UAAU,IAAI,IAAI;IAMlB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAS9C,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAI7C,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAS7F,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;CAQ7B"}
@@ -1,6 +1,7 @@
1
1
  import * as Gtk from "@gtkx/ffi/gtk";
2
2
  import { hasChanged } from "./internal/props.js";
3
3
  import { TextAnchorNode } from "./text-anchor.js";
4
+ import { TextPaintableNode } from "./text-paintable.js";
4
5
  import { isTextContentParent, TextSegmentNode } from "./text-segment.js";
5
6
  import { VirtualNode } from "./virtual.js";
6
7
  const STYLE_PROPS = {
@@ -231,7 +232,10 @@ export class TextTagNode extends VirtualNode {
231
232
  }
232
233
  }
233
234
  isTextContentChild(child) {
234
- return child instanceof TextSegmentNode || child instanceof TextTagNode || child instanceof TextAnchorNode;
235
+ return (child instanceof TextSegmentNode ||
236
+ child instanceof TextTagNode ||
237
+ child instanceof TextAnchorNode ||
238
+ child instanceof TextPaintableNode);
235
239
  }
236
240
  }
237
241
  //# sourceMappingURL=text-tag.js.map