@milaboratories/uikit 2.10.15 → 2.10.16

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 (749) 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 +190 -190
  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 +9 -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.map +1 -1
  28. package/dist/components/DataTable/TdCell.vue.d.ts.map +1 -1
  29. package/dist/components/DataTable/TdCell.vue.js +3 -1
  30. package/dist/components/DataTable/TdCell.vue.js.map +1 -1
  31. package/dist/components/DataTable/ThCell.vue.d.ts.map +1 -1
  32. package/dist/components/DataTable/ThCell.vue.js.map +1 -1
  33. package/dist/components/DataTable/TrBody.vue.d.ts.map +1 -1
  34. package/dist/components/DataTable/TrBody.vue.js.map +1 -1
  35. package/dist/components/DataTable/adapters/AsyncData.d.ts +1 -1
  36. package/dist/components/DataTable/adapters/AsyncData.js.map +1 -1
  37. package/dist/components/DataTable/adapters/RawData.d.ts +1 -1
  38. package/dist/components/DataTable/adapters/RawData.js.map +1 -1
  39. package/dist/components/DataTable/assets/TableIcon.vue.d.ts.map +1 -1
  40. package/dist/components/DataTable/assets/TableIcon.vue.js.map +1 -1
  41. package/dist/components/DataTable/composition/useColumn.d.ts.map +1 -1
  42. package/dist/components/DataTable/composition/useColumn.js.map +1 -1
  43. package/dist/components/DataTable/composition/useMouseUp.js.map +1 -1
  44. package/dist/components/DataTable/composition/useResize.js.map +1 -1
  45. package/dist/components/DataTable/composition/useTableColumns.js.map +1 -1
  46. package/dist/components/DataTable/composition/useTableRows.js.map +1 -1
  47. package/dist/components/DataTable/domain.d.ts +1 -1
  48. package/dist/components/DataTable/domain.d.ts.map +1 -1
  49. package/dist/components/DataTable/domain.js.map +1 -1
  50. package/dist/components/DataTable/index.d.ts +1 -1
  51. package/dist/components/DataTable/index.d.ts.map +1 -1
  52. package/dist/components/DataTable/index.js +5 -1
  53. package/dist/components/DataTable/index.js.map +1 -1
  54. package/dist/components/DataTable/keys.js.map +1 -1
  55. package/dist/components/DataTable/state.d.ts.map +1 -1
  56. package/dist/components/DataTable/state.js +10 -4
  57. package/dist/components/DataTable/state.js.map +1 -1
  58. package/dist/components/DataTable/types.d.ts +3 -3
  59. package/dist/components/DropdownListItem.vue.d.ts +1 -1
  60. package/dist/components/DropdownListItem.vue.d.ts.map +1 -1
  61. package/dist/components/DropdownListItem.vue.js.map +1 -1
  62. package/dist/components/GridTable/domain.d.ts +1 -1
  63. package/dist/components/GridTable/domain.d.ts.map +1 -1
  64. package/dist/components/GridTable/types.d.ts +4 -4
  65. package/dist/components/GridTable/types.d.ts.map +1 -1
  66. package/dist/components/GridTable/useColumn.d.ts.map +1 -1
  67. package/dist/components/HScroll.vue.js.map +1 -1
  68. package/dist/components/InputRange.vue.d.ts.map +1 -1
  69. package/dist/components/InputRange.vue.js +3 -1
  70. package/dist/components/InputRange.vue.js.map +1 -1
  71. package/dist/components/LongText.vue.d.ts.map +1 -1
  72. package/dist/components/LongText.vue.js +9 -7
  73. package/dist/components/LongText.vue.js.map +1 -1
  74. package/dist/components/PlAccordion/ExpandTransition.vue.d.ts.map +1 -1
  75. package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -1
  76. package/dist/components/PlAccordion/PlAccordion.vue.js.map +1 -1
  77. package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
  78. package/dist/components/PlAlert/PlAlert.vue.d.ts.map +1 -1
  79. package/dist/components/PlAlert/PlAlert.vue.js.map +1 -1
  80. package/dist/components/PlAutocomplete/PlAutocomplete.vue.d.ts.map +1 -1
  81. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js +40 -19
  82. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js.map +1 -1
  83. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts +2 -2
  84. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts.map +1 -1
  85. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js +22 -12
  86. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js.map +1 -1
  87. package/dist/components/PlAutocompleteMulti/index.d.ts +1 -1
  88. package/dist/components/PlAutocompleteMulti/index.d.ts.map +1 -1
  89. package/dist/components/PlBtnAccent/PlBtnAccent.vue.js.map +1 -1
  90. package/dist/components/PlBtnDanger/PlBtnDanger.vue.js.map +1 -1
  91. package/dist/components/PlBtnGhost/PlBtnGhost.vue.js.map +1 -1
  92. package/dist/components/PlBtnGroup/PlBtnGroup.vue.js.map +1 -1
  93. package/dist/components/PlBtnLink/PlBtnLink.vue.d.ts.map +1 -1
  94. package/dist/components/PlBtnLink/PlBtnLink.vue.js.map +1 -1
  95. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js.map +1 -1
  96. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js.map +1 -1
  97. package/dist/components/PlBtnSplit/PlBtnSplit.vue.d.ts.map +1 -1
  98. package/dist/components/PlBtnSplit/PlBtnSplit.vue.js +6 -4
  99. package/dist/components/PlBtnSplit/PlBtnSplit.vue.js.map +1 -1
  100. package/dist/components/PlChartHistogram/PlChartHistogram.vue.d.ts.map +1 -1
  101. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +8 -1
  102. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
  103. package/dist/components/PlChartHistogram/PlChartHistogram.vue3.js +4 -4
  104. package/dist/components/PlChartHistogram/createGridlines.d.ts.map +1 -1
  105. package/dist/components/PlChartHistogram/createGridlines.js +5 -1
  106. package/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
  107. package/dist/components/PlChartHistogram/createLabels.d.ts.map +1 -1
  108. package/dist/components/PlChartHistogram/createLabels.js.map +1 -1
  109. package/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
  110. package/dist/components/PlChartHistogram/drawBins.d.ts.map +1 -1
  111. package/dist/components/PlChartHistogram/drawBins.js.map +1 -1
  112. package/dist/components/PlChartHistogram/drawThreshold.js.map +1 -1
  113. package/dist/components/PlChartHistogram/histogram.d.ts.map +1 -1
  114. package/dist/components/PlChartHistogram/histogram.js +6 -2
  115. package/dist/components/PlChartHistogram/histogram.js.map +1 -1
  116. package/dist/components/PlChartHistogram/normalizeBins.js.map +1 -1
  117. package/dist/components/PlChartHistogram/types.d.ts +2 -2
  118. package/dist/components/PlChartHistogram/types.d.ts.map +1 -1
  119. package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
  120. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue.d.ts.map +1 -1
  121. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +6 -4
  122. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
  123. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
  124. package/dist/components/PlChartStackedBar/StackedRow.vue.d.ts.map +1 -1
  125. package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
  126. package/dist/components/PlChartStackedBar/StackedRowCompact.vue.d.ts.map +1 -1
  127. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
  128. package/dist/components/PlCheckbox/PlCheckbox.vue.js.map +1 -1
  129. package/dist/components/PlCheckbox/PlCheckboxBase.vue.d.ts.map +1 -1
  130. package/dist/components/PlCheckbox/PlCheckboxBase.vue.js.map +1 -1
  131. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.d.ts.map +1 -1
  132. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js +8 -2
  133. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js.map +1 -1
  134. package/dist/components/PlChip/PlChip.vue.d.ts.map +1 -1
  135. package/dist/components/PlChip/PlChip.vue.js.map +1 -1
  136. package/dist/components/PlClipboard/PlClipboard.vue2.js.map +1 -1
  137. package/dist/components/PlConfirmDialog.vue.d.ts.map +1 -1
  138. package/dist/components/PlConfirmDialog.vue.js.map +1 -1
  139. package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts.map +1 -1
  140. package/dist/components/PlDialogModal/PlDialogModal.vue.js +4 -1
  141. package/dist/components/PlDialogModal/PlDialogModal.vue.js.map +1 -1
  142. package/dist/components/PlDropdown/OptionList.vue.d.ts +1 -1
  143. package/dist/components/PlDropdown/OptionList.vue.d.ts.map +1 -1
  144. package/dist/components/PlDropdown/OptionList.vue.js.map +1 -1
  145. package/dist/components/PlDropdown/PlDropdown.vue.d.ts.map +1 -1
  146. package/dist/components/PlDropdown/PlDropdown.vue.js.map +1 -1
  147. package/dist/components/PlDropdown/types.d.ts.map +1 -1
  148. package/dist/components/PlDropdown/useGroupBy.d.ts.map +1 -1
  149. package/dist/components/PlDropdown/useGroupBy.js.map +1 -1
  150. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.d.ts.map +1 -1
  151. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js.map +1 -1
  152. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts +1 -1
  153. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts.map +1 -1
  154. package/dist/components/PlDropdownLine/PlDropdownLine.vue.js +5 -3
  155. package/dist/components/PlDropdownLine/PlDropdownLine.vue.js.map +1 -1
  156. package/dist/components/PlDropdownLine/ResizableInput.vue.d.ts.map +1 -1
  157. package/dist/components/PlDropdownLine/ResizableInput.vue.js.map +1 -1
  158. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.d.ts.map +1 -1
  159. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js.map +1 -1
  160. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.js.map +1 -1
  161. package/dist/components/PlDropdownRef/PlDropdownRef.vue.js.map +1 -1
  162. package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts.map +1 -1
  163. package/dist/components/PlEditableTitle/PlEditableTitle.vue.js.map +1 -1
  164. package/dist/components/PlElementList/PlElementList.vue.d.ts.map +1 -1
  165. package/dist/components/PlElementList/PlElementList.vue2.js +9 -2
  166. package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
  167. package/dist/components/PlElementList/PlElementList.vue3.js +4 -4
  168. package/dist/components/PlElementList/PlElementListItem.vue.d.ts.map +1 -1
  169. package/dist/components/PlElementList/PlElementListItem.vue2.js +25 -13
  170. package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
  171. package/dist/components/PlElementList/PlElementListItem.vue3.js +20 -20
  172. package/dist/components/PlElementList/utils.d.ts.map +1 -1
  173. package/dist/components/PlElementList/utils.js +3 -1
  174. package/dist/components/PlElementList/utils.js.map +1 -1
  175. package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js.map +1 -1
  176. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.d.ts.map +1 -1
  177. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js +4 -1
  178. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js.map +1 -1
  179. package/dist/components/PlFileDialog/Local.vue.d.ts.map +1 -1
  180. package/dist/components/PlFileDialog/Local.vue.js +6 -2
  181. package/dist/components/PlFileDialog/Local.vue.js.map +1 -1
  182. package/dist/components/PlFileDialog/PlFileDialog.vue.d.ts.map +1 -1
  183. package/dist/components/PlFileDialog/PlFileDialog.vue.js +3 -1
  184. package/dist/components/PlFileDialog/PlFileDialog.vue.js.map +1 -1
  185. package/dist/components/PlFileDialog/Remote.vue.d.ts.map +1 -1
  186. package/dist/components/PlFileDialog/Remote.vue.js +6 -2
  187. package/dist/components/PlFileDialog/Remote.vue.js.map +1 -1
  188. package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
  189. package/dist/components/PlFileDialog/Shortcuts.vue3.js +4 -4
  190. package/dist/components/PlFileDialog/pl-file-dialog.module.scss.js +21 -21
  191. package/dist/components/PlFileDialog/remote.js.map +1 -1
  192. package/dist/components/PlFileDialog/utils.js.map +1 -1
  193. package/dist/components/PlFileInput/PlFileInput.vue.d.ts.map +1 -1
  194. package/dist/components/PlFileInput/PlFileInput.vue.js.map +1 -1
  195. package/dist/components/PlIcon16/PlIcon16.vue2.js.map +1 -1
  196. package/dist/components/PlIcon24/PlIcon24.vue2.js.map +1 -1
  197. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts +1 -1
  198. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts.map +1 -1
  199. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js +5 -1
  200. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js.map +1 -1
  201. package/dist/components/PlLoaderLogo.vue.d.ts.map +1 -1
  202. package/dist/components/PlLoaderLogo.vue2.js +8 -8
  203. package/dist/components/PlLoaderLogo.vue2.js.map +1 -1
  204. package/dist/components/PlLogView/PlLogView.vue.d.ts.map +1 -1
  205. package/dist/components/PlLogView/PlLogView.vue.js +11 -7
  206. package/dist/components/PlLogView/PlLogView.vue.js.map +1 -1
  207. package/dist/components/PlLogView/useLogHandle.d.ts.map +1 -1
  208. package/dist/components/PlLogView/useLogHandle.js +16 -3
  209. package/dist/components/PlLogView/useLogHandle.js.map +1 -1
  210. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts +1 -1
  211. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts.map +1 -1
  212. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js.map +1 -1
  213. package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
  214. package/dist/components/PlNumberField/PlNumberField.vue.js +4 -6
  215. package/dist/components/PlNumberField/PlNumberField.vue.js.map +1 -1
  216. package/dist/components/PlNumberField/parseNumber.d.ts.map +1 -1
  217. package/dist/components/PlNumberField/parseNumber.js.map +1 -1
  218. package/dist/components/PlProgressBar/PlProgressBar.vue.js.map +1 -1
  219. package/dist/components/PlProgressCell/PlProgressCell.vue.d.ts.map +1 -1
  220. package/dist/components/PlProgressCell/PlProgressCell.vue.js +11 -2
  221. package/dist/components/PlProgressCell/PlProgressCell.vue.js.map +1 -1
  222. package/dist/components/PlProgressCell/types.d.ts +1 -1
  223. package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
  224. package/dist/components/PlRadio/PlRadio.vue3.js +3 -3
  225. package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
  226. package/dist/components/PlRadio/PlRadioGroup.vue3.js +6 -6
  227. package/dist/components/PlRadio/keys.js.map +1 -1
  228. package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
  229. package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
  230. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
  231. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue3.js +1 -1
  232. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
  233. package/dist/components/PlSidebar/PlSidebarGroup.vue3.js +6 -6
  234. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts +6 -6
  235. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts.map +1 -1
  236. package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
  237. package/dist/components/PlSidebar/PlSidebarItem.vue3.js +8 -8
  238. package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts.map +1 -1
  239. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -1
  240. package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts.map +1 -1
  241. package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
  242. package/dist/components/PlSlideModal/props.d.ts +8 -8
  243. package/dist/components/PlSlideModal/props.d.ts.map +1 -1
  244. package/dist/components/PlSlideModal/props.js.map +1 -1
  245. package/dist/components/PlSplash/PlSplash.vue.d.ts +1 -1
  246. package/dist/components/PlSplash/PlSplash.vue.d.ts.map +1 -1
  247. package/dist/components/PlSplash/PlSplash.vue.js +4 -1
  248. package/dist/components/PlSplash/PlSplash.vue.js.map +1 -1
  249. package/dist/components/PlStatusTag/PlStatusTag.vue.d.ts.map +1 -1
  250. package/dist/components/PlStatusTag/PlStatusTag.vue.js.map +1 -1
  251. package/dist/components/PlStatusTag/types.d.ts +1 -1
  252. package/dist/components/PlSvg/PlSvg.vue.d.ts.map +1 -1
  253. package/dist/components/PlSvg/PlSvg.vue2.js +7 -2
  254. package/dist/components/PlSvg/PlSvg.vue2.js.map +1 -1
  255. package/dist/components/PlSvg/registry.d.ts.map +1 -1
  256. package/dist/components/PlSvg/registry.js.map +1 -1
  257. package/dist/components/PlTabs/PlTabs.vue.d.ts.map +1 -1
  258. package/dist/components/PlTabs/PlTabs.vue.js +4 -1
  259. package/dist/components/PlTabs/PlTabs.vue.js.map +1 -1
  260. package/dist/components/PlTabs/Tab.vue.js.map +1 -1
  261. package/dist/components/PlTextArea/PlTextArea.vue.js.map +1 -1
  262. package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
  263. package/dist/components/PlTextField/PlTextField.vue.js +3 -1
  264. package/dist/components/PlTextField/PlTextField.vue.js.map +1 -1
  265. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.js.map +1 -1
  266. package/dist/components/PlTooltip/Beak.vue.d.ts.map +1 -1
  267. package/dist/components/PlTooltip/Beak.vue.js.map +1 -1
  268. package/dist/components/PlTooltip/PlTooltip.vue.d.ts.map +1 -1
  269. package/dist/components/PlTooltip/PlTooltip.vue.js.map +1 -1
  270. package/dist/components/PlTooltip/useTooltipPosition.d.ts +1 -1
  271. package/dist/components/PlTooltip/useTooltipPosition.js.map +1 -1
  272. package/dist/components/Scrollable.vue.d.ts.map +1 -1
  273. package/dist/components/Scrollable.vue.js +10 -1
  274. package/dist/components/Scrollable.vue.js.map +1 -1
  275. package/dist/components/Slider.vue.d.ts.map +1 -1
  276. package/dist/components/Slider.vue.js +3 -1
  277. package/dist/components/Slider.vue.js.map +1 -1
  278. package/dist/components/SliderRange.vue.d.ts.map +1 -1
  279. package/dist/components/SliderRange.vue.js +15 -3
  280. package/dist/components/SliderRange.vue.js.map +1 -1
  281. package/dist/components/SliderRangeTriple.vue.d.ts.map +1 -1
  282. package/dist/components/SliderRangeTriple.vue.js +7 -1
  283. package/dist/components/SliderRangeTriple.vue.js.map +1 -1
  284. package/dist/components/TabItem.vue.js.map +1 -1
  285. package/dist/components/ThemeSwitcher.vue.js.map +1 -1
  286. package/dist/components/TransitionSlidePanel.vue.js.map +1 -1
  287. package/dist/components/VScroll.vue.js.map +1 -1
  288. package/dist/components/contextMenu/Menu.vue.js +1 -1
  289. package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
  290. package/dist/components/contextMenu/index.js.map +1 -1
  291. package/dist/composition/computedCached.js.map +1 -1
  292. package/dist/composition/filters/metadata.d.ts.map +1 -1
  293. package/dist/composition/filters/metadata.js.map +1 -1
  294. package/dist/composition/filters/types.d.ts +1 -19
  295. package/dist/composition/filters/types.d.ts.map +1 -1
  296. package/dist/composition/useClickOutside.js.map +1 -1
  297. package/dist/composition/useComponentProp.d.ts.map +1 -1
  298. package/dist/composition/useComponentProp.js.map +1 -1
  299. package/dist/composition/useConfirm.js.map +1 -1
  300. package/dist/composition/useDraggable.d.ts.map +1 -1
  301. package/dist/composition/useDraggable.js.map +1 -1
  302. package/dist/composition/useEventListener.d.ts.map +1 -1
  303. package/dist/composition/useEventListener.js +11 -7
  304. package/dist/composition/useEventListener.js.map +1 -1
  305. package/dist/composition/useFilteredList.d.ts.map +1 -1
  306. package/dist/composition/useFilteredList.js.map +1 -1
  307. package/dist/composition/useFormState.js.map +1 -1
  308. package/dist/composition/useHover.d.ts.map +1 -1
  309. package/dist/composition/useHover.js.map +1 -1
  310. package/dist/composition/useInterval.js.map +1 -1
  311. package/dist/composition/useLocalStorage.js.map +1 -1
  312. package/dist/composition/useMouse.js.map +1 -1
  313. package/dist/composition/useMouseCapture.d.ts.map +1 -1
  314. package/dist/composition/useMouseCapture.js.map +1 -1
  315. package/dist/composition/usePollingQuery.d.ts.map +1 -1
  316. package/dist/composition/usePollingQuery.js +4 -1
  317. package/dist/composition/usePollingQuery.js.map +1 -1
  318. package/dist/composition/usePosition.d.ts.map +1 -1
  319. package/dist/composition/usePosition.js.map +1 -1
  320. package/dist/composition/useQuery.js.map +1 -1
  321. package/dist/composition/useResizeObserver.d.ts.map +1 -1
  322. package/dist/composition/useResizeObserver.js.map +1 -1
  323. package/dist/composition/useRipple.js.map +1 -1
  324. package/dist/composition/useScroll.d.ts.map +1 -1
  325. package/dist/composition/useScroll.js.map +1 -1
  326. package/dist/composition/useSliderBreakpoints.d.ts.map +1 -1
  327. package/dist/composition/useSliderBreakpoints.js.map +1 -1
  328. package/dist/composition/useSortable.js.map +1 -1
  329. package/dist/composition/useSortable2.d.ts.map +1 -1
  330. package/dist/composition/useSortable2.js +8 -5
  331. package/dist/composition/useSortable2.js.map +1 -1
  332. package/dist/composition/useTheme.d.ts +1 -1
  333. package/dist/composition/useTheme.d.ts.map +1 -1
  334. package/dist/composition/useTheme.js.map +1 -1
  335. package/dist/composition/useTransformedModel.d.ts.map +1 -1
  336. package/dist/composition/useTransformedModel.js.map +1 -1
  337. package/dist/composition/useWatchFetch.js.map +1 -1
  338. package/dist/composition/utils.js.map +1 -1
  339. package/dist/composition/watchCached.d.ts.map +1 -1
  340. package/dist/composition/watchCached.js.map +1 -1
  341. package/dist/demo-site-data/all-css-variables.d.ts.map +1 -1
  342. package/dist/demo-site-data/all-css-variables.js +52 -13
  343. package/dist/demo-site-data/all-css-variables.js.map +1 -1
  344. package/dist/generated/icons-16.js.map +1 -1
  345. package/dist/generated/icons-24.js.map +1 -1
  346. package/dist/global/resizeObserver.js.map +1 -1
  347. package/dist/helpers/dom.d.ts.map +1 -1
  348. package/dist/helpers/dom.js.map +1 -1
  349. package/dist/helpers/downloadContent.d.ts +1 -1
  350. package/dist/helpers/downloadContent.d.ts.map +1 -1
  351. package/dist/helpers/downloadContent.js +3 -1
  352. package/dist/helpers/downloadContent.js.map +1 -1
  353. package/dist/helpers/error.js +4 -1
  354. package/dist/helpers/error.js.map +1 -1
  355. package/dist/helpers/functions.d.ts.map +1 -1
  356. package/dist/helpers/functions.js.map +1 -1
  357. package/dist/helpers/objects.js.map +1 -1
  358. package/dist/helpers/utils.d.ts.map +1 -1
  359. package/dist/helpers/utils.js.map +1 -1
  360. package/dist/index.d.ts +1 -1
  361. package/dist/index.js +1 -1
  362. package/dist/index.js.map +1 -1
  363. package/dist/layout/PlBlockPage/PlBlockPage.vue.d.ts.map +1 -1
  364. package/dist/layout/PlBlockPage/PlBlockPage.vue2.js.map +1 -1
  365. package/dist/layout/PlBlockPage/PlBlockPage.vue3.js +4 -4
  366. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.js.map +1 -1
  367. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js.map +1 -1
  368. package/dist/layout/PlContainer/PlContainer.vue.d.ts.map +1 -1
  369. package/dist/layout/PlContainer/PlContainer.vue.js.map +1 -1
  370. package/dist/layout/PlGrid/PlGrid.vue.js.map +1 -1
  371. package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts +1 -1
  372. package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts.map +1 -1
  373. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js +8 -8
  374. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js.map +1 -1
  375. package/dist/layout/PlPlaceholder/PlPlaceholder.vue3.js +15 -15
  376. package/dist/layout/PlPlaceholder/index.d.ts +1 -1
  377. package/dist/layout/PlPlaceholder/index.d.ts.map +1 -1
  378. package/dist/layout/PlPlaceholder/index.js.map +1 -1
  379. package/dist/layout/PlPlaceholder/paint-worklet.js +6 -6
  380. package/dist/layout/PlPlaceholder/paint-worklet.js.map +1 -1
  381. package/dist/layout/PlRow/PlRow.vue.js.map +1 -1
  382. package/dist/layout/PlSpacer/PlSpacer.vue.js.map +1 -1
  383. package/dist/types.d.ts +5 -5
  384. package/dist/types.d.ts.map +1 -1
  385. package/dist/utils/DoubleContour.vue.d.ts.map +1 -1
  386. package/dist/utils/DoubleContour.vue.js.map +1 -1
  387. package/dist/utils/DropdownOverlay/DropdownOverlay.vue.js.map +1 -1
  388. package/dist/utils/PlCloseModalBtn.vue.js.map +1 -1
  389. package/dist/utils/TextLabel.vue.js.map +1 -1
  390. package/dist/utils/useLabelNotch.d.ts.map +1 -1
  391. package/dist/utils/useLabelNotch.js.map +1 -1
  392. package/dist/utils/useValidation.js.map +1 -1
  393. package/package.json +23 -24
  394. package/scripts/parse-icons.js +20 -14
  395. package/src/__tests__/compositions/usePollingQuery.spec.ts +163 -165
  396. package/src/__tests__/compositions/useValidation.spec.ts +41 -28
  397. package/src/__tests__/setup.ts +1 -1
  398. package/src/__tests__/use-debounce-fn.test.ts +15 -11
  399. package/src/assets/animations.scss +5 -5
  400. package/src/assets/base-btn.scss +4 -3
  401. package/src/assets/base.scss +11 -8
  402. package/src/assets/common.scss +43 -43
  403. package/src/assets/dropdown-list-item.scss +53 -53
  404. package/src/assets/dropdown-tab-item.scss +4 -4
  405. package/src/assets/icons.scss +1 -1
  406. package/src/assets/input-range.scss +26 -27
  407. package/src/assets/layout.scss +1 -1
  408. package/src/assets/masks.scss +1 -1
  409. package/src/assets/mixins.scss +9 -17
  410. package/src/assets/scroll.scss +6 -6
  411. package/src/assets/slider.scss +6 -5
  412. package/src/assets/sortable.scss +1 -1
  413. package/src/assets/theme-switcher.scss +2 -2
  414. package/src/assets/typography.scss +16 -13
  415. package/src/assets/ui.scss +19 -19
  416. package/src/assets/utils.scss +19 -19
  417. package/src/assets/variables.scss +9 -10
  418. package/src/base/BtnBase.vue +6 -6
  419. package/src/colors/__tests__/colors.spec.ts +12 -10
  420. package/src/colors/color.ts +17 -12
  421. package/src/colors/gradient.ts +20 -17
  422. package/src/colors/index.ts +3 -3
  423. package/src/colors/palette.ts +194 -194
  424. package/src/components/ContextProvider.vue +1 -1
  425. package/src/components/DataTable/BaseCellComponent.vue +8 -8
  426. package/src/components/DataTable/ColumnCaret.vue +3 -3
  427. package/src/components/DataTable/ColumnsCommandMenu.vue +5 -3
  428. package/src/components/DataTable/RowsCommandMenu.vue +5 -3
  429. package/src/components/DataTable/TScroll.vue +11 -6
  430. package/src/components/DataTable/TableComponent.vue +41 -24
  431. package/src/components/DataTable/TdCell.vue +28 -15
  432. package/src/components/DataTable/ThCell.vue +14 -9
  433. package/src/components/DataTable/TrBody.vue +11 -4
  434. package/src/components/DataTable/adapters/AsyncData.ts +4 -4
  435. package/src/components/DataTable/adapters/RawData.ts +5 -5
  436. package/src/components/DataTable/assets/TableIcon.vue +6 -1
  437. package/src/components/DataTable/assets/data-table-style.scss +12 -10
  438. package/src/components/DataTable/composition/useColumn.ts +8 -5
  439. package/src/components/DataTable/composition/useMouseUp.ts +3 -3
  440. package/src/components/DataTable/composition/useResize.ts +16 -16
  441. package/src/components/DataTable/composition/useTableColumns.ts +8 -8
  442. package/src/components/DataTable/composition/useTableRows.ts +5 -5
  443. package/src/components/DataTable/domain.ts +8 -4
  444. package/src/components/DataTable/index.ts +26 -13
  445. package/src/components/DataTable/keys.ts +3 -3
  446. package/src/components/DataTable/state.ts +38 -18
  447. package/src/components/DataTable/types.ts +10 -10
  448. package/src/components/DropdownListItem.vue +18 -15
  449. package/src/components/GridTable/TdCell.vue +7 -7
  450. package/src/components/GridTable/ThCell.vue +14 -9
  451. package/src/components/GridTable/assets/TableIcon.vue +6 -1
  452. package/src/components/GridTable/assets/style.scss +6 -6
  453. package/src/components/GridTable/constants.ts +10 -10
  454. package/src/components/GridTable/domain.ts +8 -4
  455. package/src/components/GridTable/getColumnPositions.ts +4 -4
  456. package/src/components/GridTable/index.vue +41 -32
  457. package/src/components/GridTable/types.ts +14 -11
  458. package/src/components/GridTable/useColumn.ts +8 -5
  459. package/src/components/GridTable/useMouseUp.ts +3 -3
  460. package/src/components/GridTable/useResize.ts +13 -13
  461. package/src/components/HScroll.vue +10 -10
  462. package/src/components/InputRange.vue +9 -7
  463. package/src/components/LongText.vue +7 -5
  464. package/src/components/PlAccordion/ExpandTransition.vue +12 -6
  465. package/src/components/PlAccordion/PlAccordion.vue +3 -3
  466. package/src/components/PlAccordion/PlAccordionSection.vue +9 -9
  467. package/src/components/PlAccordion/index.ts +2 -2
  468. package/src/components/PlAlert/PlAlert.vue +21 -10
  469. package/src/components/PlAlert/index.ts +1 -1
  470. package/src/components/PlAlert/pl-alert.scss +1 -1
  471. package/src/components/PlAutocomplete/PlAutocomplete.vue +142 -82
  472. package/src/components/PlAutocomplete/__tests__/PlAutocomplete.spec.ts +19 -17
  473. package/src/components/PlAutocomplete/index.ts +1 -1
  474. package/src/components/PlAutocomplete/pl-autocomplete.scss +9 -7
  475. package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +92 -62
  476. package/src/components/PlAutocompleteMulti/__tests__/PlAutocompleteMulti.spec.ts +17 -16
  477. package/src/components/PlAutocompleteMulti/index.ts +4 -1
  478. package/src/components/PlAutocompleteMulti/pl-autocomplete-multi.scss +8 -6
  479. package/src/components/PlBtnAccent/PlBtnAccent.vue +4 -4
  480. package/src/components/PlBtnAccent/index.ts +1 -1
  481. package/src/components/PlBtnDanger/PlBtnDanger.vue +4 -4
  482. package/src/components/PlBtnDanger/index.ts +1 -1
  483. package/src/components/PlBtnDanger/pl-btn-danger.scss +1 -1
  484. package/src/components/PlBtnGhost/PlBtnGhost.vue +8 -8
  485. package/src/components/PlBtnGhost/index.ts +1 -1
  486. package/src/components/PlBtnGroup/PlBtnGroup.vue +10 -10
  487. package/src/components/PlBtnGroup/index.ts +1 -1
  488. package/src/components/PlBtnGroup/pl-btn-group.scss +4 -4
  489. package/src/components/PlBtnLink/PlBtnLink.vue +10 -5
  490. package/src/components/PlBtnLink/index.ts +1 -1
  491. package/src/components/PlBtnLink/pl-btn-link.scss +2 -1
  492. package/src/components/PlBtnPrimary/PlBtnPrimary.vue +4 -4
  493. package/src/components/PlBtnPrimary/__tests__/BtnPrimary.spec.ts +7 -7
  494. package/src/components/PlBtnPrimary/index.ts +1 -1
  495. package/src/components/PlBtnPrimary/pl-btn-primary.scss +2 -2
  496. package/src/components/PlBtnSecondary/PlBtnSecondary.vue +4 -4
  497. package/src/components/PlBtnSecondary/index.ts +1 -1
  498. package/src/components/PlBtnSecondary/pl-btn-secondary.scss +1 -1
  499. package/src/components/PlBtnSplit/PlBtnSplit.vue +42 -28
  500. package/src/components/PlBtnSplit/__tests__/PlBtnSplit.spec.ts +66 -66
  501. package/src/components/PlBtnSplit/index.ts +1 -1
  502. package/src/components/PlBtnSplit/pl-btn-split.scss +72 -75
  503. package/src/components/PlChartHistogram/PlChartHistogram.vue +29 -20
  504. package/src/components/PlChartHistogram/createGridlines.ts +28 -22
  505. package/src/components/PlChartHistogram/createLabels.ts +19 -17
  506. package/src/components/PlChartHistogram/createSvgContainer.ts +9 -9
  507. package/src/components/PlChartHistogram/drawBins.ts +27 -34
  508. package/src/components/PlChartHistogram/drawThreshold.ts +9 -9
  509. package/src/components/PlChartHistogram/histogram.ts +31 -34
  510. package/src/components/PlChartHistogram/index.ts +1 -1
  511. package/src/components/PlChartHistogram/normalizeBins.ts +3 -3
  512. package/src/components/PlChartHistogram/scales.spec.ts +5 -5
  513. package/src/components/PlChartHistogram/types.ts +6 -6
  514. package/src/components/PlChartStackedBar/Legends.vue +2 -2
  515. package/src/components/PlChartStackedBar/PlChartStackedBar.vue +16 -10
  516. package/src/components/PlChartStackedBar/PlChartStackedBarCompact.vue +4 -4
  517. package/src/components/PlChartStackedBar/StackedRow.vue +7 -9
  518. package/src/components/PlChartStackedBar/StackedRowCompact.vue +6 -8
  519. package/src/components/PlChartStackedBar/index.ts +3 -3
  520. package/src/components/PlChartStackedBar/types.ts +1 -1
  521. package/src/components/PlCheckbox/PlCheckbox.vue +5 -5
  522. package/src/components/PlCheckbox/PlCheckboxBase.vue +3 -5
  523. package/src/components/PlCheckbox/__tests__/PlCheckbox.spec.ts +15 -15
  524. package/src/components/PlCheckbox/index.ts +1 -1
  525. package/src/components/PlCheckbox/pl-checkbox-base.scss +13 -13
  526. package/src/components/PlCheckbox/pl-checkbox.scss +2 -2
  527. package/src/components/PlCheckboxGroup/PlCheckboxGroup.vue +24 -10
  528. package/src/components/PlCheckboxGroup/index.ts +1 -1
  529. package/src/components/PlCheckboxGroup/pl-checkbox-group.scss +1 -1
  530. package/src/components/PlChip/PlChip.vue +11 -5
  531. package/src/components/PlChip/index.ts +1 -1
  532. package/src/components/PlChip/pl-chip.scss +2 -2
  533. package/src/components/PlClipboard/PlClipboard.vue +7 -7
  534. package/src/components/PlClipboard/index.ts +1 -1
  535. package/src/components/PlConfirmDialog.vue +7 -6
  536. package/src/components/PlDialogModal/PlDialogModal.vue +52 -33
  537. package/src/components/PlDialogModal/index.ts +1 -1
  538. package/src/components/PlDialogModal/pl-dialog-modal.scss +2 -2
  539. package/src/components/PlDropdown/OptionList.vue +21 -10
  540. package/src/components/PlDropdown/PlDropdown.vue +65 -46
  541. package/src/components/PlDropdown/__tests__/PlDropdown.spec.ts +15 -15
  542. package/src/components/PlDropdown/index.ts +1 -1
  543. package/src/components/PlDropdown/pl-dropdown.scss +4 -2
  544. package/src/components/PlDropdown/types.ts +6 -2
  545. package/src/components/PlDropdown/useGroupBy.ts +7 -10
  546. package/src/components/PlDropdownLegacy/PlDropdownLegacy.vue +60 -43
  547. package/src/components/PlDropdownLegacy/__tests__/PlDropdownLegacy.spec.ts +16 -16
  548. package/src/components/PlDropdownLegacy/index.ts +1 -1
  549. package/src/components/PlDropdownLegacy/pl-dropdown-legacy.scss +6 -6
  550. package/src/components/PlDropdownLine/PlDropdownLine.vue +76 -54
  551. package/src/components/PlDropdownLine/ResizableInput.vue +15 -8
  552. package/src/components/PlDropdownLine/index.ts +1 -1
  553. package/src/components/PlDropdownLine/pl-dropdown-line.scss +132 -132
  554. package/src/components/PlDropdownLine/resizable-input.scss +38 -38
  555. package/src/components/PlDropdownMulti/PlDropdownMulti.vue +79 -45
  556. package/src/components/PlDropdownMulti/__tests__/PlDropdownMulti.spec.ts +15 -14
  557. package/src/components/PlDropdownMulti/index.ts +1 -1
  558. package/src/components/PlDropdownMulti/pl-dropdown-multi.scss +8 -6
  559. package/src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue +5 -5
  560. package/src/components/PlDropdownMultiRef/__tests__/PlDropdownMultiRef.spec.ts +25 -24
  561. package/src/components/PlDropdownMultiRef/index.ts +1 -1
  562. package/src/components/PlDropdownRef/PlDropdownRef.vue +12 -12
  563. package/src/components/PlDropdownRef/__tests__/PlDropdownRef.spec.ts +23 -23
  564. package/src/components/PlDropdownRef/index.ts +1 -1
  565. package/src/components/PlEditableTitle/PlEditableTitle.vue +9 -10
  566. package/src/components/PlEditableTitle/index.ts +1 -1
  567. package/src/components/PlEditableTitle/pl-editable-title.module.scss +4 -4
  568. package/src/components/PlElementList/PlElementList.vue +60 -37
  569. package/src/components/PlElementList/PlElementListItem.vue +45 -29
  570. package/src/components/PlElementList/README.md +102 -119
  571. package/src/components/PlElementList/index.ts +1 -1
  572. package/src/components/PlElementList/utils.ts +3 -1
  573. package/src/components/PlErrorAlert/PlErrorAlert.vue +5 -5
  574. package/src/components/PlErrorAlert/index.ts +1 -1
  575. package/src/components/PlErrorBoundary/PlErrorBoundary.vue +8 -5
  576. package/src/components/PlErrorBoundary/index.ts +1 -1
  577. package/src/components/PlFileDialog/Local.vue +22 -16
  578. package/src/components/PlFileDialog/PlFileDialog.vue +27 -23
  579. package/src/components/PlFileDialog/Remote.vue +44 -34
  580. package/src/components/PlFileDialog/Shortcuts.vue +4 -4
  581. package/src/components/PlFileDialog/index.ts +1 -1
  582. package/src/components/PlFileDialog/pl-file-dialog.module.scss +15 -12
  583. package/src/components/PlFileDialog/remote.ts +9 -9
  584. package/src/components/PlFileDialog/utils.test.ts +20 -24
  585. package/src/components/PlFileDialog/utils.ts +8 -8
  586. package/src/components/PlFileInput/PlFileInput.vue +37 -26
  587. package/src/components/PlFileInput/index.ts +1 -1
  588. package/src/components/PlFileInput/pl-file-input.scss +3 -3
  589. package/src/components/PlFileInput/utils.ts +6 -6
  590. package/src/components/PlIcon16/PlIcon16.vue +7 -7
  591. package/src/components/PlIcon16/index.ts +1 -1
  592. package/src/components/PlIcon24/PlIcon24.vue +7 -7
  593. package/src/components/PlIcon24/index.ts +1 -1
  594. package/src/components/PlLoaderCircular/PlLoaderCircular.vue +24 -6
  595. package/src/components/PlLoaderCircular/index.ts +1 -1
  596. package/src/components/PlLoaderCircular/pl-loader-circular.scss +54 -50
  597. package/src/components/PlLoaderLogo.vue +8 -10
  598. package/src/components/PlLogView/PlLogView.vue +28 -22
  599. package/src/components/PlLogView/index.ts +1 -1
  600. package/src/components/PlLogView/pl-log-view.scss +10 -4
  601. package/src/components/PlLogView/useLogHandle.ts +32 -12
  602. package/src/components/PlMaskIcon16/index.ts +1 -1
  603. package/src/components/PlMaskIcon24/index.ts +1 -1
  604. package/src/components/PlNotificationAlert/PlNotificationAlert.vue +10 -5
  605. package/src/components/PlNotificationAlert/index.ts +1 -1
  606. package/src/components/PlNotificationAlert/pl-notification-alert.scss +43 -44
  607. package/src/components/PlNumberField/PlNumberField.vue +95 -68
  608. package/src/components/PlNumberField/__tests__/PlNumberField.spec.ts +71 -69
  609. package/src/components/PlNumberField/index.ts +1 -1
  610. package/src/components/PlNumberField/parseNumber.ts +20 -17
  611. package/src/components/PlProgressBar/PlProgressBar.vue +5 -5
  612. package/src/components/PlProgressBar/index.ts +1 -1
  613. package/src/components/PlProgressCell/PlProgressCell.vue +33 -14
  614. package/src/components/PlProgressCell/index.ts +2 -2
  615. package/src/components/PlProgressCell/pl-progress-cell.scss +70 -70
  616. package/src/components/PlProgressCell/types.ts +1 -1
  617. package/src/components/PlRadio/PlRadio.vue +54 -54
  618. package/src/components/PlRadio/PlRadioGroup.vue +16 -16
  619. package/src/components/PlRadio/__tests__/PlRadioGroup.spec.ts +50 -50
  620. package/src/components/PlRadio/index.ts +2 -2
  621. package/src/components/PlRadio/keys.ts +1 -1
  622. package/src/components/PlSearchField/PlSearchField.vue +21 -9
  623. package/src/components/PlSearchField/index.ts +1 -1
  624. package/src/components/PlSectionSeparator/PlSectionSeparator.vue +1 -1
  625. package/src/components/PlSectionSeparator/index.ts +1 -1
  626. package/src/components/PlSidebar/PlSidebarGroup.vue +2 -2
  627. package/src/components/PlSidebar/PlSidebarItem.vue +7 -7
  628. package/src/components/PlSidebar/index.ts +2 -2
  629. package/src/components/PlSlideModal/PlPureSlideModal.vue +18 -17
  630. package/src/components/PlSlideModal/PlSlideModal.vue +8 -12
  631. package/src/components/PlSlideModal/index.ts +2 -2
  632. package/src/components/PlSlideModal/pl-slide-modal.scss +2 -2
  633. package/src/components/PlSlideModal/props.ts +9 -9
  634. package/src/components/PlSpacer/PlSpacer.vue +1 -1
  635. package/src/components/PlSpacer/index.ts +1 -1
  636. package/src/components/PlSplash/PlSplash.vue +25 -17
  637. package/src/components/PlSplash/index.ts +1 -1
  638. package/src/components/PlSplash/pl-splash.module.scss +1 -1
  639. package/src/components/PlStatusTag/PlStatusTag.vue +13 -8
  640. package/src/components/PlStatusTag/index.ts +2 -2
  641. package/src/components/PlStatusTag/pl-status-tag.scss +18 -18
  642. package/src/components/PlStatusTag/types.ts +1 -1
  643. package/src/components/PlSvg/PlSvg.vue +24 -16
  644. package/src/components/PlSvg/index.ts +1 -1
  645. package/src/components/PlSvg/registry.ts +17 -21
  646. package/src/components/PlTabs/PlTabs.vue +10 -7
  647. package/src/components/PlTabs/Tab.vue +4 -4
  648. package/src/components/PlTabs/index.ts +2 -2
  649. package/src/components/PlTabs/pl-tabs.module.scss +3 -3
  650. package/src/components/PlTextArea/PlTextArea.vue +15 -15
  651. package/src/components/PlTextArea/__tests__/PlTextArea.spec.ts +12 -12
  652. package/src/components/PlTextArea/index.ts +1 -1
  653. package/src/components/PlTextArea/pl-textarea.scss +1 -1
  654. package/src/components/PlTextField/PlTextField.vue +48 -27
  655. package/src/components/PlTextField/__tests__/TextField.spec.ts +19 -19
  656. package/src/components/PlTextField/index.ts +1 -1
  657. package/src/components/PlToggleSwitch/PlToggleSwitch.vue +3 -3
  658. package/src/components/PlToggleSwitch/index.ts +1 -1
  659. package/src/components/PlToggleSwitch/pl-toggle-switch.scss +3 -2
  660. package/src/components/PlTooltip/Beak.vue +8 -1
  661. package/src/components/PlTooltip/PlTooltip.vue +33 -19
  662. package/src/components/PlTooltip/index.ts +1 -1
  663. package/src/components/PlTooltip/pl-tooltip.scss +4 -2
  664. package/src/components/PlTooltip/useTooltipPosition.ts +12 -12
  665. package/src/components/Scrollable.vue +17 -8
  666. package/src/components/Slider.vue +47 -23
  667. package/src/components/SliderRange.vue +72 -32
  668. package/src/components/SliderRangeTriple.vue +49 -31
  669. package/src/components/TabItem.vue +5 -5
  670. package/src/components/ThemeSwitcher.vue +1 -1
  671. package/src/components/TransitionSlidePanel.vue +2 -2
  672. package/src/components/VScroll.vue +10 -10
  673. package/src/components/contextMenu/Menu.vue +4 -4
  674. package/src/components/contextMenu/index.ts +6 -6
  675. package/src/composition/computedCached.ts +11 -7
  676. package/src/composition/filters/index.ts +2 -2
  677. package/src/composition/filters/metadata.ts +227 -220
  678. package/src/composition/filters/types.ts +44 -21
  679. package/src/composition/useClickOutside.ts +4 -4
  680. package/src/composition/useComponentProp.ts +5 -3
  681. package/src/composition/useConfirm.ts +5 -5
  682. package/src/composition/useDraggable.ts +16 -13
  683. package/src/composition/useEventListener.ts +13 -5
  684. package/src/composition/useFilteredList.ts +9 -6
  685. package/src/composition/useFormState.ts +3 -3
  686. package/src/composition/useHover.ts +10 -7
  687. package/src/composition/useInterval.ts +1 -1
  688. package/src/composition/useLocalStorage.ts +4 -4
  689. package/src/composition/useMouse.ts +3 -3
  690. package/src/composition/useMouseCapture.ts +10 -7
  691. package/src/composition/useNotificationPosition.ts +4 -4
  692. package/src/composition/usePollingQuery.ts +22 -20
  693. package/src/composition/usePosition.ts +13 -9
  694. package/src/composition/useQuery.ts +2 -2
  695. package/src/composition/useResizeObserver.ts +9 -6
  696. package/src/composition/useRipple.ts +6 -6
  697. package/src/composition/useScroll.ts +18 -12
  698. package/src/composition/useSliderBreakpoints.ts +6 -4
  699. package/src/composition/useSortable.ts +17 -17
  700. package/src/composition/useSortable2.ts +27 -24
  701. package/src/composition/useTheme.ts +11 -9
  702. package/src/composition/useTransformedModel.ts +6 -3
  703. package/src/composition/useWatchFetch.ts +3 -3
  704. package/src/composition/utils.ts +1 -1
  705. package/src/composition/watchCached.ts +2 -8
  706. package/src/demo-site-data/all-css-variables.ts +208 -169
  707. package/src/drafts/FileBaseInput.vue +35 -18
  708. package/src/generated/icons-16.ts +68 -68
  709. package/src/generated/icons-24.ts +211 -211
  710. package/src/global/resizeObserver.ts +1 -1
  711. package/src/helpers/dom.ts +12 -8
  712. package/src/helpers/downloadContent.ts +23 -21
  713. package/src/helpers/error.ts +6 -3
  714. package/src/helpers/functions.ts +5 -1
  715. package/src/helpers/objects.ts +1 -1
  716. package/src/helpers/utils.ts +23 -9
  717. package/src/index.ts +110 -110
  718. package/src/layout/PlBlockPage/PlBlockPage.vue +14 -19
  719. package/src/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.ts +1 -1
  720. package/src/layout/PlBlockPage/index.ts +2 -2
  721. package/src/layout/PlBlockPage/pl-block-page.scss +1 -1
  722. package/src/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.ts +2 -2
  723. package/src/layout/PlContainer/PlContainer.vue +10 -5
  724. package/src/layout/PlContainer/index.ts +1 -1
  725. package/src/layout/PlContainer/pl-container.scss +1 -1
  726. package/src/layout/PlGrid/PlGrid.vue +3 -3
  727. package/src/layout/PlGrid/index.ts +1 -1
  728. package/src/layout/PlGrid/pl-grid.scss +1 -1
  729. package/src/layout/PlPlaceholder/PlPlaceholder.vue +19 -18
  730. package/src/layout/PlPlaceholder/index.ts +11 -14
  731. package/src/layout/PlPlaceholder/paint-worklet.js +6 -6
  732. package/src/layout/PlRow/PlRow.vue +2 -2
  733. package/src/layout/PlRow/index.ts +1 -1
  734. package/src/layout/PlRow/pl-row.scss +1 -1
  735. package/src/layout/PlSpacer/PlSpacer.vue +1 -1
  736. package/src/layout/PlSpacer/index.ts +1 -1
  737. package/src/types.ts +23 -17
  738. package/src/utils/DoubleContour.vue +18 -7
  739. package/src/utils/DropdownOverlay/DropdownOverlay.vue +13 -13
  740. package/src/utils/DropdownOverlay/index.ts +1 -1
  741. package/src/utils/PlCloseModalBtn.vue +1 -1
  742. package/src/utils/TextLabel.vue +1 -1
  743. package/src/utils/WebStopWatchElement.ts +5 -5
  744. package/src/utils/useLabelNotch.ts +12 -9
  745. package/src/utils/useValidation.ts +2 -2
  746. package/tsconfig.json +2 -7
  747. package/vitest.config.mts +9 -9
  748. package/.turbo/turbo-lint.log +0 -5
  749. package/eslint.config.mjs +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"PlFileInput.vue.js","sources":["../../../src/components/PlFileInput/PlFileInput.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport './pl-file-input.scss';\n\nimport { prettyBytes } from '@milaboratories/helpers';\nimport type { ImportFileHandle, ImportProgress } from '@platforma-sdk/model';\nimport { getFileNameFromHandle, getFilePathFromHandle } from '@platforma-sdk/model';\nimport { computed, reactive, ref, useSlots, watch } from 'vue';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport type { ImportedFiles } from '../../types';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport { PlFileDialog } from '../PlFileDialog';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport { PlTooltip } from '../PlTooltip';\n\nimport SvgRequired from '../../assets/images/required.svg?raw';\nimport { PlSvg } from '../PlSvg';\n\nconst data = reactive({\n fileDialogOpen: false,\n error: undefined as undefined | string,\n});\n\nconst slots = useSlots();\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: ImportFileHandle | undefined): void;\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current import file handle.\n */\n modelValue: ImportFileHandle | undefined;\n /**\n * The label to display above the input field.\n */\n label?: string;\n /**\n * If `true`, the input field is marked as required.\n */\n required?: boolean;\n /**\n * If `true`, the component border is dashed.\n */\n dashed?: boolean;\n /**\n * Allowed file extensions (should start with `.`)\n */\n extensions?: string[];\n /**\n * Placeholder text\n */\n placeholder?: string;\n /**\n * Import/Upload progress\n */\n progress?: ImportProgress;\n /**\n * An error message to display below the input field.\n */\n error?: unknown;\n /**\n * A helper text to display below the input field when there are no errors.\n */\n helper?: string;\n /**\n * Remove rounded border and change styles\n */\n cellStyle?: boolean;\n /**\n * File dialog title\n */\n fileDialogTitle?: string;\n /**\n * If `true`, the file dialog window closes when clicking outside the modal area (default: `true`)\n */\n fileDialogCloseOnOutsideClick?: boolean;\n }>(),\n {\n label: undefined,\n extensions: undefined,\n fileDialogTitle: undefined,\n placeholder: undefined,\n progress: undefined,\n error: undefined,\n helper: undefined,\n cellStyle: false,\n fileDialogCloseOnOutsideClick: true,\n },\n);\n\nconst tryValue = <T extends ImportFileHandle>(v: T | undefined, cb: (v: T) => string | undefined) => {\n if (!v) {\n return undefined;\n }\n\n try {\n return cb(v);\n } catch (err) {\n data.error = err instanceof Error ? err.message : String(err);\n return v;\n }\n};\n\nconst fileName = computed(() => tryValue(props.modelValue, getFileNameFromHandle));\n\nconst filePath = computed(() => tryValue(props.modelValue, getFilePathFromHandle));\n\nconst isUploading = computed(() => props.progress && !props.progress.done);\n\nconst isUploaded = computed(() => props.progress && props.progress.done);\n\nconst computedErrorMessage = computed(() => getErrorMessage(data.error, props.error));\n\nconst hasErrors = computed(() => typeof computedErrorMessage.value === 'string');\n\nconst uploadStats = computed(() => {\n const { status, done } = props.progress ?? {};\n\n if (!status || !status.bytesTotal) {\n return '';\n }\n\n if (status.bytesProcessed && !done) {\n return prettyBytes(status.bytesProcessed, {}) + ' / ' + prettyBytes(status.bytesTotal, {});\n }\n\n return prettyBytes(status.bytesTotal, {});\n});\n\nconst progressStyle = computed(() => {\n const { progress } = props;\n\n if (!progress) {\n return {};\n }\n\n return {\n width: progress.done ? '100%' : Math.round((progress.status?.progress ?? 0) * 100) + '%',\n };\n});\n\nconst openFileDialog = () => {\n data.fileDialogOpen = true;\n};\n\nconst onImport = (v: ImportedFiles) => {\n if (v.files.length) {\n emit('update:modelValue', v.files[0]);\n }\n};\n\nconst clear = () => emit('update:modelValue', undefined);\n\nwatch(\n () => props.modelValue,\n () => (data.error = undefined),\n { immediate: true },\n);\n\nconst rootRef = ref();\n\nif (!props.cellStyle) {\n useLabelNotch(rootRef);\n}\n</script>\n\n<template>\n <div :class=\"{ 'pl-file-input__cell-style': !!cellStyle, 'has-file': !!fileName }\" class=\"pl-file-input__envelope\">\n <div\n ref=\"rootRef\"\n :class=\"{ dashed, error: hasErrors }\"\n class=\"pl-file-input\"\n tabindex=\"0\"\n @keyup.enter=\"openFileDialog\"\n @click.stop=\"openFileDialog\"\n >\n <div :style=\"progressStyle\" class=\"pl-file-input__progress\" />\n <label v-if=\"!cellStyle && label\" ref=\"label\">\n <PlSvg v-if=\"required\" :uri=\"SvgRequired\" />\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip || filePath\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot v-if=\"slots.tooltip\" name=\"tooltip\" />\n <template v-else>{{ filePath }}</template>\n </template>\n </PlTooltip>\n </label>\n <PlMaskIcon24 v-if=\"hasErrors\" name=\"restart\" />\n <PlMaskIcon24 v-else-if=\"isUploading\" name=\"cloud-upload\" />\n <PlMaskIcon24 v-else-if=\"isUploaded\" name=\"success\" />\n <PlMaskIcon24 v-else name=\"paper-clip\" />\n <div :data-placeholder=\"placeholder ?? 'Choose file'\" class=\"pl-file-input__filename\">\n {{ fileName }}\n </div>\n <div v-if=\"uploadStats\" class=\"pl-file-input__stats\">{{ uploadStats }}</div>\n <PlMaskIcon24 v-if=\"modelValue\" class=\"pl-file-input__clear\" name=\"close\" @click.stop=\"clear\" />\n <DoubleContour class=\"pl-file-input__contour\" />\n </div>\n <div v-if=\"hasErrors\" class=\"pl-file-input__error\">\n {{ computedErrorMessage }}\n </div>\n <div v-else-if=\"helper\" class=\"pl-file-input__helper\">{{ helper }}</div>\n </div>\n <PlFileDialog\n v-model=\"data.fileDialogOpen\"\n :close-on-outside-click=\"fileDialogCloseOnOutsideClick\"\n :extensions=\"extensions\"\n :title=\"fileDialogTitle\"\n @import:files=\"onImport\"\n />\n</template>\n"],"names":["data","reactive","slots","useSlots","emit","__emit","props","__props","tryValue","v","cb","err","fileName","computed","getFileNameFromHandle","filePath","getFilePathFromHandle","isUploading","isUploaded","computedErrorMessage","getErrorMessage","hasErrors","uploadStats","status","done","prettyBytes","progressStyle","progress","_a","openFileDialog","onImport","clear","watch","rootRef","ref","useLabelNotch","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_unref","PlSvg","SvgRequired","PlTooltip","_renderSlot","_ctx","_Fragment","PlMaskIcon24","_hoisted_2","_hoisted_3","_toDisplayString","_createVNode","DoubleContour","_hoisted_4","_hoisted_5","PlFileDialog","_cache","$event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAAOC,EAAS;AAAA,MACpB,gBAAgB;AAAA,MAChB,OAAO;AAAA,IAAA,CACR,GAEKC,IAAQC,EAAA,GAERC,IAAOC,GAIPC,IAAQC,GAgERC,IAAW,CAA6BC,GAAkBC,MAAqC;AACnG,UAAKD;AAIL,YAAI;AACF,iBAAOC,EAAGD,CAAC;AAAA,QACb,SAASE,GAAK;AACZ,iBAAAX,EAAK,QAAQW,aAAe,QAAQA,EAAI,UAAU,OAAOA,CAAG,GACrDF;AAAA,QACT;AAAA,IACF,GAEMG,IAAWC,EAAS,MAAML,EAASF,EAAM,YAAYQ,CAAqB,CAAC,GAE3EC,IAAWF,EAAS,MAAML,EAASF,EAAM,YAAYU,CAAqB,CAAC,GAE3EC,IAAcJ,EAAS,MAAMP,EAAM,YAAY,CAACA,EAAM,SAAS,IAAI,GAEnEY,IAAaL,EAAS,MAAMP,EAAM,YAAYA,EAAM,SAAS,IAAI,GAEjEa,IAAuBN,EAAS,MAAMO,EAAgBpB,EAAK,OAAOM,EAAM,KAAK,CAAC,GAE9Ee,IAAYR,EAAS,MAAM,OAAOM,EAAqB,SAAU,QAAQ,GAEzEG,IAAcT,EAAS,MAAM;AACjC,YAAM,EAAE,QAAAU,GAAQ,MAAAC,EAAA,IAASlB,EAAM,YAAY,CAAA;AAE3C,aAAI,CAACiB,KAAU,CAACA,EAAO,aACd,KAGLA,EAAO,kBAAkB,CAACC,IACrBC,EAAYF,EAAO,gBAAgB,CAAA,CAAE,IAAI,QAAQE,EAAYF,EAAO,YAAY,EAAE,IAGpFE,EAAYF,EAAO,YAAY,EAAE;AAAA,IAC1C,CAAC,GAEKG,IAAgBb,EAAS,MAAM;;AACnC,YAAM,EAAE,UAAAc,MAAarB;AAErB,aAAKqB,IAIE;AAAA,QACL,OAAOA,EAAS,OAAO,SAAS,KAAK,SAAOC,IAAAD,EAAS,WAAT,gBAAAC,EAAiB,aAAY,KAAK,GAAG,IAAI;AAAA,MAAA,IAJ9E,CAAA;AAAA,IAMX,CAAC,GAEKC,IAAiB,MAAM;AAC3B,MAAA7B,EAAK,iBAAiB;AAAA,IACxB,GAEM8B,IAAW,CAACrB,MAAqB;AACrC,MAAIA,EAAE,MAAM,UACVL,EAAK,qBAAqBK,EAAE,MAAM,CAAC,CAAC;AAAA,IAExC,GAEMsB,IAAQ,MAAM3B,EAAK,qBAAqB,MAAS;AAEvD,IAAA4B;AAAA,MACE,MAAM1B,EAAM;AAAA,MACZ,MAAON,EAAK,QAAQ;AAAA,MACpB,EAAE,WAAW,GAAA;AAAA,IAAK;AAGpB,UAAMiC,IAAUC,EAAA;AAEhB,WAAK5B,EAAM,aACT6B,EAAcF,CAAO;MAKrBG,EAmCM,OAAA;AAAA,QAnCA,OAAKC,EAAA,CAAA,EAAA,6BAAA,CAAA,CAAmC9B,EAAA,WAAS,YAAA,CAAA,CAAgBK,EAAA,MAAA,GAAkB,yBAAyB,CAAA;AAAA,MAAA;QAChHwB,EA6BM,OAAA;AAAA,mBA5BA;AAAA,UAAJ,KAAIH;AAAA,UACH,OAAKI,EAAA,CAAA,EAAA,QAAI9B,EAAA,QAAM,OAASc,EAAA,MAAA,GACnB,eAAe,CAAA;AAAA,UACrB,UAAS;AAAA,UACR,WAAaQ,GAAc,CAAA,OAAA,CAAA;AAAA,UAC3B,WAAYA,GAAc,CAAA,MAAA,CAAA;AAAA,QAAA;UAE3BO,EAA8D,OAAA;AAAA,YAAxD,SAAOV,EAAA,KAAa;AAAA,YAAE,OAAM;AAAA,UAAA;UACpB,CAAAnB,EAAA,aAAaA,EAAA,SAA3B+B,KAAAC,EASQ,SATRC,IASQ;AAAA,YAROjC,EAAA,iBAAbkC,EAA4CC,EAAAC,EAAA,GAAA;AAAA;cAApB,KAAKD,EAAAE,CAAA;AAAA,YAAA;YAC7BR,EAAwB,gBAAf7B,EAAA,KAAK,GAAA,CAAA;AAAA,YACGmC,EAAAxC,CAAA,EAAM,WAAWa,EAAA,cAAlC0B,EAKYC,EAAAG,CAAA,GAAA;AAAA;cALgC,OAAM;AAAA,cAAO,UAAS;AAAA,YAAA;cACrD,WACT,MAA4C;AAAA,gBAAhCH,EAAAxC,CAAA,EAAM,UAAlB4C,EAA4CC,EAAA,QAAA,WAAA,EAAA,KAAA,GAAA,UAC5CR,EAA0CS,GAAA,EAAA,KAAA,KAAA;AAAA,sBAAtBjC,EAAA,KAAQ,GAAA,CAAA;AAAA,gBAAA;;;;;UAIdM,EAAA,cAApBoB,EAAgDC,EAAAO,CAAA,GAAA;AAAA;YAAjB,MAAK;AAAA,UAAA,MACXhC,EAAA,cAAzBwB,EAA4DC,EAAAO,CAAA,GAAA;AAAA;YAAtB,MAAK;AAAA,UAAA,MAClB/B,EAAA,cAAzBuB,EAAsDC,EAAAO,CAAA,GAAA;AAAA;YAAjB,MAAK;AAAA,UAAA,YAC1CR,EAAyCC,EAAAO,CAAA,GAAA;AAAA;YAApB,MAAK;AAAA,UAAA;UAC1Bb,EAEM,OAAA;AAAA,YAFA,oBAAkB7B,EAAA,eAAW;AAAA,YAAmB,OAAM;AAAA,UAAA,KACvDK,EAAA,KAAQ,GAAA,GAAAsC,EAAA;AAAA,UAEF5B,EAAA,cAAXiB,EAA4E,OAA5EY,IAA4EC,EAApB9B,EAAA,KAAW,GAAA,CAAA;UAC/Cf,EAAA,mBAApBkC,EAAgGC,EAAAO,CAAA,GAAA;AAAA;YAAhE,OAAM;AAAA,YAAuB,MAAK;AAAA,YAAS,WAAYlB,GAAK,CAAA,MAAA,CAAA;AAAA,UAAA;UAC5FsB,EAAgDC,GAAA,EAAjC,OAAM,0BAAwB;AAAA,QAAA;QAEpCjC,EAAA,cAAXkB,EAEM,OAFNgB,IAEMH,EADDjC,EAAA,KAAoB,GAAA,CAAA,KAETZ,EAAA,eAAhBgC,EAAwE,OAAxEiB,IAAwEJ,EAAf7C,EAAA,MAAM,GAAA,CAAA;;MAEjE8C,EAMEX,EAAAe,CAAA,GAAA;AAAA,QALS,YAAAzD,EAAK;AAAA,QAAL,uBAAA0D,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA3D,EAAK,iBAAc2D;AAAA,QAC3B,0BAAwBpD,EAAA;AAAA,QACxB,YAAYA,EAAA;AAAA,QACZ,OAAOA,EAAA;AAAA,QACP,kBAAcuB;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"PlFileInput.vue.js","sources":["../../../src/components/PlFileInput/PlFileInput.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport \"./pl-file-input.scss\";\n\nimport { prettyBytes } from \"@milaboratories/helpers\";\nimport type { ImportFileHandle, ImportProgress } from \"@platforma-sdk/model\";\nimport { getFileNameFromHandle, getFilePathFromHandle } from \"@platforma-sdk/model\";\nimport { computed, reactive, ref, useSlots, watch } from \"vue\";\nimport { getErrorMessage } from \"../../helpers/error.ts\";\nimport type { ImportedFiles } from \"../../types\";\nimport DoubleContour from \"../../utils/DoubleContour.vue\";\nimport { useLabelNotch } from \"../../utils/useLabelNotch\";\nimport { PlFileDialog } from \"../PlFileDialog\";\nimport { PlMaskIcon24 } from \"../PlMaskIcon24\";\nimport { PlTooltip } from \"../PlTooltip\";\n\nimport SvgRequired from \"../../assets/images/required.svg?raw\";\nimport { PlSvg } from \"../PlSvg\";\n\nconst data = reactive({\n fileDialogOpen: false,\n error: undefined as undefined | string,\n});\n\nconst slots = useSlots();\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", value: ImportFileHandle | undefined): void;\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current import file handle.\n */\n modelValue: ImportFileHandle | undefined;\n /**\n * The label to display above the input field.\n */\n label?: string;\n /**\n * If `true`, the input field is marked as required.\n */\n required?: boolean;\n /**\n * If `true`, the component border is dashed.\n */\n dashed?: boolean;\n /**\n * Allowed file extensions (should start with `.`)\n */\n extensions?: string[];\n /**\n * Placeholder text\n */\n placeholder?: string;\n /**\n * Import/Upload progress\n */\n progress?: ImportProgress;\n /**\n * An error message to display below the input field.\n */\n error?: unknown;\n /**\n * A helper text to display below the input field when there are no errors.\n */\n helper?: string;\n /**\n * Remove rounded border and change styles\n */\n cellStyle?: boolean;\n /**\n * File dialog title\n */\n fileDialogTitle?: string;\n /**\n * If `true`, the file dialog window closes when clicking outside the modal area (default: `true`)\n */\n fileDialogCloseOnOutsideClick?: boolean;\n }>(),\n {\n label: undefined,\n extensions: undefined,\n fileDialogTitle: undefined,\n placeholder: undefined,\n progress: undefined,\n error: undefined,\n helper: undefined,\n cellStyle: false,\n fileDialogCloseOnOutsideClick: true,\n },\n);\n\nconst tryValue = <T extends ImportFileHandle>(\n v: T | undefined,\n cb: (v: T) => string | undefined,\n) => {\n if (!v) {\n return undefined;\n }\n\n try {\n return cb(v);\n } catch (err) {\n data.error = err instanceof Error ? err.message : String(err);\n return v;\n }\n};\n\nconst fileName = computed(() => tryValue(props.modelValue, getFileNameFromHandle));\n\nconst filePath = computed(() => tryValue(props.modelValue, getFilePathFromHandle));\n\nconst isUploading = computed(() => props.progress && !props.progress.done);\n\nconst isUploaded = computed(() => props.progress && props.progress.done);\n\nconst computedErrorMessage = computed(() => getErrorMessage(data.error, props.error));\n\nconst hasErrors = computed(() => typeof computedErrorMessage.value === \"string\");\n\nconst uploadStats = computed(() => {\n const { status, done } = props.progress ?? {};\n\n if (!status || !status.bytesTotal) {\n return \"\";\n }\n\n if (status.bytesProcessed && !done) {\n return prettyBytes(status.bytesProcessed, {}) + \" / \" + prettyBytes(status.bytesTotal, {});\n }\n\n return prettyBytes(status.bytesTotal, {});\n});\n\nconst progressStyle = computed(() => {\n const { progress } = props;\n\n if (!progress) {\n return {};\n }\n\n return {\n width: progress.done ? \"100%\" : Math.round((progress.status?.progress ?? 0) * 100) + \"%\",\n };\n});\n\nconst openFileDialog = () => {\n data.fileDialogOpen = true;\n};\n\nconst onImport = (v: ImportedFiles) => {\n if (v.files.length) {\n emit(\"update:modelValue\", v.files[0]);\n }\n};\n\nconst clear = () => emit(\"update:modelValue\", undefined);\n\nwatch(\n () => props.modelValue,\n () => (data.error = undefined),\n { immediate: true },\n);\n\nconst rootRef = ref();\n\nif (!props.cellStyle) {\n useLabelNotch(rootRef);\n}\n</script>\n\n<template>\n <div\n :class=\"{ 'pl-file-input__cell-style': !!cellStyle, 'has-file': !!fileName }\"\n class=\"pl-file-input__envelope\"\n >\n <div\n ref=\"rootRef\"\n :class=\"{ dashed, error: hasErrors }\"\n class=\"pl-file-input\"\n tabindex=\"0\"\n @keyup.enter=\"openFileDialog\"\n @click.stop=\"openFileDialog\"\n >\n <div :style=\"progressStyle\" class=\"pl-file-input__progress\" />\n <label v-if=\"!cellStyle && label\" ref=\"label\">\n <PlSvg v-if=\"required\" :uri=\"SvgRequired\" />\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip || filePath\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot v-if=\"slots.tooltip\" name=\"tooltip\" />\n <template v-else>{{ filePath }}</template>\n </template>\n </PlTooltip>\n </label>\n <PlMaskIcon24 v-if=\"hasErrors\" name=\"restart\" />\n <PlMaskIcon24 v-else-if=\"isUploading\" name=\"cloud-upload\" />\n <PlMaskIcon24 v-else-if=\"isUploaded\" name=\"success\" />\n <PlMaskIcon24 v-else name=\"paper-clip\" />\n <div :data-placeholder=\"placeholder ?? 'Choose file'\" class=\"pl-file-input__filename\">\n {{ fileName }}\n </div>\n <div v-if=\"uploadStats\" class=\"pl-file-input__stats\">{{ uploadStats }}</div>\n <PlMaskIcon24\n v-if=\"modelValue\"\n class=\"pl-file-input__clear\"\n name=\"close\"\n @click.stop=\"clear\"\n />\n <DoubleContour class=\"pl-file-input__contour\" />\n </div>\n <div v-if=\"hasErrors\" class=\"pl-file-input__error\">\n {{ computedErrorMessage }}\n </div>\n <div v-else-if=\"helper\" class=\"pl-file-input__helper\">{{ helper }}</div>\n </div>\n <PlFileDialog\n v-model=\"data.fileDialogOpen\"\n :close-on-outside-click=\"fileDialogCloseOnOutsideClick\"\n :extensions=\"extensions\"\n :title=\"fileDialogTitle\"\n @import:files=\"onImport\"\n />\n</template>\n"],"names":["data","reactive","slots","useSlots","emit","__emit","props","__props","tryValue","v","cb","err","fileName","computed","getFileNameFromHandle","filePath","getFilePathFromHandle","isUploading","isUploaded","computedErrorMessage","getErrorMessage","hasErrors","uploadStats","status","done","prettyBytes","progressStyle","progress","_a","openFileDialog","onImport","clear","watch","rootRef","ref","useLabelNotch","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_unref","PlSvg","SvgRequired","PlTooltip","_renderSlot","_ctx","_Fragment","PlMaskIcon24","_hoisted_2","_hoisted_3","_toDisplayString","_createVNode","DoubleContour","_hoisted_4","_hoisted_5","PlFileDialog","_cache","$event"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlIcon16.vue2.js","sources":["../../../src/components/PlIcon16/PlIcon16.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MaskIconName16, Size } from '../../types';\nimport { PlSvg } from '../PlSvg';\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n name: MaskIconName16;\n size?: number | string | Size;\n color?: string | string[];\n stroke?: string | string[];\n}>();\n\nconst size = computed(() => {\n if (typeof props.size === 'string') {\n if (props.size === 'small') return 12;\n if (props.size === 'medium') return 16;\n if (props.size === 'large') return 24;\n }\n return props.size ?? 16;\n});\n</script>\n\n<template>\n <PlSvg\n :name=\"`16_${props.name}`\"\n :class=\"[$style.icon, 'icon-16', 'mask-16', `icon-${props.name}`, `mask-${props.name}`]\"\n :width=\"size\"\n :height=\"size\"\n :color=\"props.color\"\n :stroke=\"props.stroke\"\n />\n</template>\n\n<style module>\n.icon {\n /* pass color to svg variable */\n --svg-fill-0: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-1: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-2: var(--icon-color, var(--mask-icon-bg-color));\n display: inline-block;\n}\n</style>\n"],"names":["props","__props","size","computed","_createBlock","_unref","PlSvg","_normalizeClass","$style"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAQC,GAORC,IAAOC,EAAS,MAAM;AAC1B,UAAI,OAAOH,EAAM,QAAS,UAAU;AAClC,YAAIA,EAAM,SAAS,QAAS,QAAO;AACnC,YAAIA,EAAM,SAAS,SAAU,QAAO;AACpC,YAAIA,EAAM,SAAS,QAAS,QAAO;AAAA,MACrC;AACA,aAAOA,EAAM,QAAQ;AAAA,IACvB,CAAC;2BAICI,EAOEC,EAAAC,CAAA,GAAA;AAAA,MANC,MAAI,MAAQN,EAAM,IAAI;AAAA,MACtB,OAAKO,EAAA,CAAGC,EAAAA,OAAO,MAAI,WAAA,WAAA,QAAgCR,EAAM,IAAI,IAAA,QAAYA,EAAM,IAAI,EAAA,CAAA;AAAA,MACnF,OAAOE,EAAA;AAAA,MACP,QAAQA,EAAA;AAAA,MACR,OAAOF,EAAM;AAAA,MACb,QAAQA,EAAM;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"PlIcon16.vue2.js","sources":["../../../src/components/PlIcon16/PlIcon16.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MaskIconName16, Size } from \"../../types\";\nimport { PlSvg } from \"../PlSvg\";\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n name: MaskIconName16;\n size?: number | string | Size;\n color?: string | string[];\n stroke?: string | string[];\n}>();\n\nconst size = computed(() => {\n if (typeof props.size === \"string\") {\n if (props.size === \"small\") return 12;\n if (props.size === \"medium\") return 16;\n if (props.size === \"large\") return 24;\n }\n return props.size ?? 16;\n});\n</script>\n\n<template>\n <PlSvg\n :name=\"`16_${props.name}`\"\n :class=\"[$style.icon, 'icon-16', 'mask-16', `icon-${props.name}`, `mask-${props.name}`]\"\n :width=\"size\"\n :height=\"size\"\n :color=\"props.color\"\n :stroke=\"props.stroke\"\n />\n</template>\n\n<style module>\n.icon {\n /* pass color to svg variable */\n --svg-fill-0: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-1: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-2: var(--icon-color, var(--mask-icon-bg-color));\n display: inline-block;\n}\n</style>\n"],"names":["props","__props","size","computed","_createBlock","_unref","PlSvg","_normalizeClass","$style"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAQC,GAORC,IAAOC,EAAS,MAAM;AAC1B,UAAI,OAAOH,EAAM,QAAS,UAAU;AAClC,YAAIA,EAAM,SAAS,QAAS,QAAO;AACnC,YAAIA,EAAM,SAAS,SAAU,QAAO;AACpC,YAAIA,EAAM,SAAS,QAAS,QAAO;AAAA,MACrC;AACA,aAAOA,EAAM,QAAQ;AAAA,IACvB,CAAC;2BAICI,EAOEC,EAAAC,CAAA,GAAA;AAAA,MANC,MAAI,MAAQN,EAAM,IAAI;AAAA,MACtB,OAAKO,EAAA,CAAGC,EAAAA,OAAO,MAAI,WAAA,WAAA,QAAgCR,EAAM,IAAI,IAAA,QAAYA,EAAM,IAAI,EAAA,CAAA;AAAA,MACnF,OAAOE,EAAA;AAAA,MACP,QAAQA,EAAA;AAAA,MACR,OAAOF,EAAM;AAAA,MACb,QAAQA,EAAM;AAAA,IAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlIcon24.vue2.js","sources":["../../../src/components/PlIcon24/PlIcon24.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MaskIconName24, Size } from '../../types';\nimport { PlSvg } from '../PlSvg';\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n name: MaskIconName24;\n size?: number | string | Size;\n color?: string | string[];\n stroke?: string | string[];\n}>();\n\nconst size = computed(() => {\n if (typeof props.size === 'string') {\n if (props.size === 'small') return 16;\n if (props.size === 'medium') return 24;\n if (props.size === 'large') return 32;\n }\n return props.size ?? 24;\n});\n</script>\n\n<template>\n <PlSvg\n :name=\"`24_${props.name}`\"\n :class=\"['icon-24', 'mask-24', `icon-${props.name}`, `mask-${props.name}`, $style.icon]\"\n :width=\"size\"\n :height=\"size\"\n :color=\"props.color\"\n :stroke=\"props.stroke\"\n />\n</template>\n\n<style module>\n.icon {\n /* pass color to svg variable */\n --svg-fill-0: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-1: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-2: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-3: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-4: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-5: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-6: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-0: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-1: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-2: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-3: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-4: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-5: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-6: var(--icon-color, var(--mask-icon-bg-color));\n display: inline-block;\n}\n</style>\n"],"names":["props","__props","size","computed","_createBlock","_unref","PlSvg","_normalizeClass","$style"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAQC,GAORC,IAAOC,EAAS,MAAM;AAC1B,UAAI,OAAOH,EAAM,QAAS,UAAU;AAClC,YAAIA,EAAM,SAAS,QAAS,QAAO;AACnC,YAAIA,EAAM,SAAS,SAAU,QAAO;AACpC,YAAIA,EAAM,SAAS,QAAS,QAAO;AAAA,MACrC;AACA,aAAOA,EAAM,QAAQ;AAAA,IACvB,CAAC;2BAICI,EAOEC,EAAAC,CAAA,GAAA;AAAA,MANC,MAAI,MAAQN,EAAM,IAAI;AAAA,MACtB,OAAKO,EAAA,CAAA,WAAA,WAAA,QAAiCP,EAAM,IAAI,IAAA,QAAYA,EAAM,IAAI,IAAIQ,EAAAA,OAAO,IAAI,CAAA;AAAA,MACrF,OAAON,EAAA;AAAA,MACP,QAAQA,EAAA;AAAA,MACR,OAAOF,EAAM;AAAA,MACb,QAAQA,EAAM;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"PlIcon24.vue2.js","sources":["../../../src/components/PlIcon24/PlIcon24.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MaskIconName24, Size } from \"../../types\";\nimport { PlSvg } from \"../PlSvg\";\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n name: MaskIconName24;\n size?: number | string | Size;\n color?: string | string[];\n stroke?: string | string[];\n}>();\n\nconst size = computed(() => {\n if (typeof props.size === \"string\") {\n if (props.size === \"small\") return 16;\n if (props.size === \"medium\") return 24;\n if (props.size === \"large\") return 32;\n }\n return props.size ?? 24;\n});\n</script>\n\n<template>\n <PlSvg\n :name=\"`24_${props.name}`\"\n :class=\"['icon-24', 'mask-24', `icon-${props.name}`, `mask-${props.name}`, $style.icon]\"\n :width=\"size\"\n :height=\"size\"\n :color=\"props.color\"\n :stroke=\"props.stroke\"\n />\n</template>\n\n<style module>\n.icon {\n /* pass color to svg variable */\n --svg-fill-0: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-1: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-2: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-3: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-4: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-5: var(--icon-color, var(--mask-icon-bg-color));\n --svg-fill-6: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-0: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-1: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-2: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-3: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-4: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-5: var(--icon-color, var(--mask-icon-bg-color));\n --svg-stroke-6: var(--icon-color, var(--mask-icon-bg-color));\n display: inline-block;\n}\n</style>\n"],"names":["props","__props","size","computed","_createBlock","_unref","PlSvg","_normalizeClass","$style"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAQC,GAORC,IAAOC,EAAS,MAAM;AAC1B,UAAI,OAAOH,EAAM,QAAS,UAAU;AAClC,YAAIA,EAAM,SAAS,QAAS,QAAO;AACnC,YAAIA,EAAM,SAAS,SAAU,QAAO;AACpC,YAAIA,EAAM,SAAS,QAAS,QAAO;AAAA,MACrC;AACA,aAAOA,EAAM,QAAQ;AAAA,IACvB,CAAC;2BAICI,EAOEC,EAAAC,CAAA,GAAA;AAAA,MANC,MAAI,MAAQN,EAAM,IAAI;AAAA,MACtB,OAAKO,EAAA,CAAA,WAAA,WAAA,QAAiCP,EAAM,IAAI,IAAA,QAAYA,EAAM,IAAI,IAAIQ,EAAAA,OAAO,IAAI,CAAA;AAAA,MACrF,OAAON,EAAA;AAAA,MACP,QAAQA,EAAA;AAAA,MACR,OAAOF,EAAM;AAAA,MACb,QAAQA,EAAM;AAAA,IAAA;;;"}
@@ -1,5 +1,5 @@
1
1
  type __VLS_Props = {
2
- size?: '16' | '24' | '48' | string;
2
+ size?: "16" | "24" | "48" | string;
3
3
  };
4
4
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
5
5
  size: "16" | "24" | "48" | string;
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderCircular.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLoaderCircular/PlLoaderCircular.vue"],"names":[],"mappings":"AAkBA,OAAO,2BAA2B,CAAC;AAEnC,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CACpC,CAAC;;UADO,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;;AA4DpC,wBAQG"}
1
+ {"version":3,"file":"PlLoaderCircular.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLoaderCircular/PlLoaderCircular.vue"],"names":[],"mappings":"AAoCA,OAAO,2BAA2B,CAAC;AAEnC,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CACpC,CAAC;;UADO,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;;AAmEtC,wBAQG"}
@@ -11,7 +11,11 @@ const a = { class: "pl-loader-circular" }, o = {
11
11
  setup(e) {
12
12
  return (n, d) => (r(), c("div", a, [
13
13
  l("div", {
14
- style: t({ height: `${e.size}px`, width: `${e.size}px`, "--main-color": `${+e.size < 48 ? "var(--ic-01)" : "var(--ic-02)"}` }),
14
+ style: t({
15
+ height: `${e.size}px`,
16
+ width: `${e.size}px`,
17
+ "--main-color": `${+e.size < 48 ? "var(--ic-01)" : "var(--ic-02)"}`
18
+ }),
15
19
  class: "pl-circle-loader__wrapper"
16
20
  }, [
17
21
  (r(), c("svg", o, [
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderCircular.vue.js","sources":["../../../src/components/PlLoaderCircular/PlLoaderCircular.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport './pl-loader-circular.scss';\n\nwithDefaults(defineProps<{\n size?: '16' | '24' | '48' | string;\n}>(), { size: '16' });\n</script>\n<template>\n <div class=\"pl-loader-circular\">\n <div :style=\"{height: `${size}px`, width: `${size}px`, '--main-color': `${+size < 48 ? 'var(--ic-01)' :'var(--ic-02)' }`}\" class=\"pl-circle-loader__wrapper\">\n <svg class=\"pl-loader-circular__svg\" viewBox=\"25 25 50 50\">\n <circle class=\"pl-loader-circular__svg-circle\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" :stroke=\"`${+size < 48 ? 'var(--ic-01)' :'var(--ic-02)' }`\" stroke-width=\"2\" />\n </svg>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","__props","_hoisted_2"],"mappings":";;;;;;;;;;;sBAQEA,EAAA,GAAAC,EAMM,OANNC,GAMM;AAAA,MALJC,EAIM,OAAA;AAAA,QAJA,OAAKC,EAAA,EAAA,QAAA,GAAcC,EAAA,IAAI,MAAA,OAAA,GAAgBA,EAAA,IAAI,0BAA0BA,EAAA,OAAI,KAAA,iBAAA,cAAA,IAAA;AAAA,QAA4C,OAAM;AAAA,MAAA;SAC/HL,KAAAC,EAEM,OAFNK,GAEM;AAAA,UADJH,EAAiK,UAAA;AAAA,YAAzJ,OAAM;AAAA,YAAiC,IAAG;AAAA,YAAK,IAAG;AAAA,YAAK,GAAE;AAAA,YAAK,MAAK;AAAA,YAAQ,YAAYE,EAAA,OAAI,KAAA,iBAAA,cAAA;AAAA,YAA2C,gBAAa;AAAA,UAAA;;;;;;"}
1
+ {"version":3,"file":"PlLoaderCircular.vue.js","sources":["../../../src/components/PlLoaderCircular/PlLoaderCircular.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport \"./pl-loader-circular.scss\";\n\nwithDefaults(\n defineProps<{\n size?: \"16\" | \"24\" | \"48\" | string;\n }>(),\n { size: \"16\" },\n);\n</script>\n<template>\n <div class=\"pl-loader-circular\">\n <div\n :style=\"{\n height: `${size}px`,\n width: `${size}px`,\n '--main-color': `${+size < 48 ? 'var(--ic-01)' : 'var(--ic-02)'}`,\n }\"\n class=\"pl-circle-loader__wrapper\"\n >\n <svg class=\"pl-loader-circular__svg\" viewBox=\"25 25 50 50\">\n <circle\n class=\"pl-loader-circular__svg-circle\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n :stroke=\"`${+size < 48 ? 'var(--ic-01)' : 'var(--ic-02)'}`\"\n stroke-width=\"2\"\n />\n </svg>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","__props","_hoisted_2"],"mappings":";;;;;;;;;;;sBAWEA,EAAA,GAAAC,EAqBM,OArBNC,GAqBM;AAAA,MApBJC,EAmBM,OAAA;AAAA,QAlBH,OAAKC,EAAA;AAAA,qBAAuBC,EAAA,IAAI;AAAA,oBAAwBA,EAAA,IAAI;AAAA,8BAAkCA,EAAA,OAAI,KAAA,iBAAA,cAAA;AAAA,QAAA;QAKnG,OAAM;AAAA,MAAA;SAENL,KAAAC,EAUM,OAVNK,GAUM;AAAA,UATJH,EAQE,UAAA;AAAA,YAPA,OAAM;AAAA,YACN,IAAG;AAAA,YACH,IAAG;AAAA,YACH,GAAE;AAAA,YACF,MAAK;AAAA,YACJ,YAAYE,EAAA,OAAI,KAAA,iBAAA,cAAA;AAAA,YACjB,gBAAa;AAAA,UAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderLogo.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlLoaderLogo.vue"],"names":[],"mappings":"AAkEA,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;;AAuFF,wBAOG"}
1
+ {"version":3,"file":"PlLoaderLogo.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlLoaderLogo.vue"],"names":[],"mappings":"AAgEA,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;;AAuFF,wBAOG"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as n, useCssVars as h, unref as t, computed as v, useCssModule as d, createElementBlock as z, openBlock as u, normalizeClass as m, createStaticVNode as i } from "vue";
1
+ import { defineComponent as n, useCssVars as h, unref as t, computed as v, useCssModule as z, createElementBlock as d, openBlock as u, normalizeClass as m, createStaticVNode as i } from "vue";
2
2
  const M = /* @__PURE__ */ n({
3
3
  __name: "PlLoaderLogo",
4
4
  props: {
@@ -6,19 +6,19 @@ const M = /* @__PURE__ */ n({
6
6
  color: {},
7
7
  backgroundColor: {}
8
8
  },
9
- setup(c) {
9
+ setup(e) {
10
10
  h((l) => ({
11
- v6f3479fe: r.value,
12
- v66cc33d5: t(p),
13
- v4373ac63: t(s)
11
+ v292e9844: r.value,
12
+ v0b1a86b2: t(p),
13
+ v08750100: t(s)
14
14
  }));
15
- const o = c, e = d(), r = v(
15
+ const o = e, c = z(), r = v(
16
16
  () => typeof o.size == "number" ? CSS.px(o.size).toString() : o.size
17
17
  ), s = o.color ?? "currentColor", p = o.backgroundColor ?? "var(--color-div-bw)";
18
- return (l, a) => (u(), z("svg", {
18
+ return (l, a) => (u(), d("svg", {
19
19
  viewBox: "0 0 64 64",
20
20
  xmlns: "http://www.w3.org/2000/svg",
21
- class: m(t(e).root)
21
+ class: m(t(c).root)
22
22
  }, [...a[0] || (a[0] = [
23
23
  i('<path d="m32 3 26 15H6z"></path><path d="M32 18h26v28H32z"></path><path d="M32 45.5h26L32 61z"></path><path d="M6 39h26v22L6 46z"></path><path d="M6 30h26v8H6z"></path><path d="M6 18h26v12H6z"></path><path d="M28.816 1.834c.788-.423 1.357-.671 1.947-.796a6 6 0 0 1 2.474 0c.59.125 1.159.373 1.947.796.578.295 1.26.685 2.141 1.189l17.411 9.956a67 67 0 0 1 1.88 1.098c.853.511 1.397.896 1.83 1.375a6 6 0 0 1 1.258 2.167c.296.907.296 1.922.296 3.951v20.858c0 2.029 0 3.043-.296 3.95a6 6 0 0 1-1.258 2.168c-.433.479-.977.864-1.83 1.376-.504.31-1.116.66-1.88 1.097l-17.41 9.956c-.882.504-1.563.893-2.14 1.188-.79.424-1.358.672-1.949.796a6 6 0 0 1-2.474 0c-.59-.124-1.16-.372-1.948-.796-.578-.295-1.259-.684-2.14-1.188l-17.41-9.956a69 69 0 0 1-1.88-1.097c-.853-.512-1.397-.897-1.831-1.376a6 6 0 0 1-1.258-2.167C4 45.47 4 44.457 4 42.428V21.57c0-2.03 0-3.044.296-3.95a6 6 0 0 1 1.258-2.168c.434-.479.977-.864 1.83-1.375a68 68 0 0 1 1.88-1.098l17.411-9.956c.882-.504 1.563-.894 2.14-1.19M8 27.997V19.99h21.964v8.006zm0 8.005v-4.003h21.964v4.003zM29.964 58.33 8 45.722v-5.718h21.964zm22.051-10.32L34.037 58.33V48.01zM56 19.99v24.016H34.037V19.99zm-44.016-4L32 4.499l20.016 11.49z"></path>', 7)
24
24
  ])], 2));
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderLogo.vue2.js","sources":["../../src/components/PlLoaderLogo.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useCssModule } from 'vue';\n\nconst props = defineProps<{\n size?: number | string;\n color?: string;\n backgroundColor?: string;\n}>();\n\nconst styles = useCssModule();\n\nconst size = computed(() =>\n typeof props.size === 'number' ? CSS.px(props.size).toString() : props.size,\n);\n\nconst color = props.color ?? 'currentColor';\nconst backgroundColor = props.backgroundColor ?? 'var(--color-div-bw)';\n</script>\n\n<template>\n <svg\n viewBox=\"0 0 64 64\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :class=\"styles.root\"\n >\n <path d=\"m32 3 26 15H6z\" />\n <path d=\"M32 18h26v28H32z\" />\n <path d=\"M32 45.5h26L32 61z\" />\n <path d=\"M6 39h26v22L6 46z\" />\n <path d=\"M6 30h26v8H6z\" />\n <path d=\"M6 18h26v12H6z\" />\n <path d=\"M28.816 1.834c.788-.423 1.357-.671 1.947-.796a6 6 0 0 1 2.474 0c.59.125 1.159.373 1.947.796.578.295 1.26.685 2.141 1.189l17.411 9.956a67 67 0 0 1 1.88 1.098c.853.511 1.397.896 1.83 1.375a6 6 0 0 1 1.258 2.167c.296.907.296 1.922.296 3.951v20.858c0 2.029 0 3.043-.296 3.95a6 6 0 0 1-1.258 2.168c-.433.479-.977.864-1.83 1.376-.504.31-1.116.66-1.88 1.097l-17.41 9.956c-.882.504-1.563.893-2.14 1.188-.79.424-1.358.672-1.949.796a6 6 0 0 1-2.474 0c-.59-.124-1.16-.372-1.948-.796-.578-.295-1.259-.684-2.14-1.188l-17.41-9.956a69 69 0 0 1-1.88-1.097c-.853-.512-1.397-.897-1.831-1.376a6 6 0 0 1-1.258-2.167C4 45.47 4 44.457 4 42.428V21.57c0-2.03 0-3.044.296-3.95a6 6 0 0 1 1.258-2.168c.434-.479.977-.864 1.83-1.375a68 68 0 0 1 1.88-1.098l17.411-9.956c.882-.504 1.563-.894 2.14-1.19M8 27.997V19.99h21.964v8.006zm0 8.005v-4.003h21.964v4.003zM29.964 58.33 8 45.722v-5.718h21.964zm22.051-10.32L34.037 58.33V48.01zM56 19.99v24.016H34.037V19.99zm-44.016-4L32 4.499l20.016 11.49z\" />\n </svg>\n</template>\n\n<style module>\n.root {\n min-block-size: v-bind(size);\n max-block-size: v-bind(size);\n min-inline-size: v-bind(size);\n max-inline-size: v-bind(size);\n fill-rule: evenodd;\n path {\n &:not(:last-of-type) {\n fill: v-bind(backgroundColor);\n animation-duration: 1s;\n animation-delay: calc(1s / 6 * (sibling-index() - 1));\n animation-iteration-count: infinite;\n animation-name: flash;\n }\n &:last-of-type {\n fill: v-bind(color);\n }\n }\n}\n\n@keyframes flash {\n from {\n fill: v-bind(color);\n }\n}\n</style>\n"],"names":["props","__props","styles","useCssModule","size","computed","color","backgroundColor","_createElementBlock","_normalizeClass","_unref"],"mappings":";;;;;;;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAASC,EAAA,GAETC,IAAOC;AAAA,MAAS,MACpB,OAAOL,EAAM,QAAS,WAAW,IAAI,GAAGA,EAAM,IAAI,EAAE,SAAA,IAAaA,EAAM;AAAA,IAAA,GAGnEM,IAAQN,EAAM,SAAS,gBACvBO,IAAkBP,EAAM,mBAAmB;2BAI/CQ,EAYM,OAAA;AAAA,MAXJ,SAAQ;AAAA,MACR,OAAM;AAAA,MACL,OAAKC,EAAEC,EAAAR,CAAA,EAAO,IAAI;AAAA,IAAA;;;;;"}
1
+ {"version":3,"file":"PlLoaderLogo.vue2.js","sources":["../../src/components/PlLoaderLogo.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useCssModule } from \"vue\";\n\nconst props = defineProps<{\n size?: number | string;\n color?: string;\n backgroundColor?: string;\n}>();\n\nconst styles = useCssModule();\n\nconst size = computed(() =>\n typeof props.size === \"number\" ? CSS.px(props.size).toString() : props.size,\n);\n\nconst color = props.color ?? \"currentColor\";\nconst backgroundColor = props.backgroundColor ?? \"var(--color-div-bw)\";\n</script>\n\n<template>\n <svg viewBox=\"0 0 64 64\" xmlns=\"http://www.w3.org/2000/svg\" :class=\"styles.root\">\n <path d=\"m32 3 26 15H6z\" />\n <path d=\"M32 18h26v28H32z\" />\n <path d=\"M32 45.5h26L32 61z\" />\n <path d=\"M6 39h26v22L6 46z\" />\n <path d=\"M6 30h26v8H6z\" />\n <path d=\"M6 18h26v12H6z\" />\n <path\n d=\"M28.816 1.834c.788-.423 1.357-.671 1.947-.796a6 6 0 0 1 2.474 0c.59.125 1.159.373 1.947.796.578.295 1.26.685 2.141 1.189l17.411 9.956a67 67 0 0 1 1.88 1.098c.853.511 1.397.896 1.83 1.375a6 6 0 0 1 1.258 2.167c.296.907.296 1.922.296 3.951v20.858c0 2.029 0 3.043-.296 3.95a6 6 0 0 1-1.258 2.168c-.433.479-.977.864-1.83 1.376-.504.31-1.116.66-1.88 1.097l-17.41 9.956c-.882.504-1.563.893-2.14 1.188-.79.424-1.358.672-1.949.796a6 6 0 0 1-2.474 0c-.59-.124-1.16-.372-1.948-.796-.578-.295-1.259-.684-2.14-1.188l-17.41-9.956a69 69 0 0 1-1.88-1.097c-.853-.512-1.397-.897-1.831-1.376a6 6 0 0 1-1.258-2.167C4 45.47 4 44.457 4 42.428V21.57c0-2.03 0-3.044.296-3.95a6 6 0 0 1 1.258-2.168c.434-.479.977-.864 1.83-1.375a68 68 0 0 1 1.88-1.098l17.411-9.956c.882-.504 1.563-.894 2.14-1.19M8 27.997V19.99h21.964v8.006zm0 8.005v-4.003h21.964v4.003zM29.964 58.33 8 45.722v-5.718h21.964zm22.051-10.32L34.037 58.33V48.01zM56 19.99v24.016H34.037V19.99zm-44.016-4L32 4.499l20.016 11.49z\"\n />\n </svg>\n</template>\n\n<style module>\n.root {\n min-block-size: v-bind(size);\n max-block-size: v-bind(size);\n min-inline-size: v-bind(size);\n max-inline-size: v-bind(size);\n fill-rule: evenodd;\n path {\n &:not(:last-of-type) {\n fill: v-bind(backgroundColor);\n animation-duration: 1s;\n animation-delay: calc(1s / 6 * (sibling-index() - 1));\n animation-iteration-count: infinite;\n animation-name: flash;\n }\n &:last-of-type {\n fill: v-bind(color);\n }\n }\n}\n\n@keyframes flash {\n from {\n fill: v-bind(color);\n }\n}\n</style>\n"],"names":["props","__props","styles","useCssModule","size","computed","color","backgroundColor","_createElementBlock","_normalizeClass","_unref"],"mappings":";;;;;;;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAASC,EAAA,GAETC,IAAOC;AAAA,MAAS,MACpB,OAAOL,EAAM,QAAS,WAAW,IAAI,GAAGA,EAAM,IAAI,EAAE,SAAA,IAAaA,EAAM;AAAA,IAAA,GAGnEM,IAAQN,EAAM,SAAS,gBACvBO,IAAkBP,EAAM,mBAAmB;2BAI/CQ,EAUM,OAAA;AAAA,MAVD,SAAQ;AAAA,MAAY,OAAM;AAAA,MAA8B,OAAKC,EAAEC,EAAAR,CAAA,EAAO,IAAI;AAAA,IAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLogView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLogView/PlLogView.vue"],"names":[],"mappings":"AAuLA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAStF;;GAEG;;IAWD;;OAEG;YACK,MAAM;IACd;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,YAAY;IACxB;;OAEG;qBACc,MAAM;IACvB;;OAEG;YACK,OAAO;IACf;;OAEG;aACM,gBAAgB,CAAC,OAAO,CAAC;IAClC;;OAEG;iBACU,MAAM;IACnB;;OAEG;oBACa,SAAS;IACzB;;OAEG;YACK,MAAM;IACd;;OAEG;wBACiB,OAAO;IAC3B;;OAEG;uBACgB,MAAM;;IA3CzB;;OAEG;YACK,MAAM;IACd;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,YAAY;IACxB;;OAEG;qBACc,MAAM;IACvB;;OAEG;YACK,OAAO;IACf;;OAEG;aACM,gBAAgB,CAAC,OAAO,CAAC;IAClC;;OAEG;iBACU,MAAM;IACnB;;OAEG;oBACa,SAAS;IACzB;;OAEG;YACK,MAAM;IACd;;OAEG;wBACiB,OAAO;IAC3B;;OAEG;uBACgB,MAAM;;;;;qBAmOE,GAAG;;AAxRhC,wBA8UK;AASL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlLogView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLogView/PlLogView.vue"],"names":[],"mappings":"AA6LA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAStF;;GAEG;;IAWD;;OAEG;YACK,MAAM;IACd;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,YAAY;IACxB;;OAEG;qBACc,MAAM;IACvB;;OAEG;YACK,OAAO;IACf;;OAEG;aACM,gBAAgB,CAAC,OAAO,CAAC;IAClC;;OAEG;iBACU,MAAM;IACnB;;OAEG;oBACa,SAAS;IACzB;;OAEG;YACK,MAAM;IACd;;OAEG;wBACiB,OAAO;IAC3B;;OAEG;uBACgB,MAAM;;IA3CzB;;OAEG;YACK,MAAM;IACd;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,YAAY;IACxB;;OAEG;qBACc,MAAM;IACvB;;OAEG;YACK,OAAO;IACf;;OAEG;aACM,gBAAgB,CAAC,OAAO,CAAC;IAClC;;OAEG;iBACU,MAAM;IACnB;;OAEG;oBACa,SAAS;IACzB;;OAEG;YACK,MAAM;IACd;;OAEG;wBACiB,OAAO;IAC3B;;OAEG;uBACgB,MAAM;;;;;qBAuOE,GAAG;;AA5RhC,wBAkVK;AASL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -33,13 +33,17 @@ const M = { key: 0 }, G = { class: "pl-log-view__copy" }, J = {
33
33
  if (o && o.ok === !1)
34
34
  return o.errors.join(`
35
35
  `);
36
- }, V = F(), t = n, g = O(t), k = c(!0), w = c(), _ = c(), f = u(() => {
37
- var o;
38
- return ((o = g.value) == null ? void 0 : o.error) ?? t.error ?? x(t.output);
39
- }), a = u(() => {
40
- var o;
41
- return ((o = g.value) == null ? void 0 : o.lines) ?? t.value ?? $(t.output);
42
- }), C = u(() => {
36
+ }, V = F(), t = n, g = O(t), k = c(!0), w = c(), _ = c(), f = u(
37
+ () => {
38
+ var o;
39
+ return ((o = g.value) == null ? void 0 : o.error) ?? t.error ?? x(t.output);
40
+ }
41
+ ), a = u(
42
+ () => {
43
+ var o;
44
+ return ((o = g.value) == null ? void 0 : o.lines) ?? t.value ?? $(t.output);
45
+ }
46
+ ), C = u(() => {
43
47
  if (t.valueToCopy)
44
48
  return t.valueToCopy;
45
49
  if (a.value && typeof a.value == "string")
@@ -1 +1 @@
1
- {"version":3,"file":"PlLogView.vue.js","sources":["../../../src/components/PlLogView/PlLogView.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Log Viewer Component\n */\nexport default {\n name: 'PlLogView',\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, useSlots, watch } from 'vue';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport './pl-log-view.scss';\nimport { okOptional, tapIf } from '@milaboratories/helpers';\nimport type { AnyLogHandle, OutputWithStatus, Platforma } from '@platforma-sdk/model';\nimport { useLogHandle } from './useLogHandle';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { PlTooltip } from '../PlTooltip';\nimport { PlIcon24 } from '../PlIcon24';\nimport { downloadContent } from '../../helpers/dom';\n\nconst getOutputError = <T>(o?: OutputWithStatus<T>) => {\n if (o && o.ok === false) {\n return o.errors.join('\\n');\n }\n};\n\nconst slots = useSlots();\n\nconst props = defineProps<{\n /**\n * String contents\n */\n value?: string;\n /**\n * The content to copy (Note: it takes precedence over value property)\n */\n valueToCopy?: string;\n /**\n * AnyLogHandle\n */\n logHandle?: AnyLogHandle;\n /**\n * Custom progress prefix (to filter logHandle results)\n */\n progressPrefix?: string;\n /**\n * String contents\n */\n error?: unknown;\n /**\n * Block output (Note: error and value take precedence over output property)\n */\n output?: OutputWithStatus<unknown>;\n /**\n * Max retries for AnyLogHandle fetch (with the same parameters)\n */\n maxRetries?: number;\n /**\n * @TODO\n */\n mockPlatforma?: Platforma;\n /**\n * The label to display above the texarea.\n */\n label?: string;\n /**\n * Do not scroll to bottom on content change. Default is false (scroll to bottom).\n */\n disableAutoScroll?: boolean;\n /**\n * If provided, a download icon will be shown and the content will be downloaded when clicked.\n */\n downloadFilename?: string;\n}>();\n\nconst logState = useLogHandle(props);\n\nconst isAnchored = ref<boolean>(true);\n\nconst contentRef = ref<HTMLElement>();\n\nconst root = ref<HTMLInputElement>();\n\nconst computedError = computed(() => logState.value?.error ?? props.error ?? getOutputError(props.output));\n\nconst computedValue = computed(() => logState.value?.lines ?? props.value ?? okOptional(props.output));\n\nconst computedValueToCopy = computed(() => {\n if (props.valueToCopy) {\n return props.valueToCopy;\n }\n if (computedValue.value && typeof computedValue.value === 'string') {\n return computedValue.value;\n }\n return undefined;\n});\n\nconst copyActive = ref(false);\n\nuseLabelNotch(root);\n\nconst iconName = computed(() => (copyActive.value ? 'clipboard-copied' : 'clipboard'));\n\nconst onClickCopy = () => {\n copyActive.value = true;\n setTimeout(() => {\n copyActive.value = false;\n }, 1200);\n\n const toCopy = computedValueToCopy.value;\n\n if (toCopy !== undefined) {\n navigator.clipboard.writeText(toCopy);\n }\n};\n\nconst onClickDownload = (filename: string) => {\n const toDownload = computedValueToCopy.value;\n\n if (toDownload !== undefined) {\n downloadContent([toDownload, 'text/plain'], filename);\n }\n};\n\nconst optionallyScrollDown = () => {\n if (props.disableAutoScroll) {\n return;\n }\n\n tapIf(contentRef.value, (el) => {\n if (isAnchored.value) {\n el.scrollTo(el.scrollLeft, el.scrollHeight);\n }\n });\n};\n\nwatch(\n computedValue,\n () => {\n requestAnimationFrame(() => {\n optionallyScrollDown();\n });\n },\n { immediate: true },\n);\n\nconst onContentScroll = (ev: Event) => {\n const el = ev.target as HTMLElement;\n isAnchored.value = el.scrollTop + 20 /* ~ 1 line height */ >= el.scrollHeight - el.offsetHeight;\n};\n</script>\n\n<template>\n <div ref=\"root\" class=\"pl-log-view\" :class=\"{ 'has-error': computedError }\">\n <label v-if=\"label\">\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <DoubleContour class=\"pl-log-view__contour\" />\n <div class=\"pl-log-view__copy\">\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24 title=\"Copy content\" :name=\"iconName\" @click=\"onClickCopy\" />\n <template #tooltip>{{ copyActive ? 'copied' : 'copy' }}</template>\n </PlTooltip>\n <PlTooltip v-if=\"downloadFilename\" :close-delay=\"800\" position=\"top\">\n <PlIcon24 name=\"download\" @click=\"() => onClickDownload(downloadFilename!)\" />\n <template #tooltip>download</template>\n </PlTooltip>\n </div>\n <div v-if=\"computedError\" class=\"pl-log-view__error\">{{ computedError }}</div>\n <div v-else ref=\"contentRef\" class=\"pl-log-view__content\" @scroll=\"onContentScroll\">{{ computedValue }}</div>\n </div>\n</template>\n"],"names":["__default__","getOutputError","slots","useSlots","props","__props","logState","useLogHandle","isAnchored","ref","contentRef","root","computedError","computed","_a","computedValue","okOptional","computedValueToCopy","copyActive","useLabelNotch","iconName","onClickCopy","toCopy","onClickDownload","filename","toDownload","downloadContent","optionallyScrollDown","tapIf","el","watch","onContentScroll","ev","_createElementBlock","_normalizeClass","_hoisted_1","_createElementVNode","_unref","_createBlock","PlTooltip","_renderSlot","_ctx","_createVNode","DoubleContour","_hoisted_2","PlMaskIcon24","_cache","PlIcon24","_hoisted_3","_toDisplayString"],"mappings":";;;;;;;;;;;;;GAIAA,IAAe;AAAA,EACb,MAAM;AACR;;;;;;;;;;;;;;;;AAgBA,UAAMC,IAAiB,CAAI,MAA4B;AACrD,UAAI,KAAK,EAAE,OAAO;AAChB,eAAO,EAAE,OAAO,KAAK;AAAA,CAAI;AAAA,IAE7B,GAEMC,IAAQC,EAAA,GAERC,IAAQC,GA+CRC,IAAWC,EAAaH,CAAK,GAE7BI,IAAaC,EAAa,EAAI,GAE9BC,IAAaD,EAAA,GAEbE,IAAOF,EAAA,GAEPG,IAAgBC,EAAS,MAAA;;AAAM,eAAAC,IAAAR,EAAS,UAAT,gBAAAQ,EAAgB,UAASV,EAAM,SAASH,EAAeG,EAAM,MAAM;AAAA,KAAC,GAEnGW,IAAgBF,EAAS,MAAA;;AAAM,eAAAC,IAAAR,EAAS,UAAT,gBAAAQ,EAAgB,UAASV,EAAM,SAASY,EAAWZ,EAAM,MAAM;AAAA,KAAC,GAE/Fa,IAAsBJ,EAAS,MAAM;AACzC,UAAIT,EAAM;AACR,eAAOA,EAAM;AAEf,UAAIW,EAAc,SAAS,OAAOA,EAAc,SAAU;AACxD,eAAOA,EAAc;AAAA,IAGzB,CAAC,GAEKG,IAAaT,EAAI,EAAK;AAE5B,IAAAU,EAAcR,CAAI;AAElB,UAAMS,IAAWP,EAAS,MAAOK,EAAW,QAAQ,qBAAqB,WAAY,GAE/EG,IAAc,MAAM;AACxB,MAAAH,EAAW,QAAQ,IACnB,WAAW,MAAM;AACf,QAAAA,EAAW,QAAQ;AAAA,MACrB,GAAG,IAAI;AAEP,YAAMI,IAASL,EAAoB;AAEnC,MAAIK,MAAW,UACb,UAAU,UAAU,UAAUA,CAAM;AAAA,IAExC,GAEMC,IAAkB,CAACC,MAAqB;AAC5C,YAAMC,IAAaR,EAAoB;AAEvC,MAAIQ,MAAe,UACjBC,EAAgB,CAACD,GAAY,YAAY,GAAGD,CAAQ;AAAA,IAExD,GAEMG,IAAuB,MAAM;AACjC,MAAIvB,EAAM,qBAIVwB,EAAMlB,EAAW,OAAO,CAACmB,MAAO;AAC9B,QAAIrB,EAAW,SACbqB,EAAG,SAASA,EAAG,YAAYA,EAAG,YAAY;AAAA,MAE9C,CAAC;AAAA,IACH;AAEA,IAAAC;AAAA,MACEf;AAAA,MACA,MAAM;AACJ,8BAAsB,MAAM;AAC1B,UAAAY,EAAA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK;AAGpB,UAAMI,IAAkB,CAACC,MAAc;AACrC,YAAMH,IAAKG,EAAG;AACd,MAAAxB,EAAW,QAAQqB,EAAG,YAAY,MAA4BA,EAAG,eAAeA,EAAG;AAAA,IACrF;2BAIEI,EAsBM,OAAA;AAAA,eAtBG;AAAA,MAAJ,KAAItB;AAAA,MAAO,OAAKuB,EAAA,CAAC,eAAa,EAAA,aAAwBtB,EAAA,OAAa,CAAA;AAAA,IAAA;MACzDP,EAAA,cAAb4B,EAOQ,SAAAE,GAAA;AAAA,QANNC,EAAwB,gBAAf/B,EAAA,KAAK,GAAA,CAAA;AAAA,QACGgC,EAAAnC,CAAA,EAAM,gBAAvBoC,EAIYD,EAAAE,CAAA,GAAA;AAAA;UAJoB,OAAM;AAAA,UAAO,UAAS;AAAA,QAAA;UACzC,WACT,MAAuB;AAAA,YAAvBC,EAAuBC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;MAI7BC,EAA8CC,GAAA,EAA/B,OAAM,wBAAsB;AAAA,MAC3CP,EASM,OATNQ,GASM;AAAA,QARJF,EAGYL,EAAAE,CAAA,GAAA;AAAA,UAHA,eAAa;AAAA,UAAK,UAAS;AAAA,QAAA;UAE1B,WAAQ,MAAoC;AAAA,gBAAjCrB,EAAA,QAAU,WAAA,MAAA,GAAA,CAAA;AAAA,UAAA;qBADhC,MAA2E;AAAA,YAA3EwB,EAA2EL,EAAAQ,CAAA,GAAA;AAAA,cAA7D,OAAM;AAAA,cAAgB,MAAMzB,EAAA;AAAA,cAAW,SAAOC;AAAA,YAAA;;;;QAG7ChB,EAAA,yBAAjBiC,EAGYD,EAAAE,CAAA,GAAA;AAAA;UAHwB,eAAa;AAAA,UAAK,UAAS;AAAA,QAAA;UAElD,WAAQ,MAAQ,CAAA,GAAAO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,cAAR,YAAQ,EAAA;AAAA,UAAA;qBAD3B,MAA8E;AAAA,YAA9EJ,EAA8EL,EAAAU,CAAA,GAAA;AAAA,cAApE,MAAK;AAAA,cAAY,SAAKD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,MAAQvB,EAAgBlB,EAAA,gBAAgB;AAAA,YAAA;;;;;MAIjEO,EAAA,cAAXqB,EAA8E,OAA9Ee,GAA8EC,EAAtBrC,EAAA,KAAa,GAAA,CAAA,WACrEqB,EAA6G,OAAA;AAAA;iBAA7F;AAAA,QAAJ,KAAIvB;AAAA,QAAa,OAAM;AAAA,QAAwB,UAAQqB;AAAA,MAAA,KAAoBhB,EAAA,KAAa,GAAA,GAAA;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"PlLogView.vue.js","sources":["../../../src/components/PlLogView/PlLogView.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Log Viewer Component\n */\nexport default {\n name: \"PlLogView\",\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, useSlots, watch } from \"vue\";\nimport { PlMaskIcon24 } from \"../PlMaskIcon24\";\nimport \"./pl-log-view.scss\";\nimport { okOptional, tapIf } from \"@milaboratories/helpers\";\nimport type { AnyLogHandle, OutputWithStatus, Platforma } from \"@platforma-sdk/model\";\nimport { useLogHandle } from \"./useLogHandle\";\nimport { useLabelNotch } from \"../../utils/useLabelNotch\";\nimport DoubleContour from \"../../utils/DoubleContour.vue\";\nimport { PlTooltip } from \"../PlTooltip\";\nimport { PlIcon24 } from \"../PlIcon24\";\nimport { downloadContent } from \"../../helpers/dom\";\n\nconst getOutputError = <T,>(o?: OutputWithStatus<T>) => {\n if (o && o.ok === false) {\n return o.errors.join(\"\\n\");\n }\n};\n\nconst slots = useSlots();\n\nconst props = defineProps<{\n /**\n * String contents\n */\n value?: string;\n /**\n * The content to copy (Note: it takes precedence over value property)\n */\n valueToCopy?: string;\n /**\n * AnyLogHandle\n */\n logHandle?: AnyLogHandle;\n /**\n * Custom progress prefix (to filter logHandle results)\n */\n progressPrefix?: string;\n /**\n * String contents\n */\n error?: unknown;\n /**\n * Block output (Note: error and value take precedence over output property)\n */\n output?: OutputWithStatus<unknown>;\n /**\n * Max retries for AnyLogHandle fetch (with the same parameters)\n */\n maxRetries?: number;\n /**\n * @TODO\n */\n mockPlatforma?: Platforma;\n /**\n * The label to display above the texarea.\n */\n label?: string;\n /**\n * Do not scroll to bottom on content change. Default is false (scroll to bottom).\n */\n disableAutoScroll?: boolean;\n /**\n * If provided, a download icon will be shown and the content will be downloaded when clicked.\n */\n downloadFilename?: string;\n}>();\n\nconst logState = useLogHandle(props);\n\nconst isAnchored = ref<boolean>(true);\n\nconst contentRef = ref<HTMLElement>();\n\nconst root = ref<HTMLInputElement>();\n\nconst computedError = computed(\n () => logState.value?.error ?? props.error ?? getOutputError(props.output),\n);\n\nconst computedValue = computed(\n () => logState.value?.lines ?? props.value ?? okOptional(props.output),\n);\n\nconst computedValueToCopy = computed(() => {\n if (props.valueToCopy) {\n return props.valueToCopy;\n }\n if (computedValue.value && typeof computedValue.value === \"string\") {\n return computedValue.value;\n }\n return undefined;\n});\n\nconst copyActive = ref(false);\n\nuseLabelNotch(root);\n\nconst iconName = computed(() => (copyActive.value ? \"clipboard-copied\" : \"clipboard\"));\n\nconst onClickCopy = () => {\n copyActive.value = true;\n setTimeout(() => {\n copyActive.value = false;\n }, 1200);\n\n const toCopy = computedValueToCopy.value;\n\n if (toCopy !== undefined) {\n navigator.clipboard.writeText(toCopy);\n }\n};\n\nconst onClickDownload = (filename: string) => {\n const toDownload = computedValueToCopy.value;\n\n if (toDownload !== undefined) {\n downloadContent([toDownload, \"text/plain\"], filename);\n }\n};\n\nconst optionallyScrollDown = () => {\n if (props.disableAutoScroll) {\n return;\n }\n\n tapIf(contentRef.value, (el) => {\n if (isAnchored.value) {\n el.scrollTo(el.scrollLeft, el.scrollHeight);\n }\n });\n};\n\nwatch(\n computedValue,\n () => {\n requestAnimationFrame(() => {\n optionallyScrollDown();\n });\n },\n { immediate: true },\n);\n\nconst onContentScroll = (ev: Event) => {\n const el = ev.target as HTMLElement;\n isAnchored.value = el.scrollTop + 20 /* ~ 1 line height */ >= el.scrollHeight - el.offsetHeight;\n};\n</script>\n\n<template>\n <div ref=\"root\" class=\"pl-log-view\" :class=\"{ 'has-error': computedError }\">\n <label v-if=\"label\">\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <DoubleContour class=\"pl-log-view__contour\" />\n <div class=\"pl-log-view__copy\">\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24 title=\"Copy content\" :name=\"iconName\" @click=\"onClickCopy\" />\n <template #tooltip>{{ copyActive ? \"copied\" : \"copy\" }}</template>\n </PlTooltip>\n <PlTooltip v-if=\"downloadFilename\" :close-delay=\"800\" position=\"top\">\n <PlIcon24 name=\"download\" @click=\"() => onClickDownload(downloadFilename!)\" />\n <template #tooltip>download</template>\n </PlTooltip>\n </div>\n <div v-if=\"computedError\" class=\"pl-log-view__error\">{{ computedError }}</div>\n <div v-else ref=\"contentRef\" class=\"pl-log-view__content\" @scroll=\"onContentScroll\">\n {{ computedValue }}\n </div>\n </div>\n</template>\n"],"names":["__default__","getOutputError","slots","useSlots","props","__props","logState","useLogHandle","isAnchored","ref","contentRef","root","computedError","computed","_a","computedValue","okOptional","computedValueToCopy","copyActive","useLabelNotch","iconName","onClickCopy","toCopy","onClickDownload","filename","toDownload","downloadContent","optionallyScrollDown","tapIf","el","watch","onContentScroll","ev","_createElementBlock","_normalizeClass","_hoisted_1","_createElementVNode","_unref","_createBlock","PlTooltip","_renderSlot","_ctx","_createVNode","DoubleContour","_hoisted_2","PlMaskIcon24","_cache","PlIcon24","_hoisted_3","_toDisplayString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLogHandle.d.ts","sourceRoot":"","sources":["../../../src/components/PlLogView/useLogHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAc,MAAM,KAAK,CAAC;AAE1D,OAAO,EAA2B,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElG,KAAK,QAAQ,GAAG;IACd,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AASF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC;IAAE,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,iEAqFlI"}
1
+ {"version":3,"file":"useLogHandle.d.ts","sourceRoot":"","sources":["../../../src/components/PlLogView/useLogHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAc,MAAM,KAAK,CAAC;AAE1D,OAAO,EAA2B,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElG,KAAK,QAAQ,GAAG;IACd,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AASF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,iEAoGH"}
@@ -19,7 +19,11 @@ function O(t) {
19
19
  return;
20
20
  }
21
21
  for (; ; ) {
22
- const a = await o.logDriver.readText(e.logHandle, 100, e.lastOffset);
22
+ const a = await o.logDriver.readText(
23
+ e.logHandle,
24
+ 100,
25
+ e.lastOffset
26
+ );
23
27
  if (e.error = void 0, n.errorCount = 0, a.shouldUpdateHandle || e.logHandle !== ((l = r.value) == null ? void 0 : l.logHandle)) return;
24
28
  const f = t.progressPrefix ?? h, u = new TextDecoder().decode(a.data).replace(new RegExp(`${P(f)}`, "g"), "");
25
29
  if (e = Object.assign(e, {
@@ -31,7 +35,10 @@ function O(t) {
31
35
  }
32
36
  const i = g(() => s().catch((e) => {
33
37
  r.value && (n.errorCount++, n.errorCount > (t.maxRetries ?? 3) ? r.value.error = e : console.warn("skip error:", e, "retry..."));
34
- }), 1500, { immediate: !1, immediateCallback: !0 });
38
+ }), 1500, {
39
+ immediate: !1,
40
+ immediateCallback: !0
41
+ });
35
42
  return v(
36
43
  () => {
37
44
  var e;
@@ -42,7 +49,13 @@ function O(t) {
42
49
  () => t.logHandle,
43
50
  (e) => {
44
51
  var o;
45
- e === void 0 ? (r.value = void 0, i.pause()) : e !== ((o = r.value) == null ? void 0 : o.logHandle) && (r.value = { logHandle: e, lastOffset: 0, lines: "", finished: !1, error: void 0 }, n.errorCount = 0, i.resume());
52
+ e === void 0 ? (r.value = void 0, i.pause()) : e !== ((o = r.value) == null ? void 0 : o.logHandle) && (r.value = {
53
+ logHandle: e,
54
+ lastOffset: 0,
55
+ lines: "",
56
+ finished: !1,
57
+ error: void 0
58
+ }, n.errorCount = 0, i.resume());
46
59
  },
47
60
  { immediate: !0 }
48
61
  ), r;
@@ -1 +1 @@
1
- {"version":3,"file":"useLogHandle.js","sources":["../../../src/components/PlLogView/useLogHandle.ts"],"sourcesContent":["import { reactive, type Reactive, ref, watch } from 'vue';\nimport { useTimeoutPoll, whenever } from '@vueuse/core';\nimport { getRawPlatformaInstance, type AnyLogHandle, type Platforma } from '@platforma-sdk/model';\n\ntype LogState = {\n logHandle: AnyLogHandle;\n lines: string;\n lastOffset: number;\n finished: boolean;\n error: unknown;\n};\n\nconst ProgressPrefixDefault = '[==PROGRESS==]'; // @TODO ?\n\n// from here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping\nfunction escapeRegExp(str: string) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nexport function useLogHandle(\n props: Reactive<{ logHandle: AnyLogHandle | undefined; maxRetries?: number; mockPlatforma?: Platforma; progressPrefix?: string }>,\n) {\n const logState = ref<LogState>();\n\n const data = reactive({\n errorCount: 0,\n });\n\n async function fetchLogs() {\n // making a snapshot of the ref\n let currentLogState: LogState | undefined = logState.value;\n\n if (currentLogState === undefined) return;\n\n const platforma = props.mockPlatforma ?? getRawPlatformaInstance();\n\n if (!platforma) {\n console.warn('Platforma API is not available');\n return;\n }\n\n while (true) {\n const result = await platforma.logDriver.readText(currentLogState.logHandle, 100, currentLogState.lastOffset);\n\n currentLogState.error = undefined;\n\n data.errorCount = 0;\n\n if (result.shouldUpdateHandle) return;\n\n // somebody changed target log while we were fetching log data\n // @TODO There may be a situation where the new descriptor points to the same file and we don't need to reread it\n if (currentLogState.logHandle !== logState.value?.logHandle) return;\n\n const progressPrefix = props.progressPrefix ?? ProgressPrefixDefault;\n\n const newLines = new TextDecoder().decode(result.data).replace(new RegExp(`${escapeRegExp(progressPrefix)}`, 'g'), '');\n\n // We simply change it in a mutable way: if logHandle has been changed, it points to the new object\n currentLogState = Object.assign(currentLogState, {\n lines: currentLogState.lines + newLines,\n lastOffset: result.newOffset,\n finished: !result.live,\n });\n\n if (result.newOffset >= result.size) break;\n }\n }\n\n const fetchAndCatch = () =>\n fetchLogs().catch((err) => {\n if (logState.value) {\n data.errorCount++;\n if (data.errorCount > (props.maxRetries ?? 3)) {\n logState.value.error = err;\n } else {\n console.warn('skip error:', err, 'retry...');\n }\n }\n });\n\n // Only trigger after last fetch is done\n const timeoutPoll = useTimeoutPoll(fetchAndCatch, 1500, { immediate: false, immediateCallback: true });\n\n whenever(\n () => logState?.value?.finished,\n () => timeoutPoll.pause(),\n );\n\n watch(\n () => props.logHandle,\n (lh) => {\n if (lh === undefined) {\n logState.value = undefined;\n timeoutPoll.pause();\n } else if (lh !== logState.value?.logHandle) {\n logState.value = { logHandle: lh, lastOffset: 0, lines: '', finished: false, error: undefined };\n data.errorCount = 0;\n timeoutPoll.resume();\n }\n },\n { immediate: true },\n );\n\n return logState;\n}\n"],"names":["ProgressPrefixDefault","escapeRegExp","str","useLogHandle","props","logState","ref","data","reactive","fetchLogs","currentLogState","platforma","getRawPlatformaInstance","result","_a","progressPrefix","newLines","timeoutPoll","useTimeoutPoll","err","whenever","watch","lh"],"mappings":";;;AAYA,MAAMA,IAAwB;AAG9B,SAASC,EAAaC,GAAa;AACjC,SAAOA,EAAI,QAAQ,uBAAuB,MAAM;AAClD;AAEO,SAASC,EACdC,GACA;AACA,QAAMC,IAAWC,EAAA,GAEXC,IAAOC,EAAS;AAAA,IACpB,YAAY;AAAA,EAAA,CACb;AAED,iBAAeC,IAAY;;AAEzB,QAAIC,IAAwCL,EAAS;AAErD,QAAIK,MAAoB,OAAW;AAEnC,UAAMC,IAAYP,EAAM,iBAAiBQ,EAAA;AAEzC,QAAI,CAACD,GAAW;AACd,cAAQ,KAAK,gCAAgC;AAC7C;AAAA,IACF;AAEA,eAAa;AACX,YAAME,IAAS,MAAMF,EAAU,UAAU,SAASD,EAAgB,WAAW,KAAKA,EAAgB,UAAU;AAU5G,UARAA,EAAgB,QAAQ,QAExBH,EAAK,aAAa,GAEdM,EAAO,sBAIPH,EAAgB,gBAAcI,IAAAT,EAAS,UAAT,gBAAAS,EAAgB,WAAW;AAE7D,YAAMC,IAAiBX,EAAM,kBAAkBJ,GAEzCgB,IAAW,IAAI,YAAA,EAAc,OAAOH,EAAO,IAAI,EAAE,QAAQ,IAAI,OAAO,GAAGZ,EAAac,CAAc,CAAC,IAAI,GAAG,GAAG,EAAE;AASrH,UANAL,IAAkB,OAAO,OAAOA,GAAiB;AAAA,QAC/C,OAAOA,EAAgB,QAAQM;AAAA,QAC/B,YAAYH,EAAO;AAAA,QACnB,UAAU,CAACA,EAAO;AAAA,MAAA,CACnB,GAEGA,EAAO,aAAaA,EAAO,KAAM;AAAA,IACvC;AAAA,EACF;AAeA,QAAMI,IAAcC,EAbE,MACpBT,EAAA,EAAY,MAAM,CAACU,MAAQ;AACzB,IAAId,EAAS,UACXE,EAAK,cACDA,EAAK,cAAcH,EAAM,cAAc,KACzCC,EAAS,MAAM,QAAQc,IAEvB,QAAQ,KAAK,eAAeA,GAAK,UAAU;AAAA,EAGjD,CAAC,GAG+C,MAAM,EAAE,WAAW,IAAO,mBAAmB,IAAM;AAErG,SAAAC;AAAA,IACE,MAAA;;AAAM,cAAAN,IAAAT,KAAA,gBAAAA,EAAU,UAAV,gBAAAS,EAAiB;AAAA;AAAA,IACvB,MAAMG,EAAY,MAAA;AAAA,EAAM,GAG1BI;AAAA,IACE,MAAMjB,EAAM;AAAA,IACZ,CAACkB,MAAO;;AACN,MAAIA,MAAO,UACTjB,EAAS,QAAQ,QACjBY,EAAY,MAAA,KACHK,QAAOR,IAAAT,EAAS,UAAT,gBAAAS,EAAgB,eAChCT,EAAS,QAAQ,EAAE,WAAWiB,GAAI,YAAY,GAAG,OAAO,IAAI,UAAU,IAAO,OAAO,OAAA,GACpFf,EAAK,aAAa,GAClBU,EAAY,OAAA;AAAA,IAEhB;AAAA,IACA,EAAE,WAAW,GAAA;AAAA,EAAK,GAGbZ;AACT;"}
1
+ {"version":3,"file":"useLogHandle.js","sources":["../../../src/components/PlLogView/useLogHandle.ts"],"sourcesContent":["import { reactive, type Reactive, ref, watch } from \"vue\";\nimport { useTimeoutPoll, whenever } from \"@vueuse/core\";\nimport { getRawPlatformaInstance, type AnyLogHandle, type Platforma } from \"@platforma-sdk/model\";\n\ntype LogState = {\n logHandle: AnyLogHandle;\n lines: string;\n lastOffset: number;\n finished: boolean;\n error: unknown;\n};\n\nconst ProgressPrefixDefault = \"[==PROGRESS==]\"; // @TODO ?\n\n// from here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping\nfunction escapeRegExp(str: string) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function useLogHandle(\n props: Reactive<{\n logHandle: AnyLogHandle | undefined;\n maxRetries?: number;\n mockPlatforma?: Platforma;\n progressPrefix?: string;\n }>,\n) {\n const logState = ref<LogState>();\n\n const data = reactive({\n errorCount: 0,\n });\n\n async function fetchLogs() {\n // making a snapshot of the ref\n let currentLogState: LogState | undefined = logState.value;\n\n if (currentLogState === undefined) return;\n\n const platforma = props.mockPlatforma ?? getRawPlatformaInstance();\n\n if (!platforma) {\n console.warn(\"Platforma API is not available\");\n return;\n }\n\n while (true) {\n const result = await platforma.logDriver.readText(\n currentLogState.logHandle,\n 100,\n currentLogState.lastOffset,\n );\n\n currentLogState.error = undefined;\n\n data.errorCount = 0;\n\n if (result.shouldUpdateHandle) return;\n\n // somebody changed target log while we were fetching log data\n // @TODO There may be a situation where the new descriptor points to the same file and we don't need to reread it\n if (currentLogState.logHandle !== logState.value?.logHandle) return;\n\n const progressPrefix = props.progressPrefix ?? ProgressPrefixDefault;\n\n const newLines = new TextDecoder()\n .decode(result.data)\n .replace(new RegExp(`${escapeRegExp(progressPrefix)}`, \"g\"), \"\");\n\n // We simply change it in a mutable way: if logHandle has been changed, it points to the new object\n currentLogState = Object.assign(currentLogState, {\n lines: currentLogState.lines + newLines,\n lastOffset: result.newOffset,\n finished: !result.live,\n });\n\n if (result.newOffset >= result.size) break;\n }\n }\n\n const fetchAndCatch = () =>\n fetchLogs().catch((err) => {\n if (logState.value) {\n data.errorCount++;\n if (data.errorCount > (props.maxRetries ?? 3)) {\n logState.value.error = err;\n } else {\n console.warn(\"skip error:\", err, \"retry...\");\n }\n }\n });\n\n // Only trigger after last fetch is done\n const timeoutPoll = useTimeoutPoll(fetchAndCatch, 1500, {\n immediate: false,\n immediateCallback: true,\n });\n\n whenever(\n () => logState?.value?.finished,\n () => timeoutPoll.pause(),\n );\n\n watch(\n () => props.logHandle,\n (lh) => {\n if (lh === undefined) {\n logState.value = undefined;\n timeoutPoll.pause();\n } else if (lh !== logState.value?.logHandle) {\n logState.value = {\n logHandle: lh,\n lastOffset: 0,\n lines: \"\",\n finished: false,\n error: undefined,\n };\n data.errorCount = 0;\n timeoutPoll.resume();\n }\n },\n { immediate: true },\n );\n\n return logState;\n}\n"],"names":["ProgressPrefixDefault","escapeRegExp","str","useLogHandle","props","logState","ref","data","reactive","fetchLogs","currentLogState","platforma","getRawPlatformaInstance","result","_a","progressPrefix","newLines","timeoutPoll","useTimeoutPoll","err","whenever","watch","lh"],"mappings":";;;AAYA,MAAMA,IAAwB;AAG9B,SAASC,EAAaC,GAAa;AACjC,SAAOA,EAAI,QAAQ,uBAAuB,MAAM;AAClD;AAEO,SAASC,EACdC,GAMA;AACA,QAAMC,IAAWC,EAAA,GAEXC,IAAOC,EAAS;AAAA,IACpB,YAAY;AAAA,EAAA,CACb;AAED,iBAAeC,IAAY;;AAEzB,QAAIC,IAAwCL,EAAS;AAErD,QAAIK,MAAoB,OAAW;AAEnC,UAAMC,IAAYP,EAAM,iBAAiBQ,EAAA;AAEzC,QAAI,CAACD,GAAW;AACd,cAAQ,KAAK,gCAAgC;AAC7C;AAAA,IACF;AAEA,eAAa;AACX,YAAME,IAAS,MAAMF,EAAU,UAAU;AAAA,QACvCD,EAAgB;AAAA,QAChB;AAAA,QACAA,EAAgB;AAAA,MAAA;AAWlB,UARAA,EAAgB,QAAQ,QAExBH,EAAK,aAAa,GAEdM,EAAO,sBAIPH,EAAgB,gBAAcI,IAAAT,EAAS,UAAT,gBAAAS,EAAgB,WAAW;AAE7D,YAAMC,IAAiBX,EAAM,kBAAkBJ,GAEzCgB,IAAW,IAAI,YAAA,EAClB,OAAOH,EAAO,IAAI,EAClB,QAAQ,IAAI,OAAO,GAAGZ,EAAac,CAAc,CAAC,IAAI,GAAG,GAAG,EAAE;AASjE,UANAL,IAAkB,OAAO,OAAOA,GAAiB;AAAA,QAC/C,OAAOA,EAAgB,QAAQM;AAAA,QAC/B,YAAYH,EAAO;AAAA,QACnB,UAAU,CAACA,EAAO;AAAA,MAAA,CACnB,GAEGA,EAAO,aAAaA,EAAO,KAAM;AAAA,IACvC;AAAA,EACF;AAeA,QAAMI,IAAcC,EAbE,MACpBT,EAAA,EAAY,MAAM,CAACU,MAAQ;AACzB,IAAId,EAAS,UACXE,EAAK,cACDA,EAAK,cAAcH,EAAM,cAAc,KACzCC,EAAS,MAAM,QAAQc,IAEvB,QAAQ,KAAK,eAAeA,GAAK,UAAU;AAAA,EAGjD,CAAC,GAG+C,MAAM;AAAA,IACtD,WAAW;AAAA,IACX,mBAAmB;AAAA,EAAA,CACpB;AAED,SAAAC;AAAA,IACE,MAAA;;AAAM,cAAAN,IAAAT,KAAA,gBAAAA,EAAU,UAAV,gBAAAS,EAAiB;AAAA;AAAA,IACvB,MAAMG,EAAY,MAAA;AAAA,EAAM,GAG1BI;AAAA,IACE,MAAMjB,EAAM;AAAA,IACZ,CAACkB,MAAO;;AACN,MAAIA,MAAO,UACTjB,EAAS,QAAQ,QACjBY,EAAY,MAAA,KACHK,QAAOR,IAAAT,EAAS,UAAT,gBAAAS,EAAgB,eAChCT,EAAS,QAAQ;AAAA,QACf,WAAWiB;AAAA,QACX,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU;AAAA,QACV,OAAO;AAAA,MAAA,GAETf,EAAK,aAAa,GAClBU,EAAY,OAAA;AAAA,IAEhB;AAAA,IACA,EAAE,WAAW,GAAA;AAAA,EAAK,GAGbZ;AACT;"}
@@ -1,5 +1,5 @@
1
1
  type __VLS_Props = {
2
- type?: 'success' | 'error' | 'warning' | 'neutral';
2
+ type?: "success" | "error" | "warning" | "neutral";
3
3
  width?: string;
4
4
  closable?: boolean;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PlNotificationAlert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNotificationAlert/PlNotificationAlert.vue"],"names":[],"mappings":"AAyCA,OAAO,8BAA8B,CAAC;AAEtC,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAMJ,QAAA,MAAM,KAAK,2DAAgD,CAAC;AAa5D,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAgET,OAAO,IAA6B;;yBAXrB,GAAG;yBACH,GAAG;;;;EAe/B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;WA/GT,MAAM;UADP,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS;6EAwHpD,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlNotificationAlert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNotificationAlert/PlNotificationAlert.vue"],"names":[],"mappings":"AA8CA,OAAO,8BAA8B,CAAC;AAEtC,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAMJ,QAAA,MAAM,KAAK,2DAAgD,CAAC;AAa5D,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAgET,OAAO,IAA6B;;yBAXrB,GAAG;yBACH,GAAG;;;;EAe/B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;WA/GT,MAAM;UADP,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS;6EAwHpD,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,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":"PlNotificationAlert.vue.js","sources":["../../../src/components/PlNotificationAlert/PlNotificationAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlBtnGhost } from '../PlBtnGhost';\nimport './pl-notification-alert.scss';\n\nconst props = withDefaults(\n defineProps<{\n type?: 'success' | 'error' | 'warning' | 'neutral';\n width?: string;\n closable?: boolean;\n }>(),\n { type: 'neutral', width: '256px' },\n);\n\nconst model = defineModel({ type: Boolean, default: true });\n\nfunction closeAlert() {\n if (props.closable) {\n model.value = false;\n }\n}\n</script>\n\n<template>\n <div v-if=\"model\" :class=\"type\" :style=\"{ width: `${width}` }\" class=\"pl-notification-alert d-flex flex-column gap-16\">\n <div class=\"pl-notification-alert__wrapper d-flex text-s\">\n <div class=\"pl-notification-alert__content flex-grow-1\">\n <slot />\n </div>\n <div v-if=\"closable\" class=\"pl-notification-alert__close\">\n <PlBtnGhost icon=\"close\" @click.stop=\"closeAlert\" />\n </div>\n </div>\n\n <div v-if=\"!!$slots.actions\" class=\"pl-notification-alert__actions d-flex\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"names":["props","__props","model","_useModel","closeAlert","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_hoisted_2","_renderSlot","_ctx","_openBlock","_hoisted_3","_createVNode","_unref","PlBtnGhost","$slots","_hoisted_4"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GASRC,IAAQC,iBAA4C;AAE1D,aAASC,IAAa;AACpB,MAAIJ,EAAM,aACRE,EAAM,QAAQ;AAAA,IAElB;qBAIaA,EAAA,cAAXG,EAaM,OAAA;AAAA;MAba,OAAKC,EAAA,CAAEL,EAAA,MAA2C,iDAAiD,CAAA;AAAA,MAArF,qBAAmBA,EAAA,KAAK,IAAA;AAAA,IAAA;MACvDM,EAOM,OAPNC,GAOM;AAAA,QANJD,EAEM,OAFNE,GAEM;AAAA,UADJC,EAAQC,EAAA,QAAA,SAAA;AAAA,QAAA;QAECV,EAAA,YAAXW,EAAA,GAAAP,EAEM,OAFNQ,GAEM;AAAA,UADJC,EAAoDC,EAAAC,CAAA,GAAA;AAAA,YAAxC,MAAK;AAAA,YAAS,WAAYZ,GAAU,CAAA,MAAA,CAAA;AAAA,UAAA;;;MAIvCa,EAAAA,OAAO,WAApBL,EAAA,GAAAP,EAEM,OAFNa,GAEM;AAAA,QADJR,EAAuBC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"PlNotificationAlert.vue.js","sources":["../../../src/components/PlNotificationAlert/PlNotificationAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlBtnGhost } from \"../PlBtnGhost\";\nimport \"./pl-notification-alert.scss\";\n\nconst props = withDefaults(\n defineProps<{\n type?: \"success\" | \"error\" | \"warning\" | \"neutral\";\n width?: string;\n closable?: boolean;\n }>(),\n { type: \"neutral\", width: \"256px\" },\n);\n\nconst model = defineModel({ type: Boolean, default: true });\n\nfunction closeAlert() {\n if (props.closable) {\n model.value = false;\n }\n}\n</script>\n\n<template>\n <div\n v-if=\"model\"\n :class=\"type\"\n :style=\"{ width: `${width}` }\"\n class=\"pl-notification-alert d-flex flex-column gap-16\"\n >\n <div class=\"pl-notification-alert__wrapper d-flex text-s\">\n <div class=\"pl-notification-alert__content flex-grow-1\">\n <slot />\n </div>\n <div v-if=\"closable\" class=\"pl-notification-alert__close\">\n <PlBtnGhost icon=\"close\" @click.stop=\"closeAlert\" />\n </div>\n </div>\n\n <div v-if=\"!!$slots.actions\" class=\"pl-notification-alert__actions d-flex\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"names":["props","__props","model","_useModel","closeAlert","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_hoisted_2","_renderSlot","_ctx","_openBlock","_hoisted_3","_createVNode","_unref","PlBtnGhost","$slots","_hoisted_4"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GASRC,IAAQC,iBAA4C;AAE1D,aAASC,IAAa;AACpB,MAAIJ,EAAM,aACRE,EAAM,QAAQ;AAAA,IAElB;qBAKUA,EAAA,cADRG,EAkBM,OAAA;AAAA;MAhBH,OAAKC,EAAA,CAAEL,EAAA,MAEF,iDAAiD,CAAA;AAAA,MADtD,qBAAmBA,EAAA,KAAK,IAAA;AAAA,IAAA;MAGzBM,EAOM,OAPNC,GAOM;AAAA,QANJD,EAEM,OAFNE,GAEM;AAAA,UADJC,EAAQC,EAAA,QAAA,SAAA;AAAA,QAAA;QAECV,EAAA,YAAXW,EAAA,GAAAP,EAEM,OAFNQ,GAEM;AAAA,UADJC,EAAoDC,EAAAC,CAAA,GAAA;AAAA,YAAxC,MAAK;AAAA,YAAS,WAAYZ,GAAU,CAAA,MAAA,CAAA;AAAA,UAAA;;;MAIvCa,EAAAA,OAAO,WAApBL,EAAA,GAAAP,EAEM,OAFNa,GAEM;AAAA,QADJR,EAAuBC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlNumberField.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNumberField/PlNumberField.vue"],"names":[],"mappings":"AAiTA,OAAO,wBAAwB,CAAC;AAQhC;;;;;;;;;;;;;GAaG;;gBAkOS,MAAM,GAAG,SAAS;;IA/N5B,gCAAgC;eACrB,OAAO;IAClB,6DAA6D;YACrD,MAAM;IACd,0CAA0C;kBAC5B,MAAM;IACpB,yDAAyD;WAClD,MAAM;IACb,oDAAoD;eACzC,MAAM;IACjB,oDAAoD;eACzC,MAAM;IACjB,6CAA6C;0BACvB,OAAO;IAC7B,yIAAyI;kCAC3G,OAAO;IACrC,+EAA+E;mBAChE,MAAM;IACrB,yFAAyF;eAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;IAC5C,wCAAwC;oBACxB,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ;;;;gBA0MhH,MAAM,GAAG,SAAS;;IA/N5B,gCAAgC;eACrB,OAAO;IAClB,6DAA6D;YACrD,MAAM;IACd,0CAA0C;kBAC5B,MAAM;IACpB,yDAAyD;WAClD,MAAM;IACb,oDAAoD;eACzC,MAAM;IACjB,oDAAoD;eACzC,MAAM;IACjB,6CAA6C;0BACvB,OAAO;IAC7B,yIAAyI;kCAC3G,OAAO;IACrC,+EAA+E;mBAChE,MAAM;IACrB,yFAAyF;eAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;IAC5C,wCAAwC;oBACxB,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ;;;;WAlBlH,MAAM;iBAEA,MAAM;UAEb,MAAM;mBAcG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ;cAF/G,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;cAVjC,MAAM;cAEN,MAAM;yBAEK,OAAO;kBAId,MAAM;;;;;qBAmVO,GAAG;;AAtWjC,wBAiaK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlNumberField.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNumberField/PlNumberField.vue"],"names":[],"mappings":"AA4UA,OAAO,wBAAwB,CAAC;AAQhC;;;;;;;;;;;;;GAaG;;gBA0OS,MAAM,GAAG,SAAS;;IAvO1B,gCAAgC;eACrB,OAAO;IAClB,6DAA6D;YACrD,MAAM;IACd,0CAA0C;kBAC5B,MAAM;IACpB,yDAAyD;WAClD,MAAM;IACb,oDAAoD;eACzC,MAAM;IACjB,oDAAoD;eACzC,MAAM;IACjB,6CAA6C;0BACvB,OAAO;IAC7B,yIAAyI;kCAC3G,OAAO;IACrC,+EAA+E;mBAChE,MAAM;IACrB,yFAAyF;eAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;IAC5C,wCAAwC;oBAEpC,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;;;;gBAyMJ,MAAM,GAAG,SAAS;;IAvO1B,gCAAgC;eACrB,OAAO;IAClB,6DAA6D;YACrD,MAAM;IACd,0CAA0C;kBAC5B,MAAM;IACpB,yDAAyD;WAClD,MAAM;IACb,oDAAoD;eACzC,MAAM;IACjB,oDAAoD;eACzC,MAAM;IACjB,6CAA6C;0BACvB,OAAO;IAC7B,yIAAyI;kCAC3G,OAAO;IACrC,+EAA+E;mBAChE,MAAM;IACrB,yFAAyF;eAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;IAC5C,wCAAwC;oBAEpC,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;;;;WA3BJ,MAAM;iBAEA,MAAM;UAEb,MAAM;mBAeT,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;cAXD,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;cAVjC,MAAM;cAEN,MAAM;yBAEK,OAAO;kBAId,MAAM;;;;;qBA8VK,GAAG;;AAjXjC,wBA4aK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -72,12 +72,10 @@ const J = { class: "pl-number-field__main-wrapper d-flex" }, Q = {
72
72
  }), k = s(() => {
73
73
  const e = i.value;
74
74
  return t.minValue !== void 0 && e.value !== void 0 ? e.value <= t.minValue : !1;
75
- }), a = s(
76
- () => {
77
- var e;
78
- return 10 ** (((e = t.step.toString().split(".").at(1)) == null ? void 0 : e.length) ?? 0);
79
- }
80
- );
75
+ }), a = s(() => {
76
+ var e;
77
+ return 10 ** (((e = t.step.toString().split(".").at(1)) == null ? void 0 : e.length) ?? 0);
78
+ });
81
79
  function B() {
82
80
  const l = i.value.value;
83
81
  if (!y.value) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlNumberField.vue.js","sources":["../../../src/components/PlNumberField/PlNumberField.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Number input field with increment/decrement buttons, validation, and min/max constraints.\n *\n * @example\n * <PlNumberField v-model=\"price\" :step=\"0.01\" :min-value=\"0\" label=\"Price\" />\n *\n * @example\n * <PlNumberField\n * v-model=\"evenNumber\"\n * :validate=\"(v) => v % 2 !== 0 ? 'Number must be even' : undefined\"\n * :update-on-enter-or-click-outside=\"true\"\n * label=\"Even Number\"\n * />\n */\nexport default {\n name: 'PlNumberField',\n};\n</script>\n\n<script setup lang=\"ts\">\nimport './pl-number-field.scss';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport { computed, ref, useSlots, watch } from 'vue';\nimport { PlTooltip } from '../PlTooltip';\nimport { parseNumber } from './parseNumber';\n\nconst props = withDefaults(defineProps<{\n /** Input is disabled if true */\n disabled?: boolean;\n /** Label on the top border of the field, empty by default */\n label?: string;\n /** Input placeholder, empty by default */\n placeholder?: string;\n /** Step for increment/decrement buttons, 1 by default */\n step?: number;\n /** If defined - show an error if value is lower */\n minValue?: number;\n /** If defined - show an error if value is higher */\n maxValue?: number;\n /** If false - remove buttons on the right */\n useIncrementButtons?: boolean;\n /** If true - changes do not apply immediately, they apply only by removing focus from the input (by click enter or by click outside) */\n updateOnEnterOrClickOutside?: boolean;\n /** Error message that shows always when it's provided, without other checks */\n errorMessage?: string;\n /** Additional validity check for input value that must return an error text if failed */\n validate?: (v: number) => string | undefined;\n /** Makes some of corners not rounded */\n groupPosition?: 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle';\n}>(), {\n step: 1,\n label: undefined,\n placeholder: undefined,\n minValue: undefined,\n maxValue: undefined,\n useIncrementButtons: true,\n updateOnEnter: false,\n errorMessage: undefined,\n validate: undefined,\n groupPosition: undefined,\n});\n\nconst modelValue = defineModel<number | undefined>({ required: true });\n\nconst slots = useSlots();\n\nconst rootRef = ref<HTMLElement>();\nconst inputRef = ref<HTMLInputElement>();\n\nuseLabelNotch(rootRef);\n\nfunction modelToString(v: number | undefined) {\n return v === undefined ? '' : String(+v); // (+v) to avoid staying in input non-number values if they are provided in model\n}\n\nconst parsedResult = computed(() => parseNumber(props, inputValue.value));\n\nconst cachedValue = ref<string | undefined>(undefined);\n\nconst resetCachedValue = () => cachedValue.value = undefined;\n\nwatch(modelValue, (n) => {\n const r = parsedResult.value;\n if (r.error || n !== r.value) {\n resetCachedValue();\n }\n});\n\nconst inputValue = computed({\n get() {\n return cachedValue.value ?? modelToString(modelValue.value);\n },\n set(nextValue: string) {\n const r = parseNumber(props, nextValue);\n\n cachedValue.value = r.cleanInput;\n\n if (r.error || props.updateOnEnterOrClickOutside) {\n inputRef.value!.value = r.cleanInput;\n } else {\n modelValue.value = r.value;\n }\n },\n});\n\nconst focused = ref(false);\n\nfunction applyChanges() {\n if (parsedResult.value.error === undefined) {\n modelValue.value = parsedResult.value.value;\n }\n}\n\nconst errors = computed(() => {\n let ers: string[] = [];\n\n if (props.errorMessage) {\n ers.push(props.errorMessage);\n }\n\n const r = parsedResult.value;\n\n if (r.error) {\n ers.push(r.error.message);\n } else if (props.validate && r.value !== undefined) {\n const error = props.validate(r.value);\n if (error) {\n ers.push(error);\n }\n }\n\n ers = [...ers];\n\n return ers.join(' ');\n});\n\nconst isIncrementDisabled = computed(() => {\n const r = parsedResult.value;\n\n if (props.maxValue !== undefined && r.value !== undefined) {\n return r.value >= props.maxValue;\n }\n\n return false;\n});\n\nconst isDecrementDisabled = computed(() => {\n const r = parsedResult.value;\n\n if (props.minValue !== undefined && r.value !== undefined) {\n return r.value <= props.minValue;\n }\n\n return false;\n});\n\nconst multiplier = computed(() =>\n 10 ** (props.step.toString().split('.').at(1)?.length ?? 0),\n);\n\nfunction increment() {\n const r = parsedResult.value;\n\n const parsedValue = r.value;\n\n if (!isIncrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = props.minValue ? props.minValue : 0;\n } else {\n nV = ((parsedValue || 0) * multiplier.value\n + props.step * multiplier.value)\n / multiplier.value;\n }\n modelValue.value = props.maxValue !== undefined ? Math.min(props.maxValue, nV) : nV;\n }\n}\n\nfunction decrement() {\n const r = parsedResult.value;\n\n const parsedValue = r.value;\n\n if (!isDecrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = 0;\n } else {\n nV = ((parsedValue || 0) * multiplier.value\n - props.step * multiplier.value)\n / multiplier.value;\n }\n modelValue.value = props.minValue !== undefined ? Math.max(props.minValue, nV) : nV;\n }\n}\n\nfunction handleKeyPress(e: { code: string; preventDefault(): void }) {\n if (props.updateOnEnterOrClickOutside) {\n if (e.code === 'Escape') {\n inputValue.value = modelToString(modelValue.value);\n inputRef.value?.blur();\n }\n if (e.code === 'Enter') {\n inputRef.value?.blur();\n }\n }\n\n if (e.code === 'Enter') {\n inputValue.value = String(modelValue.value); // to make .1 => 0.1, 10.00 => 10, remove leading zeros etc\n }\n\n if (['ArrowDown', 'ArrowUp'].includes(e.code)) {\n e.preventDefault();\n }\n\n if (props.useIncrementButtons && e.code === 'ArrowUp') {\n increment();\n }\n\n if (props.useIncrementButtons && e.code === 'ArrowDown') {\n decrement();\n }\n}\n\n// https://stackoverflow.com/questions/880512/prevent-text-selection-after-double-click#:~:text=If%20you%20encounter%20a%20situation,none%3B%20to%20the%20summary%20element.\n// this prevents selecting of more than input content in some cases,\n// but also disable selecting input content by double-click (useful feature)\nconst onMousedown = (ev: MouseEvent) => {\n if (ev.detail > 1) {\n ev.preventDefault();\n }\n};\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"{ error: !!errors.trim(), disabled: disabled }\"\n class=\"pl-number-field d-flex-column\"\n @keydown=\"handleKeyPress($event)\"\n >\n <div class=\"pl-number-field__main-wrapper d-flex\">\n <DoubleContour class=\"pl-number-field__contour\" :group-position=\"groupPosition\"/>\n <div\n class=\"pl-number-field__wrapper flex-grow d-flex flex-align-center\"\n :class=\"{withoutArrows: !useIncrementButtons}\"\n >\n <label v-if=\"label\" class=\"text-description\">\n {{ label }}\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\"/>\n </template>\n </PlTooltip>\n </label>\n <input\n ref=\"inputRef\"\n v-model=\"inputValue\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n class=\"text-s flex-grow\"\n @focusin=\"focused = true\"\n @focusout=\"focused = false; applyChanges()\"\n />\n </div>\n <div v-if=\"useIncrementButtons\" class=\"pl-number-field__icons d-flex-column\" @mousedown=\"onMousedown\">\n <div\n :class=\"{ disabled: isIncrementDisabled }\"\n class=\"pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"increment\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8 4.93933L13.5303 10.4697L12.4697 11.5303L8 7.06065L3.53033 11.5303L2.46967 10.4697L8 4.93933Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n <div\n :class=\"{ disabled: isDecrementDisabled }\"\n class=\"pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"decrement\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.46967 6.53033L3.53033 5.46967L8 9.93934L12.4697 5.46967L13.5303 6.53033L8 12.0607L2.46967 6.53033Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n </div>\n </div>\n <div v-if=\"errors.trim()\" class=\"pl-number-field__error\">\n {{ errors }}\n </div>\n </div>\n</template>\n"],"names":["__default__","props","__props","modelValue","_useModel","slots","useSlots","rootRef","ref","inputRef","useLabelNotch","modelToString","v","parsedResult","computed","parseNumber","inputValue","cachedValue","resetCachedValue","watch","n","r","nextValue","focused","applyChanges","errors","ers","error","isIncrementDisabled","isDecrementDisabled","multiplier","_a","increment","parsedValue","nV","decrement","handleKeyPress","_b","onMousedown","ev","_createElementBlock","_cache","$event","_createElementVNode","_hoisted_1","_createVNode","DoubleContour","_normalizeClass","_openBlock","_hoisted_2","_createTextVNode","_toDisplayString","_unref","_createBlock","PlTooltip","_renderSlot","_ctx","_hoisted_4"],"mappings":"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"}
1
+ {"version":3,"file":"PlNumberField.vue.js","sources":["../../../src/components/PlNumberField/PlNumberField.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Number input field with increment/decrement buttons, validation, and min/max constraints.\n *\n * @example\n * <PlNumberField v-model=\"price\" :step=\"0.01\" :min-value=\"0\" label=\"Price\" />\n *\n * @example\n * <PlNumberField\n * v-model=\"evenNumber\"\n * :validate=\"(v) => v % 2 !== 0 ? 'Number must be even' : undefined\"\n * :update-on-enter-or-click-outside=\"true\"\n * label=\"Even Number\"\n * />\n */\nexport default {\n name: \"PlNumberField\",\n};\n</script>\n\n<script setup lang=\"ts\">\nimport \"./pl-number-field.scss\";\nimport DoubleContour from \"../../utils/DoubleContour.vue\";\nimport { useLabelNotch } from \"../../utils/useLabelNotch\";\nimport { computed, ref, useSlots, watch } from \"vue\";\nimport { PlTooltip } from \"../PlTooltip\";\nimport { parseNumber } from \"./parseNumber\";\n\nconst props = withDefaults(\n defineProps<{\n /** Input is disabled if true */\n disabled?: boolean;\n /** Label on the top border of the field, empty by default */\n label?: string;\n /** Input placeholder, empty by default */\n placeholder?: string;\n /** Step for increment/decrement buttons, 1 by default */\n step?: number;\n /** If defined - show an error if value is lower */\n minValue?: number;\n /** If defined - show an error if value is higher */\n maxValue?: number;\n /** If false - remove buttons on the right */\n useIncrementButtons?: boolean;\n /** If true - changes do not apply immediately, they apply only by removing focus from the input (by click enter or by click outside) */\n updateOnEnterOrClickOutside?: boolean;\n /** Error message that shows always when it's provided, without other checks */\n errorMessage?: string;\n /** Additional validity check for input value that must return an error text if failed */\n validate?: (v: number) => string | undefined;\n /** Makes some of corners not rounded */\n groupPosition?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"middle\";\n }>(),\n {\n step: 1,\n label: undefined,\n placeholder: undefined,\n minValue: undefined,\n maxValue: undefined,\n useIncrementButtons: true,\n updateOnEnter: false,\n errorMessage: undefined,\n validate: undefined,\n groupPosition: undefined,\n },\n);\n\nconst modelValue = defineModel<number | undefined>({ required: true });\n\nconst slots = useSlots();\n\nconst rootRef = ref<HTMLElement>();\nconst inputRef = ref<HTMLInputElement>();\n\nuseLabelNotch(rootRef);\n\nfunction modelToString(v: number | undefined) {\n return v === undefined ? \"\" : String(+v); // (+v) to avoid staying in input non-number values if they are provided in model\n}\n\nconst parsedResult = computed(() => parseNumber(props, inputValue.value));\n\nconst cachedValue = ref<string | undefined>(undefined);\n\nconst resetCachedValue = () => (cachedValue.value = undefined);\n\nwatch(modelValue, (n) => {\n const r = parsedResult.value;\n if (r.error || n !== r.value) {\n resetCachedValue();\n }\n});\n\nconst inputValue = computed({\n get() {\n return cachedValue.value ?? modelToString(modelValue.value);\n },\n set(nextValue: string) {\n const r = parseNumber(props, nextValue);\n\n cachedValue.value = r.cleanInput;\n\n if (r.error || props.updateOnEnterOrClickOutside) {\n inputRef.value!.value = r.cleanInput;\n } else {\n modelValue.value = r.value;\n }\n },\n});\n\nconst focused = ref(false);\n\nfunction applyChanges() {\n if (parsedResult.value.error === undefined) {\n modelValue.value = parsedResult.value.value;\n }\n}\n\nconst errors = computed(() => {\n let ers: string[] = [];\n\n if (props.errorMessage) {\n ers.push(props.errorMessage);\n }\n\n const r = parsedResult.value;\n\n if (r.error) {\n ers.push(r.error.message);\n } else if (props.validate && r.value !== undefined) {\n const error = props.validate(r.value);\n if (error) {\n ers.push(error);\n }\n }\n\n ers = [...ers];\n\n return ers.join(\" \");\n});\n\nconst isIncrementDisabled = computed(() => {\n const r = parsedResult.value;\n\n if (props.maxValue !== undefined && r.value !== undefined) {\n return r.value >= props.maxValue;\n }\n\n return false;\n});\n\nconst isDecrementDisabled = computed(() => {\n const r = parsedResult.value;\n\n if (props.minValue !== undefined && r.value !== undefined) {\n return r.value <= props.minValue;\n }\n\n return false;\n});\n\nconst multiplier = computed(() => 10 ** (props.step.toString().split(\".\").at(1)?.length ?? 0));\n\nfunction increment() {\n const r = parsedResult.value;\n\n const parsedValue = r.value;\n\n if (!isIncrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = props.minValue ? props.minValue : 0;\n } else {\n nV =\n ((parsedValue || 0) * multiplier.value + props.step * multiplier.value) / multiplier.value;\n }\n modelValue.value = props.maxValue !== undefined ? Math.min(props.maxValue, nV) : nV;\n }\n}\n\nfunction decrement() {\n const r = parsedResult.value;\n\n const parsedValue = r.value;\n\n if (!isDecrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = 0;\n } else {\n nV =\n ((parsedValue || 0) * multiplier.value - props.step * multiplier.value) / multiplier.value;\n }\n modelValue.value = props.minValue !== undefined ? Math.max(props.minValue, nV) : nV;\n }\n}\n\nfunction handleKeyPress(e: { code: string; preventDefault(): void }) {\n if (props.updateOnEnterOrClickOutside) {\n if (e.code === \"Escape\") {\n inputValue.value = modelToString(modelValue.value);\n inputRef.value?.blur();\n }\n if (e.code === \"Enter\") {\n inputRef.value?.blur();\n }\n }\n\n if (e.code === \"Enter\") {\n inputValue.value = String(modelValue.value); // to make .1 => 0.1, 10.00 => 10, remove leading zeros etc\n }\n\n if ([\"ArrowDown\", \"ArrowUp\"].includes(e.code)) {\n e.preventDefault();\n }\n\n if (props.useIncrementButtons && e.code === \"ArrowUp\") {\n increment();\n }\n\n if (props.useIncrementButtons && e.code === \"ArrowDown\") {\n decrement();\n }\n}\n\n// https://stackoverflow.com/questions/880512/prevent-text-selection-after-double-click#:~:text=If%20you%20encounter%20a%20situation,none%3B%20to%20the%20summary%20element.\n// this prevents selecting of more than input content in some cases,\n// but also disable selecting input content by double-click (useful feature)\nconst onMousedown = (ev: MouseEvent) => {\n if (ev.detail > 1) {\n ev.preventDefault();\n }\n};\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"{ error: !!errors.trim(), disabled: disabled }\"\n class=\"pl-number-field d-flex-column\"\n @keydown=\"handleKeyPress($event)\"\n >\n <div class=\"pl-number-field__main-wrapper d-flex\">\n <DoubleContour class=\"pl-number-field__contour\" :group-position=\"groupPosition\" />\n <div\n class=\"pl-number-field__wrapper flex-grow d-flex flex-align-center\"\n :class=\"{ withoutArrows: !useIncrementButtons }\"\n >\n <label v-if=\"label\" class=\"text-description\">\n {{ label }}\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <input\n ref=\"inputRef\"\n v-model=\"inputValue\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n class=\"text-s flex-grow\"\n @focusin=\"focused = true\"\n @focusout=\"\n focused = false;\n applyChanges();\n \"\n />\n </div>\n <div\n v-if=\"useIncrementButtons\"\n class=\"pl-number-field__icons d-flex-column\"\n @mousedown=\"onMousedown\"\n >\n <div\n :class=\"{ disabled: isIncrementDisabled }\"\n class=\"pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"increment\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8 4.93933L13.5303 10.4697L12.4697 11.5303L8 7.06065L3.53033 11.5303L2.46967 10.4697L8 4.93933Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n <div\n :class=\"{ disabled: isDecrementDisabled }\"\n class=\"pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"decrement\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.46967 6.53033L3.53033 5.46967L8 9.93934L12.4697 5.46967L13.5303 6.53033L8 12.0607L2.46967 6.53033Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n </div>\n </div>\n <div v-if=\"errors.trim()\" class=\"pl-number-field__error\">\n {{ errors }}\n </div>\n </div>\n</template>\n"],"names":["__default__","props","__props","modelValue","_useModel","slots","useSlots","rootRef","ref","inputRef","useLabelNotch","modelToString","v","parsedResult","computed","parseNumber","inputValue","cachedValue","resetCachedValue","watch","n","r","nextValue","focused","applyChanges","errors","ers","error","isIncrementDisabled","isDecrementDisabled","multiplier","_a","increment","parsedValue","nV","decrement","handleKeyPress","_b","onMousedown","ev","_createElementBlock","_cache","$event","_createElementVNode","_hoisted_1","_createVNode","DoubleContour","_normalizeClass","_openBlock","_hoisted_2","_createTextVNode","_toDisplayString","_unref","_createBlock","PlTooltip","_renderSlot","_ctx","_hoisted_4"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseNumber.d.ts","sourceRoot":"","sources":["../../../src/components/PlNumberField/parseNumber.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA8CF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9C,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAkE3B"}
1
+ {"version":3,"file":"parseNumber.d.ts","sourceRoot":"","sources":["../../../src/components/PlNumberField/parseNumber.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA8CF,wBAAgB,WAAW,CACzB,KAAK,EAAE;IACL,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9C,EACD,GAAG,EAAE,MAAM,GACV,WAAW,CAkEb"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseNumber.js","sources":["../../../src/components/PlNumberField/parseNumber.ts"],"sourcesContent":["type ParseResult = {\n error?: Error;\n value?: number;\n cleanInput: string;\n};\n\nconst NUMBER_REGEX = /^[-−–+]?(\\d+)?[.,]?(\\d+)?$/; // parseFloat works without errors on strings with multiple dots, or letters in value\n\nfunction isPartial(v: string) {\n return v === '.' || v === ',' || v === '-';\n}\n\nfunction clearNumericValue(v: string) {\n v = v.trim();\n v = v.replace(',', '.');\n v = v.replace('−', '-'); // minus, replacing for the case of input the whole copied value\n v = v.replace('–', '-'); // dash, replacing for the case of input the whole copied value\n v = v.replace('+', '');\n return v;\n}\n\nfunction stringToNumber(v: string) {\n return parseFloat(clearNumericValue(v));\n}\n\nfunction clearInput(v: string): string {\n v = v.trim();\n\n if (isPartial(v)) {\n return v;\n }\n\n if (/^-[^0-9.]/.test(v)) {\n return '-';\n }\n\n const match = v.match(/^(.*)[.,][^0-9].*$/);\n if (match) {\n return match[1] + '.';\n }\n\n if (v.match(NUMBER_REGEX)) {\n return clearNumericValue(v);\n }\n\n const n = stringToNumber(v);\n\n return isNaN(n) ? '' : String(+n);\n}\n\nexport function parseNumber(props: {\n minValue?: number;\n maxValue?: number;\n validate?: (v: number) => string | undefined;\n}, str: string): ParseResult {\n str = str.trim();\n\n const cleanInput = clearInput(str);\n\n if (str === '') {\n return {\n value: undefined,\n cleanInput,\n };\n }\n\n if (!str.match(NUMBER_REGEX)) {\n return {\n error: Error('Value is not a number'),\n cleanInput,\n };\n }\n\n if (isPartial(str)) {\n return {\n error: Error('Enter a number'),\n cleanInput,\n };\n }\n\n const value = stringToNumber(str);\n\n if (isNaN(value)) {\n return {\n error: Error('Value is not a number'),\n cleanInput,\n };\n }\n\n if (props.minValue !== undefined && value < props.minValue) {\n return {\n error: Error(`Value must be higher than ${props.minValue}`),\n value,\n cleanInput,\n };\n }\n\n if (props.maxValue !== undefined && value > props.maxValue) {\n return {\n error: Error(`Value must be less than ${props.maxValue}`),\n value,\n cleanInput,\n };\n }\n\n if (props.validate) {\n const error = props.validate(value);\n if (error) {\n return {\n error: Error(error),\n value,\n cleanInput,\n };\n }\n }\n\n return {\n value,\n cleanInput,\n };\n}\n"],"names":["NUMBER_REGEX","isPartial","v","clearNumericValue","stringToNumber","clearInput","match","n","parseNumber","props","str","cleanInput","value","error"],"mappings":"AAMA,MAAMA,IAAe;AAErB,SAASC,EAAUC,GAAW;AAC5B,SAAOA,MAAM,OAAOA,MAAM,OAAOA,MAAM;AACzC;AAEA,SAASC,EAAkBD,GAAW;AACpC,SAAAA,IAAIA,EAAE,KAAA,GACNA,IAAIA,EAAE,QAAQ,KAAK,GAAG,GACtBA,IAAIA,EAAE,QAAQ,KAAK,GAAG,GACtBA,IAAIA,EAAE,QAAQ,KAAK,GAAG,GACtBA,IAAIA,EAAE,QAAQ,KAAK,EAAE,GACdA;AACT;AAEA,SAASE,EAAeF,GAAW;AACjC,SAAO,WAAWC,EAAkBD,CAAC,CAAC;AACxC;AAEA,SAASG,EAAWH,GAAmB;AAGrC,MAFAA,IAAIA,EAAE,KAAA,GAEFD,EAAUC,CAAC;AACb,WAAOA;AAGT,MAAI,YAAY,KAAKA,CAAC;AACpB,WAAO;AAGT,QAAMI,IAAQJ,EAAE,MAAM,oBAAoB;AAC1C,MAAII;AACF,WAAOA,EAAM,CAAC,IAAI;AAGpB,MAAIJ,EAAE,MAAMF,CAAY;AACtB,WAAOG,EAAkBD,CAAC;AAG5B,QAAMK,IAAIH,EAAeF,CAAC;AAE1B,SAAO,MAAMK,CAAC,IAAI,KAAK,OAAO,CAACA,CAAC;AAClC;AAEO,SAASC,EAAYC,GAIzBC,GAA0B;AAC3B,EAAAA,IAAMA,EAAI,KAAA;AAEV,QAAMC,IAAaN,EAAWK,CAAG;AAEjC,MAAIA,MAAQ;AACV,WAAO;AAAA,MACL,OAAO;AAAA,MACP,YAAAC;AAAA,IAAA;AAIJ,MAAI,CAACD,EAAI,MAAMV,CAAY;AACzB,WAAO;AAAA,MACL,OAAO,MAAM,uBAAuB;AAAA,MACpC,YAAAW;AAAA,IAAA;AAIJ,MAAIV,EAAUS,CAAG;AACf,WAAO;AAAA,MACL,OAAO,MAAM,gBAAgB;AAAA,MAC7B,YAAAC;AAAA,IAAA;AAIJ,QAAMC,IAAQR,EAAeM,CAAG;AAEhC,MAAI,MAAME,CAAK;AACb,WAAO;AAAA,MACL,OAAO,MAAM,uBAAuB;AAAA,MACpC,YAAAD;AAAA,IAAA;AAIJ,MAAIF,EAAM,aAAa,UAAaG,IAAQH,EAAM;AAChD,WAAO;AAAA,MACL,OAAO,MAAM,6BAA6BA,EAAM,QAAQ,EAAE;AAAA,MAC1D,OAAAG;AAAA,MACA,YAAAD;AAAA,IAAA;AAIJ,MAAIF,EAAM,aAAa,UAAaG,IAAQH,EAAM;AAChD,WAAO;AAAA,MACL,OAAO,MAAM,2BAA2BA,EAAM,QAAQ,EAAE;AAAA,MACxD,OAAAG;AAAA,MACA,YAAAD;AAAA,IAAA;AAIJ,MAAIF,EAAM,UAAU;AAClB,UAAMI,IAAQJ,EAAM,SAASG,CAAK;AAClC,QAAIC;AACF,aAAO;AAAA,QACL,OAAO,MAAMA,CAAK;AAAA,QAClB,OAAAD;AAAA,QACA,YAAAD;AAAA,MAAA;AAAA,EAGN;AAEA,SAAO;AAAA,IACL,OAAAC;AAAA,IACA,YAAAD;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"parseNumber.js","sources":["../../../src/components/PlNumberField/parseNumber.ts"],"sourcesContent":["type ParseResult = {\n error?: Error;\n value?: number;\n cleanInput: string;\n};\n\nconst NUMBER_REGEX = /^[-−–+]?(\\d+)?[.,]?(\\d+)?$/; // parseFloat works without errors on strings with multiple dots, or letters in value\n\nfunction isPartial(v: string) {\n return v === \".\" || v === \",\" || v === \"-\";\n}\n\nfunction clearNumericValue(v: string) {\n v = v.trim();\n v = v.replace(\",\", \".\");\n v = v.replace(\"−\", \"-\"); // minus, replacing for the case of input the whole copied value\n v = v.replace(\"–\", \"-\"); // dash, replacing for the case of input the whole copied value\n v = v.replace(\"+\", \"\");\n return v;\n}\n\nfunction stringToNumber(v: string) {\n return parseFloat(clearNumericValue(v));\n}\n\nfunction clearInput(v: string): string {\n v = v.trim();\n\n if (isPartial(v)) {\n return v;\n }\n\n if (/^-[^0-9.]/.test(v)) {\n return \"-\";\n }\n\n const match = v.match(/^(.*)[.,][^0-9].*$/);\n if (match) {\n return match[1] + \".\";\n }\n\n if (v.match(NUMBER_REGEX)) {\n return clearNumericValue(v);\n }\n\n const n = stringToNumber(v);\n\n return isNaN(n) ? \"\" : String(+n);\n}\n\nexport function parseNumber(\n props: {\n minValue?: number;\n maxValue?: number;\n validate?: (v: number) => string | undefined;\n },\n str: string,\n): ParseResult {\n str = str.trim();\n\n const cleanInput = clearInput(str);\n\n if (str === \"\") {\n return {\n value: undefined,\n cleanInput,\n };\n }\n\n if (!str.match(NUMBER_REGEX)) {\n return {\n error: Error(\"Value is not a number\"),\n cleanInput,\n };\n }\n\n if (isPartial(str)) {\n return {\n error: Error(\"Enter a number\"),\n cleanInput,\n };\n }\n\n const value = stringToNumber(str);\n\n if (isNaN(value)) {\n return {\n error: Error(\"Value is not a number\"),\n cleanInput,\n };\n }\n\n if (props.minValue !== undefined && value < props.minValue) {\n return {\n error: Error(`Value must be higher than ${props.minValue}`),\n value,\n cleanInput,\n };\n }\n\n if (props.maxValue !== undefined && value > props.maxValue) {\n return {\n error: Error(`Value must be less than ${props.maxValue}`),\n value,\n cleanInput,\n };\n }\n\n if (props.validate) {\n const error = props.validate(value);\n if (error) {\n return {\n error: Error(error),\n value,\n cleanInput,\n };\n }\n }\n\n return {\n value,\n cleanInput,\n };\n}\n"],"names":["NUMBER_REGEX","isPartial","v","clearNumericValue","stringToNumber","clearInput","match","n","parseNumber","props","str","cleanInput","value","error"],"mappings":"AAMA,MAAMA,IAAe;AAErB,SAASC,EAAUC,GAAW;AAC5B,SAAOA,MAAM,OAAOA,MAAM,OAAOA,MAAM;AACzC;AAEA,SAASC,EAAkBD,GAAW;AACpC,SAAAA,IAAIA,EAAE,KAAA,GACNA,IAAIA,EAAE,QAAQ,KAAK,GAAG,GACtBA,IAAIA,EAAE,QAAQ,KAAK,GAAG,GACtBA,IAAIA,EAAE,QAAQ,KAAK,GAAG,GACtBA,IAAIA,EAAE,QAAQ,KAAK,EAAE,GACdA;AACT;AAEA,SAASE,EAAeF,GAAW;AACjC,SAAO,WAAWC,EAAkBD,CAAC,CAAC;AACxC;AAEA,SAASG,EAAWH,GAAmB;AAGrC,MAFAA,IAAIA,EAAE,KAAA,GAEFD,EAAUC,CAAC;AACb,WAAOA;AAGT,MAAI,YAAY,KAAKA,CAAC;AACpB,WAAO;AAGT,QAAMI,IAAQJ,EAAE,MAAM,oBAAoB;AAC1C,MAAII;AACF,WAAOA,EAAM,CAAC,IAAI;AAGpB,MAAIJ,EAAE,MAAMF,CAAY;AACtB,WAAOG,EAAkBD,CAAC;AAG5B,QAAMK,IAAIH,EAAeF,CAAC;AAE1B,SAAO,MAAMK,CAAC,IAAI,KAAK,OAAO,CAACA,CAAC;AAClC;AAEO,SAASC,EACdC,GAKAC,GACa;AACb,EAAAA,IAAMA,EAAI,KAAA;AAEV,QAAMC,IAAaN,EAAWK,CAAG;AAEjC,MAAIA,MAAQ;AACV,WAAO;AAAA,MACL,OAAO;AAAA,MACP,YAAAC;AAAA,IAAA;AAIJ,MAAI,CAACD,EAAI,MAAMV,CAAY;AACzB,WAAO;AAAA,MACL,OAAO,MAAM,uBAAuB;AAAA,MACpC,YAAAW;AAAA,IAAA;AAIJ,MAAIV,EAAUS,CAAG;AACf,WAAO;AAAA,MACL,OAAO,MAAM,gBAAgB;AAAA,MAC7B,YAAAC;AAAA,IAAA;AAIJ,QAAMC,IAAQR,EAAeM,CAAG;AAEhC,MAAI,MAAME,CAAK;AACb,WAAO;AAAA,MACL,OAAO,MAAM,uBAAuB;AAAA,MACpC,YAAAD;AAAA,IAAA;AAIJ,MAAIF,EAAM,aAAa,UAAaG,IAAQH,EAAM;AAChD,WAAO;AAAA,MACL,OAAO,MAAM,6BAA6BA,EAAM,QAAQ,EAAE;AAAA,MAC1D,OAAAG;AAAA,MACA,YAAAD;AAAA,IAAA;AAIJ,MAAIF,EAAM,aAAa,UAAaG,IAAQH,EAAM;AAChD,WAAO;AAAA,MACL,OAAO,MAAM,2BAA2BA,EAAM,QAAQ,EAAE;AAAA,MACxD,OAAAG;AAAA,MACA,YAAAD;AAAA,IAAA;AAIJ,MAAIF,EAAM,UAAU;AAClB,UAAMI,IAAQJ,EAAM,SAASG,CAAK;AAClC,QAAIC;AACF,aAAO;AAAA,QACL,OAAO,MAAMA,CAAK;AAAA,QAClB,OAAAD;AAAA,QACA,YAAAD;AAAA,MAAA;AAAA,EAGN;AAEA,SAAO;AAAA,IACL,OAAAC;AAAA,IACA,YAAAD;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlProgressBar.vue.js","sources":["../../../src/components/PlProgressBar/PlProgressBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n loading: boolean;\n progress: number;\n completeMessage: string;\n }>(),\n { progress: 0, completeMessage: 'Completed' },\n);\n\nconst readyMsg = computed(() => (props.progress === 100 ? props.completeMessage : ''));\n</script>\n\n<template>\n <div v-if=\"loading\" class=\"ui-progress-bar\">\n <div class=\"ui-progress-bar__indicator\" :style=\"{ width: progress + '%' }\"/>\n <div class=\"ui-progress-bar__messages d-flex align-center pl-6 pr-6\">\n <div class=\"ui-progress-bar__message flex-grow-1\">{{ readyMsg }}</div>\n <div class=\"ui-progress-bar__percent\">{{ progress + '%' }}</div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","readyMsg","computed","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","_hoisted_4"],"mappings":";;;;;;;;;;;;AAGA,UAAMA,IAAQC,GASRC,IAAWC,EAAS,MAAOH,EAAM,aAAa,MAAMA,EAAM,kBAAkB,EAAG;qBAIxEC,EAAA,WAAXG,EAAA,GAAAC,EAMM,OANNC,GAMM;AAAA,MALJC,EAA4E,OAAA;AAAA,QAAvE,OAAM;AAAA,QAA8B,kBAAgBN,EAAA,WAAQ,KAAA;AAAA,MAAA;MACjEM,EAGM,OAHNC,GAGM;AAAA,QAFJD,EAAsE,OAAtEE,GAAsEC,EAAjBR,EAAA,KAAQ,GAAA,CAAA;AAAA,QAC7DK,EAAgE,OAAhEI,GAAgED,EAAvBT,EAAA,WAAQ,GAAA,GAAA,CAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"PlProgressBar.vue.js","sources":["../../../src/components/PlProgressBar/PlProgressBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nconst props = withDefaults(\n defineProps<{\n loading: boolean;\n progress: number;\n completeMessage: string;\n }>(),\n { progress: 0, completeMessage: \"Completed\" },\n);\n\nconst readyMsg = computed(() => (props.progress === 100 ? props.completeMessage : \"\"));\n</script>\n\n<template>\n <div v-if=\"loading\" class=\"ui-progress-bar\">\n <div class=\"ui-progress-bar__indicator\" :style=\"{ width: progress + '%' }\" />\n <div class=\"ui-progress-bar__messages d-flex align-center pl-6 pr-6\">\n <div class=\"ui-progress-bar__message flex-grow-1\">{{ readyMsg }}</div>\n <div class=\"ui-progress-bar__percent\">{{ progress + \"%\" }}</div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","readyMsg","computed","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","_hoisted_4"],"mappings":";;;;;;;;;;;;AAGA,UAAMA,IAAQC,GASRC,IAAWC,EAAS,MAAOH,EAAM,aAAa,MAAMA,EAAM,kBAAkB,EAAG;qBAIxEC,EAAA,WAAXG,EAAA,GAAAC,EAMM,OANNC,GAMM;AAAA,MALJC,EAA6E,OAAA;AAAA,QAAxE,OAAM;AAAA,QAA8B,kBAAgBN,EAAA,WAAQ,KAAA;AAAA,MAAA;MACjEM,EAGM,OAHNC,GAGM;AAAA,QAFJD,EAAsE,OAAtEE,GAAsEC,EAAjBR,EAAA,KAAQ,GAAA,CAAA;AAAA,QAC7DK,EAAgE,OAAhEI,GAAgED,EAAvBT,EAAA,WAAQ,GAAA,GAAA,CAAA;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlProgressCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlProgressCell/PlProgressCell.vue"],"names":[],"mappings":"AA2CA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;;;;;;;;AA0GnD,wBAQG"}
1
+ {"version":3,"file":"PlProgressCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlProgressCell/PlProgressCell.vue"],"names":[],"mappings":"AA8DA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;;;;;;;;AAuHnD,wBAQG"}
@@ -15,9 +15,18 @@ const x = {
15
15
  error: { default: void 0 }
16
16
  },
17
17
  setup(e) {
18
- const r = e, g = n(() => r.stage !== "not_started"), u = n(() => r.stage === "done" ? 100 : Math.min(100, r.progress || 0)), a = n(() => r.progress === void 0 && r.stage !== "done" && r.stage !== "not_started" && !r.error);
18
+ const r = e, g = n(() => r.stage !== "not_started"), u = n(
19
+ () => r.stage === "done" ? 100 : Math.min(100, r.progress || 0)
20
+ ), a = n(
21
+ () => r.progress === void 0 && r.stage !== "done" && r.stage !== "not_started" && !r.error
22
+ );
19
23
  return (C, i) => (t(), s("div", {
20
- class: f({ "progress-cell": !0, "progress-cell__white-bg": g.value, error: e.error, "not-started": r.stage === "not_started" })
24
+ class: f({
25
+ "progress-cell": !0,
26
+ "progress-cell__white-bg": g.value,
27
+ error: e.error,
28
+ "not-started": r.stage === "not_started"
29
+ })
21
30
  }, [
22
31
  a.value ? (t(), s("div", x, [...i[0] || (i[0] = [
23
32
  l("div", { class: "progress-cell__infinity-gradient" }, null, -1)