@sectile/vue 0.18.3 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.md +127 -14
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/carousel.d.ts +20 -0
  5. package/dist/carousel.js +1 -1
  6. package/dist/carousel.js.map +1 -1
  7. package/dist/cascade-list.js +1 -1
  8. package/dist/cascade-list.js.map +1 -1
  9. package/dist/cascade-select.js +1 -1
  10. package/dist/cascade-select.js.map +1 -1
  11. package/dist/chart.js +1 -1
  12. package/dist/chart.js.map +1 -1
  13. package/dist/checkbox-group.js +1 -1
  14. package/dist/checkbox-group.js.map +1 -1
  15. package/dist/checkbox-tree.d.ts +102 -0
  16. package/dist/checkbox-tree.js +2 -0
  17. package/dist/checkbox-tree.js.map +1 -0
  18. package/dist/checkbox.js +1 -1
  19. package/dist/checkbox.js.map +1 -1
  20. package/dist/color-picker.d.ts +24 -0
  21. package/dist/color-picker.js +1 -1
  22. package/dist/color-picker.js.map +1 -1
  23. package/dist/combobox.d.ts +47 -1
  24. package/dist/combobox.js +1 -1
  25. package/dist/combobox.js.map +1 -1
  26. package/dist/component-handle.d.ts +8 -0
  27. package/dist/component-handle.js +2 -0
  28. package/dist/component-handle.js.map +1 -0
  29. package/dist/context-menu.d.ts +1 -0
  30. package/dist/context-menu.js +2 -0
  31. package/dist/context-menu.js.map +1 -0
  32. package/dist/drag-drop.d.ts +23 -0
  33. package/dist/drag-drop.js +2 -0
  34. package/dist/drag-drop.js.map +1 -0
  35. package/dist/editable.d.ts +3 -0
  36. package/dist/editable.js +1 -1
  37. package/dist/editable.js.map +1 -1
  38. package/dist/form/context.d.ts +3 -0
  39. package/dist/form/context.js +1 -1
  40. package/dist/form/context.js.map +1 -1
  41. package/dist/form/contracts.d.ts +1 -0
  42. package/dist/form/control-inventory.d.ts +20 -0
  43. package/dist/form/control-inventory.js +1 -1
  44. package/dist/form/control-inventory.js.map +1 -1
  45. package/dist/form/control.d.ts +44 -1
  46. package/dist/form/control.js +1 -1
  47. package/dist/form/control.js.map +1 -1
  48. package/dist/form/field.d.ts +10 -0
  49. package/dist/form/field.js +1 -1
  50. package/dist/form/field.js.map +1 -1
  51. package/dist/form/file-input.d.ts +229 -0
  52. package/dist/form/file-input.js +2 -0
  53. package/dist/form/file-input.js.map +1 -0
  54. package/dist/form/file-upload/group.d.ts +28 -0
  55. package/dist/form/file-upload/group.js +2 -0
  56. package/dist/form/file-upload/group.js.map +1 -0
  57. package/dist/form/file-upload.d.ts +26 -0
  58. package/dist/form/file-upload.js +2 -0
  59. package/dist/form/file-upload.js.map +1 -0
  60. package/dist/form/root.js +1 -1
  61. package/dist/form/root.js.map +1 -1
  62. package/dist/form-boundary.d.ts +2 -0
  63. package/dist/form-boundary.js +2 -0
  64. package/dist/form-boundary.js.map +1 -0
  65. package/dist/fullscreen.d.ts +16 -0
  66. package/dist/fullscreen.js +2 -0
  67. package/dist/fullscreen.js.map +1 -0
  68. package/dist/host-provider.d.ts +99 -1
  69. package/dist/host-provider.js +1 -1
  70. package/dist/host-provider.js.map +1 -1
  71. package/dist/image.d.ts +24 -0
  72. package/dist/image.js +2 -0
  73. package/dist/image.js.map +1 -0
  74. package/dist/index.d.ts +6 -5
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/input/native-field.d.ts +33 -6
  78. package/dist/input/native-field.js +1 -1
  79. package/dist/input/native-field.js.map +1 -1
  80. package/dist/input/native-range-field.d.ts +16 -7
  81. package/dist/input/native-range-field.js +1 -1
  82. package/dist/input/native-range-field.js.map +1 -1
  83. package/dist/internal/cascade-choice.js +1 -1
  84. package/dist/internal/cascade-choice.js.map +1 -1
  85. package/dist/internal/connection-lifetime.d.ts +10 -0
  86. package/dist/internal/connection-lifetime.js +2 -0
  87. package/dist/internal/connection-lifetime.js.map +1 -0
  88. package/dist/internal/popup-presentation.d.ts +32 -0
  89. package/dist/internal/popup-presentation.js +2 -0
  90. package/dist/internal/popup-presentation.js.map +1 -0
  91. package/dist/internal/portal-move.d.ts +11 -0
  92. package/dist/internal/portal-move.js +2 -0
  93. package/dist/internal/portal-move.js.map +1 -0
  94. package/dist/internal/scheduled-task.js +1 -1
  95. package/dist/internal/scheduled-task.js.map +1 -1
  96. package/dist/internal/tabs-context.d.ts +11 -0
  97. package/dist/internal/tabs-context.js +1 -1
  98. package/dist/internal/tabs-context.js.map +1 -1
  99. package/dist/internal/tree-parts.d.ts +142 -0
  100. package/dist/internal/tree-parts.js +2 -0
  101. package/dist/internal/tree-parts.js.map +1 -0
  102. package/dist/listbox.d.ts +11 -0
  103. package/dist/listbox.js +1 -1
  104. package/dist/listbox.js.map +1 -1
  105. package/dist/media-gesture.d.ts +20 -0
  106. package/dist/media-gesture.js +2 -0
  107. package/dist/media-gesture.js.map +1 -0
  108. package/dist/menu.d.ts +239 -0
  109. package/dist/menu.js +1 -1
  110. package/dist/menu.js.map +1 -1
  111. package/dist/meter-group.js +1 -1
  112. package/dist/meter-group.js.map +1 -1
  113. package/dist/multi-thumb-slider.js +1 -1
  114. package/dist/multi-thumb-slider.js.map +1 -1
  115. package/dist/number-field.d.ts +18 -1
  116. package/dist/number-field.js +1 -1
  117. package/dist/number-field.js.map +1 -1
  118. package/dist/overlay/dialog.d.ts +1 -0
  119. package/dist/overlay/dialog.js.map +1 -1
  120. package/dist/overlay/drawer.d.ts +33 -4
  121. package/dist/overlay/drawer.js +1 -1
  122. package/dist/overlay/drawer.js.map +1 -1
  123. package/dist/overlay/popover.d.ts +2 -1
  124. package/dist/overlay/popover.js.map +1 -1
  125. package/dist/overlay/popup.d.ts +50 -2
  126. package/dist/overlay/popup.js +1 -1
  127. package/dist/overlay/popup.js.map +1 -1
  128. package/dist/overlay/tooltip.d.ts +38 -3
  129. package/dist/overlay/tooltip.js +1 -1
  130. package/dist/overlay/tooltip.js.map +1 -1
  131. package/dist/pagination.js +1 -1
  132. package/dist/pagination.js.map +1 -1
  133. package/dist/pin-input.js +1 -1
  134. package/dist/pin-input.js.map +1 -1
  135. package/dist/presence/presence.d.ts +1 -1
  136. package/dist/presence/presence.js +1 -1
  137. package/dist/presence/presence.js.map +1 -1
  138. package/dist/primitive.d.ts +37 -3
  139. package/dist/primitive.js +1 -1
  140. package/dist/primitive.js.map +1 -1
  141. package/dist/quantity-field.js +1 -1
  142. package/dist/quantity-field.js.map +1 -1
  143. package/dist/radio-group.js +1 -1
  144. package/dist/radio-group.js.map +1 -1
  145. package/dist/rating.js +1 -1
  146. package/dist/rating.js.map +1 -1
  147. package/dist/reorder.d.ts +169 -77
  148. package/dist/reorder.js +1 -1
  149. package/dist/reorder.js.map +1 -1
  150. package/dist/select.d.ts +21 -0
  151. package/dist/select.js +1 -1
  152. package/dist/select.js.map +1 -1
  153. package/dist/slider.js +1 -1
  154. package/dist/slider.js.map +1 -1
  155. package/dist/spin-button.d.ts +19 -0
  156. package/dist/spin-button.js +1 -1
  157. package/dist/spin-button.js.map +1 -1
  158. package/dist/stepper.js +1 -1
  159. package/dist/stepper.js.map +1 -1
  160. package/dist/switch.js +1 -1
  161. package/dist/switch.js.map +1 -1
  162. package/dist/tabs.d.ts +2 -0
  163. package/dist/tabs.js +1 -1
  164. package/dist/tabs.js.map +1 -1
  165. package/dist/tabular/components.d.ts +5 -0
  166. package/dist/tabular/components.js.map +1 -1
  167. package/dist/tabular/controller.d.ts +1 -0
  168. package/dist/tabular/controller.js +1 -1
  169. package/dist/tabular/controller.js.map +1 -1
  170. package/dist/tabular/data-grid.d.ts +4 -4
  171. package/dist/tabular/data-grid.js +1 -1
  172. package/dist/tabular/data-grid.js.map +1 -1
  173. package/dist/tabular/data-table.d.ts +4 -4
  174. package/dist/tabular/data-table.js +1 -1
  175. package/dist/tabular/data-table.js.map +1 -1
  176. package/dist/tabular/data-tree-grid.d.ts +4 -4
  177. package/dist/tabular/data-tree-grid.js +1 -1
  178. package/dist/tabular/data-tree-grid.js.map +1 -1
  179. package/dist/tabular/parts.d.ts +11 -1
  180. package/dist/tabular/parts.js +1 -1
  181. package/dist/tabular/parts.js.map +1 -1
  182. package/dist/tags-input.d.ts +12 -1
  183. package/dist/tags-input.js +1 -1
  184. package/dist/tags-input.js.map +1 -1
  185. package/dist/temporal/calendar.d.ts +15 -111
  186. package/dist/temporal/calendar.js +1 -1
  187. package/dist/temporal/calendar.js.map +1 -1
  188. package/dist/temporal/capabilities/date-picker.js +1 -1
  189. package/dist/temporal/capabilities/date-picker.js.map +1 -1
  190. package/dist/temporal/capabilities/date-time-picker.js +1 -1
  191. package/dist/temporal/capabilities/date-time-picker.js.map +1 -1
  192. package/dist/temporal/capabilities/date-time-range-picker.js +1 -1
  193. package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -1
  194. package/dist/temporal/capability.d.ts +13 -1
  195. package/dist/temporal/capability.js.map +1 -1
  196. package/dist/temporal/date-field.d.ts +1 -1
  197. package/dist/temporal/date-field.js +1 -1
  198. package/dist/temporal/date-field.js.map +1 -1
  199. package/dist/temporal/date-picker.d.ts +3 -1
  200. package/dist/temporal/date-picker.js.map +1 -1
  201. package/dist/temporal/date-range-field.d.ts +20 -0
  202. package/dist/temporal/date-range-field.js +1 -1
  203. package/dist/temporal/date-range-field.js.map +1 -1
  204. package/dist/temporal/date-range-picker.d.ts +3 -1
  205. package/dist/temporal/date-range-picker.js.map +1 -1
  206. package/dist/temporal/date-time-field.d.ts +4 -1
  207. package/dist/temporal/date-time-field.js +1 -1
  208. package/dist/temporal/date-time-field.js.map +1 -1
  209. package/dist/temporal/date-time-picker.d.ts +3 -1
  210. package/dist/temporal/date-time-picker.js +1 -1
  211. package/dist/temporal/date-time-picker.js.map +1 -1
  212. package/dist/temporal/date-time-range-field.d.ts +158 -0
  213. package/dist/temporal/date-time-range-field.js +2 -0
  214. package/dist/temporal/date-time-range-field.js.map +1 -0
  215. package/dist/temporal/date-time-range-picker.d.ts +3 -1
  216. package/dist/temporal/date-time-range-picker.js +1 -1
  217. package/dist/temporal/date-time-range-picker.js.map +1 -1
  218. package/dist/temporal/internal/time-presentation.d.ts +15 -0
  219. package/dist/temporal/internal/time-presentation.js +2 -0
  220. package/dist/temporal/internal/time-presentation.js.map +1 -0
  221. package/dist/temporal/month-picker.d.ts +3 -1
  222. package/dist/temporal/month-picker.js.map +1 -1
  223. package/dist/temporal/month-range-picker.d.ts +3 -1
  224. package/dist/temporal/month-range-picker.js.map +1 -1
  225. package/dist/temporal/picker.d.ts +23 -1
  226. package/dist/temporal/picker.js +1 -1
  227. package/dist/temporal/picker.js.map +1 -1
  228. package/dist/temporal/range-calendar.d.ts +119 -2
  229. package/dist/temporal/range-calendar.js +1 -1
  230. package/dist/temporal/range-calendar.js.map +1 -1
  231. package/dist/temporal/temporal-provider.d.ts +23 -0
  232. package/dist/temporal/temporal-provider.js +1 -1
  233. package/dist/temporal/temporal-provider.js.map +1 -1
  234. package/dist/temporal/time-field.d.ts +4 -1
  235. package/dist/temporal/time-field.js +1 -1
  236. package/dist/temporal/time-field.js.map +1 -1
  237. package/dist/temporal/time-picker.d.ts +112 -0
  238. package/dist/temporal/time-picker.js +2 -0
  239. package/dist/temporal/time-picker.js.map +1 -0
  240. package/dist/temporal/time-range-field.d.ts +32 -1
  241. package/dist/temporal/time-range-field.js +1 -1
  242. package/dist/temporal/time-range-field.js.map +1 -1
  243. package/dist/temporal/year-picker.d.ts +3 -1
  244. package/dist/temporal/year-picker.js.map +1 -1
  245. package/dist/temporal/year-range-picker.d.ts +3 -1
  246. package/dist/temporal/year-range-picker.js.map +1 -1
  247. package/dist/text.d.ts +43 -1
  248. package/dist/text.js +1 -1
  249. package/dist/text.js.map +1 -1
  250. package/dist/timer.d.ts +16 -5
  251. package/dist/timer.js +1 -1
  252. package/dist/timer.js.map +1 -1
  253. package/dist/toast.js +1 -1
  254. package/dist/toast.js.map +1 -1
  255. package/dist/toggle-group.js +1 -1
  256. package/dist/toggle-group.js.map +1 -1
  257. package/dist/toolbar.js +1 -1
  258. package/dist/toolbar.js.map +1 -1
  259. package/dist/transfer.d.ts +191 -0
  260. package/dist/transfer.js +2 -0
  261. package/dist/transfer.js.map +1 -0
  262. package/dist/tree-grid.d.ts +122 -0
  263. package/dist/tree-grid.js +1 -1
  264. package/dist/tree-grid.js.map +1 -1
  265. package/dist/tree-select.d.ts +186 -0
  266. package/dist/tree-select.js +2 -0
  267. package/dist/tree-select.js.map +1 -0
  268. package/dist/tree-view.js +1 -1
  269. package/dist/tree-view.js.map +1 -1
  270. package/dist/virtual/virtual-collection.d.ts +2 -0
  271. package/dist/virtual/virtual-collection.js.map +1 -1
  272. package/dist/virtual/virtual-grid.d.ts +12 -2
  273. package/dist/virtual/virtual-grid.js +1 -1
  274. package/dist/virtual/virtual-grid.js.map +1 -1
  275. package/dist/virtual/virtual-list.d.ts +12 -3
  276. package/dist/virtual/virtual-list.js +1 -1
  277. package/dist/virtual/virtual-list.js.map +1 -1
  278. package/dist/virtual/virtual-masonry.d.ts +12 -2
  279. package/dist/virtual/virtual-masonry.js +1 -1
  280. package/dist/virtual/virtual-masonry.js.map +1 -1
  281. package/dist/virtual/virtual-spatial.d.ts +12 -2
  282. package/dist/virtual/virtual-spatial.js +1 -1
  283. package/dist/virtual/virtual-spatial.js.map +1 -1
  284. package/dist/window-splitter.js +1 -1
  285. package/dist/window-splitter.js.map +1 -1
  286. package/package.json +88 -17
