@milaboratories/uikit 2.15.36 → 2.15.38

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 (457) hide show
  1. package/.turbo/turbo-build.log +175 -175
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +12 -0
  6. package/dist/__tests__/default-testid.test.d.ts +2 -0
  7. package/dist/__tests__/default-testid.test.d.ts.map +1 -0
  8. package/dist/base/BtnBase.js.map +1 -1
  9. package/dist/base/BtnBase.vue.d.ts.map +1 -1
  10. package/dist/base/BtnBase.vue2.js +6 -1
  11. package/dist/base/BtnBase.vue2.js.map +1 -1
  12. package/dist/components/DropdownListItem.js.map +1 -1
  13. package/dist/components/DropdownListItem.vue.d.ts.map +1 -1
  14. package/dist/components/DropdownListItem.vue2.js +13 -4
  15. package/dist/components/DropdownListItem.vue2.js.map +1 -1
  16. package/dist/components/InputRange.js.map +1 -1
  17. package/dist/components/InputRange.vue.d.ts.map +1 -1
  18. package/dist/components/InputRange.vue2.js +10 -2
  19. package/dist/components/InputRange.vue2.js.map +1 -1
  20. package/dist/components/PlAccordion/PlAccordionSection.js.map +1 -1
  21. package/dist/components/PlAccordion/PlAccordionSection.style.js.map +1 -1
  22. package/dist/components/PlAccordion/PlAccordionSection.vue.d.ts.map +1 -1
  23. package/dist/components/PlAccordion/PlAccordionSection.vue2.js +7 -1
  24. package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
  25. package/dist/components/PlAlert/PlAlert.js.map +1 -1
  26. package/dist/components/PlAlert/PlAlert.vue.d.ts.map +1 -1
  27. package/dist/components/PlAlert/PlAlert.vue2.js +10 -1
  28. package/dist/components/PlAlert/PlAlert.vue2.js.map +1 -1
  29. package/dist/components/PlAutocomplete/PlAutocomplete.js.map +1 -1
  30. package/dist/components/PlAutocomplete/PlAutocomplete.vue.d.ts.map +1 -1
  31. package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js +29 -11
  32. package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js.map +1 -1
  33. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.js.map +1 -1
  34. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts.map +1 -1
  35. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js +30 -9
  36. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js.map +1 -1
  37. package/dist/components/PlBtnAccent/PlBtnAccent.js.map +1 -1
  38. package/dist/components/PlBtnAccent/PlBtnAccent.vue.d.ts.map +1 -1
  39. package/dist/components/PlBtnAccent/PlBtnAccent.vue2.js +4 -1
  40. package/dist/components/PlBtnAccent/PlBtnAccent.vue2.js.map +1 -1
  41. package/dist/components/PlBtnDanger/PlBtnDanger.js.map +1 -1
  42. package/dist/components/PlBtnDanger/PlBtnDanger.vue.d.ts.map +1 -1
  43. package/dist/components/PlBtnDanger/PlBtnDanger.vue2.js +4 -1
  44. package/dist/components/PlBtnDanger/PlBtnDanger.vue2.js.map +1 -1
  45. package/dist/components/PlBtnGhost/PlBtnGhost.js.map +1 -1
  46. package/dist/components/PlBtnGhost/PlBtnGhost.vue.d.ts.map +1 -1
  47. package/dist/components/PlBtnGhost/PlBtnGhost.vue2.js +7 -1
  48. package/dist/components/PlBtnGhost/PlBtnGhost.vue2.js.map +1 -1
  49. package/dist/components/PlBtnGroup/PlBtnGroup.js.map +1 -1
  50. package/dist/components/PlBtnGroup/PlBtnGroup.vue.d.ts.map +1 -1
  51. package/dist/components/PlBtnGroup/PlBtnGroup.vue2.js +19 -6
  52. package/dist/components/PlBtnGroup/PlBtnGroup.vue2.js.map +1 -1
  53. package/dist/components/PlBtnLink/PlBtnLink.js.map +1 -1
  54. package/dist/components/PlBtnLink/PlBtnLink.vue.d.ts.map +1 -1
  55. package/dist/components/PlBtnLink/PlBtnLink.vue2.js +2 -0
  56. package/dist/components/PlBtnLink/PlBtnLink.vue2.js.map +1 -1
  57. package/dist/components/PlBtnPrimary/PlBtnPrimary.js.map +1 -1
  58. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.d.ts.map +1 -1
  59. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js +4 -1
  60. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js.map +1 -1
  61. package/dist/components/PlBtnSecondary/PlBtnSecondary.js.map +1 -1
  62. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.d.ts.map +1 -1
  63. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js +1 -1
  64. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js.map +1 -1
  65. package/dist/components/PlBtnSplit/PlBtnSplit.js.map +1 -1
  66. package/dist/components/PlBtnSplit/PlBtnSplit.vue.d.ts.map +1 -1
  67. package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js +6 -0
  68. package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js.map +1 -1
  69. package/dist/components/PlChartHistogram/PlChartHistogram.js.map +1 -1
  70. package/dist/components/PlChartHistogram/PlChartHistogram.style.js.map +1 -1
  71. package/dist/components/PlChartHistogram/PlChartHistogram.vue.d.ts.map +1 -1
  72. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +7 -2
  73. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
  74. package/dist/components/PlChartHistogram/createGridlines.d.ts.map +1 -1
  75. package/dist/components/PlChartHistogram/createGridlines.js +1 -1
  76. package/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
  77. package/dist/components/PlChartHistogram/createLabels.d.ts.map +1 -1
  78. package/dist/components/PlChartHistogram/createLabels.js +1 -1
  79. package/dist/components/PlChartHistogram/createLabels.js.map +1 -1
  80. package/dist/components/PlChartHistogram/createSvgContainer.d.ts.map +1 -1
  81. package/dist/components/PlChartHistogram/createSvgContainer.js +1 -1
  82. package/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
  83. package/dist/components/PlChartHistogram/drawBins.d.ts.map +1 -1
  84. package/dist/components/PlChartHistogram/drawBins.js +2 -2
  85. package/dist/components/PlChartHistogram/drawBins.js.map +1 -1
  86. package/dist/components/PlChartHistogram/drawThreshold.d.ts.map +1 -1
  87. package/dist/components/PlChartHistogram/drawThreshold.js +1 -1
  88. package/dist/components/PlChartHistogram/drawThreshold.js.map +1 -1
  89. package/dist/components/PlChartHistogram/histogram.d.ts.map +1 -1
  90. package/dist/components/PlChartHistogram/histogram.js +1 -1
  91. package/dist/components/PlChartHistogram/histogram.js.map +1 -1
  92. package/dist/components/PlChartStackedBar/Legends.js.map +1 -1
  93. package/dist/components/PlChartStackedBar/Legends.style.js.map +1 -1
  94. package/dist/components/PlChartStackedBar/Legends.vue.d.ts.map +1 -1
  95. package/dist/components/PlChartStackedBar/Legends.vue2.js +7 -1
  96. package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
  97. package/dist/components/PlChartStackedBar/PlChartStackedBar.js.map +1 -1
  98. package/dist/components/PlChartStackedBar/PlChartStackedBar.style.js.map +1 -1
  99. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue.d.ts.map +1 -1
  100. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +5 -1
  101. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
  102. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.js.map +1 -1
  103. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.style.js.map +1 -1
  104. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue.d.ts.map +1 -1
  105. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js +4 -1
  106. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
  107. package/dist/components/PlChartStackedBar/StackedRow.js.map +1 -1
  108. package/dist/components/PlChartStackedBar/StackedRow.style.js.map +1 -1
  109. package/dist/components/PlChartStackedBar/StackedRow.vue.d.ts.map +1 -1
  110. package/dist/components/PlChartStackedBar/StackedRow.vue2.js +13 -3
  111. package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
  112. package/dist/components/PlChartStackedBar/StackedRowCompact.js.map +1 -1
  113. package/dist/components/PlChartStackedBar/StackedRowCompact.style.js.map +1 -1
  114. package/dist/components/PlChartStackedBar/StackedRowCompact.vue.d.ts.map +1 -1
  115. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js +8 -2
  116. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
  117. package/dist/components/PlCheckbox/PlCheckbox.js.map +1 -1
  118. package/dist/components/PlCheckbox/PlCheckbox.vue.d.ts.map +1 -1
  119. package/dist/components/PlCheckbox/PlCheckbox.vue2.js +9 -2
  120. package/dist/components/PlCheckbox/PlCheckbox.vue2.js.map +1 -1
  121. package/dist/components/PlCheckbox/PlCheckboxBase.js.map +1 -1
  122. package/dist/components/PlCheckbox/PlCheckboxBase.vue.d.ts.map +1 -1
  123. package/dist/components/PlCheckbox/PlCheckboxBase.vue2.js +1 -0
  124. package/dist/components/PlCheckbox/PlCheckboxBase.vue2.js.map +1 -1
  125. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.js.map +1 -1
  126. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.d.ts.map +1 -1
  127. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js +19 -5
  128. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js.map +1 -1
  129. package/dist/components/PlChip/PlChip.js.map +1 -1
  130. package/dist/components/PlChip/PlChip.vue.d.ts.map +1 -1
  131. package/dist/components/PlChip/PlChip.vue2.js +7 -1
  132. package/dist/components/PlChip/PlChip.vue2.js.map +1 -1
  133. package/dist/components/PlClipboard/PlClipboard.js.map +1 -1
  134. package/dist/components/PlClipboard/PlClipboard.style.js.map +1 -1
  135. package/dist/components/PlClipboard/PlClipboard.vue.d.ts.map +1 -1
  136. package/dist/components/PlClipboard/PlClipboard.vue2.js +1 -0
  137. package/dist/components/PlClipboard/PlClipboard.vue2.js.map +1 -1
  138. package/dist/components/PlConfirmDialog.js.map +1 -1
  139. package/dist/components/PlConfirmDialog.vue.d.ts.map +1 -1
  140. package/dist/components/PlConfirmDialog.vue2.js +9 -2
  141. package/dist/components/PlConfirmDialog.vue2.js.map +1 -1
  142. package/dist/components/PlDialogModal/PlDialogModal.js.map +1 -1
  143. package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts.map +1 -1
  144. package/dist/components/PlDialogModal/PlDialogModal.vue2.js +12 -5
  145. package/dist/components/PlDialogModal/PlDialogModal.vue2.js.map +1 -1
  146. package/dist/components/PlDropdown/OptionList.js.map +1 -1
  147. package/dist/components/PlDropdown/OptionList.vue.d.ts.map +1 -1
  148. package/dist/components/PlDropdown/OptionList.vue2.js +11 -5
  149. package/dist/components/PlDropdown/OptionList.vue2.js.map +1 -1
  150. package/dist/components/PlDropdown/PlDropdown.js.map +1 -1
  151. package/dist/components/PlDropdown/PlDropdown.vue.d.ts.map +1 -1
  152. package/dist/components/PlDropdown/PlDropdown.vue2.js +26 -10
  153. package/dist/components/PlDropdown/PlDropdown.vue2.js.map +1 -1
  154. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.js.map +1 -1
  155. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.d.ts.map +1 -1
  156. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js +32 -10
  157. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js.map +1 -1
  158. package/dist/components/PlDropdownLine/PlDropdownLine.js.map +1 -1
  159. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts.map +1 -1
  160. package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js +17 -3
  161. package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js.map +1 -1
  162. package/dist/components/PlDropdownLine/ResizableInput.js.map +1 -1
  163. package/dist/components/PlDropdownLine/ResizableInput.vue.d.ts.map +1 -1
  164. package/dist/components/PlDropdownLine/ResizableInput.vue2.js +5 -2
  165. package/dist/components/PlDropdownLine/ResizableInput.vue2.js.map +1 -1
  166. package/dist/components/PlDropdownMulti/PlDropdownMulti.js.map +1 -1
  167. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.d.ts.map +1 -1
  168. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js +31 -10
  169. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js.map +1 -1
  170. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.js.map +1 -1
  171. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts.map +1 -1
  172. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js +1 -1
  173. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js.map +1 -1
  174. package/dist/components/PlDropdownRef/PlDropdownRef.js.map +1 -1
  175. package/dist/components/PlDropdownRef/PlDropdownRef.vue.d.ts.map +1 -1
  176. package/dist/components/PlDropdownRef/PlDropdownRef.vue2.js +1 -1
  177. package/dist/components/PlDropdownRef/PlDropdownRef.vue2.js.map +1 -1
  178. package/dist/components/PlEditableTitle/PlEditableTitle.js.map +1 -1
  179. package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts.map +1 -1
  180. package/dist/components/PlEditableTitle/PlEditableTitle.vue2.js +9 -3
  181. package/dist/components/PlEditableTitle/PlEditableTitle.vue2.js.map +1 -1
  182. package/dist/components/PlElementList/PlElementList.js.map +1 -1
  183. package/dist/components/PlElementList/PlElementList.style.js.map +1 -1
  184. package/dist/components/PlElementList/PlElementList.vue.d.ts.map +1 -1
  185. package/dist/components/PlElementList/PlElementList.vue2.js +6 -1
  186. package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
  187. package/dist/components/PlElementList/PlElementListItem.js.map +1 -1
  188. package/dist/components/PlElementList/PlElementListItem.style.js.map +1 -1
  189. package/dist/components/PlElementList/PlElementListItem.vue.d.ts.map +1 -1
  190. package/dist/components/PlElementList/PlElementListItem.vue2.js +34 -13
  191. package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
  192. package/dist/components/PlErrorAlert/PlErrorAlert.js.map +1 -1
  193. package/dist/components/PlErrorAlert/PlErrorAlert.style.js.map +1 -1
  194. package/dist/components/PlErrorAlert/PlErrorAlert.vue.d.ts.map +1 -1
  195. package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js +15 -3
  196. package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js.map +1 -1
  197. package/dist/components/PlErrorBoundary/PlErrorBoundary.js.map +1 -1
  198. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.d.ts.map +1 -1
  199. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js +1 -0
  200. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js.map +1 -1
  201. package/dist/components/PlFileDialog/Local.js.map +1 -1
  202. package/dist/components/PlFileDialog/Local.vue.d.ts.map +1 -1
  203. package/dist/components/PlFileDialog/Local.vue2.js +23 -20
  204. package/dist/components/PlFileDialog/Local.vue2.js.map +1 -1
  205. package/dist/components/PlFileDialog/PlFileDialog.js.map +1 -1
  206. package/dist/components/PlFileDialog/PlFileDialog.vue.d.ts.map +1 -1
  207. package/dist/components/PlFileDialog/PlFileDialog.vue2.js +5 -1
  208. package/dist/components/PlFileDialog/PlFileDialog.vue2.js.map +1 -1
  209. package/dist/components/PlFileDialog/Remote.js.map +1 -1
  210. package/dist/components/PlFileDialog/Remote.vue.d.ts.map +1 -1
  211. package/dist/components/PlFileDialog/Remote.vue2.js +108 -94
  212. package/dist/components/PlFileDialog/Remote.vue2.js.map +1 -1
  213. package/dist/components/PlFileDialog/Shortcuts.js.map +1 -1
  214. package/dist/components/PlFileDialog/Shortcuts.style.js.map +1 -1
  215. package/dist/components/PlFileDialog/Shortcuts.vue.d.ts.map +1 -1
  216. package/dist/components/PlFileDialog/Shortcuts.vue2.js +2 -1
  217. package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
  218. package/dist/components/PlFileInput/PlFileInput.js.map +1 -1
  219. package/dist/components/PlFileInput/PlFileInput.vue.d.ts.map +1 -1
  220. package/dist/components/PlFileInput/PlFileInput.vue2.js +92 -71
  221. package/dist/components/PlFileInput/PlFileInput.vue2.js.map +1 -1
  222. package/dist/components/PlLoaderCircular/PlLoaderCircular.js.map +1 -1
  223. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts.map +1 -1
  224. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js +4 -1
  225. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js.map +1 -1
  226. package/dist/components/PlLoaderLogo.js.map +1 -1
  227. package/dist/components/PlLoaderLogo.style.js.map +1 -1
  228. package/dist/components/PlLoaderLogo.vue.css +1 -1
  229. package/dist/components/PlLoaderLogo.vue.d.ts.map +1 -1
  230. package/dist/components/PlLoaderLogo.vue2.js +4 -3
  231. package/dist/components/PlLoaderLogo.vue2.js.map +1 -1
  232. package/dist/components/PlLogView/PlLogView.js.map +1 -1
  233. package/dist/components/PlLogView/PlLogView.vue.d.ts.map +1 -1
  234. package/dist/components/PlLogView/PlLogView.vue2.js +13 -1
  235. package/dist/components/PlLogView/PlLogView.vue2.js.map +1 -1
  236. package/dist/components/PlNotificationAlert/PlNotificationAlert.js.map +1 -1
  237. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts.map +1 -1
  238. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js +8 -2
  239. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js.map +1 -1
  240. package/dist/components/PlNumberField/PlNumberField.js.map +1 -1
  241. package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
  242. package/dist/components/PlNumberField/PlNumberField.vue2.js +12 -3
  243. package/dist/components/PlNumberField/PlNumberField.vue2.js.map +1 -1
  244. package/dist/components/PlProgressBar/PlProgressBar.js.map +1 -1
  245. package/dist/components/PlProgressBar/PlProgressBar.vue.d.ts.map +1 -1
  246. package/dist/components/PlProgressBar/PlProgressBar.vue2.js +9 -1
  247. package/dist/components/PlProgressBar/PlProgressBar.vue2.js.map +1 -1
  248. package/dist/components/PlProgressCell/PlProgressCell.js.map +1 -1
  249. package/dist/components/PlProgressCell/PlProgressCell.vue.d.ts.map +1 -1
  250. package/dist/components/PlProgressCell/PlProgressCell.vue2.js +19 -7
  251. package/dist/components/PlProgressCell/PlProgressCell.vue2.js.map +1 -1
  252. package/dist/components/PlRadio/PlRadio.js.map +1 -1
  253. package/dist/components/PlRadio/PlRadio.style.js.map +1 -1
  254. package/dist/components/PlRadio/PlRadio.vue.d.ts.map +1 -1
  255. package/dist/components/PlRadio/PlRadio.vue2.js +10 -3
  256. package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
  257. package/dist/components/PlRadio/PlRadioGroup.js.map +1 -1
  258. package/dist/components/PlRadio/PlRadioGroup.style.js.map +1 -1
  259. package/dist/components/PlRadio/PlRadioGroup.vue.d.ts.map +1 -1
  260. package/dist/components/PlRadio/PlRadioGroup.vue2.js +10 -3
  261. package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
  262. package/dist/components/PlSearchField/PlSearchField.js.map +1 -1
  263. package/dist/components/PlSearchField/PlSearchField.style.js.map +1 -1
  264. package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
  265. package/dist/components/PlSearchField/PlSearchField.vue2.js +11 -4
  266. package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
  267. package/dist/components/PlSectionSeparator/PlSectionSeparator.js.map +1 -1
  268. package/dist/components/PlSectionSeparator/PlSectionSeparator.style.js.map +1 -1
  269. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue.d.ts.map +1 -1
  270. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js +7 -1
  271. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
  272. package/dist/components/PlSidebar/PlSidebarGroup.js.map +1 -1
  273. package/dist/components/PlSidebar/PlSidebarGroup.style.js.map +1 -1
  274. package/dist/components/PlSidebar/PlSidebarGroup.vue.d.ts.map +1 -1
  275. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js +5 -1
  276. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
  277. package/dist/components/PlSidebar/PlSidebarItem.js.map +1 -1
  278. package/dist/components/PlSidebar/PlSidebarItem.style.js.map +1 -1
  279. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts.map +1 -1
  280. package/dist/components/PlSidebar/PlSidebarItem.vue2.js +7 -1
  281. package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
  282. package/dist/components/PlSlideModal/PlPureSlideModal.js.map +1 -1
  283. package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts.map +1 -1
  284. package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js +4 -1
  285. package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js.map +1 -1
  286. package/dist/components/PlSlideModal/PlSlideModal.js.map +1 -1
  287. package/dist/components/PlSlideModal/PlSlideModal.style.js.map +1 -1
  288. package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts.map +1 -1
  289. package/dist/components/PlSlideModal/PlSlideModal.vue2.js +7 -2
  290. package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
  291. package/dist/components/PlSpacer/PlSpacer.vue.d.ts.map +1 -1
  292. package/dist/components/PlSplash/PlSplash.js.map +1 -1
  293. package/dist/components/PlSplash/PlSplash.vue.d.ts.map +1 -1
  294. package/dist/components/PlSplash/PlSplash.vue2.js +13 -5
  295. package/dist/components/PlSplash/PlSplash.vue2.js.map +1 -1
  296. package/dist/components/PlStatusTag/PlStatusTag.js.map +1 -1
  297. package/dist/components/PlStatusTag/PlStatusTag.vue.d.ts.map +1 -1
  298. package/dist/components/PlStatusTag/PlStatusTag.vue2.js +4 -1
  299. package/dist/components/PlStatusTag/PlStatusTag.vue2.js.map +1 -1
  300. package/dist/components/PlTabs/PlTabs.js.map +1 -1
  301. package/dist/components/PlTabs/PlTabs.vue.d.ts.map +1 -1
  302. package/dist/components/PlTabs/PlTabs.vue2.js +16 -11
  303. package/dist/components/PlTabs/PlTabs.vue2.js.map +1 -1
  304. package/dist/components/PlTextArea/PlTextArea.js.map +1 -1
  305. package/dist/components/PlTextArea/PlTextArea.vue.d.ts.map +1 -1
  306. package/dist/components/PlTextArea/PlTextArea.vue2.js +21 -8
  307. package/dist/components/PlTextArea/PlTextArea.vue2.js.map +1 -1
  308. package/dist/components/PlTextField/PlTextField.js.map +1 -1
  309. package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
  310. package/dist/components/PlTextField/PlTextField.vue2.js +23 -9
  311. package/dist/components/PlTextField/PlTextField.vue2.js.map +1 -1
  312. package/dist/components/PlToggleSwitch/PlToggleSwitch.js.map +1 -1
  313. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.d.ts.map +1 -1
  314. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js +10 -2
  315. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js.map +1 -1
  316. package/dist/components/PlTooltip/PlTooltip.js.map +1 -1
  317. package/dist/components/PlTooltip/PlTooltip.style.js.map +1 -1
  318. package/dist/components/PlTooltip/PlTooltip.vue.css +1 -1
  319. package/dist/components/PlTooltip/PlTooltip.vue.d.ts.map +1 -1
  320. package/dist/components/PlTooltip/PlTooltip.vue2.js +7 -2
  321. package/dist/components/PlTooltip/PlTooltip.vue2.js.map +1 -1
  322. package/dist/components/Slider.js.map +1 -1
  323. package/dist/components/Slider.vue.d.ts.map +1 -1
  324. package/dist/components/Slider.vue2.js +13 -1
  325. package/dist/components/Slider.vue2.js.map +1 -1
  326. package/dist/components/SliderRange.js.map +1 -1
  327. package/dist/components/SliderRange.vue.d.ts.map +1 -1
  328. package/dist/components/SliderRange.vue2.js +14 -1
  329. package/dist/components/SliderRange.vue2.js.map +1 -1
  330. package/dist/components/SliderRangeTriple.js.map +1 -1
  331. package/dist/components/SliderRangeTriple.vue.d.ts.map +1 -1
  332. package/dist/components/SliderRangeTriple.vue2.js +13 -1
  333. package/dist/components/SliderRangeTriple.vue2.js.map +1 -1
  334. package/dist/components/TabItem.js.map +1 -1
  335. package/dist/components/TabItem.vue.d.ts.map +1 -1
  336. package/dist/components/TabItem.vue2.js +8 -2
  337. package/dist/components/TabItem.vue2.js.map +1 -1
  338. package/dist/components/contextMenu/Menu.js +1 -1
  339. package/dist/components/contextMenu/Menu.js.map +1 -1
  340. package/dist/components/contextMenu/Menu.style.css +1 -1
  341. package/dist/components/contextMenu/Menu.vue.d.ts.map +1 -1
  342. package/dist/components/contextMenu/Menu.vue2.js +12 -8
  343. package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
  344. package/dist/layout/PlBlockPage/PlBlockPage.js.map +1 -1
  345. package/dist/layout/PlBlockPage/PlBlockPage.style.js.map +1 -1
  346. package/dist/layout/PlBlockPage/PlBlockPage.vue.d.ts.map +1 -1
  347. package/dist/layout/PlBlockPage/PlBlockPage.vue2.js +45 -25
  348. package/dist/layout/PlBlockPage/PlBlockPage.vue2.js.map +1 -1
  349. package/dist/layout/PlContainer/PlContainer.js.map +1 -1
  350. package/dist/layout/PlContainer/PlContainer.vue.d.ts.map +1 -1
  351. package/dist/layout/PlContainer/PlContainer.vue2.js +1 -0
  352. package/dist/layout/PlContainer/PlContainer.vue2.js.map +1 -1
  353. package/dist/layout/PlGrid/PlGrid.js.map +1 -1
  354. package/dist/layout/PlGrid/PlGrid.vue.d.ts.map +1 -1
  355. package/dist/layout/PlGrid/PlGrid.vue2.js +1 -0
  356. package/dist/layout/PlGrid/PlGrid.vue2.js.map +1 -1
  357. package/dist/layout/PlPlaceholder/PlPlaceholder.js.map +1 -1
  358. package/dist/layout/PlPlaceholder/PlPlaceholder.style.js.map +1 -1
  359. package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts.map +1 -1
  360. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js +25 -6
  361. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js.map +1 -1
  362. package/dist/layout/PlRow/PlRow.js.map +1 -1
  363. package/dist/layout/PlRow/PlRow.vue.d.ts.map +1 -1
  364. package/dist/layout/PlRow/PlRow.vue2.js +7 -4
  365. package/dist/layout/PlRow/PlRow.vue2.js.map +1 -1
  366. package/dist/layout/PlSpacer/PlSpacer.js.map +1 -1
  367. package/dist/layout/PlSpacer/PlSpacer.vue.d.ts.map +1 -1
  368. package/dist/layout/PlSpacer/PlSpacer.vue2.js +1 -0
  369. package/dist/layout/PlSpacer/PlSpacer.vue2.js.map +1 -1
  370. package/package.json +4 -4
  371. package/src/__tests__/default-testid.test.ts +95 -0
  372. package/src/base/BtnBase.vue +3 -3
  373. package/src/components/DropdownListItem.vue +14 -4
  374. package/src/components/InputRange.vue +6 -2
  375. package/src/components/PlAccordion/PlAccordionSection.vue +13 -4
  376. package/src/components/PlAlert/PlAlert.vue +5 -3
  377. package/src/components/PlAutocomplete/PlAutocomplete.vue +47 -11
  378. package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +53 -11
  379. package/src/components/PlBtnAccent/PlBtnAccent.vue +1 -1
  380. package/src/components/PlBtnDanger/PlBtnDanger.vue +1 -1
  381. package/src/components/PlBtnGhost/PlBtnGhost.vue +4 -3
  382. package/src/components/PlBtnGroup/PlBtnGroup.vue +16 -6
  383. package/src/components/PlBtnLink/PlBtnLink.vue +2 -1
  384. package/src/components/PlBtnPrimary/PlBtnPrimary.vue +1 -1
  385. package/src/components/PlBtnSecondary/PlBtnSecondary.vue +1 -1
  386. package/src/components/PlBtnSplit/PlBtnSplit.vue +12 -2
  387. package/src/components/PlChartHistogram/PlChartHistogram.vue +9 -3
  388. package/src/components/PlChartHistogram/createGridlines.ts +2 -0
  389. package/src/components/PlChartHistogram/createLabels.ts +2 -0
  390. package/src/components/PlChartHistogram/createSvgContainer.ts +2 -0
  391. package/src/components/PlChartHistogram/drawBins.ts +2 -0
  392. package/src/components/PlChartHistogram/drawThreshold.ts +1 -0
  393. package/src/components/PlChartHistogram/histogram.ts +6 -1
  394. package/src/components/PlChartStackedBar/Legends.vue +18 -4
  395. package/src/components/PlChartStackedBar/PlChartStackedBar.vue +4 -2
  396. package/src/components/PlChartStackedBar/PlChartStackedBarCompact.vue +1 -1
  397. package/src/components/PlChartStackedBar/StackedRow.vue +12 -4
  398. package/src/components/PlChartStackedBar/StackedRowCompact.vue +10 -3
  399. package/src/components/PlCheckbox/PlCheckbox.vue +15 -4
  400. package/src/components/PlCheckbox/PlCheckboxBase.vue +1 -0
  401. package/src/components/PlCheckboxGroup/PlCheckboxGroup.vue +15 -4
  402. package/src/components/PlChip/PlChip.vue +4 -3
  403. package/src/components/PlClipboard/PlClipboard.vue +7 -1
  404. package/src/components/PlConfirmDialog.vue +8 -3
  405. package/src/components/PlDialogModal/PlDialogModal.vue +15 -2
  406. package/src/components/PlDropdown/OptionList.vue +13 -3
  407. package/src/components/PlDropdown/PlDropdown.vue +35 -11
  408. package/src/components/PlDropdownLegacy/PlDropdownLegacy.vue +51 -12
  409. package/src/components/PlDropdownLine/PlDropdownLine.vue +29 -5
  410. package/src/components/PlDropdownLine/ResizableInput.vue +2 -1
  411. package/src/components/PlDropdownMulti/PlDropdownMulti.vue +47 -11
  412. package/src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue +1 -0
  413. package/src/components/PlDropdownRef/PlDropdownRef.vue +1 -0
  414. package/src/components/PlEditableTitle/PlEditableTitle.vue +11 -3
  415. package/src/components/PlElementList/PlElementList.vue +8 -3
  416. package/src/components/PlElementList/PlElementListItem.vue +16 -5
  417. package/src/components/PlErrorAlert/PlErrorAlert.vue +8 -6
  418. package/src/components/PlErrorBoundary/PlErrorBoundary.vue +7 -1
  419. package/src/components/PlFileDialog/Local.vue +12 -4
  420. package/src/components/PlFileDialog/PlFileDialog.vue +13 -3
  421. package/src/components/PlFileDialog/Remote.vue +39 -11
  422. package/src/components/PlFileDialog/Shortcuts.vue +7 -1
  423. package/src/components/PlFileInput/PlFileInput.vue +44 -19
  424. package/src/components/PlLoaderCircular/PlLoaderCircular.vue +1 -1
  425. package/src/components/PlLoaderLogo.vue +6 -1
  426. package/src/components/PlLogView/PlLogView.vue +30 -8
  427. package/src/components/PlNotificationAlert/PlNotificationAlert.vue +15 -3
  428. package/src/components/PlNumberField/PlNumberField.vue +14 -3
  429. package/src/components/PlProgressBar/PlProgressBar.vue +12 -4
  430. package/src/components/PlProgressCell/PlProgressCell.vue +13 -4
  431. package/src/components/PlRadio/PlRadio.vue +10 -3
  432. package/src/components/PlRadio/PlRadioGroup.vue +3 -2
  433. package/src/components/PlSearchField/PlSearchField.vue +5 -3
  434. package/src/components/PlSectionSeparator/PlSectionSeparator.vue +6 -2
  435. package/src/components/PlSidebar/PlSidebarGroup.vue +2 -2
  436. package/src/components/PlSidebar/PlSidebarItem.vue +12 -4
  437. package/src/components/PlSlideModal/PlPureSlideModal.vue +7 -1
  438. package/src/components/PlSlideModal/PlSlideModal.vue +4 -3
  439. package/src/components/PlSpacer/PlSpacer.vue +1 -1
  440. package/src/components/PlSplash/PlSplash.vue +6 -3
  441. package/src/components/PlStatusTag/PlStatusTag.vue +1 -0
  442. package/src/components/PlTabs/PlTabs.vue +6 -2
  443. package/src/components/PlTextArea/PlTextArea.vue +21 -8
  444. package/src/components/PlTextField/PlTextField.vue +23 -8
  445. package/src/components/PlToggleSwitch/PlToggleSwitch.vue +4 -3
  446. package/src/components/PlTooltip/PlTooltip.vue +3 -0
  447. package/src/components/Slider.vue +27 -7
  448. package/src/components/SliderRange.vue +28 -7
  449. package/src/components/SliderRangeTriple.vue +19 -5
  450. package/src/components/TabItem.vue +2 -2
  451. package/src/components/contextMenu/Menu.vue +8 -3
  452. package/src/layout/PlBlockPage/PlBlockPage.vue +40 -11
  453. package/src/layout/PlContainer/PlContainer.vue +1 -0
  454. package/src/layout/PlGrid/PlGrid.vue +1 -1
  455. package/src/layout/PlPlaceholder/PlPlaceholder.vue +20 -8
  456. package/src/layout/PlRow/PlRow.vue +5 -1
  457. package/src/layout/PlSpacer/PlSpacer.vue +1 -1
