@sectile/dom 0.6.0 → 0.8.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 (290) hide show
  1. package/README.md +3 -1
  2. package/dist/accordion.d.ts +0 -1
  3. package/dist/accordion.js +4 -1
  4. package/dist/accordion.js.map +1 -1
  5. package/dist/alert-dialog.d.ts +0 -1
  6. package/dist/calendar.d.ts +0 -1
  7. package/dist/calendar.js +4 -1
  8. package/dist/calendar.js.map +1 -1
  9. package/dist/carousel.d.ts +0 -1
  10. package/dist/carousel.js +5 -1
  11. package/dist/carousel.js.map +1 -1
  12. package/dist/cascade-list.d.ts +51 -0
  13. package/dist/cascade-list.js +166 -0
  14. package/dist/cascade-list.js.map +1 -0
  15. package/dist/cascade-select.d.ts +1 -2
  16. package/dist/cascade-select.js +20 -47
  17. package/dist/cascade-select.js.map +1 -1
  18. package/dist/checkbox-group.d.ts +0 -1
  19. package/dist/checkbox.d.ts +0 -1
  20. package/dist/color-picker.d.ts +0 -1
  21. package/dist/combobox.d.ts +0 -1
  22. package/dist/combobox.js +32 -2
  23. package/dist/combobox.js.map +1 -1
  24. package/dist/data-grid.d.ts +66 -0
  25. package/dist/data-grid.js +50 -0
  26. package/dist/data-grid.js.map +1 -0
  27. package/dist/data-table.d.ts +100 -0
  28. package/dist/data-table.js +359 -0
  29. package/dist/data-table.js.map +1 -0
  30. package/dist/data-tree-grid.d.ts +73 -0
  31. package/dist/data-tree-grid.js +53 -0
  32. package/dist/data-tree-grid.js.map +1 -0
  33. package/dist/date-field.d.ts +1 -2
  34. package/dist/date-field.js +17 -5
  35. package/dist/date-field.js.map +1 -1
  36. package/dist/date-picker.d.ts +3 -2
  37. package/dist/date-picker.js +13 -4
  38. package/dist/date-picker.js.map +1 -1
  39. package/dist/date-range-field.d.ts +0 -1
  40. package/dist/date-range-field.js +7 -2
  41. package/dist/date-range-field.js.map +1 -1
  42. package/dist/date-range-picker.d.ts +2 -2
  43. package/dist/date-range-picker.js +10 -5
  44. package/dist/date-range-picker.js.map +1 -1
  45. package/dist/date-time-field.d.ts +1 -2
  46. package/dist/date-time-field.js +15 -4
  47. package/dist/date-time-field.js.map +1 -1
  48. package/dist/date-time-picker.d.ts +2 -2
  49. package/dist/date-time-picker.js +23 -10
  50. package/dist/date-time-picker.js.map +1 -1
  51. package/dist/date-time-range-picker.d.ts +2 -2
  52. package/dist/date-time-range-picker.js +26 -12
  53. package/dist/date-time-range-picker.js.map +1 -1
  54. package/dist/dialog.d.ts +0 -1
  55. package/dist/disclosure.d.ts +0 -1
  56. package/dist/drawer.d.ts +0 -1
  57. package/dist/editable.d.ts +0 -1
  58. package/dist/feed.d.ts +0 -1
  59. package/dist/feed.js +4 -0
  60. package/dist/feed.js.map +1 -1
  61. package/dist/form.d.ts +51 -11
  62. package/dist/form.js +608 -58
  63. package/dist/form.js.map +1 -1
  64. package/dist/grid.d.ts +3 -3
  65. package/dist/grid.js +8 -4
  66. package/dist/grid.js.map +1 -1
  67. package/dist/index.d.ts +8 -30
  68. package/dist/index.js +4 -17
  69. package/dist/index.js.map +1 -1
  70. package/dist/interact-outside.d.ts +0 -1
  71. package/dist/internal/cascade-choice-binding.d.ts +34 -0
  72. package/dist/internal/cascade-choice-binding.js +112 -0
  73. package/dist/internal/cascade-choice-binding.js.map +1 -0
  74. package/dist/internal/checked-control.d.ts +4 -5
  75. package/dist/internal/checked-control.js +14 -27
  76. package/dist/internal/checked-control.js.map +1 -1
  77. package/dist/internal/controlled-field-input.d.ts +9 -0
  78. package/dist/internal/controlled-field-input.js +25 -0
  79. package/dist/internal/controlled-field-input.js.map +1 -0
  80. package/dist/internal/date-picker-cell.d.ts +0 -1
  81. package/dist/internal/delegated-event.d.ts +0 -1
  82. package/dist/internal/direction.d.ts +0 -1
  83. package/dist/internal/disabled-items.d.ts +0 -1
  84. package/dist/internal/disabled-items.js +2 -12
  85. package/dist/internal/disabled-items.js.map +1 -1
  86. package/dist/internal/exact-percentage.d.ts +2 -0
  87. package/dist/internal/exact-percentage.js +5 -0
  88. package/dist/internal/exact-percentage.js.map +1 -0
  89. package/dist/internal/interaction.d.ts +0 -1
  90. package/dist/internal/layer-binding.d.ts +0 -1
  91. package/dist/internal/layer-manager.d.ts +0 -1
  92. package/dist/internal/menu-control.d.ts +0 -1
  93. package/dist/internal/menu-control.js +48 -97
  94. package/dist/internal/menu-control.js.map +1 -1
  95. package/dist/internal/modal-effects.d.ts +0 -1
  96. package/dist/internal/picker-position.d.ts +7 -0
  97. package/dist/internal/picker-position.js +19 -0
  98. package/dist/internal/picker-position.js.map +1 -0
  99. package/dist/internal/popup-control.d.ts +2 -3
  100. package/dist/internal/popup-control.js +8 -10
  101. package/dist/internal/popup-control.js.map +1 -1
  102. package/dist/internal/position-connection.d.ts +22 -0
  103. package/dist/internal/position-connection.js +57 -0
  104. package/dist/internal/position-connection.js.map +1 -0
  105. package/dist/internal/positioning/engine.d.ts +65 -0
  106. package/dist/internal/positioning/engine.js +488 -0
  107. package/dist/internal/positioning/engine.js.map +1 -0
  108. package/dist/internal/reference-date.d.ts +0 -1
  109. package/dist/internal/result.d.ts +0 -3
  110. package/dist/internal/result.js.map +1 -1
  111. package/dist/internal/tabular-dom.d.ts +109 -0
  112. package/dist/internal/tabular-dom.js +316 -0
  113. package/dist/internal/tabular-dom.js.map +1 -0
  114. package/dist/internal/tabular-grid-dom.d.ts +151 -0
  115. package/dist/internal/tabular-grid-dom.js +524 -0
  116. package/dist/internal/tabular-grid-dom.js.map +1 -0
  117. package/dist/internal/text-element.d.ts +0 -1
  118. package/dist/listbox.d.ts +0 -1
  119. package/dist/listbox.js +5 -0
  120. package/dist/listbox.js.map +1 -1
  121. package/dist/menu-button.d.ts +0 -1
  122. package/dist/menu.d.ts +0 -1
  123. package/dist/menubar.d.ts +0 -1
  124. package/dist/meter-group.d.ts +39 -0
  125. package/dist/meter-group.js +182 -0
  126. package/dist/meter-group.js.map +1 -0
  127. package/dist/meter.d.ts +35 -0
  128. package/dist/meter.js +111 -0
  129. package/dist/meter.js.map +1 -0
  130. package/dist/month-picker.d.ts +0 -1
  131. package/dist/month-range-picker.d.ts +0 -1
  132. package/dist/multi-thumb-slider.d.ts +0 -1
  133. package/dist/navigation-menu.d.ts +0 -1
  134. package/dist/number-field.d.ts +0 -1
  135. package/dist/number-field.js +8 -1
  136. package/dist/number-field.js.map +1 -1
  137. package/dist/pagination.d.ts +0 -1
  138. package/dist/pin-input.d.ts +0 -1
  139. package/dist/pin-input.js +5 -3
  140. package/dist/pin-input.js.map +1 -1
  141. package/dist/popover.d.ts +6 -22
  142. package/dist/popover.js +6 -9
  143. package/dist/popover.js.map +1 -1
  144. package/dist/position.d.ts +19 -0
  145. package/dist/position.js +2 -0
  146. package/dist/position.js.map +1 -0
  147. package/dist/progress.d.ts +35 -0
  148. package/dist/progress.js +105 -0
  149. package/dist/progress.js.map +1 -0
  150. package/dist/quantity-field.d.ts +0 -1
  151. package/dist/quantity-field.js +12 -1
  152. package/dist/quantity-field.js.map +1 -1
  153. package/dist/radio-group.d.ts +0 -1
  154. package/dist/radio-group.js +13 -1
  155. package/dist/radio-group.js.map +1 -1
  156. package/dist/range-calendar.d.ts +0 -1
  157. package/dist/rating.d.ts +1 -2
  158. package/dist/rating.js +191 -27
  159. package/dist/rating.js.map +1 -1
  160. package/dist/reorder.d.ts +0 -1
  161. package/dist/select.d.ts +2 -15
  162. package/dist/select.js +7 -5
  163. package/dist/select.js.map +1 -1
  164. package/dist/slider.d.ts +0 -1
  165. package/dist/spin-button.d.ts +0 -1
  166. package/dist/stepper.d.ts +0 -1
  167. package/dist/switch.d.ts +0 -1
  168. package/dist/tabs.d.ts +0 -1
  169. package/dist/tabs.js +11 -2
  170. package/dist/tabs.js.map +1 -1
  171. package/dist/tabular.d.ts +3 -0
  172. package/dist/tabular.js +4 -0
  173. package/dist/tabular.js.map +1 -0
  174. package/dist/tags-input.d.ts +0 -1
  175. package/dist/tags-input.js +8 -4
  176. package/dist/tags-input.js.map +1 -1
  177. package/dist/text.d.ts +0 -1
  178. package/dist/time-field.d.ts +1 -2
  179. package/dist/time-field.js +11 -5
  180. package/dist/time-field.js.map +1 -1
  181. package/dist/time-range-field.d.ts +0 -1
  182. package/dist/time-range-field.js +3 -1
  183. package/dist/time-range-field.js.map +1 -1
  184. package/dist/timer.d.ts +0 -1
  185. package/dist/toast.d.ts +0 -1
  186. package/dist/toast.js +32 -5
  187. package/dist/toast.js.map +1 -1
  188. package/dist/toggle-button.d.ts +0 -1
  189. package/dist/toggle-group.d.ts +0 -1
  190. package/dist/toolbar.d.ts +0 -1
  191. package/dist/toolbar.js +4 -0
  192. package/dist/toolbar.js.map +1 -1
  193. package/dist/tooltip.d.ts +5 -23
  194. package/dist/tooltip.js +3 -6
  195. package/dist/tooltip.js.map +1 -1
  196. package/dist/tree-grid.d.ts +0 -1
  197. package/dist/tree-grid.js +14 -1
  198. package/dist/tree-grid.js.map +1 -1
  199. package/dist/tree-view.d.ts +0 -1
  200. package/dist/tree-view.js +4 -0
  201. package/dist/tree-view.js.map +1 -1
  202. package/dist/virtual.d.ts +2 -3
  203. package/dist/virtual.js +76 -28
  204. package/dist/virtual.js.map +1 -1
  205. package/dist/window-splitter.d.ts +0 -1
  206. package/dist/year-picker.d.ts +0 -1
  207. package/dist/year-range-picker.d.ts +0 -1
  208. package/package.json +135 -85
  209. package/dist/accordion.d.ts.map +0 -1
  210. package/dist/alert-dialog.d.ts.map +0 -1
  211. package/dist/calendar.d.ts.map +0 -1
  212. package/dist/carousel.d.ts.map +0 -1
  213. package/dist/cascade-select.d.ts.map +0 -1
  214. package/dist/checkbox-group.d.ts.map +0 -1
  215. package/dist/checkbox.d.ts.map +0 -1
  216. package/dist/color-picker.d.ts.map +0 -1
  217. package/dist/combobox.d.ts.map +0 -1
  218. package/dist/date-field.d.ts.map +0 -1
  219. package/dist/date-picker.d.ts.map +0 -1
  220. package/dist/date-range-field.d.ts.map +0 -1
  221. package/dist/date-range-picker.d.ts.map +0 -1
  222. package/dist/date-time-field.d.ts.map +0 -1
  223. package/dist/date-time-picker.d.ts.map +0 -1
  224. package/dist/date-time-range-picker.d.ts.map +0 -1
  225. package/dist/dialog.d.ts.map +0 -1
  226. package/dist/disclosure.d.ts.map +0 -1
  227. package/dist/drawer.d.ts.map +0 -1
  228. package/dist/editable.d.ts.map +0 -1
  229. package/dist/feed.d.ts.map +0 -1
  230. package/dist/form.d.ts.map +0 -1
  231. package/dist/grid.d.ts.map +0 -1
  232. package/dist/index.d.ts.map +0 -1
  233. package/dist/interact-outside.d.ts.map +0 -1
  234. package/dist/internal/checked-control.d.ts.map +0 -1
  235. package/dist/internal/date-picker-cell.d.ts.map +0 -1
  236. package/dist/internal/delegated-event.d.ts.map +0 -1
  237. package/dist/internal/direction.d.ts.map +0 -1
  238. package/dist/internal/disabled-items.d.ts.map +0 -1
  239. package/dist/internal/floating-position.d.ts +0 -26
  240. package/dist/internal/floating-position.d.ts.map +0 -1
  241. package/dist/internal/floating-position.js +0 -107
  242. package/dist/internal/floating-position.js.map +0 -1
  243. package/dist/internal/interaction.d.ts.map +0 -1
  244. package/dist/internal/layer-binding.d.ts.map +0 -1
  245. package/dist/internal/layer-manager.d.ts.map +0 -1
  246. package/dist/internal/menu-control.d.ts.map +0 -1
  247. package/dist/internal/modal-effects.d.ts.map +0 -1
  248. package/dist/internal/popup-control.d.ts.map +0 -1
  249. package/dist/internal/reference-date.d.ts.map +0 -1
  250. package/dist/internal/result.d.ts.map +0 -1
  251. package/dist/internal/text-element.d.ts.map +0 -1
  252. package/dist/listbox.d.ts.map +0 -1
  253. package/dist/menu-button.d.ts.map +0 -1
  254. package/dist/menu.d.ts.map +0 -1
  255. package/dist/menubar.d.ts.map +0 -1
  256. package/dist/month-picker.d.ts.map +0 -1
  257. package/dist/month-range-picker.d.ts.map +0 -1
  258. package/dist/multi-thumb-slider.d.ts.map +0 -1
  259. package/dist/navigation-menu.d.ts.map +0 -1
  260. package/dist/number-field.d.ts.map +0 -1
  261. package/dist/pagination.d.ts.map +0 -1
  262. package/dist/pin-input.d.ts.map +0 -1
  263. package/dist/popover.d.ts.map +0 -1
  264. package/dist/quantity-field.d.ts.map +0 -1
  265. package/dist/radio-group.d.ts.map +0 -1
  266. package/dist/range-calendar.d.ts.map +0 -1
  267. package/dist/rating.d.ts.map +0 -1
  268. package/dist/reorder.d.ts.map +0 -1
  269. package/dist/select.d.ts.map +0 -1
  270. package/dist/slider.d.ts.map +0 -1
  271. package/dist/spin-button.d.ts.map +0 -1
  272. package/dist/stepper.d.ts.map +0 -1
  273. package/dist/switch.d.ts.map +0 -1
  274. package/dist/tabs.d.ts.map +0 -1
  275. package/dist/tags-input.d.ts.map +0 -1
  276. package/dist/text.d.ts.map +0 -1
  277. package/dist/time-field.d.ts.map +0 -1
  278. package/dist/time-range-field.d.ts.map +0 -1
  279. package/dist/timer.d.ts.map +0 -1
  280. package/dist/toast.d.ts.map +0 -1
  281. package/dist/toggle-button.d.ts.map +0 -1
  282. package/dist/toggle-group.d.ts.map +0 -1
  283. package/dist/toolbar.d.ts.map +0 -1
  284. package/dist/tooltip.d.ts.map +0 -1
  285. package/dist/tree-grid.d.ts.map +0 -1
  286. package/dist/tree-view.d.ts.map +0 -1
  287. package/dist/virtual.d.ts.map +0 -1
  288. package/dist/window-splitter.d.ts.map +0 -1
  289. package/dist/year-picker.d.ts.map +0 -1
  290. package/dist/year-range-picker.d.ts.map +0 -1