@@ -1,2 +1,2 @@
1
- import{computed,shallowRef}from"vue";const semantics=new WeakMap;const refreshers=new WeakMap;function createVueProfileController(semantic){const snapshot=shallowRef(semantic.getSnapshot());const refresh=()=>{snapshot.value=semantic.getSnapshot()};const controller=Object.freeze({snapshot,acceptedViewState:computed(()=>stateOf(snapshot.value).acceptedViewState),requestState:computed(()=>stateOf(snapshot.value).requestState),getSnapshot:()=>semantic.getSnapshot(),dispatch:(event,revision)=>{const result=semantic.dispatch(event,revision);if(result.ok)refresh();return result},synchronizeView:response=>{const result=semantic.synchronizeView(response);if(result.ok)refresh();return result},syncControlledValues:values=>{const result=semantic.syncControlledValues(values);if(result.ok)refresh();return result},requestView:()=>{const result=semantic.requestView();if(result.ok)refresh();return result},abandonRequest:requestID=>{const result=semantic.abandonRequest(requestID);if(result.ok)refresh();return result},subscribeCommands:listener=>semantic.subscribeCommands(listener),attachRequestExecutor:listener=>semantic.attachRequestExecutor(listener),dispose:()=>semantic.dispose()});semantics.set(controller,semantic);refreshers.set(controller,refresh);return controller}function refreshVueProfileController(controller){refreshers.get(controller)?.()}function semanticController(controller){const semantic=semantics.get(controller);if(semantic===void 0)throw new TypeError("Unknown Vue Tabular controller.");return semantic}function aliasVueProfileController(alias,source){const semantic=semantics.get(source);const refresh=refreshers.get(source);if(semantic!==void 0)semantics.set(alias,semantic);if(refresh!==void 0)refreshers.set(alias,refresh)}function stateOf(value){const candidate=value;const state=candidate.tabular?.state??candidate.state;if(state===void 0)throw new TypeError("Invalid Tabular profile snapshot.");return state}function controlledValues(options){return Object.freeze({...options.query===void 0?{}:{query:options.query.value},...options.rowSelection===void 0?{}:{rowSelection:options.rowSelection.value},...options.columnState===void 0?{}:{columnState:options.columnState.value},...options.accessState===void 0?{}:{accessState:options.accessState.value},...options.expansion===void 0?{}:{expansion:options.expansion.value}})}export{aliasVueProfileController,controlledValues,createVueProfileController,refreshVueProfileController,semanticController,stateOf};
1
+ import{computed,shallowRef}from"vue";const semantics=new WeakMap;const refreshers=new WeakMap;function createVueProfileController(semantic){const snapshot=shallowRef(semantic.getSnapshot());const refresh=()=>{snapshot.value=semantic.getSnapshot()};const controller=Object.freeze({snapshot,acceptedViewState:computed(()=>stateOf(snapshot.value).acceptedViewState),requestState:computed(()=>stateOf(snapshot.value).requestState),getSnapshot:()=>semantic.getSnapshot(),dispatch:(event,revision)=>{const result=semantic.dispatch(event,revision);if(result.ok)refresh();return result},synchronizeView:response=>{const result=semantic.synchronizeView(response);if(result.ok)refresh();return result},syncControlledValues:values=>{const result=semantic.syncControlledValues(values);if(result.ok)refresh();return result},requestView:()=>{const result=semantic.requestView();if(result.ok)refresh();return result},abandonRequest:requestID=>{const result=semantic.abandonRequest(requestID);if(result.ok)refresh();return result},subscribeCommands:listener=>semantic.subscribeCommands(listener),attachRequestExecutor:listener=>semantic.attachRequestExecutor(listener),dispose:()=>semantic.dispose()});semantics.set(controller,semantic);refreshers.set(controller,refresh);return controller}function refreshVueProfileController(controller){refreshers.get(controller)?.()}function semanticController(controller){const semantic=semantics.get(controller);if(semantic===void 0)throw new TypeError("Unknown Vue Tabular controller.");return semantic}function aliasVueProfileController(alias,source){const semantic=semantics.get(source);const refresh=refreshers.get(source);if(semantic!==void 0)semantics.set(alias,semantic);if(refresh!==void 0)refreshers.set(alias,refresh)}function snapshotOf(value){const candidate=value;const snapshot=candidate.tabular??candidate;if(snapshot.state===void 0)throw new TypeError("Invalid Tabular profile snapshot.");return snapshot}function stateOf(value){return snapshotOf(value).state}function controlledValues(options){return Object.freeze({...options.query===void 0?{}:{query:options.query.value},...options.rowSelection===void 0?{}:{rowSelection:options.rowSelection.value},...options.columnState===void 0?{}:{columnState:options.columnState.value},...options.accessState===void 0?{}:{accessState:options.accessState.value},...options.expansion===void 0?{}:{expansion:options.expansion.value}})}export{aliasVueProfileController,controlledValues,createVueProfileController,refreshVueProfileController,semanticController,snapshotOf,stateOf};
2
2
  //# sourceMappingURL=controller.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabular/controller.ts"],"mappings":"AAAA,OAAS,SAAU,eAAqD,MAqBxE,MAAM,UAAY,IAAI,QAEtB,MAAM,WAAa,IAAI,QAEjB,SAAU,2BACd,SAAqE,CAErE,MAAM,SAAW,WAAW,SAAS,YAAW,CAAE,EAClD,MAAM,QAAU,IAAW,CAAG,SAAS,MAAQ,SAAS,YAAW,CAAI,EACvE,MAAM,WAA4E,OAAO,OAAO,CAC9F,SACA,kBAAmB,SAAS,IAAM,QAAQ,SAAS,KAAK,EAAE,iBAAiB,EAC3E,aAAc,SAAS,IAAM,QAAQ,SAAS,KAAK,EAAE,YAAY,EACjE,YAAa,IAAM,SAAS,YAAW,EACvC,SAAU,CAAC,MAAc,WAAqB,CAC5C,MAAM,OAAS,SAAS,SAAS,MAAO,QAAQ,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,gBAAkB,UAAiC,CACjD,MAAM,OAAS,SAAS,gBAAgB,QAAQ,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,qBAAuB,QAA4B,CACjD,MAAM,OAAS,SAAS,qBAAqB,MAAM,EACnD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,YAAa,IAAK,CAChB,MAAM,OAAS,SAAS,YAAW,EACnC,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,eAAiB,WAAqB,CACpC,MAAM,OAAS,SAAS,eAAe,SAAS,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,kBAAoB,UAAyC,SAAS,kBAAkB,QAAQ,EAChG,sBAAwB,UAAqF,SAAS,sBAAsB,QAAQ,EACpJ,QAAS,IAAM,SAAS,QAAO,EAChC,EACD,UAAU,IAAI,WAAY,QAAyD,EACnF,WAAW,IAAI,WAAY,OAAO,EAClC,OAAO,UACT,CAEM,SAAU,4BAAmD,WAAuD,CACxH,WAAW,IAAI,UAAU,IAAG,CAC9B,CAEM,SAAU,mBAA0C,WAAuD,CAC/G,MAAM,SAAW,UAAU,IAAI,UAAU,EACzC,GAAI,WAAa,OAAW,MAAM,IAAI,UAAU,iCAAiC,EACjF,OAAO,QACT,CAEM,SAAU,0BACd,MACA,OAAmD,CAEnD,MAAM,SAAW,UAAU,IAAI,MAAM,EACrC,MAAM,QAAU,WAAW,IAAI,MAAM,EACrC,GAAI,WAAa,OAAW,UAAU,IAAI,MAAO,QAAQ,EACzD,GAAI,UAAY,OAAW,WAAW,IAAI,MAAO,OAAO,CAC1D,CAEM,SAAU,QAAQ,MAAc,CACpC,MAAM,UAAY,MAClB,MAAM,MAAQ,UAAU,SAAS,OAAS,UAAU,MACpD,GAAI,QAAU,OAAW,MAAM,IAAI,UAAU,mCAAmC,EAChF,OAAO,KACT,CAEM,SAAU,iBAAiB,QAMhC,CACC,OAAO,OAAO,OAAO,CACnB,GAAI,QAAQ,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,QAAQ,MAAM,KAAK,EACnE,GAAI,QAAQ,eAAiB,OAAY,CAAA,EAAK,CAAE,aAAc,QAAQ,aAAa,KAAK,EACxF,GAAI,QAAQ,cAAgB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,YAAY,KAAK,EACrF,GAAI,QAAQ,cAAgB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,YAAY,KAAK,EACrF,GAAI,QAAQ,YAAc,OAAY,CAAA,EAAK,CAAE,UAAW,QAAQ,UAAU,KAAK,EAChF,CACH","names":[],"file":"controller.js"}
