@gtkx/react 0.18.9 → 0.20.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 (212) hide show
  1. package/dist/components/list.d.ts +35 -0
  2. package/dist/components/list.d.ts.map +1 -0
  3. package/dist/components/list.js +40 -0
  4. package/dist/components/list.js.map +1 -0
  5. package/dist/generated/internal.d.ts +8 -3
  6. package/dist/generated/internal.d.ts.map +1 -1
  7. package/dist/generated/internal.js +3553 -53
  8. package/dist/generated/internal.js.map +1 -1
  9. package/dist/generated/jsx.d.ts +178 -326
  10. package/dist/generated/jsx.d.ts.map +1 -1
  11. package/dist/generated/jsx.js +0 -324
  12. package/dist/generated/jsx.js.map +1 -1
  13. package/dist/host-config.d.ts.map +1 -1
  14. package/dist/host-config.js +48 -10
  15. package/dist/host-config.js.map +1 -1
  16. package/dist/jsx.d.ts +111 -54
  17. package/dist/jsx.d.ts.map +1 -1
  18. package/dist/jsx.js +3 -28
  19. package/dist/jsx.js.map +1 -1
  20. package/dist/metadata.d.ts +1 -0
  21. package/dist/metadata.d.ts.map +1 -1
  22. package/dist/metadata.js +7 -1
  23. package/dist/metadata.js.map +1 -1
  24. package/dist/node.d.ts +0 -2
  25. package/dist/node.d.ts.map +1 -1
  26. package/dist/node.js +19 -25
  27. package/dist/node.js.map +1 -1
  28. package/dist/nodes/application.d.ts.map +1 -1
  29. package/dist/nodes/application.js +4 -0
  30. package/dist/nodes/application.js.map +1 -1
  31. package/dist/nodes/column-view-column.d.ts +19 -16
  32. package/dist/nodes/column-view-column.d.ts.map +1 -1
  33. package/dist/nodes/column-view-column.js +129 -97
  34. package/dist/nodes/column-view-column.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 +9 -7
  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/internal/accessible.d.ts +5 -0
  48. package/dist/nodes/internal/accessible.d.ts.map +1 -0
  49. package/dist/nodes/internal/accessible.js +119 -0
  50. package/dist/nodes/internal/accessible.js.map +1 -0
  51. package/dist/nodes/internal/bound-item.d.ts +4 -0
  52. package/dist/nodes/internal/bound-item.d.ts.map +1 -0
  53. package/dist/nodes/internal/bound-item.js +2 -0
  54. package/dist/nodes/internal/bound-item.js.map +1 -0
  55. package/dist/nodes/internal/construct.d.ts +3 -0
  56. package/dist/nodes/internal/construct.d.ts.map +1 -0
  57. package/dist/nodes/internal/construct.js +44 -0
  58. package/dist/nodes/internal/construct.js.map +1 -0
  59. package/dist/nodes/internal/text-buffer-controller.d.ts +4 -0
  60. package/dist/nodes/internal/text-buffer-controller.d.ts.map +1 -1
  61. package/dist/nodes/internal/text-buffer-controller.js +49 -9
  62. package/dist/nodes/internal/text-buffer-controller.js.map +1 -1
  63. package/dist/nodes/internal/widget.d.ts.map +1 -1
  64. package/dist/nodes/internal/widget.js +4 -1
  65. package/dist/nodes/internal/widget.js.map +1 -1
  66. package/dist/nodes/list-item-node.d.ts +12 -0
  67. package/dist/nodes/list-item-node.d.ts.map +1 -0
  68. package/dist/nodes/list-item-node.js +23 -0
  69. package/dist/nodes/list-item-node.js.map +1 -0
  70. package/dist/nodes/list.d.ts +100 -0
  71. package/dist/nodes/list.d.ts.map +1 -0
  72. package/dist/nodes/list.js +950 -0
  73. package/dist/nodes/list.js.map +1 -0
  74. package/dist/nodes/notebook-page.d.ts.map +1 -1
  75. package/dist/nodes/notebook-page.js +4 -0
  76. package/dist/nodes/notebook-page.js.map +1 -1
  77. package/dist/nodes/shortcut.d.ts +3 -2
  78. package/dist/nodes/shortcut.d.ts.map +1 -1
  79. package/dist/nodes/shortcut.js +19 -4
  80. package/dist/nodes/shortcut.js.map +1 -1
  81. package/dist/nodes/text-anchor.d.ts.map +1 -1
  82. package/dist/nodes/text-anchor.js +7 -1
  83. package/dist/nodes/text-anchor.js.map +1 -1
  84. package/dist/nodes/text-tag.d.ts.map +1 -1
  85. package/dist/nodes/text-tag.js +5 -1
  86. package/dist/nodes/text-tag.js.map +1 -1
  87. package/dist/nodes/text-view.d.ts +1 -0
  88. package/dist/nodes/text-view.d.ts.map +1 -1
  89. package/dist/nodes/text-view.js +4 -0
  90. package/dist/nodes/text-view.js.map +1 -1
  91. package/dist/nodes/widget.d.ts +0 -2
  92. package/dist/nodes/widget.d.ts.map +1 -1
  93. package/dist/nodes/widget.js +51 -67
  94. package/dist/nodes/widget.js.map +1 -1
  95. package/dist/nodes/window.d.ts.map +1 -1
  96. package/dist/nodes/window.js +2 -2
  97. package/dist/nodes/window.js.map +1 -1
  98. package/dist/registry.d.ts +0 -2
  99. package/dist/registry.d.ts.map +1 -1
  100. package/dist/registry.js +4 -13
  101. package/dist/registry.js.map +1 -1
  102. package/dist/types.d.ts +2 -2
  103. package/dist/types.d.ts.map +1 -1
  104. package/package.json +5 -4
  105. package/src/components/list.tsx +83 -0
  106. package/src/generated/internal.ts +3559 -49
  107. package/src/generated/jsx.ts +178 -326
  108. package/src/host-config.ts +43 -10
  109. package/src/jsx.ts +121 -62
  110. package/src/metadata.ts +8 -1
  111. package/src/node.ts +23 -25
  112. package/src/nodes/application.ts +5 -0
  113. package/src/nodes/column-view-column.ts +125 -104
  114. package/src/nodes/event-controller.ts +8 -8
  115. package/src/nodes/fixed-child.ts +24 -23
  116. package/src/nodes/font-dialog-button.ts +10 -0
  117. package/src/nodes/internal/accessible.ts +155 -0
  118. package/src/nodes/internal/bound-item.ts +4 -0
  119. package/src/nodes/internal/construct.ts +60 -0
  120. package/src/nodes/internal/text-buffer-controller.ts +51 -8
  121. package/src/nodes/internal/widget.ts +3 -1
  122. package/src/nodes/list-item-node.ts +29 -0
  123. package/src/nodes/list.ts +1082 -0
  124. package/src/nodes/notebook-page.ts +4 -0
  125. package/src/nodes/shortcut.ts +22 -5
  126. package/src/nodes/text-anchor.ts +6 -1
  127. package/src/nodes/text-tag.ts +7 -1
  128. package/src/nodes/text-view.ts +5 -0
  129. package/src/nodes/widget.ts +47 -69
  130. package/src/nodes/window.ts +2 -2
  131. package/src/registry.ts +11 -17
  132. package/src/types.ts +7 -2
  133. package/dist/fiber-root.d.ts +0 -4
  134. package/dist/fiber-root.d.ts.map +0 -1
  135. package/dist/fiber-root.js +0 -6
  136. package/dist/fiber-root.js.map +0 -1
  137. package/dist/nodes/column-view.d.ts +0 -36
  138. package/dist/nodes/column-view.d.ts.map +0 -1
  139. package/dist/nodes/column-view.js +0 -175
  140. package/dist/nodes/column-view.js.map +0 -1
  141. package/dist/nodes/drop-down.d.ts +0 -27
  142. package/dist/nodes/drop-down.d.ts.map +0 -1
  143. package/dist/nodes/drop-down.js +0 -85
  144. package/dist/nodes/drop-down.js.map +0 -1
  145. package/dist/nodes/grid-view.d.ts +0 -29
  146. package/dist/nodes/grid-view.d.ts.map +0 -1
  147. package/dist/nodes/grid-view.js +0 -85
  148. package/dist/nodes/grid-view.js.map +0 -1
  149. package/dist/nodes/internal/base-item-renderer.d.ts +0 -28
  150. package/dist/nodes/internal/base-item-renderer.d.ts.map +0 -1
  151. package/dist/nodes/internal/base-item-renderer.js +0 -86
  152. package/dist/nodes/internal/base-item-renderer.js.map +0 -1
  153. package/dist/nodes/internal/grid-item-renderer.d.ts +0 -20
  154. package/dist/nodes/internal/grid-item-renderer.d.ts.map +0 -1
  155. package/dist/nodes/internal/grid-item-renderer.js +0 -66
  156. package/dist/nodes/internal/grid-item-renderer.js.map +0 -1
  157. package/dist/nodes/internal/list-item-renderer.d.ts +0 -27
  158. package/dist/nodes/internal/list-item-renderer.d.ts.map +0 -1
  159. package/dist/nodes/internal/list-item-renderer.js +0 -131
  160. package/dist/nodes/internal/list-item-renderer.js.map +0 -1
  161. package/dist/nodes/internal/list-store.d.ts +0 -22
  162. package/dist/nodes/internal/list-store.d.ts.map +0 -1
  163. package/dist/nodes/internal/list-store.js +0 -91
  164. package/dist/nodes/internal/list-store.js.map +0 -1
  165. package/dist/nodes/internal/selection-model-controller.d.ts +0 -26
  166. package/dist/nodes/internal/selection-model-controller.d.ts.map +0 -1
  167. package/dist/nodes/internal/selection-model-controller.js +0 -79
  168. package/dist/nodes/internal/selection-model-controller.js.map +0 -1
  169. package/dist/nodes/internal/simple-list-store.d.ts +0 -20
  170. package/dist/nodes/internal/simple-list-store.d.ts.map +0 -1
  171. package/dist/nodes/internal/simple-list-store.js +0 -87
  172. package/dist/nodes/internal/simple-list-store.js.map +0 -1
  173. package/dist/nodes/internal/tree-store.d.ts +0 -34
  174. package/dist/nodes/internal/tree-store.d.ts.map +0 -1
  175. package/dist/nodes/internal/tree-store.js +0 -208
  176. package/dist/nodes/internal/tree-store.js.map +0 -1
  177. package/dist/nodes/list-item.d.ts +0 -24
  178. package/dist/nodes/list-item.d.ts.map +0 -1
  179. package/dist/nodes/list-item.js +0 -83
  180. package/dist/nodes/list-item.js.map +0 -1
  181. package/dist/nodes/list-view.d.ts +0 -29
  182. package/dist/nodes/list-view.d.ts.map +0 -1
  183. package/dist/nodes/list-view.js +0 -83
  184. package/dist/nodes/list-view.js.map +0 -1
  185. package/dist/nodes/models/grid.d.ts +0 -28
  186. package/dist/nodes/models/grid.d.ts.map +0 -1
  187. package/dist/nodes/models/grid.js +0 -69
  188. package/dist/nodes/models/grid.js.map +0 -1
  189. package/dist/nodes/models/list.d.ts +0 -31
  190. package/dist/nodes/models/list.d.ts.map +0 -1
  191. package/dist/nodes/models/list.js +0 -93
  192. package/dist/nodes/models/list.js.map +0 -1
  193. package/dist/nodes/shortcut-controller.d.ts +0 -10
  194. package/dist/nodes/shortcut-controller.d.ts.map +0 -1
  195. package/dist/nodes/shortcut-controller.js +0 -23
  196. package/dist/nodes/shortcut-controller.js.map +0 -1
  197. package/src/fiber-root.ts +0 -20
  198. package/src/nodes/column-view.ts +0 -217
  199. package/src/nodes/drop-down.ts +0 -108
  200. package/src/nodes/grid-view.ts +0 -109
  201. package/src/nodes/internal/base-item-renderer.ts +0 -108
  202. package/src/nodes/internal/grid-item-renderer.ts +0 -78
  203. package/src/nodes/internal/list-item-renderer.ts +0 -162
  204. package/src/nodes/internal/list-store.ts +0 -105
  205. package/src/nodes/internal/selection-model-controller.ts +0 -115
  206. package/src/nodes/internal/simple-list-store.ts +0 -99
  207. package/src/nodes/internal/tree-store.ts +0 -237
  208. package/src/nodes/list-item.ts +0 -107
  209. package/src/nodes/list-view.ts +0 -113
  210. package/src/nodes/models/grid.ts +0 -105
  211. package/src/nodes/models/list.ts +0 -140
  212. package/src/nodes/shortcut-controller.ts +0 -27