@@ -0,0 +1,359 @@
1
+ import { unwrap } from '@sectile/core/result';
2
+ import { tryCreateDataTable as tryCreateSemanticDataTable, } from '@sectile/tabular/data-table';
3
+ import { BindingScope, ColumnSizeStore, allMatchingSelectionState, bindColumnResizeHandle, bindEvent, clearAttributes, columnIndex, domFailure, findProjectedRow, headerElementID, leafHeaderID, ok, queryWithFilter, queryWithSort, readEditorValue, resolveHeaderReference, rowSelected, rowSelectionActivation, setEditorAttributes, setColumnInlineSize, setBulkSelectionControlAttributes, setRowSelectionControlAttributes, validateColumnSizeOptions, validateRegistrationGeneration, } from './internal/tabular-dom.js';
4
+ export function createDataTable(options) {
5
+ return unwrap(tryCreateDataTable(options));
6
+ }
7
+ export function tryCreateDataTable(options) {
8
+ const host = validateColumnSizeOptions(options);
9
+ if (!host.ok)
10
+ return host;
11
+ const semantic = tryCreateSemanticDataTable(options);
12
+ if (!semantic.ok)
13
+ return semantic;
14
+ return ok(new DOMDataTable({ ...options, controller: semantic.value }, true));
15
+ }
16
+ export function connectDataTable(options) {
17
+ return new DOMDataTable(options, false);
18
+ }
19
+ class DOMDataTable {
20
+ controller;
21
+ #options;
22
+ #ownsController;
23
+ #scope = new BindingScope();
24
+ #columnSizes;
25
+ #rows = new Map();
26
+ #cells = new Map();
27
+ #refreshers = new Set();
28
+ #unsubscribeCommands;
29
+ #projectionGeneration;
30
+ #selectionAnchor = null;
31
+ constructor(options, ownsController) {
32
+ this.#options = options;
33
+ this.controller = options.controller;
34
+ this.#ownsController = ownsController;
35
+ this.#columnSizes = new ColumnSizeStore(options);
36
+ this.#projectionGeneration = this.controller.getProjection().generation;
37
+ this.#unsubscribeCommands = this.controller.subscribeCommands((command) => options.onCommand?.(command));
38
+ this.setTableAttributes();
39
+ }
40
+ getSnapshot() { return this.controller.getSnapshot(); }
41
+ getProjection() { return this.controller.getProjection(); }
42
+ getColumnSizeState() { return this.#columnSizes.getState(); }
43
+ syncControlledValues(values) {
44
+ const sizes = this.#columnSizes.synchronize(values.columnSizes);
45
+ if (!sizes.ok)
46
+ return sizes;
47
+ const { columnSizes: _columnSizes, ...semanticValues } = values;
48
+ const result = this.controller.syncControlledValues(semanticValues);
49
+ if (result.ok)
50
+ this.#updated();
51
+ return result;
52
+ }
53
+ synchronizeView(response) {
54
+ const result = this.controller.synchronizeView(response);
55
+ if (result.ok)
56
+ this.#updated();
57
+ return result;
58
+ }
59
+ requestView() {
60
+ const result = this.controller.requestView();
61
+ if (result.ok)
62
+ this.#updated();
63
+ return result;
64
+ }
65
+ abandonRequest(requestID) {
66
+ const result = this.controller.abandonRequest(requestID);
67
+ if (result.ok)
68
+ this.#updated();
69
+ return result;
70
+ }
71
+ handleEvent(event) {
72
+ if (!this.#scope.active)
73
+ return false;
74
+ const result = this.controller.dispatch(event);
75
+ if (result.ok)
76
+ this.#updated();
77
+ return result.ok;
78
+ }
79
+ setTableAttributes(element = this.#options.table) {
80
+ element.setAttribute('data-scope', 'data-table');
81
+ element.setAttribute('data-part', 'root');
82
+ element.removeAttribute('role');
83
+ }
84
+ setHeaderCellAttributes(element, options) {
85
+ const resolved = resolveHeaderReference(this.getSnapshot(), options);
86
+ const metric = resolved.metric;
87
+ element.setAttribute('data-part', 'column-header');
88
+ element.setAttribute('data-header-node-id', resolved.headerNodeID);
89
+ element.id = headerElementID(resolved.headerNodeID);
90
+ if (metric === undefined) {
91
+ element.colSpan = 1;
92
+ element.rowSpan = 1;
93
+ element.removeAttribute('aria-sort');
94
+ return;
95
+ }
96
+ element.colSpan = metric.colSpan;
97
+ element.rowSpan = metric.rowSpan;
98
+ if (metric.columnID === null) {
99
+ element.scope = 'colgroup';
100
+ element.removeAttribute('aria-sort');
101
+ return;
102
+ }
103
+ element.scope = 'col';
104
+ const sort = this.getSnapshot().state.query.sort.find((entry) => entry.columnID === metric.columnID);
105
+ if (sort === undefined)
106
+ element.removeAttribute('aria-sort');
107
+ else
108
+ element.setAttribute('aria-sort', sort.direction);
109
+ setColumnInlineSize(element, metric.columnID, this.#columnSizes.getState());
110
+ }
111
+ setRowAttributes(element, options) {
112
+ const row = findProjectedRow(this.getSnapshot(), options.rowID);
113
+ element.setAttribute('data-part', 'row');
114
+ element.setAttribute('data-row-id', options.rowID);
115
+ if (row?.kind === 'group') {
116
+ element.setAttribute('aria-level', String(row.depth + 1));
117
+ element.setAttribute('aria-expanded', String(row.expanded));
118
+ }
119
+ else
120
+ clearAttributes(element, ['aria-level', 'aria-expanded']);
121
+ }
122
+ setCellAttributes(element, options) {
123
+ element.setAttribute('data-part', 'cell');
124
+ element.setAttribute('data-row-id', options.cell.rowID);
125
+ element.setAttribute('data-column-id', options.cell.columnID);
126
+ const headerID = leafHeaderID(this.getSnapshot(), options.cell.columnID);
127
+ if (headerID === null)
128
+ element.removeAttribute('headers');
129
+ else
130
+ element.setAttribute('headers', headerID);
131
+ setColumnInlineSize(element, options.cell.columnID, this.#columnSizes.getState());
132
+ }
133
+ registerRow(element, options) {
134
+ const valid = validateRegistrationGeneration(this.getProjection().generation, options);
135
+ if (!valid.ok)
136
+ return valid;
137
+ if (findProjectedRow(this.getSnapshot(), options.rowID) === undefined)
138
+ return domFailure('profile-view-mismatch', 'Registered DataTable row is not projected.', { rowID: options.rowID });
139
+ const current = this.#rows.get(options.rowID);
140
+ if (current !== undefined && current.element !== element)
141
+ return domFailure('profile-view-mismatch', 'DataTable row is already registered.', { rowID: options.rowID });
142
+ this.#rows.set(options.rowID, { element, options });
143
+ this.setRowAttributes(element, options);
144
+ return ok(this.#scope.retain(() => { if (this.#rows.get(options.rowID)?.element === element)
145
+ this.#rows.delete(options.rowID); }));
146
+ }
147
+ registerCell(element, options) {
148
+ const valid = validateRegistrationGeneration(this.getProjection().generation, options);
149
+ if (!valid.ok)
150
+ return valid;
151
+ if (!this.#hasCell(options.cell))
152
+ return domFailure('profile-view-mismatch', 'Registered DataTable cell is not projected.', { cell: options.cell });
153
+ const key = JSON.stringify([options.cell.rowID, options.cell.columnID]);
154
+ const current = this.#cells.get(key);
155
+ if (current !== undefined && current.element !== element)
156
+ return domFailure('profile-view-mismatch', 'DataTable cell is already registered.', { cell: options.cell });
157
+ this.#cells.set(key, { element, options });
158
+ this.setCellAttributes(element, options);
159
+ return ok(this.#scope.retain(() => { if (this.#cells.get(key)?.element === element)
160
+ this.#cells.delete(key); }));
161
+ }
162
+ bindSortTrigger(element, options) {
163
+ element.setAttribute('data-part', 'sort-trigger');
164
+ element.setAttribute('data-column-id', options.columnID);
165
+ const update = () => {
166
+ const current = this.getSnapshot().state.query.sort.find((entry) => entry.columnID === options.columnID)?.direction;
167
+ element.setAttribute('aria-pressed', String(current !== undefined));
168
+ };
169
+ const dispose = bindEvent(this.#scope, element, 'click', () => {
170
+ const query = this.getSnapshot().state.query;
171
+ const current = query.sort.find((entry) => entry.columnID === options.columnID)?.direction;
172
+ const direction = current === undefined ? 'ascending' : current === 'ascending' ? 'descending' : null;
173
+ this.handleEvent({ type: 'set-query', query: queryWithSort(query, options.columnID, options.comparator, direction) });
174
+ });
175
+ this.#refreshers.add(update);
176
+ update();
177
+ return this.#scope.retain(() => { dispose(); this.#refreshers.delete(update); });
178
+ }
179
+ bindFilterControl(element, options) {
180
+ element.setAttribute('data-part', 'filter-control');
181
+ if (options.scope === 'column')
182
+ element.setAttribute('data-column-id', options.columnID);
183
+ const listener = () => {
184
+ const query = this.getSnapshot().state.query;
185
+ this.handleEvent({
186
+ type: 'set-query',
187
+ query: queryWithFilter(query, options.id, options.scope, options.predicate, element.value, options.scope === 'column' ? options.columnID : undefined),
188
+ });
189
+ };
190
+ return bindEvent(this.#scope, element, 'input', listener);
191
+ }
192
+ bindSelectionControl(element, options) {
193
+ const input = element.tagName === 'INPUT' ? element : null;
194
+ if (input !== null) {
195
+ input.type = 'checkbox';
196
+ input.value = options.value;
197
+ if (options.form === undefined)
198
+ input.removeAttribute('form');
199
+ else
200
+ input.setAttribute('form', options.form);
201
+ }
202
+ element.setAttribute('data-part', 'selection-control');
203
+ element.setAttribute('data-row-id', options.rowID);
204
+ const update = () => {
205
+ const selection = this.getSnapshot().state.rowSelection;
206
+ setRowSelectionControlAttributes(element, rowSelected(selection, options.rowID), options.disabled === true);
207
+ if (input !== null) {
208
+ if (selection.kind === 'explicit-rows')
209
+ input.name = options.name;
210
+ else
211
+ input.removeAttribute('name');
212
+ }
213
+ };
214
+ const activate = (shiftKey) => {
215
+ if (options.disabled === true)
216
+ return;
217
+ const projection = this.getProjection();
218
+ const activation = rowSelectionActivation(projection.rowSelection, projection.generation, this.#selectionAnchor, options.rowID, shiftKey);
219
+ if (this.handleEvent(activation.event))
220
+ this.#selectionAnchor = activation.anchor;
221
+ else if (activation.event.type === 'set-row-selection-range') {
222
+ const fallback = rowSelectionActivation(projection.rowSelection, projection.generation, null, options.rowID, false);
223
+ if (this.handleEvent(fallback.event))
224
+ this.#selectionAnchor = fallback.anchor;
225
+ }
226
+ };
227
+ const disposers = [
228
+ bindEvent(this.#scope, element, 'click', (event) => activate(event.shiftKey)),
229
+ bindEvent(this.#scope, element, 'keydown', (event) => {
230
+ if (event.key !== ' ' || !event.shiftKey || event.ctrlKey || event.metaKey || event.altKey || event.isComposing)
231
+ return;
232
+ activate(true);
233
+ event.preventDefault();
234
+ }),
235
+ ];
236
+ this.#refreshers.add(update);
237
+ update();
238
+ return this.#scope.retain(() => { for (const dispose of disposers)
239
+ dispose(); this.#refreshers.delete(update); });
240
+ }
241
+ bindBulkSelectionControl(element, options) {
242
+ element.setAttribute('data-part', 'bulk-selection-control');
243
+ const update = () => {
244
+ if (options.target.kind !== 'all-matching') {
245
+ element.setAttribute('aria-disabled', String(options.disabled === true));
246
+ return;
247
+ }
248
+ setBulkSelectionControlAttributes(element, allMatchingSelectionState(this.getSnapshot()), options.disabled === true);
249
+ };
250
+ const dispose = bindEvent(this.#scope, element, 'click', () => {
251
+ if (options.disabled === true)
252
+ return;
253
+ if (options.target.kind === 'all-matching') {
254
+ const event = allMatchingSelectionState(this.getSnapshot()) === 'checked'
255
+ ? { type: 'set-row-selection', selection: { kind: 'explicit-rows', rowIDs: [] } }
256
+ : { type: 'select-all-matching' };
257
+ this.handleEvent(event);
258
+ }
259
+ else
260
+ this.handleEvent({ type: 'request-group-leaf-selection', groupID: options.target.groupID });
261
+ });
262
+ this.#refreshers.add(update);
263
+ update();
264
+ return this.#scope.retain(() => { dispose(); this.#refreshers.delete(update); });
265
+ }
266
+ bindDisclosure(element, options) {
267
+ element.setAttribute('data-part', 'disclosure');
268
+ element.setAttribute('data-row-id', options.rowID);
269
+ const update = () => {
270
+ const open = this.getSnapshot().state.expansion.includes(options.rowID);
271
+ element.setAttribute('aria-expanded', String(open));
272
+ element.setAttribute('aria-disabled', String(options.disabled === true));
273
+ };
274
+ const dispose = bindEvent(this.#scope, element, 'click', () => {
275
+ if (options.disabled === true)
276
+ return;
277
+ const expansion = this.getSnapshot().state.expansion;
278
+ const next = expansion.includes(options.rowID) ? expansion.filter((id) => id !== options.rowID) : [...expansion, options.rowID];
279
+ this.handleEvent({ type: 'set-expansion', expansion: next });
280
+ });
281
+ this.#refreshers.add(update);
282
+ update();
283
+ return this.#scope.retain(() => { dispose(); this.#refreshers.delete(update); });
284
+ }
285
+ bindEditor(element, options) {
286
+ setEditorAttributes(element, options, 'editor');
287
+ let composing = false;
288
+ const commit = () => {
289
+ if (composing || !this.#scope.active || options.disabled === true || options.readOnly === true)
290
+ return false;
291
+ const value = readEditorValue(element, options.parseValue);
292
+ element.setAttribute('aria-invalid', String(!value.ok));
293
+ return value.ok && this.handleEvent({ type: 'request-value-commit', cell: options.cell, value: value.value });
294
+ };
295
+ const keydown = (event) => {
296
+ if (event.isComposing || composing || event.key !== 'Enter' || (element.tagName === 'TEXTAREA' && event.shiftKey))
297
+ return;
298
+ if (commit())
299
+ event.preventDefault();
300
+ };
301
+ const input = () => element.setAttribute('aria-invalid', 'false');
302
+ const change = () => { if (options.commitOnChange !== false)
303
+ commit(); };
304
+ const blur = () => { if (options.commitOnBlur === true)
305
+ commit(); };
306
+ const compositionStart = () => { composing = true; };
307
+ const compositionEnd = () => { composing = false; };
308
+ const disposers = [
309
+ bindEvent(this.#scope, element, 'keydown', keydown),
310
+ bindEvent(this.#scope, element, 'input', input),
311
+ bindEvent(this.#scope, element, 'change', change),
312
+ bindEvent(this.#scope, element, 'blur', blur),
313
+ bindEvent(this.#scope, element, 'compositionstart', compositionStart),
314
+ bindEvent(this.#scope, element, 'compositionend', compositionEnd),
315
+ ];
316
+ return this.#scope.retain(() => { for (const dispose of disposers)
317
+ dispose(); });
318
+ }
319
+ bindColumnResizeHandle(element, options) {
320
+ return bindColumnResizeHandle(this.#scope, element, this.#columnSizes, options, () => this.#updated());
321
+ }
322
+ refresh() {
323
+ if (!this.#scope.active)
324
+ return;
325
+ const generation = this.getProjection().generation;
326
+ if (generation !== this.#projectionGeneration) {
327
+ this.#projectionGeneration = generation;
328
+ this.#selectionAnchor = null;
329
+ }
330
+ this.setTableAttributes();
331
+ for (const registration of this.#rows.values())
332
+ this.setRowAttributes(registration.element, registration.options);
333
+ for (const registration of this.#cells.values())
334
+ this.setCellAttributes(registration.element, registration.options);
335
+ for (const refresh of this.#refreshers)
336
+ refresh();
337
+ }
338
+ disconnect() {
339
+ if (!this.#scope.active)
340
+ return;
341
+ this.#scope.disconnect();
342
+ this.#unsubscribeCommands();
343
+ this.#rows.clear();
344
+ this.#cells.clear();
345
+ this.#refreshers.clear();
346
+ this.#selectionAnchor = null;
347
+ clearAttributes(this.#options.table, ['data-scope', 'data-part']);
348
+ if (this.#ownsController)
349
+ this.controller.dispose();
350
+ }
351
+ #updated() {
352
+ this.refresh();
353
+ this.#options.onSnapshotChange?.(this.getSnapshot());
354
+ }
355
+ #hasCell(cell) {
356
+ return findProjectedRow(this.getSnapshot(), cell.rowID) !== undefined && columnIndex(this.getSnapshot(), cell.columnID) > 0;
357
+ }
358
+ }
359
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.js","sourceRoot":"","sources":["../src/data-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { type DataTreeGridCommand as SemanticDataTreeGridCommand, type DataTreeGridController as SemanticDataTreeGridController, type DataTreeGridEvent, type DataTreeGridOptions as SemanticDataTreeGridOptions, type DataTreeGridProjection, type DataTreeGridState } from '@sectile/tabular/data-tree-grid';
2
+ import type { TabularCellAddress, TabularResult, TabularRowID, TabularViewResponse } from '@sectile/tabular';
3
+ import { type GridDOMBulkSelectionControlOptions, type GridDOMCellOptions, type GridDOMColumnHeaderOptions, type GridDOMConnectionOptions, type GridDOMControlledValues, type GridDOMDisclosureOptions, type GridDOMEditorOptions, type GridDOMFilterControlOptions, type GridDOMRowOptions, type GridDOMSelectionControlOptions, type GridDOMSortTriggerOptions, type GridRevealCellCommand, type GridRevealRowCommand } from './internal/tabular-grid-dom.js';
4
+ import type { TabularDOMColumnResizeHandleOptions, TabularDOMColumnSizeState, TabularDOMEditorElement, TabularDOMEditorValueParser } from './internal/tabular-dom.js';
5
+ export type DataTreeGridDOMCommand = SemanticDataTreeGridCommand | GridRevealCellCommand | GridRevealRowCommand;
6
+ export type DataTreeGridDOMCommandHandler = (command: DataTreeGridDOMCommand) => void;
7
+ export type DataTreeGridSnapshotChangeHandler = (snapshot: DataTreeGridState) => void;
8
+ export type DataTreeGridColumnSizeChangeHandler = (state: DataTreeGridColumnSizeState) => void;
9
+ export type DataTreeGridColumnSizeState = TabularDOMColumnSizeState;
10
+ export interface DataTreeGridControlledValues extends GridDOMControlledValues {
11
+ }
12
+ export type DataTreeGridColumnHeaderOptions = GridDOMColumnHeaderOptions;
13
+ export interface DataTreeGridRowOptions extends GridDOMRowOptions {
14
+ }
15
+ export interface DataTreeGridTreeRowOptions extends GridDOMRowOptions {
16
+ }
17
+ export interface DataTreeGridCellOptions extends GridDOMCellOptions {
18
+ }
19
+ export interface DataTreeGridSortTriggerOptions extends GridDOMSortTriggerOptions {
20
+ }
21
+ export type DataTreeGridFilterControlOptions = GridDOMFilterControlOptions;
22
+ export interface DataTreeGridRowSelectionControlOptions extends GridDOMSelectionControlOptions {
23
+ }
24
+ export type DataTreeGridBulkSelectionControlOptions = GridDOMBulkSelectionControlOptions;
25
+ export interface DataTreeGridRowDisclosureOptions extends GridDOMDisclosureOptions {
26
+ }
27
+ export type DataTreeGridColumnResizeHandleOptions = TabularDOMColumnResizeHandleOptions;
28
+ export type DataTreeGridEditorElement = TabularDOMEditorElement;
29
+ export type DataTreeGridEditorValueParser = TabularDOMEditorValueParser;
30
+ export interface DataTreeGridEditorOptions extends GridDOMEditorOptions {
31
+ }
32
+ export interface DataTreeGridConnectionOptions extends Omit<GridDOMConnectionOptions<SemanticDataTreeGridController, SemanticDataTreeGridCommand>, 'onCommand' | 'onSnapshotChange'> {
33
+ readonly controller: SemanticDataTreeGridController;
34
+ readonly onCommand?: DataTreeGridDOMCommandHandler;
35
+ readonly onSnapshotChange?: DataTreeGridSnapshotChangeHandler;
36
+ }
37
+ export interface DataTreeGridOptions extends SemanticDataTreeGridOptions, Omit<DataTreeGridConnectionOptions, 'controller'> {
38
+ }
39
+ export interface DataTreeGridConnection {
40
+ readonly controller: SemanticDataTreeGridController;
41
+ getSnapshot(): DataTreeGridState;
42
+ getProjection(): DataTreeGridProjection;
43
+ getColumnSizeState(): DataTreeGridColumnSizeState;
44
+ syncControlledValues(values: DataTreeGridControlledValues): TabularResult<DataTreeGridState>;
45
+ synchronizeView(response: TabularViewResponse): TabularResult<DataTreeGridState>;
46
+ requestView(): TabularResult<DataTreeGridState>;
47
+ abandonRequest(requestID: number): TabularResult<DataTreeGridState>;
48
+ handleEvent(event: DataTreeGridEvent): boolean;
49
+ setGridAttributes(element?: HTMLElement): void;
50
+ setColumnHeaderAttributes(element: HTMLElement, options: DataTreeGridColumnHeaderOptions): void;
51
+ setRowAttributes(element: HTMLElement, options: DataTreeGridRowOptions): void;
52
+ setTreeRowAttributes(element: HTMLElement, options: DataTreeGridTreeRowOptions): void;
53
+ setCellAttributes(element: HTMLElement, options: DataTreeGridCellOptions): void;
54
+ registerRow(element: HTMLElement, options: DataTreeGridRowOptions): TabularResult<() => void>;
55
+ registerCell(element: HTMLElement, options: DataTreeGridCellOptions): TabularResult<() => void>;
56
+ bindSortTrigger(element: HTMLElement, options: DataTreeGridSortTriggerOptions): () => void;
57
+ bindFilterControl(element: HTMLInputElement | HTMLSelectElement, options: DataTreeGridFilterControlOptions): () => void;
58
+ bindRowSelectionControl(element: HTMLElement, options: DataTreeGridRowSelectionControlOptions): () => void;
59
+ bindBulkSelectionControl(element: HTMLElement, options: DataTreeGridBulkSelectionControlOptions): () => void;
60
+ bindRowDisclosure(element: HTMLElement, options: DataTreeGridRowDisclosureOptions): () => void;
61
+ bindEditor(element: DataTreeGridEditorElement, options: DataTreeGridEditorOptions): () => void;
62
+ bindColumnResizeHandle(element: HTMLElement, options: DataTreeGridColumnResizeHandleOptions): () => void;
63
+ requestRevealCell(cell: TabularCellAddress, expectedProjectionGeneration?: number): boolean;
64
+ requestRevealRow(rowID: TabularRowID, expectedProjectionGeneration?: number): boolean;
65
+ focusCurrent(): void;
66
+ refresh(): void;
67
+ disconnect(): void;
68
+ }
69
+ export declare function createDataTreeGrid(options: DataTreeGridOptions): DataTreeGridConnection;
70
+ export declare function tryCreateDataTreeGrid(options: DataTreeGridOptions): TabularResult<DataTreeGridConnection>;
71
+ export declare function connectDataTreeGrid(options: DataTreeGridConnectionOptions): DataTreeGridConnection;
72
+ export type { DataTreeGridCommand, DataTreeGridController, DataTreeGridCursorState, DataTreeGridEditState, DataTreeGridEvent, DataTreeGridExpansionState, DataTreeGridProjection, DataTreeGridRow, DataTreeGridState, DataTreeGridUpdate, } from '@sectile/tabular/data-tree-grid';
73
+ export type { TabularCellAddress, TabularColumnDefinition, TabularColumnID, TabularError, TabularHeaderNode, TabularQuery, TabularRow, TabularRowSelection, TabularViewResponse, } from '@sectile/tabular';
@@ -0,0 +1,53 @@
1
+ import { unwrap } from '@sectile/core/result';
2
+ import { tryCreateDataTreeGrid as tryCreateSemanticDataTreeGrid, } from '@sectile/tabular/data-tree-grid';
3
+ import { DOMTabularGrid, } from './internal/tabular-grid-dom.js';
4
+ import { validateColumnSizeOptions } from './internal/tabular-dom.js';
5
+ export function createDataTreeGrid(options) {
6
+ return unwrap(tryCreateDataTreeGrid(options));
7
+ }
8
+ export function tryCreateDataTreeGrid(options) {
9
+ const host = validateColumnSizeOptions(options);
10
+ if (!host.ok)
11
+ return host;
12
+ const semantic = tryCreateSemanticDataTreeGrid(options);
13
+ if (!semantic.ok)
14
+ return semantic;
15
+ return { ok: true, value: createDataTreeGridConnection({ ...options, controller: semantic.value }, true) };
16
+ }
17
+ export function connectDataTreeGrid(options) {
18
+ return createDataTreeGridConnection(options, false);
19
+ }
20
+ function createDataTreeGridConnection(options, ownsController) {
21
+ const base = new DOMTabularGrid(options, true, ownsController);
22
+ return Object.freeze({
23
+ controller: options.controller,
24
+ getSnapshot: () => base.getSnapshot(),
25
+ getProjection: () => base.getProjection(),
26
+ getColumnSizeState: () => base.getColumnSizeState(),
27
+ syncControlledValues: (values) => base.syncControlledValues(values),
28
+ synchronizeView: (response) => base.synchronizeView(response),
29
+ requestView: () => base.requestView(),
30
+ abandonRequest: (requestID) => base.abandonRequest(requestID),
31
+ handleEvent: (event) => base.handleEvent(event),
32
+ setGridAttributes: (element) => base.setGridAttributes(element),
33
+ setColumnHeaderAttributes: (element, value) => base.setColumnHeaderAttributes(element, value),
34
+ setRowAttributes: (element, value) => base.setRowAttributes(element, value),
35
+ setTreeRowAttributes: (element, value) => base.setRowAttributes(element, value),
36
+ setCellAttributes: (element, value) => base.setCellAttributes(element, value),
37
+ registerRow: (element, value) => base.registerRow(element, value),
38
+ registerCell: (element, value) => base.registerCell(element, value),
39
+ bindSortTrigger: (element, value) => base.bindSortTrigger(element, value),
40
+ bindFilterControl: (element, value) => base.bindFilterControl(element, value),
41
+ bindRowSelectionControl: (element, value) => base.bindRowSelectionControl(element, value),
42
+ bindBulkSelectionControl: (element, value) => base.bindBulkSelectionControl(element, value),
43
+ bindRowDisclosure: (element, value) => base.bindRowDisclosure(element, value),
44
+ bindEditor: (element, value) => base.bindEditor(element, value),
45
+ bindColumnResizeHandle: (element, value) => base.bindColumnResizeHandle(element, value),
46
+ requestRevealCell: (cell, generation) => base.requestRevealCell(cell, generation),
47
+ requestRevealRow: (rowID, generation) => base.requestRevealRow(rowID, generation),
48
+ focusCurrent: () => base.focusCurrent(),
49
+ refresh: () => base.refresh(),
50
+ disconnect: () => base.disconnect(),
51
+ });
52
+ }
53
+ //# sourceMappingURL=data-tree-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-tree-grid.js","sourceRoot":"","sources":["../src/data-tree-grid.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface DateFieldOptions {
17
17
  readonly required?: boolean;
18
18
  readonly label?: string;
19
19
  readonly native?: boolean;
20
- readonly onValueChange?: (value: DateValue | null) => void;
20
+ readonly onValueChange?: (value: DateValue | null) => boolean | void;
21
21
  readonly onInputStateChange?: (value: TextEditingState, previousValue: TextEditingState) => void;
22
22
  readonly onUpdate?: () => void;
23
23
  }
@@ -39,4 +39,3 @@ export interface DateFieldConnection {
39
39
  }
40
40
  export declare function createDateField(options: DateFieldOptions): FacadeConnection<DateFieldConnection>;
41
41
  export declare function tryCreateDateField(options: DateFieldOptions): DOMTemporalResult<FacadeConnection<DateFieldConnection>>;
42
- //# sourceMappingURL=date-field.d.ts.map
@@ -1,10 +1,11 @@
1
1
  import { unwrap } from '@sectile/core/result';
2
2
  import { createDOMTemporalController, createDOMTemporalFacadeConnection } from './internal/result.js';
3
3
  import { sameTextEditingState } from '@sectile/core/text';
4
- import { applyDateFieldEvent, tryCreateDateFieldState } from '@sectile/temporal/date-field';
4
+ import { applyDateFieldEvent, formatDateValue, tryCreateDateFieldState } from '@sectile/temporal/date-field';
5
5
  import {} from '@sectile/core/adapter-runtime';
6
6
  import { setFieldValidity, setInteractionAttributes } from './internal/interaction.js';
7
7
  import { DOMTextElementBinding } from './internal/text-element.js';
8
+ import { synchronizeControlledFieldInput, synchronizeFieldInputSelection } from './internal/controlled-field-input.js';
8
9
  import { toTextEvent } from './text.js';
9
10
  export { formatDateValue, parseDateValue } from '@sectile/temporal/date-field';
10
11
  export function createDateField(options) { return unwrap(tryCreateDateField(options)); }
@@ -64,7 +65,11 @@ class DOMDateField {
64
65
  if (this.valueControlled !== (values.value !== undefined) || this.inputControlled !== (values.inputState !== undefined))
65
66
  return { ok: false, error: { class: 'construction', code: 'controlled-shape-mismatch', message: 'Controlled date field values must preserve their construction-time shape.' } };
66
67
  const state = this.getSnapshot().state;
67
- const result = this.runtime.replace(tryCreateDateFieldState(this.valueControlled ? values.value : state.value, this.inputControlled ? values.inputState : state.inputState));
68
+ const value = this.valueControlled ? values.value : state.value;
69
+ const inputState = this.inputControlled
70
+ ? values.inputState
71
+ : synchronizeControlledFieldInput(synchronizeFieldInputSelection(state.inputState, this.options.input), state.value === null ? '' : formatDateValue(state.value), value === null ? '' : formatDateValue(value));
72
+ const result = this.runtime.replace(tryCreateDateFieldState(value, inputState));
68
73
  if (result.ok) {
69
74
  this.refresh();
70
75
  this.options.onUpdate?.();
@@ -72,12 +77,19 @@ class DOMDateField {
72
77
  return result;
73
78
  }
74
79
  handleEvent(event) {
80
+ const previous = this.getSnapshot();
75
81
  const result = this.runtime.handle(event);
76
82
  setFieldValidity(this.options.input, result);
77
83
  if (result.ok) {
78
- for (const command of result.commands)
79
- if (command.type === 'value-committed')
80
- this.options.onValueChange?.(command.value);
84
+ for (const command of result.commands) {
85
+ if (command.type === 'value-committed' && this.options.onValueChange?.(command.value) === false) {
86
+ this.runtime.replace({ ok: true, value: previous.state });
87
+ this.refresh();
88
+ setFieldValidity(this.options.input, { ok: false, error: { message: 'The parent control rejected the date value.' } });
89
+ this.options.onUpdate?.();
90
+ return false;
91
+ }
92
+ }
81
93
  this.refresh();
82
94
  this.options.onUpdate?.();
83
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date-field.js","sourceRoot":"","sources":["../src/date-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-field.js","sourceRoot":"","sources":["../src/date-field.ts"],"names":[],"mappings":"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"}