@milaboratories/uikit 2.10.15 → 2.10.17

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 (755) hide show
  1. package/.oxfmtrc.json +4 -0
  2. package/.oxlintrc.json +3 -0
  3. package/.prettierrc +1 -1
  4. package/.turbo/turbo-build.log +191 -191
  5. package/.turbo/turbo-formatter$colon$check.log +12 -0
  6. package/.turbo/turbo-linter$colon$check.log +10 -0
  7. package/.turbo/{turbo-type-check.log → turbo-types$colon$check.log} +2 -2
  8. package/CHANGELOG.md +18 -0
  9. package/build.browser-lib.config.js +6 -6
  10. package/dist/base/BtnBase.vue.js.map +1 -1
  11. package/dist/colors/color.d.ts.map +1 -1
  12. package/dist/colors/color.js.map +1 -1
  13. package/dist/colors/gradient.d.ts.map +1 -1
  14. package/dist/colors/gradient.js.map +1 -1
  15. package/dist/colors/palette.js.map +1 -1
  16. package/dist/components/ContextProvider.vue.js.map +1 -1
  17. package/dist/components/DataTable/BaseCellComponent.vue.js.map +1 -1
  18. package/dist/components/DataTable/ColumnCaret.vue.js.map +1 -1
  19. package/dist/components/DataTable/ColumnsCommandMenu.vue.d.ts.map +1 -1
  20. package/dist/components/DataTable/ColumnsCommandMenu.vue.js.map +1 -1
  21. package/dist/components/DataTable/RowsCommandMenu.vue.d.ts.map +1 -1
  22. package/dist/components/DataTable/RowsCommandMenu.vue.js.map +1 -1
  23. package/dist/components/DataTable/TScroll.vue.d.ts.map +1 -1
  24. package/dist/components/DataTable/TScroll.vue.js +6 -1
  25. package/dist/components/DataTable/TScroll.vue.js.map +1 -1
  26. package/dist/components/DataTable/TableComponent.vue.d.ts.map +1 -1
  27. package/dist/components/DataTable/TableComponent.vue.js +1 -1
  28. package/dist/components/DataTable/TableComponent.vue.js.map +1 -1
  29. package/dist/components/DataTable/TdCell.vue.d.ts.map +1 -1
  30. package/dist/components/DataTable/TdCell.vue.js +3 -1
  31. package/dist/components/DataTable/TdCell.vue.js.map +1 -1
  32. package/dist/components/DataTable/ThCell.vue.d.ts.map +1 -1
  33. package/dist/components/DataTable/ThCell.vue.js.map +1 -1
  34. package/dist/components/DataTable/TrBody.vue.d.ts.map +1 -1
  35. package/dist/components/DataTable/TrBody.vue.js.map +1 -1
  36. package/dist/components/DataTable/adapters/AsyncData.d.ts +1 -1
  37. package/dist/components/DataTable/adapters/AsyncData.js.map +1 -1
  38. package/dist/components/DataTable/adapters/RawData.d.ts +1 -1
  39. package/dist/components/DataTable/adapters/RawData.js.map +1 -1
  40. package/dist/components/DataTable/assets/TableIcon.vue.d.ts.map +1 -1
  41. package/dist/components/DataTable/assets/TableIcon.vue.js.map +1 -1
  42. package/dist/components/DataTable/composition/useColumn.d.ts.map +1 -1
  43. package/dist/components/DataTable/composition/useColumn.js.map +1 -1
  44. package/dist/components/DataTable/composition/useMouseUp.js.map +1 -1
  45. package/dist/components/DataTable/composition/useResize.js.map +1 -1
  46. package/dist/components/DataTable/composition/useTableColumns.js.map +1 -1
  47. package/dist/components/DataTable/composition/useTableRows.js.map +1 -1
  48. package/dist/components/DataTable/domain.d.ts +1 -1
  49. package/dist/components/DataTable/domain.d.ts.map +1 -1
  50. package/dist/components/DataTable/domain.js.map +1 -1
  51. package/dist/components/DataTable/index.d.ts +1 -1
  52. package/dist/components/DataTable/index.d.ts.map +1 -1
  53. package/dist/components/DataTable/index.js +5 -1
  54. package/dist/components/DataTable/index.js.map +1 -1
  55. package/dist/components/DataTable/keys.js.map +1 -1
  56. package/dist/components/DataTable/state.d.ts.map +1 -1
  57. package/dist/components/DataTable/state.js +10 -4
  58. package/dist/components/DataTable/state.js.map +1 -1
  59. package/dist/components/DataTable/types.d.ts +3 -3
  60. package/dist/components/DropdownListItem.vue.d.ts +1 -1
  61. package/dist/components/DropdownListItem.vue.d.ts.map +1 -1
  62. package/dist/components/DropdownListItem.vue.js.map +1 -1
  63. package/dist/components/GridTable/domain.d.ts +1 -1
  64. package/dist/components/GridTable/domain.d.ts.map +1 -1
  65. package/dist/components/GridTable/types.d.ts +4 -4
  66. package/dist/components/GridTable/types.d.ts.map +1 -1
  67. package/dist/components/GridTable/useColumn.d.ts.map +1 -1
  68. package/dist/components/HScroll.vue.js.map +1 -1
  69. package/dist/components/InputRange.vue.d.ts.map +1 -1
  70. package/dist/components/InputRange.vue.js +3 -1
  71. package/dist/components/InputRange.vue.js.map +1 -1
  72. package/dist/components/LongText.vue.d.ts.map +1 -1
  73. package/dist/components/LongText.vue.js +9 -7
  74. package/dist/components/LongText.vue.js.map +1 -1
  75. package/dist/components/PlAccordion/ExpandTransition.vue.d.ts.map +1 -1
  76. package/dist/components/PlAccordion/ExpandTransition.vue.js +27 -0
  77. package/dist/components/PlAccordion/ExpandTransition.vue.js.map +1 -0
  78. package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -1
  79. package/dist/components/PlAccordion/ExpandTransition.vue3.js +2 -2
  80. package/dist/components/PlAccordion/PlAccordion.vue.js.map +1 -1
  81. package/dist/components/PlAccordion/PlAccordionSection.vue2.js +2 -2
  82. package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
  83. package/dist/components/PlAlert/PlAlert.vue.d.ts.map +1 -1
  84. package/dist/components/PlAlert/PlAlert.vue.js.map +1 -1
  85. package/dist/components/PlAutocomplete/PlAutocomplete.vue.d.ts.map +1 -1
  86. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js +40 -19
  87. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js.map +1 -1
  88. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts +2 -2
  89. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts.map +1 -1
  90. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js +22 -12
  91. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js.map +1 -1
  92. package/dist/components/PlAutocompleteMulti/index.d.ts +1 -1
  93. package/dist/components/PlAutocompleteMulti/index.d.ts.map +1 -1
  94. package/dist/components/PlBtnAccent/PlBtnAccent.vue.js.map +1 -1
  95. package/dist/components/PlBtnDanger/PlBtnDanger.vue.js.map +1 -1
  96. package/dist/components/PlBtnGhost/PlBtnGhost.vue.js.map +1 -1
  97. package/dist/components/PlBtnGroup/PlBtnGroup.vue.js.map +1 -1
  98. package/dist/components/PlBtnLink/PlBtnLink.vue.d.ts.map +1 -1
  99. package/dist/components/PlBtnLink/PlBtnLink.vue.js.map +1 -1
  100. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js.map +1 -1
  101. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js.map +1 -1
  102. package/dist/components/PlBtnSplit/PlBtnSplit.vue.d.ts.map +1 -1
  103. package/dist/components/PlBtnSplit/PlBtnSplit.vue.js +6 -4
  104. package/dist/components/PlBtnSplit/PlBtnSplit.vue.js.map +1 -1
  105. package/dist/components/PlChartHistogram/PlChartHistogram.vue.d.ts.map +1 -1
  106. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +8 -1
  107. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
  108. package/dist/components/PlChartHistogram/PlChartHistogram.vue3.js +4 -4
  109. package/dist/components/PlChartHistogram/createGridlines.d.ts.map +1 -1
  110. package/dist/components/PlChartHistogram/createGridlines.js +5 -1
  111. package/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
  112. package/dist/components/PlChartHistogram/createLabels.d.ts.map +1 -1
  113. package/dist/components/PlChartHistogram/createLabels.js.map +1 -1
  114. package/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
  115. package/dist/components/PlChartHistogram/drawBins.d.ts.map +1 -1
  116. package/dist/components/PlChartHistogram/drawBins.js.map +1 -1
  117. package/dist/components/PlChartHistogram/drawThreshold.js.map +1 -1
  118. package/dist/components/PlChartHistogram/histogram.d.ts.map +1 -1
  119. package/dist/components/PlChartHistogram/histogram.js +6 -2
  120. package/dist/components/PlChartHistogram/histogram.js.map +1 -1
  121. package/dist/components/PlChartHistogram/normalizeBins.js.map +1 -1
  122. package/dist/components/PlChartHistogram/types.d.ts +2 -2
  123. package/dist/components/PlChartHistogram/types.d.ts.map +1 -1
  124. package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
  125. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue.d.ts.map +1 -1
  126. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +6 -4
  127. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
  128. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
  129. package/dist/components/PlChartStackedBar/StackedRow.vue.d.ts.map +1 -1
  130. package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
  131. package/dist/components/PlChartStackedBar/StackedRowCompact.vue.d.ts.map +1 -1
  132. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
  133. package/dist/components/PlCheckbox/PlCheckbox.vue.js.map +1 -1
  134. package/dist/components/PlCheckbox/PlCheckboxBase.vue.d.ts.map +1 -1
  135. package/dist/components/PlCheckbox/PlCheckboxBase.vue.js.map +1 -1
  136. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.d.ts.map +1 -1
  137. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js +8 -2
  138. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js.map +1 -1
  139. package/dist/components/PlChip/PlChip.vue.d.ts.map +1 -1
  140. package/dist/components/PlChip/PlChip.vue.js.map +1 -1
  141. package/dist/components/PlClipboard/PlClipboard.vue2.js.map +1 -1
  142. package/dist/components/PlConfirmDialog.vue.d.ts.map +1 -1
  143. package/dist/components/PlConfirmDialog.vue.js.map +1 -1
  144. package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts.map +1 -1
  145. package/dist/components/PlDialogModal/PlDialogModal.vue.js +4 -1
  146. package/dist/components/PlDialogModal/PlDialogModal.vue.js.map +1 -1
  147. package/dist/components/PlDropdown/OptionList.vue.d.ts +1 -1
  148. package/dist/components/PlDropdown/OptionList.vue.d.ts.map +1 -1
  149. package/dist/components/PlDropdown/OptionList.vue.js.map +1 -1
  150. package/dist/components/PlDropdown/PlDropdown.vue.d.ts.map +1 -1
  151. package/dist/components/PlDropdown/PlDropdown.vue.js.map +1 -1
  152. package/dist/components/PlDropdown/types.d.ts.map +1 -1
  153. package/dist/components/PlDropdown/useGroupBy.d.ts.map +1 -1
  154. package/dist/components/PlDropdown/useGroupBy.js.map +1 -1
  155. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.d.ts.map +1 -1
  156. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js.map +1 -1
  157. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts +1 -1
  158. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts.map +1 -1
  159. package/dist/components/PlDropdownLine/PlDropdownLine.vue.js +5 -3
  160. package/dist/components/PlDropdownLine/PlDropdownLine.vue.js.map +1 -1
  161. package/dist/components/PlDropdownLine/ResizableInput.vue.d.ts.map +1 -1
  162. package/dist/components/PlDropdownLine/ResizableInput.vue.js.map +1 -1
  163. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.d.ts.map +1 -1
  164. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js.map +1 -1
  165. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.js.map +1 -1
  166. package/dist/components/PlDropdownRef/PlDropdownRef.vue.js.map +1 -1
  167. package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts.map +1 -1
  168. package/dist/components/PlEditableTitle/PlEditableTitle.vue.js.map +1 -1
  169. package/dist/components/PlElementList/PlElementList.vue.d.ts.map +1 -1
  170. package/dist/components/PlElementList/PlElementList.vue2.js +9 -2
  171. package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
  172. package/dist/components/PlElementList/PlElementList.vue3.js +4 -4
  173. package/dist/components/PlElementList/PlElementListItem.vue.d.ts.map +1 -1
  174. package/dist/components/PlElementList/PlElementListItem.vue2.js +25 -13
  175. package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
  176. package/dist/components/PlElementList/PlElementListItem.vue3.js +20 -20
  177. package/dist/components/PlElementList/utils.d.ts.map +1 -1
  178. package/dist/components/PlElementList/utils.js +3 -1
  179. package/dist/components/PlElementList/utils.js.map +1 -1
  180. package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js.map +1 -1
  181. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.d.ts.map +1 -1
  182. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js +4 -1
  183. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js.map +1 -1
  184. package/dist/components/PlFileDialog/Local.vue.d.ts.map +1 -1
  185. package/dist/components/PlFileDialog/Local.vue.js +6 -2
  186. package/dist/components/PlFileDialog/Local.vue.js.map +1 -1
  187. package/dist/components/PlFileDialog/PlFileDialog.vue.d.ts.map +1 -1
  188. package/dist/components/PlFileDialog/PlFileDialog.vue.js +3 -1
  189. package/dist/components/PlFileDialog/PlFileDialog.vue.js.map +1 -1
  190. package/dist/components/PlFileDialog/Remote.vue.d.ts.map +1 -1
  191. package/dist/components/PlFileDialog/Remote.vue.js +6 -2
  192. package/dist/components/PlFileDialog/Remote.vue.js.map +1 -1
  193. package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
  194. package/dist/components/PlFileDialog/Shortcuts.vue3.js +4 -4
  195. package/dist/components/PlFileDialog/pl-file-dialog.module.scss.js +21 -21
  196. package/dist/components/PlFileDialog/remote.js.map +1 -1
  197. package/dist/components/PlFileDialog/utils.js.map +1 -1
  198. package/dist/components/PlFileInput/PlFileInput.vue.d.ts.map +1 -1
  199. package/dist/components/PlFileInput/PlFileInput.vue.js.map +1 -1
  200. package/dist/components/PlIcon16/PlIcon16.vue2.js.map +1 -1
  201. package/dist/components/PlIcon24/PlIcon24.vue2.js.map +1 -1
  202. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts +1 -1
  203. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts.map +1 -1
  204. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js +5 -1
  205. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js.map +1 -1
  206. package/dist/components/PlLoaderLogo.vue.d.ts.map +1 -1
  207. package/dist/components/PlLoaderLogo.vue2.js +8 -8
  208. package/dist/components/PlLoaderLogo.vue2.js.map +1 -1
  209. package/dist/components/PlLogView/PlLogView.vue.d.ts.map +1 -1
  210. package/dist/components/PlLogView/PlLogView.vue.js +11 -7
  211. package/dist/components/PlLogView/PlLogView.vue.js.map +1 -1
  212. package/dist/components/PlLogView/useLogHandle.d.ts.map +1 -1
  213. package/dist/components/PlLogView/useLogHandle.js +16 -3
  214. package/dist/components/PlLogView/useLogHandle.js.map +1 -1
  215. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts +1 -1
  216. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts.map +1 -1
  217. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js.map +1 -1
  218. package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
  219. package/dist/components/PlNumberField/PlNumberField.vue.js +4 -6
  220. package/dist/components/PlNumberField/PlNumberField.vue.js.map +1 -1
  221. package/dist/components/PlNumberField/parseNumber.d.ts.map +1 -1
  222. package/dist/components/PlNumberField/parseNumber.js.map +1 -1
  223. package/dist/components/PlProgressBar/PlProgressBar.vue.js.map +1 -1
  224. package/dist/components/PlProgressCell/PlProgressCell.vue.d.ts.map +1 -1
  225. package/dist/components/PlProgressCell/PlProgressCell.vue.js +11 -2
  226. package/dist/components/PlProgressCell/PlProgressCell.vue.js.map +1 -1
  227. package/dist/components/PlProgressCell/types.d.ts +1 -1
  228. package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
  229. package/dist/components/PlRadio/PlRadio.vue3.js +3 -3
  230. package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
  231. package/dist/components/PlRadio/PlRadioGroup.vue3.js +6 -6
  232. package/dist/components/PlRadio/keys.js.map +1 -1
  233. package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
  234. package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
  235. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
  236. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue3.js +1 -1
  237. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
  238. package/dist/components/PlSidebar/PlSidebarGroup.vue3.js +6 -6
  239. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts +6 -6
  240. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts.map +1 -1
  241. package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
  242. package/dist/components/PlSidebar/PlSidebarItem.vue3.js +8 -8
  243. package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts.map +1 -1
  244. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js +1 -1
  245. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -1
  246. package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts.map +1 -1
  247. package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
  248. package/dist/components/PlSlideModal/props.d.ts +8 -8
  249. package/dist/components/PlSlideModal/props.d.ts.map +1 -1
  250. package/dist/components/PlSlideModal/props.js.map +1 -1
  251. package/dist/components/PlSplash/PlSplash.vue.d.ts +1 -1
  252. package/dist/components/PlSplash/PlSplash.vue.d.ts.map +1 -1
  253. package/dist/components/PlSplash/PlSplash.vue.js +4 -1
  254. package/dist/components/PlSplash/PlSplash.vue.js.map +1 -1
  255. package/dist/components/PlStatusTag/PlStatusTag.vue.d.ts.map +1 -1
  256. package/dist/components/PlStatusTag/PlStatusTag.vue.js.map +1 -1
  257. package/dist/components/PlStatusTag/types.d.ts +1 -1
  258. package/dist/components/PlSvg/PlSvg.vue.d.ts.map +1 -1
  259. package/dist/components/PlSvg/PlSvg.vue2.js +7 -2
  260. package/dist/components/PlSvg/PlSvg.vue2.js.map +1 -1
  261. package/dist/components/PlSvg/registry.d.ts.map +1 -1
  262. package/dist/components/PlSvg/registry.js.map +1 -1
  263. package/dist/components/PlTabs/PlTabs.vue.d.ts.map +1 -1
  264. package/dist/components/PlTabs/PlTabs.vue.js +4 -1
  265. package/dist/components/PlTabs/PlTabs.vue.js.map +1 -1
  266. package/dist/components/PlTabs/Tab.vue.js.map +1 -1
  267. package/dist/components/PlTextArea/PlTextArea.vue.js.map +1 -1
  268. package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
  269. package/dist/components/PlTextField/PlTextField.vue.js +3 -1
  270. package/dist/components/PlTextField/PlTextField.vue.js.map +1 -1
  271. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.js.map +1 -1
  272. package/dist/components/PlTooltip/Beak.vue.d.ts.map +1 -1
  273. package/dist/components/PlTooltip/Beak.vue.js.map +1 -1
  274. package/dist/components/PlTooltip/PlTooltip.vue.d.ts.map +1 -1
  275. package/dist/components/PlTooltip/PlTooltip.vue.js.map +1 -1
  276. package/dist/components/PlTooltip/useTooltipPosition.d.ts +1 -1
  277. package/dist/components/PlTooltip/useTooltipPosition.js.map +1 -1
  278. package/dist/components/Scrollable.vue.d.ts.map +1 -1
  279. package/dist/components/Scrollable.vue.js +10 -1
  280. package/dist/components/Scrollable.vue.js.map +1 -1
  281. package/dist/components/Slider.vue.d.ts.map +1 -1
  282. package/dist/components/Slider.vue.js +3 -1
  283. package/dist/components/Slider.vue.js.map +1 -1
  284. package/dist/components/SliderRange.vue.d.ts.map +1 -1
  285. package/dist/components/SliderRange.vue.js +15 -3
  286. package/dist/components/SliderRange.vue.js.map +1 -1
  287. package/dist/components/SliderRangeTriple.vue.d.ts.map +1 -1
  288. package/dist/components/SliderRangeTriple.vue.js +7 -1
  289. package/dist/components/SliderRangeTriple.vue.js.map +1 -1
  290. package/dist/components/TabItem.vue.js.map +1 -1
  291. package/dist/components/ThemeSwitcher.vue.js.map +1 -1
  292. package/dist/components/TransitionSlidePanel.vue.js.map +1 -1
  293. package/dist/components/VScroll.vue.js.map +1 -1
  294. package/dist/components/contextMenu/Menu.vue.js +1 -1
  295. package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
  296. package/dist/components/contextMenu/index.js.map +1 -1
  297. package/dist/composition/computedCached.js.map +1 -1
  298. package/dist/composition/filters/metadata.d.ts.map +1 -1
  299. package/dist/composition/filters/metadata.js.map +1 -1
  300. package/dist/composition/filters/types.d.ts +1 -19
  301. package/dist/composition/filters/types.d.ts.map +1 -1
  302. package/dist/composition/useClickOutside.js.map +1 -1
  303. package/dist/composition/useComponentProp.d.ts.map +1 -1
  304. package/dist/composition/useComponentProp.js.map +1 -1
  305. package/dist/composition/useConfirm.js.map +1 -1
  306. package/dist/composition/useDraggable.d.ts.map +1 -1
  307. package/dist/composition/useDraggable.js.map +1 -1
  308. package/dist/composition/useEventListener.d.ts.map +1 -1
  309. package/dist/composition/useEventListener.js +11 -7
  310. package/dist/composition/useEventListener.js.map +1 -1
  311. package/dist/composition/useFilteredList.d.ts.map +1 -1
  312. package/dist/composition/useFilteredList.js.map +1 -1
  313. package/dist/composition/useFormState.js.map +1 -1
  314. package/dist/composition/useHover.d.ts.map +1 -1
  315. package/dist/composition/useHover.js.map +1 -1
  316. package/dist/composition/useInterval.js.map +1 -1
  317. package/dist/composition/useLocalStorage.js.map +1 -1
  318. package/dist/composition/useMouse.js.map +1 -1
  319. package/dist/composition/useMouseCapture.d.ts.map +1 -1
  320. package/dist/composition/useMouseCapture.js.map +1 -1
  321. package/dist/composition/usePollingQuery.d.ts.map +1 -1
  322. package/dist/composition/usePollingQuery.js +4 -1
  323. package/dist/composition/usePollingQuery.js.map +1 -1
  324. package/dist/composition/usePosition.d.ts.map +1 -1
  325. package/dist/composition/usePosition.js.map +1 -1
  326. package/dist/composition/useQuery.js.map +1 -1
  327. package/dist/composition/useResizeObserver.d.ts.map +1 -1
  328. package/dist/composition/useResizeObserver.js.map +1 -1
  329. package/dist/composition/useRipple.js.map +1 -1
  330. package/dist/composition/useScroll.d.ts.map +1 -1
  331. package/dist/composition/useScroll.js.map +1 -1
  332. package/dist/composition/useSliderBreakpoints.d.ts.map +1 -1
  333. package/dist/composition/useSliderBreakpoints.js.map +1 -1
  334. package/dist/composition/useSortable.js.map +1 -1
  335. package/dist/composition/useSortable2.d.ts.map +1 -1
  336. package/dist/composition/useSortable2.js +8 -5
  337. package/dist/composition/useSortable2.js.map +1 -1
  338. package/dist/composition/useTheme.d.ts +1 -1
  339. package/dist/composition/useTheme.d.ts.map +1 -1
  340. package/dist/composition/useTheme.js.map +1 -1
  341. package/dist/composition/useTransformedModel.d.ts.map +1 -1
  342. package/dist/composition/useTransformedModel.js.map +1 -1
  343. package/dist/composition/useWatchFetch.js.map +1 -1
  344. package/dist/composition/utils.js.map +1 -1
  345. package/dist/composition/watchCached.d.ts.map +1 -1
  346. package/dist/composition/watchCached.js.map +1 -1
  347. package/dist/demo-site-data/all-css-variables.d.ts.map +1 -1
  348. package/dist/demo-site-data/all-css-variables.js +52 -13
  349. package/dist/demo-site-data/all-css-variables.js.map +1 -1
  350. package/dist/generated/icons-16.js.map +1 -1
  351. package/dist/generated/icons-24.js.map +1 -1
  352. package/dist/global/resizeObserver.js.map +1 -1
  353. package/dist/helpers/dom.d.ts.map +1 -1
  354. package/dist/helpers/dom.js.map +1 -1
  355. package/dist/helpers/downloadContent.d.ts +1 -1
  356. package/dist/helpers/downloadContent.d.ts.map +1 -1
  357. package/dist/helpers/downloadContent.js +3 -1
  358. package/dist/helpers/downloadContent.js.map +1 -1
  359. package/dist/helpers/error.js +4 -1
  360. package/dist/helpers/error.js.map +1 -1
  361. package/dist/helpers/functions.d.ts.map +1 -1
  362. package/dist/helpers/functions.js.map +1 -1
  363. package/dist/helpers/objects.js.map +1 -1
  364. package/dist/helpers/utils.d.ts.map +1 -1
  365. package/dist/helpers/utils.js.map +1 -1
  366. package/dist/index.d.ts +1 -1
  367. package/dist/index.js +1 -1
  368. package/dist/index.js.map +1 -1
  369. package/dist/layout/PlBlockPage/PlBlockPage.vue.d.ts.map +1 -1
  370. package/dist/layout/PlBlockPage/PlBlockPage.vue2.js.map +1 -1
  371. package/dist/layout/PlBlockPage/PlBlockPage.vue3.js +4 -4
  372. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.js.map +1 -1
  373. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js.map +1 -1
  374. package/dist/layout/PlContainer/PlContainer.vue.d.ts.map +1 -1
  375. package/dist/layout/PlContainer/PlContainer.vue.js.map +1 -1
  376. package/dist/layout/PlGrid/PlGrid.vue.js.map +1 -1
  377. package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts +1 -1
  378. package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts.map +1 -1
  379. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js +8 -8
  380. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js.map +1 -1
  381. package/dist/layout/PlPlaceholder/PlPlaceholder.vue3.js +15 -15
  382. package/dist/layout/PlPlaceholder/index.d.ts +1 -1
  383. package/dist/layout/PlPlaceholder/index.d.ts.map +1 -1
  384. package/dist/layout/PlPlaceholder/index.js.map +1 -1
  385. package/dist/layout/PlPlaceholder/paint-worklet.js +6 -6
  386. package/dist/layout/PlPlaceholder/paint-worklet.js.map +1 -1
  387. package/dist/layout/PlRow/PlRow.vue.js.map +1 -1
  388. package/dist/layout/PlSpacer/PlSpacer.vue.js.map +1 -1
  389. package/dist/types.d.ts +5 -5
  390. package/dist/types.d.ts.map +1 -1
  391. package/dist/utils/DoubleContour.vue.d.ts.map +1 -1
  392. package/dist/utils/DoubleContour.vue.js.map +1 -1
  393. package/dist/utils/DropdownOverlay/DropdownOverlay.vue.js.map +1 -1
  394. package/dist/utils/PlCloseModalBtn.vue.js.map +1 -1
  395. package/dist/utils/TextLabel.vue.js.map +1 -1
  396. package/dist/utils/useLabelNotch.d.ts.map +1 -1
  397. package/dist/utils/useLabelNotch.js.map +1 -1
  398. package/dist/utils/useValidation.js.map +1 -1
  399. package/package.json +23 -24
  400. package/scripts/parse-icons.js +20 -14
  401. package/src/__tests__/compositions/usePollingQuery.spec.ts +163 -165
  402. package/src/__tests__/compositions/useValidation.spec.ts +41 -28
  403. package/src/__tests__/setup.ts +1 -1
  404. package/src/__tests__/use-debounce-fn.test.ts +15 -11
  405. package/src/assets/animations.scss +5 -5
  406. package/src/assets/base-btn.scss +4 -3
  407. package/src/assets/base.scss +11 -8
  408. package/src/assets/common.scss +43 -43
  409. package/src/assets/dropdown-list-item.scss +53 -53
  410. package/src/assets/dropdown-tab-item.scss +4 -4
  411. package/src/assets/icons.scss +1 -1
  412. package/src/assets/input-range.scss +26 -27
  413. package/src/assets/layout.scss +1 -1
  414. package/src/assets/masks.scss +1 -1
  415. package/src/assets/mixins.scss +9 -17
  416. package/src/assets/scroll.scss +6 -6
  417. package/src/assets/slider.scss +6 -5
  418. package/src/assets/sortable.scss +1 -1
  419. package/src/assets/theme-switcher.scss +2 -2
  420. package/src/assets/typography.scss +16 -13
  421. package/src/assets/ui.scss +19 -19
  422. package/src/assets/utils.scss +19 -19
  423. package/src/assets/variables.scss +9 -10
  424. package/src/base/BtnBase.vue +6 -6
  425. package/src/colors/__tests__/colors.spec.ts +12 -10
  426. package/src/colors/color.ts +17 -12
  427. package/src/colors/gradient.ts +20 -17
  428. package/src/colors/index.ts +3 -3
  429. package/src/colors/palette.ts +194 -194
  430. package/src/components/ContextProvider.vue +1 -1
  431. package/src/components/DataTable/BaseCellComponent.vue +8 -8
  432. package/src/components/DataTable/ColumnCaret.vue +3 -3
  433. package/src/components/DataTable/ColumnsCommandMenu.vue +5 -3
  434. package/src/components/DataTable/RowsCommandMenu.vue +5 -3
  435. package/src/components/DataTable/TScroll.vue +11 -6
  436. package/src/components/DataTable/TableComponent.vue +41 -24
  437. package/src/components/DataTable/TdCell.vue +28 -15
  438. package/src/components/DataTable/ThCell.vue +14 -9
  439. package/src/components/DataTable/TrBody.vue +11 -4
  440. package/src/components/DataTable/adapters/AsyncData.ts +4 -4
  441. package/src/components/DataTable/adapters/RawData.ts +5 -5
  442. package/src/components/DataTable/assets/TableIcon.vue +6 -1
  443. package/src/components/DataTable/assets/data-table-style.scss +12 -10
  444. package/src/components/DataTable/composition/useColumn.ts +8 -5
  445. package/src/components/DataTable/composition/useMouseUp.ts +3 -3
  446. package/src/components/DataTable/composition/useResize.ts +16 -16
  447. package/src/components/DataTable/composition/useTableColumns.ts +8 -8
  448. package/src/components/DataTable/composition/useTableRows.ts +5 -5
  449. package/src/components/DataTable/domain.ts +8 -4
  450. package/src/components/DataTable/index.ts +26 -13
  451. package/src/components/DataTable/keys.ts +3 -3
  452. package/src/components/DataTable/state.ts +38 -18
  453. package/src/components/DataTable/types.ts +10 -10
  454. package/src/components/DropdownListItem.vue +18 -15
  455. package/src/components/GridTable/TdCell.vue +7 -7
  456. package/src/components/GridTable/ThCell.vue +14 -9
  457. package/src/components/GridTable/assets/TableIcon.vue +6 -1
  458. package/src/components/GridTable/assets/style.scss +6 -6
  459. package/src/components/GridTable/constants.ts +10 -10
  460. package/src/components/GridTable/domain.ts +8 -4
  461. package/src/components/GridTable/getColumnPositions.ts +4 -4
  462. package/src/components/GridTable/index.vue +41 -32
  463. package/src/components/GridTable/types.ts +14 -11
  464. package/src/components/GridTable/useColumn.ts +8 -5
  465. package/src/components/GridTable/useMouseUp.ts +3 -3
  466. package/src/components/GridTable/useResize.ts +13 -13
  467. package/src/components/HScroll.vue +10 -10
  468. package/src/components/InputRange.vue +9 -7
  469. package/src/components/LongText.vue +7 -5
  470. package/src/components/PlAccordion/ExpandTransition.vue +12 -6
  471. package/src/components/PlAccordion/PlAccordion.vue +3 -3
  472. package/src/components/PlAccordion/PlAccordionSection.vue +9 -9
  473. package/src/components/PlAccordion/index.ts +2 -2
  474. package/src/components/PlAlert/PlAlert.vue +21 -10
  475. package/src/components/PlAlert/index.ts +1 -1
  476. package/src/components/PlAlert/pl-alert.scss +1 -1
  477. package/src/components/PlAutocomplete/PlAutocomplete.vue +142 -82
  478. package/src/components/PlAutocomplete/__tests__/PlAutocomplete.spec.ts +19 -17
  479. package/src/components/PlAutocomplete/index.ts +1 -1
  480. package/src/components/PlAutocomplete/pl-autocomplete.scss +9 -7
  481. package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +92 -62
  482. package/src/components/PlAutocompleteMulti/__tests__/PlAutocompleteMulti.spec.ts +17 -16
  483. package/src/components/PlAutocompleteMulti/index.ts +4 -1
  484. package/src/components/PlAutocompleteMulti/pl-autocomplete-multi.scss +8 -6
  485. package/src/components/PlBtnAccent/PlBtnAccent.vue +4 -4
  486. package/src/components/PlBtnAccent/index.ts +1 -1
  487. package/src/components/PlBtnDanger/PlBtnDanger.vue +4 -4
  488. package/src/components/PlBtnDanger/index.ts +1 -1
  489. package/src/components/PlBtnDanger/pl-btn-danger.scss +1 -1
  490. package/src/components/PlBtnGhost/PlBtnGhost.vue +8 -8
  491. package/src/components/PlBtnGhost/index.ts +1 -1
  492. package/src/components/PlBtnGroup/PlBtnGroup.vue +10 -10
  493. package/src/components/PlBtnGroup/index.ts +1 -1
  494. package/src/components/PlBtnGroup/pl-btn-group.scss +4 -4
  495. package/src/components/PlBtnLink/PlBtnLink.vue +10 -5
  496. package/src/components/PlBtnLink/index.ts +1 -1
  497. package/src/components/PlBtnLink/pl-btn-link.scss +2 -1
  498. package/src/components/PlBtnPrimary/PlBtnPrimary.vue +4 -4
  499. package/src/components/PlBtnPrimary/__tests__/BtnPrimary.spec.ts +7 -7
  500. package/src/components/PlBtnPrimary/index.ts +1 -1
  501. package/src/components/PlBtnPrimary/pl-btn-primary.scss +2 -2
  502. package/src/components/PlBtnSecondary/PlBtnSecondary.vue +4 -4
  503. package/src/components/PlBtnSecondary/index.ts +1 -1
  504. package/src/components/PlBtnSecondary/pl-btn-secondary.scss +1 -1
  505. package/src/components/PlBtnSplit/PlBtnSplit.vue +42 -28
  506. package/src/components/PlBtnSplit/__tests__/PlBtnSplit.spec.ts +66 -66
  507. package/src/components/PlBtnSplit/index.ts +1 -1
  508. package/src/components/PlBtnSplit/pl-btn-split.scss +72 -75
  509. package/src/components/PlChartHistogram/PlChartHistogram.vue +29 -20
  510. package/src/components/PlChartHistogram/createGridlines.ts +28 -22
  511. package/src/components/PlChartHistogram/createLabels.ts +19 -17
  512. package/src/components/PlChartHistogram/createSvgContainer.ts +9 -9
  513. package/src/components/PlChartHistogram/drawBins.ts +27 -34
  514. package/src/components/PlChartHistogram/drawThreshold.ts +9 -9
  515. package/src/components/PlChartHistogram/histogram.ts +31 -34
  516. package/src/components/PlChartHistogram/index.ts +1 -1
  517. package/src/components/PlChartHistogram/normalizeBins.ts +3 -3
  518. package/src/components/PlChartHistogram/scales.spec.ts +5 -5
  519. package/src/components/PlChartHistogram/types.ts +6 -6
  520. package/src/components/PlChartStackedBar/Legends.vue +2 -2
  521. package/src/components/PlChartStackedBar/PlChartStackedBar.vue +16 -10
  522. package/src/components/PlChartStackedBar/PlChartStackedBarCompact.vue +4 -4
  523. package/src/components/PlChartStackedBar/StackedRow.vue +7 -9
  524. package/src/components/PlChartStackedBar/StackedRowCompact.vue +6 -8
  525. package/src/components/PlChartStackedBar/index.ts +3 -3
  526. package/src/components/PlChartStackedBar/types.ts +1 -1
  527. package/src/components/PlCheckbox/PlCheckbox.vue +5 -5
  528. package/src/components/PlCheckbox/PlCheckboxBase.vue +3 -5
  529. package/src/components/PlCheckbox/__tests__/PlCheckbox.spec.ts +15 -15
  530. package/src/components/PlCheckbox/index.ts +1 -1
  531. package/src/components/PlCheckbox/pl-checkbox-base.scss +13 -13
  532. package/src/components/PlCheckbox/pl-checkbox.scss +2 -2
  533. package/src/components/PlCheckboxGroup/PlCheckboxGroup.vue +24 -10
  534. package/src/components/PlCheckboxGroup/index.ts +1 -1
  535. package/src/components/PlCheckboxGroup/pl-checkbox-group.scss +1 -1
  536. package/src/components/PlChip/PlChip.vue +11 -5
  537. package/src/components/PlChip/index.ts +1 -1
  538. package/src/components/PlChip/pl-chip.scss +2 -2
  539. package/src/components/PlClipboard/PlClipboard.vue +7 -7
  540. package/src/components/PlClipboard/index.ts +1 -1
  541. package/src/components/PlConfirmDialog.vue +7 -6
  542. package/src/components/PlDialogModal/PlDialogModal.vue +52 -33
  543. package/src/components/PlDialogModal/index.ts +1 -1
  544. package/src/components/PlDialogModal/pl-dialog-modal.scss +2 -2
  545. package/src/components/PlDropdown/OptionList.vue +21 -10
  546. package/src/components/PlDropdown/PlDropdown.vue +65 -46
  547. package/src/components/PlDropdown/__tests__/PlDropdown.spec.ts +15 -15
  548. package/src/components/PlDropdown/index.ts +1 -1
  549. package/src/components/PlDropdown/pl-dropdown.scss +4 -2
  550. package/src/components/PlDropdown/types.ts +6 -2
  551. package/src/components/PlDropdown/useGroupBy.ts +7 -10
  552. package/src/components/PlDropdownLegacy/PlDropdownLegacy.vue +60 -43
  553. package/src/components/PlDropdownLegacy/__tests__/PlDropdownLegacy.spec.ts +16 -16
  554. package/src/components/PlDropdownLegacy/index.ts +1 -1
  555. package/src/components/PlDropdownLegacy/pl-dropdown-legacy.scss +6 -6
  556. package/src/components/PlDropdownLine/PlDropdownLine.vue +76 -54
  557. package/src/components/PlDropdownLine/ResizableInput.vue +15 -8
  558. package/src/components/PlDropdownLine/index.ts +1 -1
  559. package/src/components/PlDropdownLine/pl-dropdown-line.scss +132 -132
  560. package/src/components/PlDropdownLine/resizable-input.scss +38 -38
  561. package/src/components/PlDropdownMulti/PlDropdownMulti.vue +79 -45
  562. package/src/components/PlDropdownMulti/__tests__/PlDropdownMulti.spec.ts +15 -14
  563. package/src/components/PlDropdownMulti/index.ts +1 -1
  564. package/src/components/PlDropdownMulti/pl-dropdown-multi.scss +8 -6
  565. package/src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue +5 -5
  566. package/src/components/PlDropdownMultiRef/__tests__/PlDropdownMultiRef.spec.ts +25 -24
  567. package/src/components/PlDropdownMultiRef/index.ts +1 -1
  568. package/src/components/PlDropdownRef/PlDropdownRef.vue +12 -12
  569. package/src/components/PlDropdownRef/__tests__/PlDropdownRef.spec.ts +23 -23
  570. package/src/components/PlDropdownRef/index.ts +1 -1
  571. package/src/components/PlEditableTitle/PlEditableTitle.vue +9 -10
  572. package/src/components/PlEditableTitle/index.ts +1 -1
  573. package/src/components/PlEditableTitle/pl-editable-title.module.scss +4 -4
  574. package/src/components/PlElementList/PlElementList.vue +60 -37
  575. package/src/components/PlElementList/PlElementListItem.vue +45 -29
  576. package/src/components/PlElementList/README.md +102 -119
  577. package/src/components/PlElementList/index.ts +1 -1
  578. package/src/components/PlElementList/utils.ts +3 -1
  579. package/src/components/PlErrorAlert/PlErrorAlert.vue +5 -5
  580. package/src/components/PlErrorAlert/index.ts +1 -1
  581. package/src/components/PlErrorBoundary/PlErrorBoundary.vue +8 -5
  582. package/src/components/PlErrorBoundary/index.ts +1 -1
  583. package/src/components/PlFileDialog/Local.vue +22 -16
  584. package/src/components/PlFileDialog/PlFileDialog.vue +27 -23
  585. package/src/components/PlFileDialog/Remote.vue +44 -34
  586. package/src/components/PlFileDialog/Shortcuts.vue +4 -4
  587. package/src/components/PlFileDialog/index.ts +1 -1
  588. package/src/components/PlFileDialog/pl-file-dialog.module.scss +15 -12
  589. package/src/components/PlFileDialog/remote.ts +9 -9
  590. package/src/components/PlFileDialog/utils.test.ts +20 -24
  591. package/src/components/PlFileDialog/utils.ts +8 -8
  592. package/src/components/PlFileInput/PlFileInput.vue +37 -26
  593. package/src/components/PlFileInput/index.ts +1 -1
  594. package/src/components/PlFileInput/pl-file-input.scss +3 -3
  595. package/src/components/PlFileInput/utils.ts +6 -6
  596. package/src/components/PlIcon16/PlIcon16.vue +7 -7
  597. package/src/components/PlIcon16/index.ts +1 -1
  598. package/src/components/PlIcon24/PlIcon24.vue +7 -7
  599. package/src/components/PlIcon24/index.ts +1 -1
  600. package/src/components/PlLoaderCircular/PlLoaderCircular.vue +24 -6
  601. package/src/components/PlLoaderCircular/index.ts +1 -1
  602. package/src/components/PlLoaderCircular/pl-loader-circular.scss +54 -50
  603. package/src/components/PlLoaderLogo.vue +8 -10
  604. package/src/components/PlLogView/PlLogView.vue +28 -22
  605. package/src/components/PlLogView/index.ts +1 -1
  606. package/src/components/PlLogView/pl-log-view.scss +10 -4
  607. package/src/components/PlLogView/useLogHandle.ts +32 -12
  608. package/src/components/PlMaskIcon16/index.ts +1 -1
  609. package/src/components/PlMaskIcon24/index.ts +1 -1
  610. package/src/components/PlNotificationAlert/PlNotificationAlert.vue +10 -5
  611. package/src/components/PlNotificationAlert/index.ts +1 -1
  612. package/src/components/PlNotificationAlert/pl-notification-alert.scss +43 -44
  613. package/src/components/PlNumberField/PlNumberField.vue +95 -68
  614. package/src/components/PlNumberField/__tests__/PlNumberField.spec.ts +71 -69
  615. package/src/components/PlNumberField/index.ts +1 -1
  616. package/src/components/PlNumberField/parseNumber.ts +20 -17
  617. package/src/components/PlProgressBar/PlProgressBar.vue +5 -5
  618. package/src/components/PlProgressBar/index.ts +1 -1
  619. package/src/components/PlProgressCell/PlProgressCell.vue +33 -14
  620. package/src/components/PlProgressCell/index.ts +2 -2
  621. package/src/components/PlProgressCell/pl-progress-cell.scss +70 -70
  622. package/src/components/PlProgressCell/types.ts +1 -1
  623. package/src/components/PlRadio/PlRadio.vue +54 -54
  624. package/src/components/PlRadio/PlRadioGroup.vue +16 -16
  625. package/src/components/PlRadio/__tests__/PlRadioGroup.spec.ts +50 -50
  626. package/src/components/PlRadio/index.ts +2 -2
  627. package/src/components/PlRadio/keys.ts +1 -1
  628. package/src/components/PlSearchField/PlSearchField.vue +21 -9
  629. package/src/components/PlSearchField/index.ts +1 -1
  630. package/src/components/PlSectionSeparator/PlSectionSeparator.vue +1 -1
  631. package/src/components/PlSectionSeparator/index.ts +1 -1
  632. package/src/components/PlSidebar/PlSidebarGroup.vue +2 -2
  633. package/src/components/PlSidebar/PlSidebarItem.vue +7 -7
  634. package/src/components/PlSidebar/index.ts +2 -2
  635. package/src/components/PlSlideModal/PlPureSlideModal.vue +18 -17
  636. package/src/components/PlSlideModal/PlSlideModal.vue +8 -12
  637. package/src/components/PlSlideModal/index.ts +2 -2
  638. package/src/components/PlSlideModal/pl-slide-modal.scss +2 -2
  639. package/src/components/PlSlideModal/props.ts +9 -9
  640. package/src/components/PlSpacer/PlSpacer.vue +1 -1
  641. package/src/components/PlSpacer/index.ts +1 -1
  642. package/src/components/PlSplash/PlSplash.vue +25 -17
  643. package/src/components/PlSplash/index.ts +1 -1
  644. package/src/components/PlSplash/pl-splash.module.scss +1 -1
  645. package/src/components/PlStatusTag/PlStatusTag.vue +13 -8
  646. package/src/components/PlStatusTag/index.ts +2 -2
  647. package/src/components/PlStatusTag/pl-status-tag.scss +18 -18
  648. package/src/components/PlStatusTag/types.ts +1 -1
  649. package/src/components/PlSvg/PlSvg.vue +24 -16
  650. package/src/components/PlSvg/index.ts +1 -1
  651. package/src/components/PlSvg/registry.ts +17 -21
  652. package/src/components/PlTabs/PlTabs.vue +10 -7
  653. package/src/components/PlTabs/Tab.vue +4 -4
  654. package/src/components/PlTabs/index.ts +2 -2
  655. package/src/components/PlTabs/pl-tabs.module.scss +3 -3
  656. package/src/components/PlTextArea/PlTextArea.vue +15 -15
  657. package/src/components/PlTextArea/__tests__/PlTextArea.spec.ts +12 -12
  658. package/src/components/PlTextArea/index.ts +1 -1
  659. package/src/components/PlTextArea/pl-textarea.scss +1 -1
  660. package/src/components/PlTextField/PlTextField.vue +48 -27
  661. package/src/components/PlTextField/__tests__/TextField.spec.ts +19 -19
  662. package/src/components/PlTextField/index.ts +1 -1
  663. package/src/components/PlToggleSwitch/PlToggleSwitch.vue +3 -3
  664. package/src/components/PlToggleSwitch/index.ts +1 -1
  665. package/src/components/PlToggleSwitch/pl-toggle-switch.scss +3 -2
  666. package/src/components/PlTooltip/Beak.vue +8 -1
  667. package/src/components/PlTooltip/PlTooltip.vue +33 -19
  668. package/src/components/PlTooltip/index.ts +1 -1
  669. package/src/components/PlTooltip/pl-tooltip.scss +4 -2
  670. package/src/components/PlTooltip/useTooltipPosition.ts +12 -12
  671. package/src/components/Scrollable.vue +17 -8
  672. package/src/components/Slider.vue +47 -23
  673. package/src/components/SliderRange.vue +72 -32
  674. package/src/components/SliderRangeTriple.vue +49 -31
  675. package/src/components/TabItem.vue +5 -5
  676. package/src/components/ThemeSwitcher.vue +1 -1
  677. package/src/components/TransitionSlidePanel.vue +2 -2
  678. package/src/components/VScroll.vue +10 -10
  679. package/src/components/contextMenu/Menu.vue +4 -4
  680. package/src/components/contextMenu/index.ts +6 -6
  681. package/src/composition/computedCached.ts +11 -7
  682. package/src/composition/filters/index.ts +2 -2
  683. package/src/composition/filters/metadata.ts +227 -220
  684. package/src/composition/filters/types.ts +44 -21
  685. package/src/composition/useClickOutside.ts +4 -4
  686. package/src/composition/useComponentProp.ts +5 -3
  687. package/src/composition/useConfirm.ts +5 -5
  688. package/src/composition/useDraggable.ts +16 -13
  689. package/src/composition/useEventListener.ts +13 -5
  690. package/src/composition/useFilteredList.ts +9 -6
  691. package/src/composition/useFormState.ts +3 -3
  692. package/src/composition/useHover.ts +10 -7
  693. package/src/composition/useInterval.ts +1 -1
  694. package/src/composition/useLocalStorage.ts +4 -4
  695. package/src/composition/useMouse.ts +3 -3
  696. package/src/composition/useMouseCapture.ts +10 -7
  697. package/src/composition/useNotificationPosition.ts +4 -4
  698. package/src/composition/usePollingQuery.ts +22 -20
  699. package/src/composition/usePosition.ts +13 -9
  700. package/src/composition/useQuery.ts +2 -2
  701. package/src/composition/useResizeObserver.ts +9 -6
  702. package/src/composition/useRipple.ts +6 -6
  703. package/src/composition/useScroll.ts +18 -12
  704. package/src/composition/useSliderBreakpoints.ts +6 -4
  705. package/src/composition/useSortable.ts +17 -17
  706. package/src/composition/useSortable2.ts +27 -24
  707. package/src/composition/useTheme.ts +11 -9
  708. package/src/composition/useTransformedModel.ts +6 -3
  709. package/src/composition/useWatchFetch.ts +3 -3
  710. package/src/composition/utils.ts +1 -1
  711. package/src/composition/watchCached.ts +2 -8
  712. package/src/demo-site-data/all-css-variables.ts +208 -169
  713. package/src/drafts/FileBaseInput.vue +35 -18
  714. package/src/generated/icons-16.ts +68 -68
  715. package/src/generated/icons-24.ts +211 -211
  716. package/src/global/resizeObserver.ts +1 -1
  717. package/src/helpers/dom.ts +12 -8
  718. package/src/helpers/downloadContent.ts +23 -21
  719. package/src/helpers/error.ts +6 -3
  720. package/src/helpers/functions.ts +5 -1
  721. package/src/helpers/objects.ts +1 -1
  722. package/src/helpers/utils.ts +23 -9
  723. package/src/index.ts +110 -110
  724. package/src/layout/PlBlockPage/PlBlockPage.vue +14 -19
  725. package/src/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.ts +1 -1
  726. package/src/layout/PlBlockPage/index.ts +2 -2
  727. package/src/layout/PlBlockPage/pl-block-page.scss +1 -1
  728. package/src/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.ts +2 -2
  729. package/src/layout/PlContainer/PlContainer.vue +10 -5
  730. package/src/layout/PlContainer/index.ts +1 -1
  731. package/src/layout/PlContainer/pl-container.scss +1 -1
  732. package/src/layout/PlGrid/PlGrid.vue +3 -3
  733. package/src/layout/PlGrid/index.ts +1 -1
  734. package/src/layout/PlGrid/pl-grid.scss +1 -1
  735. package/src/layout/PlPlaceholder/PlPlaceholder.vue +19 -18
  736. package/src/layout/PlPlaceholder/index.ts +11 -14
  737. package/src/layout/PlPlaceholder/paint-worklet.js +6 -6
  738. package/src/layout/PlRow/PlRow.vue +2 -2
  739. package/src/layout/PlRow/index.ts +1 -1
  740. package/src/layout/PlRow/pl-row.scss +1 -1
  741. package/src/layout/PlSpacer/PlSpacer.vue +1 -1
  742. package/src/layout/PlSpacer/index.ts +1 -1
  743. package/src/types.ts +23 -17
  744. package/src/utils/DoubleContour.vue +18 -7
  745. package/src/utils/DropdownOverlay/DropdownOverlay.vue +13 -13
  746. package/src/utils/DropdownOverlay/index.ts +1 -1
  747. package/src/utils/PlCloseModalBtn.vue +1 -1
  748. package/src/utils/TextLabel.vue +1 -1
  749. package/src/utils/WebStopWatchElement.ts +5 -5
  750. package/src/utils/useLabelNotch.ts +12 -9
  751. package/src/utils/useValidation.ts +2 -2
  752. package/tsconfig.json +2 -7
  753. package/vitest.config.mts +9 -9
  754. package/.turbo/turbo-lint.log +0 -5
  755. package/eslint.config.mjs +0 -4