@@ -17,16 +17,20 @@ import { getFileNameFromHandle as ee, getFilePathFromHandle as j } from "@platfo
17
17
  //#region src/components/PlFileInput/PlFileInput.vue?vue&type=script&setup=true&lang.ts
18
18
  var M = {
19
19
  key: 0,
20
- ref: "label"
20
+ ref: "label",
21
+ "data-testid": "pl-file-input-label"
21
22
  }, N = ["data-placeholder"], P = {
22
23
  key: 5,
23
- class: "pl-file-input__stats"
24
+ class: "pl-file-input__stats",
25
+ "data-testid": "pl-file-input-stats"
24
26
  }, F = {
25
27
  key: 0,
26
- class: "pl-file-input__error"
28
+ class: "pl-file-input__error",
29
+ "data-testid": "pl-file-input-error"
27
30
  }, I = {
28
31
  key: 1,
29
- class: "pl-file-input__helper"
32
+ class: "pl-file-input__helper",
33
+ "data-testid": "pl-file-input-helper"
30
34
  }, L = /* @__PURE__ */ g({
31
35
  __name: "PlFileInput",
32
36
  props: {
@@ -73,77 +77,94 @@ var M = {
73
77
  }, te = () => B("update:modelValue", void 0);
74
78
  E(() => V.modelValue, () => R.error = void 0, { immediate: !0 });
75
79
  let $ = x();
76
- return V.cellStyle || a($), (t, a) => (y(), f(c, null, [p("div", { class: _([{
77
- "pl-file-input__cell-style": !!g.cellStyle,
78
- "has-file": !!U.value
79
- }, "pl-file-input__envelope"]) }, [p("div", {
80
- ref_key: "rootRef",
81
- ref: $,
80
+ return V.cellStyle || a($), (t, a) => (y(), f("div", {
82
81
  class: _([{
83
- dashed: g.dashed,
84
- error: J.value
85
- }, "pl-file-input"]),
86
- tabindex: "0",
87
- onKeyup: O(Z, ["enter"]),
88
- onClick: k(Z, ["stop"])
82
+ "pl-file-input__cell-style": !!g.cellStyle,
83
+ "has-file": !!U.value
84
+ }, "pl-file-input__envelope"]),
85
+ "data-testid": "pl-file-input"
89
86
  }, [
90
87
  p("div", {
91
- style: v(X.value),
92
- class: "pl-file-input__progress"
93
- }, null, 4),
94
- !g.cellStyle && g.label ? (y(), f("label", M, [
95
- g.required ? (y(), u(w(n), {
96
- key: 0,
97
- uri: w(o)
98
- }, null, 8, ["uri"])) : d("", !0),
99
- p("span", null, C(g.label), 1),
100
- w(z).tooltip || W.value ? (y(), u(w(e), {
88
+ ref_key: "rootRef",
89
+ ref: $,
90
+ class: _([{
91
+ dashed: g.dashed,
92
+ error: J.value
93
+ }, "pl-file-input"]),
94
+ "data-testid": "pl-file-input-control",
95
+ tabindex: "0",
96
+ onKeyup: O(Z, ["enter"]),
97
+ onClick: k(Z, ["stop"])
98
+ }, [
99
+ p("div", {
100
+ style: v(X.value),
101
+ class: "pl-file-input__progress",
102
+ "data-testid": "pl-file-input-progress"
103
+ }, null, 4),
104
+ !g.cellStyle && g.label ? (y(), f("label", M, [
105
+ g.required ? (y(), u(w(n), {
106
+ key: 0,
107
+ uri: w(o),
108
+ "data-testid": "pl-file-input-required"
109
+ }, null, 8, ["uri"])) : d("", !0),
110
+ p("span", null, C(g.label), 1),
111
+ w(z).tooltip || W.value ? (y(), u(w(e), {
112
+ key: 1,
113
+ class: "info",
114
+ position: "top",
115
+ "data-testid": "pl-file-input-tooltip"
116
+ }, {
117
+ tooltip: D(() => [w(z).tooltip ? S(t.$slots, "tooltip", { key: 0 }) : (y(), f(c, { key: 1 }, [m(C(W.value), 1)], 64))]),
118
+ _: 3
119
+ })) : d("", !0)
120
+ ], 512)) : d("", !0),
121
+ J.value ? (y(), u(w(r), {
101
122
  key: 1,
102
- class: "info",
103
- position: "top"
104
- }, {
105
- tooltip: D(() => [w(z).tooltip ? S(t.$slots, "tooltip", { key: 0 }) : (y(), f(c, { key: 1 }, [m(C(W.value), 1)], 64))]),
106
- _: 3
107
- })) : d("", !0)
108
- ], 512)) : d("", !0),
109
- J.value ? (y(), u(w(r), {
110
- key: 1,
111
- name: "restart"
112
- })) : G.value ? (y(), u(w(r), {
113
- key: 2,
114
- name: "cloud-upload"
115
- })) : K.value ? (y(), u(w(r), {
116
- key: 3,
117
- name: "success"
118
- })) : (y(), u(w(r), {
119
- key: 4,
120
- name: "paper-clip"
121
- })),
122
- p("div", {
123
- "data-placeholder": g.placeholder ?? "Choose file",
124
- class: "pl-file-input__filename"
125
- }, C(U.value), 9, N),
126
- Y.value ? (y(), f("div", P, C(Y.value), 1)) : d("", !0),
127
- g.modelValue ? (y(), u(w(r), {
128
- key: 6,
129
- class: "pl-file-input__clear",
130
- name: "close",
131
- onClick: k(te, ["stop"])
132
- })) : d("", !0),
133
- h(i, { class: "pl-file-input__contour" })
134
- ], 34), J.value ? (y(), f("div", F, C(q.value), 1)) : g.helper ? (y(), f("div", I, C(g.helper), 1)) : d("", !0)], 2), h(w(s), {
135
- modelValue: R.fileDialogOpen,
136
- "onUpdate:modelValue": a[0] ||= (e) => R.fileDialogOpen = e,
137
- "close-on-outside-click": g.fileDialogCloseOnOutsideClick,
138
- extensions: g.extensions,
139
- title: g.fileDialogTitle,
140
- "onImport:files": Q
141
- }, null, 8, [
142
- "modelValue",
143
- "close-on-outside-click",
144
- "extensions",
145
- "title"
146
- ])], 64));
123
+ name: "restart",
124
+ "data-testid": "pl-file-input-status-icon"
125
+ })) : G.value ? (y(), u(w(r), {
126
+ key: 2,
127
+ name: "cloud-upload",
128
+ "data-testid": "pl-file-input-status-icon"
129
+ })) : K.value ? (y(), u(w(r), {
130
+ key: 3,
131
+ name: "success",
132
+ "data-testid": "pl-file-input-status-icon"
133
+ })) : (y(), u(w(r), {
134
+ key: 4,
135
+ name: "paper-clip",
136
+ "data-testid": "pl-file-input-status-icon"
137
+ })),
138
+ p("div", {
139
+ "data-placeholder": g.placeholder ?? "Choose file",
140
+ class: "pl-file-input__filename",
141
+ "data-testid": "pl-file-input-filename"
142
+ }, C(U.value), 9, N),
143
+ Y.value ? (y(), f("div", P, C(Y.value), 1)) : d("", !0),
144
+ g.modelValue ? (y(), u(w(r), {
145
+ key: 6,
146
+ class: "pl-file-input__clear",
147
+ "data-testid": "pl-file-input-clear",
148
+ name: "close",
149
+ onClick: k(te, ["stop"])
150
+ })) : d("", !0),
151
+ h(i, { class: "pl-file-input__contour" })
152
+ ], 34),
153
+ J.value ? (y(), f("div", F, C(q.value), 1)) : g.helper ? (y(), f("div", I, C(g.helper), 1)) : d("", !0),
154
+ h(w(s), {
155
+ modelValue: R.fileDialogOpen,
156
+ "onUpdate:modelValue": a[0] ||= (e) => R.fileDialogOpen = e,
157
+ "close-on-outside-click": g.fileDialogCloseOnOutsideClick,
158
+ extensions: g.extensions,
159
+ title: g.fileDialogTitle,
160
+ "onImport:files": Q
161
+ }, null, 8, [
162
+ "modelValue",
163
+ "close-on-outside-click",
164
+ "extensions",
165
+ "title"
166
+ ])
167
+ ], 2));
147
168
  }
