@sectile/vue 0.18.2 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +53 -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 +25 -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 +95 -0
  81. package/dist/input/native-range-field.js +2 -0
  82. package/dist/input/native-range-field.js.map +1 -0
  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/controlled-state.js +1 -1
  89. package/dist/internal/controlled-state.js.map +1 -1
  90. package/dist/internal/popup-presentation.d.ts +32 -0
  91. package/dist/internal/popup-presentation.js +2 -0
  92. package/dist/internal/popup-presentation.js.map +1 -0
  93. package/dist/internal/portal-move.d.ts +11 -0
  94. package/dist/internal/portal-move.js +2 -0
  95. package/dist/internal/portal-move.js.map +1 -0
  96. package/dist/internal/scheduled-task.js +1 -1
  97. package/dist/internal/scheduled-task.js.map +1 -1
  98. package/dist/internal/tabs-context.d.ts +11 -0
  99. package/dist/internal/tabs-context.js +1 -1
  100. package/dist/internal/tabs-context.js.map +1 -1
  101. package/dist/internal/tree-parts.d.ts +142 -0
  102. package/dist/internal/tree-parts.js +2 -0
  103. package/dist/internal/tree-parts.js.map +1 -0
  104. package/dist/listbox.d.ts +11 -0
  105. package/dist/listbox.js +1 -1
  106. package/dist/listbox.js.map +1 -1
  107. package/dist/media-gesture.d.ts +20 -0
  108. package/dist/media-gesture.js +2 -0
  109. package/dist/media-gesture.js.map +1 -0
  110. package/dist/menu.d.ts +239 -0
  111. package/dist/menu.js +1 -1
  112. package/dist/menu.js.map +1 -1
  113. package/dist/meter-group.js +1 -1
  114. package/dist/meter-group.js.map +1 -1
  115. package/dist/multi-thumb-slider.js +1 -1
  116. package/dist/multi-thumb-slider.js.map +1 -1
  117. package/dist/overlay/dialog.d.ts +1 -0
  118. package/dist/overlay/dialog.js.map +1 -1
  119. package/dist/overlay/drawer.d.ts +33 -4
  120. package/dist/overlay/drawer.js +1 -1
  121. package/dist/overlay/drawer.js.map +1 -1
  122. package/dist/overlay/popover.d.ts +2 -1
  123. package/dist/overlay/popover.js.map +1 -1
  124. package/dist/overlay/popup.d.ts +46 -2
  125. package/dist/overlay/popup.js +1 -1
  126. package/dist/overlay/popup.js.map +1 -1
  127. package/dist/overlay/tooltip.d.ts +37 -3
  128. package/dist/overlay/tooltip.js +1 -1
  129. package/dist/overlay/tooltip.js.map +1 -1
  130. package/dist/pagination.js +1 -1
  131. package/dist/pagination.js.map +1 -1
  132. package/dist/pin-input.js +1 -1
  133. package/dist/pin-input.js.map +1 -1
  134. package/dist/presence/presence.d.ts +1 -1
  135. package/dist/presence/presence.js +1 -1
  136. package/dist/presence/presence.js.map +1 -1
  137. package/dist/primitive.d.ts +37 -3
  138. package/dist/primitive.js +1 -1
  139. package/dist/primitive.js.map +1 -1
  140. package/dist/quantity-field.js +1 -1
  141. package/dist/quantity-field.js.map +1 -1
  142. package/dist/radio-group.js +1 -1
  143. package/dist/radio-group.js.map +1 -1
  144. package/dist/rating.js +1 -1
  145. package/dist/rating.js.map +1 -1
  146. package/dist/reorder.d.ts +156 -77
  147. package/dist/reorder.js +1 -1
  148. package/dist/reorder.js.map +1 -1
  149. package/dist/select.d.ts +21 -0
  150. package/dist/select.js +1 -1
  151. package/dist/select.js.map +1 -1
  152. package/dist/slider.js +1 -1
  153. package/dist/slider.js.map +1 -1
  154. package/dist/spin-button.d.ts +19 -0
  155. package/dist/spin-button.js +1 -1
  156. package/dist/spin-button.js.map +1 -1
  157. package/dist/stepper.js +1 -1
  158. package/dist/stepper.js.map +1 -1
  159. package/dist/switch.js +1 -1
  160. package/dist/switch.js.map +1 -1
  161. package/dist/tabs.d.ts +2 -0
  162. package/dist/tabs.js +1 -1
  163. package/dist/tabs.js.map +1 -1
  164. package/dist/tabular/components.d.ts +5 -0
  165. package/dist/tabular/components.js.map +1 -1
  166. package/dist/tabular/controller.d.ts +1 -0
  167. package/dist/tabular/controller.js +1 -1
  168. package/dist/tabular/controller.js.map +1 -1
  169. package/dist/tabular/data-grid.d.ts +4 -4
  170. package/dist/tabular/data-grid.js +1 -1
  171. package/dist/tabular/data-grid.js.map +1 -1
  172. package/dist/tabular/data-table.d.ts +4 -4
  173. package/dist/tabular/data-table.js +1 -1
  174. package/dist/tabular/data-table.js.map +1 -1
  175. package/dist/tabular/data-tree-grid.d.ts +4 -4
  176. package/dist/tabular/data-tree-grid.js +1 -1
  177. package/dist/tabular/data-tree-grid.js.map +1 -1
  178. package/dist/tabular/parts.d.ts +11 -1
  179. package/dist/tabular/parts.js +1 -1
  180. package/dist/tabular/parts.js.map +1 -1
  181. package/dist/tabular/source.js +1 -1
  182. package/dist/tabular/source.js.map +1 -1
  183. package/dist/tags-input.d.ts +12 -1
  184. package/dist/tags-input.js +1 -1
  185. package/dist/tags-input.js.map +1 -1
  186. package/dist/temporal/calendar.d.ts +27 -123
  187. package/dist/temporal/calendar.js +1 -1
  188. package/dist/temporal/calendar.js.map +1 -1
  189. package/dist/temporal/capabilities/date-picker.js +1 -1
  190. package/dist/temporal/capabilities/date-picker.js.map +1 -1
  191. package/dist/temporal/capabilities/date-time-picker.js +1 -1
  192. package/dist/temporal/capabilities/date-time-picker.js.map +1 -1
  193. package/dist/temporal/capabilities/date-time-range-picker.js +1 -1
  194. package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -1
  195. package/dist/temporal/capability.d.ts +13 -1
  196. package/dist/temporal/capability.js.map +1 -1
  197. package/dist/temporal/date-field.d.ts +1 -1
  198. package/dist/temporal/date-field.js +1 -1
  199. package/dist/temporal/date-field.js.map +1 -1
  200. package/dist/temporal/date-picker.d.ts +16 -14
  201. package/dist/temporal/date-picker.js +1 -1
  202. package/dist/temporal/date-picker.js.map +1 -1
  203. package/dist/temporal/date-range-field.d.ts +21 -1
  204. package/dist/temporal/date-range-field.js +1 -1
  205. package/dist/temporal/date-range-field.js.map +1 -1
  206. package/dist/temporal/date-range-picker.d.ts +16 -14
  207. package/dist/temporal/date-range-picker.js +1 -1
  208. package/dist/temporal/date-range-picker.js.map +1 -1
  209. package/dist/temporal/date-time-field.d.ts +4 -1
  210. package/dist/temporal/date-time-field.js +1 -1
  211. package/dist/temporal/date-time-field.js.map +1 -1
  212. package/dist/temporal/date-time-picker.d.ts +16 -14
  213. package/dist/temporal/date-time-picker.js +1 -1
  214. package/dist/temporal/date-time-picker.js.map +1 -1
  215. package/dist/temporal/date-time-range-field.d.ts +158 -0
  216. package/dist/temporal/date-time-range-field.js +2 -0
  217. package/dist/temporal/date-time-range-field.js.map +1 -0
  218. package/dist/temporal/date-time-range-picker.d.ts +16 -14
  219. package/dist/temporal/date-time-range-picker.js +1 -1
  220. package/dist/temporal/date-time-range-picker.js.map +1 -1
  221. package/dist/temporal/internal/time-presentation.d.ts +15 -0
  222. package/dist/temporal/internal/time-presentation.js +2 -0
  223. package/dist/temporal/internal/time-presentation.js.map +1 -0
  224. package/dist/temporal/month-picker.d.ts +9 -7
  225. package/dist/temporal/month-picker.js +1 -1
  226. package/dist/temporal/month-picker.js.map +1 -1
  227. package/dist/temporal/month-range-picker.d.ts +9 -7
  228. package/dist/temporal/month-range-picker.js +1 -1
  229. package/dist/temporal/month-range-picker.js.map +1 -1
  230. package/dist/temporal/picker.d.ts +24 -3
  231. package/dist/temporal/picker.js +1 -1
  232. package/dist/temporal/picker.js.map +1 -1
  233. package/dist/temporal/range-calendar.d.ts +125 -8
  234. package/dist/temporal/range-calendar.js +1 -1
  235. package/dist/temporal/range-calendar.js.map +1 -1
  236. package/dist/temporal/temporal-provider.d.ts +23 -0
  237. package/dist/temporal/temporal-provider.js +1 -1
  238. package/dist/temporal/temporal-provider.js.map +1 -1
  239. package/dist/temporal/time-field.d.ts +4 -1
  240. package/dist/temporal/time-field.js +1 -1
  241. package/dist/temporal/time-field.js.map +1 -1
  242. package/dist/temporal/time-picker.d.ts +112 -0
  243. package/dist/temporal/time-picker.js +2 -0
  244. package/dist/temporal/time-picker.js.map +1 -0
  245. package/dist/temporal/time-range-field.d.ts +33 -2
  246. package/dist/temporal/time-range-field.js +1 -1
  247. package/dist/temporal/time-range-field.js.map +1 -1
  248. package/dist/temporal/year-picker.d.ts +9 -7
  249. package/dist/temporal/year-picker.js +1 -1
  250. package/dist/temporal/year-picker.js.map +1 -1
  251. package/dist/temporal/year-range-picker.d.ts +9 -7
  252. package/dist/temporal/year-range-picker.js +1 -1
  253. package/dist/temporal/year-range-picker.js.map +1 -1
  254. package/dist/text.d.ts +43 -1
  255. package/dist/text.js +1 -1
  256. package/dist/text.js.map +1 -1
  257. package/dist/timer.d.ts +16 -5
  258. package/dist/timer.js +1 -1
  259. package/dist/timer.js.map +1 -1
  260. package/dist/toast.js +1 -1
  261. package/dist/toast.js.map +1 -1
  262. package/dist/toggle-group.js +1 -1
  263. package/dist/toggle-group.js.map +1 -1
  264. package/dist/toolbar.js +1 -1
  265. package/dist/toolbar.js.map +1 -1
  266. package/dist/transfer.d.ts +191 -0
  267. package/dist/transfer.js +2 -0
  268. package/dist/transfer.js.map +1 -0
  269. package/dist/tree-grid.d.ts +122 -0
  270. package/dist/tree-grid.js +1 -1
  271. package/dist/tree-grid.js.map +1 -1
  272. package/dist/tree-select.d.ts +186 -0
  273. package/dist/tree-select.js +2 -0
  274. package/dist/tree-select.js.map +1 -0
  275. package/dist/tree-view.js +1 -1
  276. package/dist/tree-view.js.map +1 -1
  277. package/dist/virtual/virtual-collection.d.ts +3 -0
  278. package/dist/virtual/virtual-collection.js +1 -1
  279. package/dist/virtual/virtual-collection.js.map +1 -1
  280. package/dist/virtual/virtual-core.d.ts +1 -0
  281. package/dist/virtual/virtual-core.js +1 -1
  282. package/dist/virtual/virtual-core.js.map +1 -1
  283. package/dist/virtual/virtual-grid.d.ts +12 -2
  284. package/dist/virtual/virtual-grid.js +1 -1
  285. package/dist/virtual/virtual-grid.js.map +1 -1
  286. package/dist/virtual/virtual-list.d.ts +12 -3
  287. package/dist/virtual/virtual-list.js +1 -1
  288. package/dist/virtual/virtual-list.js.map +1 -1
  289. package/dist/virtual/virtual-masonry.d.ts +12 -2
  290. package/dist/virtual/virtual-masonry.js +1 -1
  291. package/dist/virtual/virtual-masonry.js.map +1 -1
  292. package/dist/virtual/virtual-spatial.d.ts +12 -2
  293. package/dist/virtual/virtual-spatial.js +1 -1
  294. package/dist/virtual/virtual-spatial.js.map +1 -1
  295. package/dist/window-splitter.js +1 -1
  296. package/dist/window-splitter.js.map +1 -1
  297. package/package.json +86 -16
