@gtkx/react 0.19.0 → 0.21.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 (289) hide show
  1. package/README.md +26 -62
  2. package/dist/components/compound.d.ts +40 -0
  3. package/dist/components/compound.d.ts.map +1 -0
  4. package/dist/components/compound.js +46 -0
  5. package/dist/components/compound.js.map +1 -0
  6. package/dist/components/list.d.ts +75 -0
  7. package/dist/components/list.d.ts.map +1 -0
  8. package/dist/components/list.js +81 -0
  9. package/dist/components/list.js.map +1 -0
  10. package/dist/components/slot-widget.d.ts +15 -0
  11. package/dist/components/slot-widget.d.ts.map +1 -0
  12. package/dist/components/slot-widget.js +37 -0
  13. package/dist/components/slot-widget.js.map +1 -0
  14. package/dist/errors.d.ts +6 -0
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +8 -6
  17. package/dist/errors.js.map +1 -1
  18. package/dist/generated/compounds.d.ts +2672 -0
  19. package/dist/generated/compounds.d.ts.map +1 -0
  20. package/dist/generated/compounds.js +2624 -0
  21. package/dist/generated/compounds.js.map +1 -0
  22. package/dist/generated/internal.d.ts +6 -7
  23. package/dist/generated/internal.d.ts.map +1 -1
  24. package/dist/generated/internal.js +3054 -1838
  25. package/dist/generated/internal.js.map +1 -1
  26. package/dist/generated/jsx.d.ts +2096 -4970
  27. package/dist/generated/jsx.d.ts.map +1 -1
  28. package/dist/generated/jsx.js +979 -3862
  29. package/dist/generated/jsx.js.map +1 -1
  30. package/dist/generated/registry.d.ts +1 -0
  31. package/dist/generated/registry.d.ts.map +1 -1
  32. package/dist/generated/registry.js +0 -1
  33. package/dist/generated/registry.js.map +1 -1
  34. package/dist/host-config.d.ts.map +1 -1
  35. package/dist/host-config.js +2 -0
  36. package/dist/host-config.js.map +1 -1
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/jsx.d.ts +157 -518
  42. package/dist/jsx.d.ts.map +1 -1
  43. package/dist/jsx.js +6 -393
  44. package/dist/jsx.js.map +1 -1
  45. package/dist/metadata.d.ts +1 -1
  46. package/dist/metadata.d.ts.map +1 -1
  47. package/dist/metadata.js +7 -3
  48. package/dist/metadata.js.map +1 -1
  49. package/dist/node.d.ts +0 -4
  50. package/dist/node.d.ts.map +1 -1
  51. package/dist/node.js +19 -41
  52. package/dist/node.js.map +1 -1
  53. package/dist/nodes/alert-dialog.d.ts +14 -0
  54. package/dist/nodes/alert-dialog.d.ts.map +1 -0
  55. package/dist/nodes/alert-dialog.js +41 -0
  56. package/dist/nodes/alert-dialog.js.map +1 -0
  57. package/dist/nodes/animation.d.ts +5 -4
  58. package/dist/nodes/animation.d.ts.map +1 -1
  59. package/dist/nodes/animation.js +65 -49
  60. package/dist/nodes/animation.js.map +1 -1
  61. package/dist/nodes/application.d.ts.map +1 -1
  62. package/dist/nodes/application.js +4 -0
  63. package/dist/nodes/application.js.map +1 -1
  64. package/dist/nodes/column-view-column.d.ts +19 -19
  65. package/dist/nodes/column-view-column.d.ts.map +1 -1
  66. package/dist/nodes/column-view-column.js +130 -119
  67. package/dist/nodes/column-view-column.js.map +1 -1
  68. package/dist/nodes/container-slot.d.ts +3 -1
  69. package/dist/nodes/container-slot.d.ts.map +1 -1
  70. package/dist/nodes/container-slot.js +28 -16
  71. package/dist/nodes/container-slot.js.map +1 -1
  72. package/dist/nodes/drawing-area.d.ts +3 -1
  73. package/dist/nodes/drawing-area.d.ts.map +1 -1
  74. package/dist/nodes/drawing-area.js +20 -22
  75. package/dist/nodes/drawing-area.js.map +1 -1
  76. package/dist/nodes/event-controller.d.ts.map +1 -1
  77. package/dist/nodes/event-controller.js +6 -16
  78. package/dist/nodes/event-controller.js.map +1 -1
  79. package/dist/nodes/fixed-child.d.ts +1 -0
  80. package/dist/nodes/fixed-child.d.ts.map +1 -1
  81. package/dist/nodes/fixed-child.js +13 -0
  82. package/dist/nodes/fixed-child.js.map +1 -1
  83. package/dist/nodes/grid-child.d.ts +1 -0
  84. package/dist/nodes/grid-child.d.ts.map +1 -1
  85. package/dist/nodes/grid-child.js +13 -0
  86. package/dist/nodes/grid-child.js.map +1 -1
  87. package/dist/nodes/internal/accessible.d.ts.map +1 -1
  88. package/dist/nodes/internal/accessible.js.map +1 -1
  89. package/dist/nodes/internal/bound-item.d.ts +4 -0
  90. package/dist/nodes/internal/bound-item.d.ts.map +1 -0
  91. package/dist/nodes/internal/bound-item.js +2 -0
  92. package/dist/nodes/internal/bound-item.js.map +1 -0
  93. package/dist/nodes/internal/construct.d.ts +1 -8
  94. package/dist/nodes/internal/construct.d.ts.map +1 -1
  95. package/dist/nodes/internal/construct.js +30 -54
  96. package/dist/nodes/internal/construct.js.map +1 -1
  97. package/dist/nodes/internal/widget.d.ts.map +1 -1
  98. package/dist/nodes/internal/widget.js +9 -10
  99. package/dist/nodes/internal/widget.js.map +1 -1
  100. package/dist/nodes/list-item-node.d.ts +12 -0
  101. package/dist/nodes/list-item-node.d.ts.map +1 -0
  102. package/dist/nodes/list-item-node.js +45 -0
  103. package/dist/nodes/list-item-node.js.map +1 -0
  104. package/dist/nodes/list.d.ts +100 -0
  105. package/dist/nodes/list.d.ts.map +1 -0
  106. package/dist/nodes/list.js +950 -0
  107. package/dist/nodes/list.js.map +1 -0
  108. package/dist/nodes/notebook-page.d.ts.map +1 -1
  109. package/dist/nodes/notebook-page.js +6 -2
  110. package/dist/nodes/notebook-page.js.map +1 -1
  111. package/dist/nodes/overlay-child.d.ts +2 -0
  112. package/dist/nodes/overlay-child.d.ts.map +1 -1
  113. package/dist/nodes/overlay-child.js +29 -8
  114. package/dist/nodes/overlay-child.js.map +1 -1
  115. package/dist/nodes/spin-row.d.ts +14 -0
  116. package/dist/nodes/spin-row.d.ts.map +1 -0
  117. package/dist/nodes/spin-row.js +46 -0
  118. package/dist/nodes/spin-row.js.map +1 -0
  119. package/dist/nodes/switch-row.d.ts +11 -0
  120. package/dist/nodes/switch-row.d.ts.map +1 -0
  121. package/dist/nodes/switch-row.js +15 -0
  122. package/dist/nodes/switch-row.js.map +1 -0
  123. package/dist/nodes/text-anchor.d.ts.map +1 -1
  124. package/dist/nodes/text-anchor.js +10 -0
  125. package/dist/nodes/text-anchor.js.map +1 -1
  126. package/dist/nodes/text-tag.d.ts.map +1 -1
  127. package/dist/nodes/text-tag.js +45 -39
  128. package/dist/nodes/text-tag.js.map +1 -1
  129. package/dist/nodes/toggle-group.d.ts +12 -6
  130. package/dist/nodes/toggle-group.d.ts.map +1 -1
  131. package/dist/nodes/toggle-group.js +53 -4
  132. package/dist/nodes/toggle-group.js.map +1 -1
  133. package/dist/nodes/widget.d.ts.map +1 -1
  134. package/dist/nodes/widget.js +16 -22
  135. package/dist/nodes/widget.js.map +1 -1
  136. package/dist/nodes/window.d.ts.map +1 -1
  137. package/dist/nodes/window.js +2 -2
  138. package/dist/nodes/window.js.map +1 -1
  139. package/dist/registry.d.ts +0 -2
  140. package/dist/registry.d.ts.map +1 -1
  141. package/dist/registry.js +11 -18
  142. package/dist/registry.js.map +1 -1
  143. package/dist/types.d.ts +3 -2
  144. package/dist/types.d.ts.map +1 -1
  145. package/dist/use-property.d.ts +29 -0
  146. package/dist/use-property.d.ts.map +1 -0
  147. package/dist/use-property.js +44 -0
  148. package/dist/use-property.js.map +1 -0
  149. package/dist/use-setting.d.ts +36 -0
  150. package/dist/use-setting.d.ts.map +1 -0
  151. package/dist/use-setting.js +68 -0
  152. package/dist/use-setting.js.map +1 -0
  153. package/package.json +5 -4
  154. package/src/components/compound.tsx +57 -0
  155. package/src/components/list.tsx +140 -0
  156. package/src/components/slot-widget.tsx +46 -0
  157. package/src/errors.ts +8 -7
  158. package/src/generated/compounds.ts +2741 -0
  159. package/src/generated/internal.ts +3059 -1840
  160. package/src/generated/jsx.ts +2509 -5350
  161. package/src/generated/registry.ts +2 -1
  162. package/src/host-config.ts +2 -0
  163. package/src/index.ts +2 -0
  164. package/src/jsx.ts +167 -581
  165. package/src/metadata.ts +7 -4
  166. package/src/node.ts +23 -39
  167. package/src/nodes/alert-dialog.ts +55 -0
  168. package/src/nodes/animation.ts +67 -60
  169. package/src/nodes/application.ts +5 -0
  170. package/src/nodes/column-view-column.ts +125 -128
  171. package/src/nodes/container-slot.ts +30 -17
  172. package/src/nodes/drawing-area.ts +23 -32
  173. package/src/nodes/event-controller.ts +6 -18
  174. package/src/nodes/fixed-child.ts +13 -0
  175. package/src/nodes/grid-child.ts +13 -0
  176. package/src/nodes/internal/accessible.ts +0 -1
  177. package/src/nodes/internal/bound-item.ts +4 -0
  178. package/src/nodes/internal/construct.ts +38 -68
  179. package/src/nodes/internal/widget.ts +9 -13
  180. package/src/nodes/list-item-node.ts +53 -0
  181. package/src/nodes/list.ts +1082 -0
  182. package/src/nodes/notebook-page.ts +6 -2
  183. package/src/nodes/overlay-child.ts +30 -9
  184. package/src/nodes/spin-row.ts +72 -0
  185. package/src/nodes/switch-row.ts +26 -0
  186. package/src/nodes/text-anchor.ts +9 -0
  187. package/src/nodes/text-tag.ts +45 -40
  188. package/src/nodes/toggle-group.ts +63 -9
  189. package/src/nodes/widget.ts +14 -26
  190. package/src/nodes/window.ts +2 -2
  191. package/src/registry.ts +18 -24
  192. package/src/types.ts +8 -2
  193. package/src/use-property.ts +58 -0
  194. package/src/use-setting.ts +96 -0
  195. package/dist/fiber-root.d.ts +0 -4
  196. package/dist/fiber-root.d.ts.map +0 -1
  197. package/dist/fiber-root.js +0 -6
  198. package/dist/fiber-root.js.map +0 -1
  199. package/dist/nodes/column-view.d.ts +0 -37
  200. package/dist/nodes/column-view.d.ts.map +0 -1
  201. package/dist/nodes/column-view.js +0 -205
  202. package/dist/nodes/column-view.js.map +0 -1
  203. package/dist/nodes/drop-down.d.ts +0 -37
  204. package/dist/nodes/drop-down.d.ts.map +0 -1
  205. package/dist/nodes/drop-down.js +0 -231
  206. package/dist/nodes/drop-down.js.map +0 -1
  207. package/dist/nodes/grid-view.d.ts +0 -30
  208. package/dist/nodes/grid-view.d.ts.map +0 -1
  209. package/dist/nodes/grid-view.js +0 -90
  210. package/dist/nodes/grid-view.js.map +0 -1
  211. package/dist/nodes/internal/base-item-renderer.d.ts +0 -28
  212. package/dist/nodes/internal/base-item-renderer.d.ts.map +0 -1
  213. package/dist/nodes/internal/base-item-renderer.js +0 -85
  214. package/dist/nodes/internal/base-item-renderer.js.map +0 -1
  215. package/dist/nodes/internal/grid-item-renderer.d.ts +0 -20
  216. package/dist/nodes/internal/grid-item-renderer.d.ts.map +0 -1
  217. package/dist/nodes/internal/grid-item-renderer.js +0 -66
  218. package/dist/nodes/internal/grid-item-renderer.js.map +0 -1
  219. package/dist/nodes/internal/header-item-renderer.d.ts +0 -23
  220. package/dist/nodes/internal/header-item-renderer.d.ts.map +0 -1
  221. package/dist/nodes/internal/header-item-renderer.js +0 -87
  222. package/dist/nodes/internal/header-item-renderer.js.map +0 -1
  223. package/dist/nodes/internal/header-renderer-manager.d.ts +0 -13
  224. package/dist/nodes/internal/header-renderer-manager.d.ts.map +0 -1
  225. package/dist/nodes/internal/header-renderer-manager.js +0 -20
  226. package/dist/nodes/internal/header-renderer-manager.js.map +0 -1
  227. package/dist/nodes/internal/list-item-renderer.d.ts +0 -27
  228. package/dist/nodes/internal/list-item-renderer.d.ts.map +0 -1
  229. package/dist/nodes/internal/list-item-renderer.js +0 -131
  230. package/dist/nodes/internal/list-item-renderer.js.map +0 -1
  231. package/dist/nodes/internal/list-store.d.ts +0 -21
  232. package/dist/nodes/internal/list-store.d.ts.map +0 -1
  233. package/dist/nodes/internal/list-store.js +0 -90
  234. package/dist/nodes/internal/list-store.js.map +0 -1
  235. package/dist/nodes/internal/sectioned-list-store.d.ts +0 -50
  236. package/dist/nodes/internal/sectioned-list-store.d.ts.map +0 -1
  237. package/dist/nodes/internal/sectioned-list-store.js +0 -250
  238. package/dist/nodes/internal/sectioned-list-store.js.map +0 -1
  239. package/dist/nodes/internal/selection-helpers.d.ts +0 -12
  240. package/dist/nodes/internal/selection-helpers.d.ts.map +0 -1
  241. package/dist/nodes/internal/selection-helpers.js +0 -25
  242. package/dist/nodes/internal/selection-helpers.js.map +0 -1
  243. package/dist/nodes/internal/selection-model-controller.d.ts +0 -26
  244. package/dist/nodes/internal/selection-model-controller.d.ts.map +0 -1
  245. package/dist/nodes/internal/selection-model-controller.js +0 -82
  246. package/dist/nodes/internal/selection-model-controller.js.map +0 -1
  247. package/dist/nodes/internal/simple-list-store.d.ts +0 -15
  248. package/dist/nodes/internal/simple-list-store.d.ts.map +0 -1
  249. package/dist/nodes/internal/simple-list-store.js +0 -110
  250. package/dist/nodes/internal/simple-list-store.js.map +0 -1
  251. package/dist/nodes/internal/tree-store.d.ts +0 -37
  252. package/dist/nodes/internal/tree-store.d.ts.map +0 -1
  253. package/dist/nodes/internal/tree-store.js +0 -253
  254. package/dist/nodes/internal/tree-store.js.map +0 -1
  255. package/dist/nodes/list-item.d.ts +0 -24
  256. package/dist/nodes/list-item.d.ts.map +0 -1
  257. package/dist/nodes/list-item.js +0 -83
  258. package/dist/nodes/list-item.js.map +0 -1
  259. package/dist/nodes/list-section.d.ts +0 -27
  260. package/dist/nodes/list-section.d.ts.map +0 -1
  261. package/dist/nodes/list-section.js +0 -43
  262. package/dist/nodes/list-section.js.map +0 -1
  263. package/dist/nodes/list-view.d.ts +0 -32
  264. package/dist/nodes/list-view.d.ts.map +0 -1
  265. package/dist/nodes/list-view.js +0 -123
  266. package/dist/nodes/list-view.js.map +0 -1
  267. package/dist/nodes/models/list.d.ts +0 -39
  268. package/dist/nodes/models/list.d.ts.map +0 -1
  269. package/dist/nodes/models/list.js +0 -207
  270. package/dist/nodes/models/list.js.map +0 -1
  271. package/src/fiber-root.ts +0 -20
  272. package/src/nodes/column-view.ts +0 -262
  273. package/src/nodes/drop-down.ts +0 -284
  274. package/src/nodes/grid-view.ts +0 -119
  275. package/src/nodes/internal/base-item-renderer.ts +0 -107
  276. package/src/nodes/internal/grid-item-renderer.ts +0 -78
  277. package/src/nodes/internal/header-item-renderer.ts +0 -105
  278. package/src/nodes/internal/header-renderer-manager.ts +0 -33
  279. package/src/nodes/internal/list-item-renderer.ts +0 -162
  280. package/src/nodes/internal/list-store.ts +0 -107
  281. package/src/nodes/internal/sectioned-list-store.ts +0 -287
  282. package/src/nodes/internal/selection-helpers.ts +0 -35
  283. package/src/nodes/internal/selection-model-controller.ts +0 -119
  284. package/src/nodes/internal/simple-list-store.ts +0 -116
  285. package/src/nodes/internal/tree-store.ts +0 -289
  286. package/src/nodes/list-item.ts +0 -107
  287. package/src/nodes/list-section.ts +0 -64
  288. package/src/nodes/list-view.ts +0 -164
  289. package/src/nodes/models/list.ts +0 -250