1
+ {"version":3,"sources":["../../src/tabular/controller.ts"],"mappings":"AAAA,OAAS,SAAU,eAAqD,MAqBxE,MAAM,UAAY,IAAI,QAEtB,MAAM,WAAa,IAAI,QAEjB,SAAU,2BACd,SAAqE,CAErE,MAAM,SAAW,WAAW,SAAS,YAAW,CAAE,EAClD,MAAM,QAAU,IAAW,CAAG,SAAS,MAAQ,SAAS,YAAW,CAAI,EACvE,MAAM,WAA4E,OAAO,OAAO,CAC9F,SACA,kBAAmB,SAAS,IAAM,QAAQ,SAAS,KAAK,EAAE,iBAAiB,EAC3E,aAAc,SAAS,IAAM,QAAQ,SAAS,KAAK,EAAE,YAAY,EACjE,YAAa,IAAM,SAAS,YAAW,EACvC,SAAU,CAAC,MAAc,WAAqB,CAC5C,MAAM,OAAS,SAAS,SAAS,MAAO,QAAQ,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,gBAAkB,UAAiC,CACjD,MAAM,OAAS,SAAS,gBAAgB,QAAQ,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,qBAAuB,QAA4B,CACjD,MAAM,OAAS,SAAS,qBAAqB,MAAM,EACnD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,YAAa,IAAK,CAChB,MAAM,OAAS,SAAS,YAAW,EACnC,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,eAAiB,WAAqB,CACpC,MAAM,OAAS,SAAS,eAAe,SAAS,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,kBAAoB,UAAyC,SAAS,kBAAkB,QAAQ,EAChG,sBAAwB,UAAqF,SAAS,sBAAsB,QAAQ,EACpJ,QAAS,IAAM,SAAS,QAAO,EAChC,EACD,UAAU,IAAI,WAAY,QAAyD,EACnF,WAAW,IAAI,WAAY,OAAO,EAClC,OAAO,UACT,CAEM,SAAU,4BAAmD,WAAuD,CACxH,WAAW,IAAI,UAAU,IAAG,CAC9B,CAEM,SAAU,mBAA0C,WAAuD,CAC/G,MAAM,SAAW,UAAU,IAAI,UAAU,EACzC,GAAI,WAAa,OAAW,MAAM,IAAI,UAAU,iCAAiC,EACjF,OAAO,QACT,CAEM,SAAU,0BACd,MACA,OAAmD,CAEnD,MAAM,SAAW,UAAU,IAAI,MAAM,EACrC,MAAM,QAAU,WAAW,IAAI,MAAM,EACrC,GAAI,WAAa,OAAW,UAAU,IAAI,MAAO,QAAQ,EACzD,GAAI,UAAY,OAAW,WAAW,IAAI,MAAO,OAAO,CAC1D,CAEM,SAAU,WAAW,MAAc,CACvC,MAAM,UAAY,MAClB,MAAM,SAAW,UAAU,SAAW,UACtC,GAAI,SAAS,QAAU,OAAW,MAAM,IAAI,UAAU,mCAAmC,EACzF,OAAO,QACT,CAEM,SAAU,QAAQ,MAAc,CACpC,OAAO,WAAW,KAAK,EAAE,KAC3B,CAEM,SAAU,iBAAiB,QAMhC,CACC,OAAO,OAAO,OAAO,CACnB,GAAI,QAAQ,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,QAAQ,MAAM,KAAK,EACnE,GAAI,QAAQ,eAAiB,OAAY,CAAA,EAAK,CAAE,aAAc,QAAQ,aAAa,KAAK,EACxF,GAAI,QAAQ,cAAgB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,YAAY,KAAK,EACrF,GAAI,QAAQ,cAAgB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,YAAY,KAAK,EACrF,GAAI,QAAQ,YAAc,OAAY,CAAA,EAAK,CAAE,UAAW,QAAQ,UAAU,KAAK,EAChF,CACH","names":[],"file":"controller.js"}
@@ -1,10 +1,10 @@
1
- import { type ComputedRef } from 'vue';
1
+ import { type ComputedRef, type ShallowRef } from 'vue';
2
2
  import { type DataGridColumnSizeState as DOMDataGridColumnSizeState, type DataGridDOMCommand } from '@sectile/dom/tabular';
3
3
  import { type DataGridCommand as SemanticDataGridCommand, type DataGridControlledValues, type DataGridController as SemanticDataGridController, type DataGridCursorState, type DataGridEditState, type DataGridEvent, type DataGridOptions as SemanticDataGridOptions, type DataGridProjection, type DataGridState, type DataGridUpdate } from '@sectile/tabular/data-grid';
4
4
  import type { TabularAcceptedViewState, TabularAccessState, TabularCellRecord, TabularColumnState, TabularError, TabularGroupID, TabularHeaderNodeID, TabularLimits, TabularQuery, TabularRequest, TabularRequestState, TabularResult, TabularRow, TabularRowID, TabularRowSelection, TabularView, TabularViewResponse, TabularWireValue } from '@sectile/tabular';
5
5
  import type { PrimitiveAs } from '../primitive.js';
6
6
  import type { DataTableColumnID, DataTableGroupCellsFromSource, DataTableLeafCellsFromSource, DataTableReactiveInput, DataTableWritableRef } from './schema.js';
7
- import { type TabularBodyComponent, type TabularComponent } from './components.js';
7
+ import { type TabularAutomaticBodyProps, type TabularBodyComponent, type TabularComponent } from './components.js';
8
8
  import { type HostConnection } from './parts.js';
9
9
  import { type VueProfileController } from './controller.js';
10
10
  import { type ProfileContext } from './context.js';
@@ -77,6 +77,7 @@ export interface DataGridController<LeafCells extends object = TabularCellRecord
77
77
  readonly group: GroupCells;
78
78
  };
79
79
  readonly acceptedViewState: ComputedRef<DataGridAcceptedViewState<LeafCells, GroupCells>>;
80
+ readonly columnSizes: Readonly<ShallowRef<Readonly<Record<string, number>>>>;
80
81
  getProjection(): DataGridProjection;
81
82
  }
82
83
  export declare function useDataGrid<const Source extends SourceResolver, LeafCells extends object = DataTableLeafCellsFromSource<Source>, GroupCells extends object = DataTableGroupCellsFromSource<Source>>(options: UseDataGridOptions<Source>): DataGridController<LeafCells, GroupCells>;
@@ -165,8 +166,7 @@ export interface DataGridEditorProps<Column extends string = string> extends Dat
165
166
  readonly commitOnChange?: boolean;
166
167
  }
167
168
  export type DataGridHeaderProps = DataGridPartProps;
168
- export interface DataGridBodyProps extends DataGridPartProps {
169
- readonly manual?: boolean;
169
+ export interface DataGridBodyProps extends DataGridPartProps, TabularAutomaticBodyProps {
170
170
  }
171
171
  export interface DataGridPartSlotProps<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> extends DataGridRootSlotProps<LeafCells, GroupCells> {
172
172
  readonly row?: DataGridViewRow<LeafCells, GroupCells>;
@@ -1,2 +1,2 @@
1
- import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataGrid}from"@sectile/dom/tabular";import{createDataGrid}from"@sectile/tabular/data-grid";import{createTabularComponentSuite}from"./components.js";import{createTabularParts}from"./parts.js";import{aliasVueProfileController,controlledValues,createVueProfileController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;const activeConnections=new WeakMap;function useDataGrid(options){for(const property of["query","rowSelection","columnState","accessState","cursor","editState","columnSizeState"])assertExclusive(options,property);const semantic=createDataGrid({columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},...options.isCellDisabled===void 0?{}:{isCellDisabled:options.isCellDisabled},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:false,cursor:options.cursor!==void 0,edit:options.editState!==void 0},initialValues:{...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.cursor===void 0&&options.defaultCursor===void 0?{}:{cursor:options.cursor?.value??options.defaultCursor},...options.editState===void 0&&options.defaultEditState===void 0?{}:{edit:options.editState?.value??options.defaultEditState}},...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onCursorChange===void 0?{}:{onCursorChange:options.onCursorChange},...options.onEditStateChange===void 0?{}:{onEditStateChange:options.onEditStateChange}});const base=createVueProfileController(semantic);const controller=Object.freeze({...base,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));if(options.initialView!==void 0)unwrap(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>unwrap(controller.syncControlledValues(gridControlledValues(options)));for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.cursor,options.editState])if(source2!==void 0)stops.push(watch(()=>source2.value,sync));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrap(controller.dispatch({type:"replace-source"}))}));const rawDispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();rawDispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,hosts.get(controller)??{});if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{hosts.set(wrapped,Object.freeze({...hosts.get(wrapped),columnSizes:value}));const result=activeConnections.get(wrapped)?.syncControlledValues?.({...gridControlledValues(options),columnSizes:value});if(result!==void 0&&!result.ok)throw new TypeError("Controlled DataGrid column sizes failed to synchronize.")},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataGrid");const privateKey=Symbol("SectileDataGridHost");function useDataGridContext(){return useProfile(publicKey,"useDataGridContext")}const parts=createTabularParts({profile:"data-grid",prefix:"DataGrid",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataGrid({controller,root:element,...hosts.get(controller),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>{if(connection===null)activeConnections.delete(controller);else activeConnections.set(controller,connection)}});function gridControlledValues(options){return Object.freeze({...controlledValues(options),...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.editState===void 0?{}:{edit:options.editState.value}})}const componentSuites=new WeakMap;function createDataGridComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataGrid",{Root:"Root",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",RowSelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrap(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataGridComponents,useDataGrid,useDataGridContext};
1
+ import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataGrid}from"@sectile/dom/tabular";import{createDataGrid}from"@sectile/tabular/data-grid";import{createTabularComponentSuite}from"./components.js";import{createTabularHost,createTabularParts}from"./parts.js";import{aliasVueProfileController,controlledValues,createVueProfileController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;function useDataGrid(options){for(const property of["query","rowSelection","columnState","accessState","cursor","editState","columnSizeState"])assertExclusive(options,property);const semantic=createDataGrid({columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},...options.isCellDisabled===void 0?{}:{isCellDisabled:options.isCellDisabled},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:false,cursor:options.cursor!==void 0,edit:options.editState!==void 0},initialValues:{...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.cursor===void 0&&options.defaultCursor===void 0?{}:{cursor:options.cursor?.value??options.defaultCursor},...options.editState===void 0&&options.defaultEditState===void 0?{}:{edit:options.editState?.value??options.defaultEditState}},...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onCursorChange===void 0?{}:{onCursorChange:options.onCursorChange},...options.onEditStateChange===void 0?{}:{onEditStateChange:options.onEditStateChange}});const base=createVueProfileController(semantic);const host=createTabularHost(Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));const controller=Object.freeze({...base,columnSizes:host.columnSizes,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,host);if(options.initialView!==void 0)unwrap(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>unwrap(controller.syncControlledValues(gridControlledValues(options)));for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.cursor,options.editState])if(source2!==void 0)stops.push(watch(()=>source2.value,sync));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrap(controller.dispatch({type:"replace-source"}))}));const rawDispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();rawDispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,host);if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{host.synchronizeColumnSizes(value,gridControlledValues(options))},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataGrid");const privateKey=Symbol("SectileDataGridHost");function useDataGridContext(){return useProfile(publicKey,"useDataGridContext")}const parts=createTabularParts({profile:"data-grid",prefix:"DataGrid",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataGrid({controller,root:element,...hosts.get(controller)?.getOptions(),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>hosts.get(controller)?.connectionChanged(connection)});function gridControlledValues(options){return Object.freeze({...controlledValues(options),...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.editState===void 0?{}:{edit:options.editState.value}})}const componentSuites=new WeakMap;function createDataGridComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataGrid",{Root:"Root",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",RowSelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrap(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataGridComponents,useDataGrid,useDataGridContext};
2
2
  //# sourceMappingURL=data-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabular/data-grid.ts"],"mappings":"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","names":["source"],"file":"data-grid.js"}
1
+ {"version":3,"sources":["../../src/tabular/data-grid.ts"],"mappings":"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","names":["source"],"file":"data-grid.js"}
@@ -1,12 +1,12 @@
1
1
  import type { DataTableColumnID, DataTableGroupCellsFromSource, DataTableLeafCellsFromSource, DataTableReactiveInput, DataTableWritableRef, DataTableSourceResponse } from './schema.js';
2
2
  export type { DataTableFieldPath, DataTableColumnID, DataTableCellValue, DataTableReactiveInput, DataTableWritableRef, DataTableLeafCellsFromSource, DataTableGroupCellsFromSource } from './schema.js';
3
- import { type ComputedRef } from 'vue';
3
+ import { type ComputedRef, type ShallowRef } from 'vue';
4
4
  import { type DataTableColumnSizeState as DOMDataTableColumnSizeState, type DataTableDOMCommand as DOMDataTableCommand } from '@sectile/dom/tabular';
5
5
  import { type DataTableCommand as SemanticDataTableCommand, type DataTableController as SemanticDataTableController, type DataTableEvent, type DataTableProjection, type DataTableUpdate } from '@sectile/tabular/data-table';
6
6
  import type { TabularAcceptedViewState, TabularAccessState, TabularCellRecord, TabularColumnState, TabularError, TabularGroupID, TabularHeaderNodeID, TabularLimits, TabularQuery, TabularRequest, TabularRequestState, TabularResult, TabularRow, TabularRowID, TabularRowSelection, TabularSnapshot, TabularView, TabularViewResponse, TabularWireValue } from '@sectile/tabular';
7
7
  import type { PrimitiveAs } from '../primitive.js';
8
8
  import { type HostConnection } from './parts.js';
9
- import { type TabularBodyComponent, type TabularComponent } from './components.js';
9
+ import { type TabularAutomaticBodyProps, type TabularBodyComponent, type TabularComponent } from './components.js';
10
10
  import { type VueProfileController } from './controller.js';
11
11
  import { type ProfileContext } from './context.js';
12
12
  import { type SourceResolver, type SourceReturn, type SourceStatus } from './source.js';
@@ -72,6 +72,7 @@ export interface DataTableController<LeafCells extends object = TabularCellRecor
72
72
  readonly group: GroupCells;
73
73
  };