148
169
  });
149
170
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"PlFileInput.vue_vue_type_script_setup_true_lang.js","names":[],"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"],"mappings":"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"}
1
+ {"version":3,"file":"PlFileInput.vue_vue_type_script_setup_true_lang.js","names":[],"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 data-testid=\"pl-file-input\"\n >\n <div\n ref=\"rootRef\"\n :class=\"{ dashed, error: hasErrors }\"\n class=\"pl-file-input\"\n data-testid=\"pl-file-input-control\"\n tabindex=\"0\"\n @keyup.enter=\"openFileDialog\"\n @click.stop=\"openFileDialog\"\n >\n <div\n :style=\"progressStyle\"\n class=\"pl-file-input__progress\"\n data-testid=\"pl-file-input-progress\"\n />\n <label v-if=\"!cellStyle && label\" ref=\"label\" data-testid=\"pl-file-input-label\">\n <PlSvg v-if=\"required\" :uri=\"SvgRequired\" data-testid=\"pl-file-input-required\" />\n <span>{{ label }}</span>\n <PlTooltip\n v-if=\"slots.tooltip || filePath\"\n class=\"info\"\n position=\"top\"\n data-testid=\"pl-file-input-tooltip\"\n >\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\" data-testid=\"pl-file-input-status-icon\" />\n <PlMaskIcon24\n v-else-if=\"isUploading\"\n name=\"cloud-upload\"\n data-testid=\"pl-file-input-status-icon\"\n />\n <PlMaskIcon24 v-else-if=\"isUploaded\" name=\"success\" data-testid=\"pl-file-input-status-icon\" />\n <PlMaskIcon24 v-else name=\"paper-clip\" data-testid=\"pl-file-input-status-icon\" />\n <div\n :data-placeholder=\"placeholder ?? 'Choose file'\"\n class=\"pl-file-input__filename\"\n data-testid=\"pl-file-input-filename\"\n >\n {{ fileName }}\n </div>\n <div v-if=\"uploadStats\" class=\"pl-file-input__stats\" data-testid=\"pl-file-input-stats\">\n {{ uploadStats }}\n </div>\n <PlMaskIcon24\n v-if=\"modelValue\"\n class=\"pl-file-input__clear\"\n data-testid=\"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\" data-testid=\"pl-file-input-error\">\n {{ computedErrorMessage }}\n </div>\n <div v-else-if=\"helper\" class=\"pl-file-input__helper\" data-testid=\"pl-file-input-helper\">\n {{ helper }}\n </div>\n <!-- Teleported to <body> by PlDialogModal; kept inside so the component has a single root. -->\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 </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBA,IAAM,IAAO,EAAS;GACpB,gBAAgB;GAChB,OAAO,KAAA;GACR,CAAC,EAEI,IAAQ,GAAU,EAElB,IAAO,GAIP,IAAQ,GAgER,KACJ,GACA,MACG;AACE,SAIL,KAAI;AACF,WAAO,EAAG,EAAE;YACL,GAAK;AAEZ,WADA,EAAK,QAAQ,aAAe,QAAQ,EAAI,UAAU,OAAO,EAAI,EACtD;;KAIL,IAAW,QAAe,EAAS,EAAM,YAAY,GAAsB,CAAC,EAE5E,IAAW,QAAe,EAAS,EAAM,YAAY,EAAsB,CAAC,EAE5E,IAAc,QAAe,EAAM,YAAY,CAAC,EAAM,SAAS,KAAK,EAEpE,IAAa,QAAe,EAAM,YAAY,EAAM,SAAS,KAAK,EAElE,IAAuB,QAAe,EAAgB,EAAK,OAAO,EAAM,MAAM,CAAC,EAE/E,IAAY,QAAe,OAAO,EAAqB,SAAU,SAAS,EAE1E,IAAc,QAAe;GACjC,IAAM,EAAE,WAAQ,YAAS,EAAM,YAAY,EAAE;AAU7C,UARI,CAAC,KAAU,CAAC,EAAO,aACd,KAGL,EAAO,kBAAkB,CAAC,IACrB,EAAY,EAAO,gBAAgB,EAAE,CAAC,GAAG,QAAQ,EAAY,EAAO,YAAY,EAAE,CAAC,GAGrF,EAAY,EAAO,YAAY,EAAE,CAAC;IACzC,EAEI,IAAgB,QAAe;GACnC,IAAM,EAAE,gBAAa;AAMrB,UAJK,IAIE,EACL,OAAO,EAAS,OAAO,SAAS,KAAK,OAAO,EAAS,QAAQ,YAAY,KAAK,IAAI,GAAG,KACtF,GALQ,EAAE;IAMX,EAEI,UAAuB;AAC3B,KAAK,iBAAiB;KAGlB,KAAY,MAAqB;AACrC,GAAI,EAAE,MAAM,UACV,EAAK,qBAAqB,EAAE,MAAM,GAAG;KAInC,WAAc,EAAK,qBAAqB,KAAA,EAAU;AAExD,UACQ,EAAM,kBACL,EAAK,QAAQ,KAAA,GACpB,EAAE,WAAW,IAAM,CACpB;EAED,IAAM,IAAU,GAAK;SAEhB,EAAM,aACT,EAAc,EAAQ,kBAKtB,EA2EM,OAAA;GA1EH,OAAK,EAAA,CAAA;IAAA,6BAAA,CAAA,CAAmC,EAAA;IAAS,YAAA,CAAA,CAAgB,EAAA;IAAQ,EACpE,0BAAyB,CAAA;GAC/B,eAAY;;GAEZ,EAuDM,OAAA;aAtDA;IAAJ,KAAI;IACH,OAAK,EAAA,CAAA;KAAA,QAAI,EAAA;KAAM,OAAS,EAAA;KAAS,EAC5B,gBAAe,CAAA;IACrB,eAAY;IACZ,UAAS;IACR,SAAK,EAAQ,GAAc,CAAA,QAAA,CAAA;IAC3B,SAAK,EAAO,GAAc,CAAA,OAAA,CAAA;;IAE3B,EAIE,OAAA;KAHC,OAAK,EAAE,EAAA,MAAa;KACrB,OAAM;KACN,eAAY;;KAEA,EAAA,aAAa,EAAA,SAAA,GAAA,EAA3B,EAcQ,SAdR,GAcQ;KAbO,EAAA,YAAA,GAAA,EAAb,EAAiF,EAAA,EAAA,EAAA;;MAAzD,KAAK,EAAA,EAAW;MAAE,eAAY;;KACtD,EAAwB,QAAA,MAAA,EAAf,EAAA,MAAK,EAAA,EAAA;KAEN,EAAA,EAAK,CAAC,WAAW,EAAA,SAAA,GAAA,EADzB,EAUY,EAAA,EAAA,EAAA;;MARV,OAAM;MACN,UAAS;MACT,eAAY;;MAED,SAAO,QAC4B,CAAhC,EAAA,EAAK,CAAC,UAAlB,EAA4C,EAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,IAAA,GAAA,EAC5C,EAA0C,GAAA,EAAA,KAAA,GAAA,EAAA,CAAA,EAAA,EAAtB,EAAA,MAAQ,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA;;;;IAId,EAAA,SAAA,GAAA,EAApB,EAAwF,EAAA,EAAA,EAAA;;KAAzD,MAAK;KAAU,eAAY;UAE7C,EAAA,SAAA,GAAA,EADb,EAIE,EAAA,EAAA,EAAA;;KAFA,MAAK;KACL,eAAY;UAEW,EAAA,SAAA,GAAA,EAAzB,EAA8F,EAAA,EAAA,EAAA;;KAAzD,MAAK;KAAU,eAAY;gBAChE,EAAiF,EAAA,EAAA,EAAA;;KAA5D,MAAK;KAAa,eAAY;;IACnD,EAMM,OAAA;KALH,oBAAkB,EAAA,eAAW;KAC9B,OAAM;KACN,eAAY;SAET,EAAA,MAAQ,EAAA,GAAA,EAAA;IAEF,EAAA,SAAA,GAAA,EAAX,EAEM,OAFN,GAEM,EADD,EAAA,MAAW,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA;IAGR,EAAA,cAAA,GAAA,EADR,EAME,EAAA,EAAA,EAAA;;KAJA,OAAM;KACN,eAAY;KACZ,MAAK;KACJ,SAAK,EAAO,IAAK,CAAA,OAAA,CAAA;;IAEpB,EAAgD,GAAA,EAAjC,OAAM,0BAAwB,CAAA;;GAEpC,EAAA,SAAA,GAAA,EAAX,EAEM,OAFN,GAEM,EADD,EAAA,MAAoB,EAAA,EAAA,IAET,EAAA,UAAA,GAAA,EAAhB,EAEM,OAFN,GAEM,EADD,EAAA,OAAM,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA;GAGX,EAME,EAAA,EAAA,EAAA;gBALS,EAAK;6CAAA,iBAAc;IAC3B,0BAAwB,EAAA;IACxB,YAAY,EAAA;IACZ,OAAO,EAAA;IACP,kBAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderCircular.js","names":[],"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"],"mappings":""}
1
+ {"version":3,"file":"PlLoaderCircular.js","names":[],"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 data-testid=\"pl-loader-circular\" 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"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderCircular.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLoaderCircular/PlLoaderCircular.vue"],"names":[],"mappings":"AAqCA,OAAO,2BAA2B,CAAC;AAEnC,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CACpC,CAAC;AAoDJ,QAAA,MAAM,YAAY;UArDP,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;6EAwDpC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"PlLoaderCircular.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLoaderCircular/PlLoaderCircular.vue"],"names":[],"mappings":"AAqCA,OAAO,2BAA2B,CAAC;AAEnC,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CACpC,CAAC;AAqDJ,QAAA,MAAM,YAAY;UAtDP,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;6EAyDpC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,7 +1,10 @@
1
1
  import './pl-loader-circular.css';/* empty css */
