@milaboratories/uikit 2.10.15 → 2.10.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oxfmtrc.json +4 -0
- package/.oxlintrc.json +3 -0
- package/.prettierrc +1 -1
- package/.turbo/turbo-build.log +190 -190
- package/.turbo/turbo-formatter$colon$check.log +12 -0
- package/.turbo/turbo-linter$colon$check.log +10 -0
- package/.turbo/{turbo-type-check.log → turbo-types$colon$check.log} +2 -2
- package/CHANGELOG.md +9 -0
- package/build.browser-lib.config.js +6 -6
- package/dist/base/BtnBase.vue.js.map +1 -1
- package/dist/colors/color.d.ts.map +1 -1
- package/dist/colors/color.js.map +1 -1
- package/dist/colors/gradient.d.ts.map +1 -1
- package/dist/colors/gradient.js.map +1 -1
- package/dist/colors/palette.js.map +1 -1
- package/dist/components/ContextProvider.vue.js.map +1 -1
- package/dist/components/DataTable/BaseCellComponent.vue.js.map +1 -1
- package/dist/components/DataTable/ColumnCaret.vue.js.map +1 -1
- package/dist/components/DataTable/ColumnsCommandMenu.vue.d.ts.map +1 -1
- package/dist/components/DataTable/ColumnsCommandMenu.vue.js.map +1 -1
- package/dist/components/DataTable/RowsCommandMenu.vue.d.ts.map +1 -1
- package/dist/components/DataTable/RowsCommandMenu.vue.js.map +1 -1
- package/dist/components/DataTable/TScroll.vue.d.ts.map +1 -1
- package/dist/components/DataTable/TScroll.vue.js +6 -1
- package/dist/components/DataTable/TScroll.vue.js.map +1 -1
- package/dist/components/DataTable/TableComponent.vue.d.ts.map +1 -1
- package/dist/components/DataTable/TableComponent.vue.js.map +1 -1
- package/dist/components/DataTable/TdCell.vue.d.ts.map +1 -1
- package/dist/components/DataTable/TdCell.vue.js +3 -1
- package/dist/components/DataTable/TdCell.vue.js.map +1 -1
- package/dist/components/DataTable/ThCell.vue.d.ts.map +1 -1
- package/dist/components/DataTable/ThCell.vue.js.map +1 -1
- package/dist/components/DataTable/TrBody.vue.d.ts.map +1 -1
- package/dist/components/DataTable/TrBody.vue.js.map +1 -1
- package/dist/components/DataTable/adapters/AsyncData.d.ts +1 -1
- package/dist/components/DataTable/adapters/AsyncData.js.map +1 -1
- package/dist/components/DataTable/adapters/RawData.d.ts +1 -1
- package/dist/components/DataTable/adapters/RawData.js.map +1 -1
- package/dist/components/DataTable/assets/TableIcon.vue.d.ts.map +1 -1
- package/dist/components/DataTable/assets/TableIcon.vue.js.map +1 -1
- package/dist/components/DataTable/composition/useColumn.d.ts.map +1 -1
- package/dist/components/DataTable/composition/useColumn.js.map +1 -1
- package/dist/components/DataTable/composition/useMouseUp.js.map +1 -1
- package/dist/components/DataTable/composition/useResize.js.map +1 -1
- package/dist/components/DataTable/composition/useTableColumns.js.map +1 -1
- package/dist/components/DataTable/composition/useTableRows.js.map +1 -1
- package/dist/components/DataTable/domain.d.ts +1 -1
- package/dist/components/DataTable/domain.d.ts.map +1 -1
- package/dist/components/DataTable/domain.js.map +1 -1
- package/dist/components/DataTable/index.d.ts +1 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DataTable/index.js +5 -1
- package/dist/components/DataTable/index.js.map +1 -1
- package/dist/components/DataTable/keys.js.map +1 -1
- package/dist/components/DataTable/state.d.ts.map +1 -1
- package/dist/components/DataTable/state.js +10 -4
- package/dist/components/DataTable/state.js.map +1 -1
- package/dist/components/DataTable/types.d.ts +3 -3
- package/dist/components/DropdownListItem.vue.d.ts +1 -1
- package/dist/components/DropdownListItem.vue.d.ts.map +1 -1
- package/dist/components/DropdownListItem.vue.js.map +1 -1
- package/dist/components/GridTable/domain.d.ts +1 -1
- package/dist/components/GridTable/domain.d.ts.map +1 -1
- package/dist/components/GridTable/types.d.ts +4 -4
- package/dist/components/GridTable/types.d.ts.map +1 -1
- package/dist/components/GridTable/useColumn.d.ts.map +1 -1
- package/dist/components/HScroll.vue.js.map +1 -1
- package/dist/components/InputRange.vue.d.ts.map +1 -1
- package/dist/components/InputRange.vue.js +3 -1
- package/dist/components/InputRange.vue.js.map +1 -1
- package/dist/components/LongText.vue.d.ts.map +1 -1
- package/dist/components/LongText.vue.js +9 -7
- package/dist/components/LongText.vue.js.map +1 -1
- package/dist/components/PlAccordion/ExpandTransition.vue.d.ts.map +1 -1
- package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -1
- package/dist/components/PlAccordion/PlAccordion.vue.js.map +1 -1
- package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
- package/dist/components/PlAlert/PlAlert.vue.d.ts.map +1 -1
- package/dist/components/PlAlert/PlAlert.vue.js.map +1 -1
- package/dist/components/PlAutocomplete/PlAutocomplete.vue.d.ts.map +1 -1
- package/dist/components/PlAutocomplete/PlAutocomplete.vue.js +40 -19
- package/dist/components/PlAutocomplete/PlAutocomplete.vue.js.map +1 -1
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts +2 -2
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts.map +1 -1
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js +22 -12
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js.map +1 -1
- package/dist/components/PlAutocompleteMulti/index.d.ts +1 -1
- package/dist/components/PlAutocompleteMulti/index.d.ts.map +1 -1
- package/dist/components/PlBtnAccent/PlBtnAccent.vue.js.map +1 -1
- package/dist/components/PlBtnDanger/PlBtnDanger.vue.js.map +1 -1
- package/dist/components/PlBtnGhost/PlBtnGhost.vue.js.map +1 -1
- package/dist/components/PlBtnGroup/PlBtnGroup.vue.js.map +1 -1
- package/dist/components/PlBtnLink/PlBtnLink.vue.d.ts.map +1 -1
- package/dist/components/PlBtnLink/PlBtnLink.vue.js.map +1 -1
- package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js.map +1 -1
- package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js.map +1 -1
- package/dist/components/PlBtnSplit/PlBtnSplit.vue.d.ts.map +1 -1
- package/dist/components/PlBtnSplit/PlBtnSplit.vue.js +6 -4
- package/dist/components/PlBtnSplit/PlBtnSplit.vue.js.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.vue.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +8 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
- package/dist/components/PlChartHistogram/PlChartHistogram.vue3.js +4 -4
- package/dist/components/PlChartHistogram/createGridlines.d.ts.map +1 -1
- package/dist/components/PlChartHistogram/createGridlines.js +5 -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.map +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.map +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 +6 -2
- package/dist/components/PlChartHistogram/histogram.js.map +1 -1
- package/dist/components/PlChartHistogram/normalizeBins.js.map +1 -1
- package/dist/components/PlChartHistogram/types.d.ts +2 -2
- package/dist/components/PlChartHistogram/types.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +6 -4
- package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRow.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRowCompact.vue.d.ts.map +1 -1
- package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
- package/dist/components/PlCheckbox/PlCheckbox.vue.js.map +1 -1
- package/dist/components/PlCheckbox/PlCheckboxBase.vue.d.ts.map +1 -1
- package/dist/components/PlCheckbox/PlCheckboxBase.vue.js.map +1 -1
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.d.ts.map +1 -1
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js +8 -2
- package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js.map +1 -1
- package/dist/components/PlChip/PlChip.vue.d.ts.map +1 -1
- package/dist/components/PlChip/PlChip.vue.js.map +1 -1
- package/dist/components/PlClipboard/PlClipboard.vue2.js.map +1 -1
- package/dist/components/PlConfirmDialog.vue.d.ts.map +1 -1
- package/dist/components/PlConfirmDialog.vue.js.map +1 -1
- package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts.map +1 -1
- package/dist/components/PlDialogModal/PlDialogModal.vue.js +4 -1
- package/dist/components/PlDialogModal/PlDialogModal.vue.js.map +1 -1
- package/dist/components/PlDropdown/OptionList.vue.d.ts +1 -1
- package/dist/components/PlDropdown/OptionList.vue.d.ts.map +1 -1
- package/dist/components/PlDropdown/OptionList.vue.js.map +1 -1
- package/dist/components/PlDropdown/PlDropdown.vue.d.ts.map +1 -1
- package/dist/components/PlDropdown/PlDropdown.vue.js.map +1 -1
- package/dist/components/PlDropdown/types.d.ts.map +1 -1
- package/dist/components/PlDropdown/useGroupBy.d.ts.map +1 -1
- package/dist/components/PlDropdown/useGroupBy.js.map +1 -1
- package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js.map +1 -1
- package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts +1 -1
- package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownLine/PlDropdownLine.vue.js +5 -3
- package/dist/components/PlDropdownLine/PlDropdownLine.vue.js.map +1 -1
- package/dist/components/PlDropdownLine/ResizableInput.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownLine/ResizableInput.vue.js.map +1 -1
- package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.d.ts.map +1 -1
- package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js.map +1 -1
- package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.js.map +1 -1
- package/dist/components/PlDropdownRef/PlDropdownRef.vue.js.map +1 -1
- package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts.map +1 -1
- package/dist/components/PlEditableTitle/PlEditableTitle.vue.js.map +1 -1
- package/dist/components/PlElementList/PlElementList.vue.d.ts.map +1 -1
- package/dist/components/PlElementList/PlElementList.vue2.js +9 -2
- package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
- package/dist/components/PlElementList/PlElementList.vue3.js +4 -4
- package/dist/components/PlElementList/PlElementListItem.vue.d.ts.map +1 -1
- package/dist/components/PlElementList/PlElementListItem.vue2.js +25 -13
- package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
- package/dist/components/PlElementList/PlElementListItem.vue3.js +20 -20
- package/dist/components/PlElementList/utils.d.ts.map +1 -1
- package/dist/components/PlElementList/utils.js +3 -1
- package/dist/components/PlElementList/utils.js.map +1 -1
- package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js.map +1 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.d.ts.map +1 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js +4 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js.map +1 -1
- package/dist/components/PlFileDialog/Local.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/Local.vue.js +6 -2
- package/dist/components/PlFileDialog/Local.vue.js.map +1 -1
- package/dist/components/PlFileDialog/PlFileDialog.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/PlFileDialog.vue.js +3 -1
- package/dist/components/PlFileDialog/PlFileDialog.vue.js.map +1 -1
- package/dist/components/PlFileDialog/Remote.vue.d.ts.map +1 -1
- package/dist/components/PlFileDialog/Remote.vue.js +6 -2
- package/dist/components/PlFileDialog/Remote.vue.js.map +1 -1
- package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
- package/dist/components/PlFileDialog/Shortcuts.vue3.js +4 -4
- package/dist/components/PlFileDialog/pl-file-dialog.module.scss.js +21 -21
- package/dist/components/PlFileDialog/remote.js.map +1 -1
- package/dist/components/PlFileDialog/utils.js.map +1 -1
- package/dist/components/PlFileInput/PlFileInput.vue.d.ts.map +1 -1
- package/dist/components/PlFileInput/PlFileInput.vue.js.map +1 -1
- package/dist/components/PlIcon16/PlIcon16.vue2.js.map +1 -1
- package/dist/components/PlIcon24/PlIcon24.vue2.js.map +1 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts +1 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.d.ts.map +1 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js +5 -1
- package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js.map +1 -1
- package/dist/components/PlLoaderLogo.vue.d.ts.map +1 -1
- package/dist/components/PlLoaderLogo.vue2.js +8 -8
- package/dist/components/PlLoaderLogo.vue2.js.map +1 -1
- package/dist/components/PlLogView/PlLogView.vue.d.ts.map +1 -1
- package/dist/components/PlLogView/PlLogView.vue.js +11 -7
- package/dist/components/PlLogView/PlLogView.vue.js.map +1 -1
- package/dist/components/PlLogView/useLogHandle.d.ts.map +1 -1
- package/dist/components/PlLogView/useLogHandle.js +16 -3
- package/dist/components/PlLogView/useLogHandle.js.map +1 -1
- package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts +1 -1
- package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.d.ts.map +1 -1
- package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.vue.js +4 -6
- package/dist/components/PlNumberField/PlNumberField.vue.js.map +1 -1
- package/dist/components/PlNumberField/parseNumber.d.ts.map +1 -1
- package/dist/components/PlNumberField/parseNumber.js.map +1 -1
- package/dist/components/PlProgressBar/PlProgressBar.vue.js.map +1 -1
- package/dist/components/PlProgressCell/PlProgressCell.vue.d.ts.map +1 -1
- package/dist/components/PlProgressCell/PlProgressCell.vue.js +11 -2
- package/dist/components/PlProgressCell/PlProgressCell.vue.js.map +1 -1
- package/dist/components/PlProgressCell/types.d.ts +1 -1
- package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
- package/dist/components/PlRadio/PlRadio.vue3.js +3 -3
- package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
- package/dist/components/PlRadio/PlRadioGroup.vue3.js +6 -6
- package/dist/components/PlRadio/keys.js.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
- package/dist/components/PlSectionSeparator/PlSectionSeparator.vue3.js +1 -1
- package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarGroup.vue3.js +6 -6
- package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts +6 -6
- package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts.map +1 -1
- package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
- package/dist/components/PlSidebar/PlSidebarItem.vue3.js +8 -8
- package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts.map +1 -1
- package/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -1
- package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts.map +1 -1
- package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
- package/dist/components/PlSlideModal/props.d.ts +8 -8
- package/dist/components/PlSlideModal/props.d.ts.map +1 -1
- package/dist/components/PlSlideModal/props.js.map +1 -1
- package/dist/components/PlSplash/PlSplash.vue.d.ts +1 -1
- package/dist/components/PlSplash/PlSplash.vue.d.ts.map +1 -1
- package/dist/components/PlSplash/PlSplash.vue.js +4 -1
- package/dist/components/PlSplash/PlSplash.vue.js.map +1 -1
- package/dist/components/PlStatusTag/PlStatusTag.vue.d.ts.map +1 -1
- package/dist/components/PlStatusTag/PlStatusTag.vue.js.map +1 -1
- package/dist/components/PlStatusTag/types.d.ts +1 -1
- package/dist/components/PlSvg/PlSvg.vue.d.ts.map +1 -1
- package/dist/components/PlSvg/PlSvg.vue2.js +7 -2
- package/dist/components/PlSvg/PlSvg.vue2.js.map +1 -1
- package/dist/components/PlSvg/registry.d.ts.map +1 -1
- package/dist/components/PlSvg/registry.js.map +1 -1
- package/dist/components/PlTabs/PlTabs.vue.d.ts.map +1 -1
- package/dist/components/PlTabs/PlTabs.vue.js +4 -1
- package/dist/components/PlTabs/PlTabs.vue.js.map +1 -1
- package/dist/components/PlTabs/Tab.vue.js.map +1 -1
- package/dist/components/PlTextArea/PlTextArea.vue.js.map +1 -1
- package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
- package/dist/components/PlTextField/PlTextField.vue.js +3 -1
- package/dist/components/PlTextField/PlTextField.vue.js.map +1 -1
- package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.js.map +1 -1
- package/dist/components/PlTooltip/Beak.vue.d.ts.map +1 -1
- package/dist/components/PlTooltip/Beak.vue.js.map +1 -1
- package/dist/components/PlTooltip/PlTooltip.vue.d.ts.map +1 -1
- package/dist/components/PlTooltip/PlTooltip.vue.js.map +1 -1
- package/dist/components/PlTooltip/useTooltipPosition.d.ts +1 -1
- package/dist/components/PlTooltip/useTooltipPosition.js.map +1 -1
- package/dist/components/Scrollable.vue.d.ts.map +1 -1
- package/dist/components/Scrollable.vue.js +10 -1
- package/dist/components/Scrollable.vue.js.map +1 -1
- package/dist/components/Slider.vue.d.ts.map +1 -1
- package/dist/components/Slider.vue.js +3 -1
- package/dist/components/Slider.vue.js.map +1 -1
- package/dist/components/SliderRange.vue.d.ts.map +1 -1
- package/dist/components/SliderRange.vue.js +15 -3
- package/dist/components/SliderRange.vue.js.map +1 -1
- package/dist/components/SliderRangeTriple.vue.d.ts.map +1 -1
- package/dist/components/SliderRangeTriple.vue.js +7 -1
- package/dist/components/SliderRangeTriple.vue.js.map +1 -1
- package/dist/components/TabItem.vue.js.map +1 -1
- package/dist/components/ThemeSwitcher.vue.js.map +1 -1
- package/dist/components/TransitionSlidePanel.vue.js.map +1 -1
- package/dist/components/VScroll.vue.js.map +1 -1
- package/dist/components/contextMenu/Menu.vue.js +1 -1
- package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
- package/dist/components/contextMenu/index.js.map +1 -1
- package/dist/composition/computedCached.js.map +1 -1
- package/dist/composition/filters/metadata.d.ts.map +1 -1
- package/dist/composition/filters/metadata.js.map +1 -1
- package/dist/composition/filters/types.d.ts +1 -19
- package/dist/composition/filters/types.d.ts.map +1 -1
- package/dist/composition/useClickOutside.js.map +1 -1
- package/dist/composition/useComponentProp.d.ts.map +1 -1
- package/dist/composition/useComponentProp.js.map +1 -1
- package/dist/composition/useConfirm.js.map +1 -1
- package/dist/composition/useDraggable.d.ts.map +1 -1
- package/dist/composition/useDraggable.js.map +1 -1
- package/dist/composition/useEventListener.d.ts.map +1 -1
- package/dist/composition/useEventListener.js +11 -7
- package/dist/composition/useEventListener.js.map +1 -1
- package/dist/composition/useFilteredList.d.ts.map +1 -1
- package/dist/composition/useFilteredList.js.map +1 -1
- package/dist/composition/useFormState.js.map +1 -1
- package/dist/composition/useHover.d.ts.map +1 -1
- package/dist/composition/useHover.js.map +1 -1
- package/dist/composition/useInterval.js.map +1 -1
- package/dist/composition/useLocalStorage.js.map +1 -1
- package/dist/composition/useMouse.js.map +1 -1
- package/dist/composition/useMouseCapture.d.ts.map +1 -1
- package/dist/composition/useMouseCapture.js.map +1 -1
- package/dist/composition/usePollingQuery.d.ts.map +1 -1
- package/dist/composition/usePollingQuery.js +4 -1
- package/dist/composition/usePollingQuery.js.map +1 -1
- package/dist/composition/usePosition.d.ts.map +1 -1
- package/dist/composition/usePosition.js.map +1 -1
- package/dist/composition/useQuery.js.map +1 -1
- package/dist/composition/useResizeObserver.d.ts.map +1 -1
- package/dist/composition/useResizeObserver.js.map +1 -1
- package/dist/composition/useRipple.js.map +1 -1
- package/dist/composition/useScroll.d.ts.map +1 -1
- package/dist/composition/useScroll.js.map +1 -1
- package/dist/composition/useSliderBreakpoints.d.ts.map +1 -1
- package/dist/composition/useSliderBreakpoints.js.map +1 -1
- package/dist/composition/useSortable.js.map +1 -1
- package/dist/composition/useSortable2.d.ts.map +1 -1
- package/dist/composition/useSortable2.js +8 -5
- package/dist/composition/useSortable2.js.map +1 -1
- package/dist/composition/useTheme.d.ts +1 -1
- package/dist/composition/useTheme.d.ts.map +1 -1
- package/dist/composition/useTheme.js.map +1 -1
- package/dist/composition/useTransformedModel.d.ts.map +1 -1
- package/dist/composition/useTransformedModel.js.map +1 -1
- package/dist/composition/useWatchFetch.js.map +1 -1
- package/dist/composition/utils.js.map +1 -1
- package/dist/composition/watchCached.d.ts.map +1 -1
- package/dist/composition/watchCached.js.map +1 -1
- package/dist/demo-site-data/all-css-variables.d.ts.map +1 -1
- package/dist/demo-site-data/all-css-variables.js +52 -13
- package/dist/demo-site-data/all-css-variables.js.map +1 -1
- package/dist/generated/icons-16.js.map +1 -1
- package/dist/generated/icons-24.js.map +1 -1
- package/dist/global/resizeObserver.js.map +1 -1
- package/dist/helpers/dom.d.ts.map +1 -1
- package/dist/helpers/dom.js.map +1 -1
- package/dist/helpers/downloadContent.d.ts +1 -1
- package/dist/helpers/downloadContent.d.ts.map +1 -1
- package/dist/helpers/downloadContent.js +3 -1
- package/dist/helpers/downloadContent.js.map +1 -1
- package/dist/helpers/error.js +4 -1
- package/dist/helpers/error.js.map +1 -1
- package/dist/helpers/functions.d.ts.map +1 -1
- package/dist/helpers/functions.js.map +1 -1
- package/dist/helpers/objects.js.map +1 -1
- package/dist/helpers/utils.d.ts.map +1 -1
- package/dist/helpers/utils.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.vue.d.ts.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.vue2.js.map +1 -1
- package/dist/layout/PlBlockPage/PlBlockPage.vue3.js +4 -4
- package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.js.map +1 -1
- package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js.map +1 -1
- package/dist/layout/PlContainer/PlContainer.vue.d.ts.map +1 -1
- package/dist/layout/PlContainer/PlContainer.vue.js.map +1 -1
- package/dist/layout/PlGrid/PlGrid.vue.js.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue.d.ts.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js +8 -8
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js.map +1 -1
- package/dist/layout/PlPlaceholder/PlPlaceholder.vue3.js +15 -15
- package/dist/layout/PlPlaceholder/index.d.ts +1 -1
- package/dist/layout/PlPlaceholder/index.d.ts.map +1 -1
- package/dist/layout/PlPlaceholder/index.js.map +1 -1
- package/dist/layout/PlPlaceholder/paint-worklet.js +6 -6
- package/dist/layout/PlPlaceholder/paint-worklet.js.map +1 -1
- package/dist/layout/PlRow/PlRow.vue.js.map +1 -1
- package/dist/layout/PlSpacer/PlSpacer.vue.js.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/DoubleContour.vue.d.ts.map +1 -1
- package/dist/utils/DoubleContour.vue.js.map +1 -1
- package/dist/utils/DropdownOverlay/DropdownOverlay.vue.js.map +1 -1
- package/dist/utils/PlCloseModalBtn.vue.js.map +1 -1
- package/dist/utils/TextLabel.vue.js.map +1 -1
- package/dist/utils/useLabelNotch.d.ts.map +1 -1
- package/dist/utils/useLabelNotch.js.map +1 -1
- package/dist/utils/useValidation.js.map +1 -1
- package/package.json +23 -24
- package/scripts/parse-icons.js +20 -14
- package/src/__tests__/compositions/usePollingQuery.spec.ts +163 -165
- package/src/__tests__/compositions/useValidation.spec.ts +41 -28
- package/src/__tests__/setup.ts +1 -1
- package/src/__tests__/use-debounce-fn.test.ts +15 -11
- package/src/assets/animations.scss +5 -5
- package/src/assets/base-btn.scss +4 -3
- package/src/assets/base.scss +11 -8
- package/src/assets/common.scss +43 -43
- package/src/assets/dropdown-list-item.scss +53 -53
- package/src/assets/dropdown-tab-item.scss +4 -4
- package/src/assets/icons.scss +1 -1
- package/src/assets/input-range.scss +26 -27
- package/src/assets/layout.scss +1 -1
- package/src/assets/masks.scss +1 -1
- package/src/assets/mixins.scss +9 -17
- package/src/assets/scroll.scss +6 -6
- package/src/assets/slider.scss +6 -5
- package/src/assets/sortable.scss +1 -1
- package/src/assets/theme-switcher.scss +2 -2
- package/src/assets/typography.scss +16 -13
- package/src/assets/ui.scss +19 -19
- package/src/assets/utils.scss +19 -19
- package/src/assets/variables.scss +9 -10
- package/src/base/BtnBase.vue +6 -6
- package/src/colors/__tests__/colors.spec.ts +12 -10
- package/src/colors/color.ts +17 -12
- package/src/colors/gradient.ts +20 -17
- package/src/colors/index.ts +3 -3
- package/src/colors/palette.ts +194 -194
- package/src/components/ContextProvider.vue +1 -1
- package/src/components/DataTable/BaseCellComponent.vue +8 -8
- package/src/components/DataTable/ColumnCaret.vue +3 -3
- package/src/components/DataTable/ColumnsCommandMenu.vue +5 -3
- package/src/components/DataTable/RowsCommandMenu.vue +5 -3
- package/src/components/DataTable/TScroll.vue +11 -6
- package/src/components/DataTable/TableComponent.vue +41 -24
- package/src/components/DataTable/TdCell.vue +28 -15
- package/src/components/DataTable/ThCell.vue +14 -9
- package/src/components/DataTable/TrBody.vue +11 -4
- package/src/components/DataTable/adapters/AsyncData.ts +4 -4
- package/src/components/DataTable/adapters/RawData.ts +5 -5
- package/src/components/DataTable/assets/TableIcon.vue +6 -1
- package/src/components/DataTable/assets/data-table-style.scss +12 -10
- package/src/components/DataTable/composition/useColumn.ts +8 -5
- package/src/components/DataTable/composition/useMouseUp.ts +3 -3
- package/src/components/DataTable/composition/useResize.ts +16 -16
- package/src/components/DataTable/composition/useTableColumns.ts +8 -8
- package/src/components/DataTable/composition/useTableRows.ts +5 -5
- package/src/components/DataTable/domain.ts +8 -4
- package/src/components/DataTable/index.ts +26 -13
- package/src/components/DataTable/keys.ts +3 -3
- package/src/components/DataTable/state.ts +38 -18
- package/src/components/DataTable/types.ts +10 -10
- package/src/components/DropdownListItem.vue +18 -15
- package/src/components/GridTable/TdCell.vue +7 -7
- package/src/components/GridTable/ThCell.vue +14 -9
- package/src/components/GridTable/assets/TableIcon.vue +6 -1
- package/src/components/GridTable/assets/style.scss +6 -6
- package/src/components/GridTable/constants.ts +10 -10
- package/src/components/GridTable/domain.ts +8 -4
- package/src/components/GridTable/getColumnPositions.ts +4 -4
- package/src/components/GridTable/index.vue +41 -32
- package/src/components/GridTable/types.ts +14 -11
- package/src/components/GridTable/useColumn.ts +8 -5
- package/src/components/GridTable/useMouseUp.ts +3 -3
- package/src/components/GridTable/useResize.ts +13 -13
- package/src/components/HScroll.vue +10 -10
- package/src/components/InputRange.vue +9 -7
- package/src/components/LongText.vue +7 -5
- package/src/components/PlAccordion/ExpandTransition.vue +12 -6
- package/src/components/PlAccordion/PlAccordion.vue +3 -3
- package/src/components/PlAccordion/PlAccordionSection.vue +9 -9
- package/src/components/PlAccordion/index.ts +2 -2
- package/src/components/PlAlert/PlAlert.vue +21 -10
- package/src/components/PlAlert/index.ts +1 -1
- package/src/components/PlAlert/pl-alert.scss +1 -1
- package/src/components/PlAutocomplete/PlAutocomplete.vue +142 -82
- package/src/components/PlAutocomplete/__tests__/PlAutocomplete.spec.ts +19 -17
- package/src/components/PlAutocomplete/index.ts +1 -1
- package/src/components/PlAutocomplete/pl-autocomplete.scss +9 -7
- package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +92 -62
- package/src/components/PlAutocompleteMulti/__tests__/PlAutocompleteMulti.spec.ts +17 -16
- package/src/components/PlAutocompleteMulti/index.ts +4 -1
- package/src/components/PlAutocompleteMulti/pl-autocomplete-multi.scss +8 -6
- package/src/components/PlBtnAccent/PlBtnAccent.vue +4 -4
- package/src/components/PlBtnAccent/index.ts +1 -1
- package/src/components/PlBtnDanger/PlBtnDanger.vue +4 -4
- package/src/components/PlBtnDanger/index.ts +1 -1
- package/src/components/PlBtnDanger/pl-btn-danger.scss +1 -1
- package/src/components/PlBtnGhost/PlBtnGhost.vue +8 -8
- package/src/components/PlBtnGhost/index.ts +1 -1
- package/src/components/PlBtnGroup/PlBtnGroup.vue +10 -10
- package/src/components/PlBtnGroup/index.ts +1 -1
- package/src/components/PlBtnGroup/pl-btn-group.scss +4 -4
- package/src/components/PlBtnLink/PlBtnLink.vue +10 -5
- package/src/components/PlBtnLink/index.ts +1 -1
- package/src/components/PlBtnLink/pl-btn-link.scss +2 -1
- package/src/components/PlBtnPrimary/PlBtnPrimary.vue +4 -4
- package/src/components/PlBtnPrimary/__tests__/BtnPrimary.spec.ts +7 -7
- package/src/components/PlBtnPrimary/index.ts +1 -1
- package/src/components/PlBtnPrimary/pl-btn-primary.scss +2 -2
- package/src/components/PlBtnSecondary/PlBtnSecondary.vue +4 -4
- package/src/components/PlBtnSecondary/index.ts +1 -1
- package/src/components/PlBtnSecondary/pl-btn-secondary.scss +1 -1
- package/src/components/PlBtnSplit/PlBtnSplit.vue +42 -28
- package/src/components/PlBtnSplit/__tests__/PlBtnSplit.spec.ts +66 -66
- package/src/components/PlBtnSplit/index.ts +1 -1
- package/src/components/PlBtnSplit/pl-btn-split.scss +72 -75
- package/src/components/PlChartHistogram/PlChartHistogram.vue +29 -20
- package/src/components/PlChartHistogram/createGridlines.ts +28 -22
- package/src/components/PlChartHistogram/createLabels.ts +19 -17
- package/src/components/PlChartHistogram/createSvgContainer.ts +9 -9
- package/src/components/PlChartHistogram/drawBins.ts +27 -34
- package/src/components/PlChartHistogram/drawThreshold.ts +9 -9
- package/src/components/PlChartHistogram/histogram.ts +31 -34
- package/src/components/PlChartHistogram/index.ts +1 -1
- package/src/components/PlChartHistogram/normalizeBins.ts +3 -3
- package/src/components/PlChartHistogram/scales.spec.ts +5 -5
- package/src/components/PlChartHistogram/types.ts +6 -6
- package/src/components/PlChartStackedBar/Legends.vue +2 -2
- package/src/components/PlChartStackedBar/PlChartStackedBar.vue +16 -10
- package/src/components/PlChartStackedBar/PlChartStackedBarCompact.vue +4 -4
- package/src/components/PlChartStackedBar/StackedRow.vue +7 -9
- package/src/components/PlChartStackedBar/StackedRowCompact.vue +6 -8
- package/src/components/PlChartStackedBar/index.ts +3 -3
- package/src/components/PlChartStackedBar/types.ts +1 -1
- package/src/components/PlCheckbox/PlCheckbox.vue +5 -5
- package/src/components/PlCheckbox/PlCheckboxBase.vue +3 -5
- package/src/components/PlCheckbox/__tests__/PlCheckbox.spec.ts +15 -15
- package/src/components/PlCheckbox/index.ts +1 -1
- package/src/components/PlCheckbox/pl-checkbox-base.scss +13 -13
- package/src/components/PlCheckbox/pl-checkbox.scss +2 -2
- package/src/components/PlCheckboxGroup/PlCheckboxGroup.vue +24 -10
- package/src/components/PlCheckboxGroup/index.ts +1 -1
- package/src/components/PlCheckboxGroup/pl-checkbox-group.scss +1 -1
- package/src/components/PlChip/PlChip.vue +11 -5
- package/src/components/PlChip/index.ts +1 -1
- package/src/components/PlChip/pl-chip.scss +2 -2
- package/src/components/PlClipboard/PlClipboard.vue +7 -7
- package/src/components/PlClipboard/index.ts +1 -1
- package/src/components/PlConfirmDialog.vue +7 -6
- package/src/components/PlDialogModal/PlDialogModal.vue +52 -33
- package/src/components/PlDialogModal/index.ts +1 -1
- package/src/components/PlDialogModal/pl-dialog-modal.scss +2 -2
- package/src/components/PlDropdown/OptionList.vue +21 -10
- package/src/components/PlDropdown/PlDropdown.vue +65 -46
- package/src/components/PlDropdown/__tests__/PlDropdown.spec.ts +15 -15
- package/src/components/PlDropdown/index.ts +1 -1
- package/src/components/PlDropdown/pl-dropdown.scss +4 -2
- package/src/components/PlDropdown/types.ts +6 -2
- package/src/components/PlDropdown/useGroupBy.ts +7 -10
- package/src/components/PlDropdownLegacy/PlDropdownLegacy.vue +60 -43
- package/src/components/PlDropdownLegacy/__tests__/PlDropdownLegacy.spec.ts +16 -16
- package/src/components/PlDropdownLegacy/index.ts +1 -1
- package/src/components/PlDropdownLegacy/pl-dropdown-legacy.scss +6 -6
- package/src/components/PlDropdownLine/PlDropdownLine.vue +76 -54
- package/src/components/PlDropdownLine/ResizableInput.vue +15 -8
- package/src/components/PlDropdownLine/index.ts +1 -1
- package/src/components/PlDropdownLine/pl-dropdown-line.scss +132 -132
- package/src/components/PlDropdownLine/resizable-input.scss +38 -38
- package/src/components/PlDropdownMulti/PlDropdownMulti.vue +79 -45
- package/src/components/PlDropdownMulti/__tests__/PlDropdownMulti.spec.ts +15 -14
- package/src/components/PlDropdownMulti/index.ts +1 -1
- package/src/components/PlDropdownMulti/pl-dropdown-multi.scss +8 -6
- package/src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue +5 -5
- package/src/components/PlDropdownMultiRef/__tests__/PlDropdownMultiRef.spec.ts +25 -24
- package/src/components/PlDropdownMultiRef/index.ts +1 -1
- package/src/components/PlDropdownRef/PlDropdownRef.vue +12 -12
- package/src/components/PlDropdownRef/__tests__/PlDropdownRef.spec.ts +23 -23
- package/src/components/PlDropdownRef/index.ts +1 -1
- package/src/components/PlEditableTitle/PlEditableTitle.vue +9 -10
- package/src/components/PlEditableTitle/index.ts +1 -1
- package/src/components/PlEditableTitle/pl-editable-title.module.scss +4 -4
- package/src/components/PlElementList/PlElementList.vue +60 -37
- package/src/components/PlElementList/PlElementListItem.vue +45 -29
- package/src/components/PlElementList/README.md +102 -119
- package/src/components/PlElementList/index.ts +1 -1
- package/src/components/PlElementList/utils.ts +3 -1
- package/src/components/PlErrorAlert/PlErrorAlert.vue +5 -5
- package/src/components/PlErrorAlert/index.ts +1 -1
- package/src/components/PlErrorBoundary/PlErrorBoundary.vue +8 -5
- package/src/components/PlErrorBoundary/index.ts +1 -1
- package/src/components/PlFileDialog/Local.vue +22 -16
- package/src/components/PlFileDialog/PlFileDialog.vue +27 -23
- package/src/components/PlFileDialog/Remote.vue +44 -34
- package/src/components/PlFileDialog/Shortcuts.vue +4 -4
- package/src/components/PlFileDialog/index.ts +1 -1
- package/src/components/PlFileDialog/pl-file-dialog.module.scss +15 -12
- package/src/components/PlFileDialog/remote.ts +9 -9
- package/src/components/PlFileDialog/utils.test.ts +20 -24
- package/src/components/PlFileDialog/utils.ts +8 -8
- package/src/components/PlFileInput/PlFileInput.vue +37 -26
- package/src/components/PlFileInput/index.ts +1 -1
- package/src/components/PlFileInput/pl-file-input.scss +3 -3
- package/src/components/PlFileInput/utils.ts +6 -6
- package/src/components/PlIcon16/PlIcon16.vue +7 -7
- package/src/components/PlIcon16/index.ts +1 -1
- package/src/components/PlIcon24/PlIcon24.vue +7 -7
- package/src/components/PlIcon24/index.ts +1 -1
- package/src/components/PlLoaderCircular/PlLoaderCircular.vue +24 -6
- package/src/components/PlLoaderCircular/index.ts +1 -1
- package/src/components/PlLoaderCircular/pl-loader-circular.scss +54 -50
- package/src/components/PlLoaderLogo.vue +8 -10
- package/src/components/PlLogView/PlLogView.vue +28 -22
- package/src/components/PlLogView/index.ts +1 -1
- package/src/components/PlLogView/pl-log-view.scss +10 -4
- package/src/components/PlLogView/useLogHandle.ts +32 -12
- package/src/components/PlMaskIcon16/index.ts +1 -1
- package/src/components/PlMaskIcon24/index.ts +1 -1
- package/src/components/PlNotificationAlert/PlNotificationAlert.vue +10 -5
- package/src/components/PlNotificationAlert/index.ts +1 -1
- package/src/components/PlNotificationAlert/pl-notification-alert.scss +43 -44
- package/src/components/PlNumberField/PlNumberField.vue +95 -68
- package/src/components/PlNumberField/__tests__/PlNumberField.spec.ts +71 -69
- package/src/components/PlNumberField/index.ts +1 -1
- package/src/components/PlNumberField/parseNumber.ts +20 -17
- package/src/components/PlProgressBar/PlProgressBar.vue +5 -5
- package/src/components/PlProgressBar/index.ts +1 -1
- package/src/components/PlProgressCell/PlProgressCell.vue +33 -14
- package/src/components/PlProgressCell/index.ts +2 -2
- package/src/components/PlProgressCell/pl-progress-cell.scss +70 -70
- package/src/components/PlProgressCell/types.ts +1 -1
- package/src/components/PlRadio/PlRadio.vue +54 -54
- package/src/components/PlRadio/PlRadioGroup.vue +16 -16
- package/src/components/PlRadio/__tests__/PlRadioGroup.spec.ts +50 -50
- package/src/components/PlRadio/index.ts +2 -2
- package/src/components/PlRadio/keys.ts +1 -1
- package/src/components/PlSearchField/PlSearchField.vue +21 -9
- package/src/components/PlSearchField/index.ts +1 -1
- package/src/components/PlSectionSeparator/PlSectionSeparator.vue +1 -1
- package/src/components/PlSectionSeparator/index.ts +1 -1
- package/src/components/PlSidebar/PlSidebarGroup.vue +2 -2
- package/src/components/PlSidebar/PlSidebarItem.vue +7 -7
- package/src/components/PlSidebar/index.ts +2 -2
- package/src/components/PlSlideModal/PlPureSlideModal.vue +18 -17
- package/src/components/PlSlideModal/PlSlideModal.vue +8 -12
- package/src/components/PlSlideModal/index.ts +2 -2
- package/src/components/PlSlideModal/pl-slide-modal.scss +2 -2
- package/src/components/PlSlideModal/props.ts +9 -9
- package/src/components/PlSpacer/PlSpacer.vue +1 -1
- package/src/components/PlSpacer/index.ts +1 -1
- package/src/components/PlSplash/PlSplash.vue +25 -17
- package/src/components/PlSplash/index.ts +1 -1
- package/src/components/PlSplash/pl-splash.module.scss +1 -1
- package/src/components/PlStatusTag/PlStatusTag.vue +13 -8
- package/src/components/PlStatusTag/index.ts +2 -2
- package/src/components/PlStatusTag/pl-status-tag.scss +18 -18
- package/src/components/PlStatusTag/types.ts +1 -1
- package/src/components/PlSvg/PlSvg.vue +24 -16
- package/src/components/PlSvg/index.ts +1 -1
- package/src/components/PlSvg/registry.ts +17 -21
- package/src/components/PlTabs/PlTabs.vue +10 -7
- package/src/components/PlTabs/Tab.vue +4 -4
- package/src/components/PlTabs/index.ts +2 -2
- package/src/components/PlTabs/pl-tabs.module.scss +3 -3
- package/src/components/PlTextArea/PlTextArea.vue +15 -15
- package/src/components/PlTextArea/__tests__/PlTextArea.spec.ts +12 -12
- package/src/components/PlTextArea/index.ts +1 -1
- package/src/components/PlTextArea/pl-textarea.scss +1 -1
- package/src/components/PlTextField/PlTextField.vue +48 -27
- package/src/components/PlTextField/__tests__/TextField.spec.ts +19 -19
- package/src/components/PlTextField/index.ts +1 -1
- package/src/components/PlToggleSwitch/PlToggleSwitch.vue +3 -3
- package/src/components/PlToggleSwitch/index.ts +1 -1
- package/src/components/PlToggleSwitch/pl-toggle-switch.scss +3 -2
- package/src/components/PlTooltip/Beak.vue +8 -1
- package/src/components/PlTooltip/PlTooltip.vue +33 -19
- package/src/components/PlTooltip/index.ts +1 -1
- package/src/components/PlTooltip/pl-tooltip.scss +4 -2
- package/src/components/PlTooltip/useTooltipPosition.ts +12 -12
- package/src/components/Scrollable.vue +17 -8
- package/src/components/Slider.vue +47 -23
- package/src/components/SliderRange.vue +72 -32
- package/src/components/SliderRangeTriple.vue +49 -31
- package/src/components/TabItem.vue +5 -5
- package/src/components/ThemeSwitcher.vue +1 -1
- package/src/components/TransitionSlidePanel.vue +2 -2
- package/src/components/VScroll.vue +10 -10
- package/src/components/contextMenu/Menu.vue +4 -4
- package/src/components/contextMenu/index.ts +6 -6
- package/src/composition/computedCached.ts +11 -7
- package/src/composition/filters/index.ts +2 -2
- package/src/composition/filters/metadata.ts +227 -220
- package/src/composition/filters/types.ts +44 -21
- package/src/composition/useClickOutside.ts +4 -4
- package/src/composition/useComponentProp.ts +5 -3
- package/src/composition/useConfirm.ts +5 -5
- package/src/composition/useDraggable.ts +16 -13
- package/src/composition/useEventListener.ts +13 -5
- package/src/composition/useFilteredList.ts +9 -6
- package/src/composition/useFormState.ts +3 -3
- package/src/composition/useHover.ts +10 -7
- package/src/composition/useInterval.ts +1 -1
- package/src/composition/useLocalStorage.ts +4 -4
- package/src/composition/useMouse.ts +3 -3
- package/src/composition/useMouseCapture.ts +10 -7
- package/src/composition/useNotificationPosition.ts +4 -4
- package/src/composition/usePollingQuery.ts +22 -20
- package/src/composition/usePosition.ts +13 -9
- package/src/composition/useQuery.ts +2 -2
- package/src/composition/useResizeObserver.ts +9 -6
- package/src/composition/useRipple.ts +6 -6
- package/src/composition/useScroll.ts +18 -12
- package/src/composition/useSliderBreakpoints.ts +6 -4
- package/src/composition/useSortable.ts +17 -17
- package/src/composition/useSortable2.ts +27 -24
- package/src/composition/useTheme.ts +11 -9
- package/src/composition/useTransformedModel.ts +6 -3
- package/src/composition/useWatchFetch.ts +3 -3
- package/src/composition/utils.ts +1 -1
- package/src/composition/watchCached.ts +2 -8
- package/src/demo-site-data/all-css-variables.ts +208 -169
- package/src/drafts/FileBaseInput.vue +35 -18
- package/src/generated/icons-16.ts +68 -68
- package/src/generated/icons-24.ts +211 -211
- package/src/global/resizeObserver.ts +1 -1
- package/src/helpers/dom.ts +12 -8
- package/src/helpers/downloadContent.ts +23 -21
- package/src/helpers/error.ts +6 -3
- package/src/helpers/functions.ts +5 -1
- package/src/helpers/objects.ts +1 -1
- package/src/helpers/utils.ts +23 -9
- package/src/index.ts +110 -110
- package/src/layout/PlBlockPage/PlBlockPage.vue +14 -19
- package/src/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.ts +1 -1
- package/src/layout/PlBlockPage/index.ts +2 -2
- package/src/layout/PlBlockPage/pl-block-page.scss +1 -1
- package/src/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.ts +2 -2
- package/src/layout/PlContainer/PlContainer.vue +10 -5
- package/src/layout/PlContainer/index.ts +1 -1
- package/src/layout/PlContainer/pl-container.scss +1 -1
- package/src/layout/PlGrid/PlGrid.vue +3 -3
- package/src/layout/PlGrid/index.ts +1 -1
- package/src/layout/PlGrid/pl-grid.scss +1 -1
- package/src/layout/PlPlaceholder/PlPlaceholder.vue +19 -18
- package/src/layout/PlPlaceholder/index.ts +11 -14
- package/src/layout/PlPlaceholder/paint-worklet.js +6 -6
- package/src/layout/PlRow/PlRow.vue +2 -2
- package/src/layout/PlRow/index.ts +1 -1
- package/src/layout/PlRow/pl-row.scss +1 -1
- package/src/layout/PlSpacer/PlSpacer.vue +1 -1
- package/src/layout/PlSpacer/index.ts +1 -1
- package/src/types.ts +23 -17
- package/src/utils/DoubleContour.vue +18 -7
- package/src/utils/DropdownOverlay/DropdownOverlay.vue +13 -13
- package/src/utils/DropdownOverlay/index.ts +1 -1
- package/src/utils/PlCloseModalBtn.vue +1 -1
- package/src/utils/TextLabel.vue +1 -1
- package/src/utils/WebStopWatchElement.ts +5 -5
- package/src/utils/useLabelNotch.ts +12 -9
- package/src/utils/useValidation.ts +2 -2
- package/tsconfig.json +2 -7
- package/vitest.config.mts +9 -9
- package/.turbo/turbo-lint.log +0 -5
- package/eslint.config.mjs +0 -4
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { useEventListener } from
|
|
3
|
-
import type { ImportedFiles } from
|
|
4
|
-
import { between, notEmpty, tapIf } from
|
|
5
|
-
import { getRawPlatformaInstance, type StorageHandle } from
|
|
6
|
-
import { computed, onMounted, reactive, toRef, watch } from
|
|
7
|
-
import { PlDropdown } from
|
|
8
|
-
import { PlIcon16 } from
|
|
9
|
-
import Shortcuts from
|
|
10
|
-
import { PlMaskIcon16 } from
|
|
11
|
-
import { PlSearchField } from
|
|
12
|
-
import style from
|
|
13
|
-
import { defaultData, useVisibleItems, vTextOverflown } from
|
|
14
|
-
import { getFilePathBreadcrumbs, normalizeExtensions, type FileDialogItem } from
|
|
2
|
+
import { useEventListener } from "../../composition/useEventListener";
|
|
3
|
+
import type { ImportedFiles } from "../../types";
|
|
4
|
+
import { between, notEmpty, tapIf } from "@milaboratories/helpers";
|
|
5
|
+
import { getRawPlatformaInstance, type StorageHandle } from "@platforma-sdk/model";
|
|
6
|
+
import { computed, onMounted, reactive, toRef, watch } from "vue";
|
|
7
|
+
import { PlDropdown } from "../PlDropdown";
|
|
8
|
+
import { PlIcon16 } from "../PlIcon16";
|
|
9
|
+
import Shortcuts from "./Shortcuts.vue";
|
|
10
|
+
import { PlMaskIcon16 } from "../PlMaskIcon16";
|
|
11
|
+
import { PlSearchField } from "../PlSearchField";
|
|
12
|
+
import style from "./pl-file-dialog.module.scss";
|
|
13
|
+
import { defaultData, useVisibleItems, vTextOverflown } from "./remote";
|
|
14
|
+
import { getFilePathBreadcrumbs, normalizeExtensions, type FileDialogItem } from "./utils";
|
|
15
15
|
|
|
16
16
|
// note that on a Mac, a click combined with the control key is intercepted by the operating system and used to open a context menu, so ctrlKey is not detectable on click events.
|
|
17
17
|
const isCtrlOrMeta = (ev: KeyboardEvent | MouseEvent) => ev.ctrlKey || ev.metaKey;
|
|
18
18
|
|
|
19
19
|
defineEmits<{
|
|
20
|
-
(e:
|
|
21
|
-
(e:
|
|
20
|
+
(e: "update:modelValue", value: boolean): void;
|
|
21
|
+
(e: "import:files", value: ImportedFiles): void;
|
|
22
22
|
}>();
|
|
23
23
|
|
|
24
24
|
const props = withDefaults(
|
|
@@ -40,8 +40,8 @@ const props = withDefaults(
|
|
|
40
40
|
const data = reactive(defaultData());
|
|
41
41
|
|
|
42
42
|
const resetData = () => {
|
|
43
|
-
data.search =
|
|
44
|
-
data.error =
|
|
43
|
+
data.search = "";
|
|
44
|
+
data.error = "";
|
|
45
45
|
data.lastSelected = undefined;
|
|
46
46
|
};
|
|
47
47
|
|
|
@@ -68,8 +68,8 @@ const query = (storageHandle: StorageHandle, dirPath: string) => {
|
|
|
68
68
|
|
|
69
69
|
data.currentLoadingPath = dirPath;
|
|
70
70
|
|
|
71
|
-
getRawPlatformaInstance()
|
|
72
|
-
.listFiles(storageHandle, dirPath)
|
|
71
|
+
getRawPlatformaInstance()
|
|
72
|
+
.lsDriver.listFiles(storageHandle, dirPath)
|
|
73
73
|
.then((res) => {
|
|
74
74
|
if (dirPath !== data.dirPath) {
|
|
75
75
|
return;
|
|
@@ -79,9 +79,11 @@ const query = (storageHandle: StorageHandle, dirPath: string) => {
|
|
|
79
79
|
.entries.map((item) => ({
|
|
80
80
|
path: item.fullPath,
|
|
81
81
|
name: item.name,
|
|
82
|
-
isDir: item.type ===
|
|
83
|
-
canBeSelected:
|
|
84
|
-
|
|
82
|
+
isDir: item.type === "dir",
|
|
83
|
+
canBeSelected:
|
|
84
|
+
item.type === "file" &&
|
|
85
|
+
(!extensions.value || extensions.value.some((ext) => item.fullPath.endsWith(ext))),
|
|
86
|
+
handle: item.type === "file" ? item.handle : undefined,
|
|
85
87
|
selected: false,
|
|
86
88
|
}))
|
|
87
89
|
.sort((a, b) => {
|
|
@@ -110,7 +112,9 @@ const load = () => {
|
|
|
110
112
|
|
|
111
113
|
const breadcrumbs = computed(() => getFilePathBreadcrumbs(data.dirPath));
|
|
112
114
|
|
|
113
|
-
const selectedFiles = computed(() =>
|
|
115
|
+
const selectedFiles = computed(() =>
|
|
116
|
+
data.items.filter((f) => f.canBeSelected && f.selected && !f.isDir),
|
|
117
|
+
);
|
|
114
118
|
|
|
115
119
|
const isReady = computed(() => selectedFiles.value.length > 0 && data.storageEntry?.handle);
|
|
116
120
|
|
|
@@ -187,14 +191,16 @@ const loadAvailableStorages = () => {
|
|
|
187
191
|
resetData();
|
|
188
192
|
deselectAll();
|
|
189
193
|
if (!getRawPlatformaInstance()) {
|
|
190
|
-
console.warn(
|
|
194
|
+
console.warn("platforma API is not found");
|
|
191
195
|
return;
|
|
192
196
|
}
|
|
193
|
-
getRawPlatformaInstance()
|
|
194
|
-
.getStorageList()
|
|
197
|
+
getRawPlatformaInstance()
|
|
198
|
+
.lsDriver.getStorageList()
|
|
195
199
|
.then((storageEntries) => {
|
|
196
200
|
// local storage is always returned by the ML, so we need to remove it from remote dialog manually
|
|
197
|
-
storageEntries = storageEntries.filter(
|
|
201
|
+
storageEntries = storageEntries.filter(
|
|
202
|
+
(it) => it.name !== "local" && !it.name.startsWith("local_disk_"),
|
|
203
|
+
);
|
|
198
204
|
|
|
199
205
|
data.storageOptions = storageEntries.map((it) => ({
|
|
200
206
|
text: it.name,
|
|
@@ -211,10 +217,10 @@ const loadAvailableStorages = () => {
|
|
|
211
217
|
};
|
|
212
218
|
|
|
213
219
|
watch(
|
|
214
|
-
toRef(data,
|
|
220
|
+
toRef(data, "storageEntry"),
|
|
215
221
|
(entry) => {
|
|
216
222
|
resetData();
|
|
217
|
-
data.dirPath = entry?.initialFullPath ??
|
|
223
|
+
data.dirPath = entry?.initialFullPath ?? "";
|
|
218
224
|
},
|
|
219
225
|
{ immediate: true },
|
|
220
226
|
);
|
|
@@ -235,7 +241,7 @@ watch(
|
|
|
235
241
|
{ immediate: true },
|
|
236
242
|
);
|
|
237
243
|
|
|
238
|
-
useEventListener(document,
|
|
244
|
+
useEventListener(document, "keydown", (ev: KeyboardEvent) => {
|
|
239
245
|
if (!props.modelValue) {
|
|
240
246
|
return;
|
|
241
247
|
}
|
|
@@ -246,17 +252,17 @@ useEventListener(document, 'keydown', (ev: KeyboardEvent) => {
|
|
|
246
252
|
|
|
247
253
|
const ctrlOrMetaKey = isCtrlOrMeta(ev);
|
|
248
254
|
|
|
249
|
-
if (ctrlOrMetaKey && ev.code ===
|
|
255
|
+
if (ctrlOrMetaKey && ev.code === "KeyA") {
|
|
250
256
|
ev.preventDefault();
|
|
251
257
|
selectAll();
|
|
252
258
|
}
|
|
253
259
|
|
|
254
|
-
if (ctrlOrMetaKey && ev.shiftKey && ev.code ===
|
|
260
|
+
if (ctrlOrMetaKey && ev.shiftKey && ev.code === "Period") {
|
|
255
261
|
ev.preventDefault();
|
|
256
262
|
data.showHiddenItems = !data.showHiddenItems;
|
|
257
263
|
}
|
|
258
264
|
|
|
259
|
-
if (ev.code ===
|
|
265
|
+
if (ev.code === "Enter") {
|
|
260
266
|
props.submit();
|
|
261
267
|
}
|
|
262
268
|
});
|
|
@@ -273,7 +279,11 @@ onMounted(loadAvailableStorages);
|
|
|
273
279
|
<div :class="style.remote" @click.stop="deselectAll">
|
|
274
280
|
<div :class="style.search">
|
|
275
281
|
<div>
|
|
276
|
-
<PlDropdown
|
|
282
|
+
<PlDropdown
|
|
283
|
+
v-model="data.storageEntry"
|
|
284
|
+
label="Select storage"
|
|
285
|
+
:options="data.storageOptions"
|
|
286
|
+
/>
|
|
277
287
|
</div>
|
|
278
288
|
<div>
|
|
279
289
|
<PlSearchField v-model="data.search" label="Search in folder" clearable />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { PlTooltip } from
|
|
2
|
+
import { PlTooltip } from "../PlTooltip";
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
<template>
|
|
@@ -8,7 +8,7 @@ import { PlTooltip } from '../PlTooltip';
|
|
|
8
8
|
<span :class="$style.title">Shortcuts</span>
|
|
9
9
|
|
|
10
10
|
<div :class="[$style.row, $style.head]">
|
|
11
|
-
<div/>
|
|
11
|
+
<div />
|
|
12
12
|
<div>MacOS</div>
|
|
13
13
|
<div>Windows/Linux</div>
|
|
14
14
|
</div>
|
|
@@ -70,7 +70,7 @@ import { PlTooltip } from '../PlTooltip';
|
|
|
70
70
|
|
|
71
71
|
.head:before {
|
|
72
72
|
position: absolute;
|
|
73
|
-
content:
|
|
73
|
+
content: "";
|
|
74
74
|
background-color: #231842;
|
|
75
75
|
width: 12px;
|
|
76
76
|
left: -12px;
|
|
@@ -79,7 +79,7 @@ import { PlTooltip } from '../PlTooltip';
|
|
|
79
79
|
|
|
80
80
|
.head:after {
|
|
81
81
|
position: absolute;
|
|
82
|
-
content:
|
|
82
|
+
content: "";
|
|
83
83
|
background-color: #231842;
|
|
84
84
|
width: 12px;
|
|
85
85
|
right: -12px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as PlFileDialog } from
|
|
1
|
+
export { default as PlFileDialog } from "./PlFileDialog.vue";
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
--pl-file-dialog-local-border-color: var(--border-color-focus);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
>span {
|
|
26
|
+
> span {
|
|
27
27
|
font-size: 14px;
|
|
28
28
|
font-weight: 500;
|
|
29
29
|
line-height: 20px;
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
gap: 12px;
|
|
54
54
|
margin: 0 24px;
|
|
55
55
|
|
|
56
|
-
>div {
|
|
56
|
+
> div {
|
|
57
57
|
flex: 1;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
gap: 12px;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
>div {
|
|
96
|
+
> div {
|
|
97
97
|
cursor: pointer;
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
min-width: 0;
|
|
111
111
|
max-width: 100%;
|
|
112
112
|
|
|
113
|
-
>div {
|
|
113
|
+
> div {
|
|
114
114
|
display: inline-block;
|
|
115
115
|
white-space: nowrap;
|
|
116
116
|
overflow: hidden;
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
margin-top: 40px;
|
|
137
137
|
width: 240px;
|
|
138
138
|
height: 200px;
|
|
139
|
-
background: url(
|
|
139
|
+
background: url("../../assets/images/no-data-cat.svg");
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
.message {
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
margin-top: 40px;
|
|
163
163
|
width: 400px;
|
|
164
164
|
height: 200px;
|
|
165
|
-
background: url(
|
|
165
|
+
background: url("../../assets/images/empty-cat.svg");
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
.message {
|
|
@@ -184,10 +184,13 @@
|
|
|
184
184
|
flex-direction: column;
|
|
185
185
|
@include scrollbar(true);
|
|
186
186
|
|
|
187
|
-
>div {
|
|
187
|
+
> div {
|
|
188
188
|
font-family: var(--font-family-monospace);
|
|
189
189
|
color: var(--txt-01);
|
|
190
|
-
font-feature-settings:
|
|
190
|
+
font-feature-settings:
|
|
191
|
+
"ss11" on,
|
|
192
|
+
"ss15" on,
|
|
193
|
+
"ss17" on;
|
|
191
194
|
font-size: 14px;
|
|
192
195
|
font-weight: 400;
|
|
193
196
|
display: flex;
|
|
@@ -196,19 +199,19 @@
|
|
|
196
199
|
gap: 12px;
|
|
197
200
|
padding: 0 12px;
|
|
198
201
|
|
|
199
|
-
>span {
|
|
202
|
+
> span {
|
|
200
203
|
display: inline-block;
|
|
201
204
|
white-space: nowrap;
|
|
202
205
|
overflow: hidden;
|
|
203
206
|
}
|
|
204
207
|
|
|
205
|
-
>i {
|
|
208
|
+
> i {
|
|
206
209
|
min-width: 16px;
|
|
207
210
|
}
|
|
208
211
|
|
|
209
212
|
i.isFile {
|
|
210
213
|
display: inline-block;
|
|
211
|
-
background-color: #
|
|
214
|
+
background-color: #cfd1db;
|
|
212
215
|
}
|
|
213
216
|
|
|
214
217
|
&.isDir {
|
|
@@ -244,4 +247,4 @@
|
|
|
244
247
|
}
|
|
245
248
|
}
|
|
246
249
|
}
|
|
247
|
-
}
|
|
250
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type { Option } from
|
|
2
|
-
import type { StorageEntry } from
|
|
3
|
-
import type { FileDialogItem } from
|
|
4
|
-
import { computed } from
|
|
1
|
+
import type { Option } from "@milaboratories/helpers";
|
|
2
|
+
import type { StorageEntry } from "@platforma-sdk/model";
|
|
3
|
+
import type { FileDialogItem } from "./utils";
|
|
4
|
+
import { computed } from "vue";
|
|
5
5
|
|
|
6
6
|
export const defaultData = () => ({
|
|
7
|
-
dirPath:
|
|
8
|
-
search:
|
|
7
|
+
dirPath: "" as string,
|
|
8
|
+
search: "",
|
|
9
9
|
storageEntry: undefined as StorageEntry | undefined,
|
|
10
10
|
items: [] as FileDialogItem[],
|
|
11
|
-
error:
|
|
11
|
+
error: "",
|
|
12
12
|
storageOptions: [] as Option<StorageEntry>[],
|
|
13
13
|
selected: [],
|
|
14
14
|
lastSelected: undefined as number | undefined,
|
|
@@ -23,7 +23,7 @@ export function useVisibleItems(data: Data) {
|
|
|
23
23
|
let items = data.items;
|
|
24
24
|
|
|
25
25
|
if (!data.showHiddenItems) {
|
|
26
|
-
items = items.filter((it) => !it.name.startsWith(
|
|
26
|
+
items = items.filter((it) => !it.name.startsWith("."));
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
if (data.search) {
|
|
@@ -39,7 +39,7 @@ export const vTextOverflown = {
|
|
|
39
39
|
mounted: (el: HTMLElement) => {
|
|
40
40
|
if (el.clientWidth < el.scrollWidth) {
|
|
41
41
|
const s = el.innerText;
|
|
42
|
-
el.innerText = s.substring(0, 57) +
|
|
42
|
+
el.innerText = s.substring(0, 57) + "..." + s.substring(s.length - 10);
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
};
|
|
@@ -1,50 +1,46 @@
|
|
|
1
|
-
import { describe, expect, test } from
|
|
2
|
-
import { getFilePathBreadcrumbs } from
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { getFilePathBreadcrumbs } from "./utils";
|
|
3
3
|
|
|
4
|
-
describe(
|
|
4
|
+
describe("getFilePathBreadcrumbs", () => {
|
|
5
5
|
test.each([
|
|
6
6
|
{
|
|
7
7
|
name: 'root path "/"',
|
|
8
|
-
path:
|
|
9
|
-
expected: [
|
|
10
|
-
{ index: 0, name: 'Root', path: '' },
|
|
11
|
-
],
|
|
8
|
+
path: "/",
|
|
9
|
+
expected: [{ index: 0, name: "Root", path: "" }],
|
|
12
10
|
},
|
|
13
11
|
{
|
|
14
12
|
name: 'empty path ""',
|
|
15
|
-
path:
|
|
16
|
-
expected: [
|
|
17
|
-
{ index: 0, name: 'Root', path: '' },
|
|
18
|
-
],
|
|
13
|
+
path: "",
|
|
14
|
+
expected: [{ index: 0, name: "Root", path: "" }],
|
|
19
15
|
},
|
|
20
16
|
{
|
|
21
17
|
name: 'single-level path "/folder"',
|
|
22
|
-
path:
|
|
18
|
+
path: "/folder",
|
|
23
19
|
expected: [
|
|
24
|
-
{ index: 0, name:
|
|
25
|
-
{ index: 1, name:
|
|
20
|
+
{ index: 0, name: "Root", path: "" },
|
|
21
|
+
{ index: 1, name: "folder", path: "/folder" },
|
|
26
22
|
],
|
|
27
23
|
},
|
|
28
24
|
{
|
|
29
25
|
name: 'multi-level path "/folder/subfolder/file.txt"',
|
|
30
|
-
path:
|
|
26
|
+
path: "/folder/subfolder/file.txt",
|
|
31
27
|
expected: [
|
|
32
|
-
{ index: 0, name:
|
|
33
|
-
{ index: 1, name:
|
|
34
|
-
{ index: 2, name:
|
|
35
|
-
{ index: 3, name:
|
|
28
|
+
{ index: 0, name: "Root", path: "" },
|
|
29
|
+
{ index: 1, name: "folder", path: "/folder" },
|
|
30
|
+
{ index: 2, name: "subfolder", path: "/folder/subfolder" },
|
|
31
|
+
{ index: 3, name: "file.txt", path: "/folder/subfolder/file.txt" },
|
|
36
32
|
],
|
|
37
33
|
},
|
|
38
34
|
{
|
|
39
35
|
name: 'path without leading slash "folder/file.txt"',
|
|
40
|
-
path:
|
|
36
|
+
path: "folder/file.txt",
|
|
41
37
|
expected: [
|
|
42
|
-
{ index: 0, name:
|
|
43
|
-
{ index: 1, name:
|
|
44
|
-
{ index: 2, name:
|
|
38
|
+
{ index: 0, name: "Root", path: "" },
|
|
39
|
+
{ index: 1, name: "folder", path: "folder" },
|
|
40
|
+
{ index: 2, name: "file.txt", path: "folder/file.txt" },
|
|
45
41
|
],
|
|
46
42
|
},
|
|
47
|
-
])(
|
|
43
|
+
])("should handle $name", ({ path, expected }) => {
|
|
48
44
|
const result = getFilePathBreadcrumbs(path);
|
|
49
45
|
expect(result).toEqual(expected);
|
|
50
46
|
});
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { trimChars, trimCharsLeft } from
|
|
2
|
-
import type { ImportFileHandle } from
|
|
1
|
+
import { trimChars, trimCharsLeft } from "@milaboratories/helpers";
|
|
2
|
+
import type { ImportFileHandle } from "@platforma-sdk/model";
|
|
3
3
|
|
|
4
4
|
export function normalizeExtensions(extensions: string[] | undefined) {
|
|
5
|
-
return extensions ? extensions.map((it) =>
|
|
5
|
+
return extensions ? extensions.map((it) => "." + trimCharsLeft(it, ["."])) : undefined;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
// NOTE: works only with '/' separator on *nix systems.
|
|
9
9
|
export function getFilePathBreadcrumbs(filePath: string) {
|
|
10
10
|
// FIXME: separator probably should be got from ls driver from backend.
|
|
11
11
|
// or else this component won't work with remote storages on Windows.
|
|
12
|
-
const sep =
|
|
12
|
+
const sep = "/";
|
|
13
13
|
|
|
14
14
|
// If file path starts with '/',
|
|
15
15
|
// the storage was set up with absolute paths,
|
|
@@ -20,17 +20,17 @@ export function getFilePathBreadcrumbs(filePath: string) {
|
|
|
20
20
|
const stack: { index: number; path: string; name: string }[] = [
|
|
21
21
|
{
|
|
22
22
|
index: 0,
|
|
23
|
-
name:
|
|
24
|
-
path:
|
|
23
|
+
name: "Root",
|
|
24
|
+
path: "",
|
|
25
25
|
},
|
|
26
26
|
];
|
|
27
27
|
|
|
28
|
-
if (chunks.length === 1 && chunks[0] ===
|
|
28
|
+
if (chunks.length === 1 && chunks[0] === "") {
|
|
29
29
|
return stack;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
for (let i = 0; i < chunks.length; i++) {
|
|
33
|
-
const pathPrefix = isAbsolute ? sep :
|
|
33
|
+
const pathPrefix = isAbsolute ? sep : "";
|
|
34
34
|
const p = pathPrefix + chunks.slice(0, i + 1).join(sep);
|
|
35
35
|
|
|
36
36
|
stack.push({
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { prettyBytes } from
|
|
5
|
-
import type { ImportFileHandle, ImportProgress } from
|
|
6
|
-
import { getFileNameFromHandle, getFilePathFromHandle } from
|
|
7
|
-
import { computed, reactive, ref, useSlots, watch } from
|
|
8
|
-
import { getErrorMessage } from
|
|
9
|
-
import type { ImportedFiles } from
|
|
10
|
-
import DoubleContour from
|
|
11
|
-
import { useLabelNotch } from
|
|
12
|
-
import { PlFileDialog } from
|
|
13
|
-
import { PlMaskIcon24 } from
|
|
14
|
-
import { PlTooltip } from
|
|
15
|
-
|
|
16
|
-
import SvgRequired from
|
|
17
|
-
import { PlSvg } from
|
|
2
|
+
import "./pl-file-input.scss";
|
|
3
|
+
|
|
4
|
+
import { prettyBytes } from "@milaboratories/helpers";
|
|
5
|
+
import type { ImportFileHandle, ImportProgress } from "@platforma-sdk/model";
|
|
6
|
+
import { getFileNameFromHandle, getFilePathFromHandle } from "@platforma-sdk/model";
|
|
7
|
+
import { computed, reactive, ref, useSlots, watch } from "vue";
|
|
8
|
+
import { getErrorMessage } from "../../helpers/error.ts";
|
|
9
|
+
import type { ImportedFiles } from "../../types";
|
|
10
|
+
import DoubleContour from "../../utils/DoubleContour.vue";
|
|
11
|
+
import { useLabelNotch } from "../../utils/useLabelNotch";
|
|
12
|
+
import { PlFileDialog } from "../PlFileDialog";
|
|
13
|
+
import { PlMaskIcon24 } from "../PlMaskIcon24";
|
|
14
|
+
import { PlTooltip } from "../PlTooltip";
|
|
15
|
+
|
|
16
|
+
import SvgRequired from "../../assets/images/required.svg?raw";
|
|
17
|
+
import { PlSvg } from "../PlSvg";
|
|
18
18
|
|
|
19
19
|
const data = reactive({
|
|
20
20
|
fileDialogOpen: false,
|
|
@@ -24,7 +24,7 @@ const data = reactive({
|
|
|
24
24
|
const slots = useSlots();
|
|
25
25
|
|
|
26
26
|
const emit = defineEmits<{
|
|
27
|
-
(e:
|
|
27
|
+
(e: "update:modelValue", value: ImportFileHandle | undefined): void;
|
|
28
28
|
}>();
|
|
29
29
|
|
|
30
30
|
const props = withDefaults(
|
|
@@ -91,7 +91,10 @@ const props = withDefaults(
|
|
|
91
91
|
},
|
|
92
92
|
);
|
|
93
93
|
|
|
94
|
-
const tryValue = <T extends ImportFileHandle>(
|
|
94
|
+
const tryValue = <T extends ImportFileHandle>(
|
|
95
|
+
v: T | undefined,
|
|
96
|
+
cb: (v: T) => string | undefined,
|
|
97
|
+
) => {
|
|
95
98
|
if (!v) {
|
|
96
99
|
return undefined;
|
|
97
100
|
}
|
|
@@ -114,17 +117,17 @@ const isUploaded = computed(() => props.progress && props.progress.done);
|
|
|
114
117
|
|
|
115
118
|
const computedErrorMessage = computed(() => getErrorMessage(data.error, props.error));
|
|
116
119
|
|
|
117
|
-
const hasErrors = computed(() => typeof computedErrorMessage.value ===
|
|
120
|
+
const hasErrors = computed(() => typeof computedErrorMessage.value === "string");
|
|
118
121
|
|
|
119
122
|
const uploadStats = computed(() => {
|
|
120
123
|
const { status, done } = props.progress ?? {};
|
|
121
124
|
|
|
122
125
|
if (!status || !status.bytesTotal) {
|
|
123
|
-
return
|
|
126
|
+
return "";
|
|
124
127
|
}
|
|
125
128
|
|
|
126
129
|
if (status.bytesProcessed && !done) {
|
|
127
|
-
return prettyBytes(status.bytesProcessed, {}) +
|
|
130
|
+
return prettyBytes(status.bytesProcessed, {}) + " / " + prettyBytes(status.bytesTotal, {});
|
|
128
131
|
}
|
|
129
132
|
|
|
130
133
|
return prettyBytes(status.bytesTotal, {});
|
|
@@ -138,7 +141,7 @@ const progressStyle = computed(() => {
|
|
|
138
141
|
}
|
|
139
142
|
|
|
140
143
|
return {
|
|
141
|
-
width: progress.done ?
|
|
144
|
+
width: progress.done ? "100%" : Math.round((progress.status?.progress ?? 0) * 100) + "%",
|
|
142
145
|
};
|
|
143
146
|
});
|
|
144
147
|
|
|
@@ -148,11 +151,11 @@ const openFileDialog = () => {
|
|
|
148
151
|
|
|
149
152
|
const onImport = (v: ImportedFiles) => {
|
|
150
153
|
if (v.files.length) {
|
|
151
|
-
emit(
|
|
154
|
+
emit("update:modelValue", v.files[0]);
|
|
152
155
|
}
|
|
153
156
|
};
|
|
154
157
|
|
|
155
|
-
const clear = () => emit(
|
|
158
|
+
const clear = () => emit("update:modelValue", undefined);
|
|
156
159
|
|
|
157
160
|
watch(
|
|
158
161
|
() => props.modelValue,
|
|
@@ -168,7 +171,10 @@ if (!props.cellStyle) {
|
|
|
168
171
|
</script>
|
|
169
172
|
|
|
170
173
|
<template>
|
|
171
|
-
<div
|
|
174
|
+
<div
|
|
175
|
+
:class="{ 'pl-file-input__cell-style': !!cellStyle, 'has-file': !!fileName }"
|
|
176
|
+
class="pl-file-input__envelope"
|
|
177
|
+
>
|
|
172
178
|
<div
|
|
173
179
|
ref="rootRef"
|
|
174
180
|
:class="{ dashed, error: hasErrors }"
|
|
@@ -196,7 +202,12 @@ if (!props.cellStyle) {
|
|
|
196
202
|
{{ fileName }}
|
|
197
203
|
</div>
|
|
198
204
|
<div v-if="uploadStats" class="pl-file-input__stats">{{ uploadStats }}</div>
|
|
199
|
-
<PlMaskIcon24
|
|
205
|
+
<PlMaskIcon24
|
|
206
|
+
v-if="modelValue"
|
|
207
|
+
class="pl-file-input__clear"
|
|
208
|
+
name="close"
|
|
209
|
+
@click.stop="clear"
|
|
210
|
+
/>
|
|
200
211
|
<DoubleContour class="pl-file-input__contour" />
|
|
201
212
|
</div>
|
|
202
213
|
<div v-if="hasErrors" class="pl-file-input__error">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as PlFileInput } from
|
|
1
|
+
export { default as PlFileInput } from "./PlFileInput.vue";
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
bottom: 0;
|
|
52
52
|
left: 0;
|
|
53
53
|
right: 0;
|
|
54
|
-
background: linear-gradient(90deg, #
|
|
54
|
+
background: linear-gradient(90deg, #fff 0%, #d8fac8 100%);
|
|
55
55
|
pointer-events: none;
|
|
56
56
|
width: 0;
|
|
57
57
|
}
|
|
@@ -214,7 +214,7 @@
|
|
|
214
214
|
|
|
215
215
|
&:hover {
|
|
216
216
|
--border-color: var(--border-color-focus);
|
|
217
|
-
background-color: #
|
|
217
|
+
background-color: #d9f8ca;
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
&:hover .pl-file-input__filename::before {
|
|
@@ -241,4 +241,4 @@
|
|
|
241
241
|
display: block;
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
-
}
|
|
244
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export function extractFileName(filePath: string) {
|
|
2
|
-
return filePath.replace(/^.*[\\/]/,
|
|
2
|
+
return filePath.replace(/^.*[\\/]/, "");
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
export function extractExtension(filePath: string) {
|
|
6
|
-
const parts = extractFileName(filePath).split(
|
|
6
|
+
const parts = extractFileName(filePath).split(".");
|
|
7
7
|
|
|
8
8
|
if (parts.length > 2) {
|
|
9
|
-
return parts.slice(-2).join(
|
|
9
|
+
return parts.slice(-2).join(".");
|
|
10
10
|
} else if (parts.length === 2) {
|
|
11
|
-
return parts.slice(-1).join(
|
|
11
|
+
return parts.slice(-1).join(".");
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
return
|
|
14
|
+
return "";
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export function extractPaths(e: DragEvent, extensions?: string[]) {
|
|
@@ -19,7 +19,7 @@ export function extractPaths(e: DragEvent, extensions?: string[]) {
|
|
|
19
19
|
|
|
20
20
|
if (e.dataTransfer) {
|
|
21
21
|
for (let i = 0; i < e.dataTransfer.items.length; i++) {
|
|
22
|
-
if (e.dataTransfer.items[i].kind !==
|
|
22
|
+
if (e.dataTransfer.items[i].kind !== "file") {
|
|
23
23
|
continue;
|
|
24
24
|
}
|
|
25
25
|
const file = e.dataTransfer.items[i].getAsFile() as (File & { path: string }) | null; // @TODO check
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { MaskIconName16, Size } from
|
|
3
|
-
import { PlSvg } from
|
|
4
|
-
import { computed } from
|
|
2
|
+
import type { MaskIconName16, Size } from "../../types";
|
|
3
|
+
import { PlSvg } from "../PlSvg";
|
|
4
|
+
import { computed } from "vue";
|
|
5
5
|
|
|
6
6
|
const props = defineProps<{
|
|
7
7
|
name: MaskIconName16;
|
|
@@ -11,10 +11,10 @@ const props = defineProps<{
|
|
|
11
11
|
}>();
|
|
12
12
|
|
|
13
13
|
const size = computed(() => {
|
|
14
|
-
if (typeof props.size ===
|
|
15
|
-
if (props.size ===
|
|
16
|
-
if (props.size ===
|
|
17
|
-
if (props.size ===
|
|
14
|
+
if (typeof props.size === "string") {
|
|
15
|
+
if (props.size === "small") return 12;
|
|
16
|
+
if (props.size === "medium") return 16;
|
|
17
|
+
if (props.size === "large") return 24;
|
|
18
18
|
}
|
|
19
19
|
return props.size ?? 16;
|
|
20
20
|
});
|