@milaboratories/uikit 2.15.37 → 2.15.39
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.
- package/.turbo/turbo-build.log +175 -175
- package/.turbo/turbo-formatter$colon$check.log +2 -2
- package/.turbo/turbo-linter$colon$check.log +2 -2
- package/.turbo/turbo-types$colon$check.log +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/__tests__/default-testid.test.d.ts +2 -0
- package/dist/__tests__/default-testid.test.d.ts.map +1 -0
- package/dist/base/BtnBase.js.map +1 -1
- package/dist/base/BtnBase.vue.d.ts.map +1 -1
- package/dist/base/BtnBase.vue2.js +6 -1
- package/dist/base/BtnBase.vue2.js.map +1 -1
- package/dist/components/DropdownListItem.js.map +1 -1
- package/dist/components/DropdownListItem.vue.d.ts.map +1 -1
- package/dist/components/DropdownListItem.vue2.js +13 -4
- package/dist/components/DropdownListItem.vue2.js.map +1 -1
- package/dist/components/InputRange.js.map +1 -1
- package/dist/components/InputRange.vue.d.ts.map +1 -1
- package/dist/components/InputRange.vue2.js +10 -2
- package/dist/components/InputRange.vue2.js.map +1 -1
- package/dist/components/PlAccordion/PlAccordionSection.js.map +1 -1
- package/dist/components/PlAccordion/PlAccordionSection.style.js.map +1 -1
- package/dist/components/PlAccordion/PlAccordionSection.vue.d.ts.map +1 -1
- package/dist/components/PlAccordion/PlAccordionSection.vue2.js +7 -1
- package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
- package/dist/components/PlAlert/PlAlert.js.map +1 -1
- package/dist/components/PlAlert/PlAlert.vue.d.ts.map +1 -1
- package/dist/components/PlAlert/PlAlert.vue2.js +10 -1
- package/dist/components/PlAlert/PlAlert.vue2.js.map +1 -1
- package/dist/components/PlAutocomplete/PlAutocomplete.js.map +1 -1
- package/dist/components/PlAutocomplete/PlAutocomplete.vue.d.ts.map +1 -1
- package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js +29 -11
- package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js.map +1 -1
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.js.map +1 -1
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts.map +1 -1
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js +30 -9
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js.map +1 -1
- package/dist/components/PlBtnAccent/PlBtnAccent.js.map +1 -1
- package/dist/components/PlBtnAccent/PlBtnAccent.vue.d.ts.map +1 -1
- package/dist/components/PlBtnAccent/PlBtnAccent.vue2.js +4 -1
- package/dist/components/PlBtnAccent/PlBtnAccent.vue2.js.map +1 -1
- package/dist/components/PlBtnDanger/PlBtnDanger.js.map +1 -1
- package/dist/components/PlBtnDanger/PlBtnDanger.vue.d.ts.map +1 -1
- package/dist/components/PlBtnDanger/PlBtnDanger.vue2.js +4 -1
- package/dist/components/PlBtnDanger/PlBtnDanger.vue2.js.map +1 -1
- package/dist/components/PlBtnGhost/PlBtnGhost.js.map +1 -1
- package/dist/components/PlBtnGhost/PlBtnGhost.vue.d.ts.map +1 -1
- package/dist/components/PlBtnGhost/PlBtnGhost.vue2.js +7 -1
- package/dist/components/PlBtnGhost/PlBtnGhost.vue2.js.map +1 -1
- package/dist/components/PlBtnGroup/PlBtnGroup.js.map +1 -1
- package/dist/components/PlBtnGroup/PlBtnGroup.vue.d.ts.map +1 -1
- package/dist/components/PlBtnGroup/PlBtnGroup.vue2.js +19 -6
- package/dist/components/PlBtnGroup/PlBtnGroup.vue2.js.map +1 -1
- package/dist/components/PlBtnLink/PlBtnLink.js.map +1 -1
- package/dist/components/PlBtnLink/PlBtnLink.vue.d.ts.map +1 -1
- package/dist/components/PlBtnLink/PlBtnLink.vue2.js +2 -0
- package/dist/components/PlBtnLink/PlBtnLink.vue2.js.map +1 -1
- package/dist/components/PlBtnPrimary/PlBtnPrimary.js.map +1 -1
- package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.d.ts.map +1 -1
- package/dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js +4 -1
- package/dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js.map +1 -1
- package/dist/components/PlBtnSecondary/PlBtnSecondary.js.map +1 -1
- package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.d.ts.map +1 -1
- package/dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js +1 -1
- package/dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js.map +1 -1
- package/dist/components/PlBtnSplit/PlBtnSplit.js.map +1 -1
- package/dist/components/PlBtnSplit/PlBtnSplit.vue.d.ts.map +1 -1
- package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js +6 -0
- package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.js.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.style.js.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.vue.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +7 -2
- package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
- package/dist/components/PlChartHistogram/createGridlines.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/createGridlines.js +1 -1
- package/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
- package/dist/components/PlChartHistogram/createLabels.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/createLabels.js +1 -1
- package/dist/components/PlChartHistogram/createLabels.js.map +1 -1
- package/dist/components/PlChartHistogram/createSvgContainer.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/createSvgContainer.js +1 -1
- package/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
- package/dist/components/PlChartHistogram/drawBins.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/drawBins.js +2 -2
- package/dist/components/PlChartHistogram/drawBins.js.map +1 -1
- package/dist/components/PlChartHistogram/drawThreshold.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/drawThreshold.js +1 -1
- package/dist/components/PlChartHistogram/drawThreshold.js.map +1 -1
- package/dist/components/PlChartHistogram/histogram.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/histogram.js +1 -1
- package/dist/components/PlChartHistogram/histogram.js.map +1 -1
- package/dist/components/PlChartStackedBar/Legends.js.map +1 -1
- package/dist/components/PlChartStackedBar/Legends.style.js.map +1 -1
- package/dist/components/PlChartStackedBar/Legends.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/Legends.vue2.js +7 -1
- package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.style.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +5 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.style.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js +4 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRow.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRow.style.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRow.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRow.vue2.js +13 -3
- package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRowCompact.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRowCompact.style.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRowCompact.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js +8 -2
- package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
- package/dist/components/PlCheckbox/PlCheckbox.js.map +1 -1
- package/dist/components/PlCheckbox/PlCheckbox.vue.d.ts.map +1 -1
- package/dist/components/PlCheckbox/PlCheckbox.vue2.js +9 -2
- package/dist/components/PlCheckbox/PlCheckbox.vue2.js.map +1 -1
- package/dist/components/PlCheckbox/PlCheckboxBase.js.map +1 -1
- package/dist/components/PlCheckbox/PlCheckboxBase.vue.d.ts.map +1 -1
- package/dist/components/PlCheckbox/PlCheckboxBase.vue2.js +1 -0
- package/dist/components/PlCheckbox/PlCheckboxBase.vue2.js.map +1 -1
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.js.map +1 -1
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.d.ts.map +1 -1
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js +19 -5
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js.map +1 -1
- package/dist/components/PlChip/PlChip.js.map +1 -1
- package/dist/components/PlChip/PlChip.vue.d.ts.map +1 -1
- package/dist/components/PlChip/PlChip.vue2.js +7 -1
- package/dist/components/PlChip/PlChip.vue2.js.map +1 -1
- package/dist/components/PlClipboard/PlClipboard.js.map +1 -1
- package/dist/components/PlClipboard/PlClipboard.style.js.map +1 -1
- package/dist/components/PlClipboard/PlClipboard.vue.d.ts.map +1 -1
- package/dist/components/PlClipboard/PlClipboard.vue2.js +1 -0
- package/dist/components/PlClipboard/PlClipboard.vue2.js.map +1 -1
- package/dist/components/PlConfirmDialog.js.map +1 -1
- package/dist/components/PlConfirmDialog.vue.d.ts.map +1 -1
- package/dist/components/PlConfirmDialog.vue2.js +9 -2
- package/dist/components/PlConfirmDialog.vue2.js.map +1 -1
- package/dist/components/PlDialogModal/PlDialogModal.js.map +1 -1
- package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts.map +1 -1
- package/dist/components/PlDialogModal/PlDialogModal.vue2.js +12 -5
- package/dist/components/PlDialogModal/PlDialogModal.vue2.js.map +1 -1
- package/dist/components/PlDropdown/OptionList.js.map +1 -1
- package/dist/components/PlDropdown/OptionList.vue.d.ts.map +1 -1
- package/dist/components/PlDropdown/OptionList.vue2.js +11 -5
- package/dist/components/PlDropdown/OptionList.vue2.js.map +1 -1
- package/dist/components/PlDropdown/PlDropdown.js.map +1 -1
- package/dist/components/PlDropdown/PlDropdown.vue.d.ts.map +1 -1
- package/dist/components/PlDropdown/PlDropdown.vue2.js +26 -10
- package/dist/components/PlDropdown/PlDropdown.vue2.js.map +1 -1
- package/dist/components/PlDropdownLegacy/PlDropdownLegacy.js.map +1 -1
- package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js +32 -10
- package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js.map +1 -1
- package/dist/components/PlDropdownLine/PlDropdownLine.js.map +1 -1
- package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js +17 -3
- package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js.map +1 -1
- package/dist/components/PlDropdownLine/ResizableInput.js.map +1 -1
- package/dist/components/PlDropdownLine/ResizableInput.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownLine/ResizableInput.vue2.js +5 -2
- package/dist/components/PlDropdownLine/ResizableInput.vue2.js.map +1 -1
- package/dist/components/PlDropdownMulti/PlDropdownMulti.js.map +1 -1
- package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js +31 -10
- package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js.map +1 -1
- package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.js.map +1 -1
- package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js +1 -1
- package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js.map +1 -1
- package/dist/components/PlDropdownRef/PlDropdownRef.js.map +1 -1
- package/dist/components/PlDropdownRef/PlDropdownRef.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownRef/PlDropdownRef.vue2.js +1 -1
- package/dist/components/PlDropdownRef/PlDropdownRef.vue2.js.map +1 -1
- package/dist/components/PlEditableTitle/PlEditableTitle.js.map +1 -1
- package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts.map +1 -1
- package/dist/components/PlEditableTitle/PlEditableTitle.vue2.js +9 -3
- package/dist/components/PlEditableTitle/PlEditableTitle.vue2.js.map +1 -1
- package/dist/components/PlElementList/PlElementList.js.map +1 -1
- package/dist/components/PlElementList/PlElementList.style.js.map +1 -1
- package/dist/components/PlElementList/PlElementList.vue.d.ts.map +1 -1
- package/dist/components/PlElementList/PlElementList.vue2.js +6 -1
- package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
- package/dist/components/PlElementList/PlElementListItem.js.map +1 -1
- package/dist/components/PlElementList/PlElementListItem.style.js.map +1 -1
- package/dist/components/PlElementList/PlElementListItem.vue.d.ts.map +1 -1
- package/dist/components/PlElementList/PlElementListItem.vue2.js +34 -13
- package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
- package/dist/components/PlErrorAlert/PlErrorAlert.js.map +1 -1
- package/dist/components/PlErrorAlert/PlErrorAlert.style.js.map +1 -1
- package/dist/components/PlErrorAlert/PlErrorAlert.vue.d.ts.map +1 -1
- package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js +15 -3
- package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js.map +1 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.js.map +1 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.d.ts.map +1 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js +1 -0
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js.map +1 -1
- package/dist/components/PlFileDialog/Local.js.map +1 -1
- package/dist/components/PlFileDialog/Local.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/Local.vue2.js +23 -20
- package/dist/components/PlFileDialog/Local.vue2.js.map +1 -1
- package/dist/components/PlFileDialog/PlFileDialog.js.map +1 -1
- package/dist/components/PlFileDialog/PlFileDialog.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/PlFileDialog.vue2.js +5 -1
- package/dist/components/PlFileDialog/PlFileDialog.vue2.js.map +1 -1
- package/dist/components/PlFileDialog/Remote.js.map +1 -1
- package/dist/components/PlFileDialog/Remote.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/Remote.vue2.js +108 -94
- package/dist/components/PlFileDialog/Remote.vue2.js.map +1 -1
- package/dist/components/PlFileDialog/Shortcuts.js.map +1 -1
- package/dist/components/PlFileDialog/Shortcuts.style.js.map +1 -1
- package/dist/components/PlFileDialog/Shortcuts.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/Shortcuts.vue2.js +2 -1
- package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
- package/dist/components/PlFileInput/PlFileInput.js.map +1 -1
- package/dist/components/PlFileInput/PlFileInput.vue.d.ts.map +1 -1
- package/dist/components/PlFileInput/PlFileInput.vue2.js +92 -71
- package/dist/components/PlFileInput/PlFileInput.vue2.js.map +1 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.js.map +1 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts.map +1 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js +4 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js.map +1 -1
- package/dist/components/PlLoaderLogo.js.map +1 -1
- package/dist/components/PlLoaderLogo.style.js.map +1 -1
- package/dist/components/PlLoaderLogo.vue.css +1 -1
- package/dist/components/PlLoaderLogo.vue.d.ts.map +1 -1
- package/dist/components/PlLoaderLogo.vue2.js +4 -3
- package/dist/components/PlLoaderLogo.vue2.js.map +1 -1
- package/dist/components/PlLogView/PlLogView.js.map +1 -1
- package/dist/components/PlLogView/PlLogView.vue.d.ts.map +1 -1
- package/dist/components/PlLogView/PlLogView.vue2.js +13 -1
- package/dist/components/PlLogView/PlLogView.vue2.js.map +1 -1
- package/dist/components/PlNotificationAlert/PlNotificationAlert.js.map +1 -1
- package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts.map +1 -1
- package/dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js +8 -2
- package/dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.js.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.vue2.js +12 -3
- package/dist/components/PlNumberField/PlNumberField.vue2.js.map +1 -1
- package/dist/components/PlProgressBar/PlProgressBar.js.map +1 -1
- package/dist/components/PlProgressBar/PlProgressBar.vue.d.ts.map +1 -1
- package/dist/components/PlProgressBar/PlProgressBar.vue2.js +9 -1
- package/dist/components/PlProgressBar/PlProgressBar.vue2.js.map +1 -1
- package/dist/components/PlProgressCell/PlProgressCell.js.map +1 -1
- package/dist/components/PlProgressCell/PlProgressCell.vue.d.ts.map +1 -1
- package/dist/components/PlProgressCell/PlProgressCell.vue2.js +19 -7
- package/dist/components/PlProgressCell/PlProgressCell.vue2.js.map +1 -1
- package/dist/components/PlRadio/PlRadio.js.map +1 -1
- package/dist/components/PlRadio/PlRadio.style.js.map +1 -1
- package/dist/components/PlRadio/PlRadio.vue.d.ts.map +1 -1
- package/dist/components/PlRadio/PlRadio.vue2.js +10 -3
- package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
- package/dist/components/PlRadio/PlRadioGroup.js.map +1 -1
- package/dist/components/PlRadio/PlRadioGroup.style.js.map +1 -1
- package/dist/components/PlRadio/PlRadioGroup.vue.d.ts.map +1 -1
- package/dist/components/PlRadio/PlRadioGroup.vue2.js +10 -3
- package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.js.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.style.js.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.vue2.js +11 -4
- package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.js.map +1 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.style.js.map +1 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.vue.d.ts.map +1 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js +7 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarGroup.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarGroup.style.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarGroup.vue.d.ts.map +1 -1
- package/dist/components/PlSidebar/PlSidebarGroup.vue2.js +5 -1
- package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarItem.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarItem.style.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts.map +1 -1
- package/dist/components/PlSidebar/PlSidebarItem.vue2.js +7 -1
- package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
- package/dist/components/PlSlideModal/PlPureSlideModal.js.map +1 -1
- package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts.map +1 -1
- package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js +4 -1
- package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js.map +1 -1
- package/dist/components/PlSlideModal/PlSlideModal.js.map +1 -1
- package/dist/components/PlSlideModal/PlSlideModal.style.js.map +1 -1
- package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts.map +1 -1
- package/dist/components/PlSlideModal/PlSlideModal.vue2.js +7 -2
- package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
- package/dist/components/PlSpacer/PlSpacer.vue.d.ts.map +1 -1
- package/dist/components/PlSplash/PlSplash.js.map +1 -1
- package/dist/components/PlSplash/PlSplash.vue.d.ts.map +1 -1
- package/dist/components/PlSplash/PlSplash.vue2.js +13 -5
- package/dist/components/PlSplash/PlSplash.vue2.js.map +1 -1
- package/dist/components/PlStatusTag/PlStatusTag.js.map +1 -1
- package/dist/components/PlStatusTag/PlStatusTag.vue.d.ts.map +1 -1
- package/dist/components/PlStatusTag/PlStatusTag.vue2.js +4 -1
- package/dist/components/PlStatusTag/PlStatusTag.vue2.js.map +1 -1
- package/dist/components/PlTabs/PlTabs.js.map +1 -1
- package/dist/components/PlTabs/PlTabs.vue.d.ts.map +1 -1
- package/dist/components/PlTabs/PlTabs.vue2.js +16 -11
- package/dist/components/PlTabs/PlTabs.vue2.js.map +1 -1
- package/dist/components/PlTextArea/PlTextArea.js.map +1 -1
- package/dist/components/PlTextArea/PlTextArea.vue.d.ts.map +1 -1
- package/dist/components/PlTextArea/PlTextArea.vue2.js +21 -8
- package/dist/components/PlTextArea/PlTextArea.vue2.js.map +1 -1
- package/dist/components/PlTextField/PlTextField.js.map +1 -1
- package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
- package/dist/components/PlTextField/PlTextField.vue2.js +23 -9
- package/dist/components/PlTextField/PlTextField.vue2.js.map +1 -1
- package/dist/components/PlToggleSwitch/PlToggleSwitch.js.map +1 -1
- package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.d.ts.map +1 -1
- package/dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js +10 -2
- package/dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js.map +1 -1
- package/dist/components/PlTooltip/PlTooltip.js.map +1 -1
- package/dist/components/PlTooltip/PlTooltip.style.js.map +1 -1
- package/dist/components/PlTooltip/PlTooltip.vue.css +1 -1
- package/dist/components/PlTooltip/PlTooltip.vue.d.ts.map +1 -1
- package/dist/components/PlTooltip/PlTooltip.vue2.js +7 -2
- package/dist/components/PlTooltip/PlTooltip.vue2.js.map +1 -1
- package/dist/components/Slider.js.map +1 -1
- package/dist/components/Slider.vue.d.ts.map +1 -1
- package/dist/components/Slider.vue2.js +13 -1
- package/dist/components/Slider.vue2.js.map +1 -1
- package/dist/components/SliderRange.js.map +1 -1
- package/dist/components/SliderRange.vue.d.ts.map +1 -1
- package/dist/components/SliderRange.vue2.js +14 -1
- package/dist/components/SliderRange.vue2.js.map +1 -1
- package/dist/components/SliderRangeTriple.js.map +1 -1
- package/dist/components/SliderRangeTriple.vue.d.ts.map +1 -1
- package/dist/components/SliderRangeTriple.vue2.js +13 -1
- package/dist/components/SliderRangeTriple.vue2.js.map +1 -1
- package/dist/components/TabItem.js.map +1 -1
- package/dist/components/TabItem.vue.d.ts.map +1 -1
- package/dist/components/TabItem.vue2.js +8 -2
- package/dist/components/TabItem.vue2.js.map +1 -1
- package/dist/components/contextMenu/Menu.js +1 -1
- package/dist/components/contextMenu/Menu.js.map +1 -1
- package/dist/components/contextMenu/Menu.style.css +1 -1
- package/dist/components/contextMenu/Menu.vue.d.ts.map +1 -1
- package/dist/components/contextMenu/Menu.vue2.js +12 -8
- package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.js.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.style.js.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.vue.d.ts.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.vue2.js +45 -25
- package/dist/layout/PlBlockPage/PlBlockPage.vue2.js.map +1 -1
- package/dist/layout/PlContainer/PlContainer.js.map +1 -1
- package/dist/layout/PlContainer/PlContainer.vue.d.ts.map +1 -1
- package/dist/layout/PlContainer/PlContainer.vue2.js +1 -0
- package/dist/layout/PlContainer/PlContainer.vue2.js.map +1 -1
- package/dist/layout/PlGrid/PlGrid.js.map +1 -1
- package/dist/layout/PlGrid/PlGrid.vue.d.ts.map +1 -1
- package/dist/layout/PlGrid/PlGrid.vue2.js +1 -0
- package/dist/layout/PlGrid/PlGrid.vue2.js.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.js.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.style.js.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js +25 -6
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js.map +1 -1
- package/dist/layout/PlRow/PlRow.js.map +1 -1
- package/dist/layout/PlRow/PlRow.vue.d.ts.map +1 -1
- package/dist/layout/PlRow/PlRow.vue2.js +7 -4
- package/dist/layout/PlRow/PlRow.vue2.js.map +1 -1
- package/dist/layout/PlSpacer/PlSpacer.js.map +1 -1
- package/dist/layout/PlSpacer/PlSpacer.vue.d.ts.map +1 -1
- package/dist/layout/PlSpacer/PlSpacer.vue2.js +1 -0
- package/dist/layout/PlSpacer/PlSpacer.vue2.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/default-testid.test.ts +95 -0
- package/src/base/BtnBase.vue +3 -3
- package/src/components/DropdownListItem.vue +14 -4
- package/src/components/InputRange.vue +6 -2
- package/src/components/PlAccordion/PlAccordionSection.vue +13 -4
- package/src/components/PlAlert/PlAlert.vue +5 -3
- package/src/components/PlAutocomplete/PlAutocomplete.vue +47 -11
- package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +53 -11
- package/src/components/PlBtnAccent/PlBtnAccent.vue +1 -1
- package/src/components/PlBtnDanger/PlBtnDanger.vue +1 -1
- package/src/components/PlBtnGhost/PlBtnGhost.vue +4 -3
- package/src/components/PlBtnGroup/PlBtnGroup.vue +16 -6
- package/src/components/PlBtnLink/PlBtnLink.vue +2 -1
- package/src/components/PlBtnPrimary/PlBtnPrimary.vue +1 -1
- package/src/components/PlBtnSecondary/PlBtnSecondary.vue +1 -1
- package/src/components/PlBtnSplit/PlBtnSplit.vue +12 -2
- package/src/components/PlChartHistogram/PlChartHistogram.vue +9 -3
- package/src/components/PlChartHistogram/createGridlines.ts +2 -0
- package/src/components/PlChartHistogram/createLabels.ts +2 -0
- package/src/components/PlChartHistogram/createSvgContainer.ts +2 -0
- package/src/components/PlChartHistogram/drawBins.ts +2 -0
- package/src/components/PlChartHistogram/drawThreshold.ts +1 -0
- package/src/components/PlChartHistogram/histogram.ts +6 -1
- package/src/components/PlChartStackedBar/Legends.vue +18 -4
- package/src/components/PlChartStackedBar/PlChartStackedBar.vue +4 -2
- package/src/components/PlChartStackedBar/PlChartStackedBarCompact.vue +1 -1
- package/src/components/PlChartStackedBar/StackedRow.vue +12 -4
- package/src/components/PlChartStackedBar/StackedRowCompact.vue +10 -3
- package/src/components/PlCheckbox/PlCheckbox.vue +15 -4
- package/src/components/PlCheckbox/PlCheckboxBase.vue +1 -0
- package/src/components/PlCheckboxGroup/PlCheckboxGroup.vue +15 -4
- package/src/components/PlChip/PlChip.vue +4 -3
- package/src/components/PlClipboard/PlClipboard.vue +7 -1
- package/src/components/PlConfirmDialog.vue +8 -3
- package/src/components/PlDialogModal/PlDialogModal.vue +15 -2
- package/src/components/PlDropdown/OptionList.vue +13 -3
- package/src/components/PlDropdown/PlDropdown.vue +35 -11
- package/src/components/PlDropdownLegacy/PlDropdownLegacy.vue +51 -12
- package/src/components/PlDropdownLine/PlDropdownLine.vue +29 -5
- package/src/components/PlDropdownLine/ResizableInput.vue +2 -1
- package/src/components/PlDropdownMulti/PlDropdownMulti.vue +47 -11
- package/src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue +1 -0
- package/src/components/PlDropdownRef/PlDropdownRef.vue +1 -0
- package/src/components/PlEditableTitle/PlEditableTitle.vue +11 -3
- package/src/components/PlElementList/PlElementList.vue +8 -3
- package/src/components/PlElementList/PlElementListItem.vue +16 -5
- package/src/components/PlErrorAlert/PlErrorAlert.vue +8 -6
- package/src/components/PlErrorBoundary/PlErrorBoundary.vue +7 -1
- package/src/components/PlFileDialog/Local.vue +12 -4
- package/src/components/PlFileDialog/PlFileDialog.vue +13 -3
- package/src/components/PlFileDialog/Remote.vue +39 -11
- package/src/components/PlFileDialog/Shortcuts.vue +7 -1
- package/src/components/PlFileInput/PlFileInput.vue +44 -19
- package/src/components/PlLoaderCircular/PlLoaderCircular.vue +1 -1
- package/src/components/PlLoaderLogo.vue +6 -1
- package/src/components/PlLogView/PlLogView.vue +30 -8
- package/src/components/PlNotificationAlert/PlNotificationAlert.vue +15 -3
- package/src/components/PlNumberField/PlNumberField.vue +14 -3
- package/src/components/PlProgressBar/PlProgressBar.vue +12 -4
- package/src/components/PlProgressCell/PlProgressCell.vue +13 -4
- package/src/components/PlRadio/PlRadio.vue +10 -3
- package/src/components/PlRadio/PlRadioGroup.vue +3 -2
- package/src/components/PlSearchField/PlSearchField.vue +5 -3
- package/src/components/PlSectionSeparator/PlSectionSeparator.vue +6 -2
- package/src/components/PlSidebar/PlSidebarGroup.vue +2 -2
- package/src/components/PlSidebar/PlSidebarItem.vue +12 -4
- package/src/components/PlSlideModal/PlPureSlideModal.vue +7 -1
- package/src/components/PlSlideModal/PlSlideModal.vue +4 -3
- package/src/components/PlSpacer/PlSpacer.vue +1 -1
- package/src/components/PlSplash/PlSplash.vue +6 -3
- package/src/components/PlStatusTag/PlStatusTag.vue +1 -0
- package/src/components/PlTabs/PlTabs.vue +6 -2
- package/src/components/PlTextArea/PlTextArea.vue +21 -8
- package/src/components/PlTextField/PlTextField.vue +23 -8
- package/src/components/PlToggleSwitch/PlToggleSwitch.vue +4 -3
- package/src/components/PlTooltip/PlTooltip.vue +3 -0
- package/src/components/Slider.vue +27 -7
- package/src/components/SliderRange.vue +28 -7
- package/src/components/SliderRangeTriple.vue +19 -5
- package/src/components/TabItem.vue +2 -2
- package/src/components/contextMenu/Menu.vue +8 -3
- package/src/layout/PlBlockPage/PlBlockPage.vue +40 -11
- package/src/layout/PlContainer/PlContainer.vue +1 -0
- package/src/layout/PlGrid/PlGrid.vue +1 -1
- package/src/layout/PlPlaceholder/PlPlaceholder.vue +20 -8
- package/src/layout/PlRow/PlRow.vue +5 -1
- 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(
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
}, "pl-file-
|
|
86
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
}, {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
h(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
]
|
|
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":"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"}
|
|
@@ -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;
|
|
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 = {
|
|
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":"
|
|
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
|
|
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
|
|
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(--
|
|
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":"
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
|
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
|
|
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":"
|
|
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 = {
|
|
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
|
|
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
|
|
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":"
|
|
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 = {
|
|
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
|
|
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"}
|