74
74
  readonly acceptedViewState: ComputedRef<DataTableAcceptedViewState<LeafCells, GroupCells>>;
75
+ readonly columnSizes: Readonly<ShallowRef<Readonly<Record<string, number>>>>;
75
76
  getProjection(): DataTableProjection;
76
77
  }
77
78
  export declare function useDataTable<const Source extends SourceResolver, LeafCells extends object = DataTableLeafCellsFromSource<Source>, GroupCells extends object = DataTableGroupCellsFromSource<Source>>(options: UseDataTableOptions<Source>): DataTableController<LeafCells, GroupCells>;
@@ -174,8 +175,7 @@ export interface DataTableBodySlotProps<LeafCells extends object = TabularCellRe
174
175
  export type DataTableProviderSlotProps<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = DataTableRootSlotProps<LeafCells, GroupCells>;
175
176
  export type DataTableCaptionProps = DataTablePartProps;
176
177
  export type DataTableHeaderProps = DataTablePartProps;
177
- export interface DataTableBodyProps extends DataTablePartProps {
178
- readonly manual?: boolean;
178
+ export interface DataTableBodyProps extends DataTablePartProps, TabularAutomaticBodyProps {
179
179
  }
180
180
  export type DataTableCaptionSlotProps<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = DataTableRootSlotProps<LeafCells, GroupCells>;
181
181
  export type DataTableHeaderSlotProps<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = DataTableRootSlotProps<LeafCells, GroupCells>;
@@ -1,2 +1,2 @@
1
- import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataTable}from"@sectile/dom/tabular";import{createDataTable}from"@sectile/tabular/data-table";import{createTabularParts}from"./parts.js";import{createTabularComponentSuite}from"./components.js";import{controlledValues,aliasVueProfileController,createVueProfileController,semanticController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;const activeConnections=new WeakMap;function useDataTable(options){assertExclusive(options,"query");assertExclusive(options,"rowSelection");assertExclusive(options,"columnState");assertExclusive(options,"accessState");assertExclusive(options,"expansion");assertExclusive(options,"columnSizeState");const initialValues=Object.freeze({...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.expansion===void 0&&options.defaultExpansion===void 0?{}:{expansion:options.expansion?.value??options.defaultExpansion}});const semanticOptions={columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:options.expansion!==void 0},initialValues,...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onExpansionChange===void 0?{}:{onExpansionChange:options.onExpansionChange}};const semantic=createDataTable(semanticOptions);const base=createVueProfileController(semantic);const controller=Object.freeze({...base,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));if(options.initialView!==void 0)unwrapResult(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>{unwrapResult(controller.syncControlledValues(controlledValues(options)))};for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.expansion])if(source2!==void 0)stops.push(watch(()=>source2.value,sync,{deep:false}));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrapResult(controller.dispatch({type:"replace-source"}))}));const dispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();dispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,hosts.get(controller)??{});if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{hosts.set(wrapped,Object.freeze({...hosts.get(wrapped),columnSizes:value}));const result=activeConnections.get(wrapped)?.syncControlledValues?.({...controlledValues(options),columnSizes:value});if(result!==void 0&&!result.ok)throw new TypeError("Controlled DataTable column sizes failed to synchronize.")},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataTable");const privateKey=Symbol("SectileDataTableHost");function useDataTableContext(){return useProfile(publicKey,"useDataTableContext")}const parts=createTabularParts({profile:"data-table",prefix:"DataTable",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataTable({controller:semanticController(controller),table:element,...hosts.get(controller),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>{if(connection===null)activeConnections.delete(controller);else activeConnections.set(controller,connection)}});const componentSuites=new WeakMap;function createDataTableComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataTable",{Root:"Root",Caption:"Caption",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",SelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Disclosure:"Disclosure",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrapResult(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataTableComponents,useDataTable,useDataTableContext};
1
+ import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataTable}from"@sectile/dom/tabular";import{createDataTable}from"@sectile/tabular/data-table";import{createTabularHost,createTabularParts}from"./parts.js";import{createTabularComponentSuite}from"./components.js";import{controlledValues,aliasVueProfileController,createVueProfileController,semanticController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;function useDataTable(options){assertExclusive(options,"query");assertExclusive(options,"rowSelection");assertExclusive(options,"columnState");assertExclusive(options,"accessState");assertExclusive(options,"expansion");assertExclusive(options,"columnSizeState");const initialValues=Object.freeze({...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.expansion===void 0&&options.defaultExpansion===void 0?{}:{expansion:options.expansion?.value??options.defaultExpansion}});const semanticOptions={columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:options.expansion!==void 0},initialValues,...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onExpansionChange===void 0?{}:{onExpansionChange:options.onExpansionChange}};const semantic=createDataTable(semanticOptions);const base=createVueProfileController(semantic);const host=createTabularHost(Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));const controller=Object.freeze({...base,columnSizes:host.columnSizes,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,host);if(options.initialView!==void 0)unwrapResult(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>{unwrapResult(controller.syncControlledValues(controlledValues(options)))};for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.expansion])if(source2!==void 0)stops.push(watch(()=>source2.value,sync,{deep:false}));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrapResult(controller.dispatch({type:"replace-source"}))}));const dispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();dispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,host);if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{host.synchronizeColumnSizes(value,controlledValues(options))},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataTable");const privateKey=Symbol("SectileDataTableHost");function useDataTableContext(){return useProfile(publicKey,"useDataTableContext")}const parts=createTabularParts({profile:"data-table",prefix:"DataTable",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataTable({controller:semanticController(controller),table:element,...hosts.get(controller)?.getOptions(),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>hosts.get(controller)?.connectionChanged(connection)});const componentSuites=new WeakMap;function createDataTableComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataTable",{Root:"Root",Caption:"Caption",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",SelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Disclosure:"Disclosure",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrapResult(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataTableComponents,useDataTable,useDataTableContext};
2
2
  //# sourceMappingURL=data-table.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabular/data-table.ts"],"mappings":"AAEA,OACE,gBACA,eACA,QACA,UAIK,MACP,OACE,qBAIK,uBACP,OACE,oBAOK,8BAuBP,OAAS,uBAA+C,aACxD,OACE,gCAGK,kBACP,OAAS,iBAAkB,0BAA2B,2BAA4B,uBAAqD,kBACvI,OAAS,eAAuC,eAChD,OAAS,qBAAmF,cAuE5F,MAAM,MAAQ,IAAI,QAClB,MAAM,kBAAoB,IAAI,QAExB,SAAU,aAId,QAAoC,CACpC,gBAAgB,QAAS,OAAO,EAChC,gBAAgB,QAAS,cAAc,EACvC,gBAAgB,QAAS,aAAa,EACtC,gBAAgB,QAAS,aAAa,EACtC,gBAAgB,QAAS,WAAW,EACpC,gBAAgB,QAAS,iBAAiB,EAC1C,MAAM,cAAgB,OAAO,OAAO,CAClC,GAAI,QAAQ,QAAU,QAAa,QAAQ,eAAiB,OAAY,CAAA,EAAK,CAAE,MAAO,QAAQ,OAAO,OAAS,QAAQ,YAAY,EAClI,GAAI,QAAQ,eAAiB,QAAa,QAAQ,sBAAwB,OAAY,CAAA,EAAK,CAAE,aAAc,QAAQ,cAAc,OAAS,QAAQ,mBAAmB,EACrK,GAAI,QAAQ,cAAgB,QAAa,QAAQ,qBAAuB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,aAAa,OAAS,QAAQ,kBAAkB,EAChK,GAAI,QAAQ,cAAgB,QAAa,QAAQ,qBAAuB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,aAAa,OAAS,QAAQ,kBAAkB,EAChK,GAAI,QAAQ,YAAc,QAAa,QAAQ,mBAAqB,OAAY,CAAA,EAAK,CAAE,UAAW,QAAQ,WAAW,OAAS,QAAQ,gBAAgB,EACvJ,EACD,MAAM,gBAA4C,CAChD,QAAS,QAAQ,aAAa,aAAa,SAAW,CAAA,EACtD,QAAS,QAAQ,aAAa,aAAa,SAAW,CAAA,EACtD,GAAI,QAAQ,SAAW,OAAY,CAAA,EAAK,CAAE,OAAQ,QAAQ,MAAM,EAChE,WAAY,CACV,MAAO,QAAQ,QAAU,OACzB,aAAc,QAAQ,eAAiB,OACvC,YAAa,QAAQ,cAAgB,OACrC,YAAa,QAAQ,cAAgB,OACrC,UAAW,QAAQ,YAAc,QAEnC,cACA,GAAI,QAAQ,gBAAkB,OAAY,CAAA,EAAK,CAAE,cAAe,QAAQ,aAAa,EACrF,GAAI,QAAQ,uBAAyB,OAAY,CAAA,EAAK,CAAE,qBAAsB,QAAQ,oBAAoB,EAC1G,GAAI,QAAQ,sBAAwB,OAAY,CAAA,EAAK,CAAE,oBAAqB,QAAQ,mBAAmB,EACvG,GAAI,QAAQ,sBAAwB,OAAY,CAAA,EAAK,CAAE,oBAAqB,QAAQ,mBAAmB,EACvG,GAAI,QAAQ,oBAAsB,OAAY,CAAA,EAAK,CAAE,kBAAmB,QAAQ,iBAAiB,GAEnG,MAAM,SAAW,gBAAgB,eAAe,EAChD,MAAM,KAAO,2BAA2B,QAAQ,EAChD,MAAM,WAAa,OAAO,OAAO,CAAE,GAAG,KAAM,cAAe,IAAM,SAAS,cAAa,CAAE,CAAE,EAC3F,0BAA0B,WAAY,IAAI,EAC1C,MAAM,IAAI,WAAY,OAAO,OAAO,CAClC,GAAI,QAAQ,kBAAoB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,gBAAgB,KAAK,EAC7F,GAAI,QAAQ,yBAA2B,OAAY,CAAA,EAAK,CAAE,mBAAoB,QAAQ,sBAAsB,EAC5G,GAAI,QAAQ,0BAA4B,OAAY,CAAA,EAAK,CAAE,oBAAqB,QAAQ,uBAAuB,EAChH,CAAC,EACF,GAAI,QAAQ,cAAgB,OAAW,aAAa,WAAW,gBAAgB,QAAQ,WAAW,CAAC,EACnG,MAAM,OAAS,iBAAiB,WAAY,QAAQ,OAAQ,CAC1D,GAAI,QAAQ,gBAAkB,OAAY,CAAA,EAAK,CAAE,QAAS,QAAQ,aAAa,EAC/E,GAAI,QAAQ,uBAAyB,OAAY,CAAA,EAAK,CAAE,eAAgB,QAAQ,oBAAoB,EACrG,EACD,MAAM,MAA2B,CAAA,EACjC,MAAM,KAAO,IAAW,CAAG,aAAa,WAAW,qBAAqB,iBAAiB,OAAO,CAAC,CAAC,CAAG,EACrG,UAAWA,UAAU,CAAC,QAAQ,MAAO,QAAQ,aAAc,QAAQ,YAAa,QAAQ,YAAa,QAAQ,SAAS,EAAG,GAAIA,UAAW,OAAW,MAAM,KAAK,MAAM,IAAMA,QAAO,MAAO,KAAM,CAAE,KAAM,KAAK,CAAE,CAAC,EAC9M,GAAI,QAAQ,YAAc,OAAW,MAAM,KAAK,MAAM,IAAM,QAAQ,QAAQ,SAAU,EAAG,IAAK,CAAG,aAAa,WAAW,SAAS,CAAE,KAAM,gBAAgB,CAAE,CAAC,CAAG,CAAC,CAAC,EAClK,MAAM,QAAU,WAAW,QAC3B,MAAM,QAAU,OAAO,OAAO,CAC5B,GAAG,WACH,OAAQ,OAAO,OACf,MAAO,OAAO,MACd,OAAQ,OAAO,OACf,OAAQ,OAAO,OACf,gBAAkB,UAA6D,OAAO,gBAAgB,QAA0B,EAChI,QAAS,IAAK,CAAG,UAAW,QAAQ,MAAM,OAAO,CAAC,EAAG,KAAI,EAAI,OAAO,QAAO,EAAI,QAAO,CAAI,EAC3F,EACD,0BAA0B,QAAS,UAAU,EAC7C,MAAM,IAAI,QAAS,MAAM,IAAI,UAAU,GAAK,CAAA,CAAE,EAC9C,GAAI,QAAQ,kBAAoB,OAAW,MAAM,KAAK,MAAM,IAAM,QAAQ,gBAAiB,MAAQ,OAAS,CAC1G,MAAM,IAAI,QAAS,OAAO,OAAO,CAAE,GAAG,MAAM,IAAI,OAAO,EAAG,YAAa,KAAK,CAAE,CAAC,EAC/E,MAAM,OAAS,kBAAkB,IAAI,OAAO,GAAG,uBAAuB,CAAE,GAAG,iBAAiB,OAAO,EAAG,YAAa,KAAK,CAAE,EAC1H,GAAI,SAAW,QAAa,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,0DAA0D,CACxH,EAAG,CAAE,KAAM,KAAK,CAAE,CAAC,EACnB,GAAI,gBAAe,IAAO,OAAW,eAAe,QAAQ,OAAO,EACnE,OAAO,OACT,CAGA,MAAM,UAAqH,OAAO,kBAAkB,EACpJ,MAAM,WAAsH,OAAO,sBAAsB,EACnJ,SAAU,qBAAmB,CAA4B,OAAO,WAAW,UAAW,qBAAqB,CAAG,CAEpH,MAAM,MAAQ,mBAAmB,CAC/B,QAAS,aAAc,OAAQ,YAAa,UAAW,WACvD,QAAS,CAAC,QAAS,WAAY,YAAc,iBAAiB,CAC5D,WAAY,mBAAmB,UAAU,EACzC,MAAO,QACP,GAAG,MAAM,IAAI,UAAU,EACvB,GAAI,UAAU,YAAc,OAAY,CAAA,EAAK,CAAE,UAAW,UAAU,SAAoC,EACxG,iBAAkB,UAAU,iBAC7B,EACD,kBAAmB,CAAC,WAAY,aAAc,CAAG,GAAI,aAAe,KAAM,kBAAkB,OAAO,UAAU,OAAQ,kBAAkB,IAAI,WAAY,UAAU,CAAG,EACrK,EAgDD,MAAM,gBAAkB,IAAI,QACtB,SAAU,0BAA+E,WAAsD,CACnJ,OAAO,4BAA4B,MAAO,WAAY,gBAAiB,YAAa,CAClF,KAAM,OACN,QAAS,UACT,OAAQ,SACR,UAAW,YACX,aAAc,eACd,YAAa,cACb,cAAe,gBACf,mBAAoB,qBACpB,KAAM,OACN,IAAK,MACL,iBAAkB,mBAClB,qBAAsB,uBACtB,WAAY,aACZ,KAAM,OACN,OAAQ,SACT,CACH,CAEA,SAAS,gBAAgB,QAAiB,SAAgB,CACxD,MAAM,OAAS,QACf,MAAM,SAAW,UAAU,SAAS,CAAC,EAAG,YAAW,CAAE,GAAG,SAAS,MAAM,CAAC,CAAC,GACzE,GAAI,OAAO,QAAQ,IAAM,QAAa,OAAO,QAAQ,IAAM,OAAW,MAAM,IAAI,UAAU,GAAG,QAAQ,QAAQ,QAAQ,0BAA0B,CACjJ,CACA,SAAS,aAAgB,OAAwB,CAAO,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EAAG,OAAO,OAAO,KAAO","names":["source"],"file":"data-table.js"}
1
+ {"version":3,"sources":["../../src/tabular/data-table.ts"],"mappings":"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","names":["source"],"file":"data-table.js"}
@@ -1,10 +1,10 @@
1
- import { type ComputedRef } from 'vue';
1
+ import { type ComputedRef, type ShallowRef } from 'vue';
2
2
  import { type DataTreeGridColumnSizeState as DOMDataTreeGridColumnSizeState, type DataTreeGridDOMCommand } from '@sectile/dom/tabular';
3
3
  import { type DataTreeGridCommand as SemanticDataTreeGridCommand, type DataTreeGridControlledValues, type DataTreeGridController as SemanticDataTreeGridController, type DataTreeGridCursorState, type DataTreeGridEditState, type DataTreeGridEvent, type DataTreeGridExpansionState, type DataTreeGridOptions as SemanticDataTreeGridOptions, type DataTreeGridProjection, type DataTreeGridState, type DataTreeGridUpdate } from '@sectile/tabular/data-tree-grid';
4
4
  import type { TabularAcceptedViewState, TabularAccessState, TabularCellRecord, TabularColumnState, TabularError, TabularGroupID, TabularHeaderNodeID, TabularLimits, TabularQuery, TabularRequest, TabularRequestState, TabularResult, TabularRow, TabularRowID, TabularRowSelection, TabularView, TabularViewResponse, TabularWireValue } from '@sectile/tabular';
5
5
  import type { PrimitiveAs } from '../primitive.js';
6
6
  import type { DataTableColumnID, DataTableGroupCellsFromSource, DataTableLeafCellsFromSource, DataTableReactiveInput, DataTableWritableRef } from './schema.js';
7
- import { type TabularBodyComponent, type TabularComponent } from './components.js';
7
+ import { type TabularAutomaticBodyProps, type TabularBodyComponent, type TabularComponent } from './components.js';
8
8
  import { type HostConnection } from './parts.js';
9
9
  import { type VueProfileController } from './controller.js';
10
10
  import { type ProfileContext } from './context.js';
@@ -81,6 +81,7 @@ export interface DataTreeGridController<LeafCells extends object = TabularCellRe
81
81
  readonly group: GroupCells;
82
82
  };
