@leaflink/stash 49.5.0 → 50.0.0
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/dist/Accordion.js +25 -28
- package/dist/Accordion.js.map +1 -1
- package/dist/Accordion.vue.d.ts +16 -16
- package/dist/ActionsDropdown.js +14 -26
- package/dist/ActionsDropdown.js.map +1 -1
- package/dist/ActionsDropdown.vue.d.ts +12 -12
- package/dist/AddressSelect.js +22 -47
- package/dist/AddressSelect.js.map +1 -1
- package/dist/AddressSelect.vue.d.ts +45 -45
- package/dist/Alert.js +4 -6
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.vue.d.ts +18 -18
- package/dist/AppNavigationItem.js +16 -19
- package/dist/AppNavigationItem.js.map +1 -1
- package/dist/AppNavigationItem.vue.d.ts +4 -4
- package/dist/AppSidebar.js +27 -28
- package/dist/AppSidebar.js.map +1 -1
- package/dist/AppSidebar.vue.d.ts +7 -7
- package/dist/AppTopbar.js +12 -17
- package/dist/AppTopbar.js.map +1 -1
- package/dist/AppTopbar.vue.d.ts +8 -8
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.vue.d.ts +22 -22
- package/dist/Backdrop.js +1 -1
- package/dist/Backdrop.vue.d.ts +1 -1
- package/dist/Badge.js +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Badge.vue.d.ts +36 -36
- package/dist/Box.js +2 -3
- package/dist/Box.js.map +1 -1
- package/dist/Box.vue.d.ts +12 -12
- package/dist/{Box.vue_vue_type_script_setup_true_lang-69e5176b.js → Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js} +1 -1
- package/dist/{Box.vue_vue_type_script_setup_true_lang-69e5176b.js.map → Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js.map} +1 -1
- package/dist/Button.js +40 -27
- package/dist/Button.js.map +1 -1
- package/dist/Button.vue.d.ts +34 -27
- package/dist/ButtonGroup.js +1 -1
- package/dist/ButtonGroup.vue.d.ts +14 -14
- package/dist/Card.vue.d.ts +3 -3
- package/dist/CardContent.js +1 -1
- package/dist/CardContent.vue.d.ts +1 -1
- package/dist/CardFooter.js +1 -1
- package/dist/CardFooter.vue.d.ts +1 -1
- package/dist/CardMedia.js +11 -14
- package/dist/CardMedia.js.map +1 -1
- package/dist/Carousel.js +179 -180
- package/dist/Carousel.js.map +1 -1
- package/dist/Carousel.vue.d.ts +33 -11
- package/dist/Checkbox.js +38 -35
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.vue.d.ts +31 -31
- package/dist/ChevronToggle.js +2 -10
- package/dist/ChevronToggle.js.map +1 -1
- package/dist/ChevronToggle.vue.d.ts +5 -5
- package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js → ChevronToggle.vue_vue_type_script_setup_true_lang-DuvluoTi.js} +1 -1
- package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js.map → ChevronToggle.vue_vue_type_script_setup_true_lang-DuvluoTi.js.map} +1 -1
- package/dist/Chip.js +17 -20
- package/dist/Chip.js.map +1 -1
- package/dist/Chip.vue.d.ts +32 -32
- package/dist/ConfirmationCodeInput.js +1 -1
- package/dist/ConfirmationCodeInput.js.map +1 -1
- package/dist/ConfirmationCodeInput.vue.d.ts +29 -29
- package/dist/ContextSwitcher.js +8 -14
- package/dist/ContextSwitcher.js.map +1 -1
- package/dist/ContextSwitcher.vue.d.ts +32 -32
- package/dist/Copy.js +23 -34
- package/dist/Copy.js.map +1 -1
- package/dist/Copy.vue.d.ts +9 -9
- package/dist/CurrencyInput.js +117 -128
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/CurrencyInput.vue.d.ts +26 -21
- package/dist/CustomRender.vue.d.ts +12 -1
- package/dist/DataView.js +70 -73
- package/dist/DataView.js.map +1 -1
- package/dist/{DataView.vue_used_vue_type_style_index_0_lang.module-5c180dba.js → DataView.keys-C7eaZg2G.js} +5 -8
- package/dist/DataView.keys-C7eaZg2G.js.map +1 -0
- package/dist/DataView.vue.d.ts +51 -51
- package/dist/DataViewFilters.js +76 -90
- package/dist/DataViewFilters.js.map +1 -1
- package/dist/{DataViewFilters.keys-c80ffabe.js → DataViewFilters.keys-BLu07FiP.js} +1 -1
- package/dist/{DataViewFilters.keys-c80ffabe.js.map → DataViewFilters.keys-BLu07FiP.js.map} +1 -1
- package/dist/DataViewFilters.vue.d.ts +39 -39
- package/dist/DataViewSortButton.js +30 -43
- package/dist/DataViewSortButton.js.map +1 -1
- package/dist/DataViewSortButton.vue.d.ts +3 -3
- package/dist/DataViewToolbar.js +27 -36
- package/dist/DataViewToolbar.js.map +1 -1
- package/dist/DataViewToolbar.vue.d.ts +17 -17
- package/dist/DatePicker.js +649 -662
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePicker.vue.d.ts +73 -73
- package/dist/DescriptionList.js +1 -1
- package/dist/{DescriptionList.keys-c906ce05.js → DescriptionList.keys-BHlHYV6b.js} +1 -1
- package/dist/{DescriptionList.keys-c906ce05.js.map → DescriptionList.keys-BHlHYV6b.js.map} +1 -1
- package/dist/DescriptionList.vue.d.ts +6 -6
- package/dist/DescriptionListDetail.js +1 -1
- package/dist/DescriptionListDetail.vue.d.ts +1 -1
- package/dist/DescriptionListGroup.js +1 -1
- package/dist/DescriptionListGroup.vue.d.ts +1 -1
- package/dist/DescriptionListTerm.js +1 -1
- package/dist/DescriptionListTerm.vue.d.ts +1 -1
- package/dist/Dialog.js +26 -30
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.vue.d.ts +34 -34
- package/dist/Divider.js +1 -1
- package/dist/Divider.js.map +1 -1
- package/dist/Divider.vue.d.ts +1 -1
- package/dist/Dropdown.js +21 -28
- package/dist/Dropdown.js.map +1 -1
- package/dist/Dropdown.vue.d.ts +28 -28
- package/dist/EmptyState.js +32 -33
- package/dist/EmptyState.js.map +1 -1
- package/dist/EmptyState.vue.d.ts +36 -36
- package/dist/Expand.js +2 -3
- package/dist/Expand.js.map +1 -1
- package/dist/Expand.vue.d.ts +14 -14
- package/dist/{Expand.vue_vue_type_script_setup_true_lang-0f236267.js → Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js} +1 -1
- package/dist/{Expand.vue_vue_type_script_setup_true_lang-0f236267.js.map → Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js.map} +1 -1
- package/dist/Field.js +2 -7
- package/dist/Field.js.map +1 -1
- package/dist/Field.vue.d.ts +30 -30
- package/dist/{Field.vue_vue_type_script_setup_true_lang-fded4f75.js → Field.vue_vue_type_script_setup_true_lang-DjxUvSRF.js} +2 -2
- package/dist/{Field.vue_vue_type_script_setup_true_lang-fded4f75.js.map → Field.vue_vue_type_script_setup_true_lang-DjxUvSRF.js.map} +1 -1
- package/dist/FileUpload.js +58 -57
- package/dist/FileUpload.js.map +1 -1
- package/dist/FileUpload.vue.d.ts +28 -28
- package/dist/FilterChip.js +12 -17
- package/dist/FilterChip.js.map +1 -1
- package/dist/FilterChip.vue.d.ts +19 -19
- package/dist/FilterDrawerItem.js +24 -30
- package/dist/FilterDrawerItem.js.map +1 -1
- package/dist/FilterDrawerItem.vue.d.ts +2 -2
- package/dist/FilterDropdown.js +41 -57
- package/dist/FilterDropdown.js.map +1 -1
- package/dist/FilterDropdown.vue.d.ts +9 -9
- package/dist/FilterSelect.js +36 -45
- package/dist/FilterSelect.js.map +1 -1
- package/dist/FilterSelect.vue.d.ts +5 -5
- package/dist/Filters.js +60 -96
- package/dist/Filters.js.map +1 -1
- package/dist/Filters.vue.d.ts +2005 -2294
- package/dist/HttpError.js +16 -23
- package/dist/HttpError.js.map +1 -1
- package/dist/HttpError.vue.d.ts +18 -18
- package/dist/Icon.js +27 -22
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.vue.d.ts +13 -13
- package/dist/IconLabel.js +9 -12
- package/dist/IconLabel.js.map +1 -1
- package/dist/IconLabel.vue.d.ts +17 -17
- package/dist/Illustration.js +8 -11
- package/dist/Illustration.js.map +1 -1
- package/dist/Illustration.vue.d.ts +21 -21
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js → Illustration.vue_vue_type_script_setup_true_lang-C3qG3Ty6.js} +2 -2
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js.map → Illustration.vue_vue_type_script_setup_true_lang-C3qG3Ty6.js.map} +1 -1
- package/dist/Image.js.map +1 -1
- package/dist/Image.vue.d.ts +18 -18
- package/dist/InlineEdit.js +19 -30
- package/dist/InlineEdit.js.map +1 -1
- package/dist/InlineEdit.vue.d.ts +26 -26
- package/dist/Input.js +58 -64
- package/dist/Input.js.map +1 -1
- package/dist/Input.vue.d.ts +44 -36
- package/dist/InputOptions.js +66 -93
- package/dist/InputOptions.js.map +1 -1
- package/dist/InputOptions.vue.d.ts +66 -58
- package/dist/IntegrationIcon.js +2 -2
- package/dist/IntegrationIcon.js.map +1 -1
- package/dist/IntegrationIcon.vue.d.ts +12 -12
- package/dist/Label.js +2 -5
- package/dist/Label.js.map +1 -1
- package/dist/Label.vue.d.ts +17 -17
- package/dist/{Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js → Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js} +1 -1
- package/dist/{Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js.map → Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js.map} +1 -1
- package/dist/LicenseChip.js +10 -16
- package/dist/LicenseChip.js.map +1 -1
- package/dist/LicenseChip.vue.d.ts +3 -3
- package/dist/ListItem.js +5 -8
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItem.vue.d.ts +275 -225
- package/dist/ListItemCell.js +1 -1
- package/dist/ListItemCell.js.map +1 -1
- package/dist/ListItemCell.vue.d.ts +13 -2
- package/dist/ListView.js +57 -101
- package/dist/ListView.js.map +1 -1
- package/dist/ListView.vue.d.ts +5185 -5430
- package/dist/Loading.js +12 -10
- package/dist/Loading.js.map +1 -1
- package/dist/Loading.vue.d.ts +1 -1
- package/dist/Logo.js +2 -4
- package/dist/Logo.js.map +1 -1
- package/dist/Logo.vue.d.ts +17 -17
- package/dist/{Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js → Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js} +1 -1
- package/dist/{Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js.map → Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/Menu.vue.d.ts +1 -1
- package/dist/MenuItem.js +1 -1
- package/dist/MenuItem.vue.d.ts +1 -1
- package/dist/{MenusPlugin-9288029a.js → MenusPlugin-Bk6UW6o9.js} +1 -1
- package/dist/{MenusPlugin-9288029a.js.map → MenusPlugin-Bk6UW6o9.js.map} +1 -1
- package/dist/Metric.vue.d.ts +10 -10
- package/dist/Modal.js +27 -32
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.vue.d.ts +42 -42
- package/dist/Modals.js +14 -16
- package/dist/Modals.js.map +1 -1
- package/dist/Modals.vue.d.ts +1 -1
- package/dist/ModalsPlugin.js +9 -12
- package/dist/ModalsPlugin.js.map +1 -1
- package/dist/Module.js +3 -3
- package/dist/{Module.keys-2cc7d830.js → Module.keys-CEsrW2f0.js} +1 -1
- package/dist/{Module.keys-2cc7d830.js.map → Module.keys-CEsrW2f0.js.map} +1 -1
- package/dist/{Module.types-3f78f2a0.js → Module.types-B1FfGGac.js} +1 -1
- package/dist/{Module.types-3f78f2a0.js.map → Module.types-B1FfGGac.js.map} +1 -1
- package/dist/Module.vue.d.ts +3 -3
- package/dist/ModuleContent.js +2 -2
- package/dist/ModuleContent.vue.d.ts +1 -1
- package/dist/ModuleFooter.js +2 -2
- package/dist/ModuleFooter.vue.d.ts +1 -1
- package/dist/ModuleHeader.js +3 -3
- package/dist/ModuleHeader.vue.d.ts +15 -15
- package/dist/ObfuscateText.js +8 -13
- package/dist/ObfuscateText.js.map +1 -1
- package/dist/ObfuscateText.vue.d.ts +18 -18
- package/dist/PageContent.js +1 -1
- package/dist/PageContent.vue.d.ts +1 -1
- package/dist/PageHeader.js +26 -23
- package/dist/PageHeader.js.map +1 -1
- package/dist/PageHeader.vue.d.ts +7 -4
- package/dist/PageNavigation.js +41 -64
- package/dist/PageNavigation.js.map +1 -1
- package/dist/PageNavigation.vue.d.ts +10 -10
- package/dist/Paginate.js +36 -34
- package/dist/Paginate.js.map +1 -1
- package/dist/Paginate.vue.d.ts +11 -11
- package/dist/PlaidLink.js +3 -5
- package/dist/PlaidLink.js.map +1 -1
- package/dist/PlaidLink.vue.d.ts +29 -29
- package/dist/QuickAction.js +12 -15
- package/dist/QuickAction.js.map +1 -1
- package/dist/QuickAction.vue.d.ts +1 -1
- package/dist/Radio.js +1 -1
- package/dist/Radio.js.map +1 -1
- package/dist/Radio.vue.d.ts +83 -12
- package/dist/RadioGroup.js +41 -45
- package/dist/RadioGroup.js.map +1 -1
- package/dist/{RadioGroup.keys-974818d6.js → RadioGroup.keys-CqfiKkNz.js} +1 -1
- package/dist/{RadioGroup.keys-974818d6.js.map → RadioGroup.keys-CqfiKkNz.js.map} +1 -1
- package/dist/RadioGroup.vue.d.ts +30 -30
- package/dist/RadioNew.js +2 -2
- package/dist/RadioNew.js.map +1 -1
- package/dist/RadioNew.vue.d.ts +26 -26
- package/dist/RangeInput.js +10 -14
- package/dist/RangeInput.js.map +1 -1
- package/dist/RangeInput.vue.d.ts +1 -1
- package/dist/SearchBar.js +31 -41
- package/dist/SearchBar.js.map +1 -1
- package/dist/SearchBar.vue.d.ts +22 -22
- package/dist/Select.js +66 -78
- package/dist/Select.js.map +1 -1
- package/dist/Select.vue.d.ts +123 -123
- package/dist/SelectStatus.js +47 -69
- package/dist/SelectStatus.js.map +1 -1
- package/dist/SelectStatus.vue.d.ts +33 -26
- package/dist/Skeleton.js +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Skeleton.vue.d.ts +9 -9
- package/dist/Step.js +10 -14
- package/dist/Step.js.map +1 -1
- package/dist/Step.vue.d.ts +21 -21
- package/dist/Stepper.js +37 -40
- package/dist/Stepper.js.map +1 -1
- package/dist/Stepper.vue.d.ts +34 -29
- package/dist/Switch.js +1 -1
- package/dist/Switch.vue.d.ts +23 -23
- package/dist/Tab.js +21 -36
- package/dist/Tab.js.map +1 -1
- package/dist/Table.js +38 -55
- package/dist/Table.js.map +1 -1
- package/dist/Table.keys-LHQf6FEH.js +7 -0
- package/dist/{Table.keys-83e4f09b.js.map → Table.keys-LHQf6FEH.js.map} +1 -1
- package/dist/Table.vue.d.ts +36 -36
- package/dist/TableCell.js +26 -26
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCell.vue.d.ts +6 -6
- package/dist/TableHeaderCell.js +6 -13
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCell.vue.d.ts +3 -3
- package/dist/TableHeaderRow.js +22 -32
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRow.vue.d.ts +8 -8
- package/dist/TableRow.js +59 -59
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRow.vue.d.ts +26 -26
- package/dist/Tabs.js +10 -24
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.vue.d.ts +5 -5
- package/dist/{Tabs.vue_used_vue_type_style_index_0_lang.module-d7530989.js → Tabs.vue_vue_type_script_setup_true_lang-l41hWkV4.js} +31 -34
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-l41hWkV4.js.map +1 -0
- package/dist/TextEditor.js +1269 -1364
- package/dist/TextEditor.js.map +1 -1
- package/dist/TextEditor.vue.d.ts +46 -46
- package/dist/Textarea.js +30 -31
- package/dist/Textarea.js.map +1 -1
- package/dist/Textarea.vue.d.ts +34 -26
- package/dist/Timeline.js +9 -10
- package/dist/Timeline.js.map +1 -1
- package/dist/Timeline.vue.d.ts +6 -6
- package/dist/TimelineItem.js +1 -1
- package/dist/TimelineItem.vue.d.ts +1 -1
- package/dist/Toast.js +5 -9
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.vue.d.ts +3 -3
- package/dist/Toasts.js +15 -25
- package/dist/Toasts.js.map +1 -1
- package/dist/Toasts.vue.d.ts +1 -1
- package/dist/ToastsPlugin.js +11 -23
- package/dist/ToastsPlugin.js.map +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.vue.d.ts +15 -15
- package/dist/{_commonjsHelpers-10dfc225.js → _commonjsHelpers-DaMA6jEr.js} +1 -1
- package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
- package/dist/{_plugin-vue_export-helper-dad06003.js → _plugin-vue_export-helper-CHgC5LLL.js} +1 -1
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js.map +1 -0
- package/dist/{colors-8d9b9429.js → colors-DDDVvqfQ.js} +1 -1
- package/dist/{colors-8d9b9429.js.map → colors-DDDVvqfQ.js.map} +1 -1
- package/dist/components.css +2 -2
- package/dist/directives/observe.js.map +1 -1
- package/dist/directives/sticky.js.map +1 -1
- package/dist/directives/tooltip.js +21 -27
- package/dist/directives/tooltip.js.map +1 -1
- package/dist/directives/viewable.js +1 -1
- package/dist/directives/viewable.js.map +1 -1
- package/dist/{floating-ui.vue-8d7f7932.js → floating-ui.vue-BmfQDqE-.js} +2 -3
- package/dist/{floating-ui.vue-8d7f7932.js.map → floating-ui.vue-BmfQDqE-.js.map} +1 -1
- package/dist/{formatDateTime-a5e70901.js → formatDateTime-C8CYECpd.js} +8 -12
- package/dist/{formatDateTime-a5e70901.js.map → formatDateTime-C8CYECpd.js.map} +1 -1
- package/dist/{index-9e1095ef.js → index-D6bxWkZ1.js} +2 -3
- package/dist/{index-9e1095ef.js.map → index-D6bxWkZ1.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +90 -112
- package/dist/index.js.map +1 -1
- package/dist/{isDefined-2ce6cde4.js → isDefined-DzVx0B6k.js} +1 -1
- package/dist/{isDefined-2ce6cde4.js.map → isDefined-DzVx0B6k.js.map} +1 -1
- package/dist/{isValid-4b2b7a54.js → isValid-DN-HkCoi.js} +1 -1
- package/dist/{isValid-4b2b7a54.js.map → isValid-DN-HkCoi.js.map} +1 -1
- package/dist/{keys-241d03b7.js → keys-BEdEsanp.js} +1 -1
- package/dist/{keys-241d03b7.js.map → keys-BEdEsanp.js.map} +1 -1
- package/dist/{keys-7ecef029.js → keys-C8Zfr_By.js} +1 -1
- package/dist/{keys-7ecef029.js.map → keys-C8Zfr_By.js.map} +1 -1
- package/dist/{misc-76697f61.js → misc-CHQs-G03.js} +1 -1
- package/dist/{misc-76697f61.js.map → misc-CHQs-G03.js.map} +1 -1
- package/dist/{parseISO-ed4094c1.js → parseISO-wlfIB_QJ.js} +12 -18
- package/dist/{parseISO-ed4094c1.js.map → parseISO-wlfIB_QJ.js.map} +1 -1
- package/dist/{searchFuzzy-9b74ec4e.js → searchFuzzy-DKooyZM8.js} +110 -149
- package/dist/{searchFuzzy-9b74ec4e.js.map → searchFuzzy-DKooyZM8.js.map} +1 -1
- package/dist/{statusLevels-a8b041f4.js → statusLevels-D8EgtE_L.js} +1 -1
- package/dist/{statusLevels-a8b041f4.js.map → statusLevels-D8EgtE_L.js.map} +1 -1
- package/dist/storage.js +8 -15
- package/dist/storage.js.map +1 -1
- package/dist/tailwind-base.js.map +1 -1
- package/dist/{toTimeZone-a2ed6470.js → toTimeZone-CVE1ZmsS.js} +1 -1
- package/dist/{toTimeZone-a2ed6470.js.map → toTimeZone-CVE1ZmsS.js.map} +1 -1
- package/dist/useDialog.js +7 -7
- package/dist/useGoogleMaps.js +18 -28
- package/dist/useGoogleMaps.js.map +1 -1
- package/dist/useModals.js +1 -2
- package/dist/useModals.js.map +1 -1
- package/dist/useScriptTag.js.map +1 -1
- package/dist/useSearch.js +14 -19
- package/dist/useSearch.js.map +1 -1
- package/dist/useStepper.js.map +1 -1
- package/dist/useValidation.js +1 -1
- package/dist/useValidation.js.map +1 -1
- package/dist/utils/calculateElementOverflow.js +9 -13
- package/dist/utils/calculateElementOverflow.js.map +1 -1
- package/dist/utils/colorScheme.js.map +1 -1
- package/dist/utils/createQueryString.js +4 -5
- package/dist/utils/createQueryString.js.map +1 -1
- package/dist/utils/createValidDate.js +2 -2
- package/dist/utils/formatDateTime.js +4 -5
- package/dist/utils/formatDateTime.js.map +1 -1
- package/dist/utils/getContrastingTextColor.js +1 -1
- package/dist/utils/getContrastingTextColor.js.map +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/i18n.js +25 -26
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/normalizeDate.js +1 -1
- package/dist/utils/searchFuzzy.js +3 -10
- package/dist/utils/searchFuzzy.js.map +1 -1
- package/dist/utils/storage.js +6 -11
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/toTimeZone.js +2 -3
- package/dist/utils/toTimeZone.js.map +1 -1
- package/package.json +13 -14
- package/dist/Button.vue_used_vue_type_style_index_0_lang.module-4dabc2a9.js +0 -17
- package/dist/Button.vue_used_vue_type_style_index_0_lang.module-4dabc2a9.js.map +0 -1
- package/dist/Carousel.types.d.ts +0 -33
- package/dist/Carousel.types.js +0 -2
- package/dist/Carousel.types.js.map +0 -1
- package/dist/Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js +0 -9
- package/dist/Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js.map +0 -1
- package/dist/DataView.vue_used_vue_type_style_index_0_lang.module-5c180dba.js.map +0 -1
- package/dist/EmptyState.vue_used_vue_type_style_index_0_lang.module-f5d89366.js +0 -8
- package/dist/EmptyState.vue_used_vue_type_style_index_0_lang.module-f5d89366.js.map +0 -1
- package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js +0 -11
- package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js.map +0 -1
- package/dist/Loading.vue_used_vue_type_style_index_0_lang.module-ef5a3bc6.js +0 -8
- package/dist/Loading.vue_used_vue_type_style_index_0_lang.module-ef5a3bc6.js.map +0 -1
- package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js +0 -11
- package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js.map +0 -1
- package/dist/Table.keys-83e4f09b.js +0 -27
- package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-d7530989.js.map +0 -1
- package/dist/_commonjsHelpers-10dfc225.js.map +0 -1
- package/dist/_plugin-vue_export-helper-dad06003.js.map +0 -1
package/dist/DataView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataView.js","sources":["../src/components/DataView/DataView.utils.ts","../src/components/DataView/DataView.types.ts","../src/components/DataView/DataView.vue"],"sourcesContent":["import { SortId, SortOrder, SortValue, SortValueDeserialized } from './DataView.types';\n\n/**\n * Receives a SortValue (ex: `'-product_name'`) and returns an object with a `id` and an `order`.\n */\nexport function deserializeSortValue(sort: SortValue): SortValueDeserialized {\n const order = sort[0] === '-' ? 'desc' : 'asc';\n const id = order === 'asc' ? sort : sort.slice(1);\n\n return { id, order };\n}\n\n/**\n * Receives an object with a `id` and an `order` and returns a SortValue (ex: `'-product_name'`).\n */\nexport function serializeSortValue({ id, order }: SortValueDeserialized): SortValue {\n return `${order === 'desc' ? '-' : ''}${id}`;\n}\n\ninterface GetNextSortArgs {\n newId: SortId | undefined;\n newOrder?: SortOrder;\n oldId?: SortId;\n oldOrder?: SortOrder;\n}\n\n/**\n * Given new and old sorting data, it returns the next sorting value using the following sorting cycle:\n *\n * \"unsorted --> ascending --> descending --> unsorted\"\n */\nexport function getNextSort({ newId, newOrder, oldId, oldOrder }: GetNextSortArgs): SortValue | undefined {\n if (!newId) {\n return undefined;\n }\n\n if (newId !== oldId) {\n // if sorting by a new field, sort ascending\n return serializeSortValue({ id: newId, order: newOrder || 'asc' });\n }\n\n /**\n * `newOrder` and `oldOrder` can each have 3 different values: undefined, 'asc', or 'desc'.\n * Therefore, there are 9 possible combinations (3 times 3). See below:\n */\n\n // #region newOrder: undefined\n if (!newOrder && !oldOrder) {\n return newId; // ascending\n }\n\n if (!newOrder && oldOrder === 'desc') {\n return undefined; // unsorted\n }\n\n if (!newOrder && oldOrder === 'asc') {\n return `-${newId}`; // descending\n }\n // #endregion\n\n // #region newOrder: asc\n if (newOrder === 'asc' && !oldOrder) {\n return newId;\n }\n\n if (newOrder === 'asc' && oldOrder === 'asc') {\n return undefined;\n }\n\n if (newOrder === 'asc' && oldOrder === 'desc') {\n return newId;\n }\n // #endregion\n\n // #region newOrder: desc\n if (newOrder === 'desc' && !oldOrder) {\n return `-${newId}`;\n }\n\n if (newOrder === 'desc' && oldOrder === 'desc') {\n return undefined;\n }\n\n if (newOrder === 'desc' && oldOrder === 'asc') {\n return `-${newId}`;\n }\n // #endregion\n}\n","import { ComputedRef, Ref } from 'vue';\n\nimport { SpacingDensities } from '../../../types/misc';\n\nexport enum DataViewVariant {\n Table = 'table',\n}\n\nexport type DataViewVariants = `${DataViewVariant}`;\n\n/**\n * A unique id for a sorting strategy. If the order is descending, it must begin with \"-\" (a hyphen/dash).\n *\n * Ex: `'product_name'` if ascending or `'-product_name'` if descending\n */\nexport type SortValue = string;\n\n/**\n * The SortValue with its leading hyphen/dash removed\n */\nexport type SortId = string;\n\n/**\n * Determined by whether or not there is a leading hyphen/dash in the SortValue\n */\nexport type SortOrder = 'asc' | 'desc';\n\n/**\n * A deserialized instance of a `SortValue`.\n */\nexport type SortValueDeserialized = {\n id: SortId;\n order: SortOrder;\n};\n\n/** Updates the DataView internal state with the given sortId */\nexport type UpdateCurrentSort = (\n sortId: SortId | undefined,\n options?: {\n sortOrder?: SortOrder;\n /** If true, emits the `update:currentSort` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\n/** Updates the DataView internal state with the given page */\nexport type SetPage = (\n page: number,\n options?: {\n /** If true, emits the `update:currentPage` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\n/** Updates the DataView internal state with the previous page */\nexport type GoPrevPage = (options?: {\n /** If true, emits the `update:currentPage` and `update` events from DataView */\n shouldEmit?: boolean;\n}) => void;\n\n/** Updates the DataView internal state with the next page */\nexport type GoNextPage = (options?: {\n /** If true, emits the `update:currentPage` and `update` events from DataView */\n shouldEmit?: boolean;\n}) => void;\n\n/** Updates the DataView internal state with the given searchTerm */\nexport type UpdateCurrentSearch = (\n searchTerm?: string,\n options?: {\n /** If true, emits the `update:currentSearch` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\n/** Updates the DataView internal state with the given filter values */\nexport type UpdateCurrentFilters<FilterValues = object> = (\n newFilters: FilterValues,\n options?: {\n /** If true, emits the `update:currentSearch` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\nexport interface UpdateEvent<FilterValues = object> {\n page?: number;\n pageSize?: number;\n ordering?: string;\n search?: string;\n filters?: FilterValues;\n}\n\nexport interface DataViewInjection {\n currentPage: ComputedRef<number>;\n\n isPaginationEnabled: ComputedRef<boolean>;\n\n pageCount: ComputedRef<number>;\n\n pageSize: ComputedRef<number>;\n\n totalDataCount: ComputedRef<number>;\n\n /** Updates the DataView internal state with the given page */\n setPage: SetPage;\n\n /** Updates the DataView internal state with the previous page */\n goPrevPage: GoPrevPage;\n\n /** Updates the DataView internal state with the next page */\n goNextPage: GoNextPage;\n\n currentSortId: ComputedRef<SortId | undefined>;\n\n currentSortOrder: ComputedRef<SortOrder | undefined>;\n\n /** Updates the DataView internal state with the given sortId */\n updateCurrentSort: UpdateCurrentSort;\n\n currentSearch: ComputedRef<string>;\n\n /** Updates the DataView internal state with the given searchTerm */\n updateCurrentSearch: UpdateCurrentSearch;\n\n /**\n * The DataView's padding; the default value is \"comfortable\". On small screens, the density will always be \"compact\".\n */\n density: ComputedRef<SpacingDensities | undefined>;\n\n /**\n * Defines if a DataView has a Toolbar rendered. This prop is updated when DataViewToolbar exists and is mounted.\n */\n hasToolbar?: Ref<boolean>;\n\n /**\n * Enables certain loading indicators to be displayed within the DataView.\n */\n isLoading?: ComputedRef<boolean>;\n\n /**\n * Enables certain empty states to be displayed within the DataView.\n */\n isEmpty?: ComputedRef<boolean>;\n\n /**\n * Allows Table to control whether or not a DataViewToolbar should show a checkmark\n */\n isSelectable?: Ref<boolean>;\n\n /**\n * Whether or not the DataView is rendered within a Module; the value is inferred based on being\n * able to inject details from Module.\n *\n * Note: This is sent to DataView child components so they only need to worry about interfacing\n * with the DataViewInjection API.\n */\n isWithinModule: ComputedRef<boolean>;\n\n /**\n * The DataView's variant; the default value is undefined.\n */\n variant: ComputedRef<DataViewVariants | undefined>;\n}\n","<script lang=\"ts\">\n export * from './DataView.constants';\n export * from './DataView.keys';\n export * from './DataView.types';\n export * from './DataView.utils';\n</script>\n\n<script setup lang=\"ts\">\n import cloneDeep from 'lodash-es/cloneDeep';\n import { computed, inject, provide, ref, useCssModule, watch } from 'vue';\n\n import { SpacingDensities } from '../../../types/misc';\n import { MODULE_INJECTION } from '../Module/Module.keys';\n import Paginate from '../Paginate/Paginate.vue';\n import { DEFAULT_PAGE_SIZE } from './DataView.constants';\n import { DATA_VIEW_INJECTION } from './DataView.keys';\n import {\n DataViewVariants,\n GoNextPage,\n GoPrevPage,\n SetPage,\n SortId,\n SortOrder,\n SortValue,\n UpdateCurrentFilters,\n UpdateCurrentSearch,\n UpdateCurrentSort,\n UpdateEvent,\n } from './DataView.types';\n import { deserializeSortValue, getNextSort } from './DataView.utils';\n\n export interface DataViewProps {\n /**\n * Can be used to provide the initial page.\n * Also, it can be used to control the active page with `v-model:current-page=\"myPage\"`.\n */\n currentPage?: number;\n\n /**\n * Can be used to set the initial search term.\n * Also, it can be used to control the active search term with `v-model:current-search=\"mySearchTerm\"`.\n */\n currentSearch?: string;\n\n /**\n * Can be used to provide the initial sort order.\n * Also, it can be used to control the active sort order with `v-model:current-sort=\"mySortOrder\"`.\n */\n currentSort?: SortValue;\n\n /**\n * A list of records. If pagination is enabled, `data` must be only the current page of records.\n */\n data?: object[];\n\n /**\n * Controls the DataView's padding; the default value is \"comfortable\". On small screens, \"compact\" density is applied regardless of this prop's value.\n */\n density?: SpacingDensities;\n\n pageSize?: number;\n\n /**\n * Opt-out of displaying pagination. Hides the pagination buttons and page stats.\n */\n disablePagination?: boolean;\n\n /**\n * Hides the bottom pagination without disabling the pagination from the toolbar\n */\n hideBottomPagination?: boolean;\n\n /**\n * The total number of records available.\n * Used to auto-enable pagination when results exist.\n * DataView does not paginate data for you; instead, `props.data` should always show\n * the current page of results.\n */\n totalDataCount?: number;\n\n /**\n * DataView variant. The default value is `undefined`. Will default to `table` when used within\n * a `<Module variant=\"table\">`.\n */\n variant?: DataViewVariants;\n\n isLoading?: boolean;\n }\n\n const props = withDefaults(defineProps<DataViewProps>(), {\n currentPage: 1,\n currentSearch: undefined,\n currentSort: undefined,\n data: () => [],\n density: 'comfortable',\n pageSize: DEFAULT_PAGE_SIZE,\n disablePagination: false,\n totalDataCount: 0,\n hideBottomPagination: false,\n variant: undefined,\n });\n\n const emit = defineEmits<{\n (e: 'update', state: UpdateEvent): void;\n (e: 'update:currentFilters', newFilters: object): void;\n (e: 'update:currentPage', page: number, pageSize: number): void;\n (e: 'update:currentSearch', searchTerm?: string): void;\n (e: 'update:currentSort', payload?: SortValue): void;\n }>();\n\n const classes = useCssModule();\n const rootRef = ref<HTMLElement | null>(null);\n const moduleInjection = inject(MODULE_INJECTION.key, MODULE_INJECTION.defaults);\n const computedVariant = computed<DataViewVariants | undefined>(() => {\n if (props.variant) {\n return props.variant;\n }\n\n if (moduleInjection.variant?.value === 'table') {\n return 'table';\n }\n\n return undefined;\n });\n const isWithinModule = computed(() => moduleInjection.variant !== undefined);\n\n // #region pagination\n const internalPage = ref(1);\n const isPaginationEnabled = computed(() => !props.disablePagination && props.totalDataCount > 0);\n const pageCount = computed(() => Math.ceil(props.totalDataCount / props.pageSize));\n\n const setPage: SetPage = function (page: number, { shouldEmit } = {}) {\n internalPage.value = page;\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentPage', page, props.pageSize);\n }\n\n if (Number(rootRef.value?.getBoundingClientRect().top) < 0) {\n rootRef.value?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n };\n\n const goPrevPage: GoPrevPage = function ({ shouldEmit } = {}) {\n const page = Math.max(internalPage.value - 1, 1);\n\n setPage(page, { shouldEmit });\n };\n\n /** Updates the DataView internal state with the previous page */\n const goNextPage: GoNextPage = function ({ shouldEmit } = {}) {\n const page = Math.min(internalPage.value + 1, pageCount.value);\n\n setPage(page, { shouldEmit });\n };\n\n watch(\n () => props.currentPage,\n () => {\n setPage(props.currentPage);\n },\n { immediate: true },\n );\n // #endregion pagination\n\n // #region sorting\n const internalSort = ref<SortValue | undefined>(undefined);\n\n const internalSortId = computed<SortId | undefined>(() =>\n internalSort.value ? deserializeSortValue(internalSort.value).id : undefined,\n );\n const internalSortOrder = computed<SortOrder | undefined>(() =>\n internalSort.value ? deserializeSortValue(internalSort.value).order : undefined,\n );\n\n const updateCurrentSort: UpdateCurrentSort = function (sortId, { sortOrder, shouldEmit } = {}) {\n const { id: oldId, order: oldOrder } = deserializeSortValue(internalSort.value || '');\n const nextSort = getNextSort({ newId: sortId, newOrder: sortOrder, oldId, oldOrder });\n\n internalSort.value = nextSort;\n setPage(1);\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentSort', nextSort);\n }\n };\n\n watch(\n () => props.currentSort,\n () => {\n updateCurrentSort(props.currentSort);\n },\n { immediate: true },\n );\n // #endregion sorting\n\n // #region search\n const internalSearch = ref('');\n\n const hasToolbar = ref(false);\n const isSelectable = ref(false);\n\n const updateCurrentSearch: UpdateCurrentSearch = function (searchTerm, { shouldEmit } = {}) {\n internalSearch.value = searchTerm || '';\n setPage(1);\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentSearch', searchTerm);\n }\n };\n\n watch(\n () => props.currentSearch,\n () => {\n updateCurrentSearch(props.currentSearch);\n },\n { immediate: true },\n );\n // #endregion search\n\n // #region filters\n const internalFilters = ref<object>({});\n\n const updateCurrentFilters: UpdateCurrentFilters = function (newFilters: object, { shouldEmit } = {}) {\n internalFilters.value = newFilters;\n setPage(1);\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentFilters', newFilters);\n }\n };\n // #endregion filters\n\n function emitUpdate() {\n emit('update', {\n page: internalPage.value,\n pageSize: props.pageSize,\n ordering: internalSort.value,\n search: internalSearch.value,\n filters: cloneDeep(internalFilters.value),\n });\n }\n\n provide(\n DATA_VIEW_INJECTION.key,\n Object.freeze({\n // Pagination\n currentPage: computed(() => internalPage.value),\n isPaginationEnabled,\n pageCount,\n pageSize: computed(() => props.pageSize),\n totalDataCount: computed(() => props.totalDataCount),\n setPage,\n goPrevPage,\n goNextPage,\n\n // Sorting\n currentSortId: internalSortId,\n currentSortOrder: internalSortOrder,\n updateCurrentSort,\n\n // Search\n currentSearch: computed(() => internalSearch.value),\n updateCurrentSearch,\n\n // Miscellaneous\n density: computed(() => props.density),\n hasToolbar,\n isEmpty: computed(() => props.data.length === 0),\n isSelectable,\n isLoading: computed(() => props.isLoading),\n isWithinModule,\n variant: computedVariant,\n }),\n );\n\n defineExpose({\n page: computed(() => internalPage.value),\n pageSize: computed(() => props.pageSize),\n setPage,\n goPrevPage,\n goNextPage,\n ordering: computed(() => internalSort.value),\n updateCurrentSort,\n search: computed(() => internalSearch.value),\n updateCurrentSearch,\n filters: computed(() => internalFilters.value),\n updateCurrentFilters,\n });\n</script>\n\n<template>\n <div ref=\"rootRef\" class=\"stash-data-view tw-relative\" data-test=\"stash-data-view\">\n <!-- @slot default -->\n <slot\n :current-page=\"internalPage\"\n :current-sort-id=\"internalSortId\"\n :current-sort-order=\"internalSortOrder\"\n :data=\"data\"\n :go-prev-page=\"goPrevPage\"\n :go-next-page=\"goNextPage\"\n :page-count=\"pageCount\"\n :set-page=\"setPage\"\n :total-data-count=\"props.totalDataCount\"\n :update-current-sort=\"updateCurrentSort\"\n :update-current-search=\"updateCurrentSearch\"\n ></slot>\n\n <Paginate\n v-if=\"isPaginationEnabled && !isWithinModule && pageCount > 1 && !props.hideBottomPagination\"\n class=\"tw-mt-6\"\n :class=\"classes.paginate\"\n :current-page=\"internalPage\"\n :list-length=\"props.totalDataCount\"\n :page-size=\"props.pageSize\"\n @set-page=\"(page: number) => setPage(page, { shouldEmit: true })\"\n />\n </div>\n</template>\n\n<style module>\n .paginate ul {\n margin: 0;\n }\n</style>\n"],"names":["deserializeSortValue","sort","order","serializeSortValue","id","getNextSort","newId","newOrder","oldId","oldOrder","DataViewVariant","props","__props","emit","__emit","classes","useCssModule","rootRef","ref","moduleInjection","inject","MODULE_INJECTION","computedVariant","computed","_a","isWithinModule","internalPage","isPaginationEnabled","pageCount","setPage","page","shouldEmit","emitUpdate","_b","goPrevPage","goNextPage","watch","internalSort","internalSortId","internalSortOrder","updateCurrentSort","sortId","sortOrder","nextSort","internalSearch","hasToolbar","isSelectable","updateCurrentSearch","searchTerm","internalFilters","updateCurrentFilters","newFilters","cloneDeep","provide","DATA_VIEW_INJECTION","__expose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataView.js","sources":["../src/components/DataView/DataView.utils.ts","../src/components/DataView/DataView.types.ts","../src/components/DataView/DataView.vue"],"sourcesContent":["import { SortId, SortOrder, SortValue, SortValueDeserialized } from './DataView.types';\n\n/**\n * Receives a SortValue (ex: `'-product_name'`) and returns an object with a `id` and an `order`.\n */\nexport function deserializeSortValue(sort: SortValue): SortValueDeserialized {\n const order = sort[0] === '-' ? 'desc' : 'asc';\n const id = order === 'asc' ? sort : sort.slice(1);\n\n return { id, order };\n}\n\n/**\n * Receives an object with a `id` and an `order` and returns a SortValue (ex: `'-product_name'`).\n */\nexport function serializeSortValue({ id, order }: SortValueDeserialized): SortValue {\n return `${order === 'desc' ? '-' : ''}${id}`;\n}\n\ninterface GetNextSortArgs {\n newId: SortId | undefined;\n newOrder?: SortOrder;\n oldId?: SortId;\n oldOrder?: SortOrder;\n}\n\n/**\n * Given new and old sorting data, it returns the next sorting value using the following sorting cycle:\n *\n * \"unsorted --> ascending --> descending --> unsorted\"\n */\nexport function getNextSort({ newId, newOrder, oldId, oldOrder }: GetNextSortArgs): SortValue | undefined {\n if (!newId) {\n return undefined;\n }\n\n if (newId !== oldId) {\n // if sorting by a new field, sort ascending\n return serializeSortValue({ id: newId, order: newOrder || 'asc' });\n }\n\n /**\n * `newOrder` and `oldOrder` can each have 3 different values: undefined, 'asc', or 'desc'.\n * Therefore, there are 9 possible combinations (3 times 3). See below:\n */\n\n // #region newOrder: undefined\n if (!newOrder && !oldOrder) {\n return newId; // ascending\n }\n\n if (!newOrder && oldOrder === 'desc') {\n return undefined; // unsorted\n }\n\n if (!newOrder && oldOrder === 'asc') {\n return `-${newId}`; // descending\n }\n // #endregion\n\n // #region newOrder: asc\n if (newOrder === 'asc' && !oldOrder) {\n return newId;\n }\n\n if (newOrder === 'asc' && oldOrder === 'asc') {\n return undefined;\n }\n\n if (newOrder === 'asc' && oldOrder === 'desc') {\n return newId;\n }\n // #endregion\n\n // #region newOrder: desc\n if (newOrder === 'desc' && !oldOrder) {\n return `-${newId}`;\n }\n\n if (newOrder === 'desc' && oldOrder === 'desc') {\n return undefined;\n }\n\n if (newOrder === 'desc' && oldOrder === 'asc') {\n return `-${newId}`;\n }\n // #endregion\n}\n","import { ComputedRef, Ref } from 'vue';\n\nimport { SpacingDensities } from '../../../types/misc';\n\nexport enum DataViewVariant {\n Table = 'table',\n}\n\nexport type DataViewVariants = `${DataViewVariant}`;\n\n/**\n * A unique id for a sorting strategy. If the order is descending, it must begin with \"-\" (a hyphen/dash).\n *\n * Ex: `'product_name'` if ascending or `'-product_name'` if descending\n */\nexport type SortValue = string;\n\n/**\n * The SortValue with its leading hyphen/dash removed\n */\nexport type SortId = string;\n\n/**\n * Determined by whether or not there is a leading hyphen/dash in the SortValue\n */\nexport type SortOrder = 'asc' | 'desc';\n\n/**\n * A deserialized instance of a `SortValue`.\n */\nexport type SortValueDeserialized = {\n id: SortId;\n order: SortOrder;\n};\n\n/** Updates the DataView internal state with the given sortId */\nexport type UpdateCurrentSort = (\n sortId: SortId | undefined,\n options?: {\n sortOrder?: SortOrder;\n /** If true, emits the `update:currentSort` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\n/** Updates the DataView internal state with the given page */\nexport type SetPage = (\n page: number,\n options?: {\n /** If true, emits the `update:currentPage` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\n/** Updates the DataView internal state with the previous page */\nexport type GoPrevPage = (options?: {\n /** If true, emits the `update:currentPage` and `update` events from DataView */\n shouldEmit?: boolean;\n}) => void;\n\n/** Updates the DataView internal state with the next page */\nexport type GoNextPage = (options?: {\n /** If true, emits the `update:currentPage` and `update` events from DataView */\n shouldEmit?: boolean;\n}) => void;\n\n/** Updates the DataView internal state with the given searchTerm */\nexport type UpdateCurrentSearch = (\n searchTerm?: string,\n options?: {\n /** If true, emits the `update:currentSearch` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\n/** Updates the DataView internal state with the given filter values */\nexport type UpdateCurrentFilters<FilterValues = object> = (\n newFilters: FilterValues,\n options?: {\n /** If true, emits the `update:currentSearch` and `update` events from DataView */\n shouldEmit?: boolean;\n },\n) => void;\n\nexport interface UpdateEvent<FilterValues = object> {\n page?: number;\n pageSize?: number;\n ordering?: string;\n search?: string;\n filters?: FilterValues;\n}\n\nexport interface DataViewInjection {\n currentPage: ComputedRef<number>;\n\n isPaginationEnabled: ComputedRef<boolean>;\n\n pageCount: ComputedRef<number>;\n\n pageSize: ComputedRef<number>;\n\n totalDataCount: ComputedRef<number>;\n\n /** Updates the DataView internal state with the given page */\n setPage: SetPage;\n\n /** Updates the DataView internal state with the previous page */\n goPrevPage: GoPrevPage;\n\n /** Updates the DataView internal state with the next page */\n goNextPage: GoNextPage;\n\n currentSortId: ComputedRef<SortId | undefined>;\n\n currentSortOrder: ComputedRef<SortOrder | undefined>;\n\n /** Updates the DataView internal state with the given sortId */\n updateCurrentSort: UpdateCurrentSort;\n\n currentSearch: ComputedRef<string>;\n\n /** Updates the DataView internal state with the given searchTerm */\n updateCurrentSearch: UpdateCurrentSearch;\n\n /**\n * The DataView's padding; the default value is \"comfortable\". On small screens, the density will always be \"compact\".\n */\n density: ComputedRef<SpacingDensities | undefined>;\n\n /**\n * Defines if a DataView has a Toolbar rendered. This prop is updated when DataViewToolbar exists and is mounted.\n */\n hasToolbar?: Ref<boolean>;\n\n /**\n * Enables certain loading indicators to be displayed within the DataView.\n */\n isLoading?: ComputedRef<boolean>;\n\n /**\n * Enables certain empty states to be displayed within the DataView.\n */\n isEmpty?: ComputedRef<boolean>;\n\n /**\n * Allows Table to control whether or not a DataViewToolbar should show a checkmark\n */\n isSelectable?: Ref<boolean>;\n\n /**\n * Whether or not the DataView is rendered within a Module; the value is inferred based on being\n * able to inject details from Module.\n *\n * Note: This is sent to DataView child components so they only need to worry about interfacing\n * with the DataViewInjection API.\n */\n isWithinModule: ComputedRef<boolean>;\n\n /**\n * The DataView's variant; the default value is undefined.\n */\n variant: ComputedRef<DataViewVariants | undefined>;\n}\n","<script lang=\"ts\">\n export * from './DataView.constants';\n export * from './DataView.keys';\n export * from './DataView.types';\n export * from './DataView.utils';\n</script>\n\n<script setup lang=\"ts\">\n import cloneDeep from 'lodash-es/cloneDeep';\n import { computed, inject, provide, ref, useCssModule, watch } from 'vue';\n\n import { SpacingDensities } from '../../../types/misc';\n import { MODULE_INJECTION } from '../Module/Module.keys';\n import Paginate from '../Paginate/Paginate.vue';\n import { DEFAULT_PAGE_SIZE } from './DataView.constants';\n import { DATA_VIEW_INJECTION } from './DataView.keys';\n import {\n DataViewVariants,\n GoNextPage,\n GoPrevPage,\n SetPage,\n SortId,\n SortOrder,\n SortValue,\n UpdateCurrentFilters,\n UpdateCurrentSearch,\n UpdateCurrentSort,\n UpdateEvent,\n } from './DataView.types';\n import { deserializeSortValue, getNextSort } from './DataView.utils';\n\n export interface DataViewProps {\n /**\n * Can be used to provide the initial page.\n * Also, it can be used to control the active page with `v-model:current-page=\"myPage\"`.\n */\n currentPage?: number;\n\n /**\n * Can be used to set the initial search term.\n * Also, it can be used to control the active search term with `v-model:current-search=\"mySearchTerm\"`.\n */\n currentSearch?: string;\n\n /**\n * Can be used to provide the initial sort order.\n * Also, it can be used to control the active sort order with `v-model:current-sort=\"mySortOrder\"`.\n */\n currentSort?: SortValue;\n\n /**\n * A list of records. If pagination is enabled, `data` must be only the current page of records.\n */\n data?: object[];\n\n /**\n * Controls the DataView's padding; the default value is \"comfortable\". On small screens, \"compact\" density is applied regardless of this prop's value.\n */\n density?: SpacingDensities;\n\n pageSize?: number;\n\n /**\n * Opt-out of displaying pagination. Hides the pagination buttons and page stats.\n */\n disablePagination?: boolean;\n\n /**\n * Hides the bottom pagination without disabling the pagination from the toolbar\n */\n hideBottomPagination?: boolean;\n\n /**\n * The total number of records available.\n * Used to auto-enable pagination when results exist.\n * DataView does not paginate data for you; instead, `props.data` should always show\n * the current page of results.\n */\n totalDataCount?: number;\n\n /**\n * DataView variant. The default value is `undefined`. Will default to `table` when used within\n * a `<Module variant=\"table\">`.\n */\n variant?: DataViewVariants;\n\n isLoading?: boolean;\n }\n\n const props = withDefaults(defineProps<DataViewProps>(), {\n currentPage: 1,\n currentSearch: undefined,\n currentSort: undefined,\n data: () => [],\n density: 'comfortable',\n pageSize: DEFAULT_PAGE_SIZE,\n disablePagination: false,\n totalDataCount: 0,\n hideBottomPagination: false,\n variant: undefined,\n });\n\n const emit = defineEmits<{\n (e: 'update', state: UpdateEvent): void;\n (e: 'update:currentFilters', newFilters: object): void;\n (e: 'update:currentPage', page: number, pageSize: number): void;\n (e: 'update:currentSearch', searchTerm?: string): void;\n (e: 'update:currentSort', payload?: SortValue): void;\n }>();\n\n const classes = useCssModule();\n const rootRef = ref<HTMLElement | null>(null);\n const moduleInjection = inject(MODULE_INJECTION.key, MODULE_INJECTION.defaults);\n const computedVariant = computed<DataViewVariants | undefined>(() => {\n if (props.variant) {\n return props.variant;\n }\n\n if (moduleInjection.variant?.value === 'table') {\n return 'table';\n }\n\n return undefined;\n });\n const isWithinModule = computed(() => moduleInjection.variant !== undefined);\n\n // #region pagination\n const internalPage = ref(1);\n const isPaginationEnabled = computed(() => !props.disablePagination && props.totalDataCount > 0);\n const pageCount = computed(() => Math.ceil(props.totalDataCount / props.pageSize));\n\n const setPage: SetPage = function (page: number, { shouldEmit } = {}) {\n internalPage.value = page;\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentPage', page, props.pageSize);\n }\n\n if (Number(rootRef.value?.getBoundingClientRect().top) < 0) {\n rootRef.value?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n };\n\n const goPrevPage: GoPrevPage = function ({ shouldEmit } = {}) {\n const page = Math.max(internalPage.value - 1, 1);\n\n setPage(page, { shouldEmit });\n };\n\n /** Updates the DataView internal state with the previous page */\n const goNextPage: GoNextPage = function ({ shouldEmit } = {}) {\n const page = Math.min(internalPage.value + 1, pageCount.value);\n\n setPage(page, { shouldEmit });\n };\n\n watch(\n () => props.currentPage,\n () => {\n setPage(props.currentPage);\n },\n { immediate: true },\n );\n // #endregion pagination\n\n // #region sorting\n const internalSort = ref<SortValue | undefined>(undefined);\n\n const internalSortId = computed<SortId | undefined>(() =>\n internalSort.value ? deserializeSortValue(internalSort.value).id : undefined,\n );\n const internalSortOrder = computed<SortOrder | undefined>(() =>\n internalSort.value ? deserializeSortValue(internalSort.value).order : undefined,\n );\n\n const updateCurrentSort: UpdateCurrentSort = function (sortId, { sortOrder, shouldEmit } = {}) {\n const { id: oldId, order: oldOrder } = deserializeSortValue(internalSort.value || '');\n const nextSort = getNextSort({ newId: sortId, newOrder: sortOrder, oldId, oldOrder });\n\n internalSort.value = nextSort;\n setPage(1);\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentSort', nextSort);\n }\n };\n\n watch(\n () => props.currentSort,\n () => {\n updateCurrentSort(props.currentSort);\n },\n { immediate: true },\n );\n // #endregion sorting\n\n // #region search\n const internalSearch = ref('');\n\n const hasToolbar = ref(false);\n const isSelectable = ref(false);\n\n const updateCurrentSearch: UpdateCurrentSearch = function (searchTerm, { shouldEmit } = {}) {\n internalSearch.value = searchTerm || '';\n setPage(1);\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentSearch', searchTerm);\n }\n };\n\n watch(\n () => props.currentSearch,\n () => {\n updateCurrentSearch(props.currentSearch);\n },\n { immediate: true },\n );\n // #endregion search\n\n // #region filters\n const internalFilters = ref<object>({});\n\n const updateCurrentFilters: UpdateCurrentFilters = function (newFilters: object, { shouldEmit } = {}) {\n internalFilters.value = newFilters;\n setPage(1);\n\n if (shouldEmit) {\n emitUpdate();\n emit('update:currentFilters', newFilters);\n }\n };\n // #endregion filters\n\n function emitUpdate() {\n emit('update', {\n page: internalPage.value,\n pageSize: props.pageSize,\n ordering: internalSort.value,\n search: internalSearch.value,\n filters: cloneDeep(internalFilters.value),\n });\n }\n\n provide(\n DATA_VIEW_INJECTION.key,\n Object.freeze({\n // Pagination\n currentPage: computed(() => internalPage.value),\n isPaginationEnabled,\n pageCount,\n pageSize: computed(() => props.pageSize),\n totalDataCount: computed(() => props.totalDataCount),\n setPage,\n goPrevPage,\n goNextPage,\n\n // Sorting\n currentSortId: internalSortId,\n currentSortOrder: internalSortOrder,\n updateCurrentSort,\n\n // Search\n currentSearch: computed(() => internalSearch.value),\n updateCurrentSearch,\n\n // Miscellaneous\n density: computed(() => props.density),\n hasToolbar,\n isEmpty: computed(() => props.data.length === 0),\n isSelectable,\n isLoading: computed(() => props.isLoading),\n isWithinModule,\n variant: computedVariant,\n }),\n );\n\n defineExpose({\n page: computed(() => internalPage.value),\n pageSize: computed(() => props.pageSize),\n setPage,\n goPrevPage,\n goNextPage,\n ordering: computed(() => internalSort.value),\n updateCurrentSort,\n search: computed(() => internalSearch.value),\n updateCurrentSearch,\n filters: computed(() => internalFilters.value),\n updateCurrentFilters,\n });\n</script>\n\n<template>\n <div ref=\"rootRef\" class=\"stash-data-view tw-relative\" data-test=\"stash-data-view\">\n <!-- @slot default -->\n <slot\n :current-page=\"internalPage\"\n :current-sort-id=\"internalSortId\"\n :current-sort-order=\"internalSortOrder\"\n :data=\"data\"\n :go-prev-page=\"goPrevPage\"\n :go-next-page=\"goNextPage\"\n :page-count=\"pageCount\"\n :set-page=\"setPage\"\n :total-data-count=\"props.totalDataCount\"\n :update-current-sort=\"updateCurrentSort\"\n :update-current-search=\"updateCurrentSearch\"\n ></slot>\n\n <Paginate\n v-if=\"isPaginationEnabled && !isWithinModule && pageCount > 1 && !props.hideBottomPagination\"\n class=\"tw-mt-6\"\n :class=\"classes.paginate\"\n :current-page=\"internalPage\"\n :list-length=\"props.totalDataCount\"\n :page-size=\"props.pageSize\"\n @set-page=\"(page: number) => setPage(page, { shouldEmit: true })\"\n />\n </div>\n</template>\n\n<style module>\n .paginate ul {\n margin: 0;\n }\n</style>\n"],"names":["deserializeSortValue","sort","order","serializeSortValue","id","getNextSort","newId","newOrder","oldId","oldOrder","DataViewVariant","props","__props","emit","__emit","classes","useCssModule","rootRef","ref","moduleInjection","inject","MODULE_INJECTION","computedVariant","computed","_a","isWithinModule","internalPage","isPaginationEnabled","pageCount","setPage","page","shouldEmit","emitUpdate","_b","goPrevPage","goNextPage","watch","internalSort","internalSortId","internalSortOrder","updateCurrentSort","sortId","sortOrder","nextSort","internalSearch","hasToolbar","isSelectable","updateCurrentSearch","searchTerm","internalFilters","updateCurrentFilters","newFilters","cloneDeep","provide","DATA_VIEW_INJECTION","__expose"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { computed as e, ref as t } from "vue";
|
|
2
|
-
const a = 12,
|
|
2
|
+
const a = 12, o = Object.freeze({
|
|
3
3
|
key: Symbol("DATA_VIEW_INJECTION_KEY"),
|
|
4
4
|
defaults: Object.freeze({
|
|
5
5
|
// Pagination
|
|
@@ -35,12 +35,9 @@ const a = 12, n = Object.freeze({
|
|
|
35
35
|
variant: e(() => {
|
|
36
36
|
})
|
|
37
37
|
})
|
|
38
|
-
})
|
|
39
|
-
paginate: r
|
|
40
|
-
};
|
|
38
|
+
});
|
|
41
39
|
export {
|
|
42
|
-
|
|
43
|
-
a
|
|
44
|
-
s
|
|
40
|
+
o as D,
|
|
41
|
+
a
|
|
45
42
|
};
|
|
46
|
-
//# sourceMappingURL=DataView.
|
|
43
|
+
//# sourceMappingURL=DataView.keys-C7eaZg2G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataView.keys-C7eaZg2G.js","sources":["../src/components/DataView/DataView.constants.ts","../src/components/DataView/DataView.keys.ts"],"sourcesContent":["export const DEFAULT_PAGE_SIZE = 12;\n","import { computed, ref } from 'vue';\n\nimport { InjectionWithDefaults } from '../../../types/utils';\nimport { DEFAULT_PAGE_SIZE } from './DataView.constants';\nimport { DataViewInjection } from './DataView.types';\n\n// See: https://vuejs.org/guide/typescript/composition-api.html#typing-provide-inject\n\n/**\n * Miscellaneous data that is not related to pagination, sorting, or searching.\n * TODO: merge all DataView injections into one. https://leaflink.atlassian.net/browse/STASH-507\n */\nexport const DATA_VIEW_INJECTION: InjectionWithDefaults<DataViewInjection> = Object.freeze({\n key: Symbol('DATA_VIEW_INJECTION_KEY'),\n defaults: Object.freeze({\n // Pagination\n currentPage: computed(() => 1),\n isPaginationEnabled: computed(() => false),\n pageCount: computed(() => 1),\n pageSize: computed(() => DEFAULT_PAGE_SIZE),\n totalDataCount: computed(() => 0),\n setPage() {},\n goPrevPage() {},\n goNextPage() {},\n\n // Sorting\n currentSortId: computed(() => undefined),\n currentSortOrder: computed(() => undefined),\n updateCurrentSort() {},\n\n // Search\n currentSearch: computed(() => ''),\n updateCurrentSearch() {},\n\n // Miscellanous\n density: computed(() => undefined),\n isEmpty: computed(() => false),\n isLoading: computed(() => false),\n isSelectable: ref(false),\n isWithinModule: computed(() => false),\n variant: computed(() => undefined),\n }),\n});\n"],"names":["DEFAULT_PAGE_SIZE","DATA_VIEW_INJECTION","computed","ref"],"mappings":";AAAO,MAAMA,IAAoB,ICYpBC,IAAgE,OAAO,OAAO;AAAA,EACzF,KAAK,OAAO,yBAAyB;AAAA,EACrC,UAAU,OAAO,OAAO;AAAA;AAAA,IAEtB,aAAaC,EAAS,MAAM,CAAC;AAAA,IAC7B,qBAAqBA,EAAS,MAAM,EAAK;AAAA,IACzC,WAAWA,EAAS,MAAM,CAAC;AAAA,IAC3B,UAAUA,EAAS,MAAMF,CAAiB;AAAA,IAC1C,gBAAgBE,EAAS,MAAM,CAAC;AAAA,IAChC,UAAU;AAAA,IAAC;AAAA,IACX,aAAa;AAAA,IAAC;AAAA,IACd,aAAa;AAAA,IAAC;AAAA;AAAA,IAGd,eAAeA,EAAS,MAAM;AAAA,KAAS;AAAA,IACvC,kBAAkBA,EAAS,MAAM;AAAA,KAAS;AAAA,IAC1C,oBAAoB;AAAA,IAAC;AAAA;AAAA,IAGrB,eAAeA,EAAS,MAAM,EAAE;AAAA,IAChC,sBAAsB;AAAA,IAAC;AAAA;AAAA,IAGvB,SAASA,EAAS,MAAM;AAAA,KAAS;AAAA,IACjC,SAASA,EAAS,MAAM,EAAK;AAAA,IAC7B,WAAWA,EAAS,MAAM,EAAK;AAAA,IAC/B,cAAcC,EAAI,EAAK;AAAA,IACvB,gBAAgBD,EAAS,MAAM,EAAK;AAAA,IACpC,SAASA,EAAS,MAAM;AAAA,KAAS;AAAA,EAAA,CAClC;AACH,CAAC;"}
|
package/dist/DataView.vue.d.ts
CHANGED
|
@@ -149,62 +149,62 @@ export declare enum DataViewVariant {
|
|
|
149
149
|
export declare type DataViewVariants = `${DataViewVariant}`;
|
|
150
150
|
|
|
151
151
|
declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<DataViewProps>, {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
152
|
+
currentPage: number;
|
|
153
|
+
currentSearch: undefined;
|
|
154
|
+
currentSort: undefined;
|
|
155
|
+
data: () => never[];
|
|
156
|
+
density: string;
|
|
157
|
+
pageSize: number;
|
|
158
|
+
disablePagination: boolean;
|
|
159
|
+
totalDataCount: number;
|
|
160
|
+
hideBottomPagination: boolean;
|
|
161
|
+
variant: undefined;
|
|
162
162
|
}>>, {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
163
|
+
page: ComputedRef<number>;
|
|
164
|
+
pageSize: ComputedRef<number>;
|
|
165
|
+
setPage: SetPage;
|
|
166
|
+
goPrevPage: GoPrevPage;
|
|
167
|
+
goNextPage: GoNextPage;
|
|
168
|
+
ordering: ComputedRef<string | undefined>;
|
|
169
|
+
updateCurrentSort: UpdateCurrentSort;
|
|
170
|
+
search: ComputedRef<string>;
|
|
171
|
+
updateCurrentSearch: UpdateCurrentSearch;
|
|
172
|
+
filters: ComputedRef<object>;
|
|
173
|
+
updateCurrentFilters: UpdateCurrentFilters;
|
|
174
174
|
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
175
|
+
update: (state: UpdateEvent<object>) => void;
|
|
176
|
+
"update:currentFilters": (newFilters: object) => void;
|
|
177
|
+
"update:currentPage": (page: number, pageSize: number) => void;
|
|
178
|
+
"update:currentSearch": (searchTerm?: string | undefined) => void;
|
|
179
|
+
"update:currentSort": (payload?: string | undefined) => void;
|
|
180
180
|
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<DataViewProps>, {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
181
|
+
currentPage: number;
|
|
182
|
+
currentSearch: undefined;
|
|
183
|
+
currentSort: undefined;
|
|
184
|
+
data: () => never[];
|
|
185
|
+
density: string;
|
|
186
|
+
pageSize: number;
|
|
187
|
+
disablePagination: boolean;
|
|
188
|
+
totalDataCount: number;
|
|
189
|
+
hideBottomPagination: boolean;
|
|
190
|
+
variant: undefined;
|
|
191
191
|
}>>> & Readonly<{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
192
|
+
onUpdate?: ((state: UpdateEvent<object>) => any) | undefined;
|
|
193
|
+
"onUpdate:currentFilters"?: ((newFilters: object) => any) | undefined;
|
|
194
|
+
"onUpdate:currentPage"?: ((page: number, pageSize: number) => any) | undefined;
|
|
195
|
+
"onUpdate:currentSearch"?: ((searchTerm?: string | undefined) => any) | undefined;
|
|
196
|
+
"onUpdate:currentSort"?: ((payload?: string | undefined) => any) | undefined;
|
|
197
197
|
}>, {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
198
|
+
data: object[];
|
|
199
|
+
variant: "table";
|
|
200
|
+
currentPage: number;
|
|
201
|
+
pageSize: number;
|
|
202
|
+
totalDataCount: number;
|
|
203
|
+
currentSearch: string;
|
|
204
|
+
density: "compact" | "comfortable";
|
|
205
|
+
currentSort: string;
|
|
206
|
+
disablePagination: boolean;
|
|
207
|
+
hideBottomPagination: boolean;
|
|
208
208
|
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
|
|
209
209
|
default?(_: {
|
|
210
210
|
currentPage: number;
|
package/dist/DataViewFilters.js
CHANGED
|
@@ -1,52 +1,38 @@
|
|
|
1
|
-
import { ref as B, computed as C, defineComponent as j, useSlots as O, inject as z, provide as J, watch as Q, openBlock as
|
|
1
|
+
import { ref as B, computed as C, defineComponent as j, useSlots as O, inject as z, provide as J, watch as Q, openBlock as f, createBlock as w, normalizeClass as U, unref as t, withCtx as u, mergeProps as $, createCommentVNode as p, createElementBlock as Z, createElementVNode as A, renderSlot as G, createVNode as I, createTextVNode as k, toDisplayString as m } from "vue";
|
|
2
2
|
import q from "./useMediaQuery.js";
|
|
3
3
|
import { SCREEN_SIZES as H } from "./constants.js";
|
|
4
4
|
import { t as d } from "./locale.js";
|
|
5
|
-
import { _ as K } from "./Box.vue_vue_type_script_setup_true_lang-
|
|
5
|
+
import { _ as K } from "./Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js";
|
|
6
6
|
import _ from "./Button.js";
|
|
7
7
|
import L from "lodash-es/cloneDeep";
|
|
8
8
|
import P from "./Icon.js";
|
|
9
|
-
import "./
|
|
10
|
-
import { D as R } from "./DataView.vue_used_vue_type_style_index_0_lang.module-5c180dba.js";
|
|
9
|
+
import { D as R } from "./DataView.keys-C7eaZg2G.js";
|
|
11
10
|
import X from "./FilterChip.js";
|
|
12
|
-
import { _ as Y } from "./Label.vue_vue_type_script_setup_true_lang-
|
|
11
|
+
import { _ as Y } from "./Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js";
|
|
13
12
|
import ee from "./Modal.js";
|
|
14
13
|
import te from "./SearchBar.js";
|
|
15
|
-
import { D as le } from "./DataViewFilters.keys-
|
|
16
|
-
import { i as W } from "./isDefined-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
import "./_plugin-vue_export-helper-dad06003.js";
|
|
20
|
-
import "lodash-es/uniqueId";
|
|
21
|
-
import "./index-9e1095ef.js";
|
|
22
|
-
import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
|
|
23
|
-
import "./Chip.js";
|
|
24
|
-
import "./utils/colorScheme.js";
|
|
25
|
-
import "./Backdrop.js";
|
|
26
|
-
import "./Input.js";
|
|
27
|
-
import "lodash-es/isNil";
|
|
28
|
-
import "./utils/i18n.js";
|
|
29
|
-
import "./Field.vue_vue_type_script_setup_true_lang-fded4f75.js";
|
|
30
|
-
var re = /* @__PURE__ */ ((l) => (l.Cascade = "cascade", l.Nested = "nested", l))(re || {});
|
|
31
|
-
function Pe({
|
|
14
|
+
import { D as le } from "./DataViewFilters.keys-BLu07FiP.js";
|
|
15
|
+
import { i as W } from "./isDefined-DzVx0B6k.js";
|
|
16
|
+
var ae = /* @__PURE__ */ ((l) => (l.Cascade = "cascade", l.Nested = "nested", l))(ae || {});
|
|
17
|
+
function Ae({
|
|
32
18
|
schema: l,
|
|
33
19
|
dataViewRef: N
|
|
34
20
|
}) {
|
|
35
21
|
const e = B({}), o = B({});
|
|
36
|
-
for (const
|
|
37
|
-
e.value[
|
|
22
|
+
for (const a in l)
|
|
23
|
+
e.value[a] = l[a].defaultValue, o.value[a] = l[a].defaultValue;
|
|
38
24
|
const y = N;
|
|
39
25
|
function h() {
|
|
40
26
|
e.value = L(o.value), y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
|
|
41
27
|
}
|
|
42
28
|
function V() {
|
|
43
|
-
for (const
|
|
44
|
-
e.value[
|
|
29
|
+
for (const a in l)
|
|
30
|
+
e.value[a] = l[a].defaultValue, o.value[a] = l[a].defaultValue;
|
|
45
31
|
y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
|
|
46
32
|
}
|
|
47
|
-
function b(
|
|
33
|
+
function b(a) {
|
|
48
34
|
for (const i in l)
|
|
49
|
-
l[i].group ===
|
|
35
|
+
l[i].group === a && (e.value[i] = l[i].defaultValue, o.value[i] = l[i].defaultValue);
|
|
50
36
|
y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
|
|
51
37
|
}
|
|
52
38
|
function E() {
|
|
@@ -54,20 +40,20 @@ function Pe({
|
|
|
54
40
|
}
|
|
55
41
|
const g = C(() => {
|
|
56
42
|
var i;
|
|
57
|
-
const
|
|
43
|
+
const a = {};
|
|
58
44
|
for (const c in l) {
|
|
59
|
-
const n = l[c],
|
|
60
|
-
(((i = n.isActive) == null ? void 0 : i.call(n,
|
|
45
|
+
const n = l[c], r = e.value[c];
|
|
46
|
+
(((i = n.isActive) == null ? void 0 : i.call(n, r)) || W(r)) && n.group && (a[n.group] = (a[n.group] ?? 0) + 1);
|
|
61
47
|
}
|
|
62
|
-
return
|
|
48
|
+
return a;
|
|
63
49
|
}), S = C(() => {
|
|
64
50
|
var i;
|
|
65
|
-
let
|
|
51
|
+
let a = 0;
|
|
66
52
|
for (const c in l) {
|
|
67
|
-
const n = l[c],
|
|
68
|
-
(((i = n.isActive) == null ? void 0 : i.call(n,
|
|
53
|
+
const n = l[c], r = e.value[c];
|
|
54
|
+
(((i = n.isActive) == null ? void 0 : i.call(n, r)) || W(r)) && (a += 1);
|
|
69
55
|
}
|
|
70
|
-
return
|
|
56
|
+
return a;
|
|
71
57
|
});
|
|
72
58
|
return {
|
|
73
59
|
applyFilters: h,
|
|
@@ -81,10 +67,10 @@ function Pe({
|
|
|
81
67
|
workingFilters: o
|
|
82
68
|
};
|
|
83
69
|
}
|
|
84
|
-
const
|
|
70
|
+
const se = {
|
|
85
71
|
key: 1,
|
|
86
72
|
class: "tw-col-span-12 tw-row-start-2 md:tw-col-start-7 md:tw-row-start-1 lg:tw-col-span-8 lg:tw-col-start-5"
|
|
87
|
-
},
|
|
73
|
+
}, re = { class: "tw-hidden md:tw-block" }, ie = { class: "tw-flex tw-gap-4" }, oe = { class: "tw-inline-flex tw-items-center tw-gap-3" }, ne = { class: "tw-flex tw-justify-end tw-gap-gutter" }, he = /* @__PURE__ */ j({
|
|
88
74
|
__name: "DataViewFilters",
|
|
89
75
|
props: {
|
|
90
76
|
filtersLabelText: { default: d("ll.filterBy") },
|
|
@@ -103,7 +89,7 @@ const ae = {
|
|
|
103
89
|
density: E,
|
|
104
90
|
isLoading: g,
|
|
105
91
|
isWithinModule: S,
|
|
106
|
-
currentSearch:
|
|
92
|
+
currentSearch: a,
|
|
107
93
|
updateCurrentSearch: i
|
|
108
94
|
} = z(R.key, R.defaults);
|
|
109
95
|
J(le.key, {
|
|
@@ -111,56 +97,56 @@ const ae = {
|
|
|
111
97
|
drawerStyle: e.drawerStyle
|
|
112
98
|
});
|
|
113
99
|
const c = C(() => {
|
|
114
|
-
var
|
|
115
|
-
return ((
|
|
100
|
+
var s;
|
|
101
|
+
return ((s = e.useFiltersInstance) == null ? void 0 : s.totalActiveFiltersCount.value) ?? 0;
|
|
116
102
|
}), n = C(
|
|
117
103
|
() => {
|
|
118
|
-
var
|
|
119
|
-
return Number(e.activeGroup && ((
|
|
104
|
+
var s;
|
|
105
|
+
return Number(e.activeGroup && ((s = e.useFiltersInstance) == null ? void 0 : s.activeFiltersCounts.value[e.activeGroup])) || 0;
|
|
120
106
|
}
|
|
121
|
-
),
|
|
107
|
+
), r = B(!1);
|
|
122
108
|
async function D() {
|
|
123
109
|
var v, F;
|
|
124
|
-
const { preventDismiss:
|
|
125
|
-
|
|
110
|
+
const { preventDismiss: s } = await ((v = e.onApply) == null ? void 0 : v.call(e)) || ((F = e.useFiltersInstance) == null ? void 0 : F.applyFilters()) || {};
|
|
111
|
+
s || (r.value = !1);
|
|
126
112
|
}
|
|
127
113
|
function M() {
|
|
128
|
-
var
|
|
129
|
-
e.activeGroup && ((
|
|
114
|
+
var s;
|
|
115
|
+
e.activeGroup && ((s = e.useFiltersInstance) == null || s.resetFilterGroup(e.activeGroup), o("reset-group"), r.value = !1);
|
|
130
116
|
}
|
|
131
117
|
function x() {
|
|
132
|
-
var
|
|
133
|
-
(
|
|
118
|
+
var s;
|
|
119
|
+
(s = e.useFiltersInstance) == null || s.resetAllFilters(), o("reset-all"), r.value = !1;
|
|
134
120
|
}
|
|
135
121
|
function T() {
|
|
136
|
-
var
|
|
137
|
-
(
|
|
122
|
+
var s;
|
|
123
|
+
(s = e.useFiltersInstance) == null || s.undoWorkingFilters(), r.value = !1, o("dismiss");
|
|
138
124
|
}
|
|
139
|
-
return Q(
|
|
140
|
-
|
|
141
|
-
}), (
|
|
125
|
+
return Q(r, () => {
|
|
126
|
+
r.value && o("open-drawer");
|
|
127
|
+
}), (s, v) => (f(), w(K, {
|
|
142
128
|
class: U(["stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3", { "lg:tw-p-6": t(E) === "comfortable", "tw-mb-3": !t(S) }]),
|
|
143
129
|
radius: t(S) ? "none" : "rounded",
|
|
144
130
|
"data-test": "stash-data-view-filters",
|
|
145
131
|
"disable-padding": ""
|
|
146
132
|
}, {
|
|
147
133
|
default: u(() => [
|
|
148
|
-
e.showSearch ? (
|
|
134
|
+
e.showSearch ? (f(), w(te, $({
|
|
149
135
|
key: 0,
|
|
150
136
|
class: "tw-col-span-12 md:tw-col-span-6 lg:tw-col-span-4",
|
|
151
137
|
"data-test": "stash-data-view-filters|search-bar",
|
|
152
138
|
"is-loading": t(g),
|
|
153
139
|
label: t(d)("ll.search"),
|
|
154
|
-
"model-value": t(
|
|
140
|
+
"model-value": t(a)
|
|
155
141
|
}, e.searchBarProps, {
|
|
156
142
|
onSearch: v[0] || (v[0] = (F) => t(i)(F, { shouldEmit: !0 }))
|
|
157
|
-
}), null, 16, ["is-loading", "label", "model-value"])) :
|
|
158
|
-
y.default ? (
|
|
159
|
-
A("div",
|
|
160
|
-
G(
|
|
143
|
+
}), null, 16, ["is-loading", "label", "model-value"])) : p("", !0),
|
|
144
|
+
y.default ? (f(), Z("div", se, [
|
|
145
|
+
A("div", re, [
|
|
146
|
+
G(s.$slots, "filters-label", {}, () => [
|
|
161
147
|
I(Y, null, {
|
|
162
148
|
default: u(() => [
|
|
163
|
-
k(
|
|
149
|
+
k(m(e.filtersLabelText), 1)
|
|
164
150
|
]),
|
|
165
151
|
_: 1
|
|
166
152
|
})
|
|
@@ -172,7 +158,7 @@ const ae = {
|
|
|
172
158
|
class: "!tw-flex tw-w-full tw-justify-center tw-gap-4 md:!tw-inline-flex md:tw-w-auto",
|
|
173
159
|
"data-test": "stash-data-view-filters|drawer-toggle-button",
|
|
174
160
|
"filter-count": c.value,
|
|
175
|
-
onClick: v[1] || (v[1] = (F) =>
|
|
161
|
+
onClick: v[1] || (v[1] = (F) => r.value = !0)
|
|
176
162
|
}, {
|
|
177
163
|
default: u(() => [
|
|
178
164
|
A("span", oe, [
|
|
@@ -180,35 +166,35 @@ const ae = {
|
|
|
180
166
|
name: "filter-line",
|
|
181
167
|
class: "tw-text-ice-700"
|
|
182
168
|
}),
|
|
183
|
-
A("span", null,
|
|
169
|
+
A("span", null, m(t(d)("ll.filters")), 1)
|
|
184
170
|
])
|
|
185
171
|
]),
|
|
186
172
|
_: 1
|
|
187
173
|
}, 8, ["filter-count"]),
|
|
188
|
-
t(h) ? G(
|
|
189
|
-
c.value > 0 && t(h) ? (
|
|
174
|
+
t(h) ? G(s.$slots, "default", { key: 0 }) : p("", !0),
|
|
175
|
+
c.value > 0 && t(h) ? (f(), w(_, {
|
|
190
176
|
key: 1,
|
|
191
177
|
inline: "",
|
|
192
178
|
onClick: x
|
|
193
179
|
}, {
|
|
194
180
|
default: u(() => [
|
|
195
|
-
k(
|
|
181
|
+
k(m(t(d)("ll.resetAll")), 1)
|
|
196
182
|
]),
|
|
197
183
|
_: 1
|
|
198
|
-
})) :
|
|
184
|
+
})) : p("", !0)
|
|
199
185
|
])
|
|
200
|
-
])) :
|
|
201
|
-
y.drawer ? (
|
|
186
|
+
])) : p("", !0),
|
|
187
|
+
y.drawer ? (f(), w(ee, $({
|
|
202
188
|
key: 2,
|
|
203
189
|
"data-test": "stash-data-view-filters|drawer",
|
|
204
190
|
"disable-body-padding": "",
|
|
205
191
|
position: "right",
|
|
206
192
|
size: "narrow",
|
|
207
|
-
"is-open":
|
|
193
|
+
"is-open": r.value,
|
|
208
194
|
title: t(d)("ll.allFilters")
|
|
209
195
|
}, e.drawerProps, { onDismiss: T }), {
|
|
210
196
|
headerAction: u(() => [
|
|
211
|
-
b.value ? (
|
|
197
|
+
b.value ? (f(), w(_, {
|
|
212
198
|
key: 0,
|
|
213
199
|
icon: "",
|
|
214
200
|
class: "tw-text-ice-100",
|
|
@@ -221,59 +207,59 @@ const ae = {
|
|
|
221
207
|
I(P, { name: "chevron-left" })
|
|
222
208
|
]),
|
|
223
209
|
_: 1
|
|
224
|
-
}, 8, ["aria-label", "title"])) :
|
|
210
|
+
}, 8, ["aria-label", "title"])) : p("", !0)
|
|
225
211
|
]),
|
|
226
212
|
footer: u(() => [
|
|
227
213
|
A("div", ne, [
|
|
228
|
-
c.value === 0 ? (
|
|
214
|
+
c.value === 0 ? (f(), w(_, {
|
|
229
215
|
key: 0,
|
|
230
216
|
secondary: "",
|
|
231
217
|
onClick: T
|
|
232
218
|
}, {
|
|
233
219
|
default: u(() => [
|
|
234
|
-
k(
|
|
220
|
+
k(m(t(d)("ll.cancel")), 1)
|
|
235
221
|
]),
|
|
236
222
|
_: 1
|
|
237
|
-
})) :
|
|
238
|
-
(V.value || e.drawerStyle === "cascade") && c.value > 0 ? (
|
|
223
|
+
})) : p("", !0),
|
|
224
|
+
(V.value || e.drawerStyle === "cascade") && c.value > 0 ? (f(), w(_, {
|
|
239
225
|
key: 1,
|
|
240
226
|
secondary: "",
|
|
241
227
|
disabled: t(g),
|
|
242
228
|
onClick: x
|
|
243
229
|
}, {
|
|
244
230
|
default: u(() => [
|
|
245
|
-
k(
|
|
231
|
+
k(m(t(d)("ll.resetAll")), 1)
|
|
246
232
|
]),
|
|
247
233
|
_: 1
|
|
248
|
-
}, 8, ["disabled"])) :
|
|
249
|
-
b.value && n.value > 0 ? (
|
|
234
|
+
}, 8, ["disabled"])) : p("", !0),
|
|
235
|
+
b.value && n.value > 0 ? (f(), w(_, {
|
|
250
236
|
key: 2,
|
|
251
237
|
secondary: "",
|
|
252
238
|
disabled: t(g),
|
|
253
239
|
onClick: M
|
|
254
240
|
}, {
|
|
255
241
|
default: u(() => [
|
|
256
|
-
k(
|
|
242
|
+
k(m(t(d)("ll.reset")), 1)
|
|
257
243
|
]),
|
|
258
244
|
_: 1
|
|
259
|
-
}, 8, ["disabled"])) :
|
|
260
|
-
b.value || e.drawerStyle === "cascade" ? (
|
|
245
|
+
}, 8, ["disabled"])) : p("", !0),
|
|
246
|
+
b.value || e.drawerStyle === "cascade" ? (f(), w(_, {
|
|
261
247
|
key: 3,
|
|
262
248
|
disabled: t(g),
|
|
263
249
|
onClick: D
|
|
264
250
|
}, {
|
|
265
251
|
default: u(() => [
|
|
266
|
-
k(
|
|
252
|
+
k(m(t(d)("ll.apply")), 1)
|
|
267
253
|
]),
|
|
268
254
|
_: 1
|
|
269
|
-
}, 8, ["disabled"])) :
|
|
255
|
+
}, 8, ["disabled"])) : p("", !0)
|
|
270
256
|
])
|
|
271
257
|
]),
|
|
272
258
|
default: u(() => [
|
|
273
|
-
G(
|
|
259
|
+
G(s.$slots, "drawer")
|
|
274
260
|
]),
|
|
275
261
|
_: 3
|
|
276
|
-
}, 16, ["is-open", "title"])) :
|
|
262
|
+
}, 16, ["is-open", "title"])) : p("", !0)
|
|
277
263
|
]),
|
|
278
264
|
_: 3
|
|
279
265
|
}, 8, ["class", "radius"]));
|
|
@@ -281,8 +267,8 @@ const ae = {
|
|
|
281
267
|
});
|
|
282
268
|
export {
|
|
283
269
|
le as DATA_VIEW_FILTERS_UTILS_INJECTION,
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
270
|
+
ae as DrawerStyle,
|
|
271
|
+
he as default,
|
|
272
|
+
Ae as useFilters
|
|
287
273
|
};
|
|
288
274
|
//# sourceMappingURL=DataViewFilters.js.map
|