2
2
  import { createElementBlock as e, createElementVNode as t, defineComponent as n, normalizeStyle as r, openBlock as i } from "vue";
3
3
  //#region src/components/PlLoaderCircular/PlLoaderCircular.vue?vue&type=script&setup=true&lang.ts
4
- var a = { class: "pl-loader-circular" }, o = {
4
+ var a = {
5
+ "data-testid": "pl-loader-circular",
6
+ class: "pl-loader-circular"
7
+ }, o = {
5
8
  class: "pl-loader-circular__svg",
6
9
  viewBox: "25 25 50 50"
7
10
  }, s = ["stroke"], c = /* @__PURE__ */ n({
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderCircular.vue_vue_type_script_setup_true_lang.js","names":[],"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"],"mappings":";;;;;;;;;;yBAWE,EAqBM,OArBN,GAqBM,CApBJ,EAmBM,OAAA;GAlBH,OAAK,EAAA;eAAuB,EAAA,KAAI;cAAwB,EAAA,KAAI;wBAAkC,EAAA,OAAI,KAAA,iBAAA;;GAKnG,OAAM;YAEN,EAUM,OAVN,GAUM,CATJ,EAQE,UAAA;GAPA,OAAM;GACN,IAAG;GACH,IAAG;GACH,GAAE;GACF,MAAK;GACJ,QAAM,GAAA,CAAM,EAAA,OAAI,KAAA,iBAAA;GACjB,gBAAa"}
1
+ {"version":3,"file":"PlLoaderCircular.vue_vue_type_script_setup_true_lang.js","names":[],"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 data-testid=\"pl-loader-circular\" 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"],"mappings":";;;;;;;;;;;;;yBAWE,EAqBM,OArBN,GAqBM,CApBJ,EAmBM,OAAA;GAlBH,OAAK,EAAA;eAAuB,EAAA,KAAI;cAAwB,EAAA,KAAI;wBAAkC,EAAA,OAAI,KAAA,iBAAA;;GAKnG,OAAM;YAEN,EAUM,OAVN,GAUM,CATJ,EAQE,UAAA;GAPA,OAAM;GACN,IAAG;GACH,IAAG;GACH,GAAE;GACF,MAAK;GACJ,QAAM,GAAA,CAAM,EAAA,OAAI,KAAA,iBAAA;GACjB,gBAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderLogo.js","names":[],"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"],"mappings":""}
1
+ {"version":3,"file":"PlLoaderLogo.js","names":[],"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 data-testid=\"pl-loader-logo\"\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\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"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderLogo.vue_vue_type_style_index_0_lang.module.js","names":[],"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"],"mappings":""}
1
+ {"version":3,"file":"PlLoaderLogo.vue_vue_type_style_index_0_lang.module.js","names":[],"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 data-testid=\"pl-loader-logo\"\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\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"],"mappings":""}
@@ -1 +1 @@
1
- ._root_1hwch_2{min-block-size:var(--v292e9844);max-block-size:var(--v292e9844);min-inline-size:var(--v292e9844);max-inline-size:var(--v292e9844);fill-rule:evenodd;& path{&:not(:last-of-type){fill:var(--v0b1a86b2);animation-duration:1s;animation-delay:calc(1s / 6 * (sibling-index() - 1));animation-name:_flash_1hwch_1;animation-iteration-count:infinite}&:last-of-type{fill:var(--v08750100)}}}@keyframes _flash_1hwch_1{0%{fill:var(--v08750100)}}
1
+ ._root_1hwch_2{min-block-size:var(--v2dd0d7e6);max-block-size:var(--v2dd0d7e6);min-inline-size:var(--v2dd0d7e6);max-inline-size:var(--v2dd0d7e6);fill-rule:evenodd;& path{&:not(:last-of-type){fill:var(--v7954e460);animation-duration:1s;animation-delay:calc(1s / 6 * (sibling-index() - 1));animation-name:_flash_1hwch_1;animation-iteration-count:infinite}&:last-of-type{fill:var(--e92997c4)}}}@keyframes _flash_1hwch_1{0%{fill:var(--e92997c4)}}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderLogo.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlLoaderLogo.vue"],"names":[],"mappings":"AAiEA,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;AA4EF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"PlLoaderLogo.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlLoaderLogo.vue"],"names":[],"mappings":"AAsEA,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;AA6EF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -9,12 +9,13 @@ var l = /* @__PURE__ */ r({
9
9
  },