@@ -0,0 +1,12 @@
1
+  WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
+
3
+ > @milaboratories/uikit@2.10.17 formatter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
+ > ts-builder formatter --check
5
+
6
+ Checking formatting...
7
+ ↳ oxfmt --check --config /home/runner/_work/platforma/platforma/lib/ui/uikit/.oxfmtrc.json
8
+ Checking formatting...
9
+
10
+ All matched files use the correct format.
11
+ Finished in 3896ms on 383 files using 8 threads.
12
+ Format check completed successfully
@@ -0,0 +1,10 @@
1
+  WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
+
3
+ > @milaboratories/uikit@2.10.17 linter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
+ > ts-builder linter --check
5
+
6
+ Linting project...
7
+ ↳ oxlint --config /home/runner/_work/platforma/platforma/lib/ui/uikit/.oxlintrc.json --deny-warnings
8
+ Found 0 warnings and 0 errors.
9
+ Finished in 44ms on 309 files with 100 rules using 8 threads.
10
+ Linting completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.10.15 type-check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
- > ts-builder types --target browser-lib
3
+ > @milaboratories/uikit@2.10.17 types:check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
+ > ts-builder type-check --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @milaboratories/uikit
2
2
 
3
+ ## 2.10.17
4
+
5
+ ### Patch Changes
6
+
7
+ - a6ea24f: silent ci tests
8
+ - Updated dependencies [a6ea24f]
9
+ - @milaboratories/helpers@1.13.2
10
+ - @platforma-sdk/model@1.53.14
11
+
12
+ ## 2.10.16
13
+
14
+ ### Patch Changes
15
+
16
+ - f89a883: full integration oxc
17
+ - Updated dependencies [f89a883]
18
+ - @milaboratories/helpers@1.13.1
19
+ - @platforma-sdk/model@1.53.13
20
+
3
21
  ## 2.10.15
