@mono-lit/helper 0.0.0-stage → 0.0.1

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 (538) hide show
  1. package/LICENSE.md +55 -0
  2. package/README.md +34 -2
  3. package/dist/breakpoints-CAbhDUht.js +84 -0
  4. package/dist/checkbox-Cqpie9Ap.js +4 -0
  5. package/dist/chip-DBUUa2eB.js +4 -0
  6. package/dist/chip-limits-BMoO31JM.js +213 -0
  7. package/dist/chip-strip-Cw3gyz0q.js +213 -0
  8. package/dist/color-DHYrfXsX.js +253 -0
  9. package/dist/css-class-BRKRzHx-.js +60 -0
  10. package/dist/css-size-DhHSVZJK.js +37 -0
  11. package/dist/data/theme/presets.json.d.ts +140 -0
  12. package/dist/data-search-Bwo5bg8K.js +573 -0
  13. package/dist/data-source-controller-C50Qyfzh.js +178 -0
  14. package/dist/data-source-options-BTpfrOZ_.js +535 -0
  15. package/dist/data-source-options-CQSTZHPE.js +537 -0
  16. package/dist/data-source-read-CUX-lgrQ.js +216 -0
  17. package/dist/data-source-read-DL88aH8t.js +217 -0
  18. package/dist/decorate-DEXtNagw.js +141 -0
  19. package/dist/element-props-CLB6yvbm.js +114 -0
  20. package/dist/esm-Ptok4SQZ.js +2026 -0
  21. package/dist/excel-CY6zGkcx.js +608 -0
  22. package/dist/excel-DopRbEMK.js +608 -0
  23. package/dist/export-BvlBx_GZ.js +2302 -0
  24. package/dist/export.d.ts +1 -0
  25. package/dist/export.js +2302 -0
  26. package/dist/field-icons-BoOG6KrL.js +51 -0
  27. package/dist/field-path-C92eGLg3.js +251 -0
  28. package/dist/filter-builder-Bke3qOgJ.js +205 -0
  29. package/dist/filter-builder-CE4zE0V5.js +205 -0
  30. package/dist/filter-eval-DIfU2EAn.js +173 -0
  31. package/dist/filter-odata-C1vSGZaY.js +591 -0
  32. package/dist/form-control-core-B8d7k6vk.js +223 -0
  33. package/dist/form-control-core-eeRr0zLU.js +223 -0
  34. package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
  35. package/dist/icon-CJkTlmTb.js +55 -0
  36. package/dist/icon-dVhYJUIH.js +17 -0
  37. package/dist/import-BgJdkwBI.js +606 -0
  38. package/dist/import.d.ts +1 -0
  39. package/dist/import.js +606 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +16 -0
  42. package/dist/index.node-DjvYOL-J.js +395 -0
  43. package/dist/index.node.d.ts +1 -0
  44. package/dist/index.node.js +16 -0
  45. package/dist/input-zGOULADt.js +4 -0
  46. package/dist/layout-var-CZnzMC0s.js +73 -0
  47. package/dist/light-slots-BVJwyg_2.js +244 -0
  48. package/dist/light-slots-DW1WgfgT.js +254 -0
  49. package/dist/markdown-DfqrfOJN.js +20146 -0
  50. package/dist/mono-button-CoVnBLav.js +873 -0
  51. package/dist/mono-button.shadow-FfP_hMH4.js +784 -0
  52. package/dist/mono-data-chart-ChU4Ii3p.js +738 -0
  53. package/dist/mono-data-dropdown-BAUl58kW.js +357 -0
  54. package/dist/mono-data-grid-CLBK8clE.js +4140 -0
  55. package/dist/mono-data-grid-Db80FzdZ.js +4142 -0
  56. package/dist/mono-element-B0kP_96P.js +232 -0
  57. package/dist/mono-event-Bi1qP9uN.js +129 -0
  58. package/dist/mono-form-controller-5PfsU4qa.js +409 -0
  59. package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
  60. package/dist/mono-ui-CPV7rrdo.js +358 -0
  61. package/dist/notifier-CE4yxMUQ.js +88 -0
  62. package/dist/nuxt.d.ts +1 -0
  63. package/dist/nuxt.js +130 -0
  64. package/dist/popup-portal-BziRX1yG.js +465 -0
  65. package/dist/popup-stack-CEEMib__.js +189 -0
  66. package/dist/rate-limit-BBa2PO79.js +521 -0
  67. package/dist/reactive-BHsqVjRh.js +789 -0
  68. package/dist/reactive-D3EERqgO.js +47 -0
  69. package/dist/search.d.ts +1 -0
  70. package/dist/search.js +97 -0
  71. package/dist/src/components/accordion/accordion-core.d.ts +62 -0
  72. package/dist/src/components/accordion/accordion-types.d.ts +62 -0
  73. package/dist/src/components/accordion/index.d.ts +3 -0
  74. package/dist/src/components/accordion/index.shadow.d.ts +5 -0
  75. package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
  76. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
  77. package/dist/src/components/alert/alert-core.d.ts +46 -0
  78. package/dist/src/components/alert/alert-types.d.ts +44 -0
  79. package/dist/src/components/alert/index.d.ts +3 -0
  80. package/dist/src/components/alert/index.shadow.d.ts +5 -0
  81. package/dist/src/components/alert/mono-alert.d.ts +44 -0
  82. package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
  83. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
  84. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
  85. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
  86. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
  87. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
  88. package/dist/src/components/breadcrumb/index.d.ts +6 -0
  89. package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
  90. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
  91. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
  92. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
  93. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
  94. package/dist/src/components/button/button-core.d.ts +90 -0
  95. package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
  96. package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
  97. package/dist/src/components/button/button-types.d.ts +219 -0
  98. package/dist/src/components/button/button-utils.d.ts +18 -0
  99. package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
  100. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
  101. package/dist/src/components/button/index.d.ts +8 -0
  102. package/dist/src/components/button/index.shadow.d.ts +5 -0
  103. package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
  104. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
  105. package/dist/src/components/button/mono-button.d.ts +123 -0
  106. package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
  107. package/dist/src/components/card/card-core.d.ts +74 -0
  108. package/dist/src/components/card/card-types.d.ts +137 -0
  109. package/dist/src/components/card/card-utils.d.ts +23 -0
  110. package/dist/src/components/card/index.d.ts +4 -0
  111. package/dist/src/components/card/index.shadow.d.ts +6 -0
  112. package/dist/src/components/card/mono-card.d.ts +56 -0
  113. package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
  114. package/dist/src/components/chart/chart-core.d.ts +43 -0
  115. package/dist/src/components/chart/chart-odata.d.ts +52 -0
  116. package/dist/src/components/chart/chart-types.d.ts +337 -0
  117. package/dist/src/components/chart/index.d.ts +8 -0
  118. package/dist/src/components/chart/index.shadow.d.ts +7 -0
  119. package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
  120. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
  121. package/dist/src/components/chart/mono-chart.d.ts +30 -0
  122. package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
  123. package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
  124. package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
  125. package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
  126. package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
  127. package/dist/src/components/checkbox/index.d.ts +4 -0
  128. package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
  129. package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
  130. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
  131. package/dist/src/components/chip/chip-core.d.ts +58 -0
  132. package/dist/src/components/chip/chip-types.d.ts +142 -0
  133. package/dist/src/components/chip/chip-utils.d.ts +24 -0
  134. package/dist/src/components/chip/index.d.ts +8 -0
  135. package/dist/src/components/chip/index.shadow.d.ts +6 -0
  136. package/dist/src/components/chip/mono-chip.d.ts +48 -0
  137. package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
  138. package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
  139. package/dist/src/components/date/date-core.d.ts +80 -0
  140. package/dist/src/components/date/date-types.d.ts +163 -0
  141. package/dist/src/components/date/index.d.ts +3 -0
  142. package/dist/src/components/date/index.shadow.d.ts +4 -0
  143. package/dist/src/components/date/mono-date.d.ts +22 -0
  144. package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
  145. package/dist/src/components/drawer/drawer-core.d.ts +99 -0
  146. package/dist/src/components/drawer/drawer-types.d.ts +153 -0
  147. package/dist/src/components/drawer/index.d.ts +3 -0
  148. package/dist/src/components/drawer/index.shadow.d.ts +4 -0
  149. package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
  150. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
  151. package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
  152. package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
  153. package/dist/src/components/dropdown/index.d.ts +3 -0
  154. package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
  155. package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
  156. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
  157. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
  158. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
  159. package/dist/src/components/dropdown-table/index.d.ts +5 -0
  160. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
  161. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
  162. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
  163. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
  164. package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
  165. package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
  166. package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
  167. package/dist/src/components/file-upload/index.d.ts +4 -0
  168. package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
  169. package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
  170. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
  171. package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
  172. package/dist/src/components/filter/filter-builder.d.ts +23 -0
  173. package/dist/src/components/filter/filter-odata.d.ts +27 -0
  174. package/dist/src/components/filter/filter-operators.d.ts +13 -0
  175. package/dist/src/components/filter/filter-types.d.ts +253 -0
  176. package/dist/src/components/filter/index.d.ts +6 -0
  177. package/dist/src/components/filter/index.shadow.d.ts +7 -0
  178. package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
  179. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
  180. package/dist/src/components/form/form-control-core.d.ts +37 -0
  181. package/dist/src/components/form/form-rules.d.ts +25 -0
  182. package/dist/src/components/form/form-types.d.ts +307 -0
  183. package/dist/src/components/form/index.d.ts +6 -0
  184. package/dist/src/components/form/mono-form-controller.d.ts +16 -0
  185. package/dist/src/components/input/index.d.ts +6 -0
  186. package/dist/src/components/input/index.shadow.d.ts +8 -0
  187. package/dist/src/components/input/input-core.d.ts +91 -0
  188. package/dist/src/components/input/input-format.d.ts +118 -0
  189. package/dist/src/components/input/input-types.d.ts +179 -0
  190. package/dist/src/components/input/input-utils.d.ts +10 -0
  191. package/dist/src/components/input/mono-input.d.ts +46 -0
  192. package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
  193. package/dist/src/components/menu/index.d.ts +6 -0
  194. package/dist/src/components/menu/index.shadow.d.ts +7 -0
  195. package/dist/src/components/menu/menu-core.d.ts +65 -0
  196. package/dist/src/components/menu/menu-render.d.ts +55 -0
  197. package/dist/src/components/menu/menu-types.d.ts +195 -0
  198. package/dist/src/components/menu/menu-utils.d.ts +53 -0
  199. package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
  200. package/dist/src/components/menu/mono-menu.d.ts +39 -0
  201. package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
  202. package/dist/src/components/modal/index.d.ts +4 -0
  203. package/dist/src/components/modal/index.shadow.d.ts +5 -0
  204. package/dist/src/components/modal/modal-core.d.ts +110 -0
  205. package/dist/src/components/modal/modal-types.d.ts +304 -0
  206. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
  207. package/dist/src/components/modal/mono-modal.d.ts +45 -0
  208. package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
  209. package/dist/src/components/nav/index.d.ts +4 -0
  210. package/dist/src/components/nav/index.shadow.d.ts +6 -0
  211. package/dist/src/components/nav/mono-nav.d.ts +41 -0
  212. package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
  213. package/dist/src/components/nav/nav-core.d.ts +34 -0
  214. package/dist/src/components/nav/nav-types.d.ts +48 -0
  215. package/dist/src/components/nav/nav-utils.d.ts +12 -0
  216. package/dist/src/components/radio/index.d.ts +4 -0
  217. package/dist/src/components/radio/index.shadow.d.ts +5 -0
  218. package/dist/src/components/radio/mono-radio.d.ts +31 -0
  219. package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
  220. package/dist/src/components/radio/radio-core.d.ts +45 -0
  221. package/dist/src/components/radio/radio-types.d.ts +58 -0
  222. package/dist/src/components/radio/radio-utils.d.ts +12 -0
  223. package/dist/src/components/rich-text-editor/index.d.ts +5 -0
  224. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
  225. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
  226. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
  227. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
  228. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
  229. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
  230. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
  231. package/dist/src/components/select/index.d.ts +4 -0
  232. package/dist/src/components/select/index.shadow.d.ts +5 -0
  233. package/dist/src/components/select/mono-select.d.ts +69 -0
  234. package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
  235. package/dist/src/components/select/select-core.d.ts +98 -0
  236. package/dist/src/components/select/select-types.d.ts +258 -0
  237. package/dist/src/components/select/select-utils.d.ts +7 -0
  238. package/dist/src/components/sidebar/index.d.ts +4 -0
  239. package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
  240. package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
  241. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
  242. package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
  243. package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
  244. package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
  245. package/dist/src/components/switch/index.d.ts +4 -0
  246. package/dist/src/components/switch/index.shadow.d.ts +5 -0
  247. package/dist/src/components/switch/mono-switch.d.ts +31 -0
  248. package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
  249. package/dist/src/components/switch/switch-core.d.ts +49 -0
  250. package/dist/src/components/switch/switch-types.d.ts +64 -0
  251. package/dist/src/components/switch/switch-utils.d.ts +12 -0
  252. package/dist/src/components/table/array-source.d.ts +44 -0
  253. package/dist/src/components/table/date-filter-tree.d.ts +93 -0
  254. package/dist/src/components/table/grouping.d.ts +55 -0
  255. package/dist/src/components/table/index.d.ts +33 -0
  256. package/dist/src/components/table/index.shadow.d.ts +47 -0
  257. package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
  258. package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
  259. package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
  260. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
  261. package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
  262. package/dist/src/components/table/mono-table-detail.d.ts +32 -0
  263. package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
  264. package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
  265. package/dist/src/components/table/mono-table-empty.d.ts +35 -0
  266. package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
  267. package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
  268. package/dist/src/components/table/mono-table-error.d.ts +28 -0
  269. package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
  270. package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
  271. package/dist/src/components/table/mono-table-info.d.ts +19 -0
  272. package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
  273. package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
  274. package/dist/src/components/table/mono-table-loading.d.ts +50 -0
  275. package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
  276. package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
  277. package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
  278. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
  279. package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
  280. package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
  281. package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
  282. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
  283. package/dist/src/components/table/mono-table-paging.d.ts +16 -0
  284. package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
  285. package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
  286. package/dist/src/components/table/mono-table-search.d.ts +34 -0
  287. package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
  288. package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
  289. package/dist/src/components/table/mono-table-sort.d.ts +38 -0
  290. package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
  291. package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
  292. package/dist/src/components/table/mono-table-summary.d.ts +24 -0
  293. package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
  294. package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
  295. package/dist/src/components/table/mono-table-th.d.ts +41 -0
  296. package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
  297. package/dist/src/components/table/store-group-source.d.ts +24 -0
  298. package/dist/src/components/table/table-controller-core.d.ts +40 -0
  299. package/dist/src/components/table/table-filter-icons.d.ts +3 -0
  300. package/dist/src/components/table/table-menu-core.d.ts +65 -0
  301. package/dist/src/components/table/table-overlay.d.ts +165 -0
  302. package/dist/src/components/table/table-sort-icons.d.ts +4 -0
  303. package/dist/src/components/table/table-sort-utils.d.ts +20 -0
  304. package/dist/src/components/table/table-types.d.ts +475 -0
  305. package/dist/src/components/tabs/index.d.ts +3 -0
  306. package/dist/src/components/tabs/index.shadow.d.ts +4 -0
  307. package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
  308. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
  309. package/dist/src/components/tabs/tabs-core.d.ts +57 -0
  310. package/dist/src/components/tabs/tabs-types.d.ts +65 -0
  311. package/dist/src/components/tag-input/index.d.ts +4 -0
  312. package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
  313. package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
  314. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
  315. package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
  316. package/dist/src/components/tag-input/tag-input-types.d.ts +394 -0
  317. package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
  318. package/dist/src/components/textarea/index.d.ts +4 -0
  319. package/dist/src/components/textarea/index.shadow.d.ts +5 -0
  320. package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
  321. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
  322. package/dist/src/components/textarea/textarea-core.d.ts +60 -0
  323. package/dist/src/components/textarea/textarea-types.d.ts +131 -0
  324. package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
  325. package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
  326. package/dist/src/components/tooltip/index.d.ts +6 -0
  327. package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
  328. package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
  329. package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
  330. package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
  331. package/dist/src/composables/breakpoints.d.ts +59 -0
  332. package/dist/src/composables/chip-limits.d.ts +48 -0
  333. package/dist/src/composables/chip-strip.d.ts +93 -0
  334. package/dist/src/composables/color.d.ts +103 -0
  335. package/dist/src/composables/css-class.d.ts +27 -0
  336. package/dist/src/composables/css-size.d.ts +40 -0
  337. package/dist/src/composables/data-source-controller.d.ts +84 -0
  338. package/dist/src/composables/element-props.d.ts +46 -0
  339. package/dist/src/composables/field-icons.d.ts +7 -0
  340. package/dist/src/composables/hybird-prop.d.ts +79 -0
  341. package/dist/src/composables/hydration-flush.d.ts +34 -0
  342. package/dist/src/composables/icon.d.ts +17 -0
  343. package/dist/src/composables/layout-var.d.ts +34 -0
  344. package/dist/src/composables/light-slots.d.ts +133 -0
  345. package/dist/src/composables/mdi-glyphs.d.ts +4 -0
  346. package/dist/src/composables/mono-element.d.ts +9 -0
  347. package/dist/src/composables/mono-event.d.ts +55 -0
  348. package/dist/src/composables/mono-pending.d.ts +8 -0
  349. package/dist/src/composables/mono-skeleton.d.ts +193 -0
  350. package/dist/src/composables/mono-ui.d.ts +58 -0
  351. package/dist/src/composables/notifier.d.ts +46 -0
  352. package/dist/src/composables/popup-portal.d.ts +226 -0
  353. package/dist/src/composables/popup-stack.d.ts +70 -0
  354. package/dist/src/composables/rate-limit.d.ts +108 -0
  355. package/dist/src/composables/reactive.d.ts +53 -0
  356. package/dist/src/composables/shadow-css.d.ts +42 -0
  357. package/dist/src/composables/visibility.d.ts +36 -0
  358. package/dist/src/data/theme/index.d.ts +30 -0
  359. package/dist/src/data/theme/presets.d.ts +94 -0
  360. package/dist/src/entries/index.d.ts +2 -0
  361. package/dist/src/entries/index.node.d.ts +42 -0
  362. package/dist/src/entries/search.d.ts +3 -0
  363. package/dist/src/export/detail.d.ts +29 -0
  364. package/dist/src/export/download.d.ts +9 -0
  365. package/dist/src/export/excel/index.d.ts +27 -0
  366. package/dist/src/export/excel/nodes.d.ts +123 -0
  367. package/dist/src/export/expression.d.ts +36 -0
  368. package/dist/src/export/helpers.d.ts +6 -0
  369. package/dist/src/export/index.d.ts +13 -0
  370. package/dist/src/export/markdown.d.ts +52 -0
  371. package/dist/src/export/resolve-data.d.ts +31 -0
  372. package/dist/src/export/sentinel.d.ts +97 -0
  373. package/dist/src/export/sheet-name.d.ts +45 -0
  374. package/dist/src/export/styles.d.ts +33 -0
  375. package/dist/src/export/template.d.ts +10 -0
  376. package/dist/src/export/types.d.ts +259 -0
  377. package/dist/src/import/coerce.d.ts +38 -0
  378. package/dist/src/import/index.d.ts +16 -0
  379. package/dist/src/import/match.d.ts +54 -0
  380. package/dist/src/import/parse.d.ts +15 -0
  381. package/dist/src/import/types.d.ts +153 -0
  382. package/dist/src/nuxt/index.d.ts +94 -0
  383. package/dist/src/search/data-search.d.ts +207 -0
  384. package/dist/src/search/field-path.d.ts +107 -0
  385. package/dist/src/search/filter-eval.d.ts +30 -0
  386. package/dist/src/search/index.d.ts +22 -0
  387. package/dist/src/search/odata-search.d.ts +18 -0
  388. package/dist/src/search/search-expr.d.ts +160 -0
  389. package/dist/src/utils/data-source-apply.d.ts +97 -0
  390. package/dist/src/utils/data-source-options.d.ts +116 -0
  391. package/dist/src/utils/data-source-read.d.ts +85 -0
  392. package/dist/src/utils/data-source-summary.d.ts +55 -0
  393. package/dist/src/utils/normalize-error.d.ts +60 -0
  394. package/dist/src/vite/index.d.ts +48 -0
  395. package/dist/src/vite/mono-client-only.d.ts +35 -0
  396. package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
  397. package/dist/src/vite/shadow-manifest.d.ts +8 -0
  398. package/dist/styles-BIJ31TM4.js +20146 -0
  399. package/dist/tooltip-CysgRgBi.js +760 -0
  400. package/dist/tooltip.d.ts +1 -0
  401. package/dist/tooltip.js +2 -0
  402. package/dist/ui/accordion.d.ts +1 -0
  403. package/dist/ui/accordion.js +466 -0
  404. package/dist/ui/alert.d.ts +1 -0
  405. package/dist/ui/alert.js +221 -0
  406. package/dist/ui/breadcrumb.d.ts +1 -0
  407. package/dist/ui/breadcrumb.js +902 -0
  408. package/dist/ui/button-dropdown.d.ts +1 -0
  409. package/dist/ui/button-dropdown.js +679 -0
  410. package/dist/ui/button.d.ts +1 -0
  411. package/dist/ui/button.js +63 -0
  412. package/dist/ui/card.d.ts +1 -0
  413. package/dist/ui/card.js +511 -0
  414. package/dist/ui/chart.d.ts +1 -0
  415. package/dist/ui/chart.js +808 -0
  416. package/dist/ui/checkbox.d.ts +1 -0
  417. package/dist/ui/checkbox.js +413 -0
  418. package/dist/ui/chip.d.ts +1 -0
  419. package/dist/ui/chip.js +558 -0
  420. package/dist/ui/date.d.ts +1 -0
  421. package/dist/ui/date.js +686 -0
  422. package/dist/ui/drawer.d.ts +1 -0
  423. package/dist/ui/drawer.js +901 -0
  424. package/dist/ui/dropdown-table.d.ts +1 -0
  425. package/dist/ui/dropdown-table.js +1291 -0
  426. package/dist/ui/dropdown.d.ts +1 -0
  427. package/dist/ui/dropdown.js +586 -0
  428. package/dist/ui/file-upload.d.ts +1 -0
  429. package/dist/ui/file-upload.js +688 -0
  430. package/dist/ui/filter.d.ts +1 -0
  431. package/dist/ui/filter.js +400 -0
  432. package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
  433. package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
  434. package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
  435. package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
  436. package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
  437. package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
  438. package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
  439. package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
  440. package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
  441. package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
  442. package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
  443. package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
  444. package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
  445. package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
  446. package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
  447. package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
  448. package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
  449. package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
  450. package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
  451. package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
  452. package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
  453. package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
  454. package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
  455. package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
  456. package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
  457. package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
  458. package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
  459. package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
  460. package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
  461. package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
  462. package/dist/ui/font/geist-mono.css +104 -0
  463. package/dist/ui/font/geist.css +168 -0
  464. package/dist/ui/font/inter.css +232 -0
  465. package/dist/ui/font/poppins.css +104 -0
  466. package/dist/ui/form.d.ts +1 -0
  467. package/dist/ui/form.js +3 -0
  468. package/dist/ui/index.css +21826 -0
  469. package/dist/ui/input.d.ts +1 -0
  470. package/dist/ui/input.js +1176 -0
  471. package/dist/ui/menu.d.ts +1 -0
  472. package/dist/ui/menu.js +1289 -0
  473. package/dist/ui/modal.d.ts +1 -0
  474. package/dist/ui/modal.js +995 -0
  475. package/dist/ui/nav.d.ts +1 -0
  476. package/dist/ui/nav.js +295 -0
  477. package/dist/ui/radio.d.ts +1 -0
  478. package/dist/ui/radio.js +379 -0
  479. package/dist/ui/rich-text-editor.d.ts +1 -0
  480. package/dist/ui/rich-text-editor.js +1338 -0
  481. package/dist/ui/select.d.ts +1 -0
  482. package/dist/ui/select.js +2066 -0
  483. package/dist/ui/shadow/accordion.js +442 -0
  484. package/dist/ui/shadow/alert.js +218 -0
  485. package/dist/ui/shadow/breadcrumb.js +919 -0
  486. package/dist/ui/shadow/button-dropdown.js +696 -0
  487. package/dist/ui/shadow/button.js +63 -0
  488. package/dist/ui/shadow/card.js +524 -0
  489. package/dist/ui/shadow/chart.js +1569 -0
  490. package/dist/ui/shadow/checkbox.js +457 -0
  491. package/dist/ui/shadow/chip.js +559 -0
  492. package/dist/ui/shadow/date.js +712 -0
  493. package/dist/ui/shadow/drawer.js +869 -0
  494. package/dist/ui/shadow/dropdown-table.js +1620 -0
  495. package/dist/ui/shadow/dropdown.js +547 -0
  496. package/dist/ui/shadow/file-upload.js +731 -0
  497. package/dist/ui/shadow/filter.js +402 -0
  498. package/dist/ui/shadow/input.js +1150 -0
  499. package/dist/ui/shadow/menu.js +899 -0
  500. package/dist/ui/shadow/modal.js +1193 -0
  501. package/dist/ui/shadow/nav.js +240 -0
  502. package/dist/ui/shadow/radio.js +408 -0
  503. package/dist/ui/shadow/rich-text-editor.js +1344 -0
  504. package/dist/ui/shadow/select.js +2033 -0
  505. package/dist/ui/shadow/sidebar.js +606 -0
  506. package/dist/ui/shadow/switch.js +428 -0
  507. package/dist/ui/shadow/table.js +4755 -0
  508. package/dist/ui/shadow/tabs.js +372 -0
  509. package/dist/ui/shadow/tag-input.js +2846 -0
  510. package/dist/ui/shadow/textarea.js +816 -0
  511. package/dist/ui/sidebar.d.ts +1 -0
  512. package/dist/ui/sidebar.js +659 -0
  513. package/dist/ui/switch.d.ts +1 -0
  514. package/dist/ui/switch.js +398 -0
  515. package/dist/ui/table.d.ts +1 -0
  516. package/dist/ui/table.js +4654 -0
  517. package/dist/ui/tabs.d.ts +1 -0
  518. package/dist/ui/tabs.js +379 -0
  519. package/dist/ui/tag-input.d.ts +1 -0
  520. package/dist/ui/tag-input.js +2819 -0
  521. package/dist/ui/textarea.d.ts +1 -0
  522. package/dist/ui/textarea.js +819 -0
  523. package/dist/ui/theme/legacy.css +293 -0
  524. package/dist/ui/theme/luma.css +743 -0
  525. package/dist/ui/theme/lyra.css +754 -0
  526. package/dist/ui/theme/maia.css +673 -0
  527. package/dist/ui/theme/mira.css +802 -0
  528. package/dist/ui/theme/nova.css +662 -0
  529. package/dist/ui/theme/one.css +699 -0
  530. package/dist/ui/theme/rhea.css +742 -0
  531. package/dist/ui/theme/sera.css +845 -0
  532. package/dist/ui/theme/tokens.css +261 -0
  533. package/dist/ui/theme/vega.css +467 -0
  534. package/dist/vite-C5iUK7so.js +329 -0
  535. package/dist/vite.d.ts +1 -0
  536. package/dist/vite.js +2 -0
  537. package/dist/vue.d.ts +282 -0
  538. package/package.json +411 -3