10
10
  setup(r) {
11
11
  c((e) => ({
12
- v292e9844: d.value,
13
- v0b1a86b2: o(p),
14
- v08750100: o(f)
12
+ v2dd0d7e6: d.value,
13
+ v7954e460: o(p),
14
+ e92997c4: o(f)
15
15
  }));
16
16
  let l = r, u = s(), d = e(() => typeof l.size == "number" ? CSS.px(l.size).toString() : l.size), f = l.color ?? "currentColor", p = l.backgroundColor ?? "var(--color-div-bw)";
17
17
  return (e, r) => (a(), t("svg", {
18
+ "data-testid": "pl-loader-logo",
18
19
  viewBox: "0 0 64 64",
19
20
  xmlns: "http://www.w3.org/2000/svg",
20
21
  class: i(o(u).root)
@@ -1 +1 @@
1
- {"version":3,"file":"PlLoaderLogo.vue_vue_type_script_setup_true_lang.js","names":[],"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"],"mappings":";;;;;;;;;;;;;;;EAGA,IAAM,IAAQ,GAMR,IAAS,GAAc,EAEvB,IAAO,QACX,OAAO,EAAM,QAAS,WAAW,IAAI,GAAG,EAAM,KAAK,CAAC,UAAU,GAAG,EAAM,KACxE,EAEK,IAAQ,EAAM,SAAS,gBACvB,IAAkB,EAAM,mBAAmB;yBAI/C,EAUM,OAAA;GAVD,SAAQ;GAAY,OAAM;GAA8B,OAAK,EAAE,EAAA,EAAM,CAAC,KAAI"}
1
+ {"version":3,"file":"PlLoaderLogo.vue_vue_type_script_setup_true_lang.js","names":[],"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 data-testid=\"pl-loader-logo\"\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\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"],"mappings":";;;;;;;;;;;;;;;EAGA,IAAM,IAAQ,GAMR,IAAS,GAAc,EAEvB,IAAO,QACX,OAAO,EAAM,QAAS,WAAW,IAAI,GAAG,EAAM,KAAK,CAAC,UAAU,GAAG,EAAM,KACxE,EAEK,IAAQ,EAAM,SAAS,gBACvB,IAAkB,EAAM,mBAAmB;yBAI/C,EAeM,OAAA;GAdJ,eAAY;GACZ,SAAQ;GACR,OAAM;GACL,OAAK,EAAE,EAAA,EAAM,CAAC,KAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLogView.js","names":[],"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"],"mappings":""}
1
+ {"version":3,"file":"PlLogView.js","names":[],"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\n ref=\"root\"\n data-testid=\"pl-log-view\"\n class=\"pl-log-view\"\n :class=\"{ 'has-error': computedError }\"\n >\n <label v-if=\"label\" data-testid=\"pl-log-view-label\">\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" data-testid=\"pl-log-view-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 data-testid=\"pl-log-view-actions\" class=\"pl-log-view__copy\">\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24\n data-testid=\"pl-log-view-copy\"\n title=\"Copy content\"\n :name=\"iconName\"\n @click=\"onClickCopy\"\n />\n <template #tooltip>{{ copyActive ? \"copied\" : \"copy\" }}</template>\n </PlTooltip>\n <PlTooltip v-if=\"downloadFilename\" :close-delay=\"800\" position=\"top\">\n <PlIcon24\n data-testid=\"pl-log-view-download\"\n name=\"download\"\n @click=\"() => onClickDownload(downloadFilename!)\"\n />\n <template #tooltip>download</template>\n </PlTooltip>\n </div>\n <div v-if=\"computedError\" data-testid=\"pl-log-view-error\" class=\"pl-log-view__error\">\n {{ computedError }}\n </div>\n <div\n v-else\n ref=\"contentRef\"\n data-testid=\"pl-log-view-content\"\n class=\"pl-log-view__content\"\n @scroll=\"onContentScroll\"\n >\n {{ computedValue }}\n </div>\n </div>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"PlLogView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLogView/PlLogView.vue"],"names":[],"mappings":"AA8LA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAStF;;GAEG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAKzC,QAAA,MAAM,YAAY;IAUhB;;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;;cA4Qb,CAAC,KAAK,IAAgB,KAAK,GAAG;EAYxC,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlLogView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlLogView/PlLogView.vue"],"names":[],"mappings":"AAoNA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAStF;;GAEG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAKzC,QAAA,MAAM,YAAY;IAUhB;;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;;cAuRb,CAAC,KAAK,IAAgB,KAAK,GAAG;EAYxC,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -11,8 +11,15 @@ import { useLogHandle as a } from "./useLogHandle.js";
11
11
  import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, openBlock as h, ref as g, renderSlot as _, toDisplayString as v, unref as y, useSlots as b, watch as x, withCtx as S } from "vue";
12
12
  import { okOptional as C, tapIf as w } from "@milaboratories/helpers";
13
13
  //#region src/components/PlLogView/PlLogView.vue?vue&type=script&setup=true&lang.ts
14
- var T = { key: 0 }, E = { class: "pl-log-view__copy" }, D = {
14
+ var T = {
15
+ key: 0,
16
+ "data-testid": "pl-log-view-label"
17
+ }, E = {
18
+ "data-testid": "pl-log-view-actions",
19
+ class: "pl-log-view__copy"
20
+ }, D = {
15
21
  key: 1,
22
+ "data-testid": "pl-log-view-error",
16
23
  class: "pl-log-view__error"
17
24
  }, O = /* @__PURE__ */ p({
18
25
  name: "PlLogView",
@@ -63,10 +70,12 @@ var T = { key: 0 }, E = { class: "pl-log-view__copy" }, D = {
63
70
  return (t, i) => (h(), l("div", {
64
71
  ref_key: "root",
65
72
  ref: P,
73
+ "data-testid": "pl-log-view",
66
74
  class: m(["pl-log-view", { "has-error": F.value }])
67
75
  }, [
68
76
  p.label ? (h(), l("label", T, [u("span", null, v(p.label), 1), y(k).tooltip ? (h(), s(y(e), {
69
77
  key: 0,
78
+ "data-testid": "pl-log-view-tooltip",
70
79
  class: "info",
71
80
  position: "top"
72
81
  }, {
@@ -80,6 +89,7 @@ var T = { key: 0 }, E = { class: "pl-log-view__copy" }, D = {
80
89
  }, {
81
90
  tooltip: S(() => [d(v(R.value ? "copied" : "copy"), 1)]),
82
91
  default: S(() => [f(y(n), {
92
+ "data-testid": "pl-log-view-copy",
83
93
  title: "Copy content",
84
94
  name: z.value,
85
95
  onClick: B
@@ -92,6 +102,7 @@ var T = { key: 0 }, E = { class: "pl-log-view__copy" }, D = {
92
102
  }, {
93
103
  tooltip: S(() => [...i[1] ||= [d("download", -1)]]),
94
104
  default: S(() => [f(y(n), {
105
+ "data-testid": "pl-log-view-download",
95
106
  name: "download",
96
107
  onClick: i[0] ||= () => V(p.downloadFilename)
97
108
  })]),
@@ -101,6 +112,7 @@ var T = { key: 0 }, E = { class: "pl-log-view__copy" }, D = {
101
112
  key: 2,
102
113
  ref_key: "contentRef",
103
114
  ref: N,
115
+ "data-testid": "pl-log-view-content",
104
116
  class: "pl-log-view__content",
105
117
  onScroll: U
106
118
  }, v(I.value), 545))
@@ -1 +1 @@
1
- {"version":3,"file":"PlLogView.vue_vue_type_script_setup_true_lang.js","names":[],"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"],"mappings":";;;;;;;;;;;;;;;;;CAKE,MAAM;;;;;;;;;;;;;;;EAiBR,IAAM,KAAsB,MAA4B;AACtD,OAAI,KAAK,EAAE,OAAO,GAChB,QAAO,EAAE,OAAO,KAAK,KAAK;KAIxB,IAAQ,GAAU,EAElB,IAAQ,GA+CR,IAAW,EAAa,EAAM,EAE9B,IAAa,EAAa,GAAK,EAE/B,IAAa,GAAkB,EAE/B,IAAO,GAAuB,EAE9B,IAAgB,QACd,EAAS,OAAO,SAAS,EAAM,SAAS,EAAe,EAAM,OAAO,CAC3E,EAEK,IAAgB,QACd,EAAS,OAAO,SAAS,EAAM,SAAS,EAAW,EAAM,OAAO,CACvE,EAEK,IAAsB,QAAe;AACzC,OAAI,EAAM,YACR,QAAO,EAAM;AAEf,OAAI,EAAc,SAAS,OAAO,EAAc,SAAU,SACxD,QAAO,EAAc;IAGvB,EAEI,IAAa,EAAI,GAAM;AAE7B,IAAc,EAAK;EAEnB,IAAM,IAAW,QAAgB,EAAW,QAAQ,qBAAqB,YAAa,EAEhF,UAAoB;AAExB,GADA,EAAW,QAAQ,IACnB,iBAAiB;AACf,MAAW,QAAQ;MAClB,KAAK;GAER,IAAM,IAAS,EAAoB;AAEnC,GAAI,MAAW,KAAA,KACb,UAAU,UAAU,UAAU,EAAO;KAInC,KAAmB,MAAqB;GAC5C,IAAM,IAAa,EAAoB;AAEvC,GAAI,MAAe,KAAA,KACjB,EAAgB,CAAC,GAAY,aAAa,EAAE,EAAS;KAInD,UAA6B;AAC7B,KAAM,qBAIV,EAAM,EAAW,QAAQ,MAAO;AAC9B,IAAI,EAAW,SACb,EAAG,SAAS,EAAG,YAAY,EAAG,aAAa;KAE7C;;AAGJ,IACE,SACM;AACJ,+BAA4B;AAC1B,OAAsB;KACtB;KAEJ,EAAE,WAAW,IAAM,CACpB;EAED,IAAM,KAAmB,MAAc;GACrC,IAAM,IAAK,EAAG;AACd,KAAW,QAAQ,EAAG,YAAY,MAA4B,EAAG,eAAe,EAAG;;yBAKnF,EAwBM,OAAA;YAxBG;GAAJ,KAAI;GAAO,OAAK,EAAA,CAAC,eAAa,EAAA,aAAwB,EAAA,OAAa,CAAA,CAAA;;GACzD,EAAA,SAAA,GAAA,EAAb,EAOQ,SAAA,GAAA,CANN,EAAwB,QAAA,MAAA,EAAf,EAAA,MAAK,EAAA,EAAA,EACG,EAAA,EAAK,CAAC,WAAA,GAAA,EAAvB,EAIY,EAAA,EAAA,EAAA;;IAJoB,OAAM;IAAO,UAAS;;IACzC,SAAO,QACO,CAAvB,EAAuB,EAAA,QAAA,UAAA,CAAA,CAAA;;;GAI7B,EAA8C,GAAA,EAA/B,OAAM,wBAAsB,CAAA;GAC3C,EASM,OATN,GASM,CARJ,EAGY,EAAA,EAAA,EAAA;IAHA,eAAa;IAAK,UAAS;;IAE1B,SAAO,QAAqC,CAAA,EAAA,EAAjC,EAAA,QAAU,WAAA,OAAA,EAAA,EAAA,CAAA,CAAA;qBAD2C,CAA3E,EAA2E,EAAA,EAAA,EAAA;KAA7D,OAAM;KAAgB,MAAM,EAAA;KAAW,SAAO;;;OAG7C,EAAA,oBAAA,GAAA,EAAjB,EAGY,EAAA,EAAA,EAAA;;IAHwB,eAAa;IAAK,UAAS;;IAElD,SAAO,QAAS,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAR,YAAQ,GAAA,CAAA,CAAA,CAAA;qBADmD,CAA9E,EAA8E,EAAA,EAAA,EAAA;KAApE,MAAK;KAAY,SAAK,AAAA,EAAA,aAAQ,EAAgB,EAAA,iBAAgB;;;;GAIjE,EAAA,SAAA,GAAA,EAAX,EAA8E,OAA9E,GAA8E,EAAtB,EAAA,MAAa,EAAA,EAAA,KAAA,GAAA,EACrE,EAEM,OAAA;;aAFU;IAAJ,KAAI;IAAa,OAAM;IAAwB,UAAQ;QAC9D,EAAA,MAAa,EAAA,IAAA"}
1
+ {"version":3,"file":"PlLogView.vue_vue_type_script_setup_true_lang.js","names":[],"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\n ref=\"root\"\n data-testid=\"pl-log-view\"\n class=\"pl-log-view\"\n :class=\"{ 'has-error': computedError }\"\n >\n <label v-if=\"label\" data-testid=\"pl-log-view-label\">\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" data-testid=\"pl-log-view-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 data-testid=\"pl-log-view-actions\" class=\"pl-log-view__copy\">\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24\n data-testid=\"pl-log-view-copy\"\n title=\"Copy content\"\n :name=\"iconName\"\n @click=\"onClickCopy\"\n />\n <template #tooltip>{{ copyActive ? \"copied\" : \"copy\" }}</template>\n </PlTooltip>\n <PlTooltip v-if=\"downloadFilename\" :close-delay=\"800\" position=\"top\">\n <PlIcon24\n data-testid=\"pl-log-view-download\"\n name=\"download\"\n @click=\"() => onClickDownload(downloadFilename!)\"\n />\n <template #tooltip>download</template>\n </PlTooltip>\n </div>\n <div v-if=\"computedError\" data-testid=\"pl-log-view-error\" class=\"pl-log-view__error\">\n {{ computedError }}\n </div>\n <div\n v-else\n ref=\"contentRef\"\n data-testid=\"pl-log-view-content\"\n class=\"pl-log-view__content\"\n @scroll=\"onContentScroll\"\n >\n {{ computedValue }}\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlNotificationAlert.js","names":[],"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"],"mappings":""}
1
+ {"version":3,"file":"PlNotificationAlert.js","names":[],"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 data-testid=\"pl-notification-alert\"\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\n data-testid=\"pl-notification-alert-content\"\n class=\"pl-notification-alert__content flex-grow-1\"\n >\n <slot />\n </div>\n <div v-if=\"closable\" class=\"pl-notification-alert__close\">\n <PlBtnGhost\n data-testid=\"pl-notification-alert-close\"\n icon=\"close\"\n @click.stop=\"closeAlert\"\n />\n </div>\n </div>\n\n <div\n v-if=\"!!$slots.actions\"\n data-testid=\"pl-notification-alert-actions\"\n class=\"pl-notification-alert__actions d-flex\"\n >\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"PlNotificationAlert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNotificationAlert/PlNotificationAlert.vue"],"names":[],"mappings":"AA+CA,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;AAY5D,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,CAAC;AAMF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AA+ExD,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,CAAE;AAC5C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;WAnHJ,MAAM;UADP,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS;6EAwHpD,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlNotificationAlert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNotificationAlert/PlNotificationAlert.vue"],"names":[],"mappings":"AA2DA,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;AAY5D,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,CAAC;AAMF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAoFxD,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,CAAE;AAC5C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;WAxHJ,MAAM;UADP,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS;6EA6HpD,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -3,11 +3,15 @@ import "../PlBtnGhost/index.js";
3
3
  import './pl-notification-alert.css';/* empty css */
4
4
  import { createCommentVNode as t, createElementBlock as n, createElementVNode as r, createVNode as i, defineComponent as a, mergeModels as o, normalizeClass as s, normalizeStyle as c, openBlock as l, renderSlot as u, unref as d, useModel as f, withModifiers as p } from "vue";
5
5
  //#region src/components/PlNotificationAlert/PlNotificationAlert.vue?vue&type=script&setup=true&lang.ts
6
- var m = { class: "pl-notification-alert__wrapper d-flex text-s" }, h = { class: "pl-notification-alert__content flex-grow-1" }, g = {
6
+ var m = { class: "pl-notification-alert__wrapper d-flex text-s" }, h = {
7
+ "data-testid": "pl-notification-alert-content",
8
+ class: "pl-notification-alert__content flex-grow-1"
9
+ }, g = {
7
10
  key: 0,
8
11
  class: "pl-notification-alert__close"
9
12
  }, _ = {
10
13
  key: 0,
14
+ "data-testid": "pl-notification-alert-actions",
11
15
  class: "pl-notification-alert__actions d-flex"
12
16
  }, v = /* @__PURE__ */ a({
13
17
  __name: "PlNotificationAlert",
@@ -31,8 +35,10 @@ var m = { class: "pl-notification-alert__wrapper d-flex text-s" }, h = { class:
31
35
  return (o, f) => v.value ? (l(), n("div", {
32
36
  key: 0,
33
37
  class: s([a.type, "pl-notification-alert d-flex flex-column gap-16"]),
34
- style: c({ width: `${a.width}` })
38
+ style: c({ width: `${a.width}` }),
39
+ "data-testid": "pl-notification-alert"
35
40
  }, [r("div", m, [r("div", h, [u(o.$slots, "default")]), a.closable ? (l(), n("div", g, [i(d(e), {
41
+ "data-testid": "pl-notification-alert-close",
36
42
  icon: "close",
37
43
  onClick: p(y, ["stop"])
38
44
  })])) : t("", !0)]), o.$slots.actions ? (l(), n("div", _, [u(o.$slots, "actions")])) : t("", !0)], 6)) : t("", !0);
@@ -1 +1 @@
1
- {"version":3,"file":"PlNotificationAlert.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAIA,IAAM,IAAQ,GASR,IAAQ,EAAW,GAAA,aAAkC;EAE3D,SAAS,IAAa;AACpB,GAAI,EAAM,aACR,EAAM,QAAQ;;mBAOR,EAAA,SAAA,GAAA,EADR,EAkBM,OAAA;;GAhBH,OAAK,EAAA,CAAE,EAAA,MAEF,kDAAiD,CAAA;GADtD,OAAK,EAAA,EAAA,OAAA,GAAc,EAAA,SAAK,CAAA;MAGzB,EAOM,OAPN,GAOM,CANJ,EAEM,OAFN,GAEM,CADJ,EAAQ,EAAA,QAAA,UAAA,CAAA,CAAA,EAEC,EAAA,YAAA,GAAA,EAAX,EAEM,OAFN,GAEM,CADJ,EAAoD,EAAA,EAAA,EAAA;GAAxC,MAAK;GAAS,SAAK,EAAO,GAAU,CAAA,OAAA,CAAA;uBAIvCA,EAAAA,OAAO,WAAA,GAAA,EAApB,EAEM,OAFN,GAEM,CADJ,EAAuB,EAAA,QAAA,UAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA,CAAA,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA"}
1
+ {"version":3,"file":"PlNotificationAlert.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"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 data-testid=\"pl-notification-alert\"\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\n data-testid=\"pl-notification-alert-content\"\n class=\"pl-notification-alert__content flex-grow-1\"\n >\n <slot />\n </div>\n <div v-if=\"closable\" class=\"pl-notification-alert__close\">\n <PlBtnGhost\n data-testid=\"pl-notification-alert-close\"\n icon=\"close\"\n @click.stop=\"closeAlert\"\n />\n </div>\n </div>\n\n <div\n v-if=\"!!$slots.actions\"\n data-testid=\"pl-notification-alert-actions\"\n class=\"pl-notification-alert__actions d-flex\"\n >\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIA,IAAM,IAAQ,GASR,IAAQ,EAAW,GAAA,aAAkC;EAE3D,SAAS,IAAa;AACpB,GAAI,EAAM,aACR,EAAM,QAAQ;;mBAOR,EAAA,SAAA,GAAA,EADR,EA8BM,OAAA;;GA5BH,OAAK,EAAA,CAAE,EAAA,MAGF,kDAAiD,CAAA;GAFtD,OAAK,EAAA,EAAA,OAAA,GAAc,EAAA,SAAK,CAAA;GACzB,eAAY;MAGZ,EAcM,OAdN,GAcM,CAbJ,EAKM,OALN,GAKM,CADJ,EAAQ,EAAA,QAAA,UAAA,CAAA,CAAA,EAEC,EAAA,YAAA,GAAA,EAAX,EAMM,OANN,GAMM,CALJ,EAIE,EAAA,EAAA,EAAA;GAHA,eAAY;GACZ,MAAK;GACJ,SAAK,EAAO,GAAU,CAAA,OAAA,CAAA;uBAMnBA,EAAAA,OAAO,WAAA,GAAA,EADjB,EAMM,OANN,GAMM,CADJ,EAAuB,EAAA,QAAA,UAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA,CAAA,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA"}