@@ -1,231 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { createFiberRoot } from "../fiber-root.js";
3
- import { reconciler } from "../reconciler.js";
4
- import { ContainerSlotNode } from "./container-slot.js";
5
- import { EventControllerNode } from "./event-controller.js";
6
- import { updateHeaderRenderer } from "./internal/header-renderer-manager.js";
7
- import { filterProps, hasChanged } from "./internal/props.js";
8
- import { SimpleListStore } from "./internal/simple-list-store.js";
9
- import { ListItemNode } from "./list-item.js";
10
- import { ListSectionNode } from "./list-section.js";
11
- import { SlotNode } from "./slot.js";
12
- import { WidgetNode } from "./widget.js";
13
- const OWN_PROPS = ["selectedId", "onSelectionChanged", "renderItem", "renderListItem", "renderHeader"];
14
- export class DropDownNode extends WidgetNode {
15
- store = new SimpleListStore();
16
- initialSelectedId;
17
- itemState = null;
18
- renderItemFn = null;
19
- listItemState = null;
20
- renderListItemFn = null;
21
- headerRenderer = null;
22
- isValidChild(child) {
23
- return (child instanceof ListItemNode ||
24
- child instanceof ListSectionNode ||
25
- child instanceof EventControllerNode ||
26
- child instanceof SlotNode ||
27
- child instanceof ContainerSlotNode);
28
- }
29
- constructor(typeName, props, container, rootContainer) {
30
- super(typeName, props, container, rootContainer);
31
- this.store.beginBatch();
32
- this.initialSelectedId = props.selectedId;
33
- }
34
- finalizeInitialChildren(props) {
35
- super.finalizeInitialChildren(props);
36
- this.store.flushBatch();
37
- this.container.setModel(this.store.getModel());
38
- this.reapplyInitialSelectedId();
39
- return false;
40
- }
41
- reapplyInitialSelectedId() {
42
- if (this.initialSelectedId == null)
43
- return;
44
- const index = this.store.getIndexById(this.initialSelectedId);
45
- this.initialSelectedId = undefined;
46
- if (index !== null) {
47
- this.container.setSelected(index);
48
- }
49
- }
50
- appendChild(child) {
51
- super.appendChild(child);
52
- if (child instanceof ListSectionNode) {
53
- this.store.addSection(child.props.id, child.props.value);
54
- child.setStore(this.store);
55
- }
56
- else if (child instanceof ListItemNode) {
57
- child.setStore(this.store);
58
- this.store.addItem(child.props.id, child.props.value);
59
- }
60
- }
61
- insertBefore(child, before) {
62
- super.insertBefore(child, before);
63
- if (child instanceof ListSectionNode) {
64
- this.store.addSection(child.props.id, child.props.value);
65
- child.setStore(this.store);
66
- }
67
- else if (child instanceof ListItemNode && before instanceof ListItemNode) {
68
- child.setStore(this.store);
69
- this.store.insertItemBefore(child.props.id, before.props.id, child.props.value);
70
- }
71
- else if (child instanceof ListItemNode) {
72
- child.setStore(this.store);
73
- this.store.addItem(child.props.id, child.props.value);
74
- }
75
- }
76
- removeChild(child) {
77
- if (child instanceof ListSectionNode) {
78
- this.store.removeSection(child.props.id);
79
- child.setStore(null);
80
- }
81
- else if (child instanceof ListItemNode) {
82
- this.store.removeItem(child.props.id);
83
- child.setStore(null);
84
- }
85
- super.removeChild(child);
86
- }
87
- commitUpdate(oldProps, newProps) {
88
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
89
- this.applyOwnProps(oldProps, newProps);
90
- }
91
- detachDeletedInstance() {
92
- this.disposeFactory(this.itemState);
93
- this.itemState = null;
94
- this.disposeFactory(this.listItemState);
95
- this.listItemState = null;
96
- this.headerRenderer?.dispose();
97
- super.detachDeletedInstance();
98
- }
99
- applyOwnProps(oldProps, newProps) {
100
- if (hasChanged(oldProps, newProps, "onSelectionChanged")) {
101
- const onSelectionChanged = newProps.onSelectionChanged;
102
- const handleSelectionChange = onSelectionChanged
103
- ? () => {
104
- const selectedIndex = this.container.getSelected();
105
- const id = this.store.getIdAtIndex(selectedIndex);
106
- if (id !== null) {
107
- onSelectionChanged(id);
108
- }
109
- }
110
- : undefined;
111
- this.signalStore.set(this, this.container, "notify::selected", handleSelectionChange);
112
- }
113
- if (hasChanged(oldProps, newProps, "selectedId")) {
114
- const index = newProps.selectedId != null ? this.store.getIndexById(newProps.selectedId) : null;
115
- if (index !== null) {
116
- this.container.setSelected(index);
117
- }
118
- }
119
- if (hasChanged(oldProps, newProps, "renderItem")) {
120
- if (newProps.renderItem) {
121
- if (!this.itemState) {
122
- this.itemState = this.createFactory(() => this.renderItemFn, (f) => this.container.setFactory(f));
123
- }
124
- this.renderItemFn = newProps.renderItem;
125
- this.rebindAll(this.itemState, this.renderItemFn);
126
- }
127
- else if (this.itemState) {
128
- this.disposeFactory(this.itemState);
129
- this.itemState = null;
130
- this.container.setFactory(null);
131
- this.renderItemFn = null;
132
- }
133
- }
134
- if (hasChanged(oldProps, newProps, "renderListItem")) {
135
- if (newProps.renderListItem) {
136
- if (!this.listItemState) {
137
- this.listItemState = this.createFactory(() => this.renderListItemFn, (f) => this.container.setListFactory(f));
138
- }
139
- this.renderListItemFn = newProps.renderListItem;
140
- this.rebindAll(this.listItemState, this.renderListItemFn);
141
- }
142
- else if (this.listItemState) {
143
- this.disposeFactory(this.listItemState);
144
- this.listItemState = null;
145
- this.container.setListFactory(null);
146
- this.renderListItemFn = null;
147
- }
148
- }
149
- if (hasChanged(oldProps, newProps, "renderHeader")) {
150
- this.headerRenderer = updateHeaderRenderer(this.headerRenderer, {
151
- signalStore: this.signalStore,
152
- isEnabled: () => this.store.isSectioned(),
153
- resolveItem: (label) => this.store.getHeaderValueByLabel(label),
154
- setFactory: (factory) => this.container.setHeaderFactory(factory),
155
- }, newProps.renderHeader);
156
- }
157
- }
158
- createFactory(getRenderFn, applyFactory) {
159
- const state = {
160
- factory: new Gtk.SignalListItemFactory(),
161
- fiberRoots: new Map(),
162
- tornDown: new Set(),
163
- boundLabels: new Map(),
164
- };
165
- this.signalStore.set(this, state.factory, "setup", (listItem) => {
166
- const box = new Gtk.Box(Gtk.Orientation.HORIZONTAL);
167
- box.setValign(Gtk.Align.CENTER);
168
- listItem.setChild(box);
169
- const fiberRoot = createFiberRoot(box);
170
- state.fiberRoots.set(listItem, fiberRoot);
171
- const element = getRenderFn()?.(null);
172
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
173
- });
174
- this.signalStore.set(this, state.factory, "bind", (listItem) => {
175
- const fiberRoot = state.fiberRoots.get(listItem);
176
- if (!fiberRoot)
177
- return;
178
- const stringObject = listItem.getItem();
179
- const label = stringObject instanceof Gtk.StringObject ? stringObject.getString() : null;
180
- if (label !== null)
181
- state.boundLabels.set(label, listItem);
182
- const element = getRenderFn()?.(label);
183
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
184
- });
185
- this.signalStore.set(this, state.factory, "unbind", (listItem) => {
186
- const stringObject = listItem.getItem();
187
- if (stringObject instanceof Gtk.StringObject) {
188
- state.boundLabels.delete(stringObject.getString());
189
- }
190
- });
191
- this.signalStore.set(this, state.factory, "teardown", (listItem) => {
192
- const fiberRoot = state.fiberRoots.get(listItem);
193
- if (fiberRoot) {
194
- state.tornDown.add(listItem);
195
- reconciler.getInstance().updateContainer(null, fiberRoot, null, () => { });
196
- queueMicrotask(() => {
197
- state.fiberRoots.delete(listItem);
198
- state.tornDown.delete(listItem);
199
- });
200
- }
201
- });
202
- applyFactory(state.factory);
203
- return state;
204
- }
205
- rebindAll(state, renderFn) {
206
- for (const [label, listItem] of state.boundLabels) {
207
- const fiberRoot = state.fiberRoots.get(listItem);
208
- if (!fiberRoot)
209
- continue;
210
- const element = renderFn(label);
211
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
212
- }
213
- }
214
- disposeFactory(state) {
215
- if (!state)
216
- return;
217
- this.signalStore.set(this, state.factory, "setup", undefined);
218
- this.signalStore.set(this, state.factory, "bind", undefined);
219
- this.signalStore.set(this, state.factory, "unbind", undefined);
220
- this.signalStore.set(this, state.factory, "teardown", undefined);
221
- for (const [listItem, fiberRoot] of state.fiberRoots) {
222
- if (!state.tornDown.has(listItem)) {
223
- reconciler.getInstance().updateContainer(null, fiberRoot, null, () => { });
224
- }
225
- }
226
- state.fiberRoots.clear();
227
- state.tornDown.clear();
228
- state.boundLabels.clear();
229
- }
230
- }
231
- //# 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,30 +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 { ListSectionNode } from "./list-section.js";
9
- import { type ListModelProps } from "./models/list.js";
10
- import { SlotNode } from "./slot.js";
11
- import { WidgetNode } from "./widget.js";
12
- declare const RENDERER_PROPS: readonly ["renderItem", "estimatedItemHeight"];
13
- type GridViewProps = Pick<GtkGridViewProps, (typeof RENDERER_PROPS)[number]> & ListModelProps;
14
- type GridViewChild = ListItemNode | ListSectionNode | EventControllerNode | SlotNode | ContainerSlotNode;
15
- export declare class GridViewNode extends WidgetNode<Gtk.GridView, GridViewProps, GridViewChild> {
16
- private itemRenderer;
17
- private list;
18
- constructor(typeName: string, props: GridViewProps, container: Gtk.GridView, rootContainer: Container);
19
- isValidChild(child: Node): boolean;
20
- appendChild(child: GridViewChild): void;
21
- insertBefore(child: GridViewChild, before: GridViewChild): void;
22
- removeChild(child: GridViewChild): void;
23
- finalizeInitialChildren(props: GridViewProps): boolean;
24
- commitUpdate(oldProps: GridViewProps | null, newProps: GridViewProps): void;
25
- commitMount(): void;
26
- detachDeletedInstance(): void;
27
- private applyOwnProps;
28
- }
29
- export {};
30
- //# 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,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,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,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,CAAmB;IACvC,OAAO,CAAC,IAAI,CAAY;gBAEZ,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS;IAiBrF,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAWlC,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;IAK7C,OAAO,CAAC,aAAa;CAoBxB"}
@@ -1,90 +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 { ListSectionNode } from "./list-section.js";
7
- import { ListModel } from "./models/list.js";
8
- import { SlotNode } from "./slot.js";
9
- import { WidgetNode } from "./widget.js";
10
- const RENDERER_PROPS = ["renderItem", "estimatedItemHeight"];
11
- const OWN_PROPS = [...RENDERER_PROPS, "selectionMode", "selected", "onSelectionChanged"];
12
- export class GridViewNode extends WidgetNode {
13
- itemRenderer;
14
- list;
15
- constructor(typeName, props, container, rootContainer) {
16
- super(typeName, props, container, rootContainer);
17
- this.list = new ListModel({ owner: this, signalStore: this.signalStore }, {
18
- selectionMode: props.selectionMode,
19
- selected: props.selected,
20
- onSelectionChanged: props.onSelectionChanged,
21
- }, true);
22
- this.itemRenderer = new GridItemRenderer(this.signalStore);
23
- this.itemRenderer.setStore(this.list.getFlatStore());
24
- this.list.setOnItemUpdated((id) => this.itemRenderer.rebindItem(id));
25
- this.container.setFactory(this.itemRenderer.getFactory());
26
- }
27
- isValidChild(child) {
28
- if (child instanceof EventControllerNode || child instanceof SlotNode || child instanceof ContainerSlotNode)
29
- return true;
30
- if (child instanceof ListSectionNode)
31
- return true;
32
- if (!(child instanceof ListItemNode))
33
- return false;
34
- if (child.getChildNodes().length > 0) {
35
- throw new Error("GtkGridView does not support nested ListItems. Use GtkListView for tree lists.");
36
- }
37
- return true;
38
- }
39
- appendChild(child) {
40
- super.appendChild(child);
41
- if (child instanceof ListItemNode || child instanceof ListSectionNode) {
42
- this.list.appendChild(child);
43
- }
44
- }
45
- insertBefore(child, before) {
46
- super.insertBefore(child, before);
47
- if ((child instanceof ListItemNode || child instanceof ListSectionNode) &&
48
- (before instanceof ListItemNode || before instanceof ListSectionNode)) {
49
- this.list.insertBefore(child, before);
50
- }
51
- }
52
- removeChild(child) {
53
- if (child instanceof ListItemNode || child instanceof ListSectionNode) {
54
- this.list.removeChild(child);
55
- }
56
- super.removeChild(child);
57
- }
58
- finalizeInitialChildren(props) {
59
- super.finalizeInitialChildren(props);
60
- return true;
61
- }
62
- commitUpdate(oldProps, newProps) {
63
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
64
- this.applyOwnProps(oldProps, newProps);
65
- }
66
- commitMount() {
67
- super.commitMount();
68
- this.list.flushBatch();
69
- this.container.setModel(this.list.getSelectionModel());
70
- }
71
- detachDeletedInstance() {
72
- this.itemRenderer.dispose();
73
- super.detachDeletedInstance();
74
- }
75
- applyOwnProps(oldProps, newProps) {
76
- if (hasChanged(oldProps, newProps, "renderItem")) {
77
- this.itemRenderer.setRenderFn(newProps.renderItem ?? null);
78
- }
79
- if (hasChanged(oldProps, newProps, "estimatedItemHeight")) {
80
- this.itemRenderer.setEstimatedItemHeight(newProps.estimatedItemHeight ?? null);
81
- }
82
- const previousModel = this.list.getSelectionModel();
83
- this.list.updateProps(oldProps ? filterProps(oldProps, RENDERER_PROPS) : null, filterProps(newProps, RENDERER_PROPS));
84
- const currentModel = this.list.getSelectionModel();
85
- if (previousModel !== currentModel) {
86
- this.container.setModel(currentModel);
87
- }
88
- }
89
- }
90
- //# sourceMappingURL=grid-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-view.js","sourceRoot":"","sources":["../../src/nodes/grid-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;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,qBAAqB,CAAU,CAAC;AACtE,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,CAAU,CAAC;AAMlG,MAAM,OAAO,YAAa,SAAQ,UAAsD;IAC5E,YAAY,CAAmB;IAC/B,IAAI,CAAY;IAExB,YAAY,QAAgB,EAAE,KAAoB,EAAE,SAAuB,EAAE,aAAwB;QACjG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CACrB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAC9C;YACI,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;SAC/C,EACD,IAAI,CACP,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEe,YAAY,CAAC,KAAW;QACpC,IAAI,KAAK,YAAY,mBAAmB,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,YAAY,iBAAiB;YACvG,OAAO,IAAI,CAAC;QAChB,IAAI,KAAK,YAAY,eAAe;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,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,CAAC,OAAO,EAAE,CAAC;QAC5B,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,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC;QACnF,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,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;IAU9B,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI;IAMpD,OAAO,CAAC,iBAAiB;CAoC5B"}
@@ -1,85 +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
- if (this.estimatedItemHeight !== null) {
41
- box.setSizeRequest(-1, this.estimatedItemHeight);
42
- }
43
- return box;
44
- }
45
- clearBoxSizeRequest(box) {
46
- if (box instanceof Gtk.Box) {
47
- box.setSizeRequest(-1, -1);
48
- }
49
- }
50
- initializeFactory() {
51
- this.signalStore.set(this, this.factory, "setup", (listItem) => {
52
- const container = this.onSetup(listItem);
53
- const fiberRoot = createFiberRoot(container);
54
- this.fiberRoots.set(listItem, fiberRoot);
55
- const element = this.renderItem(listItem);
56
- reconciler.getInstance().updateContainer(element, fiberRoot, null, () => {
57
- if (this.tornDown.has(listItem))
58
- return;
59
- this.onSetupComplete(listItem);
60
- });
61
- });
62
- this.signalStore.set(this, this.factory, "bind", (listItem) => {
63
- const fiberRoot = this.fiberRoots.get(listItem);
64
- if (!fiberRoot)
65
- return;
66
- this.onBind(listItem, fiberRoot);
67
- });
68
- this.signalStore.set(this, this.factory, "unbind", (listItem) => {
69
- this.onUnbind(listItem);
70
- });
71
- this.signalStore.set(this, this.factory, "teardown", (listItem) => {
72
- const fiberRoot = this.fiberRoots.get(listItem);
73
- if (fiberRoot) {
74
- this.tornDown.add(listItem);
75
- this.onTeardown(listItem);
76
- reconciler.getInstance().updateContainer(null, fiberRoot, null, () => { });
77
- queueMicrotask(() => {
78
- this.fiberRoots.delete(listItem);
79
- this.tornDown.delete(listItem);
80
- });
81
- }
82
- });
83
- }
84
- }
85
- //# 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":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK3D,MAAM,OAAO,gBAAiB,SAAQ,gBAA2B;IACrD,QAAQ,GAAqC,GAAG,EAAE,CAAC,IAAI,CAAC;IACxD,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE9C,WAAW,CAAC,QAA0C;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEM,cAAc;QACjB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAEtC,UAAU,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAEkB,UAAU,CAAC,SAAuB;QACjD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,mBAAmB,CAAC,QAAsB;QAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,YAAY,YAAY,GAAG,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;IAEkB,OAAO,CAAC,QAAsB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;IAEkB,MAAM,CAAC,QAAsB,EAAE,SAA+B;QAC7E,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAEtC,UAAU,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;YACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACxC,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI;gBAAE,OAAO;YAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YAC9B,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAEkB,QAAQ,CAAC,QAAsB;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;CACJ"}
@@ -1,23 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { ReactNode } from "react";
3
- import type { SignalStore } from "./signal-store.js";
4
- type RenderHeaderFn = (item: unknown) => ReactNode;
5
- type ItemResolver = (id: string) => unknown;
6
- export declare class HeaderItemRenderer {
7
- private factory;
8
- private fiberRoots;
9
- private tornDown;
10
- private renderFn;
11
- private boundHeaders;
12
- private signalStore;
13
- private resolveItem;
14
- constructor(signalStore: SignalStore);
15
- getFactory(): Gtk.SignalListItemFactory;
16
- setResolveItem(resolver: ItemResolver | null): void;
17
- setRenderFn(renderFn: RenderHeaderFn | null): void;
18
- dispose(): void;
19
- private rebindAllHeaders;
20
- private initializeFactory;
21
- }
22
- export {};
23
- //# sourceMappingURL=header-item-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-item-renderer.d.ts","sourceRoot":"","sources":["../../../src/nodes/internal/header-item-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC;AAEnD,KAAK,YAAY,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;AAE5C,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAA6B;gBAEpC,WAAW,EAAE,WAAW;IAM7B,UAAU,IAAI,GAAG,CAAC,qBAAqB;IAIvC,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAInD,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAKlD,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;CAgD5B"}