@@ -0,0 +1,535 @@
1
+ import { n as isPath, r as mergePatch, t as getFieldValue } from "./field-path-C92eGLg3.js";
2
+ import { b as andPredicates, o as mergeSearchFields, t as resolveMaybeReactive, x as compileFilterPredicate, y as andFilters } from "./reactive-BHsqVjRh.js";
3
+ import { i as searchFilterOf, s as flattenLeaves, t as isDataSourceLike } from "./data-source-read-CUX-lgrQ.js";
4
+ import { s as odataStringToArray, t as arrayToODataString } from "./filter-odata-C1vSGZaY.js";
5
+ //#region src/components/table/array-source.ts
6
+ /** Normalise a possibly-grouped input array to flat leaf rows when grouping. */
7
+ function normalizeInput(data, group) {
8
+ return (Array.isArray(group) ? group.length > 0 : !!group) ? flattenLeaves(data) : [...data];
9
+ }
10
+ /**
11
+ * Wrap a plain array in the structural {@link MonoGridSource} shape so
12
+ * {@link monoDataGrid} can drive it with no devextreme DataSource — paging,
13
+ * search and filtering all run client-side, in memory.
14
+ *
15
+ * @example
16
+ * const source = monoArraySource(rows, { pageSize: 10, searchValue: ['name'] })
17
+ * const table = monoDataGrid(source)
18
+ * await table.load()
19
+ * // later: source.setData(nextRows) // swap the underlying array
20
+ */
21
+ function monoArraySource(data = [], opts = {}) {
22
+ const handlers = {
23
+ changed: [],
24
+ loadingChanged: [],
25
+ loadError: []
26
+ };
27
+ let all = normalizeInput(data, opts.group);
28
+ let pageIndex = 0;
29
+ let pageSize = opts.pageSize ?? 10;
30
+ let paginate = true;
31
+ let search = null;
32
+ let searchExpr = mergeSearchFields(opts)?.filter((e) => typeof e === "string") ?? null;
33
+ let searchOperation = "contains";
34
+ let filter = null;
35
+ let sortList = [];
36
+ let page = [];
37
+ const emit = (event, arg) => (handlers[event] ?? []).slice().forEach((h) => h(arg));
38
+ /** Normalise a single devextreme sort entry into `{ selector, desc }`. */
39
+ function normalizeSortEntry(value) {
40
+ if (!value) return null;
41
+ if (typeof value === "string") return {
42
+ selector: value,
43
+ desc: false
44
+ };
45
+ const o = value;
46
+ return o.selector ? {
47
+ selector: o.selector,
48
+ desc: !!o.desc
49
+ } : null;
50
+ }
51
+ /** Normalise the devextreme sort forms into an ordered multi-key list. */
52
+ function normalizeSortList(value) {
53
+ return (Array.isArray(value) ? value : value == null ? [] : [value]).map(normalizeSortEntry).filter((e) => !!e);
54
+ }
55
+ /** Read a sort/compare value; a wildcard path sorts best-effort by its first match. */
56
+ function sortValue(row, selector) {
57
+ if (!isPath(selector)) return row[selector];
58
+ const v = getFieldValue(row, selector);
59
+ return Array.isArray(v) ? v[0] : v;
60
+ }
61
+ /** Compare two rows by one selector (numeric when both sides parse). */
62
+ function compareBy(a, b, selector, desc) {
63
+ const av = sortValue(a, selector);
64
+ const bv = sortValue(b, selector);
65
+ const dir = desc ? -1 : 1;
66
+ if (av == null && bv == null) return 0;
67
+ if (av == null) return -dir;
68
+ if (bv == null) return dir;
69
+ const an = Number(av);
70
+ const bn = Number(bv);
71
+ const cmp = !Number.isNaN(an) && !Number.isNaN(bn) ? an - bn : String(av).localeCompare(String(bv));
72
+ return cmp === 0 ? 0 : (cmp < 0 ? -1 : 1) * dir;
73
+ }
74
+ /** Apply filter + search + sort, returning the matching rows. */
75
+ function applied() {
76
+ let rows = all;
77
+ if (typeof filter === "function") rows = rows.filter(filter);
78
+ const cols = searchExpr == null ? [] : Array.isArray(searchExpr) ? searchExpr : [searchExpr];
79
+ if (search && cols.length) {
80
+ const needle = String(search).toLowerCase();
81
+ const matches = (row, c) => {
82
+ const raw = isPath(c) ? getFieldValue(row, c) : row[c];
83
+ return (Array.isArray(raw) ? raw : [raw]).some((v) => String(v ?? "").toLowerCase().includes(needle));
84
+ };
85
+ rows = rows.filter((row) => cols.some((c) => matches(row, c)));
86
+ }
87
+ if (sortList.length) rows = [...rows].sort((a, b) => {
88
+ for (const { selector, desc } of sortList) {
89
+ const cmp = compareBy(a, b, selector, desc);
90
+ if (cmp !== 0) return cmp;
91
+ }
92
+ return 0;
93
+ });
94
+ return rows;
95
+ }
96
+ const source = {
97
+ on: (event, handler) => void (handlers[event] ??= []).push(handler),
98
+ off: (event, handler) => {
99
+ handlers[event] = (handlers[event] ?? []).filter((h) => h !== handler);
100
+ },
101
+ items: () => page,
102
+ /** Full backing array (unfiltered) — lets the grid derive header-filter values. */
103
+ data: () => [...all],
104
+ isLoading: () => false,
105
+ totalCount: () => applied().length,
106
+ isLastPage: () => (pageIndex + 1) * pageSize >= applied().length,
107
+ paginate: (value) => value === void 0 ? paginate : paginate = value,
108
+ pageSize: (value) => value === void 0 ? pageSize : pageSize = value,
109
+ pageIndex: (value) => value === void 0 ? pageIndex : pageIndex = value,
110
+ searchValue: (value) => value === void 0 ? search : search = value || null,
111
+ searchExpr: (value) => value === void 0 ? searchExpr : searchExpr = value ?? null,
112
+ searchOperation: (op) => op === void 0 ? searchOperation : searchOperation = op,
113
+ filter: (value) => value === void 0 ? filter : filter = typeof value === "function" ? value : null,
114
+ sort: (value) => value === void 0 ? sortList : sortList = normalizeSortList(value),
115
+ load: () => {
116
+ emit("loadingChanged", true);
117
+ const rows = applied();
118
+ const start = pageIndex * pageSize;
119
+ page = paginate ? rows.slice(start, start + pageSize) : rows.slice();
120
+ emit("changed");
121
+ emit("loadingChanged", false);
122
+ return Promise.resolve(page);
123
+ },
124
+ reload: () => source.load(),
125
+ /** Replace the backing array and reload from page 0. */
126
+ setData: (next) => {
127
+ all = normalizeInput(next, opts.group);
128
+ pageIndex = 0;
129
+ return Promise.resolve(source.load());
130
+ },
131
+ /**
132
+ * Merge `values` into the row whose `keyExpr` field equals `key`, then reload
133
+ * — the per-row write path used by `monoDataGrid.saveChanges()` for an
134
+ * array-backed table (correct across pages, unlike a whole-array `setData`).
135
+ */
136
+ update: (key, values) => {
137
+ const keyExpr = opts.keyExpr ?? "Id";
138
+ const idx = all.findIndex((row) => String(row?.[keyExpr]) === String(key));
139
+ if (idx >= 0) all[idx] = mergePatch(all[idx], values);
140
+ return Promise.resolve(source.load());
141
+ }
142
+ };
143
+ return source;
144
+ }
145
+ //#endregion
146
+ //#region src/utils/data-source-apply.ts
147
+ /** The store's OData version, or `null` for anything that is not an OData store. */
148
+ function odataStoreVersion(store) {
149
+ const s = store;
150
+ if (!s || typeof s.version !== "function") return null;
151
+ const v = Number(s.version());
152
+ return Number.isFinite(v) ? v : null;
153
+ }
154
+ /** The store's base url, or `null` when it cannot be read. */
155
+ function odataStoreUrl(store) {
156
+ const s = store;
157
+ const url = s?._requestDispatcher?.url ?? s?._url;
158
+ return typeof url === "string" && url ? url : null;
159
+ }
160
+ /** `<url>?$apply=<encoded clause>` — `&` when the url already has a query string. */
161
+ function applyRequestUrl(url, apply) {
162
+ return `${url}${url.includes("?") ? "&" : "?"}$apply=${encodeURIComponent(apply)}`;
163
+ }
164
+ /**
165
+ * The `store.load()` options that carry `apply`, or `null` when this store
166
+ * cannot carry one (no request should be made).
167
+ *
168
+ * `requireTotalCount: false` keeps `$count` off — a rolled-up result has no
169
+ * meaningful total, and `$count` beside `$apply` is rejected by some servers.
170
+ */
171
+ function applyLoadOptions(store, apply, options = {}) {
172
+ if (odataStoreVersion(store) == null) return null;
173
+ const url = odataStoreUrl(store);
174
+ if (!url) return null;
175
+ const hasTop = typeof options.top === "number" && options.top >= 0;
176
+ return {
177
+ urlOverride: applyRequestUrl(url, apply),
178
+ requireTotalCount: false,
179
+ ...hasTop ? { take: options.top } : {}
180
+ };
181
+ }
182
+ /** Normalise a devextreme store `load` result into a plain rows array. */
183
+ function storeRows(res) {
184
+ return Array.isArray(res) ? res : res?.data ?? [];
185
+ }
186
+ /**
187
+ * Send `apply` through `store` and return the rolled-up rows, or `null` when
188
+ * the store cannot carry an `$apply` (nothing was requested). A request that
189
+ * FAILS throws — the caller decides whether that disables the path for good
190
+ * (see {@link createApplyGate}).
191
+ */
192
+ async function loadApply(store, apply, options = {}) {
193
+ const loadOptions = applyLoadOptions(store, apply, options);
194
+ if (!loadOptions) return null;
195
+ return storeRows(await store.load(loadOptions));
196
+ }
197
+ /**
198
+ * Whether `rows` are what an honoured `$apply` returns — each row carrying
199
+ * ONLY the grouping key(s) and the aggregate aliases in `keys` (plus OData
200
+ * `@odata.*` annotations) — as opposed to plain entities from a server that
201
+ * ignored the clause. The distinction matters because an alias is usually the
202
+ * field's own name: an entity `{ Id, Dept, Total }` has the alias `Total` too,
203
+ * and would be mistaken for a bucket by a presence check. The extra `Id` is
204
+ * what gives it away. `keys` are matched on their ROOT segment (`Job/Title`
205
+ * comes back as `{ Job: { Title } }`).
206
+ */
207
+ function isRolledUp(rows, keys) {
208
+ const allowed = new Set(keys.map((k) => k.split(/[./]/, 1)[0]));
209
+ return rows.every((row) => !!row && typeof row === "object" && Object.keys(row).every((k) => k.startsWith("@") || allowed.has(k)));
210
+ }
211
+ /**
212
+ * Whether a failed `$apply` request means the BACKEND does not do `$apply` —
213
+ * a 4xx (`400 Bad Request`, `404`) or `501 Not Implemented` — as opposed to a
214
+ * transient fault (network down: `httpStatus` 0 / absent, a 5xx). devextreme
215
+ * puts the status on the error as `httpStatus`.
216
+ */
217
+ function isApplyRejected(err) {
218
+ const status = Number(err?.httpStatus);
219
+ if (!Number.isFinite(status)) return false;
220
+ return status >= 400 && status < 500 || status === 501;
221
+ }
222
+ /**
223
+ * Per-controller "is the `$apply` path still worth trying?" switch.
224
+ *
225
+ * A backend without `$apply` answers every attempt with the same 4xx, and a
226
+ * grid that retried on every panel open / recompute would pay one failed
227
+ * request each time before falling back. So the FIRST definite rejection is
228
+ * remembered for the controller's lifetime; a transient failure is not, and
229
+ * the next attempt goes out normally.
230
+ */
231
+ function createApplyGate(enabled) {
232
+ let rejected = false;
233
+ return {
234
+ get skip() {
235
+ return !enabled || rejected;
236
+ },
237
+ reject(err) {
238
+ if (isApplyRejected(err)) rejected = true;
239
+ }
240
+ };
241
+ }
242
+ //#endregion
243
+ //#region src/utils/data-source-summary.ts
244
+ /**
245
+ * Server-side column aggregates: the pieces a consumer needs to answer
246
+ * "what are the totals?" without the grid draining every row to add them up.
247
+ *
248
+ * ── Resolver → store → drain ──
249
+ *
250
+ * A registered summary covers the FULL filtered set, not the current page, so
251
+ * something has to see every matching row. Left to itself the grid drains the
252
+ * bound source in `take: 100` chunks — free over an array, and pathological over
253
+ * a server-paged table, where it re-fetches through the pager exactly the rows
254
+ * the pager exists to avoid.
255
+ *
256
+ * The fix is to ask the server for the totals, and there are two ways in. The
257
+ * grid's own: ONE `$apply=filter(…)/aggregate(…)` through the bound source's
258
+ * STORE (`utils/data-source-apply`), which rides its url, `beforeSend` and auth.
259
+ * That needs a devextreme `ODataStore` — a CustomStore has nothing to carry the
260
+ * clause on, and **devextreme itself has no aggregate support**: `totalSummary`,
261
+ * `groupSummary` and `$apply` appear nowhere in it, an unknown load option is
262
+ * dropped in silence rather than refused (a `store.load({ totalSummary })` comes
263
+ * back as ordinary rows), and `customQueryParams` are service-operation
264
+ * parameters — quoted as literals, and on OData v4 a FUNCTION-INVOCATION url,
265
+ * `Entity($apply='…')` — so the clause has to go into the url (`urlOverride`),
266
+ * which is what `loadApply` does.
267
+ *
268
+ * The consumer's: a resolver. It is asked FIRST and covers what the store path
269
+ * cannot — a fetcher of the consumer's own, a custom dialect, a cached answer.
270
+ * The library builds the clause and hands it over; the consumer performs the
271
+ * request with whatever it already uses. Declining (`null`) falls through to the
272
+ * store path, and that declining falls through to the drain.
273
+ */
274
+ /**
275
+ * mono's aggregate kinds → the OData v4 aggregation keyword.
276
+ *
277
+ * `countDistinct` maps to `countdistinct`, which OData does define — unlike the
278
+ * devextreme summary descriptor, which has no equivalent at all. Building the
279
+ * clause is free; whether a given backend implements it is the consumer's
280
+ * problem, and declining is always safe.
281
+ */
282
+ var ODATA_AGG = {
283
+ sum: "sum",
284
+ avg: "average",
285
+ min: "min",
286
+ max: "max",
287
+ count: "$count",
288
+ countDistinct: "countdistinct"
289
+ };
290
+ /** A dotted path (`Job.Budget`) addresses a nav property as `Job/Budget` in OData. */
291
+ var toODataPath = (field) => field.replaceAll(".", "/");
292
+ /**
293
+ * A field a server can aggregate.
294
+ *
295
+ * A WILDCARD or INDEX path (`Lines.[*].Total`) is rejected: `getFieldValue`
296
+ * resolves those by walking a collection on a loaded row, and no `$apply`
297
+ * expression means the same thing — the nearest OData construct aggregates the
298
+ * collection per parent rather than across all of them.
299
+ */
300
+ var isAggregatableField = (field) => !!field && !field.includes("[") && !field.includes("*");
301
+ /**
302
+ * The response key each spec's value comes back under.
303
+ *
304
+ * Plain `field` while that field carries ONE aggregate, which is the ordinary
305
+ * case and keeps the response readable; `field_type` once the same field has
306
+ * two (a `sum` and an `avg` of `Price`), because an `$apply` cannot alias two
307
+ * values to the same name. An explicit `name` always wins, and a bare `count`
308
+ * has no field to name it after.
309
+ */
310
+ function summaryAliases(specs) {
311
+ const seen = /* @__PURE__ */ new Map();
312
+ for (const s of specs) {
313
+ if (!s.field) continue;
314
+ seen.set(s.field, (seen.get(s.field) ?? 0) + 1);
315
+ }
316
+ return specs.map((s, i) => {
317
+ if (s.name) return s.name;
318
+ if (!s.field) return `count_${i}`;
319
+ return (seen.get(s.field) ?? 0) > 1 ? `${s.field}_${s.type ?? "sum"}` : s.field;
320
+ });
321
+ }
322
+ /**
323
+ * Build `aggregate(<field> with <agg> as <alias>, …)` for a set of specs.
324
+ *
325
+ * Returns `null` when no spec can be expressed — a caller with nothing to ask
326
+ * for should not make a request.
327
+ */
328
+ function buildSummaryApply(specs) {
329
+ const aliases = summaryAliases(specs);
330
+ const parts = specs.map((spec, i) => {
331
+ const agg = ODATA_AGG[spec.type ?? "sum"];
332
+ if (!agg) return null;
333
+ if (agg === "$count") return `$count as ${aliases[i]}`;
334
+ if (!spec.field || !isAggregatableField(spec.field)) return null;
335
+ return `${toODataPath(spec.field)} with ${agg} as ${aliases[i]}`;
336
+ }).filter((p) => !!p);
337
+ return parts.length ? `aggregate(${parts.join(",")})` : null;
338
+ }
339
+ /**
340
+ * Compose a filter with an aggregate: `filter(<expr>)/aggregate(…)`.
341
+ *
342
+ * The filter goes INSIDE `$apply` rather than travelling as a sibling `$filter`
343
+ * — that is what makes the two compose, since the filter runs first and the
344
+ * aggregation sees only matching rows.
345
+ */
346
+ function composeSummaryApply(apply, filter) {
347
+ const expr = arrayToODataString(filter);
348
+ return expr ? `filter(${expr})/${apply}` : apply;
349
+ }
350
+ /**
351
+ * The predicate a summary must aggregate over — IDENTICAL to what the drain uses.
352
+ *
353
+ * `readAllRows` reads a DataSource as its own `filter()` AND its reconstructed
354
+ * `searchValue`, which is a DataSource-level option the store knows nothing
355
+ * about. Anything less here and a total would quietly count rows the user had
356
+ * searched away, which is worse than being slow.
357
+ */
358
+ function summaryFilterOf(source) {
359
+ if (!isDataSourceLike(source)) return null;
360
+ const ds = source;
361
+ return andFilters(ds.filter?.() ?? null, searchFilterOf(ds) ?? null);
362
+ }
363
+ //#endregion
364
+ //#region src/utils/data-source-options.ts
365
+ /** The knobs with a meaning of their own; anything else is passed through as a load option. */
366
+ var DATA_SOURCE_KNOBS = new Set([
367
+ "filter",
368
+ "select",
369
+ "expand",
370
+ "sort",
371
+ "customQueryParams",
372
+ "paginate",
373
+ "pageSize",
374
+ "requireTotalCount",
375
+ "searchExpr",
376
+ "searchOperation"
377
+ ]);
378
+ /** A comma string or an array → a trimmed string list; `null`/`undefined` → `undefined`. */
379
+ function toList(v) {
380
+ if (v == null) return void 0;
381
+ if (Array.isArray(v)) return v.map(String);
382
+ return String(v).split(",").map((x) => x.trim()).filter(Boolean);
383
+ }
384
+ /** devextreme's sort forms (string / object / array / mixed) → an ordered entry list. */
385
+ function normalizeSortList(value) {
386
+ const arr = Array.isArray(value) ? value : value == null ? [] : [value];
387
+ const out = [];
388
+ for (const v of arr) {
389
+ if (!v) continue;
390
+ if (typeof v === "string") out.push({
391
+ selector: v,
392
+ desc: false
393
+ });
394
+ else if (typeof v === "object" && v.selector) out.push({
395
+ selector: v.selector,
396
+ desc: !!v.desc
397
+ });
398
+ }
399
+ return out;
400
+ }
401
+ /** `"A desc, B"` → `[{A, desc}, {B}]`. */
402
+ function parseOrderby(text) {
403
+ return text.split(",").map((part) => part.trim()).filter(Boolean).map((part) => {
404
+ const [selector, dir] = part.split(/\s+/);
405
+ return {
406
+ selector,
407
+ desc: (dir ?? "").toLowerCase() === "desc"
408
+ };
409
+ });
410
+ }
411
+ /**
412
+ * The parser emits OData keyword operators (`eq`, `ge`) — the filter builder's
413
+ * tree reads either — but devextreme's ODataStore compiles ONLY the symbol forms
414
+ * and throws `E4003` on a keyword. Rewritten recursively.
415
+ */
416
+ function toSymbolOps(expr) {
417
+ if (!Array.isArray(expr)) return expr;
418
+ const SYM = {
419
+ eq: "=",
420
+ ne: "<>",
421
+ gt: ">",
422
+ ge: ">=",
423
+ lt: "<",
424
+ le: "<="
425
+ };
426
+ if (expr.length === 3 && typeof expr[0] === "string" && typeof expr[1] === "string" && !Array.isArray(expr[2])) {
427
+ const op = SYM[expr[1].toLowerCase()];
428
+ return op ? [
429
+ expr[0],
430
+ op,
431
+ expr[2]
432
+ ] : expr;
433
+ }
434
+ return expr.map((part) => Array.isArray(part) ? toSymbolOps(part) : part);
435
+ }
436
+ /**
437
+ * A raw `$filter` → devextreme's array form, so the store compiles it TOGETHER
438
+ * with whatever the component adds. The parser throws on syntax it does not know
439
+ * (lambdas, ISO date literals); those go through as a one-element raw clause,
440
+ * which devextreme emits as `(expr) eq true` — valid OData, with the caveat that
441
+ * it rewrites `.` to `/` inside the text.
442
+ */
443
+ function parseOdataFilter(raw) {
444
+ const text = raw.trim();
445
+ if (!text) return null;
446
+ try {
447
+ return toSymbolOps(odataStringToArray(text) ?? null);
448
+ } catch {
449
+ return [`(${text})`];
450
+ }
451
+ }
452
+ /** `{ $select, $expand, $orderby, $filter, …custom }` → the DataSource shape. */
453
+ function normalizeOdataOptions(o) {
454
+ const out = {};
455
+ const custom = {};
456
+ for (const [k, v] of Object.entries(o)) {
457
+ if (v === void 0) continue;
458
+ if (k === "$select") out.select = toList(v);
459
+ else if (k === "$expand") out.expand = Array.isArray(v) ? v.map(String) : String(v);
460
+ else if (k === "$orderby") out.sort = parseOrderby(String(v));
461
+ else if (k === "$filter") {
462
+ const f = parseOdataFilter(String(v));
463
+ if (f != null) out.filter = f;
464
+ } else custom[k] = v;
465
+ }
466
+ if (Object.keys(custom).length) out.customQueryParams = custom;
467
+ return out;
468
+ }
469
+ /**
470
+ * `a` ∧ `b`: filters AND-ed (predicates and arrays each on their own terms),
471
+ * `select`/`expand` unioned, sort de-duplicated by selector with `a` leading,
472
+ * `customQueryParams` merged with `b` winning, scalars `b` if defined else `a`.
473
+ */
474
+ function mergeDataSourceOptions(a, b) {
475
+ const out = {
476
+ ...a,
477
+ ...b
478
+ };
479
+ if (a.filter != null && b.filter != null) out.filter = typeof a.filter === "function" || typeof b.filter === "function" ? andPredicates(typeof a.filter === "function" ? a.filter : compileFilterPredicate(a.filter), typeof b.filter === "function" ? b.filter : compileFilterPredicate(b.filter)) : andFilters(a.filter, b.filter);
480
+ else out.filter = a.filter ?? b.filter;
481
+ const union = (x, y) => {
482
+ const xs = toList(x), ys = toList(y);
483
+ if (!xs && !ys) return void 0;
484
+ return [...new Set([...xs ?? [], ...ys ?? []])];
485
+ };
486
+ if (a.select !== void 0 || b.select !== void 0) out.select = union(a.select, b.select);
487
+ if (a.expand !== void 0 || b.expand !== void 0) {
488
+ const nested = (v) => typeof v === "string" && v.includes("(");
489
+ out.expand = nested(a.expand) || nested(b.expand) ? b.expand ?? a.expand : union(a.expand, b.expand);
490
+ }
491
+ if (a.sort !== void 0 || b.sort !== void 0) {
492
+ const as = normalizeSortList(a.sort);
493
+ const bs = normalizeSortList(b.sort).filter((e) => !as.some((x) => x.selector === e.selector));
494
+ out.sort = [...as, ...bs];
495
+ }
496
+ if (a.customQueryParams || b.customQueryParams) out.customQueryParams = {
497
+ ...a.customQueryParams ?? {},
498
+ ...b.customQueryParams ?? {}
499
+ };
500
+ return out;
501
+ }
502
+ /**
503
+ * Read both option bags fresh and merge them — the one call a controller makes
504
+ * at the top of every query. Returns a NEW object every time (a getter hands
505
+ * back fresh state), so callers that need change detection compare by content:
506
+ * see {@link dataSourceOptionsKey}.
507
+ */
508
+ function resolveDataSourceOptions(dataSourceOptions, odataOptions) {
509
+ const ds = resolveMaybeReactive(dataSourceOptions) ?? {};
510
+ const od = resolveMaybeReactive(odataOptions);
511
+ return od ? mergeDataSourceOptions(ds, normalizeOdataOptions(od)) : { ...ds };
512
+ }
513
+ /**
514
+ * A content key for change detection. Functions (an array-source predicate) do
515
+ * not stringify, so they are marked and must be compared by reference by the
516
+ * caller; a circular object yields a fresh random key and so always counts as
517
+ * changed.
518
+ */
519
+ function dataSourceOptionsKey(o) {
520
+ try {
521
+ return JSON.stringify(o, (_k, v) => typeof v === "function" ? "[fn]" : v);
522
+ } catch {
523
+ return String(Math.random());
524
+ }
525
+ }
526
+ /** `expand` / `customQueryParams` / unknown keys — what goes onto a `store.load()` beside the knobs. */
527
+ function extraLoadOptions(o) {
528
+ const out = {};
529
+ for (const [k, v] of Object.entries(o)) if (!DATA_SOURCE_KNOBS.has(k) && v !== void 0) out[k] = v;
530
+ if (o.expand !== void 0) out.expand = o.expand;
531
+ if (o.customQueryParams !== void 0) out.customQueryParams = o.customQueryParams;
532
+ return out;
533
+ }
534
+ //#endregion
535
+ export { resolveDataSourceOptions as a, composeSummaryApply as c, createApplyGate as d, isRolledUp as f, monoArraySource as h, normalizeSortList as i, summaryAliases as l, storeRows as m, extraLoadOptions as n, toList as o, loadApply as p, mergeDataSourceOptions as r, buildSummaryApply as s, dataSourceOptionsKey as t, summaryFilterOf as u };