83
83
  readonly acceptedViewState: ComputedRef<DataTreeGridAcceptedViewState<LeafCells, GroupCells>>;
84
+ readonly columnSizes: Readonly<ShallowRef<Readonly<Record<string, number>>>>;
84
85
  getProjection(): DataTreeGridProjection;
85
86
  }
86
87
  export declare function useDataTreeGrid<const Source extends SourceResolver, LeafCells extends object = DataTableLeafCellsFromSource<Source>, GroupCells extends object = DataTableGroupCellsFromSource<Source>>(options: UseDataTreeGridOptions<Source>): DataTreeGridController<LeafCells, GroupCells>;
@@ -174,8 +175,7 @@ export interface DataTreeGridEditorProps<Column extends string = string> extends
174
175
  readonly commitOnChange?: boolean;
175
176
  }
176
177
  export type DataTreeGridHeaderProps = DataTreeGridPartProps;
177
- export interface DataTreeGridBodyProps extends DataTreeGridPartProps {
178
- readonly manual?: boolean;
178
+ export interface DataTreeGridBodyProps extends DataTreeGridPartProps, TabularAutomaticBodyProps {
179
179
  }
180
180
  export interface DataTreeGridPartSlotProps<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> extends DataTreeGridRootSlotProps<LeafCells, GroupCells> {
181
181
  readonly row?: DataTreeGridViewRow<LeafCells, GroupCells>;
@@ -1,2 +1,2 @@
1
- import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataTreeGrid}from"@sectile/dom/tabular";import{createDataTreeGrid}from"@sectile/tabular/data-tree-grid";import{createTabularComponentSuite}from"./components.js";import{createTabularParts}from"./parts.js";import{aliasVueProfileController,controlledValues,createVueProfileController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;const activeConnections=new WeakMap;function useDataTreeGrid(options){for(const property of["query","rowSelection","columnState","accessState","expansion","cursor","editState","columnSizeState"])assertExclusive(options,property);const semantic=createDataTreeGrid({columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},...options.isCellDisabled===void 0?{}:{isCellDisabled:options.isCellDisabled},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:options.expansion!==void 0,cursor:options.cursor!==void 0,edit:options.editState!==void 0},initialValues:{...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.expansion===void 0&&options.defaultExpansion===void 0?{}:{expansion:options.expansion?.value??options.defaultExpansion},...options.cursor===void 0&&options.defaultCursor===void 0?{}:{cursor:options.cursor?.value??options.defaultCursor},...options.editState===void 0&&options.defaultEditState===void 0?{}:{edit:options.editState?.value??options.defaultEditState}},...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onExpansionChange===void 0?{}:{onExpansionChange:options.onExpansionChange},...options.onCursorChange===void 0?{}:{onCursorChange:options.onCursorChange},...options.onEditStateChange===void 0?{}:{onEditStateChange:options.onEditStateChange}});const base=createVueProfileController(semantic);const controller=Object.freeze({...base,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));if(options.initialView!==void 0)unwrap(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>unwrap(controller.syncControlledValues(treeGridControlledValues(options)));for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.expansion,options.cursor,options.editState])if(source2!==void 0)stops.push(watch(()=>source2.value,sync));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrap(controller.dispatch({type:"replace-source"}))}));const rawDispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();rawDispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,hosts.get(controller)??{});if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{hosts.set(wrapped,Object.freeze({...hosts.get(wrapped),columnSizes:value}));const result=activeConnections.get(wrapped)?.syncControlledValues?.({...treeGridControlledValues(options),columnSizes:value});if(result!==void 0&&!result.ok)throw new TypeError("Controlled DataTreeGrid column sizes failed to synchronize.")},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataTreeGrid");const privateKey=Symbol("SectileDataTreeGridHost");function useDataTreeGridContext(){return useProfile(publicKey,"useDataTreeGridContext")}const parts=createTabularParts({profile:"data-tree-grid",prefix:"DataTreeGrid",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataTreeGrid({controller,root:element,...hosts.get(controller),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>{if(connection===null)activeConnections.delete(controller);else activeConnections.set(controller,connection)}});function treeGridControlledValues(options){return Object.freeze({...controlledValues(options),...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.editState===void 0?{}:{edit:options.editState.value}})}const componentSuites=new WeakMap;function createDataTreeGridComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataTreeGrid",{Root:"Root",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",RowDisclosure:"Disclosure",RowSelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrap(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataTreeGridComponents,useDataTreeGrid,useDataTreeGridContext};
1
+ import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataTreeGrid}from"@sectile/dom/tabular";import{createDataTreeGrid}from"@sectile/tabular/data-tree-grid";import{createTabularComponentSuite}from"./components.js";import{createTabularHost,createTabularParts}from"./parts.js";import{aliasVueProfileController,controlledValues,createVueProfileController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;function useDataTreeGrid(options){for(const property of["query","rowSelection","columnState","accessState","expansion","cursor","editState","columnSizeState"])assertExclusive(options,property);const semantic=createDataTreeGrid({columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},...options.isCellDisabled===void 0?{}:{isCellDisabled:options.isCellDisabled},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:options.expansion!==void 0,cursor:options.cursor!==void 0,edit:options.editState!==void 0},initialValues:{...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.expansion===void 0&&options.defaultExpansion===void 0?{}:{expansion:options.expansion?.value??options.defaultExpansion},...options.cursor===void 0&&options.defaultCursor===void 0?{}:{cursor:options.cursor?.value??options.defaultCursor},...options.editState===void 0&&options.defaultEditState===void 0?{}:{edit:options.editState?.value??options.defaultEditState}},...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onExpansionChange===void 0?{}:{onExpansionChange:options.onExpansionChange},...options.onCursorChange===void 0?{}:{onCursorChange:options.onCursorChange},...options.onEditStateChange===void 0?{}:{onEditStateChange:options.onEditStateChange}});const base=createVueProfileController(semantic);const host=createTabularHost(Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));const controller=Object.freeze({...base,columnSizes:host.columnSizes,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,host);if(options.initialView!==void 0)unwrap(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>unwrap(controller.syncControlledValues(treeGridControlledValues(options)));for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.expansion,options.cursor,options.editState])if(source2!==void 0)stops.push(watch(()=>source2.value,sync));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrap(controller.dispatch({type:"replace-source"}))}));const rawDispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();rawDispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,host);if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{host.synchronizeColumnSizes(value,treeGridControlledValues(options))},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataTreeGrid");const privateKey=Symbol("SectileDataTreeGridHost");function useDataTreeGridContext(){return useProfile(publicKey,"useDataTreeGridContext")}const parts=createTabularParts({profile:"data-tree-grid",prefix:"DataTreeGrid",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataTreeGrid({controller,root:element,...hosts.get(controller)?.getOptions(),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>hosts.get(controller)?.connectionChanged(connection)});function treeGridControlledValues(options){return Object.freeze({...controlledValues(options),...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.editState===void 0?{}:{edit:options.editState.value}})}const componentSuites=new WeakMap;function createDataTreeGridComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataTreeGrid",{Root:"Root",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",RowDisclosure:"Disclosure",RowSelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrap(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataTreeGridComponents,useDataTreeGrid,useDataTreeGridContext};
2
2
  //# sourceMappingURL=data-tree-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabular/data-tree-grid.ts"],"mappings":"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","names":["source"],"file":"data-tree-grid.js"}
1
+ {"version":3,"sources":["../../src/tabular/data-tree-grid.ts"],"mappings":"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","names":["source"],"file":"data-tree-grid.js"}
@@ -1,5 +1,6 @@
1
- import { type Component, type InjectionKey } from 'vue';
1
+ import { type Component, type InjectionKey, type ShallowRef } from 'vue';
2
2
  import type { TabularCellAddress, TabularColumnID, TabularGroupID, TabularHeaderNodeID, TabularRowID } from '@sectile/tabular';
3
+ import type { DataTableConnectionOptions, DataTableColumnSizeState } from '@sectile/dom/tabular';
3
4
  import { type ProfileContext } from './context.js';
4
5
  import { type VueProfileController } from './controller.js';
5
6
  export interface HostConnection {
@@ -8,6 +9,7 @@ export interface HostConnection {
8
9
  getProjection(): {
9
10
  readonly generation: number;
10
11
  };
12
+ getColumnSizeState(): DataTableColumnSizeState;
11
13
  setHeaderCellAttributes?(element: HTMLTableCellElement, options: HeaderReference): void;
12
14
  setColumnHeaderAttributes?(element: HTMLElement, options: HeaderReference): void;
13
15
  registerRow(element: HTMLElement, options: {
@@ -40,6 +42,14 @@ export interface HostConnection {
40
42
  readonly ok: boolean;
41
43
  };
42
44
  }
45
+ type HostColumnSizeOptions = Pick<DataTableConnectionOptions, 'columnSizes' | 'defaultColumnSizes' | 'onColumnSizesChange'>;
46
+ export interface TabularHost {
47
+ readonly columnSizes: Readonly<ShallowRef<Readonly<Record<string, number>>>>;
48
+ getOptions(): HostColumnSizeOptions;
49
+ connectionChanged(connection: HostConnection | null): void;
50
+ synchronizeColumnSizes(values: Readonly<Record<string, number>>, controlled: object): void;
51
+ }
52
+ export declare function createTabularHost(initialOptions: HostColumnSizeOptions): TabularHost;
43
53
  type HeaderReference = {
44
54
  readonly columnID: TabularColumnID;
45
55
  readonly headerNodeID?: never;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide}from"vue";import{Primitive}from"../primitive.js";import{provideProfile,useProfile}from"./context.js";import{refreshVueProfileController,stateOf}from"./controller.js";const asProp={type:[String,Object,Function],default:"div"};const asChildProp={type:Boolean,default:false};const identityProps={rowID:{type:String,default:void 0},column:{type:String,required:true}};function createTabularParts(config){const rowKey=Symbol(`Sectile${config.prefix}Row`);const usePublic=name=>useProfile(config.publicKey,`${config.prefix}${name}`);const usePrivate=name=>useProfile(config.privateKey,`${config.prefix}${name}`);const structural=(suffix,part,tag)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{as:{...asProp,default:tag},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic(suffix);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="header"||part==="body"?"rowgroup":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const boundPart=(suffix,part,tag,props,bind,rowAware=false)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{...props,as:{...asProp,default:tag},asChild:asChildProp},setup(runtimeProps,{attrs,slots}){const context=usePrivate(suffix);const inheritedRow=rowAware?inject(rowKey,null):null;const values=()=>{const resolved=runtimeProps;if(!rowAware||resolved["rowID"]!==void 0)return resolved;const row=inheritedRow?.value;if(row===void 0)throw new TypeError(`${config.prefix}${suffix} requires rowID outside automatic ${config.prefix}Body.`);return Object.freeze({...resolved,rowID:row.id})};let release;onBeforeUnmount(()=>release?.());const elementRef=value=>{release?.();release=void 0;if(!(value instanceof HTMLElement)||context.connection.value===null)return;release=bind(context.connection.value,value,values())};return()=>h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="row"?"row":part==="column-header"?"columnheader":part==="cell"?"gridcell":void 0}),{default:()=>slots["default"]?.(partSlot(context,inheritedRow))})}});const Provider=defineComponent({name:`Sectile${config.prefix}Provider`,props:{controller:{type:Object,required:true}},setup(props,{slots}){const context=provideProfile(config.publicKey,config.privateKey,props.controller);return()=>slots["default"]?.(rootSlot(context))}});const rootTag=config.profile==="data-table"?"table":"div";const Root=defineComponent({name:`Sectile${config.prefix}Root`,inheritAttrs:false,props:{onCommand:{type:Function,default:void 0},onError:{type:Function,default:void 0},as:{...asProp,default:rootTag},asChild:asChildProp},setup(props,{attrs,expose,slots}){const context=usePrivate("Root");let element=null;const connect=()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null;if(element===null)return;try{context.connection.value=config.connect(element,context.controller,{...props.onCommand===void 0?{}:{onCommand:props.onCommand},onSnapshotChange:()=>refreshVueProfileController(context.controller)});config.connectionChanged?.(context.controller,context.connection.value)}catch(error){props.onError?.(error);if(props.onError===void 0)throw error}};onMounted(connect);onBeforeUnmount(()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null});expose({controller:context.controller,refresh:()=>context.connection.value?.refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:value=>{element=value instanceof HTMLElement?value:null},"data-scope":config.profile,"data-part":"root",role:config.profile==="data-grid"?"grid":config.profile==="data-tree-grid"?"treegrid":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const table=config.profile==="data-table";const Caption=structural("Caption","caption","caption");const Header=structural("Header","header",table?"thead":"div");const HeaderRow=defineComponent({name:`Sectile${config.prefix}HeaderRow`,inheritAttrs:false,props:{as:{...asProp,default:table?"tr":"div"},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic("HeaderRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:table?void 0:"row","data-scope":config.profile,"data-part":"header-row"}),{default:()=>slots["default"]?.(rootSlot(context))})}});const ColumnHeader=boundPart("ColumnHeader","column-header",table?"th":"div",{column:{type:String,default:void 0},header:{type:String,default:void 0}},(connection,element,props)=>{const column=props["column"];const header=props["header"];if(column===void 0===(header===void 0)){throw new TypeError(`${config.prefix}ColumnHeader requires exactly one of column or header.`)}const reference=column===void 0?{headerNodeID:String(header)}:{columnID:String(column)};if(table&&element instanceof HTMLTableCellElement)connection.setHeaderCellAttributes?.(element,reference);else connection.setColumnHeaderAttributes?.(element,reference);return void 0});const Row=boundPart("Row","row",table?"tr":"div",{rowID:{type:String,required:true}},(connection,element,props)=>{const result=connection.registerRow(element,{rowID:String(props["rowID"]),expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0});const AutomaticRow=defineComponent({name:`Sectile${config.prefix}AutomaticRow`,props:{row:{type:Object,required:true}},setup(props,{slots}){provide(rowKey,computed(()=>props.row));return()=>h(Row,{rowID:props.row.id,"data-row-id":props.row.id,"data-row-kind":props.row.kind,...props.row.kind==="group"&&props.row.contextOnly===true?{"data-context-only":""}:{}},{default:()=>slots["default"]?.()})}});const Body=defineComponent({name:`Sectile${config.prefix}Body`,inheritAttrs:false,props:{manual:{type:Boolean,default:false},as:{...asProp,default:table?"tbody":"div"},asChild:asChildProp},slots:Object,setup(props,{attrs,slots}){const context=usePublic("Body");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":"body",role:table?void 0:"rowgroup"}),{default:()=>{const root=rootSlot(context);if(props.manual)return slots["default"]?.(root);const rows=root["rows"];if(rows.length===0)return slots["empty"]?.(root);return rows.map((row,rowIndex)=>h(AutomaticRow,{key:row.id,row},{default:()=>slots["default"]?.(Object.freeze({...root,row,rowIndex,isGroup:row.kind==="group"}))}))}})}});const Cell=boundPart("Cell","cell",table?"td":"div",identityProps,(connection,element,props)=>{const result=connection.registerCell(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0},true);const SortTrigger=boundPart("SortTrigger","sort-trigger","button",{column:{type:String,required:true},comparator:{type:String,default:"default"}},(connection,element,props)=>connection.bindSortTrigger(element,{columnID:String(props["column"]),comparator:String(props["comparator"])}));const FilterControl=boundPart("FilterControl","filter-control","input",{scope:{type:String,required:true},column:{type:String,default:void 0},id:{type:String,required:true},predicate:{type:String,required:true}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLSelectElement?connection.bindFilterControl(element,props["scope"]==="column"?{scope:"column",columnID:String(props["column"]),id:String(props["id"]),predicate:String(props["predicate"])}:{scope:"global",id:String(props["id"]),predicate:String(props["predicate"])}):void 0);const ColumnResizeHandle=boundPart("ColumnResizeHandle","column-resize-handle","button",{column:{type:String,required:true},minSize:{type:Number,default:void 0},maxSize:{type:Number,default:void 0}},(connection,element,props)=>connection.bindColumnResizeHandle(element,{columnID:String(props["column"]),...typeof props["minSize"]==="number"?{minSize:props["minSize"]}:{},...typeof props["maxSize"]==="number"?{maxSize:props["maxSize"]}:{}}));const SelectionControl=boundPart(table?"SelectionControl":"RowSelectionControl","selection-control","input",{rowID:{type:String,default:void 0},name:{type:String,required:true},value:{type:String,default:void 0},form:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>{const rowID=String(props["rowID"]);const options={rowID,name:String(props["name"]),value:props["value"]===void 0?rowID:String(props["value"]),...typeof props["form"]==="string"?{form:props["form"]}:{},disabled:props["disabled"]===true};return table?connection.bindSelectionControl?.(element,options):connection.bindRowSelectionControl?.(element,options)},true);const BulkSelectionControl=boundPart("BulkSelectionControl","bulk-selection-control","button",{target:{type:Object,required:true},disabled:{type:Boolean,default:false}},(connection,element,props)=>connection.bindBulkSelectionControl(element,{target:props["target"],disabled:props["disabled"]===true}));const Disclosure=boundPart(config.profile==="data-tree-grid"?"RowDisclosure":"Disclosure","disclosure","button",{rowID:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>config.profile==="data-tree-grid"?connection.bindRowDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}):connection.bindDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}),true);const Editor=boundPart("Editor","editor","input",{...identityProps,parseValue:{type:Function,default:void 0},commitOnChange:{type:Boolean,default:false}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLTextAreaElement||element instanceof HTMLSelectElement?connection.bindEditor(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},...typeof props["parseValue"]==="function"?{parseValue:props["parseValue"]}:{},commitOnChange:props["commitOnChange"]===true}):void 0,true);return Object.freeze({Provider,Root,Caption,Header,HeaderRow,ColumnHeader,SortTrigger,FilterControl,ColumnResizeHandle,Body,Row,SelectionControl,BulkSelectionControl,Disclosure,Cell,Editor})}function rootSlot(context){const state=stateOf(context.snapshot.value);const profile=context.snapshot.value;return Object.freeze({controller:context.controller,snapshot:context.snapshot.value,acceptedViewState:state.acceptedViewState,requestState:state.requestState,query:state.query,rowSelection:state.rowSelection,columnState:state.columnState,accessState:state.accessState,expansion:state.expansion,rows:state.acceptedViewState.kind==="none"?Object.freeze([]):state.acceptedViewState.view.rows,...profile.cursor===void 0?{}:{cursor:profile.cursor},...profile.edit===void 0?{}:{editState:profile.edit}})}function partSlot(context,row){const root=rootSlot(context);return row===null?root:Object.freeze({...root,row:row.value,isGroup:row.value.kind==="group"})}export{createTabularParts};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,watch,provide,shallowRef}from"vue";import{getAllMatchingSelectionState,rowSelectionContains}from"@sectile/tabular/data-table";import{Primitive}from"../primitive.js";import{provideProfile,useProfile}from"./context.js";import{refreshVueProfileController,snapshotOf,stateOf}from"./controller.js";function createTabularHost(initialOptions){let options=initialOptions;let connection=null;const columnSizes=shallowRef(options.columnSizes??options.defaultColumnSizes??Object.freeze({}));return{columnSizes,getOptions:()=>options,connectionChanged:value=>{connection=value;if(value!==null)columnSizes.value=value.getColumnSizeState().values},synchronizeColumnSizes:(values,controlled)=>{const result=connection?.syncControlledValues?.({...controlled,columnSizes:values});if(result!==void 0&&!result.ok)throw new TypeError("Controlled Tabular column sizes failed to synchronize.");options=Object.freeze({...options,columnSizes:values});if(connection===null)columnSizes.value=values}}}const asProp={type:[String,Object,Function],default:"div"};const asChildProp={type:Boolean,default:false};const identityProps={rowID:{type:String,default:void 0},column:{type:String,required:true}};function createTabularParts(config){const rowKey=Symbol(`Sectile${config.prefix}Row`);const usePublic=name=>useProfile(config.publicKey,`${config.prefix}${name}`);const usePrivate=name=>useProfile(config.privateKey,`${config.prefix}${name}`);const structural=(suffix,part,tag)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{as:{...asProp,default:tag},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic(suffix);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="header"||part==="body"?"rowgroup":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const boundPart=(suffix,part,tag,props,bind,rowAware=false,seedAttributes)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{...props,as:{...asProp,default:tag},asChild:asChildProp},setup(runtimeProps,{attrs,slots}){const context=usePrivate(suffix);const inheritedRow=rowAware?inject(rowKey,null):null;const values=()=>{const resolved=runtimeProps;if(!rowAware||resolved["rowID"]!==void 0)return resolved;const row=inheritedRow?.value;if(row===void 0)throw new TypeError(`${config.prefix}${suffix} requires rowID outside automatic ${config.prefix}Body.`);return Object.freeze({...resolved,rowID:row.id})};let release;let element=null;const rebind=()=>{release?.();release=void 0;if(element===null||context.connection.value===null)return;release=bind(context.connection.value,element,values())};const elementRef=value=>{element=value instanceof HTMLElement?value:null;rebind()};watch([context.connection,...Object.keys(props).map(key=>()=>runtimeProps[key]),...rowAware?[()=>inheritedRow?.value.id]:[],...suffix==="ColumnHeader"?[context.snapshot]:[]],rebind,{flush:"post"});onBeforeUnmount(()=>{element=null;release?.();release=void 0});return()=>{const profile=seedAttributes&&(suffix==="BulkSelectionControl"||suffix==="Editor"||runtimeProps.as==="input"&&!runtimeProps.asChild)?context.controller.getSnapshot():void 0;return h(Primitive,mergeProps(attrs,{...seedAttributes&&profile!==void 0?seedAttributes(values(),snapshotOf(profile),runtimeProps.asChild?void 0:runtimeProps.as,profile):void 0,as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef,"data-scope":config.profile,"data-part":part,role:suffix==="BulkSelectionControl"?"checkbox":config.profile==="data-table"?void 0:part==="row"?"row":part==="column-header"?"columnheader":part==="cell"?"gridcell":void 0}),{default:()=>slots["default"]?.(partSlot(context,inheritedRow))})}}});const Provider=defineComponent({name:`Sectile${config.prefix}Provider`,props:{controller:{type:Object,required:true}},setup(props,{slots}){const context=provideProfile(config.publicKey,config.privateKey,props.controller);return()=>slots["default"]?.(rootSlot(context))}});const rootTag=config.profile==="data-table"?"table":"div";const Root=defineComponent({name:`Sectile${config.prefix}Root`,inheritAttrs:false,props:{onCommand:{type:Function,default:void 0},onError:{type:Function,default:void 0},as:{...asProp,default:rootTag},asChild:asChildProp},setup(props,{attrs,expose,slots}){const context=usePrivate("Root");let element=null;watch(context.snapshot,()=>context.connection.value?.refresh(),{flush:"post"});const connect=()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null;if(element===null)return;try{context.connection.value=config.connect(element,context.controller,{...props.onCommand===void 0?{}:{onCommand:props.onCommand},onSnapshotChange:()=>{config.connectionChanged?.(context.controller,context.connection.value);refreshVueProfileController(context.controller)}});config.connectionChanged?.(context.controller,context.connection.value)}catch(error){props.onError?.(error);if(props.onError===void 0)throw error}};onMounted(connect);onBeforeUnmount(()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null});expose({controller:context.controller,refresh:()=>context.connection.value?.refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:value=>{element=value instanceof HTMLElement?value:null},"data-scope":config.profile,"data-part":"root",role:config.profile==="data-grid"?"grid":config.profile==="data-tree-grid"?"treegrid":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const table=config.profile==="data-table";const Caption=structural("Caption","caption","caption");const Header=structural("Header","header",table?"thead":"div");const HeaderRow=defineComponent({name:`Sectile${config.prefix}HeaderRow`,inheritAttrs:false,props:{as:{...asProp,default:table?"tr":"div"},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic("HeaderRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:table?void 0:"row","data-scope":config.profile,"data-part":"header-row"}),{default:()=>slots["default"]?.(rootSlot(context))})}});const ColumnHeader=boundPart("ColumnHeader","column-header",table?"th":"div",{column:{type:String,default:void 0},header:{type:String,default:void 0}},(connection,element,props)=>{const column=props["column"];const header=props["header"];if(column===void 0===(header===void 0)){throw new TypeError(`${config.prefix}ColumnHeader requires exactly one of column or header.`)}const reference=column===void 0?{headerNodeID:String(header)}:{columnID:String(column)};if(table&&element instanceof HTMLTableCellElement)connection.setHeaderCellAttributes?.(element,reference);else connection.setColumnHeaderAttributes?.(element,reference);return void 0});const Row=boundPart("Row","row",table?"tr":"div",{rowID:{type:String,required:true}},(connection,element,props)=>{const result=connection.registerRow(element,{rowID:String(props["rowID"]),expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0});const AutomaticRow=defineComponent({name:`Sectile${config.prefix}AutomaticRow`,inheritAttrs:false,props:{row:{type:Object,required:true}},setup(props,{attrs,slots}){provide(rowKey,computed(()=>props.row));return()=>h(Row,mergeProps(attrs,{as:table?"tr":"div",asChild:false,rowID:props.row.id,"data-row-id":props.row.id,"data-row-kind":props.row.kind,"data-context-only":props.row.kind==="group"&&props.row.contextOnly===true?"":void 0}),{default:()=>slots["default"]?.()})}});const Body=defineComponent({name:`Sectile${config.prefix}Body`,inheritAttrs:false,props:{manual:{type:Boolean,default:false},rowAttributes:{type:Object,default:void 0},as:{...asProp,default:table?"tbody":"div"},asChild:asChildProp},slots:Object,setup(props,{attrs,slots}){const context=usePublic("Body");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":"body",role:table?void 0:"rowgroup"}),{default:()=>{const root=rootSlot(context);if(props.manual)return slots["default"]?.(root);const rows=root["rows"];if(rows.length===0)return slots["empty"]?.(root);return rows.map((row,rowIndex)=>h(AutomaticRow,{...props.rowAttributes,key:row.id,row},{default:()=>slots["default"]?.(Object.freeze({...root,row,rowIndex,isGroup:row.kind==="group"}))}))}})}});const Cell=boundPart("Cell","cell",table?"td":"div",identityProps,(connection,element,props)=>{const result=connection.registerCell(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0},true);const SortTrigger=boundPart("SortTrigger","sort-trigger","button",{column:{type:String,required:true},comparator:{type:String,default:"default"}},(connection,element,props)=>connection.bindSortTrigger(element,{columnID:String(props["column"]),comparator:String(props["comparator"])}));const FilterControl=boundPart("FilterControl","filter-control","input",{scope:{type:String,required:true},column:{type:String,default:void 0},id:{type:String,required:true},predicate:{type:String,required:true}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLSelectElement?connection.bindFilterControl(element,props["scope"]==="column"?{scope:"column",columnID:String(props["column"]),id:String(props["id"]),predicate:String(props["predicate"])}:{scope:"global",id:String(props["id"]),predicate:String(props["predicate"])}):void 0);const ColumnResizeHandle=boundPart("ColumnResizeHandle","column-resize-handle","button",{column:{type:String,required:true},minSize:{type:Number,default:void 0},maxSize:{type:Number,default:void 0}},(connection,element,props)=>connection.bindColumnResizeHandle(element,{columnID:String(props["column"]),...typeof props["minSize"]==="number"?{minSize:props["minSize"]}:{},...typeof props["maxSize"]==="number"?{maxSize:props["maxSize"]}:{}}));const SelectionControl=boundPart(table?"SelectionControl":"RowSelectionControl","selection-control","input",{rowID:{type:String,default:void 0},name:{type:String,required:true},value:{type:String,default:void 0},form:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>{const rowID=String(props["rowID"]);const options={rowID,name:String(props["name"]),value:props["value"]===void 0?rowID:String(props["value"]),...typeof props["form"]==="string"?{form:props["form"]}:{},disabled:props["disabled"]===true};return table?connection.bindSelectionControl?.(element,options):connection.bindRowSelectionControl?.(element,options)},true,(props,snapshot)=>({type:"checkbox",checked:rowSelectionContains(snapshot.state.rowSelection,String(props["rowID"])),name:snapshot.state.rowSelection.kind==="explicit-rows"?String(props["name"]):void 0,value:props["value"]===void 0?String(props["rowID"]):String(props["value"]),form:props["form"],disabled:props["disabled"]===true}));const BulkSelectionControl=boundPart("BulkSelectionControl","bulk-selection-control","button",{target:{type:Object,required:true},disabled:{type:Boolean,default:false}},(connection,element,props)=>connection.bindBulkSelectionControl(element,{target:props["target"],disabled:props["disabled"]===true}),false,(props,snapshot,as)=>{const state=props["target"].kind==="all-matching"?getAllMatchingSelectionState(snapshot):"unchecked";const disabled=props["disabled"]===true;return{role:"checkbox","aria-checked":state==="indeterminate"?"mixed":String(state==="checked"),"aria-disabled":String(disabled),"data-state":state,...as==="input"?{type:"checkbox",checked:state==="checked",indeterminate:state==="indeterminate",disabled}:as==="button"?{type:"button",disabled}:as===void 0?{disabled}:{tabindex:disabled?-1:0}}});const Disclosure=boundPart(config.profile==="data-tree-grid"?"RowDisclosure":"Disclosure","disclosure","button",{rowID:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>config.profile==="data-tree-grid"?connection.bindRowDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}):connection.bindDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}),true);const Editor=boundPart("Editor","editor","input",{...identityProps,parseValue:{type:Function,default:void 0},commitOnChange:{type:Boolean,default:false}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLTextAreaElement||element instanceof HTMLSelectElement?connection.bindEditor(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},...typeof props["parseValue"]==="function"?{parseValue:props["parseValue"]}:{},commitOnChange:props["commitOnChange"]===true}):void 0,true,table?void 0:(props,_snapshot,_as,profile)=>{const edit=profile.edit;return{hidden:edit.kind!=="editing"||edit.cell.rowID!==String(props["rowID"])||edit.cell.columnID!==String(props["column"])}});return Object.freeze({Provider,Root,Caption,Header,HeaderRow,ColumnHeader,SortTrigger,FilterControl,ColumnResizeHandle,Body,Row,SelectionControl,BulkSelectionControl,Disclosure,Cell,Editor})}function rootSlot(context){const state=stateOf(context.snapshot.value);const profile=context.snapshot.value;return Object.freeze({controller:context.controller,snapshot:context.snapshot.value,acceptedViewState:state.acceptedViewState,requestState:state.requestState,query:state.query,rowSelection:state.rowSelection,columnState:state.columnState,accessState:state.accessState,expansion:state.expansion,rows:state.acceptedViewState.kind==="none"?Object.freeze([]):state.acceptedViewState.view.rows,...profile.cursor===void 0?{}:{cursor:profile.cursor},...profile.edit===void 0?{}:{editState:profile.edit}})}function partSlot(context,row){const root=rootSlot(context);return row===null?root:Object.freeze({...root,row:row.value,isGroup:row.value.kind==="group"})}export{createTabularHost,createTabularParts};