@@ -1,27 +0,0 @@
1
- import type { AdwComboRowProps, GtkDropDownProps } from "../jsx.js";
2
- import type { Node } from "../node.js";
3
- import type { DropDownWidget } from "../registry.js";
4
- import type { Container } from "../types.js";
5
- import { ContainerSlotNode } from "./container-slot.js";
6
- import { EventControllerNode } from "./event-controller.js";
7
- import { ListItemNode } from "./list-item.js";
8
- import { SlotNode } from "./slot.js";
9
- import { WidgetNode } from "./widget.js";
10
- declare const OWN_PROPS: readonly ["selectedId", "onSelectionChanged"];
11
- type DropDownProps = Pick<GtkDropDownProps | AdwComboRowProps, (typeof OWN_PROPS)[number]>;
12
- type DropDownChild = ListItemNode | EventControllerNode | SlotNode | ContainerSlotNode;
13
- export declare class DropDownNode extends WidgetNode<DropDownWidget, DropDownProps, DropDownChild> {
14
- private store;
15
- private initialSelectedId;
16
- isValidChild(child: Node): boolean;
17
- constructor(typeName: string, props: DropDownProps, container: DropDownWidget, rootContainer: Container);
18
- finalizeInitialChildren(props: DropDownProps): boolean;
19
- private reapplyInitialSelectedId;
20
- appendChild(child: DropDownChild): void;
21
- insertBefore(child: DropDownChild, before: DropDownChild): void;
22
- removeChild(child: DropDownChild): void;
23
- commitUpdate(oldProps: DropDownProps | null, newProps: DropDownProps): void;
24
- private applyOwnProps;
25
- }
26
- export {};
27
- //# sourceMappingURL=drop-down.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drop-down.d.ts","sourceRoot":"","sources":["../../src/nodes/drop-down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,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,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,SAAS,+CAAgD,CAAC;AAEhE,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3F,KAAK,aAAa,GAAG,YAAY,GAAG,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEvF,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC;IACtF,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,iBAAiB,CAA4B;IAErC,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;gBAStC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS;IAOvF,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAOtE,OAAO,CAAC,wBAAwB;IAShB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAQvC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAQ/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3F,OAAO,CAAC,aAAa;CAyBxB"}
@@ -1,85 +0,0 @@
1
- import { ContainerSlotNode } from "./container-slot.js";
2
- import { EventControllerNode } from "./event-controller.js";
3
- import { filterProps, hasChanged } from "./internal/props.js";
4
- import { SimpleListStore } from "./internal/simple-list-store.js";
5
- import { ListItemNode } from "./list-item.js";
6
- import { SlotNode } from "./slot.js";
7
- import { WidgetNode } from "./widget.js";
8
- const OWN_PROPS = ["selectedId", "onSelectionChanged"];
9
- export class DropDownNode extends WidgetNode {
10
- store = new SimpleListStore();
11
- initialSelectedId;
12
- isValidChild(child) {
13
- return (child instanceof ListItemNode ||
14
- child instanceof EventControllerNode ||
15
- child instanceof SlotNode ||
16
- child instanceof ContainerSlotNode);
17
- }
18
- constructor(typeName, props, container, rootContainer) {
19
- super(typeName, props, container, rootContainer);
20
- this.store.beginBatch();
21
- this.initialSelectedId = props.selectedId;
22
- this.container.setModel(this.store.getModel());
23
- }
24
- finalizeInitialChildren(props) {
25
- super.finalizeInitialChildren(props);
26
- this.store.flushBatch();
27
- this.reapplyInitialSelectedId();
28
- return false;
29
- }
30
- reapplyInitialSelectedId() {
31
- if (this.initialSelectedId == null)
32
- return;
33
- const index = this.store.getIndexById(this.initialSelectedId);
34
- this.initialSelectedId = undefined;
35
- if (index !== null) {
36
- this.container.setSelected(index);
37
- }
38
- }
39
- appendChild(child) {
40
- super.appendChild(child);
41
- if (child instanceof ListItemNode) {
42
- child.setStore(this.store);
43
- this.store.addItem(child.props.id, child.props.value);
44
- }
45
- }
46
- insertBefore(child, before) {
47
- super.insertBefore(child, before);
48
- if (child instanceof ListItemNode && before instanceof ListItemNode) {
49
- child.setStore(this.store);
50
- this.store.insertItemBefore(child.props.id, before.props.id, child.props.value);
51
- }
52
- }
53
- removeChild(child) {
54
- if (child instanceof ListItemNode) {
55
- this.store.removeItem(child.props.id);
56
- }
57
- super.removeChild(child);
58
- }
59
- commitUpdate(oldProps, newProps) {
60
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
61
- this.applyOwnProps(oldProps, newProps);
62
- }
63
- applyOwnProps(oldProps, newProps) {
64
- if (hasChanged(oldProps, newProps, "onSelectionChanged")) {
65
- const onSelectionChanged = newProps.onSelectionChanged;
66
- const handleSelectionChange = onSelectionChanged
67
- ? () => {
68
- const selectedIndex = this.container.getSelected();
69
- const id = this.store.getIdAtIndex(selectedIndex);
70
- if (id !== null) {
71
- onSelectionChanged(id);
72
- }
73
- }
74
- : undefined;
75
- this.signalStore.set(this, this.container, "notify::selected", handleSelectionChange);
76
- }
77
- if (hasChanged(oldProps, newProps, "selectedId")) {
78
- const index = newProps.selectedId != null ? this.store.getIndexById(newProps.selectedId) : null;
79
- if (index !== null) {
80
- this.container.setSelected(index);
81
- }
82
- }
83
- }
84
- }
85
- //# sourceMappingURL=drop-down.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drop-down.js","sourceRoot":"","sources":["../../src/nodes/drop-down.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import type { GtkGridViewProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import type { Container } from "../types.js";
5
- import { ContainerSlotNode } from "./container-slot.js";
6
- import { EventControllerNode } from "./event-controller.js";
7
- import { ListItemNode } from "./list-item.js";
8
- import { type GridModelProps } from "./models/grid.js";
9
- import { SlotNode } from "./slot.js";
10
- import { WidgetNode } from "./widget.js";
11
- declare const OWN_PROPS: readonly ["renderItem", "estimatedItemHeight"];
12
- type GridViewProps = Pick<GtkGridViewProps, (typeof OWN_PROPS)[number]> & GridModelProps;
13
- type GridViewChild = ListItemNode | EventControllerNode | SlotNode | ContainerSlotNode;
14
- export declare class GridViewNode extends WidgetNode<Gtk.GridView, GridViewProps, GridViewChild> {
15
- private itemRenderer;
16
- private grid;
17
- constructor(typeName: string, props: GridViewProps, container: Gtk.GridView, rootContainer: Container);
18
- isValidChild(child: Node): boolean;
19
- appendChild(child: GridViewChild): void;
20
- insertBefore(child: GridViewChild, before: GridViewChild): void;
21
- removeChild(child: GridViewChild): void;
22
- finalizeInitialChildren(props: GridViewProps): boolean;
23
- commitUpdate(oldProps: GridViewProps | null, newProps: GridViewProps): void;
24
- commitMount(): void;
25
- detachDeletedInstance(): void;
26
- private applyOwnProps;
27
- }
28
- export {};
29
- //# sourceMappingURL=grid-view.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-view.d.ts","sourceRoot":"","sources":["../../src/nodes/grid-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,SAAS,gDAAiD,CAAC;AAEjE,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC;AAEzF,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;gBAEZ,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS;IAgBrF,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAUlC,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;CAiBxB"}
@@ -1,85 +0,0 @@
1
- import { ContainerSlotNode } from "./container-slot.js";
2
- import { EventControllerNode } from "./event-controller.js";
3
- import { GridItemRenderer } from "./internal/grid-item-renderer.js";
4
- import { filterProps, hasChanged } from "./internal/props.js";
5
- import { ListItemNode } from "./list-item.js";
6
- import { GridModel } from "./models/grid.js";
7
- import { SlotNode } from "./slot.js";
8
- import { WidgetNode } from "./widget.js";
9
- const OWN_PROPS = ["renderItem", "estimatedItemHeight"];
10
- export class GridViewNode extends WidgetNode {
11
- itemRenderer;
12
- grid;
13
- constructor(typeName, props, container, rootContainer) {
14
- super(typeName, props, container, rootContainer);
15
- this.grid = new GridModel({ owner: this, signalStore: this.signalStore }, {
16
- selectionMode: props.selectionMode,
17
- selected: props.selected,
18
- onSelectionChanged: props.onSelectionChanged,
19
- });
20
- this.itemRenderer = new GridItemRenderer(this.signalStore);
21
- this.itemRenderer.setStore(this.grid.getStore());
22
- this.grid.getStore().setOnItemUpdated((id) => this.itemRenderer.rebindItem(id));
23
- this.container.setFactory(this.itemRenderer.getFactory());
24
- }
25
- isValidChild(child) {
26
- if (child instanceof EventControllerNode || child instanceof SlotNode || child instanceof ContainerSlotNode)
27
- return true;
28
- if (!(child instanceof ListItemNode))
29
- return false;
30
- if (child.getChildNodes().length > 0) {
31
- throw new Error("GtkGridView does not support nested ListItems. Use GtkListView for tree lists.");
32
- }
33
- return true;
34
- }
35
- appendChild(child) {
36
- super.appendChild(child);
37
- if (child instanceof ListItemNode) {
38
- this.grid.appendChild(child);
39
- }
40
- }
41
- insertBefore(child, before) {
42
- super.insertBefore(child, before);
43
- if (child instanceof ListItemNode && before instanceof ListItemNode) {
44
- this.grid.insertBefore(child, before);
45
- }
46
- }
47
- removeChild(child) {
48
- if (child instanceof ListItemNode) {
49
- this.grid.removeChild(child);
50
- }
51
- super.removeChild(child);
52
- }
53
- finalizeInitialChildren(props) {
54
- super.finalizeInitialChildren(props);
55
- return true;
56
- }
57
- commitUpdate(oldProps, newProps) {
58
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
59
- this.applyOwnProps(oldProps, newProps);
60
- }
61
- commitMount() {
62
- super.commitMount();
63
- this.grid.flushBatch();
64
- this.container.setModel(this.grid.getSelectionModel());
65
- }
66
- detachDeletedInstance() {
67
- this.itemRenderer.dispose();
68
- super.detachDeletedInstance();
69
- }
70
- applyOwnProps(oldProps, newProps) {
71
- if (hasChanged(oldProps, newProps, "renderItem")) {
72
- this.itemRenderer.setRenderFn(newProps.renderItem ?? null);
73
- }
74
- if (hasChanged(oldProps, newProps, "estimatedItemHeight")) {
75
- this.itemRenderer.setEstimatedItemHeight(newProps.estimatedItemHeight ?? null);
76
- }
77
- const previousModel = this.grid.getSelectionModel();
78
- this.grid.updateProps(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
79
- const currentModel = this.grid.getSelectionModel();
80
- if (previousModel !== currentModel) {
81
- this.container.setModel(currentModel);
82
- }
83
- }
84
- }
85
- //# sourceMappingURL=grid-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-view.js","sourceRoot":"","sources":["../../src/nodes/grid-view.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { ReactNode } from "react";
3
- import type Reconciler from "react-reconciler";
4
- import type { SignalStore } from "./signal-store.js";
5
- export declare abstract class BaseItemRenderer<TStore = unknown> {
6
- protected factory: Gtk.SignalListItemFactory;
7
- protected fiberRoots: Map<Gtk.ListItem, any>;
8
- protected tornDown: Set<Gtk.ListItem>;
9
- protected estimatedItemHeight: number | null;
10
- private store;
11
- protected signalStore: SignalStore;
12
- constructor(signalStore: SignalStore);
13
- getFactory(): Gtk.SignalListItemFactory;
14
- setEstimatedItemHeight(height: number | null): void;
15
- setStore(store: TStore | null): void;
16
- protected getStore(): TStore;
17
- dispose(): void;
18
- protected abstract renderItem(listItem: Gtk.ListItem): ReactNode;
19
- protected abstract onSetup(listItem: Gtk.ListItem): Gtk.Widget;
20
- protected abstract onBind(listItem: Gtk.ListItem, fiberRoot: Reconciler.FiberRoot): void;
21
- protected abstract onUnbind(listItem: Gtk.ListItem): void;
22
- protected onSetupComplete(_listItem: Gtk.ListItem): void;
23
- protected onTeardown(_listItem: Gtk.ListItem): void;
24
- protected createBox(): Gtk.Box;
25
- protected clearBoxSizeRequest(box: Gtk.Widget): void;
26
- private initializeFactory;
27
- }
28
- //# sourceMappingURL=base-item-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-item-renderer.d.ts","sourceRoot":"","sources":["../../../src/nodes/internal/base-item-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,gBAAgB,CAAC,MAAM,GAAG,OAAO;IACnD,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,qBAAqB,CAAC;IAC7C,SAAS,CAAC,UAAU,yBAAiD;IACrE,SAAS,CAAC,QAAQ,oBAA2B;IAC7C,SAAS,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpD,OAAO,CAAC,KAAK,CAAuB;IACpC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,WAAW,EAAE,WAAW;IAM7B,UAAU,IAAI,GAAG,CAAC,qBAAqB;IAIvC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAInD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI3C,SAAS,CAAC,QAAQ,IAAI,MAAM;IAOrB,OAAO,IAAI,IAAI;IAMtB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS;IAChE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;IAC9D,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;IACxF,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;IAEzD,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;IACxD,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;IAEnD,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG;IAW9B,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI;IAMpD,OAAO,CAAC,iBAAiB;CAoC5B"}
@@ -1,86 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { createFiberRoot } from "../../fiber-root.js";
3
- import { reconciler } from "../../reconciler.js";
4
- export class BaseItemRenderer {
5
- factory;
6
- fiberRoots = new Map();
7
- tornDown = new Set();
8
- estimatedItemHeight = null;
9
- store = null;
10
- signalStore;
11
- constructor(signalStore) {
12
- this.signalStore = signalStore;
13
- this.factory = new Gtk.SignalListItemFactory();
14
- this.initializeFactory();
15
- }
16
- getFactory() {
17
- return this.factory;
18
- }
19
- setEstimatedItemHeight(height) {
20
- this.estimatedItemHeight = height;
21
- }
22
- setStore(store) {
23
- this.store = store;
24
- }
25
- getStore() {
26
- if (!this.store) {
27
- throw new Error(`Expected store to be set on ${this.constructor.name}`);
28
- }
29
- return this.store;
30
- }
31
- dispose() {
32
- this.signalStore.clear(this);
33
- this.fiberRoots.clear();
34
- this.tornDown.clear();
35
- }
36
- onSetupComplete(_listItem) { }
37
- onTeardown(_listItem) { }
38
- createBox() {
39
- const box = new Gtk.Box(Gtk.Orientation.HORIZONTAL);
40
- box.setValign(Gtk.Align.CENTER);
41
- if (this.estimatedItemHeight !== null) {
42
- box.setSizeRequest(-1, this.estimatedItemHeight);
43
- }
44
- return box;
45
- }
46
- clearBoxSizeRequest(box) {
47
- if (box instanceof Gtk.Box) {
48
- box.setSizeRequest(-1, -1);
49
- }
50
- }
51
- initializeFactory() {
52
- this.signalStore.set(this, this.factory, "setup", (listItem) => {
53
- const container = this.onSetup(listItem);
54
- const fiberRoot = createFiberRoot(container);
55
- this.fiberRoots.set(listItem, fiberRoot);
56
- const element = this.renderItem(listItem);
57
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => {
58
- if (this.tornDown.has(listItem))
59
- return;
60
- this.onSetupComplete(listItem);
61
- });
62
- });
63
- this.signalStore.set(this, this.factory, "bind", (listItem) => {
64
- const fiberRoot = this.fiberRoots.get(listItem);
65
- if (!fiberRoot)
66
- return;
67
- this.onBind(listItem, fiberRoot);
68
- });
69
- this.signalStore.set(this, this.factory, "unbind", (listItem) => {
70
- this.onUnbind(listItem);
71
- });
72
- this.signalStore.set(this, this.factory, "teardown", (listItem) => {
73
- const fiberRoot = this.fiberRoots.get(listItem);
74
- if (fiberRoot) {
75
- this.tornDown.add(listItem);
76
- this.onTeardown(listItem);
77
- reconciler.getInstance().updateContainer(null, fiberRoot, null, () => { });
78
- queueMicrotask(() => {
79
- this.fiberRoots.delete(listItem);
80
- this.tornDown.delete(listItem);
81
- });
82
- }
83
- });
84
- }
85
- }
86
- //# sourceMappingURL=base-item-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-item-renderer.js","sourceRoot":"","sources":["../../../src/nodes/internal/base-item-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { ReactNode } from "react";
3
- import type Reconciler from "react-reconciler";
4
- import { BaseItemRenderer } from "./base-item-renderer.js";
5
- import type { ListStore } from "./list-store.js";
6
- type GridRenderItemFn<T> = (item: T | null) => ReactNode;
7
- export declare class GridItemRenderer extends BaseItemRenderer<ListStore> {
8
- private renderFn;
9
- private boundItems;
10
- setRenderFn(renderFn: GridRenderItemFn<unknown> | null): void;
11
- rebindAllItems(): void;
12
- rebindItem(id: string): void;
13
- protected renderItem(_listItem: Gtk.ListItem): ReactNode;
14
- private getItemFromListItem;
15
- protected onSetup(listItem: Gtk.ListItem): Gtk.Widget;
16
- protected onBind(listItem: Gtk.ListItem, fiberRoot: Reconciler.FiberRoot): void;
17
- protected onUnbind(listItem: Gtk.ListItem): void;
18
- }
19
- export {};
20
- //# sourceMappingURL=grid-item-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-item-renderer.d.ts","sourceRoot":"","sources":["../../../src/nodes/internal/grid-item-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,UAAU,CAAmC;IAE9C,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI;IAK7D,cAAc,IAAI,IAAI;IAMtB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;cAahB,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS;IAIjE,OAAO,CAAC,mBAAmB;cAMR,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;cAM3C,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;cAkBrE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;CAM5D"}
@@ -1,66 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { reconciler } from "../../reconciler.js";
3
- import { BaseItemRenderer } from "./base-item-renderer.js";
4
- export class GridItemRenderer extends BaseItemRenderer {
5
- renderFn = () => null;
6
- boundItems = new Map();
7
- setRenderFn(renderFn) {
8
- this.renderFn = renderFn;
9
- this.rebindAllItems();
10
- }
11
- rebindAllItems() {
12
- for (const id of this.boundItems.keys()) {
13
- this.rebindItem(id);
14
- }
15
- }
16
- rebindItem(id) {
17
- const listItem = this.boundItems.get(id);
18
- if (!listItem)
19
- return;
20
- const fiberRoot = this.fiberRoots.get(listItem);
21
- if (!fiberRoot)
22
- return;
23
- const item = this.getStore().getItem(id);
24
- const element = this.renderFn?.(item);
25
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
26
- }
27
- renderItem(_listItem) {
28
- return this.renderFn?.(null);
29
- }
30
- getItemFromListItem(listItem) {
31
- const stringObject = listItem.getItem();
32
- if (!(stringObject instanceof Gtk.StringObject))
33
- return null;
34
- return stringObject.getString();
35
- }
36
- onSetup(listItem) {
37
- const box = this.createBox();
38
- listItem.setChild(box);
39
- return box;
40
- }
41
- onBind(listItem, fiberRoot) {
42
- const id = this.getItemFromListItem(listItem);
43
- if (id !== null) {
44
- this.boundItems.set(id, listItem);
45
- }
46
- const item = id !== null ? this.getStore().getItem(id) : null;
47
- const element = this.renderFn?.(item);
48
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => {
49
- if (this.tornDown.has(listItem))
50
- return;
51
- if (this.estimatedItemHeight !== null)
52
- return;
53
- const currentFiberRoot = this.fiberRoots.get(listItem);
54
- if (!currentFiberRoot)
55
- return;
56
- this.clearBoxSizeRequest(currentFiberRoot.containerInfo);
57
- });
58
- }
59
- onUnbind(listItem) {
60
- const id = this.getItemFromListItem(listItem);
61
- if (id !== null) {
62
- this.boundItems.delete(id);
63
- }
64
- }
65
- }
66
- //# sourceMappingURL=grid-item-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-item-renderer.js","sourceRoot":"","sources":["../../../src/nodes/internal/grid-item-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { ReactNode } from "react";
3
- import type Reconciler from "react-reconciler";
4
- import { BaseItemRenderer } from "./base-item-renderer.js";
5
- import type { TreeStore } from "./tree-store.js";
6
- type RenderItemFn<T> = (item: T | null, row: Gtk.TreeListRow | null) => ReactNode;
7
- export declare class ListItemRenderer extends BaseItemRenderer<TreeStore> {
8
- private expanders;
9
- private setupComplete;
10
- private pendingBinds;
11
- private renderFn;
12
- private boundItems;
13
- setRenderFn(renderFn: RenderItemFn<unknown> | null): void;
14
- rebindAllItems(): void;
15
- rebindItem(id: string): void;
16
- dispose(): void;
17
- protected renderItem(_listItem: Gtk.ListItem): ReactNode;
18
- protected onSetup(listItem: Gtk.ListItem): Gtk.Widget;
19
- protected onSetupComplete(listItem: Gtk.ListItem): void;
20
- protected onBind(listItem: Gtk.ListItem, fiberRoot: Reconciler.FiberRoot): void;
21
- protected onUnbind(listItem: Gtk.ListItem): void;
22
- protected onTeardown(listItem: Gtk.ListItem): void;
23
- private processPendingBind;
24
- private renderBind;
25
- }
26
- export {};
27
- //# sourceMappingURL=list-item-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-item-renderer.d.ts","sourceRoot":"","sources":["../../../src/nodes/internal/list-item-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,KAAK,SAAS,CAAC;AAQlF,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAC7D,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,UAAU,CAA+E;IAE1F,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI;IAKzD,cAAc,IAAI,IAAI;IAMtB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAanB,OAAO,IAAI,IAAI;cAQZ,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS;cAI9C,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;cAS3C,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;cAK7C,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;cAuBrE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;cActC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI;IAM3D,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;CAmCrB"}
@@ -1,131 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { reconciler } from "../../reconciler.js";
3
- import { BaseItemRenderer } from "./base-item-renderer.js";
4
- export class ListItemRenderer extends BaseItemRenderer {
5
- expanders = new Map();
6
- setupComplete = new Set();
7
- pendingBinds = new Map();
8
- renderFn = () => null;
9
- boundItems = new Map();
10
- setRenderFn(renderFn) {
11
- this.renderFn = renderFn;
12
- this.rebindAllItems();
13
- }
14
- rebindAllItems() {
15
- for (const id of this.boundItems.keys()) {
16
- this.rebindItem(id);
17
- }
18
- }
19
- rebindItem(id) {
20
- const binding = this.boundItems.get(id);
21
- if (!binding)
22
- return;
23
- const fiberRoot = this.fiberRoots.get(binding.listItem);
24
- if (!fiberRoot)
25
- return;
26
- const expander = this.expanders.get(binding.listItem);
27
- if (!expander)
28
- return;
29
- this.renderBind(binding.listItem, expander, binding.treeListRow, id, fiberRoot);
30
- }
31
- dispose() {
32
- super.dispose();
33
- this.expanders.clear();
34
- this.setupComplete.clear();
35
- this.pendingBinds.clear();
36
- this.boundItems.clear();
37
- }
38
- renderItem(_listItem) {
39
- return this.renderFn?.(null, null);
40
- }
41
- onSetup(listItem) {
42
- const expander = new Gtk.TreeExpander();
43
- const box = this.createBox();
44
- expander.setChild(box);
45
- listItem.setChild(expander);
46
- this.expanders.set(listItem, expander);
47
- return box;
48
- }
49
- onSetupComplete(listItem) {
50
- this.setupComplete.add(listItem);
51
- this.processPendingBind(listItem);
52
- }
53
- onBind(listItem, fiberRoot) {
54
- const expander = this.expanders.get(listItem);
55
- if (!expander)
56
- return;
57
- const treeListRow = listItem.getItem();
58
- if (!(treeListRow instanceof Gtk.TreeListRow))
59
- return;
60
- expander.setListRow(treeListRow);
61
- const stringObject = treeListRow.getItem();
62
- if (!(stringObject instanceof Gtk.StringObject))
63
- return;
64
- const id = stringObject.getString();
65
- this.boundItems.set(id, { listItem, treeListRow });
66
- if (!this.setupComplete.has(listItem)) {
67
- this.pendingBinds.set(listItem, { treeListRow, expander, id });
68
- return;
69
- }
70
- this.renderBind(listItem, expander, treeListRow, id, fiberRoot);
71
- }
72
- onUnbind(listItem) {
73
- const expander = listItem.getChild();
74
- if (expander instanceof Gtk.TreeExpander) {
75
- expander.setListRow(null);
76
- const treeListRow = listItem.getItem();
77
- if (treeListRow instanceof Gtk.TreeListRow) {
78
- const stringObject = treeListRow.getItem();
79
- if (stringObject instanceof Gtk.StringObject) {
80
- this.boundItems.delete(stringObject.getString());
81
- }
82
- }
83
- }
84
- }
85
- onTeardown(listItem) {
86
- this.expanders.delete(listItem);
87
- this.setupComplete.delete(listItem);
88
- this.pendingBinds.delete(listItem);
89
- }
90
- processPendingBind(listItem) {
91
- const pending = this.pendingBinds.get(listItem);
92
- if (!pending)
93
- return;
94
- this.pendingBinds.delete(listItem);
95
- const fiberRoot = this.fiberRoots.get(listItem);
96
- if (fiberRoot) {
97
- this.renderBind(listItem, pending.expander, pending.treeListRow, pending.id, fiberRoot);
98
- }
99
- }
100
- renderBind(listItem, expander, treeListRow, id, fiberRoot) {
101
- const itemData = this.getStore().getItem(id);
102
- if (itemData) {
103
- expander.setIndentForDepth(itemData.indentForDepth ?? true);
104
- expander.setHideExpander(itemData.hideExpander ?? false);
105
- if (itemData.indentForIcon !== undefined) {
106
- expander.setIndentForIcon(itemData.indentForIcon);
107
- }
108
- else {
109
- expander.setIndentForIcon(treeListRow.isExpandable());
110
- }
111
- }
112
- else {
113
- expander.setIndentForIcon(treeListRow.isExpandable());
114
- }
115
- const element = this.renderFn?.(itemData?.value ?? null, treeListRow);
116
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => {
117
- if (this.tornDown.has(listItem))
118
- return;
119
- if (this.estimatedItemHeight !== null)
120
- return;
121
- const currentExpander = this.expanders.get(listItem);
122
- if (!currentExpander)
123
- return;
124
- const box = currentExpander.getChild();
125
- if (box) {
126
- this.clearBoxSizeRequest(box);
127
- }
128
- });
129
- }
130
- }
131
- //# sourceMappingURL=list-item-renderer.js.map