4
22
 
5
23
  ### Patch Changes
@@ -1,6 +1,6 @@
1
- import { createViteLibConfig } from '@milaboratories/build-configs';
2
- import { resolve } from 'path';
3
- import { defineConfig, mergeConfig } from 'vite';
1
+ import { createViteLibConfig } from "@milaboratories/build-configs";
2
+ import { resolve } from "path";
3
+ import { defineConfig, mergeConfig } from "vite";
4
4
 
5
5
  export default defineConfig((configEnv) => {
6
6
  return mergeConfig(createViteLibConfig(configEnv), {
@@ -10,9 +10,9 @@ export default defineConfig((configEnv) => {
10
10
  build: {
11
11
  lib: {
12
12
  // Could also be a dictionary or array of multiple entry points
13
- entry: [resolve(process.cwd(), 'src/index.ts')],
14
- name: 'pl-uikit',
15
- }
13
+ entry: [resolve(process.cwd(), "src/index.ts")],
14
+ name: "pl-uikit",
15
+ },
16
16
  },
17
17
  });
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BtnBase.vue.js","sources":["../../src/base/BtnBase.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport type { MaskIconName16, Size } from '../types';\nimport { computed, ref } from 'vue';\nimport { PlMaskIcon16 } from '../components/PlMaskIcon16';\nimport { useRipple } from '../composition/useRipple';\n\nconst props = defineProps<{\n loading?: boolean;\n small?: boolean;\n large?: boolean;\n size?: Size;\n round?: boolean;\n icon?: MaskIconName16;\n reverse?: boolean;\n justifyCenter?: boolean;\n}>();\n\nconst btn = ref();\n\nconst small = computed(() => props.small || props.size === 'small');\nconst large = computed(() => props.large || props.size === 'large');\n\nuseRipple(btn);\n</script>\n\n<template>\n <button\n ref=\"btn\"\n tabindex=\"0\"\n :class=\"{ loading, small, large, round, reverse, justifyCenter, [$attrs.class + '']: true }\"\n v-bind=\"{ ...$attrs, disabled: Boolean($attrs.disabled) || loading }\"\n >\n <span v-if=\"!round\">\n <slot />\n </span>\n <slot name=\"icon\">\n <PlMaskIcon16 v-if=\"loading\" name=\"loading\" :size=\"size\" />\n <PlMaskIcon16 v-else-if=\"icon\" :name=\"icon\" :size=\"size\" />\n </slot>\n </button>\n</template>\n"],"names":["__default__","props","__props","btn","ref","small","computed","large","useRipple","_openBlock","_createElementBlock","_mergeProps","$attrs","_hoisted_1","_renderSlot","_ctx","_createBlock","_unref","PlMaskIcon16"],"mappings":";;;sBACAA,IAAe;AAAA,EACb,cAAc;AAChB;;;;;;;;;;;;;;AASA,UAAMC,IAAQC,GAWRC,IAAMC,EAAA,GAENC,IAAQC,EAAS,MAAML,EAAM,SAASA,EAAM,SAAS,OAAO,GAC5DM,IAAQD,EAAS,MAAML,EAAM,SAASA,EAAM,SAAS,OAAO;AAElE,WAAAO,EAAUL,CAAG,cAIXM,EAAA,GAAAC,EAaS,UAbTC,EAaS;AAAA,eAZH;AAAA,MAAJ,KAAIR;AAAA,MACJ,UAAS;AAAA,MACR,OAAK,EAAA,SAAID,EAAA,SAAO,OAAEG,EAAA,cAAOE,EAAA,OAAK,OAAEL,EAAA,OAAK,SAAEA,WAAO,eAAEA,EAAA,eAAa,CAAGU,EAAAA,OAAO,QAAK,EAAA,GAAA,GAAA;AAAA,IAAA,GAChEA,EAAAA,GAAAA,EAAAA,kBAAkB,EAAQA,SAAO,YAAaV,EAAA,QAAA,CAAO,GAAA;AAAA,MAErDA,EAAA,0BAAbQ,EAEO,QAAAG,GAAA;AAAA,QADLC,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;MAEVD,EAGOC,sBAHP,MAGO;AAAA,QAFeb,EAAA,gBAApBc,EAA2DC,EAAAC,CAAA,GAAA;AAAA;UAA9B,MAAK;AAAA,UAAW,MAAMhB,EAAA;AAAA,QAAA,yBAC1BA,EAAA,aAAzBc,EAA2DC,EAAAC,CAAA,GAAA;AAAA;UAA3B,MAAMhB,EAAA;AAAA,UAAO,MAAMA,EAAA;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"BtnBase.vue.js","sources":["../../src/base/BtnBase.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport type { MaskIconName16, Size } from \"../types\";\nimport { computed, ref } from \"vue\";\nimport { PlMaskIcon16 } from \"../components/PlMaskIcon16\";\nimport { useRipple } from \"../composition/useRipple\";\n\nconst props = defineProps<{\n loading?: boolean;\n small?: boolean;\n large?: boolean;\n size?: Size;\n round?: boolean;\n icon?: MaskIconName16;\n reverse?: boolean;\n justifyCenter?: boolean;\n}>();\n\nconst btn = ref();\n\nconst small = computed(() => props.small || props.size === \"small\");\nconst large = computed(() => props.large || props.size === \"large\");\n\nuseRipple(btn);\n</script>\n\n<template>\n <button\n ref=\"btn\"\n tabindex=\"0\"\n :class=\"{ loading, small, large, round, reverse, justifyCenter, [$attrs.class + '']: true }\"\n v-bind=\"{ ...$attrs, disabled: Boolean($attrs.disabled) || loading }\"\n >\n <span v-if=\"!round\">\n <slot />\n </span>\n <slot name=\"icon\">\n <PlMaskIcon16 v-if=\"loading\" name=\"loading\" :size=\"size\" />\n <PlMaskIcon16 v-else-if=\"icon\" :name=\"icon\" :size=\"size\" />\n </slot>\n </button>\n</template>\n"],"names":["__default__","props","__props","btn","ref","small","computed","large","useRipple","_openBlock","_createElementBlock","_mergeProps","$attrs","_hoisted_1","_renderSlot","_ctx","_createBlock","_unref","PlMaskIcon16"],"mappings":";;;sBACAA,IAAe;AAAA,EACb,cAAc;AAChB;;;;;;;;;;;;;;AASA,UAAMC,IAAQC,GAWRC,IAAMC,EAAA,GAENC,IAAQC,EAAS,MAAML,EAAM,SAASA,EAAM,SAAS,OAAO,GAC5DM,IAAQD,EAAS,MAAML,EAAM,SAASA,EAAM,SAAS,OAAO;AAElE,WAAAO,EAAUL,CAAG,cAIXM,EAAA,GAAAC,EAaS,UAbTC,EAaS;AAAA,eAZH;AAAA,MAAJ,KAAIR;AAAA,MACJ,UAAS;AAAA,MACR,OAAK,EAAA,SAAID,EAAA,SAAO,OAAEG,EAAA,cAAOE,EAAA,OAAK,OAAEL,EAAA,OAAK,SAAEA,WAAO,eAAEA,EAAA,eAAa,CAAGU,EAAAA,OAAO,QAAK,EAAA,GAAA,GAAA;AAAA,IAAA,GAChEA,EAAAA,GAAAA,EAAAA,kBAAkB,EAAQA,SAAO,YAAaV,EAAA,QAAA,CAAO,GAAA;AAAA,MAErDA,EAAA,0BAAbQ,EAEO,QAAAG,GAAA;AAAA,QADLC,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;MAEVD,EAGOC,sBAHP,MAGO;AAAA,QAFeb,EAAA,gBAApBc,EAA2DC,EAAAC,CAAA,GAAA;AAAA;UAA9B,MAAK;AAAA,UAAW,MAAMhB,EAAA;AAAA,QAAA,yBAC1BA,EAAA,aAAzBc,EAA2DC,EAAAC,CAAA,GAAA;AAAA;UAA3B,MAAMhB,EAAA;AAAA,UAAO,MAAMA,EAAA;AAAA,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/colors/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU;gBAG3C,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;;;;;EAwB9B;yBA9Be,KAAK;uBAkCC,MAAM,KAAG,KAAK;0BAwBX,MAAM;oBAvDN,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;;;;;;4BA4DJ,gBAAgB;oBA/DlB,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;;;;;;;AA0B/B,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/colors/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU;gBAG3C,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;;;;;EA0B9B;yBAhCe,KAAK;uBAoCC,MAAM,KAAG,KAAK;0BA2BX,MAAM;oBA5DN,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;;;;;;4BAiEJ,gBAAgB;oBApElB,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;;;;;;;AA4B/B,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sources":["../../src/colors/color.ts"],"sourcesContent":["import { categoricalColors, type CategoricalColor } from './palette';\n\n/**\n * Represents a color with red, green, blue, and alpha channels.\n * Provides methods to convert to HEX and RGBA formats.\n *\n * @param {number} r - Red channel (0-255).\n * @param {number} g - Green channel (0-255).\n * @param {number} b - Blue channel (0-255).\n * @param {number} [a=1] - Alpha channel (0-1).\n */\nexport function Color(r: number, g: number, b: number, a: number = 1) {\n return new class {\n constructor(\n public readonly r: number,\n public readonly g: number,\n public readonly b: number,\n public readonly a: number = 1,\n ) {}\n\n get hex() {\n const hexR = r.toString(16).padStart(2, '0');\n const hexG = g.toString(16).padStart(2, '0');\n const hexB = b.toString(16).padStart(2, '0');\n const hexA = Math.round(a * 255).toString(16).padStart(2, '0'); // Alpha in 2-digit hex\n\n return `#${hexR}${hexG}${hexB}${hexA}`;\n }\n\n get rgba() {\n return `rgb(${r}, ${g}, ${b}, ${a})`;\n }\n\n toString() {\n return this.hex;\n }\n\n toJSON() {\n return this.hex;\n }\n }(r, g, b, a);\n}\n\nexport type Color = ReturnType<typeof Color>;\n\nColor.fromHex = (hex: string): Color => {\n hex = hex.replace('#', '');\n\n let r: number, g: number, b: number, a: number = 1;\n\n if (hex.length === 6) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n a = parseInt(hex.slice(6, 8), 16) / 255;\n } else {\n throw new Error('Invalid HEX color format.');\n }\n\n return Color(r, g, b, a);\n};\n\n/**\n * Parses a color string (attention: currently supports only HEX, @todo)\n */\nColor.fromString = (str: string) => {\n if (str.startsWith('#')) {\n return Color.fromHex(str);\n }\n\n throw Error('TODO: implement rgb(a), hsl');\n};\n\nColor.categorical = (name: CategoricalColor) => {\n return Color.fromHex(categoricalColors[name]);\n};\n"],"names":["Color","r","g","b","a","hexR","hexG","hexB","hexA","hex","str","name","categoricalColors"],"mappings":";AAWO,SAASA,EAAMC,GAAWC,GAAWC,GAAWC,IAAY,GAAG;AACpE,SAAO,IAAI,MAAM;AAAA,IACf,YACkBH,GACAC,GACAC,GACAC,IAAY,GAC5B;AAJgB,WAAA,IAAAH,GACA,KAAA,IAAAC,GACA,KAAA,IAAAC,GACA,KAAA,IAAAC;AAAAA,IACf;AAAA,IAEH,IAAI,MAAM;AACR,YAAMC,IAAOJ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GACrCK,IAAOJ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GACrCK,IAAOJ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GACrCK,IAAO,KAAK,MAAMJ,IAAI,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAE7D,aAAO,IAAIC,CAAI,GAAGC,CAAI,GAAGC,CAAI,GAAGC,CAAI;AAAA,IACtC;AAAA,IAEA,IAAI,OAAO;AACT,aAAO,OAAOP,CAAC,KAAKC,CAAC,KAAKC,CAAC,KAAKC,CAAC;AAAA,IACnC;AAAA,IAEA,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,SAAS;AACP,aAAO,KAAK;AAAA,IACd;AAAA,EAAA,EACAH,GAAGC,GAAGC,GAAGC,CAAC;AACd;AAIAJ,EAAM,UAAU,CAACS,MAAuB;AACtC,EAAAA,IAAMA,EAAI,QAAQ,KAAK,EAAE;AAEzB,MAAI,GAAWP,GAAWC,GAAWC,IAAY;AAEjD,MAAIK,EAAI,WAAW;AACjB,QAAI,SAASA,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCP,IAAI,SAASO,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCN,IAAI,SAASM,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,WACvBA,EAAI,WAAW;AACxB,QAAI,SAASA,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCP,IAAI,SAASO,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCN,IAAI,SAASM,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCL,IAAI,SAASK,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;AAAA;AAEpC,UAAM,IAAI,MAAM,2BAA2B;AAG7C,SAAOT,EAAM,GAAGE,GAAGC,GAAGC,CAAC;AACzB;AAKAJ,EAAM,aAAa,CAACU,MAAgB;AAClC,MAAIA,EAAI,WAAW,GAAG;AACpB,WAAOV,EAAM,QAAQU,CAAG;AAG1B,QAAM,MAAM,6BAA6B;AAC3C;AAEAV,EAAM,cAAc,CAACW,MACZX,EAAM,QAAQY,EAAkBD,CAAI,CAAC;"}
1
+ {"version":3,"file":"color.js","sources":["../../src/colors/color.ts"],"sourcesContent":["import { categoricalColors, type CategoricalColor } from \"./palette\";\n\n/**\n * Represents a color with red, green, blue, and alpha channels.\n * Provides methods to convert to HEX and RGBA formats.\n *\n * @param {number} r - Red channel (0-255).\n * @param {number} g - Green channel (0-255).\n * @param {number} b - Blue channel (0-255).\n * @param {number} [a=1] - Alpha channel (0-1).\n */\nexport function Color(r: number, g: number, b: number, a: number = 1) {\n return new (class {\n constructor(\n public readonly r: number,\n public readonly g: number,\n public readonly b: number,\n public readonly a: number = 1,\n ) {}\n\n get hex() {\n const hexR = r.toString(16).padStart(2, \"0\");\n const hexG = g.toString(16).padStart(2, \"0\");\n const hexB = b.toString(16).padStart(2, \"0\");\n const hexA = Math.round(a * 255)\n .toString(16)\n .padStart(2, \"0\"); // Alpha in 2-digit hex\n\n return `#${hexR}${hexG}${hexB}${hexA}`;\n }\n\n get rgba() {\n return `rgb(${r}, ${g}, ${b}, ${a})`;\n }\n\n toString() {\n return this.hex;\n }\n\n toJSON() {\n return this.hex;\n }\n })(r, g, b, a);\n}\n\nexport type Color = ReturnType<typeof Color>;\n\nColor.fromHex = (hex: string): Color => {\n hex = hex.replace(\"#\", \"\");\n\n let r: number,\n g: number,\n b: number,\n a: number = 1;\n\n if (hex.length === 6) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n a = parseInt(hex.slice(6, 8), 16) / 255;\n } else {\n throw new Error(\"Invalid HEX color format.\");\n }\n\n return Color(r, g, b, a);\n};\n\n/**\n * Parses a color string (attention: currently supports only HEX, @todo)\n */\nColor.fromString = (str: string) => {\n if (str.startsWith(\"#\")) {\n return Color.fromHex(str);\n }\n\n throw Error(\"TODO: implement rgb(a), hsl\");\n};\n\nColor.categorical = (name: CategoricalColor) => {\n return Color.fromHex(categoricalColors[name]);\n};\n"],"names":["Color","r","g","b","a","hexR","hexG","hexB","hexA","hex","str","name","categoricalColors"],"mappings":";AAWO,SAASA,EAAMC,GAAWC,GAAWC,GAAWC,IAAY,GAAG;AACpE,SAAO,IAAK,MAAM;AAAA,IAChB,YACkBH,GACAC,GACAC,GACAC,IAAY,GAC5B;AAJgB,WAAA,IAAAH,GACA,KAAA,IAAAC,GACA,KAAA,IAAAC,GACA,KAAA,IAAAC;AAAAA,IACf;AAAA,IAEH,IAAI,MAAM;AACR,YAAMC,IAAOJ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GACrCK,IAAOJ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GACrCK,IAAOJ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GACrCK,IAAO,KAAK,MAAMJ,IAAI,GAAG,EAC5B,SAAS,EAAE,EACX,SAAS,GAAG,GAAG;AAElB,aAAO,IAAIC,CAAI,GAAGC,CAAI,GAAGC,CAAI,GAAGC,CAAI;AAAA,IACtC;AAAA,IAEA,IAAI,OAAO;AACT,aAAO,OAAOP,CAAC,KAAKC,CAAC,KAAKC,CAAC,KAAKC,CAAC;AAAA,IACnC;AAAA,IAEA,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,SAAS;AACP,aAAO,KAAK;AAAA,IACd;AAAA,EAAA,EACCH,GAAGC,GAAGC,GAAGC,CAAC;AACf;AAIAJ,EAAM,UAAU,CAACS,MAAuB;AACtC,EAAAA,IAAMA,EAAI,QAAQ,KAAK,EAAE;AAEzB,MAAI,GACFP,GACAC,GACAC,IAAY;AAEd,MAAIK,EAAI,WAAW;AACjB,QAAI,SAASA,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCP,IAAI,SAASO,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCN,IAAI,SAASM,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,WACvBA,EAAI,WAAW;AACxB,QAAI,SAASA,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCP,IAAI,SAASO,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCN,IAAI,SAASM,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCL,IAAI,SAASK,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;AAAA;AAEpC,UAAM,IAAI,MAAM,2BAA2B;AAG7C,SAAOT,EAAM,GAAGE,GAAGC,GAAGC,CAAC;AACzB;AAKAJ,EAAM,aAAa,CAACU,MAAgB;AAClC,MAAIA,EAAI,WAAW,GAAG;AACpB,WAAOV,EAAM,QAAQU,CAAG;AAG1B,QAAM,MAAM,6BAA6B;AAC3C;AAEAV,EAAM,cAAc,CAACW,MACZX,EAAM,QAAQY,EAAkBD,CAAI,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/colors/gradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC;AAsC1D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAK/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,KAAK,EAAE,CAY9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,cAAc;qBAET,KAAK,EAAE;IAE3C;;;;OAIG;oBACa,MAAM;;;;;;;;;;IAkBtB;;;;;OAKG;gBACS,MAAM,YAAY,MAAM;;;;;;;;;;IAMpC;;OAEG;aACM,MAAM;;;;;;;;;;EAalB"}
1
+ {"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/colors/gradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC;AAyC1D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAK/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,KAAK,EAAE,CAY9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,cAAc;qBAET,KAAK,EAAE;IAE3C;;;;OAIG;oBACa,MAAM;;;;;;;;;;IAkBtB;;;;;OAKG;gBACS,MAAM,YAAY,MAAM;;;;;;;;;;IAMpC;;OAEG;aACM,MAAM;;;;;;;;;;EAalB"}
@@ -1 +1 @@
1
- {"version":3,"file":"gradient.js","sources":["../../src/colors/gradient.ts"],"sourcesContent":["import type { Palette } from './palette';\nimport { palettes } from './palette';\nimport { Color } from './color';\n\nexport type GradientSource = (string | Color)[] | Palette;\n\nColor.fromHex = (hex: string): Color => {\n hex = hex.replace('#', '');\n\n let r: number, g: number, b: number, a: number = 1;\n\n if (hex.length === 6) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n a = parseInt(hex.slice(6, 8), 16) / 255;\n } else {\n throw new Error('Invalid HEX color format.');\n }\n\n return Color(r, g, b, a);\n};\n\n/**\n * Parses a color string (attention: currently supports only HEX, @todo)\n */\nColor.fromString = (str: string) => {\n if (str.startsWith('#')) {\n return Color.fromHex(str);\n }\n\n throw Error('TODO: implement rgb(a), hsl');\n};\n\nfunction lerp(a: number, b: number, t: number): number {\n return a + t * (b - a);\n}\n\n/**\n * Interpolates between two colors.\n *\n * @param {Color} color1 - Start color.\n * @param {Color} color2 - End color.\n * @param {number} t - Interpolation factor [0, 1].\n * @returns {Color} Interpolated color.\n */\nexport function interpolateColor(color1: Color, color2: Color, t: number): Color {\n const r = Math.round(lerp(color1.r, color2.r, t));\n const g = Math.round(lerp(color1.g, color2.g, t));\n const b = Math.round(lerp(color1.b, color2.b, t));\n return Color(r, g, b);\n}\n\n/**\n * Normalizes a gradient definition into an array of Color objects.\n *\n * @param {GradientSource} raw - A gradient defined as an array of strings, Colors, or a Palette.\n * @returns {Color[]} Array of normalized Color objects.\n */\nexport function normalizeGradient(raw: GradientSource): Color[] {\n if (typeof raw === 'string') {\n return palettes[raw].map((it) => Color.fromString(it));\n }\n\n return raw.map((it) => {\n if (typeof it === 'string') {\n return Color.fromString(it);\n }\n\n return it;\n });\n}\n\n/**\n * Creates a gradient with utilities to sample or split colors.\n */\nexport function Gradient(gradient: GradientSource) {\n return new class {\n constructor(public readonly colors: Color[]) {}\n\n /**\n * Samples a color at a specific point in the gradient.\n *\n * @param {number} t - A value in [0, 1] representing the position in the gradient.\n */\n fromInterval(t: number) {\n if (t < 0) throw new Error('t must be greater than or equal to 0');\n if (t > 1) throw new Error('t must be less than or equal to 1');\n\n const colors = this.colors;\n\n const segments = colors.length - 1;\n\n const segment = Math.floor(t * segments);\n\n const localT = (t * segments) % 1; // Local t within the current segment\n\n const color1 = colors[segment];\n const color2 = colors[Math.min(segment + 1, segments)];\n\n return interpolateColor(color1, color2, localT);\n }\n\n /**\n * Gets the nth color in a gradient divided into segments.\n *\n * @param {number} n - Index of the color (1-based).\n * @param {number} segments - Total number of segments.\n */\n getNthOf(n: number, segments: number) {\n if (n <= 0) throw new Error('n must be greater than 0');\n if (n > segments) throw Error('n must be lower or equal than count of segments');\n return this.fromInterval((n - 1) / (segments - 1));\n }\n\n /**\n * Splits the gradient into n evenly spaced colors.\n */\n split(n: number) {\n if (n <= 0) throw new Error('n must be greater than 0');\n\n const colors: Color[] = [];\n\n for (let i = 0; i < n; i++) {\n const t = i / (n - 1); // Normalize t to [0, 1]\n colors.push(this.fromInterval(t));\n }\n\n return colors;\n }\n }(normalizeGradient(gradient));\n}\n"],"names":["Color","hex","g","b","a","str","lerp","t","interpolateColor","color1","color2","r","normalizeGradient","raw","palettes","it","Gradient","gradient","colors","segments","segment","localT","n","i"],"mappings":"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"}
1
+ {"version":3,"file":"gradient.js","sources":["../../src/colors/gradient.ts"],"sourcesContent":["import type { Palette } from \"./palette\";\nimport { palettes } from \"./palette\";\nimport { Color } from \"./color\";\n\nexport type GradientSource = (string | Color)[] | Palette;\n\nColor.fromHex = (hex: string): Color => {\n hex = hex.replace(\"#\", \"\");\n\n let r: number,\n g: number,\n b: number,\n a: number = 1;\n\n if (hex.length === 6) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n a = parseInt(hex.slice(6, 8), 16) / 255;\n } else {\n throw new Error(\"Invalid HEX color format.\");\n }\n\n return Color(r, g, b, a);\n};\n\n/**\n * Parses a color string (attention: currently supports only HEX, @todo)\n */\nColor.fromString = (str: string) => {\n if (str.startsWith(\"#\")) {\n return Color.fromHex(str);\n }\n\n throw Error(\"TODO: implement rgb(a), hsl\");\n};\n\nfunction lerp(a: number, b: number, t: number): number {\n return a + t * (b - a);\n}\n\n/**\n * Interpolates between two colors.\n *\n * @param {Color} color1 - Start color.\n * @param {Color} color2 - End color.\n * @param {number} t - Interpolation factor [0, 1].\n * @returns {Color} Interpolated color.\n */\nexport function interpolateColor(color1: Color, color2: Color, t: number): Color {\n const r = Math.round(lerp(color1.r, color2.r, t));\n const g = Math.round(lerp(color1.g, color2.g, t));\n const b = Math.round(lerp(color1.b, color2.b, t));\n return Color(r, g, b);\n}\n\n/**\n * Normalizes a gradient definition into an array of Color objects.\n *\n * @param {GradientSource} raw - A gradient defined as an array of strings, Colors, or a Palette.\n * @returns {Color[]} Array of normalized Color objects.\n */\nexport function normalizeGradient(raw: GradientSource): Color[] {\n if (typeof raw === \"string\") {\n return palettes[raw].map((it) => Color.fromString(it));\n }\n\n return raw.map((it) => {\n if (typeof it === \"string\") {\n return Color.fromString(it);\n }\n\n return it;\n });\n}\n\n/**\n * Creates a gradient with utilities to sample or split colors.\n */\nexport function Gradient(gradient: GradientSource) {\n return new (class {\n constructor(public readonly colors: Color[]) {}\n\n /**\n * Samples a color at a specific point in the gradient.\n *\n * @param {number} t - A value in [0, 1] representing the position in the gradient.\n */\n fromInterval(t: number) {\n if (t < 0) throw new Error(\"t must be greater than or equal to 0\");\n if (t > 1) throw new Error(\"t must be less than or equal to 1\");\n\n const colors = this.colors;\n\n const segments = colors.length - 1;\n\n const segment = Math.floor(t * segments);\n\n const localT = (t * segments) % 1; // Local t within the current segment\n\n const color1 = colors[segment];\n const color2 = colors[Math.min(segment + 1, segments)];\n\n return interpolateColor(color1, color2, localT);\n }\n\n /**\n * Gets the nth color in a gradient divided into segments.\n *\n * @param {number} n - Index of the color (1-based).\n * @param {number} segments - Total number of segments.\n */\n getNthOf(n: number, segments: number) {\n if (n <= 0) throw new Error(\"n must be greater than 0\");\n if (n > segments) throw Error(\"n must be lower or equal than count of segments\");\n return this.fromInterval((n - 1) / (segments - 1));\n }\n\n /**\n * Splits the gradient into n evenly spaced colors.\n */\n split(n: number) {\n if (n <= 0) throw new Error(\"n must be greater than 0\");\n\n const colors: Color[] = [];\n\n for (let i = 0; i < n; i++) {\n const t = i / (n - 1); // Normalize t to [0, 1]\n colors.push(this.fromInterval(t));\n }\n\n return colors;\n }\n })(normalizeGradient(gradient));\n}\n"],"names":["Color","hex","g","b","a","str","lerp","t","interpolateColor","color1","color2","r","normalizeGradient","raw","palettes","it","Gradient","gradient","colors","segments","segment","localT","n","i"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"palette.js","sources":["../../src/colors/palette.ts"],"sourcesContent":["/**\n * good for age range // from newborn → to old\n */\nexport const viridis = [\n '#FFF680',\n '#E8F66C',\n '#C4F16B',\n '#9AEB71',\n '#70E084',\n '#43D18A',\n '#2DBD96',\n '#28A8A0',\n '#2793A3',\n '#337B9E',\n '#3B6399',\n '#424C8F',\n '#4A3584',\n '#481B70',\n '#4A005C',\n];\n\n/**\n * from light → to hard (errors)\n */\nexport const magma = [\n '#FFF680',\n '#FFE871',\n '#FDCD6F',\n '#FEAD66',\n '#FA935F',\n '#F57258',\n '#EB555E',\n '#D64470',\n '#B83778',\n '#982D82',\n '#7E2584',\n '#611B84',\n '#49187A',\n '#38116B',\n '#2B125C',\n];\n\n/**\n * From light to hard\n */\nconst density = [\n '#DFFADC',\n '#C9F5D3',\n '#B3F2CF',\n '#9AEBCD',\n '#80DCCC',\n '#6DC8D2',\n '#61B7DB',\n '#5C97DB',\n '#5A7CD6',\n '#6060C7',\n '#674BB3',\n '#693799',\n '#6A277B',\n '#671D60',\n '#611347',\n];\n\n/**\n * From light to hard\n */\nconst salinity = [\n '#FAFAB4',\n '#ECFBA1',\n '#D6F598',\n '#BEEB91',\n '#A2E082',\n '#82D67C',\n '#67C77E',\n '#4FB281',\n '#429E8C',\n '#36898F',\n '#2B668F',\n '#254B85',\n '#213475',\n '#1E1E6B',\n '#1C0F5C',\n];\n\n/**\n * temperature // recommended for 5+ points\n */\nconst sunset = [\n '#FFEA80',\n '#FFD971',\n '#FFC171',\n '#FFA76C',\n '#FB8B6F',\n '#EB7179',\n '#D75F7F',\n '#C2518D',\n '#A64392',\n '#8038A4',\n '#6135A4',\n '#4735A3',\n '#283A8F',\n '#013C70',\n '#003752',\n];\n\n/**\n * hight contrast range // recommended for 5+ points\n */\nconst rainbow = [\n '#FFF780',\n '#E7FA6F',\n '#C1FA6A',\n '#9BF56C',\n '#79F080',\n '#66E698',\n '#56D7AC',\n '#50C7C7',\n '#56B4D7',\n '#6898EB',\n '#7481FA',\n '#8769FA',\n '#9450EB',\n '#9634D6',\n '#942AAE',\n];\n\n/**\n * from good to bad\n */\nconst spectrum = [\n '#43317B',\n '#3B57A3',\n '#3390B3',\n '#5DC2B1',\n '#95DBA5',\n '#B9EBA0',\n '#DBF5A6',\n '#F5F5B7',\n '#FEEA9D',\n '#FFD285',\n '#FA9B78',\n '#E55C72',\n '#C23665',\n '#8F1150',\n '#5C1243',\n];\n\n/**\n * from good to bad\n */\nconst teal_red = [\n '#122B5C',\n '#1A496B',\n '#1D7C8F',\n '#21A3A3',\n '#5FC7AB',\n '#99E0B1',\n '#CEF0CE',\n '#F0F0F0',\n '#FAE6D2',\n '#FAC5AA',\n '#FA9282',\n '#E55C72',\n '#C23665',\n '#8F1150',\n '#5C1243',\n];\n\n/**\n * Temperature // From cold → to warm\n */\nconst blue_red = [\n '#0E0E8F',\n '#1D23B8',\n '#3748E5',\n '#647DFA',\n '#96A7FA',\n '#C3CCFA',\n '#E1E5FA',\n '#F0F0F0',\n '#F9DBDB',\n '#F9BDBD',\n '#F59393',\n '#E55C72',\n '#C23665',\n '#8F1150',\n '#5C1243',\n];\n\n/**\n * Neutral range // from A → to B\n */\nconst lime_rose = [\n '#2E5C00',\n '#49850D',\n '#3748E5',\n '#8FC758',\n '#ABDB7B',\n '#C5EBA0',\n '#DCF5C4',\n '#F0F0F0',\n '#FADCF5',\n '#F5C4ED',\n '#F0A3E3',\n '#E573D2',\n '#CC49B6',\n '#991884',\n '#701260',\n];\n\n/**\n * bars only big range 7+ points // cutting\n */\nconst viridis_magma = [\n '#4A005C',\n '#4A2F7F',\n '#3F5895',\n '#3181A0',\n '#28A8A0',\n '#3ECD8D',\n '#86E67B',\n '#CEF36C',\n '#FFF680',\n '#FED470',\n '#FDA163',\n '#F36C5A',\n '#D64470',\n '#A03080',\n '#702084',\n '#451777',\n '#2B125C',\n];\n\nexport const palettes = {\n viridis,\n magma,\n density,\n salinity,\n sunset,\n rainbow,\n spectrum,\n teal_red,\n blue_red,\n lime_rose,\n viridis_magma,\n};\n\nexport type Palette = keyof typeof palettes;\n\n/**\n * Just named colors\n */\nexport const categoricalColors = {\n green_light: '#99E099',\n green_bright: '#198020',\n green_dark: '#42B842',\n violet_light: '#C1ADFF',\n violet_bright: '#845CFF',\n violet_dark: '#5F31CC',\n orange_light: '#FFCB8F',\n orange_bright: '#FF9429',\n orange_dark: '#C26A27',\n teal_light: '#90E0E0',\n teal_bright: '#27C2C2',\n teal_dark: '#068A94',\n rose_light: '#FAAAFA',\n rose_bright: '#E553E5',\n rose_dark: '#A324B2',\n lime_light: '#CBEB67',\n lime_bright: '#95C700',\n lime_dark: '#659406',\n blue_light: '#99CCFF',\n blue_bright: '#2D93FA',\n blue_dark: '#105BCC',\n red_light: '#FFADBA',\n red_bright: '#F05670',\n red_dark: '#AD3757',\n grey_light: '#D3D7E0',\n grey_bright: '#929BAD',\n grey_dark: '#5E5E70',\n};\n\nexport type CategoricalColor = keyof typeof categoricalColors;\n"],"names":["viridis","magma","density","salinity","sunset","rainbow","spectrum","teal_red","blue_red","lime_rose","viridis_magma","palettes","categoricalColors"],"mappings":"AAGO,MAAMA,IAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKaC,IAAQ;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAS;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAAW;AAAA,EACtB,SAAAX;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AACF,GAOaE,IAAoB;AAAA,EAC/B,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AACb;"}
1
+ {"version":3,"file":"palette.js","sources":["../../src/colors/palette.ts"],"sourcesContent":["/**\n * good for age range // from newborn → to old\n */\nexport const viridis = [\n \"#FFF680\",\n \"#E8F66C\",\n \"#C4F16B\",\n \"#9AEB71\",\n \"#70E084\",\n \"#43D18A\",\n \"#2DBD96\",\n \"#28A8A0\",\n \"#2793A3\",\n \"#337B9E\",\n \"#3B6399\",\n \"#424C8F\",\n \"#4A3584\",\n \"#481B70\",\n \"#4A005C\",\n];\n\n/**\n * from light → to hard (errors)\n */\nexport const magma = [\n \"#FFF680\",\n \"#FFE871\",\n \"#FDCD6F\",\n \"#FEAD66\",\n \"#FA935F\",\n \"#F57258\",\n \"#EB555E\",\n \"#D64470\",\n \"#B83778\",\n \"#982D82\",\n \"#7E2584\",\n \"#611B84\",\n \"#49187A\",\n \"#38116B\",\n \"#2B125C\",\n];\n\n/**\n * From light to hard\n */\nconst density = [\n \"#DFFADC\",\n \"#C9F5D3\",\n \"#B3F2CF\",\n \"#9AEBCD\",\n \"#80DCCC\",\n \"#6DC8D2\",\n \"#61B7DB\",\n \"#5C97DB\",\n \"#5A7CD6\",\n \"#6060C7\",\n \"#674BB3\",\n \"#693799\",\n \"#6A277B\",\n \"#671D60\",\n \"#611347\",\n];\n\n/**\n * From light to hard\n */\nconst salinity = [\n \"#FAFAB4\",\n \"#ECFBA1\",\n \"#D6F598\",\n \"#BEEB91\",\n \"#A2E082\",\n \"#82D67C\",\n \"#67C77E\",\n \"#4FB281\",\n \"#429E8C\",\n \"#36898F\",\n \"#2B668F\",\n \"#254B85\",\n \"#213475\",\n \"#1E1E6B\",\n \"#1C0F5C\",\n];\n\n/**\n * temperature // recommended for 5+ points\n */\nconst sunset = [\n \"#FFEA80\",\n \"#FFD971\",\n \"#FFC171\",\n \"#FFA76C\",\n \"#FB8B6F\",\n \"#EB7179\",\n \"#D75F7F\",\n \"#C2518D\",\n \"#A64392\",\n \"#8038A4\",\n \"#6135A4\",\n \"#4735A3\",\n \"#283A8F\",\n \"#013C70\",\n \"#003752\",\n];\n\n/**\n * hight contrast range // recommended for 5+ points\n */\nconst rainbow = [\n \"#FFF780\",\n \"#E7FA6F\",\n \"#C1FA6A\",\n \"#9BF56C\",\n \"#79F080\",\n \"#66E698\",\n \"#56D7AC\",\n \"#50C7C7\",\n \"#56B4D7\",\n \"#6898EB\",\n \"#7481FA\",\n \"#8769FA\",\n \"#9450EB\",\n \"#9634D6\",\n \"#942AAE\",\n];\n\n/**\n * from good to bad\n */\nconst spectrum = [\n \"#43317B\",\n \"#3B57A3\",\n \"#3390B3\",\n \"#5DC2B1\",\n \"#95DBA5\",\n \"#B9EBA0\",\n \"#DBF5A6\",\n \"#F5F5B7\",\n \"#FEEA9D\",\n \"#FFD285\",\n \"#FA9B78\",\n \"#E55C72\",\n \"#C23665\",\n \"#8F1150\",\n \"#5C1243\",\n];\n\n/**\n * from good to bad\n */\nconst teal_red = [\n \"#122B5C\",\n \"#1A496B\",\n \"#1D7C8F\",\n \"#21A3A3\",\n \"#5FC7AB\",\n \"#99E0B1\",\n \"#CEF0CE\",\n \"#F0F0F0\",\n \"#FAE6D2\",\n \"#FAC5AA\",\n \"#FA9282\",\n \"#E55C72\",\n \"#C23665\",\n \"#8F1150\",\n \"#5C1243\",\n];\n\n/**\n * Temperature // From cold → to warm\n */\nconst blue_red = [\n \"#0E0E8F\",\n \"#1D23B8\",\n \"#3748E5\",\n \"#647DFA\",\n \"#96A7FA\",\n \"#C3CCFA\",\n \"#E1E5FA\",\n \"#F0F0F0\",\n \"#F9DBDB\",\n \"#F9BDBD\",\n \"#F59393\",\n \"#E55C72\",\n \"#C23665\",\n \"#8F1150\",\n \"#5C1243\",\n];\n\n/**\n * Neutral range // from A → to B\n */\nconst lime_rose = [\n \"#2E5C00\",\n \"#49850D\",\n \"#3748E5\",\n \"#8FC758\",\n \"#ABDB7B\",\n \"#C5EBA0\",\n \"#DCF5C4\",\n \"#F0F0F0\",\n \"#FADCF5\",\n \"#F5C4ED\",\n \"#F0A3E3\",\n \"#E573D2\",\n \"#CC49B6\",\n \"#991884\",\n \"#701260\",\n];\n\n/**\n * bars only big range 7+ points // cutting\n */\nconst viridis_magma = [\n \"#4A005C\",\n \"#4A2F7F\",\n \"#3F5895\",\n \"#3181A0\",\n \"#28A8A0\",\n \"#3ECD8D\",\n \"#86E67B\",\n \"#CEF36C\",\n \"#FFF680\",\n \"#FED470\",\n \"#FDA163\",\n \"#F36C5A\",\n \"#D64470\",\n \"#A03080\",\n \"#702084\",\n \"#451777\",\n \"#2B125C\",\n];\n\nexport const palettes = {\n viridis,\n magma,\n density,\n salinity,\n sunset,\n rainbow,\n spectrum,\n teal_red,\n blue_red,\n lime_rose,\n viridis_magma,\n};\n\nexport type Palette = keyof typeof palettes;\n\n/**\n * Just named colors\n */\nexport const categoricalColors = {\n green_light: \"#99E099\",\n green_bright: \"#198020\",\n green_dark: \"#42B842\",\n violet_light: \"#C1ADFF\",\n violet_bright: \"#845CFF\",\n violet_dark: \"#5F31CC\",\n orange_light: \"#FFCB8F\",\n orange_bright: \"#FF9429\",\n orange_dark: \"#C26A27\",\n teal_light: \"#90E0E0\",\n teal_bright: \"#27C2C2\",\n teal_dark: \"#068A94\",\n rose_light: \"#FAAAFA\",\n rose_bright: \"#E553E5\",\n rose_dark: \"#A324B2\",\n lime_light: \"#CBEB67\",\n lime_bright: \"#95C700\",\n lime_dark: \"#659406\",\n blue_light: \"#99CCFF\",\n blue_bright: \"#2D93FA\",\n blue_dark: \"#105BCC\",\n red_light: \"#FFADBA\",\n red_bright: \"#F05670\",\n red_dark: \"#AD3757\",\n grey_light: \"#D3D7E0\",\n grey_bright: \"#929BAD\",\n grey_dark: \"#5E5E70\",\n};\n\nexport type CategoricalColor = keyof typeof categoricalColors;\n"],"names":["viridis","magma","density","salinity","sunset","rainbow","spectrum","teal_red","blue_red","lime_rose","viridis_magma","palettes","categoricalColors"],"mappings":"AAGO,MAAMA,IAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKaC,IAAQ;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAS;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAAW;AAAA,EACtB,SAAAX;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AACF,GAOaE,IAAoB;AAAA,EAC/B,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AACb;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextProvider.vue.js","sources":["../../src/components/ContextProvider.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type InjectionKey, computed, provide } from 'vue';\n\nconst props = defineProps<{\n context: object;\n contextKey: InjectionKey<unknown>;\n}>();\n\nprovide<unknown>(\n props.contextKey,\n computed(() => props.context),\n);\n</script>\n\n<template>\n <slot />\n</template>\n"],"names":["props","__props","provide","computed","_renderSlot","_ctx"],"mappings":";;;;;;;;AAGA,UAAMA,IAAQC;AAKd,WAAAC;AAAA,MACEF,EAAM;AAAA,MACNG,EAAS,MAAMH,EAAM,OAAO;AAAA,IAAA,aAK5BI,EAAQC,EAAA,QAAA,SAAA;AAAA;;"}
1
+ {"version":3,"file":"ContextProvider.vue.js","sources":["../../src/components/ContextProvider.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type InjectionKey, computed, provide } from \"vue\";\n\nconst props = defineProps<{\n context: object;\n contextKey: InjectionKey<unknown>;\n}>();\n\nprovide<unknown>(\n props.contextKey,\n computed(() => props.context),\n);\n</script>\n\n<template>\n <slot />\n</template>\n"],"names":["props","__props","provide","computed","_renderSlot","_ctx"],"mappings":";;;;;;;;AAGA,UAAMA,IAAQC;AAKd,WAAAC;AAAA,MACEF,EAAM;AAAA,MACNG,EAAS,MAAMH,EAAM,OAAO;AAAA,IAAA,aAK5BI,EAAQC,EAAA,QAAA,SAAA;AAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCellComponent.vue.js","sources":["../../../src/components/DataTable/BaseCellComponent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { call } from '@milaboratories/helpers';\nimport type { ValueType } from './types';\nimport { computed, reactive, ref, unref } from 'vue';\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst props = defineProps<{\n modelValue: unknown;\n valueType: ValueType | undefined;\n editable?: boolean;\n}>();\n\nconst data = reactive({\n edit: false as boolean,\n});\n\nconst valueTypeRef = computed(() => props.valueType);\n\nconst onInput = (ev: Event) => {\n const inputValue = (ev.target as HTMLInputElement)?.value;\n\n const valueType = unref(valueTypeRef);\n\n // @todo temp, replace to parse functions\n const value = call(() => {\n if (valueType === 'integer') {\n return parseInt(inputValue, 10);\n }\n\n if (valueType === 'float') {\n return Number(inputValue);\n }\n\n return inputValue;\n });\n\n emit('update:modelValue', value);\n\n data.edit = false;\n};\n\nconst baseRef = ref<HTMLElement>();\n\nconst onClick = (ev: MouseEvent) => {\n if (!ev.metaKey && props.editable) {\n data.edit = true;\n requestAnimationFrame(() => {\n baseRef.value?.querySelector('input')?.focus();\n });\n }\n};\n</script>\n\n<template>\n <div ref=\"baseRef\" class=\"base-cell\" :class=\"{ 'base-cell__edit': data.edit }\" @click=\"onClick\">\n <input v-if=\"data.edit\" :value=\"modelValue\" @focusout=\"data.edit = false\" @change=\"onInput\" />\n <div v-else>{{ modelValue }}</div>\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","data","reactive","valueTypeRef","computed","onInput","ev","inputValue","_a","valueType","unref","value","call","baseRef","ref","onClick","_b","_createElementBlock","_normalizeClass","_cache","$event","_openBlock"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAOC,GAEPC,IAAQC,GAMRC,IAAOC,EAAS;AAAA,MACpB,MAAM;AAAA,IAAA,CACP,GAEKC,IAAeC,EAAS,MAAML,EAAM,SAAS,GAE7CM,IAAU,CAACC,MAAc;;AAC7B,YAAMC,KAAcC,IAAAF,EAAG,WAAH,gBAAAE,EAAgC,OAE9CC,IAAYC,EAAMP,CAAY,GAG9BQ,IAAQC,EAAK,MACbH,MAAc,YACT,SAASF,GAAY,EAAE,IAG5BE,MAAc,UACT,OAAOF,CAAU,IAGnBA,CACR;AAED,MAAAV,EAAK,qBAAqBc,CAAK,GAE/BV,EAAK,OAAO;AAAA,IACd,GAEMY,IAAUC,EAAA,GAEVC,IAAU,CAACT,MAAmB;AAClC,MAAI,CAACA,EAAG,WAAWP,EAAM,aACvBE,EAAK,OAAO,IACZ,sBAAsB,MAAM;;AAC1B,SAAAe,KAAAR,IAAAK,EAAQ,UAAR,gBAAAL,EAAe,cAAc,aAA7B,QAAAQ,EAAuC;AAAA,MACzC,CAAC;AAAA,IAEL;2BAIEC,EAGM,OAAA;AAAA,eAHG;AAAA,MAAJ,KAAIJ;AAAA,MAAU,OAAKK,EAAA,CAAC,aAAW,EAAA,mBAA8BjB,EAAK,KAAA,CAAI,CAAA;AAAA,MAAK,SAAAc;AAAA,IAAA;MACjEd,EAAK,aAAlBgB,EAA8F,SAAA;AAAA;QAArE,OAAOjB,EAAA;AAAA,QAAa,YAAQmB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEnB,EAAK,OAAI;AAAA,QAAW,UAAQI;AAAA,MAAA,oBACnFgB,EAAA,GAAAJ,EAAkC,YAAnBjB,EAAA,UAAU,GAAA,CAAA;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"BaseCellComponent.vue.js","sources":["../../../src/components/DataTable/BaseCellComponent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { call } from \"@milaboratories/helpers\";\nimport type { ValueType } from \"./types\";\nimport { computed, reactive, ref, unref } from \"vue\";\n\nconst emit = defineEmits([\"update:modelValue\"]);\n\nconst props = defineProps<{\n modelValue: unknown;\n valueType: ValueType | undefined;\n editable?: boolean;\n}>();\n\nconst data = reactive({\n edit: false as boolean,\n});\n\nconst valueTypeRef = computed(() => props.valueType);\n\nconst onInput = (ev: Event) => {\n const inputValue = (ev.target as HTMLInputElement)?.value;\n\n const valueType = unref(valueTypeRef);\n\n // @todo temp, replace to parse functions\n const value = call(() => {\n if (valueType === \"integer\") {\n return parseInt(inputValue, 10);\n }\n\n if (valueType === \"float\") {\n return Number(inputValue);\n }\n\n return inputValue;\n });\n\n emit(\"update:modelValue\", value);\n\n data.edit = false;\n};\n\nconst baseRef = ref<HTMLElement>();\n\nconst onClick = (ev: MouseEvent) => {\n if (!ev.metaKey && props.editable) {\n data.edit = true;\n requestAnimationFrame(() => {\n baseRef.value?.querySelector(\"input\")?.focus();\n });\n }\n};\n</script>\n\n<template>\n <div ref=\"baseRef\" class=\"base-cell\" :class=\"{ 'base-cell__edit': data.edit }\" @click=\"onClick\">\n <input v-if=\"data.edit\" :value=\"modelValue\" @focusout=\"data.edit = false\" @change=\"onInput\" />\n <div v-else>{{ modelValue }}</div>\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","data","reactive","valueTypeRef","computed","onInput","ev","inputValue","_a","valueType","unref","value","call","baseRef","ref","onClick","_b","_createElementBlock","_normalizeClass","_cache","$event","_openBlock"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAOC,GAEPC,IAAQC,GAMRC,IAAOC,EAAS;AAAA,MACpB,MAAM;AAAA,IAAA,CACP,GAEKC,IAAeC,EAAS,MAAML,EAAM,SAAS,GAE7CM,IAAU,CAACC,MAAc;;AAC7B,YAAMC,KAAcC,IAAAF,EAAG,WAAH,gBAAAE,EAAgC,OAE9CC,IAAYC,EAAMP,CAAY,GAG9BQ,IAAQC,EAAK,MACbH,MAAc,YACT,SAASF,GAAY,EAAE,IAG5BE,MAAc,UACT,OAAOF,CAAU,IAGnBA,CACR;AAED,MAAAV,EAAK,qBAAqBc,CAAK,GAE/BV,EAAK,OAAO;AAAA,IACd,GAEMY,IAAUC,EAAA,GAEVC,IAAU,CAACT,MAAmB;AAClC,MAAI,CAACA,EAAG,WAAWP,EAAM,aACvBE,EAAK,OAAO,IACZ,sBAAsB,MAAM;;AAC1B,SAAAe,KAAAR,IAAAK,EAAQ,UAAR,gBAAAL,EAAe,cAAc,aAA7B,QAAAQ,EAAuC;AAAA,MACzC,CAAC;AAAA,IAEL;2BAIEC,EAGM,OAAA;AAAA,eAHG;AAAA,MAAJ,KAAIJ;AAAA,MAAU,OAAKK,EAAA,CAAC,aAAW,EAAA,mBAA8BjB,EAAK,KAAA,CAAI,CAAA;AAAA,MAAK,SAAAc;AAAA,IAAA;MACjEd,EAAK,aAAlBgB,EAA8F,SAAA;AAAA;QAArE,OAAOjB,EAAA;AAAA,QAAa,YAAQmB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEnB,EAAK,OAAI;AAAA,QAAW,UAAQI;AAAA,MAAA,oBACnFgB,EAAA,GAAAJ,EAAkC,YAAnBjB,EAAA,UAAU,GAAA,CAAA;AAAA,IAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnCaret.vue.js","sources":["../../../src/components/DataTable/ColumnCaret.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { ColumnSpecSettings } from './types';\nimport { injectState } from './keys';\n\nconst state = injectState();\n\nconst props = defineProps<{\n column: ColumnSpecSettings;\n}>();\n\nconst selected = computed(() => state.data.selectedColumns.has(props.column.id));\n</script>\n\n<template>\n <div class=\"column-caret\" :class=\"{ selected, frozen: column.frozen }\" />\n</template>\n"],"names":["state","injectState","props","__props","selected","computed","_createElementBlock"],"mappings":";;;;;;;;AAKA,UAAMA,IAAQC,EAAA,GAERC,IAAQC,GAIRC,IAAWC,EAAS,MAAML,EAAM,KAAK,gBAAgB,IAAIE,EAAM,OAAO,EAAE,CAAC;2BAI7EI,EAAyE,OAAA;AAAA,MAApE,UAAM,gBAAc,EAAA,UAAWF,SAAQ,QAAUD,EAAA,OAAO,OAAA,CAAM,CAAA;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"ColumnCaret.vue.js","sources":["../../../src/components/DataTable/ColumnCaret.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { ColumnSpecSettings } from \"./types\";\nimport { injectState } from \"./keys\";\n\nconst state = injectState();\n\nconst props = defineProps<{\n column: ColumnSpecSettings;\n}>();\n\nconst selected = computed(() => state.data.selectedColumns.has(props.column.id));\n</script>\n\n<template>\n <div class=\"column-caret\" :class=\"{ selected, frozen: column.frozen }\" />\n</template>\n"],"names":["state","injectState","props","__props","selected","computed","_createElementBlock"],"mappings":";;;;;;;;AAKA,UAAMA,IAAQC,EAAA,GAERC,IAAQC,GAIRC,IAAWC,EAAS,MAAML,EAAM,KAAK,gBAAgB,IAAIE,EAAM,OAAO,EAAE,CAAC;2BAI7EI,EAAyE,OAAA;AAAA,MAApE,UAAM,gBAAc,EAAA,UAAWF,SAAQ,QAAUD,EAAA,OAAO,OAAA,CAAM,CAAA;AAAA,IAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnsCommandMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/ColumnsCommandMenu.vue"],"names":[],"mappings":";AA6GA,wBAKG"}
1
+ {"version":3,"file":"ColumnsCommandMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/ColumnsCommandMenu.vue"],"names":[],"mappings":";AAiHA,wBAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnsCommandMenu.vue.js","sources":["../../../src/components/DataTable/ColumnsCommandMenu.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport { injectState } from './keys';\n\nconst state = injectState();\n\nconst selectedColumns = computed(() => state.getSelectedColumns());\n\nconst isVisible = computed(() => selectedColumns.value.length > 0);\n\nconst ops = computed(() => state.settings?.value.onSelectedColumns ?? []);\n\nconst actions = computed(() =>\n ops.value.map((op) => ({\n label: op.label,\n cb: () => {\n op.cb(selectedColumns.value);\n state.data.selectedColumns.clear();\n },\n })),\n);\n</script>\n\n<template>\n <div v-if=\"isVisible\" class=\"command-menu\">\n <span v-if=\"selectedColumns.length\">selected columns {{ selectedColumns.length }}</span>\n <hr />\n <span v-for=\"(action, i) in actions\" :key=\"i\" class=\"command\" @click.stop=\"action.cb\">{{ action.label }}</span>\n </div>\n</template>\n"],"names":["state","injectState","selectedColumns","computed","isVisible","ops","_a","actions","op","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createElementVNode","_Fragment","_renderList","action","i","_withModifiers","_hoisted_3"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC,EAAA,GAERC,IAAkBC,EAAS,MAAMH,EAAM,oBAAoB,GAE3DI,IAAYD,EAAS,MAAMD,EAAgB,MAAM,SAAS,CAAC,GAE3DG,IAAMF,EAAS,MAAA;;AAAM,eAAAG,IAAAN,EAAM,aAAN,gBAAAM,EAAgB,MAAM,sBAAqB;KAAE,GAElEC,IAAUJ;AAAA,MAAS,MACvBE,EAAI,MAAM,IAAI,CAACG,OAAQ;AAAA,QACrB,OAAOA,EAAG;AAAA,QACV,IAAI,MAAM;AACR,UAAAA,EAAG,GAAGN,EAAgB,KAAK,GAC3BF,EAAM,KAAK,gBAAgB,MAAA;AAAA,QAC7B;AAAA,MAAA,EACA;AAAA,IAAA;qBAKSI,EAAA,SAAXK,EAAA,GAAAC,EAIM,OAJNC,GAIM;AAAA,MAHQT,EAAA,MAAgB,UAA5BO,KAAAC,EAAwF,QAAAE,GAApD,sBAAiBC,EAAGX,EAAA,MAAgB,MAAM,GAAA,CAAA;sBAC9EY,EAAM,MAAA,MAAA,MAAA,EAAA;AAAA,OACNL,EAAA,EAAA,GAAAC,EAA+GK,GAAA,MAAAC,EAAnFT,EAAA,OAAO,CAArBU,GAAQC,YAAtBR,EAA+G,QAAA;AAAA,QAAzE,KAAKQ;AAAA,QAAG,OAAM;AAAA,QAAW,SAAKC,EAAOF,EAAO,IAAE,CAAA,MAAA,CAAA;AAAA,MAAA,GAAKJ,EAAAI,EAAO,KAAK,GAAA,GAAAG,CAAA;;;;"}
1
+ {"version":3,"file":"ColumnsCommandMenu.vue.js","sources":["../../../src/components/DataTable/ColumnsCommandMenu.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { injectState } from \"./keys\";\n\nconst state = injectState();\n\nconst selectedColumns = computed(() => state.getSelectedColumns());\n\nconst isVisible = computed(() => selectedColumns.value.length > 0);\n\nconst ops = computed(() => state.settings?.value.onSelectedColumns ?? []);\n\nconst actions = computed(() =>\n ops.value.map((op) => ({\n label: op.label,\n cb: () => {\n op.cb(selectedColumns.value);\n state.data.selectedColumns.clear();\n },\n })),\n);\n</script>\n\n<template>\n <div v-if=\"isVisible\" class=\"command-menu\">\n <span v-if=\"selectedColumns.length\">selected columns {{ selectedColumns.length }}</span>\n <hr />\n <span v-for=\"(action, i) in actions\" :key=\"i\" class=\"command\" @click.stop=\"action.cb\">{{\n action.label\n }}</span>\n </div>\n</template>\n"],"names":["state","injectState","selectedColumns","computed","isVisible","ops","_a","actions","op","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createElementVNode","_Fragment","_renderList","action","i","_withModifiers","_hoisted_3"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC,EAAA,GAERC,IAAkBC,EAAS,MAAMH,EAAM,oBAAoB,GAE3DI,IAAYD,EAAS,MAAMD,EAAgB,MAAM,SAAS,CAAC,GAE3DG,IAAMF,EAAS,MAAA;;AAAM,eAAAG,IAAAN,EAAM,aAAN,gBAAAM,EAAgB,MAAM,sBAAqB;KAAE,GAElEC,IAAUJ;AAAA,MAAS,MACvBE,EAAI,MAAM,IAAI,CAACG,OAAQ;AAAA,QACrB,OAAOA,EAAG;AAAA,QACV,IAAI,MAAM;AACR,UAAAA,EAAG,GAAGN,EAAgB,KAAK,GAC3BF,EAAM,KAAK,gBAAgB,MAAA;AAAA,QAC7B;AAAA,MAAA,EACA;AAAA,IAAA;qBAKSI,EAAA,SAAXK,EAAA,GAAAC,EAMM,OANNC,GAMM;AAAA,MALQT,EAAA,MAAgB,UAA5BO,KAAAC,EAAwF,QAAAE,GAApD,sBAAiBC,EAAGX,EAAA,MAAgB,MAAM,GAAA,CAAA;sBAC9EY,EAAM,MAAA,MAAA,MAAA,EAAA;AAAA,OACNL,EAAA,EAAA,GAAAC,EAESK,GAAA,MAAAC,EAFmBT,EAAA,OAAO,CAArBU,GAAQC,YAAtBR,EAES,QAAA;AAAA,QAF6B,KAAKQ;AAAA,QAAG,OAAM;AAAA,QAAW,SAAKC,EAAOF,EAAO,IAAE,CAAA,MAAA,CAAA;AAAA,MAAA,GAClFJ,EAAAI,EAAO,KAAK,GAAA,GAAAG,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowsCommandMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/RowsCommandMenu.vue"],"names":[],"mappings":";AA+GA,wBAKG"}
1
+ {"version":3,"file":"RowsCommandMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/RowsCommandMenu.vue"],"names":[],"mappings":";AAmHA,wBAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowsCommandMenu.vue.js","sources":["../../../src/components/DataTable/RowsCommandMenu.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport { injectState } from './keys';\n\nconst state = injectState();\n\nconst selectedRows = computed(() => state.getSelectedRows());\n\nconst isVisible = computed(() => selectedRows.value.length > 0);\n\nconst ops = computed(() => state.settings?.value.onSelectedRows ?? []);\n\nconst actions = computed(() =>\n ops.value.map((op) => ({\n label: op.label,\n cb: () => {\n op.cb(selectedRows.value);\n state.data.selectedRows.clear();\n state.data.rows = [];\n },\n })),\n);\n</script>\n\n<template>\n <div v-if=\"isVisible\" class=\"command-menu\">\n <span v-if=\"selectedRows.length\">{{ selectedRows.length }} rows selected</span>\n <hr />\n <span v-for=\"(action, i) in actions\" :key=\"i\" class=\"command\" @click.stop=\"action.cb\">{{ action.label }}</span>\n </div>\n</template>\n"],"names":["state","injectState","selectedRows","computed","isVisible","ops","_a","actions","op","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createElementVNode","_Fragment","_renderList","action","i","_withModifiers","_hoisted_3"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC,EAAA,GAERC,IAAeC,EAAS,MAAMH,EAAM,iBAAiB,GAErDI,IAAYD,EAAS,MAAMD,EAAa,MAAM,SAAS,CAAC,GAExDG,IAAMF,EAAS,MAAA;;AAAM,eAAAG,IAAAN,EAAM,aAAN,gBAAAM,EAAgB,MAAM,mBAAkB;KAAE,GAE/DC,IAAUJ;AAAA,MAAS,MACvBE,EAAI,MAAM,IAAI,CAACG,OAAQ;AAAA,QACrB,OAAOA,EAAG;AAAA,QACV,IAAI,MAAM;AACR,UAAAA,EAAG,GAAGN,EAAa,KAAK,GACxBF,EAAM,KAAK,aAAa,MAAA,GACxBA,EAAM,KAAK,OAAO,CAAA;AAAA,QACpB;AAAA,MAAA,EACA;AAAA,IAAA;qBAKSI,EAAA,SAAXK,EAAA,GAAAC,EAIM,OAJNC,GAIM;AAAA,MAHQT,EAAA,MAAa,UAAzBO,KAAAC,EAA+E,QAAAE,GAAAC,EAA3CX,EAAA,MAAa,MAAM,IAAG,kBAAc,CAAA;sBACxEY,EAAM,MAAA,MAAA,MAAA,EAAA;AAAA,OACNL,EAAA,EAAA,GAAAC,EAA+GK,GAAA,MAAAC,EAAnFT,EAAA,OAAO,CAArBU,GAAQC,YAAtBR,EAA+G,QAAA;AAAA,QAAzE,KAAKQ;AAAA,QAAG,OAAM;AAAA,QAAW,SAAKC,EAAOF,EAAO,IAAE,CAAA,MAAA,CAAA;AAAA,MAAA,GAAKJ,EAAAI,EAAO,KAAK,GAAA,GAAAG,CAAA;;;;"}
1
+ {"version":3,"file":"RowsCommandMenu.vue.js","sources":["../../../src/components/DataTable/RowsCommandMenu.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { injectState } from \"./keys\";\n\nconst state = injectState();\n\nconst selectedRows = computed(() => state.getSelectedRows());\n\nconst isVisible = computed(() => selectedRows.value.length > 0);\n\nconst ops = computed(() => state.settings?.value.onSelectedRows ?? []);\n\nconst actions = computed(() =>\n ops.value.map((op) => ({\n label: op.label,\n cb: () => {\n op.cb(selectedRows.value);\n state.data.selectedRows.clear();\n state.data.rows = [];\n },\n })),\n);\n</script>\n\n<template>\n <div v-if=\"isVisible\" class=\"command-menu\">\n <span v-if=\"selectedRows.length\">{{ selectedRows.length }} rows selected</span>\n <hr />\n <span v-for=\"(action, i) in actions\" :key=\"i\" class=\"command\" @click.stop=\"action.cb\">{{\n action.label\n }}</span>\n </div>\n</template>\n"],"names":["state","injectState","selectedRows","computed","isVisible","ops","_a","actions","op","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createElementVNode","_Fragment","_renderList","action","i","_withModifiers","_hoisted_3"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC,EAAA,GAERC,IAAeC,EAAS,MAAMH,EAAM,iBAAiB,GAErDI,IAAYD,EAAS,MAAMD,EAAa,MAAM,SAAS,CAAC,GAExDG,IAAMF,EAAS,MAAA;;AAAM,eAAAG,IAAAN,EAAM,aAAN,gBAAAM,EAAgB,MAAM,mBAAkB;KAAE,GAE/DC,IAAUJ;AAAA,MAAS,MACvBE,EAAI,MAAM,IAAI,CAACG,OAAQ;AAAA,QACrB,OAAOA,EAAG;AAAA,QACV,IAAI,MAAM;AACR,UAAAA,EAAG,GAAGN,EAAa,KAAK,GACxBF,EAAM,KAAK,aAAa,MAAA,GACxBA,EAAM,KAAK,OAAO,CAAA;AAAA,QACpB;AAAA,MAAA,EACA;AAAA,IAAA;qBAKSI,EAAA,SAAXK,EAAA,GAAAC,EAMM,OANNC,GAMM;AAAA,MALQT,EAAA,MAAa,UAAzBO,KAAAC,EAA+E,QAAAE,GAAAC,EAA3CX,EAAA,MAAa,MAAM,IAAG,kBAAc,CAAA;sBACxEY,EAAM,MAAA,MAAA,MAAA,EAAA;AAAA,OACNL,EAAA,EAAA,GAAAC,EAESK,GAAA,MAAAC,EAFmBT,EAAA,OAAO,CAArBU,GAAQC,YAAtBR,EAES,QAAA;AAAA,QAF6B,KAAKQ;AAAA,QAAG,OAAM;AAAA,QAAW,SAAKC,EAAOF,EAAO,IAAE,CAAA,MAAA,CAAA;AAAA,MAAA,GAClFJ,EAAAI,EAAO,KAAK,GAAA,GAAAG,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TScroll.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TScroll.vue"],"names":[],"mappings":"AAmDA,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;;;;;;;;AA4EF,wBASG"}
1
+ {"version":3,"file":"TScroll.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TScroll.vue"],"names":[],"mappings":"AAwDA,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;;;;;;;;AAiFF,wBASG"}
@@ -9,7 +9,12 @@ const k = /* @__PURE__ */ z({
9
9
  },
10
10
  emits: ["change:offset"],
11
11
  setup(n, { emit: f }) {
12
- const u = f, e = n, s = v(), l = t(() => e.windowSize - 12), h = t(() => e.windowSize < e.dataSize), i = t(() => Math.ceil(e.offset * (l.value / e.dataSize))), m = t(() => Math.ceil(l.value * l.value / e.dataSize)), p = t(() => ({ top: `${i.value}px`, height: `${m.value}px` }));
12
+ const u = f, e = n, s = v(), l = t(() => e.windowSize - 12), h = t(() => e.windowSize < e.dataSize), i = t(() => Math.ceil(e.offset * (l.value / e.dataSize))), m = t(
13
+ () => Math.ceil(l.value * l.value / e.dataSize)
14
+ ), p = t(() => ({
15
+ top: `${i.value}px`,
16
+ height: `${m.value}px`
17
+ }));
13
18
  return x(s, (a, o) => {
14
19
  const S = (i.value + a.dy) * e.dataSize / l.value;
15
20
  u("change:offset", S), o.x = a.x, o.y = a.y;
@@ -1 +1 @@
1
- {"version":3,"file":"TScroll.vue.js","sources":["../../../src/components/DataTable/TScroll.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue';\nimport { useMouseCapture } from '../../composition/useMouseCapture';\n\nconst emit = defineEmits<{\n (e: 'change:offset', value: number): void;\n}>();\n\nconst props = defineProps<{\n offset: number;\n windowSize: number;\n dataSize: number;\n}>();\n\nconst handleRef = ref<HTMLElement>();\n\nconst scrollSize = computed(() => props.windowSize - 12);\n\nconst isVisible = computed(() => props.windowSize < props.dataSize);\n\nconst handleOffset = computed(() => Math.ceil(props.offset * (scrollSize.value / props.dataSize)));\n\nconst handleLength = computed(() => Math.ceil((scrollSize.value * scrollSize.value) / props.dataSize));\n\nconst handleStyle = computed(() => ({ top: `${handleOffset.value}px`, height: `${handleLength.value}px` }));\n\nuseMouseCapture(handleRef, (ev, state) => {\n const newOffset = ((handleOffset.value + ev.dy) * props.dataSize) / scrollSize.value;\n emit('change:offset', newOffset);\n state.x = ev.x;\n state.y = ev.y;\n});\n</script>\n\n<template>\n <div class=\"t-scroll\" :style=\"{ height: `${windowSize}px` }\">\n <div>\n <div v-if=\"isVisible\" ref=\"handleRef\" class=\"t-scroll__handle\" :style=\"handleStyle\" />\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","handleRef","ref","scrollSize","computed","isVisible","handleOffset","handleLength","handleStyle","useMouseCapture","ev","state","newOffset","_createElementBlock","_createElementVNode"],"mappings":";;;;;;;;;;;AAIA,UAAMA,IAAOC,GAIPC,IAAQC,GAMRC,IAAYC,EAAA,GAEZC,IAAaC,EAAS,MAAML,EAAM,aAAa,EAAE,GAEjDM,IAAYD,EAAS,MAAML,EAAM,aAAaA,EAAM,QAAQ,GAE5DO,IAAeF,EAAS,MAAM,KAAK,KAAKL,EAAM,UAAUI,EAAW,QAAQJ,EAAM,SAAS,CAAC,GAE3FQ,IAAeH,EAAS,MAAM,KAAK,KAAMD,EAAW,QAAQA,EAAW,QAASJ,EAAM,QAAQ,CAAC,GAE/FS,IAAcJ,EAAS,OAAO,EAAE,KAAK,GAAGE,EAAa,KAAK,MAAM,QAAQ,GAAGC,EAAa,KAAK,OAAO;AAE1G,WAAAE,EAAgBR,GAAW,CAACS,GAAIC,MAAU;AACxC,YAAMC,KAAcN,EAAa,QAAQI,EAAG,MAAMX,EAAM,WAAYI,EAAW;AAC/E,MAAAN,EAAK,iBAAiBe,CAAS,GAC/BD,EAAM,IAAID,EAAG,GACbC,EAAM,IAAID,EAAG;AAAA,IACf,CAAC,mBAICG,EAIM,OAAA;AAAA,MAJD,OAAM;AAAA,MAAY,sBAAoBb,EAAA,UAAU,MAAA;AAAA,IAAA;MACnDc,EAEM,OAAA,MAAA;AAAA,QADOT,EAAA,cAAXQ,EAAsF,OAAA;AAAA;mBAA5D;AAAA,UAAJ,KAAIZ;AAAA,UAAY,OAAM;AAAA,UAAoB,SAAOO,EAAA,KAAW;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"TScroll.vue.js","sources":["../../../src/components/DataTable/TScroll.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref } from \"vue\";\nimport { useMouseCapture } from \"../../composition/useMouseCapture\";\n\nconst emit = defineEmits<{\n (e: \"change:offset\", value: number): void;\n}>();\n\nconst props = defineProps<{\n offset: number;\n windowSize: number;\n dataSize: number;\n}>();\n\nconst handleRef = ref<HTMLElement>();\n\nconst scrollSize = computed(() => props.windowSize - 12);\n\nconst isVisible = computed(() => props.windowSize < props.dataSize);\n\nconst handleOffset = computed(() => Math.ceil(props.offset * (scrollSize.value / props.dataSize)));\n\nconst handleLength = computed(() =>\n Math.ceil((scrollSize.value * scrollSize.value) / props.dataSize),\n);\n\nconst handleStyle = computed(() => ({\n top: `${handleOffset.value}px`,\n height: `${handleLength.value}px`,\n}));\n\nuseMouseCapture(handleRef, (ev, state) => {\n const newOffset = ((handleOffset.value + ev.dy) * props.dataSize) / scrollSize.value;\n emit(\"change:offset\", newOffset);\n state.x = ev.x;\n state.y = ev.y;\n});\n</script>\n\n<template>\n <div class=\"t-scroll\" :style=\"{ height: `${windowSize}px` }\">\n <div>\n <div v-if=\"isVisible\" ref=\"handleRef\" class=\"t-scroll__handle\" :style=\"handleStyle\" />\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","handleRef","ref","scrollSize","computed","isVisible","handleOffset","handleLength","handleStyle","useMouseCapture","ev","state","newOffset","_createElementBlock","_createElementVNode"],"mappings":";;;;;;;;;;;AAIA,UAAMA,IAAOC,GAIPC,IAAQC,GAMRC,IAAYC,EAAA,GAEZC,IAAaC,EAAS,MAAML,EAAM,aAAa,EAAE,GAEjDM,IAAYD,EAAS,MAAML,EAAM,aAAaA,EAAM,QAAQ,GAE5DO,IAAeF,EAAS,MAAM,KAAK,KAAKL,EAAM,UAAUI,EAAW,QAAQJ,EAAM,SAAS,CAAC,GAE3FQ,IAAeH;AAAA,MAAS,MAC5B,KAAK,KAAMD,EAAW,QAAQA,EAAW,QAASJ,EAAM,QAAQ;AAAA,IAAA,GAG5DS,IAAcJ,EAAS,OAAO;AAAA,MAClC,KAAK,GAAGE,EAAa,KAAK;AAAA,MAC1B,QAAQ,GAAGC,EAAa,KAAK;AAAA,IAAA,EAC7B;AAEF,WAAAE,EAAgBR,GAAW,CAACS,GAAIC,MAAU;AACxC,YAAMC,KAAcN,EAAa,QAAQI,EAAG,MAAMX,EAAM,WAAYI,EAAW;AAC/E,MAAAN,EAAK,iBAAiBe,CAAS,GAC/BD,EAAM,IAAID,EAAG,GACbC,EAAM,IAAID,EAAG;AAAA,IACf,CAAC,mBAICG,EAIM,OAAA;AAAA,MAJD,OAAM;AAAA,MAAY,sBAAoBb,EAAA,UAAU,MAAA;AAAA,IAAA;MACnDc,EAEM,OAAA,MAAA;AAAA,QADOT,EAAA,cAAXQ,EAAsF,OAAA;AAAA;mBAA5D;AAAA,UAAJ,KAAIZ;AAAA,UAAY,OAAM;AAAA,UAAoB,SAAOO,EAAA,KAAW;AAAA,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableComponent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TableComponent.vue"],"names":[],"mappings":"AA2GA,OAAO,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoBxD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CACnC,CAAC;;;;;;;;;;;;AA+QF,wBASG"}
1
+ {"version":3,"file":"TableComponent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TableComponent.vue"],"names":[],"mappings":"AA4HA,OAAO,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoBxD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CACnC,CAAC;;;;;;;;;;;;AA+QF,wBASG"}
@@ -28,7 +28,7 @@ import "../../layout/PlPlaceholder/PlPlaceholder.vue2.js";
28
28
  /* empty css */
29
29
  /* empty css */
30
30
  /* empty css */
31
- /* empty css */
31
+ /* empty css */
32
32
  /* empty css */
33
33
  /* empty css */
34
34
  /* empty css */
@@ -1 +1 @@
1
- {"version":3,"file":"TableComponent.vue.js","sources":["../../../src/components/DataTable/TableComponent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport './assets/data-table-style.scss';\nimport { ref, unref, onMounted, nextTick, watchPostEffect, watch, computed } from 'vue';\nimport TdCell from './TdCell.vue';\nimport type { TableSettings, TableData } from './types';\nimport TableIcon from './assets/TableIcon.vue';\nimport TrHead from './TrHead.vue';\nimport ThCell from './ThCell.vue';\nimport TrBody from './TrBody.vue';\nimport ColumnCaret from './ColumnCaret.vue';\nimport { useEventListener } from '../../index';\nimport { tapIf } from '@milaboratories/helpers';\nimport { useResize } from './composition/useResize';\nimport RowsCommandMenu from './RowsCommandMenu.vue';\nimport ColumnsCommandMenu from './ColumnsCommandMenu.vue';\nimport TScroll from './TScroll.vue';\nimport { createState } from './state';\n\nconst emit = defineEmits<{\n (e: 'update:data', value: TableData): void;\n (e: 'change:sort', value: unknown): void;\n}>();\n\nconst props = defineProps<{\n settings: Readonly<TableSettings>;\n}>();\n\nconst state = createState(props);\n\nconst hasNoData = computed(() => state.data.rows.length === 0);\n\nconst tableBodyStyle = computed(() => ({\n height: hasNoData.value ? '212px' /* css value */ : state.data.bodyHeight + 'px',\n}));\n\nwatch(state.data, (v) => emit('update:data', v), { deep: true });\n\nwatch(props, () => updateDimensions);\n\nconst tableRef = ref<HTMLElement>();\nconst headRef = ref<HTMLElement>();\nconst bodyRef = ref<HTMLElement>();\n\nconst updateDimensions = () => {\n tapIf(bodyRef.value, (el) => {\n state.updateDimensions(el.getBoundingClientRect());\n });\n};\n\nconst tableColumns = state.tableColumns;\n\nconst tableRows = state.tableRows;\n\nconst { mouseDown } = useResize(state, tableRef);\n\nonMounted(() => {\n nextTick(updateDimensions);\n});\n\nwatchPostEffect(() => {\n unref(props.settings);\n nextTick(updateDimensions);\n});\n\nuseEventListener(window, 'resize', () => nextTick(updateDimensions));\n\nconst onWheel = (ev: WheelEvent) => {\n ev.preventDefault();\n state.updateOffsets(ev);\n};\n</script>\n\n<template>\n <div ref=\"tableRef\" class=\"data-table\" @mousedown=\"mouseDown\">\n <div class=\"command-menu__container\">\n <RowsCommandMenu />\n <ColumnsCommandMenu />\n </div>\n <div ref=\"headRef\" class=\"table-head\">\n <TrHead>\n <ThCell v-for=\"(col, i) in tableColumns\" :key=\"i\" :col=\"col\" :style=\"col.style\" @change:sort=\"$emit('change:sort', $event)\" />\n </TrHead>\n </div>\n <div ref=\"bodyRef\" class=\"table-body\" :style=\"tableBodyStyle\" @wheel=\"onWheel\">\n <div v-if=\"hasNoData\" class=\"table-body__no-data\">\n <div>\n <TableIcon />\n <div>No Data To Show</div>\n </div>\n </div>\n <TrBody v-for=\"(row, i) in tableRows\" :key=\"i\" :row=\"row\">\n <TdCell v-for=\"cell in row.cells\" :key=\"cell.column.id + ':' + i\" :cell=\"cell\" :style=\"cell.style\" />\n </TrBody>\n </div>\n <div class=\"carets\">\n <ColumnCaret v-for=\"(col, i) in tableColumns\" :key=\"i\" :column=\"col\" :style=\"col.style\" @change:sort=\"$emit('change:sort', $event)\" />\n </div>\n <TScroll\n :offset=\"state.data.scrollTop\"\n :window-size=\"state.data.bodyHeight\"\n :data-size=\"state.data.dataHeight\"\n @change:offset=\"state.updateScrollTop\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","state","createState","hasNoData","computed","tableBodyStyle","watch","v","updateDimensions","tableRef","ref","headRef","bodyRef","tapIf","el","tableColumns","tableRows","mouseDown","useResize","onMounted","nextTick","watchPostEffect","unref","useEventListener","onWheel","ev","_createElementBlock","_cache","_unref","args","_createElementVNode","_hoisted_1","_createVNode","RowsCommandMenu","ColumnsCommandMenu","TrHead","_openBlock","_Fragment","_renderList","col","i","_createBlock","ThCell","_normalizeStyle","$event","$emit","_hoisted_2","TableIcon","row","TrBody","cell","TdCell","_hoisted_3","ColumnCaret","TScroll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAAOC,GAKPC,IAAQC,GAIRC,IAAQC,EAAYH,CAAK,GAEzBI,IAAYC,EAAS,MAAMH,EAAM,KAAK,KAAK,WAAW,CAAC,GAEvDI,IAAiBD,EAAS,OAAO;AAAA,MACrC,QAAQD,EAAU,QAAQ,UAA0BF,EAAM,KAAK,aAAa;AAAA,IAAA,EAC5E;AAEF,IAAAK,EAAML,EAAM,MAAM,CAACM,MAAMV,EAAK,eAAeU,CAAC,GAAG,EAAE,MAAM,GAAA,CAAM,GAE/DD,EAAMP,GAAO,MAAMS,CAAgB;AAEnC,UAAMC,IAAWC,EAAA,GACXC,IAAUD,EAAA,GACVE,IAAUF,EAAA,GAEVF,IAAmB,MAAM;AAC7B,MAAAK,EAAMD,EAAQ,OAAO,CAACE,MAAO;AAC3B,QAAAb,EAAM,iBAAiBa,EAAG,uBAAuB;AAAA,MACnD,CAAC;AAAA,IACH,GAEMC,IAAed,EAAM,cAErBe,IAAYf,EAAM,WAElB,EAAE,WAAAgB,EAAA,IAAcC,EAAUjB,GAAOQ,CAAQ;AAE/C,IAAAU,EAAU,MAAM;AACd,MAAAC,EAASZ,CAAgB;AAAA,IAC3B,CAAC,GAEDa,EAAgB,MAAM;AACpB,MAAAC,EAAMvB,EAAM,QAAQ,GACpBqB,EAASZ,CAAgB;AAAA,IAC3B,CAAC,GAEDe,EAAiB,QAAQ,UAAU,MAAMH,EAASZ,CAAgB,CAAC;AAEnE,UAAMgB,IAAU,CAACC,MAAmB;AAClC,MAAAA,EAAG,eAAA,GACHxB,EAAM,cAAcwB,CAAE;AAAA,IACxB;2BAIEC,EA8BM,OAAA;AAAA,eA9BG;AAAA,MAAJ,KAAIjB;AAAA,MAAW,OAAM;AAAA,MAAc,aAASkB,EAAA,CAAA,MAAAA,EAAA,CAAA;AAAA,gBAAEC,EAAAX,CAAA,KAAAW,EAAAX,CAAA,EAAA,GAAAY,CAAA;AAAA,IAAA;MACjDC,EAGM,OAHNC,GAGM;AAAA,QAFJC,EAAmBC,CAAA;AAAA,QACnBD,EAAsBE,CAAA;AAAA,MAAA;MAExBJ,EAIM,OAAA;AAAA,iBAJG;AAAA,QAAJ,KAAInB;AAAA,QAAU,OAAM;AAAA,MAAA;QACvBqB,EAESG,GAAA,MAAA;AAAA,qBADC,MAAgC;AAAA,aAAxCC,EAAA,EAAA,GAAAV,EAA8HW,GAAA,MAAAC,EAAnGV,EAAAb,CAAA,GAAY,CAAvBwB,GAAKC,YAArBC,EAA8HC,GAAA;AAAA,cAApF,KAAKF;AAAA,cAAI,KAAAD;AAAA,cAAW,OAAKI,EAAEJ,EAAI,KAAK;AAAA,cAAG,iBAAWZ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAiB,MAAEC,EAAAA,MAAK,eAAgBD,CAAM;AAAA,YAAA;;;;;MAG7Hd,EAUM,OAAA;AAAA,iBAVG;AAAA,QAAJ,KAAIlB;AAAA,QAAU,OAAM;AAAA,QAAc,SAAOP,EAAA,KAAc;AAAA,QAAG,SAAAmB;AAAA,MAAA;QAClDrB,EAAA,SAAXiC,EAAA,GAAAV,EAKM,OALNoB,GAKM;AAAA,UAJJhB,EAGM,OAAA,MAAA;AAAA,YAFJE,EAAae,CAAA;AAAA,YACbpB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAA0B,aAArB,mBAAe,EAAA;AAAA,UAAA;;SAGxBM,EAAA,EAAA,GAAAV,EAESW,GAAA,MAAAC,EAFkBV,EAAAZ,CAAA,GAAS,CAApBgC,GAAKR,YAArBC,EAESQ,GAAA;AAAA,UAF8B,KAAKT;AAAA,UAAI,KAAAQ;AAAA,QAAA;qBACtC,MAAyB;AAAA,aAAjCZ,EAAA,EAAA,GAAAV,EAAqGW,GAAA,MAAAC,EAA9EU,EAAI,QAAZE,YAAfT,EAAqGU,GAAA;AAAA,cAAlE,KAAKD,EAAK,OAAO,WAAWV;AAAA,cAAI,MAAAU;AAAA,cAAa,OAAKP,EAAEO,EAAK,KAAK;AAAA,YAAA;;;;;MAGrGpB,EAEM,OAFNsB,GAEM;AAAA,SADJhB,EAAA,EAAA,GAAAV,EAAsIW,GAAA,MAAAC,EAAtGV,EAAAb,CAAA,GAAY,CAAvBwB,GAAKC,YAA1BC,EAAsIY,GAAA;AAAA,UAAvF,KAAKb;AAAA,UAAI,QAAQD;AAAA,UAAM,OAAKI,EAAEJ,EAAI,KAAK;AAAA,UAAG,iBAAWZ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAiB,MAAEC,EAAAA,MAAK,eAAgBD,CAAM;AAAA,QAAA;;MAEnIZ,EAKEsB,GAAA;AAAA,QAJC,QAAQ1B,EAAA3B,CAAA,EAAM,KAAK;AAAA,QACnB,eAAa2B,EAAA3B,CAAA,EAAM,KAAK;AAAA,QACxB,aAAW2B,EAAA3B,CAAA,EAAM,KAAK;AAAA,QACtB,mBAAe2B,EAAA3B,CAAA,EAAM;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"TableComponent.vue.js","sources":["../../../src/components/DataTable/TableComponent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport \"./assets/data-table-style.scss\";\nimport { ref, unref, onMounted, nextTick, watchPostEffect, watch, computed } from \"vue\";\nimport TdCell from \"./TdCell.vue\";\nimport type { TableSettings, TableData } from \"./types\";\nimport TableIcon from \"./assets/TableIcon.vue\";\nimport TrHead from \"./TrHead.vue\";\nimport ThCell from \"./ThCell.vue\";\nimport TrBody from \"./TrBody.vue\";\nimport ColumnCaret from \"./ColumnCaret.vue\";\nimport { useEventListener } from \"../../index\";\nimport { tapIf } from \"@milaboratories/helpers\";\nimport { useResize } from \"./composition/useResize\";\nimport RowsCommandMenu from \"./RowsCommandMenu.vue\";\nimport ColumnsCommandMenu from \"./ColumnsCommandMenu.vue\";\nimport TScroll from \"./TScroll.vue\";\nimport { createState } from \"./state\";\n\nconst emit = defineEmits<{\n (e: \"update:data\", value: TableData): void;\n (e: \"change:sort\", value: unknown): void;\n}>();\n\nconst props = defineProps<{\n settings: Readonly<TableSettings>;\n}>();\n\nconst state = createState(props);\n\nconst hasNoData = computed(() => state.data.rows.length === 0);\n\nconst tableBodyStyle = computed(() => ({\n height: hasNoData.value ? \"212px\" /* css value */ : state.data.bodyHeight + \"px\",\n}));\n\nwatch(state.data, (v) => emit(\"update:data\", v), { deep: true });\n\nwatch(props, () => updateDimensions);\n\nconst tableRef = ref<HTMLElement>();\nconst headRef = ref<HTMLElement>();\nconst bodyRef = ref<HTMLElement>();\n\nconst updateDimensions = () => {\n tapIf(bodyRef.value, (el) => {\n state.updateDimensions(el.getBoundingClientRect());\n });\n};\n\nconst tableColumns = state.tableColumns;\n\nconst tableRows = state.tableRows;\n\nconst { mouseDown } = useResize(state, tableRef);\n\nonMounted(() => {\n nextTick(updateDimensions);\n});\n\nwatchPostEffect(() => {\n unref(props.settings);\n nextTick(updateDimensions);\n});\n\nuseEventListener(window, \"resize\", () => nextTick(updateDimensions));\n\nconst onWheel = (ev: WheelEvent) => {\n ev.preventDefault();\n state.updateOffsets(ev);\n};\n</script>\n\n<template>\n <div ref=\"tableRef\" class=\"data-table\" @mousedown=\"mouseDown\">\n <div class=\"command-menu__container\">\n <RowsCommandMenu />\n <ColumnsCommandMenu />\n </div>\n <div ref=\"headRef\" class=\"table-head\">\n <TrHead>\n <ThCell\n v-for=\"(col, i) in tableColumns\"\n :key=\"i\"\n :col=\"col\"\n :style=\"col.style\"\n @change:sort=\"$emit('change:sort', $event)\"\n />\n </TrHead>\n </div>\n <div ref=\"bodyRef\" class=\"table-body\" :style=\"tableBodyStyle\" @wheel=\"onWheel\">\n <div v-if=\"hasNoData\" class=\"table-body__no-data\">\n <div>\n <TableIcon />\n <div>No Data To Show</div>\n </div>\n </div>\n <TrBody v-for=\"(row, i) in tableRows\" :key=\"i\" :row=\"row\">\n <TdCell\n v-for=\"cell in row.cells\"\n :key=\"cell.column.id + ':' + i\"\n :cell=\"cell\"\n :style=\"cell.style\"\n />\n </TrBody>\n </div>\n <div class=\"carets\">\n <ColumnCaret\n v-for=\"(col, i) in tableColumns\"\n :key=\"i\"\n :column=\"col\"\n :style=\"col.style\"\n @change:sort=\"$emit('change:sort', $event)\"\n />\n </div>\n <TScroll\n :offset=\"state.data.scrollTop\"\n :window-size=\"state.data.bodyHeight\"\n :data-size=\"state.data.dataHeight\"\n @change:offset=\"state.updateScrollTop\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","state","createState","hasNoData","computed","tableBodyStyle","watch","v","updateDimensions","tableRef","ref","headRef","bodyRef","tapIf","el","tableColumns","tableRows","mouseDown","useResize","onMounted","nextTick","watchPostEffect","unref","useEventListener","onWheel","ev","_createElementBlock","_cache","_unref","args","_createElementVNode","_hoisted_1","_createVNode","RowsCommandMenu","ColumnsCommandMenu","TrHead","_openBlock","_Fragment","_renderList","col","i","_createBlock","ThCell","_normalizeStyle","$event","$emit","_hoisted_2","TableIcon","row","TrBody","cell","TdCell","_hoisted_3","ColumnCaret","TScroll"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TdCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TdCell.vue"],"names":[],"mappings":"AAkHA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,SAAS,CAAC;AAI9C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;;;;AAsLF,wBAQG"}
1
+ {"version":3,"file":"TdCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TdCell.vue"],"names":[],"mappings":"AA+HA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,SAAS,CAAC;AAI9C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;;;;AAwLF,wBAQG"}
@@ -46,7 +46,9 @@ const B = ["^data-row-index"], T = {
46
46
  t.unselectColumn(e.cell.column.id);
47
47
  }
48
48
  })), n.length && K(o, n);
49
- }, x = h(), m = d(() => e.cell.column.component ? e.cell.column.component() : void 0);
49
+ }, x = h(), m = d(
50
+ () => e.cell.column.component ? e.cell.column.component() : void 0
51
+ );
50
52
  return (o, c) => (s(), f("div", {
51
53
  ref_key: "cellRef",
52
54
  ref: x,
@@ -1 +1 @@
1
- {"version":3,"file":"TdCell.vue.js","sources":["../../../src/components/DataTable/TdCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { tapIf } from '@milaboratories/helpers';\nimport { showContextMenu } from '../contextMenu';\nimport type { ContextOption } from '../contextMenu/types';\nimport { injectState } from './keys';\nimport type { Row, TableCell } from './types';\nimport { computed, ref } from 'vue';\nimport BaseCellComponent from './BaseCellComponent.vue';\n\nconst props = defineProps<{\n cell: TableCell;\n}>();\n\nconst state = injectState();\n\nconst valueTypeRef = computed(() => props.cell.column.valueType);\n\nconst onInput = (value: unknown) => {\n tapIf(state.settings.value.onUpdatedRow, (f) => {\n const row = props.cell.row;\n\n const dataRow = { ...row.dataRow, [props.cell.id]: value };\n\n f({ ...row, dataRow });\n });\n};\n\nconst onClick = (ev: MouseEvent) => {\n if (ev.metaKey) {\n state.selectRow(props.cell.row.primaryKey);\n }\n};\n\nconst onContextMenu = (ev: MouseEvent, row: Row) => {\n if (ev.type === 'contextmenu') {\n ev.preventDefault();\n } else {\n return;\n }\n\n const settings = state.settings ?? {};\n\n const options = [] as ContextOption[];\n\n const { onSelectedRows, onSelectedColumns } = settings.value;\n\n const isSelected = state.data.selectedRows.has(row.primaryKey);\n\n if (onSelectedRows && onSelectedRows.length) {\n if (isSelected) {\n options.push({\n text: 'Deselect row',\n cb() {\n state.data.selectedRows.delete(props.cell.row.primaryKey);\n },\n });\n } else {\n options.push({\n text: 'Select row',\n cb() {\n state.selectRow(props.cell.row.primaryKey);\n },\n });\n }\n }\n\n if (onSelectedColumns && onSelectedColumns.length) {\n options.push({\n text: 'Select column',\n cb() {\n state.selectColumn(props.cell.column.id);\n },\n });\n\n options.push({\n text: 'Unselect column',\n cb() {\n state.unselectColumn(props.cell.column.id);\n },\n });\n }\n\n if (!options.length) {\n return;\n }\n\n showContextMenu(ev, options);\n};\n\nconst cellRef = ref<HTMLElement>();\n\nconst CustomComponent = computed(() => (props.cell.column.component ? props.cell.column.component() : undefined));\n</script>\n\n<template>\n <div\n ref=\"cellRef\"\n class=\"td-cell\"\n :class=\"{ [cell.class]: true }\"\n :data-row-index.attr=\"cell.row.index\"\n @click=\"onClick\"\n @contextmenu=\"(ev) => onContextMenu(ev, cell.row)\"\n >\n <div v-if=\"cell.control\" class=\"control-cell\">{{ cell.row.index }}</div>\n <component :is=\"CustomComponent\" v-else-if=\"CustomComponent\" :model-value=\"cell.value\" @update:model-value=\"onInput\" />\n <BaseCellComponent v-else :model-value=\"cell.value\" :value-type=\"valueTypeRef\" :editable=\"cell.column.editable\" @update:model-value=\"onInput\" />\n </div>\n</template>\n"],"names":["props","__props","state","injectState","valueTypeRef","computed","onInput","value","tapIf","f","row","dataRow","onClick","ev","onContextMenu","settings","options","onSelectedRows","onSelectedColumns","isSelected","showContextMenu","cellRef","ref","CustomComponent","_createElementBlock","_normalizeClass","_cache","_openBlock","_hoisted_2","_toDisplayString","_createBlock","_resolveDynamicComponent","BaseCellComponent"],"mappings":";;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAIRC,IAAQC,EAAA,GAERC,IAAeC,EAAS,MAAML,EAAM,KAAK,OAAO,SAAS,GAEzDM,IAAU,CAACC,MAAmB;AAClC,MAAAC,EAAMN,EAAM,SAAS,MAAM,cAAc,CAACO,MAAM;AAC9C,cAAMC,IAAMV,EAAM,KAAK,KAEjBW,IAAU,EAAE,GAAGD,EAAI,SAAS,CAACV,EAAM,KAAK,EAAE,GAAGO,EAAA;AAEnD,QAAAE,EAAE,EAAE,GAAGC,GAAK,SAAAC,GAAS;AAAA,MACvB,CAAC;AAAA,IACH,GAEMC,IAAU,CAACC,MAAmB;AAClC,MAAIA,EAAG,WACLX,EAAM,UAAUF,EAAM,KAAK,IAAI,UAAU;AAAA,IAE7C,GAEMc,IAAgB,CAACD,GAAgBH,MAAa;AAClD,UAAIG,EAAG,SAAS;AACd,QAAAA,EAAG,eAAA;AAAA;AAEH;AAGF,YAAME,IAAWb,EAAM,YAAY,CAAA,GAE7Bc,IAAU,CAAA,GAEV,EAAE,gBAAAC,GAAgB,mBAAAC,EAAA,IAAsBH,EAAS,OAEjDI,IAAajB,EAAM,KAAK,aAAa,IAAIQ,EAAI,UAAU;AAoC7D,MAlCIO,KAAkBA,EAAe,WAC/BE,IACFH,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,KAAK,aAAa,OAAOF,EAAM,KAAK,IAAI,UAAU;AAAA,QAC1D;AAAA,MAAA,CACD,IAEDgB,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,UAAUF,EAAM,KAAK,IAAI,UAAU;AAAA,QAC3C;AAAA,MAAA,CACD,IAIDkB,KAAqBA,EAAkB,WACzCF,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,aAAaF,EAAM,KAAK,OAAO,EAAE;AAAA,QACzC;AAAA,MAAA,CACD,GAEDgB,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,eAAeF,EAAM,KAAK,OAAO,EAAE;AAAA,QAC3C;AAAA,MAAA,CACD,IAGEgB,EAAQ,UAIbI,EAAgBP,GAAIG,CAAO;AAAA,IAC7B,GAEMK,IAAUC,EAAA,GAEVC,IAAkBlB,EAAS,MAAOL,EAAM,KAAK,OAAO,YAAYA,EAAM,KAAK,OAAO,UAAA,IAAc,MAAU;2BAI9GwB,EAWM,OAAA;AAAA,eAVA;AAAA,MAAJ,KAAIH;AAAA,MACJ,OAAKI,EAAA,CAAC,WAAS,EAAA,CACJxB,EAAA,KAAK,KAAK,GAAA,GAAA,CAAA,CAAA;AAAA,MACpB,mBAAqBA,EAAA,KAAK,IAAI;AAAA,MAC9B,SAAAW;AAAA,MACA,eAAWc,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGb,MAAOC,EAAcD,GAAIZ,EAAA,KAAK,GAAG;AAAA,IAAA;MAErCA,EAAA,KAAK,WAAhB0B,KAAAH,EAAwE,OAAxEI,GAAwEC,EAAvB5B,OAAK,IAAI,KAAK,GAAA,CAAA,KACnBsB,EAAA,SAA5CI,KAAAG,EAAuHC,EAAvGR,EAAA,KAAe,GAAA;AAAA;QAA+B,eAAatB,EAAA,KAAK;AAAA,QAAQ,uBAAoBK;AAAA,MAAA,sCAC5GwB,EAAgJE,GAAA;AAAA;QAArH,eAAa/B,EAAA,KAAK;AAAA,QAAQ,cAAYG,EAAA;AAAA,QAAe,UAAUH,EAAA,KAAK,OAAO;AAAA,QAAW,uBAAoBK;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"TdCell.vue.js","sources":["../../../src/components/DataTable/TdCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { tapIf } from \"@milaboratories/helpers\";\nimport { showContextMenu } from \"../contextMenu\";\nimport type { ContextOption } from \"../contextMenu/types\";\nimport { injectState } from \"./keys\";\nimport type { Row, TableCell } from \"./types\";\nimport { computed, ref } from \"vue\";\nimport BaseCellComponent from \"./BaseCellComponent.vue\";\n\nconst props = defineProps<{\n cell: TableCell;\n}>();\n\nconst state = injectState();\n\nconst valueTypeRef = computed(() => props.cell.column.valueType);\n\nconst onInput = (value: unknown) => {\n tapIf(state.settings.value.onUpdatedRow, (f) => {\n const row = props.cell.row;\n\n const dataRow = { ...row.dataRow, [props.cell.id]: value };\n\n f({ ...row, dataRow });\n });\n};\n\nconst onClick = (ev: MouseEvent) => {\n if (ev.metaKey) {\n state.selectRow(props.cell.row.primaryKey);\n }\n};\n\nconst onContextMenu = (ev: MouseEvent, row: Row) => {\n if (ev.type === \"contextmenu\") {\n ev.preventDefault();\n } else {\n return;\n }\n\n const settings = state.settings ?? {};\n\n const options = [] as ContextOption[];\n\n const { onSelectedRows, onSelectedColumns } = settings.value;\n\n const isSelected = state.data.selectedRows.has(row.primaryKey);\n\n if (onSelectedRows && onSelectedRows.length) {\n if (isSelected) {\n options.push({\n text: \"Deselect row\",\n cb() {\n state.data.selectedRows.delete(props.cell.row.primaryKey);\n },\n });\n } else {\n options.push({\n text: \"Select row\",\n cb() {\n state.selectRow(props.cell.row.primaryKey);\n },\n });\n }\n }\n\n if (onSelectedColumns && onSelectedColumns.length) {\n options.push({\n text: \"Select column\",\n cb() {\n state.selectColumn(props.cell.column.id);\n },\n });\n\n options.push({\n text: \"Unselect column\",\n cb() {\n state.unselectColumn(props.cell.column.id);\n },\n });\n }\n\n if (!options.length) {\n return;\n }\n\n showContextMenu(ev, options);\n};\n\nconst cellRef = ref<HTMLElement>();\n\nconst CustomComponent = computed(() =>\n props.cell.column.component ? props.cell.column.component() : undefined,\n);\n</script>\n\n<template>\n <div\n ref=\"cellRef\"\n class=\"td-cell\"\n :class=\"{ [cell.class]: true }\"\n :data-row-index.attr=\"cell.row.index\"\n @click=\"onClick\"\n @contextmenu=\"(ev) => onContextMenu(ev, cell.row)\"\n >\n <div v-if=\"cell.control\" class=\"control-cell\">{{ cell.row.index }}</div>\n <component\n :is=\"CustomComponent\"\n v-else-if=\"CustomComponent\"\n :model-value=\"cell.value\"\n @update:model-value=\"onInput\"\n />\n <BaseCellComponent\n v-else\n :model-value=\"cell.value\"\n :value-type=\"valueTypeRef\"\n :editable=\"cell.column.editable\"\n @update:model-value=\"onInput\"\n />\n </div>\n</template>\n"],"names":["props","__props","state","injectState","valueTypeRef","computed","onInput","value","tapIf","f","row","dataRow","onClick","ev","onContextMenu","settings","options","onSelectedRows","onSelectedColumns","isSelected","showContextMenu","cellRef","ref","CustomComponent","_createElementBlock","_normalizeClass","_cache","_openBlock","_hoisted_2","_toDisplayString","_createBlock","_resolveDynamicComponent","BaseCellComponent"],"mappings":";;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAIRC,IAAQC,EAAA,GAERC,IAAeC,EAAS,MAAML,EAAM,KAAK,OAAO,SAAS,GAEzDM,IAAU,CAACC,MAAmB;AAClC,MAAAC,EAAMN,EAAM,SAAS,MAAM,cAAc,CAACO,MAAM;AAC9C,cAAMC,IAAMV,EAAM,KAAK,KAEjBW,IAAU,EAAE,GAAGD,EAAI,SAAS,CAACV,EAAM,KAAK,EAAE,GAAGO,EAAA;AAEnD,QAAAE,EAAE,EAAE,GAAGC,GAAK,SAAAC,GAAS;AAAA,MACvB,CAAC;AAAA,IACH,GAEMC,IAAU,CAACC,MAAmB;AAClC,MAAIA,EAAG,WACLX,EAAM,UAAUF,EAAM,KAAK,IAAI,UAAU;AAAA,IAE7C,GAEMc,IAAgB,CAACD,GAAgBH,MAAa;AAClD,UAAIG,EAAG,SAAS;AACd,QAAAA,EAAG,eAAA;AAAA;AAEH;AAGF,YAAME,IAAWb,EAAM,YAAY,CAAA,GAE7Bc,IAAU,CAAA,GAEV,EAAE,gBAAAC,GAAgB,mBAAAC,EAAA,IAAsBH,EAAS,OAEjDI,IAAajB,EAAM,KAAK,aAAa,IAAIQ,EAAI,UAAU;AAoC7D,MAlCIO,KAAkBA,EAAe,WAC/BE,IACFH,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,KAAK,aAAa,OAAOF,EAAM,KAAK,IAAI,UAAU;AAAA,QAC1D;AAAA,MAAA,CACD,IAEDgB,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,UAAUF,EAAM,KAAK,IAAI,UAAU;AAAA,QAC3C;AAAA,MAAA,CACD,IAIDkB,KAAqBA,EAAkB,WACzCF,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,aAAaF,EAAM,KAAK,OAAO,EAAE;AAAA,QACzC;AAAA,MAAA,CACD,GAEDgB,EAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,KAAK;AACH,UAAAd,EAAM,eAAeF,EAAM,KAAK,OAAO,EAAE;AAAA,QAC3C;AAAA,MAAA,CACD,IAGEgB,EAAQ,UAIbI,EAAgBP,GAAIG,CAAO;AAAA,IAC7B,GAEMK,IAAUC,EAAA,GAEVC,IAAkBlB;AAAA,MAAS,MAC/BL,EAAM,KAAK,OAAO,YAAYA,EAAM,KAAK,OAAO,cAAc;AAAA,IAAA;2BAK9DwB,EAsBM,OAAA;AAAA,eArBA;AAAA,MAAJ,KAAIH;AAAA,MACJ,OAAKI,EAAA,CAAC,WAAS,EAAA,CACJxB,EAAA,KAAK,KAAK,GAAA,GAAA,CAAA,CAAA;AAAA,MACpB,mBAAqBA,EAAA,KAAK,IAAI;AAAA,MAC9B,SAAAW;AAAA,MACA,eAAWc,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGb,MAAOC,EAAcD,GAAIZ,EAAA,KAAK,GAAG;AAAA,IAAA;MAErCA,EAAA,KAAK,WAAhB0B,KAAAH,EAAwE,OAAxEI,GAAwEC,EAAvB5B,OAAK,IAAI,KAAK,GAAA,CAAA,KAGlDsB,EAAA,SAFbI,KAAAG,EAKEC,EAJKR,EAAA,KAAe,GAAA;AAAA;QAEnB,eAAatB,EAAA,KAAK;AAAA,QAClB,uBAAoBK;AAAA,MAAA,sCAEvBwB,EAMEE,GAAA;AAAA;QAJC,eAAa/B,EAAA,KAAK;AAAA,QAClB,cAAYG,EAAA;AAAA,QACZ,UAAUH,EAAA,KAAK,OAAO;AAAA,QACtB,uBAAoBK;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/ThCell.vue"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,kBAAkB,CAAC;CACzB,CAAC;;;;;;;;;;AA+EF,wBAQG"}
1
+ {"version":3,"file":"ThCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/ThCell.vue"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,kBAAkB,CAAC;CACzB,CAAC;;;;;;;;;;AA+EF,wBAQG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThCell.vue.js","sources":["../../../src/components/DataTable/ThCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { showContextMenu } from '../contextMenu';\nimport type { ContextOption } from '../contextMenu/types';\nimport { rotate } from './domain';\nimport type { ColumnSpecSettings } from './types';\n\nconst emit = defineEmits(['delete:column', 'expand:column', 'change:sort']);\n\ndefineProps<{\n col: ColumnSpecSettings;\n}>();\n\nfunction onContextMenu(ev: MouseEvent) {\n ev.preventDefault();\n\n const options = [] as ContextOption[]; // @TODO\n\n if (!options.length) {\n return;\n }\n\n showContextMenu(ev, options);\n}\n\nfunction onSort(col: ColumnSpecSettings) {\n const v = col.sort?.direction ?? 'DESC';\n emit('change:sort', {\n colId: col.id,\n direction: rotate(v, ['DESC', 'ASC']),\n });\n}\n</script>\n\n<template>\n <div class=\"cell th-cell\" :data-col-id.attr=\"col.id\" :class=\"{ 'justify-center': col.justify, frozen: col.frozen }\" @contextmenu=\"onContextMenu\">\n <div v-if=\"col.valueType\" :class=\"col.valueType\" />\n {{ col.label }}\n <div v-if=\"col.sort\" class=\"sort\" :class=\"col.sort.direction\" @click.stop=\"() => onSort(col)\" />\n </div>\n</template>\n"],"names":["emit","__emit","onContextMenu","ev","options","showContextMenu","onSort","col","v","_a","rotate","_createElementBlock","_normalizeClass","__props","_createTextVNode","_toDisplayString","_cache","_withModifiers"],"mappings":";;;;;;;;;;AAMA,UAAMA,IAAOC;AAMb,aAASC,EAAcC,GAAgB;AACrC,MAAAA,EAAG,eAAA;AAEH,YAAMC,IAAU,CAAA;AAEhB,MAAKA,EAAQ,UAIbC,EAAgBF,GAAIC,CAAO;AAAA,IAC7B;AAEA,aAASE,EAAOC,GAAyB;;AACvC,YAAMC,MAAIC,IAAAF,EAAI,SAAJ,gBAAAE,EAAU,cAAa;AACjC,MAAAT,EAAK,eAAe;AAAA,QAClB,OAAOO,EAAI;AAAA,QACX,WAAWG,EAAOF,GAAG,CAAC,QAAQ,KAAK,CAAC;AAAA,MAAA,CACrC;AAAA,IACH;2BAIEG,EAIM,OAAA;AAAA,MAJD,OAAKC,EAAA,CAAC,gBAAc,EAAA,kBAAwDC,EAAA,IAAI,SAAO,QAAUA,EAAA,IAAI,OAAA,CAAM,CAAA;AAAA,MAArF,gBAAkBA,EAAA,IAAI;AAAA,MAAoE,eAAaX;AAAA,IAAA;MACrHW,EAAA,IAAI,kBAAfF,EAAmD,OAAA;AAAA;QAAxB,OAAKC,EAAEC,EAAA,IAAI,SAAS;AAAA,MAAA;MAAIC,EAAA,MACnDC,EAAGF,EAAA,IAAI,KAAK,IAAG,KACf,CAAA;AAAA,MAAWA,EAAA,IAAI,aAAfF,EAAgG,OAAA;AAAA;QAA3E,UAAM,QAAeE,MAAI,KAAK,SAAS,CAAA;AAAA,QAAG,SAAKG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA,MAAaX,EAAOO,EAAA,GAAG,GAAA,CAAA,MAAA,CAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"ThCell.vue.js","sources":["../../../src/components/DataTable/ThCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { showContextMenu } from \"../contextMenu\";\nimport type { ContextOption } from \"../contextMenu/types\";\nimport { rotate } from \"./domain\";\nimport type { ColumnSpecSettings } from \"./types\";\n\nconst emit = defineEmits([\"delete:column\", \"expand:column\", \"change:sort\"]);\n\ndefineProps<{\n col: ColumnSpecSettings;\n}>();\n\nfunction onContextMenu(ev: MouseEvent) {\n ev.preventDefault();\n\n const options = [] as ContextOption[]; // @TODO\n\n if (!options.length) {\n return;\n }\n\n showContextMenu(ev, options);\n}\n\nfunction onSort(col: ColumnSpecSettings) {\n const v = col.sort?.direction ?? \"DESC\";\n emit(\"change:sort\", {\n colId: col.id,\n direction: rotate(v, [\"DESC\", \"ASC\"]),\n });\n}\n</script>\n\n<template>\n <div\n class=\"cell th-cell\"\n :data-col-id.attr=\"col.id\"\n :class=\"{ 'justify-center': col.justify, frozen: col.frozen }\"\n @contextmenu=\"onContextMenu\"\n >\n <div v-if=\"col.valueType\" :class=\"col.valueType\" />\n {{ col.label }}\n <div v-if=\"col.sort\" class=\"sort\" :class=\"col.sort.direction\" @click.stop=\"() => onSort(col)\" />\n </div>\n</template>\n"],"names":["emit","__emit","onContextMenu","ev","options","showContextMenu","onSort","col","v","_a","rotate","_createElementBlock","_normalizeClass","__props","_createTextVNode","_toDisplayString","_cache","_withModifiers"],"mappings":";;;;;;;;;;AAMA,UAAMA,IAAOC;AAMb,aAASC,EAAcC,GAAgB;AACrC,MAAAA,EAAG,eAAA;AAEH,YAAMC,IAAU,CAAA;AAEhB,MAAKA,EAAQ,UAIbC,EAAgBF,GAAIC,CAAO;AAAA,IAC7B;AAEA,aAASE,EAAOC,GAAyB;;AACvC,YAAMC,MAAIC,IAAAF,EAAI,SAAJ,gBAAAE,EAAU,cAAa;AACjC,MAAAT,EAAK,eAAe;AAAA,QAClB,OAAOO,EAAI;AAAA,QACX,WAAWG,EAAOF,GAAG,CAAC,QAAQ,KAAK,CAAC;AAAA,MAAA,CACrC;AAAA,IACH;2BAIEG,EASM,OAAA;AAAA,MARJ,OAAKC,EAAA,CAAC,gBAAc,EAAA,kBAEQC,EAAA,IAAI,SAAO,QAAUA,EAAA,IAAI,OAAA,CAAM,CAAA;AAAA,MAD1D,gBAAkBA,EAAA,IAAI;AAAA,MAEtB,eAAaX;AAAA,IAAA;MAEHW,EAAA,IAAI,kBAAfF,EAAmD,OAAA;AAAA;QAAxB,OAAKC,EAAEC,EAAA,IAAI,SAAS;AAAA,MAAA;MAAIC,EAAA,MACnDC,EAAGF,EAAA,IAAI,KAAK,IAAG,KACf,CAAA;AAAA,MAAWA,EAAA,IAAI,aAAfF,EAAgG,OAAA;AAAA;QAA3E,UAAM,QAAeE,MAAI,KAAK,SAAS,CAAA;AAAA,QAAG,SAAKG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA,MAAaX,EAAOO,EAAA,GAAG,GAAA,CAAA,MAAA,CAAA;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrBody.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TrBody.vue"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAcF,iBAAS,cAAc;WAgCT,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;kBAQnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"TrBody.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/TrBody.vue"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAcF,iBAAS,cAAc;WAgCT,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;kBAQnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrBody.vue.js","sources":["../../../src/components/DataTable/TrBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, nextTick } from 'vue';\nimport type { TableRow } from './types';\nimport { tapIf } from '@milaboratories/helpers';\n\ndefineProps<{\n row: TableRow;\n}>();\n\nconst trRef = ref<HTMLElement>();\n\n// hook to prevent weird left scroll after child repaint (@TODO)\nconst onScroll = () => {\n nextTick().then(() => {\n tapIf(trRef.value, (el) => (el.scrollLeft = 0));\n });\n};\n</script>\n\n<template>\n <div ref=\"trRef\" class=\"tr-body\" scroll=\"no\" :style=\"row.style\" :class=\"{ selected: row.selected }\" @scroll=\"onScroll\">\n <slot />\n </div>\n</template>\n"],"names":["trRef","ref","onScroll","nextTick","tapIf","el","_createElementBlock","_normalizeClass","__props","_normalizeStyle","_renderSlot","_ctx"],"mappings":";;;;;;;;AASA,UAAMA,IAAQC,EAAA,GAGRC,IAAW,MAAM;AACrB,MAAAC,EAAA,EAAW,KAAK,MAAM;AACpB,QAAAC,EAAMJ,EAAM,OAAO,CAACK,MAAQA,EAAG,aAAa,CAAE;AAAA,MAChD,CAAC;AAAA,IACH;2BAIEC,EAEM,OAAA;AAAA,eAFG;AAAA,MAAJ,KAAIN;AAAA,MAAQ,OAAKO,EAAA,CAAC,WAAS,EAAA,UAAoDC,EAAA,IAAI,SAAA,CAAQ,CAAA;AAAA,MAA/D,QAAO;AAAA,MAAM,OAAKC,EAAED,EAAA,IAAI,KAAK;AAAA,MAAuC,UAAAN;AAAA,IAAA;MACnGQ,EAAQC,EAAA,QAAA,SAAA;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"TrBody.vue.js","sources":["../../../src/components/DataTable/TrBody.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, nextTick } from \"vue\";\nimport type { TableRow } from \"./types\";\nimport { tapIf } from \"@milaboratories/helpers\";\n\ndefineProps<{\n row: TableRow;\n}>();\n\nconst trRef = ref<HTMLElement>();\n\n// hook to prevent weird left scroll after child repaint (@TODO)\nconst onScroll = () => {\n nextTick().then(() => {\n tapIf(trRef.value, (el) => (el.scrollLeft = 0));\n });\n};\n</script>\n\n<template>\n <div\n ref=\"trRef\"\n class=\"tr-body\"\n scroll=\"no\"\n :style=\"row.style\"\n :class=\"{ selected: row.selected }\"\n @scroll=\"onScroll\"\n >\n <slot />\n </div>\n</template>\n"],"names":["trRef","ref","onScroll","nextTick","tapIf","el","_createElementBlock","_normalizeClass","__props","_normalizeStyle","_renderSlot","_ctx"],"mappings":";;;;;;;;AASA,UAAMA,IAAQC,EAAA,GAGRC,IAAW,MAAM;AACrB,MAAAC,EAAA,EAAW,KAAK,MAAM;AACpB,QAAAC,EAAMJ,EAAM,OAAO,CAACK,MAAQA,EAAG,aAAa,CAAE;AAAA,MAChD,CAAC;AAAA,IACH;2BAIEC,EASM,OAAA;AAAA,eARA;AAAA,MAAJ,KAAIN;AAAA,MACJ,OAAKO,EAAA,CAAC,WAAS,EAAA,UAGKC,EAAA,IAAI,SAAA,CAAQ,CAAA;AAAA,MAFhC,QAAO;AAAA,MACN,OAAKC,EAAED,EAAA,IAAI,KAAK;AAAA,MAEhB,UAAAN;AAAA,IAAA;MAEDQ,EAAQC,EAAA,QAAA,SAAA;AAAA,IAAA;;;"}
@@ -1,5 +1,5 @@
1
1
  import { DataRow, Row } from '../types';
2
- import type * as Types from '../types';
2
+ import type * as Types from "../types";
3
3
  export declare class AsyncData<D extends DataRow> implements Types.DataSource {
4
4
  readonly api: Types.ExternalApi<D>;
5
5
  readonly rowHeight: number;
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncData.js","sources":["../../../../src/components/DataTable/adapters/AsyncData.ts"],"sourcesContent":["import type * as Types from '../types';\nimport type { DataRow, Row } from '../types';\nimport { GAP } from '../constants';\nimport { clamp } from '@milaboratories/helpers';\n\nexport class AsyncData<D extends DataRow> implements Types.DataSource {\n constructor(\n public readonly api: Types.ExternalApi<D>,\n public readonly rowHeight: number,\n public readonly resolvePrimaryKey: Types.ResolvePrimaryKey,\n ) {}\n\n get height() {\n return this.rowHeight + GAP;\n }\n\n async getHeight(): Promise<number> {\n return (await this.api.count()) * this.height;\n }\n\n async getRows(scrollTop: number, bodyHeight: number): Promise<Row[]> {\n const offset = clamp(Math.floor(scrollTop / this.height), 0, Number.POSITIVE_INFINITY);\n const limit = Math.ceil(bodyHeight + 40 / this.height); // @TODO safe window\n const rows = await this.api.query({ offset, limit });\n return rows.map<Types.Row>((dataRow, index) => ({\n dataRow,\n index: offset + index,\n primaryKey: this.resolvePrimaryKey(dataRow, offset + index) as Types.PrimaryKey,\n offset: (offset + index) * (this.rowHeight + GAP),\n height: this.rowHeight,\n }));\n }\n}\n"],"names":["AsyncData","api","rowHeight","resolvePrimaryKey","GAP","scrollTop","bodyHeight","offset","clamp","limit","dataRow","index"],"mappings":";;AAKO,MAAMA,EAAyD;AAAA,EACpE,YACkBC,GACAC,GACAC,GAChB;AAHgB,SAAA,MAAAF,GACA,KAAA,YAAAC,GACA,KAAA,oBAAAC;AAAA,EACf;AAAA,EAEH,IAAI,SAAS;AACX,WAAO,KAAK,YAAYC;AAAA,EAC1B;AAAA,EAEA,MAAM,YAA6B;AACjC,WAAQ,MAAM,KAAK,IAAI,MAAA,IAAW,KAAK;AAAA,EACzC;AAAA,EAEA,MAAM,QAAQC,GAAmBC,GAAoC;AACnE,UAAMC,IAASC,EAAM,KAAK,MAAMH,IAAY,KAAK,MAAM,GAAG,GAAG,OAAO,iBAAiB,GAC/EI,IAAQ,KAAK,KAAKH,IAAa,KAAK,KAAK,MAAM;AAErD,YADa,MAAM,KAAK,IAAI,MAAM,EAAE,QAAAC,GAAQ,OAAAE,GAAO,GACvC,IAAe,CAACC,GAASC,OAAW;AAAA,MAC9C,SAAAD;AAAA,MACA,OAAOH,IAASI;AAAA,MAChB,YAAY,KAAK,kBAAkBD,GAASH,IAASI,CAAK;AAAA,MAC1D,SAASJ,IAASI,MAAU,KAAK,YAAYP;AAAA,MAC7C,QAAQ,KAAK;AAAA,IAAA,EACb;AAAA,EACJ;AACF;"}
1
+ {"version":3,"file":"AsyncData.js","sources":["../../../../src/components/DataTable/adapters/AsyncData.ts"],"sourcesContent":["import type * as Types from \"../types\";\nimport type { DataRow, Row } from \"../types\";\nimport { GAP } from \"../constants\";\nimport { clamp } from \"@milaboratories/helpers\";\n\nexport class AsyncData<D extends DataRow> implements Types.DataSource {\n constructor(\n public readonly api: Types.ExternalApi<D>,\n public readonly rowHeight: number,\n public readonly resolvePrimaryKey: Types.ResolvePrimaryKey,\n ) {}\n\n get height() {\n return this.rowHeight + GAP;\n }\n\n async getHeight(): Promise<number> {\n return (await this.api.count()) * this.height;\n }\n\n async getRows(scrollTop: number, bodyHeight: number): Promise<Row[]> {\n const offset = clamp(Math.floor(scrollTop / this.height), 0, Number.POSITIVE_INFINITY);\n const limit = Math.ceil(bodyHeight + 40 / this.height); // @TODO safe window\n const rows = await this.api.query({ offset, limit });\n return rows.map<Types.Row>((dataRow, index) => ({\n dataRow,\n index: offset + index,\n primaryKey: this.resolvePrimaryKey(dataRow, offset + index) as Types.PrimaryKey,\n offset: (offset + index) * (this.rowHeight + GAP),\n height: this.rowHeight,\n }));\n }\n}\n"],"names":["AsyncData","api","rowHeight","resolvePrimaryKey","GAP","scrollTop","bodyHeight","offset","clamp","limit","dataRow","index"],"mappings":";;AAKO,MAAMA,EAAyD;AAAA,EACpE,YACkBC,GACAC,GACAC,GAChB;AAHgB,SAAA,MAAAF,GACA,KAAA,YAAAC,GACA,KAAA,oBAAAC;AAAA,EACf;AAAA,EAEH,IAAI,SAAS;AACX,WAAO,KAAK,YAAYC;AAAA,EAC1B;AAAA,EAEA,MAAM,YAA6B;AACjC,WAAQ,MAAM,KAAK,IAAI,MAAA,IAAW,KAAK;AAAA,EACzC;AAAA,EAEA,MAAM,QAAQC,GAAmBC,GAAoC;AACnE,UAAMC,IAASC,EAAM,KAAK,MAAMH,IAAY,KAAK,MAAM,GAAG,GAAG,OAAO,iBAAiB,GAC/EI,IAAQ,KAAK,KAAKH,IAAa,KAAK,KAAK,MAAM;AAErD,YADa,MAAM,KAAK,IAAI,MAAM,EAAE,QAAAC,GAAQ,OAAAE,GAAO,GACvC,IAAe,CAACC,GAASC,OAAW;AAAA,MAC9C,SAAAD;AAAA,MACA,OAAOH,IAASI;AAAA,MAChB,YAAY,KAAK,kBAAkBD,GAASH,IAASI,CAAK;AAAA,MAC1D,SAASJ,IAASI,MAAU,KAAK,YAAYP;AAAA,MAC7C,QAAQ,KAAK;AAAA,IAAA,EACb;AAAA,EACJ;AACF;"}
@@ -1,5 +1,5 @@
1
1
  import { DataRow, ResolvePrimaryKey, Row, ResolveRowHeight } from '../types';
2
- import type * as Types from '../types';
2
+ import type * as Types from "../types";
3
3
  export declare class RawData<D extends DataRow = DataRow> implements Types.DataSource {
4
4
  readonly datum: D[];
5
5
  readonly resolveHeight: ResolveRowHeight<D>;
@@ -1 +1 @@
1
- {"version":3,"file":"RawData.js","sources":["../../../../src/components/DataTable/adapters/RawData.ts"],"sourcesContent":["import type * as Types from '../types';\nimport type { DataRow, ResolvePrimaryKey, Row, ResolveRowHeight } from '../types';\nimport { GAP } from '../constants';\nimport { sliceBy } from '../domain';\nimport { notEmpty } from '@milaboratories/helpers';\n\nconst rowsStore = new WeakMap<WeakKey, Row[]>();\n\nexport class RawData<D extends DataRow = DataRow> implements Types.DataSource {\n private dataHeight: number;\n\n constructor(\n public readonly datum: D[],\n public readonly resolveHeight: ResolveRowHeight<D>,\n public readonly resolvePrimaryKey: ResolvePrimaryKey<D>,\n ) {\n const offsets = datum.reduce(\n (dict, it, index) => {\n dict.indices.set(index, dict.total);\n dict.total += this.resolveHeight(it, index) + GAP;\n return dict;\n },\n {\n total: 0,\n indices: new Map<number, number>(),\n },\n );\n\n this.dataHeight = offsets.total;\n\n const rows = datum.map((dataRow, index) => ({\n dataRow,\n index,\n primaryKey: this.resolvePrimaryKey(dataRow, index) as Types.PrimaryKey,\n offset: notEmpty(offsets.indices.get(index)),\n height: this.resolveHeight(dataRow, index),\n }));\n\n rowsStore.set(this, rows);\n }\n\n get rows(): Row<D>[] {\n return rowsStore.get(this)! as Row<D>[];\n }\n\n async getHeight() {\n return this.dataHeight;\n }\n\n async getRows(scrollTop: number, bodyHeight: number): Promise<Row<D>[]> {\n return sliceBy(this.rows, (it) => {\n const offset = it.offset;\n return scrollTop < offset + it.height && offset < bodyHeight + scrollTop;\n });\n }\n}\n"],"names":["rowsStore","RawData","datum","resolveHeight","resolvePrimaryKey","__publicField","offsets","dict","it","index","GAP","rows","dataRow","notEmpty","scrollTop","bodyHeight","sliceBy","offset"],"mappings":";;;;;;AAMA,MAAMA,wBAAgB,QAAA;AAEf,MAAMC,EAAiE;AAAA,EAG5E,YACkBC,GACAC,GACAC,GAChB;AANM,IAAAC,EAAA;AAGU,SAAA,QAAAH,GACA,KAAA,gBAAAC,GACA,KAAA,oBAAAC;AAEhB,UAAME,IAAUJ,EAAM;AAAA,MACpB,CAACK,GAAMC,GAAIC,OACTF,EAAK,QAAQ,IAAIE,GAAOF,EAAK,KAAK,GAClCA,EAAK,SAAS,KAAK,cAAcC,GAAIC,CAAK,IAAIC,GACvCH;AAAA,MAET;AAAA,QACE,OAAO;AAAA,QACP,6BAAa,IAAA;AAAA,MAAoB;AAAA,IACnC;AAGF,SAAK,aAAaD,EAAQ;AAE1B,UAAMK,IAAOT,EAAM,IAAI,CAACU,GAASH,OAAW;AAAA,MAC1C,SAAAG;AAAA,MACA,OAAAH;AAAA,MACA,YAAY,KAAK,kBAAkBG,GAASH,CAAK;AAAA,MACjD,QAAQI,EAASP,EAAQ,QAAQ,IAAIG,CAAK,CAAC;AAAA,MAC3C,QAAQ,KAAK,cAAcG,GAASH,CAAK;AAAA,IAAA,EACzC;AAEF,IAAAT,EAAU,IAAI,MAAMW,CAAI;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAiB;AACnB,WAAOX,EAAU,IAAI,IAAI;AAAA,EAC3B;AAAA,EAEA,MAAM,YAAY;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,QAAQc,GAAmBC,GAAuC;AACtE,WAAOC,EAAQ,KAAK,MAAM,CAACR,MAAO;AAChC,YAAMS,IAAST,EAAG;AAClB,aAAOM,IAAYG,IAAST,EAAG,UAAUS,IAASF,IAAaD;AAAA,IACjE,CAAC;AAAA,EACH;AACF;"}
1
+ {"version":3,"file":"RawData.js","sources":["../../../../src/components/DataTable/adapters/RawData.ts"],"sourcesContent":["import type * as Types from \"../types\";\nimport type { DataRow, ResolvePrimaryKey, Row, ResolveRowHeight } from \"../types\";\nimport { GAP } from \"../constants\";\nimport { sliceBy } from \"../domain\";\nimport { notEmpty } from \"@milaboratories/helpers\";\n\nconst rowsStore = new WeakMap<WeakKey, Row[]>();\n\nexport class RawData<D extends DataRow = DataRow> implements Types.DataSource {\n private dataHeight: number;\n\n constructor(\n public readonly datum: D[],\n public readonly resolveHeight: ResolveRowHeight<D>,\n public readonly resolvePrimaryKey: ResolvePrimaryKey<D>,\n ) {\n const offsets = datum.reduce(\n (dict, it, index) => {\n dict.indices.set(index, dict.total);\n dict.total += this.resolveHeight(it, index) + GAP;\n return dict;\n },\n {\n total: 0,\n indices: new Map<number, number>(),\n },\n );\n\n this.dataHeight = offsets.total;\n\n const rows = datum.map((dataRow, index) => ({\n dataRow,\n index,\n primaryKey: this.resolvePrimaryKey(dataRow, index) as Types.PrimaryKey,\n offset: notEmpty(offsets.indices.get(index)),\n height: this.resolveHeight(dataRow, index),\n }));\n\n rowsStore.set(this, rows);\n }\n\n get rows(): Row<D>[] {\n return rowsStore.get(this)! as Row<D>[];\n }\n\n async getHeight() {\n return this.dataHeight;\n }\n\n async getRows(scrollTop: number, bodyHeight: number): Promise<Row<D>[]> {\n return sliceBy(this.rows, (it) => {\n const offset = it.offset;\n return scrollTop < offset + it.height && offset < bodyHeight + scrollTop;\n });\n }\n}\n"],"names":["rowsStore","RawData","datum","resolveHeight","resolvePrimaryKey","__publicField","offsets","dict","it","index","GAP","rows","dataRow","notEmpty","scrollTop","bodyHeight","sliceBy","offset"],"mappings":";;;;;;AAMA,MAAMA,wBAAgB,QAAA;AAEf,MAAMC,EAAiE;AAAA,EAG5E,YACkBC,GACAC,GACAC,GAChB;AANM,IAAAC,EAAA;AAGU,SAAA,QAAAH,GACA,KAAA,gBAAAC,GACA,KAAA,oBAAAC;AAEhB,UAAME,IAAUJ,EAAM;AAAA,MACpB,CAACK,GAAMC,GAAIC,OACTF,EAAK,QAAQ,IAAIE,GAAOF,EAAK,KAAK,GAClCA,EAAK,SAAS,KAAK,cAAcC,GAAIC,CAAK,IAAIC,GACvCH;AAAA,MAET;AAAA,QACE,OAAO;AAAA,QACP,6BAAa,IAAA;AAAA,MAAoB;AAAA,IACnC;AAGF,SAAK,aAAaD,EAAQ;AAE1B,UAAMK,IAAOT,EAAM,IAAI,CAACU,GAASH,OAAW;AAAA,MAC1C,SAAAG;AAAA,MACA,OAAAH;AAAA,MACA,YAAY,KAAK,kBAAkBG,GAASH,CAAK;AAAA,MACjD,QAAQI,EAASP,EAAQ,QAAQ,IAAIG,CAAK,CAAC;AAAA,MAC3C,QAAQ,KAAK,cAAcG,GAASH,CAAK;AAAA,IAAA,EACzC;AAEF,IAAAT,EAAU,IAAI,MAAMW,CAAI;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAiB;AACnB,WAAOX,EAAU,IAAI,IAAI;AAAA,EAC3B;AAAA,EAEA,MAAM,YAAY;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,QAAQc,GAAmBC,GAAuC;AACtE,WAAOC,EAAQ,KAAK,MAAM,CAACR,MAAO;AAChC,YAAMS,IAAST,EAAG;AAClB,aAAOM,IAAYG,IAAST,EAAG,UAAUS,IAASF,IAAaD;AAAA,IACjE,CAAC;AAAA,EACH;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableIcon.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/DataTable/assets/TableIcon.vue"],"names":[],"mappings":";AAgEA,wBAMG"}
1
+ {"version":3,"file":"TableIcon.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/DataTable/assets/TableIcon.vue"],"names":[],"mappings":";AAqEA,wBAMG"}