2
2
  //# sourceMappingURL=parts.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabular/parts.ts"],"mappings":"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","names":[],"file":"parts.js"}
1
+ {"version":3,"sources":["../../src/tabular/parts.ts"],"mappings":"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","names":[],"file":"parts.js"}
@@ -1,5 +1,6 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
- import { type TagsInputPolicies } from '@sectile/dom/tags-input';
2
+ import { type TagsInputPolicies, type TagsInputRemoveLabelResolver } from '@sectile/dom/tags-input';
3
+ export type { TagsInputRemoveLabelResolver } from '@sectile/dom/tags-input';
3
4
  import { type PrimitiveAs } from './primitive.js';
4
5
  export interface TagsInputRootProps {
5
6
  readonly modelValue?: readonly string[];
@@ -9,6 +10,7 @@ export interface TagsInputRootProps {
9
10
  readonly disabled?: boolean;
10
11
  readonly?: boolean;
11
12
  readonly label?: string;
13
+ readonly removeLabel?: TagsInputRemoveLabelResolver;
12
14
  readonly name?: string;
13
15
  readonly form?: string;
14
16
  readonly required?: boolean;
@@ -70,6 +72,10 @@ export declare const TagsInputRoot: import("vue").DefineComponent<import("vue").
70
72
  type: StringConstructor;
71
73
  default: undefined;
72
74
  };
75
+ removeLabel: {
76
+ type: PropType<TagsInputRemoveLabelResolver>;
77
+ default: undefined;
78
+ };
73
79
  form: {
74
80
  type: StringConstructor;
75
81
  default: undefined;
@@ -126,6 +132,10 @@ export declare const TagsInputRoot: import("vue").DefineComponent<import("vue").
126
132
  type: StringConstructor;
127
133
  default: undefined;
128
134
  };
135
+ removeLabel: {
136
+ type: PropType<TagsInputRemoveLabelResolver>;
137
+ default: undefined;
138
+ };
129
139
  form: {
130
140
  type: StringConstructor;
131
141
  default: undefined;
@@ -158,6 +168,7 @@ export declare const TagsInputRoot: import("vue").DefineComponent<import("vue").
158
168
  readonly: boolean;
159
169
  label: string;
160
170
  name: string;
171
+ removeLabel: TagsInputRemoveLabelResolver;
161
172
  form: string;
162
173
  required: boolean;
163
174
  policies: TagsInputPolicies;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTagsInput}from"@sectile/dom/tags-input";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostDirection}from"./host-provider.js";const rootKey=Symbol("SectileTagsInputRoot");const itemKey=Symbol("SectileTagsInputItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const TagsInputRoot=defineComponent({name:"SectileTagsInputRoot",inheritAttrs:false,props:{modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:"Tags"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const root=shallowRef(null);const input=shallowRef(null);const submissionElements=[];const initialTags=Object.freeze([...props.defaultValue]);const initialInput=props.defaultInputValue;const participation=useCompositeFormControl({root,focusTarget:input,submissions:()=>state.value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities})),reset:()=>{queueMicrotask(()=>{if(!valueControlled)localTags.value=initialTags;if(!inputControlled)localInput.value=initialInput;connect()})}});provideFormControlOwner();const connection=shallowRef();const localTags=shallowRef(props.modelValue??initialTags);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const valueControlled=props.modelValue!==void 0;const inputControlled=props.inputValue!==void 0;let proposedInputValue=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;const state=computed(()=>Object.freeze({value:props.modelValue??localTags.value,inputValue:props.inputValue??localInput.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localTags.value=snapshot.tags;localInput.value=snapshot.draft;refreshDeletes()};const refreshDeletes=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-tags-delete]").forEach(element=>{connection.value?.setTagAttributes(element,Number(element.dataset["sectileTagsDelete"]))})};const syncControlledValues=()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...inputControlled?{inputValue:props.inputValue}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};const connect=()=>{connection.value?.disconnect();connection.value=void 0;if(!mounted||root.value===null||input.value===null)return;connection.value=createTagsInput({root:root.value,input:input.value,direction:direction.value,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value:props.modelValue}:{defaultValue:localTags.value},...inputControlled?{inputValue:proposedInputValue??props.inputValue}:{defaultInputValue:localInput.value},disabled:props.disabled,readOnly:props.readonly,label:props.label,onValueChange:next=>{localTags.value=next;emit("update:modelValue",next)},onInputValueChange:next=>{localInput.value=next;emit("update:inputValue",next);if(!inputControlled)return;proposedInputValue=next;const proposal=next;void nextTick(()=>{if(connection.value===void 0||proposedInputValue!==proposal)return;proposedInputValue=null;syncControlledValues()})},onUpdate:refresh});refresh()};const requestConnect=()=>{if(inputComposing||reconnectPending){reconnectPending=true;return}connect()};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;connect()},0)};provide(rootKey,{state,label:computed(()=>props.label),registerRoot:element=>{root.value=element??null},registerInput:element=>{input.value=element??null},registerDelete:(element,index)=>connection.value?.setTagAttributes(element,index),setInputComposing,clear:()=>{for(let index=state.value.value.length-1;index>=0;index-=1)connection.value?.handleEvent({type:"remove",index})}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;proposedInputValue=null;connection.value?.disconnect();connection.value=void 0});watch([()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies,direction],requestConnect);watch([()=>props.modelValue,()=>props.inputValue],()=>{proposedInputValue=null;syncControlledValues()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group","aria-label":props.label,dir:direction.value,"data-scope":"tags-input","data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return visual;return[visual,...state.value.value.map((tag,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value:tag,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const TagsInputItem=defineComponent({name:"SectileTagsInputItem",inheritAttrs:false,props:{index:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputItem");const state=computed(()=>({index:props.index,value:root.state.value.value[props.index]??"",disabled:root.state.value.disabled,readonly:root.state.value.readonly}));provide(itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"tags-input","data-part":"item","data-index":props.index}),{default:()=>slots["default"]?.(state.value)})}});const TagsInputItemText=defineComponent({name:"SectileTagsInputItemText",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const item=useItem("TagsInputItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"tags-input","data-part":"item-text"}),{default:()=>slots["default"]?.(item.state.value)??item.state.value.value})}});const TagsInputItemDelete=defineComponent({name:"SectileTagsInputItemDelete",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputItemDelete");const item=useItem("TagsInputItemDelete");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDelete(node,item.state.value.index)},"data-sectile-tags-delete":item.state.value.index,"data-scope":"tags-input","data-part":"item-delete",disabled:item.state.value.disabled||item.state.value.readonly}),{default:()=>slots["default"]?.(item.state.value)})}});const TagsInputInput=defineComponent({name:"SectileTagsInputInput",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("TagsInputInput");const renderServerValue=typeof window==="undefined";return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerInput(node instanceof HTMLInputElement?node:void 0),type:"text",...renderServerValue?{value:root.state.value.inputValue}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,onCompositionstart:()=>root.setInputComposing(true),onCompositionend:()=>root.setInputComposing(false),"data-scope":"tags-input","data-part":"input"}))}});const TagsInputClear=defineComponent({name:"SectileTagsInputClear",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputClear");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly||root.state.value.value.length===0,onClick:root.clear,"data-scope":"tags-input","data-part":"clear"}),{default:()=>slots["default"]?.(root.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside TagsInputRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside TagsInputItem.`);return item}export{TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTagsInput}from"@sectile/dom/tags-input";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl,useFormSubmissionProps,useFormControlFlags}from"./form/control.js";import{useHostDirection}from"./host-provider.js";const rootKey=Symbol("SectileTagsInputRoot");const itemKey=Symbol("SectileTagsInputItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const TagsInputRoot=defineComponent({__sectileFormLabelMode:"labelledby",name:"SectileTagsInputRoot",inheritAttrs:false,props:{modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:"Tags"},name:{type:String,default:void 0},removeLabel:{type:Function,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const direction=useHostDirection();const root=shallowRef(null);const input=shallowRef(null);const submissionElements=[];const initialTags=Object.freeze([...props.defaultValue]);const initialInput=props.defaultInputValue;const submissionProps=useFormSubmissionProps({element:()=>null,capabilities:hiddenValueSubmissionCapabilities},props);const participation=useCompositeFormControl({root,focusTarget:input,submissions:()=>state.value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities})),reset:()=>{queueMicrotask(()=>{if(!valueControlled)localTags.value=initialTags;if(!inputControlled)localInput.value=initialInput;connect()})}});provideFormControlOwner();const connection=shallowRef();const localTags=shallowRef(props.modelValue??initialTags);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const valueControlled=props.modelValue!==void 0;const inputControlled=props.inputValue!==void 0;let proposedInputValue=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;const state=computed(()=>Object.freeze({value:props.modelValue??localTags.value,inputValue:props.inputValue??localInput.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localTags.value=snapshot.tags;localInput.value=snapshot.draft;refreshDeletes()};const refreshDeletes=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-tags-delete]").forEach(element=>{connection.value?.setTagAttributes(element,Number(element.dataset["sectileTagsDelete"]))})};const syncControlledValues=()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...inputControlled?{inputValue:props.inputValue}:{}});if(!result.ok){if(result.error.code==="invalid-tags-input-current"){requestConnect();return}throw new TypeError(result.error.message)}refresh()};const connect=()=>{connection.value?.disconnect();connection.value=void 0;if(!mounted||root.value===null||input.value===null)return;connection.value=createTagsInput({root:root.value,input:input.value,direction:direction.value,removeLabel:(value,index)=>props.removeLabel?.(value,index),...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value:props.modelValue}:{defaultValue:localTags.value},...inputControlled?{inputValue:proposedInputValue??props.inputValue}:{defaultInputValue:localInput.value},disabled:flags.value.disabled,readOnly:flags.value.readonly,label:props.label,onValueChange:next=>{localTags.value=next;emit("update:modelValue",next)},onInputValueChange:next=>{localInput.value=next;emit("update:inputValue",next);if(!inputControlled)return;proposedInputValue=next;const proposal=next;void nextTick(()=>{if(connection.value===void 0||proposedInputValue!==proposal)return;proposedInputValue=null;syncControlledValues()})},onUpdate:refresh});refresh()};const requestConnect=()=>{if(inputComposing||reconnectPending){reconnectPending=true;return}connect()};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;connect()},0)};provide(rootKey,{state,label:computed(()=>props.label),removeLabel:computed(()=>props.removeLabel),registerRoot:element=>{root.value=element??null},registerInput:element=>{input.value=element??null},registerDelete:(element,index)=>connection.value?.setTagAttributes(element,index),setInputComposing,clear:()=>{for(let index=state.value.value.length-1;index>=0;index-=1)connection.value?.handleEvent({type:"remove",index})}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;proposedInputValue=null;connection.value?.disconnect();connection.value=void 0});watch([()=>flags.value.disabled,()=>flags.value.readonly,()=>props.label,()=>props.policies,direction],requestConnect);watch(()=>props.removeLabel,refreshDeletes,{flush:"post"});watch([()=>props.modelValue,()=>props.inputValue],()=>{proposedInputValue=null;syncControlledValues()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group","aria-label":props.label,dir:direction.value,"data-scope":"tags-input","data-part":"root","data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return visual;return[visual,...state.value.value.map((tag,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",...submissionProps.value,value:tag,style:visuallyHiddenInputStyle}))]}}});const TagsInputItem=defineComponent({name:"SectileTagsInputItem",inheritAttrs:false,props:{index:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputItem");const state=computed(()=>({index:props.index,value:root.state.value.value[props.index]??"",disabled:root.state.value.disabled,readonly:root.state.value.readonly}));provide(itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"tags-input","data-part":"item","data-index":props.index}),{default:()=>slots["default"]?.(state.value)})}});const TagsInputItemText=defineComponent({name:"SectileTagsInputItemText",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const item=useItem("TagsInputItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"tags-input","data-part":"item-text"}),{default:()=>slots["default"]?.(item.state.value)??item.state.value.value})}});const TagsInputItemDelete=defineComponent({name:"SectileTagsInputItemDelete",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputItemDelete");const item=useItem("TagsInputItemDelete");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDelete(node,item.state.value.index)},"aria-label":root.removeLabel.value?.(item.state.value.value,item.state.value.index)??attrs["aria-label"],"data-sectile-tags-delete":item.state.value.index,"data-scope":"tags-input","data-part":"item-delete",disabled:item.state.value.disabled||item.state.value.readonly}),{default:()=>slots["default"]?.(item.state.value)})}});const TagsInputInput=defineComponent({name:"SectileTagsInputInput",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("TagsInputInput");const renderServerValue=typeof window==="undefined";return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerInput(node instanceof HTMLInputElement?node:void 0),type:"text",...renderServerValue?{value:root.state.value.inputValue}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,onCompositionstart:()=>root.setInputComposing(true),onCompositionend:()=>root.setInputComposing(false),"data-scope":"tags-input","data-part":"input"}))}});const TagsInputClear=defineComponent({name:"SectileTagsInputClear",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputClear");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly||root.state.value.value.length===0,onClick:root.clear,"data-scope":"tags-input","data-part":"clear"}),{default:()=>slots["default"]?.(root.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside TagsInputRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside TagsInputItem.`);return item}export{TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot};
2
2
  //# sourceMappingURL=tags-input.js.map