@@ -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":"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","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":"AAAA,OAAS,gBAAiB,eAAgB,QAAS,UAAmF,MACtI,OAAS,wBAA4H,uBACrI,OACE,uBAYK,kCAIP,OAAS,gCAAqH,kBAC9H,OAAS,kBAAmB,uBAAiE,aAC7F,OAAS,0BAA2B,iBAAkB,+BAA6D,kBACnH,OAAS,eAAuC,eAChD,OAAS,qBAAmF,cA+B5F,MAAM,MAAQ,IAAI,QACZ,SAAU,gBAAyL,QAAuC,CAC9O,UAAW,WAAY,CAAC,QAAS,eAAgB,cAAe,cAAe,YAAa,SAAU,YAAa,iBAAiB,EAAG,gBAAgB,QAAS,QAAQ,EACxK,MAAM,SAAW,mBAAmB,CAClC,QAAS,QAAQ,aAAa,aAAa,SAAW,CAAA,EAAI,QAAS,QAAQ,aAAa,aAAa,SAAW,CAAA,EAAI,GAAI,QAAQ,SAAW,OAAY,CAAA,EAAK,CAAE,OAAQ,QAAQ,MAAM,EAAK,GAAI,QAAQ,iBAAmB,OAAY,CAAA,EAAK,CAAE,eAAgB,QAAQ,cAAc,EACjR,WAAY,CAAE,MAAO,QAAQ,QAAU,OAAW,aAAc,QAAQ,eAAiB,OAAW,YAAa,QAAQ,cAAgB,OAAW,YAAa,QAAQ,cAAgB,OAAW,UAAW,QAAQ,YAAc,OAAW,OAAQ,QAAQ,SAAW,OAAW,KAAM,QAAQ,YAAc,MAAS,EAC3T,cAAe,CACb,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,EACtJ,GAAI,QAAQ,SAAW,QAAa,QAAQ,gBAAkB,OAAY,CAAA,EAAK,CAAE,OAAQ,QAAQ,QAAQ,OAAS,QAAQ,aAAa,EACvI,GAAI,QAAQ,YAAc,QAAa,QAAQ,mBAAqB,OAAY,CAAA,EAAK,CAAE,KAAM,QAAQ,WAAW,OAAS,QAAQ,gBAAgB,GAEnJ,GAAI,QAAQ,gBAAkB,OAAY,CAAA,EAAK,CAAE,cAAe,QAAQ,aAAa,EAAK,GAAI,QAAQ,uBAAyB,OAAY,CAAA,EAAK,CAAE,qBAAsB,QAAQ,oBAAoB,EAAK,GAAI,QAAQ,sBAAwB,OAAY,CAAA,EAAK,CAAE,oBAAqB,QAAQ,mBAAmB,EAAK,GAAI,QAAQ,sBAAwB,OAAY,CAAA,EAAK,CAAE,oBAAqB,QAAQ,mBAAmB,EAAK,GAAI,QAAQ,oBAAsB,OAAY,CAAA,EAAK,CAAE,kBAAmB,QAAQ,iBAAiB,EAAK,GAAI,QAAQ,iBAAmB,OAAY,CAAA,EAAK,CAAE,eAAgB,QAAQ,cAAc,EAAK,GAAI,QAAQ,oBAAsB,OAAY,CAAA,EAAK,CAAE,kBAAmB,QAAQ,iBAAiB,EACtsB,EACD,MAAM,KAAO,2BAA2B,QAAQ,EAChD,MAAM,KAAO,kBAAkB,OAAO,OAAO,CAAE,GAAI,QAAQ,kBAAoB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,gBAAgB,KAAK,EAAK,GAAI,QAAQ,yBAA2B,OAAY,CAAA,EAAK,CAAE,mBAAoB,QAAQ,sBAAsB,EAAK,GAAI,QAAQ,0BAA4B,OAAY,CAAA,EAAK,CAAE,oBAAqB,QAAQ,uBAAuB,CAAG,CAAE,CAAC,EACvX,MAAM,WAAa,OAAO,OAAO,CAAE,GAAG,KACpC,YAAa,KAAK,YAClB,cAAe,IAAM,SAAS,cAAa,EAC5C,EAAG,0BAA0B,WAAY,IAAI,EAC9C,MAAM,IAAI,WAAY,IAAI,EAC1B,GAAI,QAAQ,cAAgB,OAAW,OAAO,WAAW,gBAAgB,QAAQ,WAA8D,CAAC,EAChJ,MAAM,OAAS,iBAAiB,WAAY,QAAQ,OAAQ,CAAE,GAAI,QAAQ,gBAAkB,OAAY,CAAA,EAAK,CAAE,QAAS,QAAQ,aAAa,EAAK,GAAI,QAAQ,uBAAyB,OAAY,CAAA,EAAK,CAAE,eAAgB,QAAQ,oBAAoB,CAAG,CAAE,EAC3P,MAAM,MAA2B,CAAA,EAAI,MAAM,KAAO,IAAM,OAAO,WAAW,qBAAqB,yBAAyB,OAAO,CAAC,CAAC,EACjI,UAAWA,UAAU,CAAC,QAAQ,MAAO,QAAQ,aAAc,QAAQ,YAAa,QAAQ,YAAa,QAAQ,UAAW,QAAQ,OAAQ,QAAQ,SAAS,EAAG,GAAIA,UAAW,OAAW,MAAM,KAAK,MAAM,IAAMA,QAAO,MAAO,IAAI,CAAC,EAChO,GAAI,QAAQ,YAAc,OAAW,MAAM,KAAK,MAAM,IAAM,QAAQ,QAAQ,SAAU,EAAG,IAAK,CAAG,OAAO,WAAW,SAAS,CAAE,KAAM,gBAAgB,CAAE,CAAC,CAAG,CAAC,CAAC,EAC5J,MAAM,WAAa,WAAW,QAAS,MAAM,QAAU,OAAO,OAAO,CAAE,GAAG,WAAY,OAAQ,OAAO,OAAQ,MAAO,OAAO,MAAO,OAAQ,OAAO,OAAQ,OAAQ,OAAO,OAAQ,gBAAkB,UAAgE,OAAO,gBAAgB,QAA0B,EAAG,QAAS,IAAK,CAAG,UAAW,QAAQ,MAAM,OAAO,CAAC,EAAG,KAAI,EAAI,OAAO,QAAO,EAAI,WAAU,CAAI,CAAC,CAAE,EAAoD,0BAA0B,QAAS,UAAU,EAAG,MAAM,IAAI,QAAS,IAAI,EAAG,GAAI,QAAQ,kBAAoB,OAAW,MAAM,KAAK,MAAM,IAAM,QAAQ,gBAAiB,MAAQ,OAAS,CAAG,KAAK,uBAAuB,MAAO,yBAAyB,OAAO,CAAC,CAAG,EAAG,CAAE,KAAM,KAAK,CAAE,CAAC,EAAG,GAAI,gBAAe,IAAO,OAAW,eAAe,QAAQ,OAAO,EAAG,OAAO,OAC/yB,CAGA,MAAM,UAA6H,OAAO,qBAAqB,EAAG,MAAM,WAA8H,OAAO,yBAAyB,EAChU,SAAU,wBAAsB,CAA+B,OAAO,WAAW,UAAW,wBAAwB,CAAG,CAC7H,MAAM,MAAQ,mBAAmB,CAAE,QAAS,iBAAkB,OAAQ,eAAgB,UAAW,WAAY,QAAS,CAAC,QAAS,WAAY,YAAc,oBAAoB,CAAE,WAAkD,KAAM,QAAS,GAAG,MAAM,IAAI,UAAU,GAAG,WAAU,EAAI,GAAI,UAAU,YAAc,OAAY,CAAA,EAAK,CAAE,UAAW,UAAU,SAAuC,EAAK,iBAAkB,UAAU,gBAAgB,CAAE,EAAgC,kBAAmB,CAAC,WAAY,aAAe,MAAM,IAAI,UAAU,GAAG,kBAAkB,UAAU,CAAC,CAAE,EAE5jB,SAAS,yBAAyB,QAA+B,CAAkC,OAAO,OAAO,OAAO,CAAE,GAAG,iBAAiB,OAAO,EAAG,GAAI,QAAQ,SAAW,OAAY,CAAA,EAAK,CAAE,OAAQ,QAAQ,OAAO,KAAK,EAAK,GAAI,QAAQ,YAAc,OAAY,CAAA,EAAK,CAAE,KAAM,QAAQ,UAAU,KAAK,CAAG,CAAE,CAAG,CAiCrT,MAAM,gBAAkB,IAAI,QACtB,SAAU,6BAAkF,WAAyD,CACzJ,OAAO,4BAA4B,MAAO,WAAY,gBAAiB,eAAgB,CACrF,KAAM,OACN,OAAQ,SACR,UAAW,YACX,aAAc,eACd,YAAa,cACb,cAAe,gBACf,mBAAoB,qBACpB,KAAM,OACN,IAAK,MACL,cAAe,aACf,oBAAqB,mBACrB,qBAAsB,uBACtB,KAAM,OACN,OAAQ,SACT,CACH,CAEA,SAAS,gBAAgB,QAAiB,SAAgB,CAAU,MAAM,OAAS,QAAoC,MAAM,SAAW,UAAU,SAAS,CAAC,EAAG,YAAW,CAAE,GAAG,SAAS,MAAM,CAAC,CAAC,GAAI,GAAI,OAAO,QAAQ,IAAM,QAAa,OAAO,QAAQ,IAAM,OAAW,MAAM,IAAI,UAAU,GAAG,QAAQ,QAAQ,QAAQ,0BAA0B,CAAG,CACtV,SAAS,OAAU,OAAwB,CAAO,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EAAG,OAAO,OAAO,KAAO","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,2 +1,2 @@
1
- import{getCurrentInstance,onBeforeUnmount,onMounted,readonly,shallowRef}from"vue";function useProfileSource(controller,initialResolver,options={}){const status=shallowRef("idle");const error=shallowRef(null);let resolver=initialResolver;let active=null;let mounted=false;let disposed=false;let queued=null;const setStatus=next=>{status.value=next;options.onStatusChange?.(next)};const abandon=requestID=>{controller.abandonRequest(requestID)};const cancel=()=>{const current=active;const pending=queued;active=null;queued=null;if(current!==null){current.abort.abort();abandon(current.requestID)}if(pending!==null&&pending.requestID!==current?.requestID)abandon(pending.requestID);if(!disposed)setStatus("idle")};const execute=request=>{if(!mounted||disposed){queued=request;return}if(active!==null){active.abort.abort();abandon(active.requestID)}const abort=new AbortController;active={requestID:request.requestID,abort};error.value=null;setStatus("loading");Promise.resolve().then(()=>resolver(request,{signal:abort.signal})).then(response=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;const synchronized=controller.synchronizeView(response);if(!synchronized.ok){active=null;error.value=synchronized.error;setStatus("error");options.onError?.(synchronized.error);return}active=null;setStatus("success")},reason=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;active=null;abandon(request.requestID);error.value=reason;setStatus("error");options.onError?.(reason)})};const attached=controller.attachRequestExecutor(command=>execute(command.request));if(!attached.ok)throw new TypeError(attached.error.message);const releaseExecutor=attached.value;const reload=()=>{const requested=controller.requestView();if(!requested.ok)throw new TypeError(requested.error.message)};const replaceResolver=next=>{cancel();resolver=next;const replaced=controller.dispatch({type:"replace-source"});if(!replaced.ok)throw new TypeError(replaced.error.message)};const dispose=()=>{if(disposed)return;disposed=true;cancel();releaseExecutor()};if(getCurrentInstance()!==null){onMounted(()=>{mounted=true;const pending=queued??controller.requestState.value.pendingRequest;queued=null;if(pending!==null)execute(pending)});onBeforeUnmount(dispose)}return Object.freeze({status:readonly(status),error:readonly(error),reload,cancel,replaceResolver,dispose})}export{useProfileSource};
1
+ import{getCurrentInstance,onBeforeUnmount,onMounted,readonly,shallowRef}from"vue";function useProfileSource(controller,initialResolver,options={}){const status=shallowRef("idle");const error=shallowRef(null);let resolver=initialResolver;let active=null;let mounted=false;let disposed=false;let queued=null;let sequence=0;const setStatus=next=>{status.value=next;options.onStatusChange?.(next)};const abandon=requestID=>{controller.abandonRequest(requestID)};const cancel=()=>{const cancellation=++sequence;const current=active;const pending=queued;active=null;queued=null;if(current!==null){current.abort.abort();abandon(current.requestID)}if(pending!==null&&pending.requestID!==current?.requestID)abandon(pending.requestID);if(!disposed&&sequence===cancellation)setStatus("idle")};const execute=request=>{if(disposed)return;if(!mounted){queued=request;return}const execution=++sequence;const previous=active;active=null;if(previous!==null){previous.abort.abort();abandon(previous.requestID)}if(disposed||execution!==sequence)return;const abort=new AbortController;const owner={requestID:request.requestID,abort};const executeResolver=resolver;active=owner;error.value=null;setStatus("loading");Promise.resolve().then(()=>{if(disposed||abort.signal.aborted||active!==owner)return void 0;return executeResolver(request,{signal:abort.signal})}).then(response=>{if(response===void 0||disposed||abort.signal.aborted||active!==owner)return;const synchronized=controller.synchronizeView(response);if(disposed||abort.signal.aborted||active!==owner)return;if(!synchronized.ok){active=null;error.value=synchronized.error;setStatus("error");options.onError?.(synchronized.error);return}active=null;setStatus("success")},reason=>{if(disposed||abort.signal.aborted||active!==owner)return;active=null;abandon(request.requestID);error.value=reason;setStatus("error");options.onError?.(reason)})};const attached=controller.attachRequestExecutor(command=>execute(command.request));if(!attached.ok)throw new TypeError(attached.error.message);const releaseExecutor=attached.value;const reload=()=>{const requested=controller.requestView();if(!requested.ok)throw new TypeError(requested.error.message)};const replaceResolver=next=>{resolver=next;const replacement=sequence+1;cancel();if(disposed||replacement!==sequence)return;const replaced=controller.dispatch({type:"replace-source"});if(!replaced.ok)throw new TypeError(replaced.error.message)};const dispose=()=>{if(disposed)return;disposed=true;cancel();releaseExecutor()};if(getCurrentInstance()!==null){onMounted(()=>{mounted=true;const pending=queued??controller.requestState.value.pendingRequest;queued=null;if(pending!==null)execute(pending)});onBeforeUnmount(dispose)}return Object.freeze({status:readonly(status),error:readonly(error),reload,cancel,replaceResolver,dispose})}export{useProfileSource};
2
2
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tabular/source.ts"],"mappings":"AAAA,OAAS,mBAAoB,gBAAiB,UAAW,SAAU,eAAmC,MAsBhG,SAAU,iBACd,WACA,gBACA,QAAyB,CAAA,EAAE,CAE3B,MAAM,OAAS,WAAyB,MAAM,EAC9C,MAAM,MAAQ,WAA2B,IAAI,EAC7C,IAAI,SAAW,gBACf,IAAI,OAAiF,KACrF,IAAI,QAAU,MACd,IAAI,SAAW,MACf,IAAI,OAAgC,KAEpC,MAAM,UAAa,MAA4B,CAC7C,OAAO,MAAQ,KACf,QAAQ,iBAAiB,IAAI,CAC/B,EACA,MAAM,QAAW,WAA2B,CAAG,WAAW,eAAe,SAAS,CAAG,EACrF,MAAM,OAAS,IAAW,CACxB,MAAM,QAAU,OAChB,MAAM,QAAU,OAChB,OAAS,KACT,OAAS,KACT,GAAI,UAAY,KAAM,CACpB,QAAQ,MAAM,MAAK,EACnB,QAAQ,QAAQ,SAAS,CAC3B,CACA,GAAI,UAAY,MAAQ,QAAQ,YAAc,SAAS,UAAW,QAAQ,QAAQ,SAAS,EAC3F,GAAI,CAAC,SAAU,UAAU,MAAM,CACjC,EACA,MAAM,QAAW,SAAiC,CAChD,GAAI,CAAC,SAAW,SAAU,CAAE,OAAS,QAAS,MAAQ,CACtD,GAAI,SAAW,KAAM,CACnB,OAAO,MAAM,MAAK,EAClB,QAAQ,OAAO,SAAS,CAC1B,CACA,MAAM,MAAQ,IAAI,gBAClB,OAAS,CAAE,UAAW,QAAQ,UAAW,KAAK,EAC9C,MAAM,MAAQ,KACd,UAAU,SAAS,EACnB,QAAQ,QAAO,EAAG,KAAK,IAAM,SAAS,QAAS,CAAE,OAAQ,MAAM,MAAM,CAAE,CAAC,EAAE,KAAM,UAAY,CAC1F,GAAI,UAAY,MAAM,OAAO,SAAW,QAAQ,YAAc,QAAQ,UAAW,OACjF,MAAM,aAAe,WAAW,gBAAgB,QAAQ,EACxD,GAAI,CAAC,aAAa,GAAI,CACpB,OAAS,KACT,MAAM,MAAQ,aAAa,MAC3B,UAAU,OAAO,EACjB,QAAQ,UAAU,aAAa,KAAK,EACpC,MACF,CACA,OAAS,KACT,UAAU,SAAS,CACrB,EAAI,QAAmB,CACrB,GAAI,UAAY,MAAM,OAAO,SAAW,QAAQ,YAAc,QAAQ,UAAW,OACjF,OAAS,KACT,QAAQ,QAAQ,SAAS,EACzB,MAAM,MAAQ,OACd,UAAU,OAAO,EACjB,QAAQ,UAAU,MAAM,CAC1B,CAAC,CACH,EACA,MAAM,SAAW,WAAW,sBAAuB,SAAY,QAAS,QAA4D,OAAO,CAAC,EAC5I,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,SAAS,MAAM,OAAO,EAC5D,MAAM,gBAAkB,SAAS,MACjC,MAAM,OAAS,IAAW,CACxB,MAAM,UAAY,WAAW,YAAW,EACxC,GAAI,CAAC,UAAU,GAAI,MAAM,IAAI,UAAU,UAAU,MAAM,OAAO,CAChE,EACA,MAAM,gBAAmB,MAA8B,CACrD,OAAM,EACN,SAAW,KACX,MAAM,SAAW,WAAW,SAAS,CAAE,KAAM,gBAAgB,CAAW,EACxE,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,SAAS,MAAM,OAAO,CAC9D,EACA,MAAM,QAAU,IAAW,CACzB,GAAI,SAAU,OACd,SAAW,KACX,OAAM,EACN,gBAAe,CACjB,EAEA,GAAI,mBAAkB,IAAO,KAAM,CACjC,UAAU,IAAK,CACb,QAAU,KACV,MAAM,QAAU,QAAU,WAAW,aAAa,MAAM,eACxD,OAAS,KACT,GAAI,UAAY,KAAM,QAAQ,OAAO,CACvC,CAAC,EACD,gBAAgB,OAAO,CACzB,CACA,OAAO,OAAO,OAAO,CAAE,OAAQ,SAAS,MAAM,EAAG,MAAO,SAAS,KAAK,EAAG,OAAQ,OAAQ,gBAAiB,OAAO,CAAE,CACrH","names":[],"file":"source.js"}
1
+ {"version":3,"sources":["../../src/tabular/source.ts"],"mappings":"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","names":[],"file":"source.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;