@leaflink/stash 51.10.0 → 51.11.1
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.map +1 -1
- package/dist/Accordion.vue.d.ts +37 -6
- package/dist/ActionsDropdown.js +2 -2
- package/dist/ActionsDropdown.js.map +1 -1
- package/dist/ActionsDropdown.vue.d.ts +74 -0
- package/dist/AddressSelect.js +60 -56
- package/dist/AddressSelect.js.map +1 -1
- package/dist/AddressSelect.vue.d.ts +65 -8
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.vue.d.ts +41 -4
- package/dist/AppNavigationItem.js.map +1 -1
- package/dist/AppNavigationItem.vue.d.ts +31 -4
- package/dist/AppSidebar.js.map +1 -1
- package/dist/AppSidebar.vue.d.ts +35 -8
- package/dist/AppTopbar.js +1 -1
- package/dist/AppTopbar.js.map +1 -1
- package/dist/AppTopbar.vue.d.ts +33 -4
- package/dist/Avatar.js.map +1 -1
- package/dist/Avatar.vue.d.ts +44 -5
- package/dist/Backdrop.js.map +1 -1
- package/dist/Backdrop.vue.d.ts +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Badge.vue.d.ts +55 -6
- package/dist/Box.vue.d.ts +36 -3
- package/dist/Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Button.vue.d.ts +50 -5
- package/dist/ButtonGroup.js +37 -33
- package/dist/ButtonGroup.js.map +1 -1
- package/dist/ButtonGroup.vue.d.ts +39 -6
- package/dist/Card.js.map +1 -1
- package/dist/Card.vue.d.ts +32 -5
- package/dist/CardContent.js.map +1 -1
- package/dist/CardContent.vue.d.ts +1 -1
- package/dist/CardFooter.js.map +1 -1
- package/dist/CardFooter.vue.d.ts +1 -1
- package/dist/CardHeader.js.map +1 -1
- package/dist/CardHeader.vue.d.ts +15 -2
- package/dist/CardMedia.js.map +1 -1
- package/dist/CardMedia.vue.d.ts +15 -2
- package/dist/Carousel.js +72 -66
- package/dist/Carousel.js.map +1 -1
- package/dist/Carousel.vue.d.ts +10 -10
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.vue.d.ts +53 -8
- package/dist/ChevronToggle.vue.d.ts +34 -7
- package/dist/ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js.map +1 -1
- package/dist/Chip.js.map +1 -1
- package/dist/Chip.vue.d.ts +52 -10
- package/dist/ConfirmationCodeInput.js +44 -40
- package/dist/ConfirmationCodeInput.js.map +1 -1
- package/dist/ConfirmationCodeInput.vue.d.ts +43 -8
- package/dist/ContextSwitcher.js.map +1 -1
- package/dist/ContextSwitcher.vue.d.ts +41 -6
- package/dist/Copy.js.map +1 -1
- package/dist/Copy.vue.d.ts +34 -3
- package/dist/CurrencyInput.js +21 -20
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/CurrencyInput.vue.d.ts +46 -125
- package/dist/CustomRender.js.map +1 -1
- package/dist/DataView.js +96 -94
- package/dist/DataView.js.map +1 -1
- package/dist/DataView.keys-aSOnA4AD.js.map +1 -1
- package/dist/DataView.vue.d.ts +57 -12
- package/dist/DataViewFilters.js +139 -127
- package/dist/DataViewFilters.js.map +1 -1
- package/dist/DataViewFilters.keys-BLu07FiP.js.map +1 -1
- package/dist/DataViewFilters.vue.d.ts +54 -9
- package/dist/DataViewSortButton.js +2 -2
- package/dist/DataViewSortButton.js.map +1 -1
- package/dist/DataViewSortButton.vue.d.ts +30 -3
- package/dist/DataViewToolbar.js +151 -83
- package/dist/DataViewToolbar.js.map +1 -1
- package/dist/DataViewToolbar.vue.d.ts +40 -5
- package/dist/DatePicker.js +4636 -4524
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePicker.vue.d.ts +79 -30
- package/dist/DescriptionList.js.map +1 -1
- package/dist/DescriptionList.vue.d.ts +32 -3
- package/dist/DescriptionListDetail.js.map +1 -1
- package/dist/DescriptionListDetail.vue.d.ts +1 -1
- package/dist/DescriptionListGroup.js.map +1 -1
- package/dist/DescriptionListGroup.vue.d.ts +1 -1
- package/dist/DescriptionListTerm.js.map +1 -1
- package/dist/DescriptionListTerm.vue.d.ts +1 -1
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.vue.d.ts +53 -10
- package/dist/Divider.js.map +1 -1
- package/dist/Dropdown.js +95 -89
- package/dist/Dropdown.js.map +1 -1
- package/dist/Dropdown.vue.d.ts +48 -12
- package/dist/EmptyState.js +1 -1
- package/dist/EmptyState.js.map +1 -1
- package/dist/EmptyState.vue.d.ts +62 -5
- package/dist/Expand.vue.d.ts +40 -10
- package/dist/Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js.map +1 -1
- package/dist/Field.vue.d.ts +53 -4
- package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +1 -1
- package/dist/FileUpload.js +74 -72
- package/dist/FileUpload.js.map +1 -1
- package/dist/FileUpload.vue.d.ts +44 -10
- package/dist/FilterChip.js.map +1 -1
- package/dist/FilterChip.vue.d.ts +41 -6
- package/dist/FilterDrawerItem.js +21 -21
- package/dist/FilterDrawerItem.js.map +1 -1
- package/dist/FilterDrawerItem.vue.d.ts +23 -6
- package/dist/FilterDropdown.js +69 -63
- package/dist/FilterDropdown.js.map +1 -1
- package/dist/FilterDropdown.vue.d.ts +35 -122
- package/dist/FilterSelect.js.map +1 -1
- package/dist/FilterSelect.vue.d.ts +31 -4
- package/dist/Filters.js +164 -157
- package/dist/Filters.js.map +1 -1
- package/dist/Filters.vue.d.ts +2190 -0
- package/dist/HttpError.js +7 -7
- package/dist/HttpError.js.map +1 -1
- package/dist/HttpError.vue.d.ts +41 -4
- package/dist/Icon.js +17 -17
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.vue.d.ts +36 -3
- package/dist/IconLabel.js.map +1 -1
- package/dist/IconLabel.vue.d.ts +40 -5
- package/dist/Illustration.js +2 -2
- package/dist/Illustration.vue.d.ts +42 -3
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js → Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js} +11 -11
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js.map → Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map} +1 -1
- package/dist/Image.js +2 -2
- package/dist/Image.vue.d.ts +40 -5
- package/dist/{Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js → Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js} +41 -37
- package/dist/{Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js.map → Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map} +1 -1
- package/dist/InlineEdit.js.map +1 -1
- package/dist/InlineEdit.vue.d.ts +47 -126
- package/dist/Input.js.map +1 -1
- package/dist/Input.vue.d.ts +45 -12
- package/dist/InputOptions.js +69 -66
- package/dist/InputOptions.js.map +1 -1
- package/dist/InputOptions.vue.d.ts +55 -10
- package/dist/IntegrationIcon.js +7 -7
- package/dist/IntegrationIcon.js.map +1 -1
- package/dist/IntegrationIcon.vue.d.ts +36 -3
- package/dist/Label.vue.d.ts +42 -3
- package/dist/Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map +1 -1
- package/dist/LicenseChip.js.map +1 -1
- package/dist/LicenseChip.vue.d.ts +30 -3
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItem.vue.d.ts +294 -0
- package/dist/ListItemCell.js.map +1 -1
- package/dist/ListItemCell.vue.d.ts +21 -0
- package/dist/ListView.js +7 -4
- package/dist/ListView.js.map +1 -1
- package/dist/ListView.types.d.ts +29 -0
- package/dist/ListView.vue.d.ts +5496 -0
- package/dist/Loading.js +2 -2
- package/dist/Loading.js.map +1 -1
- package/dist/Loading.vue.d.ts +1 -1
- package/dist/Logo.js +1 -1
- package/dist/Logo.vue.d.ts +41 -6
- package/dist/{Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js → Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js} +17 -17
- package/dist/Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map +1 -0
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.vue.d.ts +1 -1
- package/dist/MenuItem.js.map +1 -1
- package/dist/MenuItem.vue.d.ts +1 -1
- package/dist/MenusPlugin-Bk6UW6o9.js +12 -0
- package/dist/{MenusPlugin-B4jpNe7x.js.map → MenusPlugin-Bk6UW6o9.js.map} +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Metric.vue.d.ts +34 -3
- package/dist/Modal.js +64 -62
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.vue.d.ts +60 -13
- package/dist/Modals.js +18 -17
- package/dist/Modals.js.map +1 -1
- package/dist/ModalsPlugin.js +11 -11
- package/dist/ModalsPlugin.js.map +1 -1
- package/dist/Module.js.map +1 -1
- package/dist/Module.keys-CEsrW2f0.js.map +1 -1
- package/dist/Module.types-B1FfGGac.js.map +1 -1
- package/dist/Module.vue.d.ts +29 -2
- package/dist/ModuleContent.js.map +1 -1
- package/dist/ModuleContent.vue.d.ts +3 -3
- package/dist/ModuleFooter.js.map +1 -1
- package/dist/ModuleFooter.vue.d.ts +1 -1
- package/dist/ModuleHeader.js.map +1 -1
- package/dist/ModuleHeader.vue.d.ts +39 -5
- package/dist/MoreActions.js +491 -0
- package/dist/MoreActions.js.map +1 -0
- package/dist/MoreActions.vue.d.ts +126 -0
- package/dist/ObfuscateText.js.map +1 -1
- package/dist/ObfuscateText.vue.d.ts +40 -3
- package/dist/PageContent.js.map +1 -1
- package/dist/PageContent.vue.d.ts +30 -3
- package/dist/PageHeader.js.map +1 -1
- package/dist/PageHeader.vue.d.ts +35 -6
- package/dist/PageNavigation.js +50 -50
- package/dist/PageNavigation.js.map +1 -1
- package/dist/PageNavigation.vue.d.ts +36 -7
- package/dist/Paginate.js.map +1 -1
- package/dist/Paginate.vue.d.ts +40 -5
- package/dist/PlaidLink.js.map +1 -1
- package/dist/PlaidLink.vue.d.ts +49 -12
- package/dist/QuickAction.js.map +1 -1
- package/dist/QuickAction.vue.d.ts +15 -2
- package/dist/Radio.js.map +1 -1
- package/dist/Radio.vue.d.ts +93 -0
- package/dist/RadioGroup.js +101 -94
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.vue.d.ts +42 -116
- package/dist/RadioNew.js +99 -96
- package/dist/RadioNew.js.map +1 -1
- package/dist/RadioNew.vue.d.ts +48 -7
- package/dist/RangeInput.js.map +1 -1
- package/dist/RangeInput.vue.d.ts +1 -1
- package/dist/SearchBar.js +39 -38
- package/dist/SearchBar.js.map +1 -1
- package/dist/SearchBar.vue.d.ts +44 -127
- package/dist/SectionHeader.js.map +1 -1
- package/dist/SectionHeader.vue.d.ts +36 -5
- package/dist/Select.js +183 -171
- package/dist/Select.js.map +1 -1
- package/dist/Select.vue.d.ts +102 -23
- package/dist/SelectStatus.js +38 -38
- package/dist/SelectStatus.js.map +1 -1
- package/dist/SelectStatus.vue.d.ts +46 -226
- package/dist/Skeleton.js.map +1 -1
- package/dist/Skeleton.vue.d.ts +34 -3
- package/dist/Step.js +44 -44
- package/dist/Step.js.map +1 -1
- package/dist/Step.vue.d.ts +43 -4
- package/dist/Stepper.js.map +1 -1
- package/dist/Stepper.vue.d.ts +44 -9
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.vue.d.ts +47 -8
- package/dist/Tab.js +9 -9
- package/dist/Tab.js.map +1 -1
- package/dist/Tab.vue.d.ts +15 -2
- package/dist/TabPanel.js.map +1 -1
- package/dist/TabPanel.vue.d.ts +30 -3
- package/dist/Table.js +59 -53
- package/dist/Table.js.map +1 -1
- package/dist/Table.keys-LHQf6FEH.js.map +1 -1
- package/dist/Table.vue.d.ts +50 -3
- package/dist/TableCell.js +1 -1
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCell.vue.d.ts +32 -3
- package/dist/TableHeaderCell.js +1 -1
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCell.vue.d.ts +30 -3
- package/dist/TableHeaderRow.js +1 -1
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRow.vue.d.ts +34 -5
- package/dist/TableRow.js +44 -43
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRow.vue.d.ts +48 -7
- package/dist/Tabs.js +2 -2
- package/dist/Tabs.vue.d.ts +31 -122
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js +78 -0
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js.map +1 -0
- package/dist/TextEditor.js +2420 -2414
- package/dist/TextEditor.js.map +1 -1
- package/dist/TextEditor.vue.d.ts +39 -8
- package/dist/Textarea.js +32 -29
- package/dist/Textarea.js.map +1 -1
- package/dist/Textarea.vue.d.ts +44 -9
- package/dist/Thumbnail.js +1 -1
- package/dist/Thumbnail.js.map +1 -1
- package/dist/Thumbnail.vue.d.ts +4 -4
- package/dist/ThumbnailEmpty.js.map +1 -1
- package/dist/ThumbnailEmpty.vue.d.ts +1 -1
- package/dist/ThumbnailGroup.js.map +1 -1
- package/dist/ThumbnailGroup.keys-EJ4qFNhx.js.map +1 -1
- package/dist/ThumbnailGroup.vue.d.ts +22 -26
- package/dist/Timeline.js.map +1 -1
- package/dist/Timeline.vue.d.ts +32 -3
- package/dist/TimelineItem.js.map +1 -1
- package/dist/TimelineItem.vue.d.ts +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.vue.d.ts +30 -3
- package/dist/Toasts.js.map +1 -1
- package/dist/ToastsPlugin.js +11 -11
- package/dist/ToastsPlugin.js.map +1 -1
- package/dist/Tooltip.js +30 -29
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.vue.d.ts +43 -11
- package/dist/colors-DDDVvqfQ.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/directives/autofocus.js.map +1 -1
- package/dist/directives/clickoutside.js.map +1 -1
- package/dist/directives/observe.js.map +1 -1
- package/dist/directives/sticky.js.map +1 -1
- package/dist/directives/tooltip.js +3 -3
- package/dist/directives/tooltip.js.map +1 -1
- package/dist/directives/viewable.js +44 -39
- package/dist/directives/viewable.js.map +1 -1
- package/dist/{floating-ui.vue-CL01Y9ER.js → floating-ui.vue-pzUuloyX.js} +2 -2
- package/dist/{floating-ui.vue-CL01Y9ER.js.map → floating-ui.vue-pzUuloyX.js.map} +1 -1
- package/dist/formatDateTime-Dz8bXV0R.js +1418 -0
- package/dist/{formatDateTime-DG7kBc2T.js.map → formatDateTime-Dz8bXV0R.js.map} +1 -1
- package/dist/index-C14LhAwV.js +294 -0
- package/dist/{index-GUu9zvbg.js.map → index-C14LhAwV.js.map} +1 -1
- package/dist/index-D6bxWkZ1.js.map +1 -1
- package/dist/index.js +104 -99
- package/dist/index.js.map +1 -1
- package/dist/isDefined-DzVx0B6k.js.map +1 -1
- package/dist/keys-BEdEsanp.js.map +1 -1
- package/dist/keys-C8Zfr_By.js.map +1 -1
- package/dist/locale.js.map +1 -1
- package/dist/misc-CHQs-G03.js.map +1 -1
- package/dist/obfuscateText.d.ts +1 -1
- package/dist/parseISO-wlfIB_QJ.js.map +1 -1
- package/dist/searchFuzzy-DRasJ33G.js +409 -0
- package/dist/{searchFuzzy-DBDE6jkd.js.map → searchFuzzy-DRasJ33G.js.map} +1 -1
- package/dist/statusLevels-D8EgtE_L.js.map +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/tailwind-base.d.ts +18 -0
- package/dist/tailwind-base.js +18 -8
- package/dist/tailwind-base.js.map +1 -1
- package/dist/toTimeZone-Coq1oPTt.js.map +1 -1
- package/dist/useConfirmBeforeClosing.js.map +1 -1
- package/dist/useDialog.d.ts +2 -2
- package/dist/useDialog.js +25 -21
- package/dist/useDialog.js.map +1 -1
- package/dist/useGoogleMaps.js +110 -108
- package/dist/useGoogleMaps.js.map +1 -1
- package/dist/useMediaQuery.d.ts +6 -0
- package/dist/useMediaQuery.js +15 -11
- package/dist/useMediaQuery.js.map +1 -1
- package/dist/useModals.d.ts +1 -1
- package/dist/useModals.js.map +1 -1
- package/dist/usePaginationStats-d_q39naC.js.map +1 -1
- package/dist/usePlaidLink.js +27 -20
- package/dist/usePlaidLink.js.map +1 -1
- package/dist/useScriptTag.js.map +1 -1
- package/dist/useSearch.js +13 -13
- package/dist/useSearch.js.map +1 -1
- package/dist/useSelection.js +56 -56
- package/dist/useSelection.js.map +1 -1
- package/dist/useSortable.js +63 -54
- package/dist/useSortable.js.map +1 -1
- package/dist/useStepper.d.ts +2 -2
- package/dist/useStepper.js +40 -36
- package/dist/useStepper.js.map +1 -1
- package/dist/useToasts.js +23 -23
- package/dist/useToasts.js.map +1 -1
- package/dist/useValidation.js +100 -96
- package/dist/useValidation.js.map +1 -1
- package/dist/utils/calculateElementOverflow.js +4 -4
- package/dist/utils/calculateElementOverflow.js.map +1 -1
- package/dist/utils/colorScheme.js.map +1 -1
- package/dist/utils/createQueryString.js.map +1 -1
- package/dist/utils/createValidDate.js.map +1 -1
- package/dist/utils/formatDateTime.js +1 -1
- package/dist/utils/getContrastingTextColor.js.map +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/normalizeDate.js.map +1 -1
- package/dist/utils/obfuscateText.js +6 -6
- package/dist/utils/obfuscateText.js.map +1 -1
- package/dist/utils/searchFuzzy.js +1 -1
- package/dist/utils/storage.js +23 -23
- package/dist/utils/storage.js.map +1 -1
- package/package.json +12 -12
- package/tailwind-base.ts +11 -0
- package/dist/Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js.map +0 -1
- package/dist/MenusPlugin-B4jpNe7x.js +0 -12
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js +0 -156
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js.map +0 -1
- package/dist/formatDateTime-DG7kBc2T.js +0 -1414
- package/dist/index-GUu9zvbg.js +0 -128
- package/dist/searchFuzzy-DBDE6jkd.js +0 -408
package/dist/usePlaidLink.js
CHANGED
|
@@ -1,35 +1,42 @@
|
|
|
1
|
-
import { ref as
|
|
2
|
-
import
|
|
3
|
-
const
|
|
4
|
-
function
|
|
5
|
-
const { isLoaded:
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
if (
|
|
1
|
+
import { ref as l, watchSyncEffect as c, toValue as f, computed as s, onUnmounted as v } from "vue";
|
|
2
|
+
import p from "./useScriptTag.js";
|
|
3
|
+
const m = "https://cdn.plaid.com/link/v2/stable/link-initialize.js";
|
|
4
|
+
function P(u) {
|
|
5
|
+
const { isLoaded: i, error: r } = p(m), a = l(null), t = l(!1);
|
|
6
|
+
c(() => {
|
|
7
|
+
const e = f(u);
|
|
8
|
+
if (i.value && !(!e.token && !e.receivedRedirectUri)) {
|
|
9
9
|
if (!window.Plaid)
|
|
10
10
|
throw new Error("Error loading Plaid SDK");
|
|
11
|
-
n(),
|
|
12
|
-
...
|
|
11
|
+
n(), a.value = window.Plaid.create({
|
|
12
|
+
...e,
|
|
13
13
|
onLoad: () => {
|
|
14
|
-
o
|
|
14
|
+
var o;
|
|
15
|
+
t.value = !0, (o = e.onLoad) == null || o.call(e);
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
});
|
|
19
|
-
const
|
|
20
|
-
() => !
|
|
20
|
+
const d = s(
|
|
21
|
+
() => !r.value && a.value !== null && (i.value || t.value)
|
|
21
22
|
);
|
|
22
23
|
function n() {
|
|
23
|
-
|
|
24
|
+
a.value && (a.value.exit({ force: !0 }), a.value.destroy(), t.value = !1);
|
|
24
25
|
}
|
|
25
|
-
return
|
|
26
|
-
ready:
|
|
27
|
-
error:
|
|
28
|
-
open: () =>
|
|
29
|
-
|
|
26
|
+
return v(n), {
|
|
27
|
+
ready: d,
|
|
28
|
+
error: r,
|
|
29
|
+
open: () => {
|
|
30
|
+
var e;
|
|
31
|
+
return (e = a.value) == null ? void 0 : e.open();
|
|
32
|
+
},
|
|
33
|
+
exit: (e) => {
|
|
34
|
+
var o;
|
|
35
|
+
return (o = a.value) == null ? void 0 : o.exit(e);
|
|
36
|
+
}
|
|
30
37
|
};
|
|
31
38
|
}
|
|
32
39
|
export {
|
|
33
|
-
|
|
40
|
+
P as default
|
|
34
41
|
};
|
|
35
42
|
//# sourceMappingURL=usePlaidLink.js.map
|
package/dist/usePlaidLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePlaidLink.js","sources":["../src/composables/usePlaidLink/usePlaidLink.ts"],"sourcesContent":["import { computed, MaybeRef, onUnmounted, ref, toValue, watchSyncEffect } from 'vue';\n\nimport { Plaid } from '../../../types/plaid';\nimport useScriptTag from '../useScriptTag/useScriptTag';\n\nconst PLAID_SDK_URL = 'https://cdn.plaid.com/link/v2/stable/link-initialize.js';\n\nexport default function usePlaidLink(options: MaybeRef<Plaid.CreateConfig>) {\n const { isLoaded: isPlaidScriptLoaded, error } = useScriptTag(PLAID_SDK_URL);\n\n const plaid = ref<Plaid.LinkHandler | null>(null);\n const iframeLoaded = ref(false);\n\n // We want to trigger this as soon as options ref changes\n watchSyncEffect(() => {\n const optionsVal = toValue(options);\n\n if (!isPlaidScriptLoaded.value) {\n return;\n }\n\n if (!optionsVal.token && !optionsVal.receivedRedirectUri) {\n return;\n }\n\n if (!window.Plaid) {\n throw new Error('Error loading Plaid SDK');\n }\n\n // destroy & exit existing instances so we don't\n // have multiple Plaid link modals at the same time\n teardown();\n\n plaid.value = window.Plaid.create({\n ...optionsVal,\n onLoad: () => {\n iframeLoaded.value = true;\n optionsVal.onLoad?.();\n },\n });\n });\n\n const ready = computed(\n () => !error.value && plaid.value !== null && (isPlaidScriptLoaded.value || iframeLoaded.value),\n );\n\n function teardown() {\n if (plaid.value) {\n plaid.value.exit({ force: true });\n plaid.value.destroy();\n\n iframeLoaded.value = false;\n }\n }\n\n onUnmounted(teardown);\n\n return {\n ready,\n error,\n open: () => plaid.value?.open(),\n exit: (options?: Plaid.ExitOptions) => plaid.value?.exit(options),\n };\n}\n"],"names":["PLAID_SDK_URL","usePlaidLink","options","isPlaidScriptLoaded","error","useScriptTag","plaid","ref","iframeLoaded","watchSyncEffect","optionsVal","toValue","teardown","ready","computed","onUnmounted"],"mappings":";;AAKA,MAAMA,IAAgB;AAEtB,SAAwBC,EAAaC,GAAuC;AAC1E,QAAM,EAAE,UAAUC,GAAqB,OAAAC,
|
|
1
|
+
{"version":3,"file":"usePlaidLink.js","sources":["../src/composables/usePlaidLink/usePlaidLink.ts"],"sourcesContent":["import { computed, MaybeRef, onUnmounted, ref, toValue, watchSyncEffect } from 'vue';\n\nimport { Plaid } from '../../../types/plaid';\nimport useScriptTag from '../useScriptTag/useScriptTag';\n\nconst PLAID_SDK_URL = 'https://cdn.plaid.com/link/v2/stable/link-initialize.js';\n\nexport default function usePlaidLink(options: MaybeRef<Plaid.CreateConfig>) {\n const { isLoaded: isPlaidScriptLoaded, error } = useScriptTag(PLAID_SDK_URL);\n\n const plaid = ref<Plaid.LinkHandler | null>(null);\n const iframeLoaded = ref(false);\n\n // We want to trigger this as soon as options ref changes\n watchSyncEffect(() => {\n const optionsVal = toValue(options);\n\n if (!isPlaidScriptLoaded.value) {\n return;\n }\n\n if (!optionsVal.token && !optionsVal.receivedRedirectUri) {\n return;\n }\n\n if (!window.Plaid) {\n throw new Error('Error loading Plaid SDK');\n }\n\n // destroy & exit existing instances so we don't\n // have multiple Plaid link modals at the same time\n teardown();\n\n plaid.value = window.Plaid.create({\n ...optionsVal,\n onLoad: () => {\n iframeLoaded.value = true;\n optionsVal.onLoad?.();\n },\n });\n });\n\n const ready = computed(\n () => !error.value && plaid.value !== null && (isPlaidScriptLoaded.value || iframeLoaded.value),\n );\n\n function teardown() {\n if (plaid.value) {\n plaid.value.exit({ force: true });\n plaid.value.destroy();\n\n iframeLoaded.value = false;\n }\n }\n\n onUnmounted(teardown);\n\n return {\n ready,\n error,\n open: () => plaid.value?.open(),\n exit: (options?: Plaid.ExitOptions) => plaid.value?.exit(options),\n };\n}\n"],"names":["PLAID_SDK_URL","usePlaidLink","options","isPlaidScriptLoaded","error","useScriptTag","plaid","ref","iframeLoaded","watchSyncEffect","optionsVal","toValue","teardown","_a","ready","computed","onUnmounted"],"mappings":";;AAKA,MAAMA,IAAgB;AAEtB,SAAwBC,EAAaC,GAAuC;AAC1E,QAAM,EAAE,UAAUC,GAAqB,OAAAC,EAAM,IAAIC,EAAaL,CAAa,GAErEM,IAAQC,EAA8B,IAAI,GAC1CC,IAAeD,EAAI,EAAK;AAG9B,EAAAE,EAAgB,MAAM;AACd,UAAAC,IAAaC,EAAQT,CAAO;AAE9B,QAACC,EAAoB,SAIrB,GAACO,EAAW,SAAS,CAACA,EAAW,sBAIjC;AAAA,UAAA,CAAC,OAAO;AACJ,cAAA,IAAI,MAAM,yBAAyB;AAKlC,MAAAE,EAAA,GAEHN,EAAA,QAAQ,OAAO,MAAM,OAAO;AAAA,QAChC,GAAGI;AAAA,QACH,QAAQ,MAAM;;AACZ,UAAAF,EAAa,QAAQ,KACrBK,IAAAH,EAAW,WAAX,QAAAG,EAAA,KAAAH;AAAA,QAAoB;AAAA,MACtB,CACD;AAAA;AAAA,EAAA,CACF;AAED,QAAMI,IAAQC;AAAA,IACZ,MAAM,CAACX,EAAM,SAASE,EAAM,UAAU,SAASH,EAAoB,SAASK,EAAa;AAAA,EAC3F;AAEA,WAASI,IAAW;AAClB,IAAIN,EAAM,UACRA,EAAM,MAAM,KAAK,EAAE,OAAO,IAAM,GAChCA,EAAM,MAAM,QAAQ,GAEpBE,EAAa,QAAQ;AAAA,EACvB;AAGF,SAAAQ,EAAYJ,CAAQ,GAEb;AAAA,IACL,OAAAE;AAAA,IACA,OAAAV;AAAA,IACA,MAAM,MAAM;;AAAA,cAAAS,IAAAP,EAAM,UAAN,gBAAAO,EAAa;AAAA;AAAA,IACzB,MAAM,CAACX,MAAAA;;AAAgC,cAAAW,IAAAP,EAAM,UAAN,gBAAAO,EAAa,KAAKX;AAAAA;AAAAA,EAC3D;AACF;"}
|
package/dist/useScriptTag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScriptTag.js","sources":["../src/composables/useScriptTag/useScriptTag.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue';\n\ntype UseScriptOptions = {\n manual: boolean;\n};\n\nexport default function useScriptTag(url: string, options: UseScriptOptions = { manual: false }) {\n const scriptTag = ref<HTMLScriptElement | null>(null);\n const isLoaded = ref(false);\n const error = ref<Error | null>(null);\n\n const setIsLoaded = () => (isLoaded.value = true);\n const setError = (e: ErrorEvent) => (error.value = e.error);\n\n function loadScript() {\n let el = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (!el) {\n isLoaded.value = false;\n error.value = null;\n\n el = document.createElement('script');\n\n el.type = 'text/javascript';\n el.async = true;\n el.src = url;\n el.addEventListener('load', setIsLoaded);\n el.addEventListener('error', setError);\n document.head.appendChild(el);\n } else {\n isLoaded.value = true;\n }\n\n scriptTag.value = el;\n }\n\n function unloadScript() {\n if (!document) {\n return;\n }\n\n const elToBeRemoved = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (elToBeRemoved) {\n elToBeRemoved.removeEventListener('load', setIsLoaded);\n elToBeRemoved.removeEventListener('error', setError);\n\n document.head.removeChild(elToBeRemoved);\n\n scriptTag.value = null;\n isLoaded.value = false;\n }\n }\n\n if (!options.manual) {\n onMounted(loadScript);\n onUnmounted(unloadScript);\n }\n\n return { scriptTag, load: loadScript, unload: unloadScript, isLoaded, error };\n}\n"],"names":["useScriptTag","url","options","scriptTag","ref","isLoaded","error","setIsLoaded","setError","loadScript","el","unloadScript","elToBeRemoved","onMounted","onUnmounted"],"mappings":";AAMA,SAAwBA,EAAaC,GAAaC,IAA4B,EAAE,QAAQ,MAAS;
|
|
1
|
+
{"version":3,"file":"useScriptTag.js","sources":["../src/composables/useScriptTag/useScriptTag.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue';\n\ntype UseScriptOptions = {\n manual: boolean;\n};\n\nexport default function useScriptTag(url: string, options: UseScriptOptions = { manual: false }) {\n const scriptTag = ref<HTMLScriptElement | null>(null);\n const isLoaded = ref(false);\n const error = ref<Error | null>(null);\n\n const setIsLoaded = () => (isLoaded.value = true);\n const setError = (e: ErrorEvent) => (error.value = e.error);\n\n function loadScript() {\n let el = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (!el) {\n isLoaded.value = false;\n error.value = null;\n\n el = document.createElement('script');\n\n el.type = 'text/javascript';\n el.async = true;\n el.src = url;\n el.addEventListener('load', setIsLoaded);\n el.addEventListener('error', setError);\n document.head.appendChild(el);\n } else {\n isLoaded.value = true;\n }\n\n scriptTag.value = el;\n }\n\n function unloadScript() {\n if (!document) {\n return;\n }\n\n const elToBeRemoved = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (elToBeRemoved) {\n elToBeRemoved.removeEventListener('load', setIsLoaded);\n elToBeRemoved.removeEventListener('error', setError);\n\n document.head.removeChild(elToBeRemoved);\n\n scriptTag.value = null;\n isLoaded.value = false;\n }\n }\n\n if (!options.manual) {\n onMounted(loadScript);\n onUnmounted(unloadScript);\n }\n\n return { scriptTag, load: loadScript, unload: unloadScript, isLoaded, error };\n}\n"],"names":["useScriptTag","url","options","scriptTag","ref","isLoaded","error","setIsLoaded","setError","loadScript","el","unloadScript","elToBeRemoved","onMounted","onUnmounted"],"mappings":";AAMA,SAAwBA,EAAaC,GAAaC,IAA4B,EAAE,QAAQ,MAAS;AACzF,QAAAC,IAAYC,EAA8B,IAAI,GAC9CC,IAAWD,EAAI,EAAK,GACpBE,IAAQF,EAAkB,IAAI,GAE9BG,IAAc,MAAOF,EAAS,QAAQ,IACtCG,IAAW,CAAC,MAAmBF,EAAM,QAAQ,EAAE;AAErD,WAASG,IAAa;AACpB,QAAIC,IAAK,SAAS,cAAiC,eAAeT,CAAG,IAAI;AAEzE,IAAKS,IAaHL,EAAS,QAAQ,MAZjBA,EAAS,QAAQ,IACjBC,EAAM,QAAQ,MAETI,IAAA,SAAS,cAAc,QAAQ,GAEpCA,EAAG,OAAO,mBACVA,EAAG,QAAQ,IACXA,EAAG,MAAMT,GACNS,EAAA,iBAAiB,QAAQH,CAAW,GACpCG,EAAA,iBAAiB,SAASF,CAAQ,GAC5B,SAAA,KAAK,YAAYE,CAAE,IAK9BP,EAAU,QAAQO;AAAA,EAAA;AAGpB,WAASC,IAAe;AACtB,QAAI,CAAC;AACH;AAGF,UAAMC,IAAgB,SAAS,cAAiC,eAAeX,CAAG,IAAI;AAEtF,IAAIW,MACYA,EAAA,oBAAoB,QAAQL,CAAW,GACvCK,EAAA,oBAAoB,SAASJ,CAAQ,GAE1C,SAAA,KAAK,YAAYI,CAAa,GAEvCT,EAAU,QAAQ,MAClBE,EAAS,QAAQ;AAAA,EACnB;AAGE,SAACH,EAAQ,WACXW,EAAUJ,CAAU,GACpBK,EAAYH,CAAY,IAGnB,EAAE,WAAAR,GAAW,MAAMM,GAAY,QAAQE,GAAc,UAAAN,GAAU,OAAAC,EAAM;AAC9E;"}
|
package/dist/useSearch.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import f from "lodash-es/get";
|
|
2
|
-
import { computed as
|
|
3
|
-
import { i as
|
|
4
|
-
import { normalizeText as
|
|
5
|
-
function S({ items: t, fieldNames:
|
|
6
|
-
const
|
|
2
|
+
import { computed as l } from "vue";
|
|
3
|
+
import { i as s, s as h } from "./searchFuzzy-DRasJ33G.js";
|
|
4
|
+
import { normalizeText as m } from "./utils/helpers.js";
|
|
5
|
+
function S({ items: t, fieldNames: u, trackBy: o = "id" }) {
|
|
6
|
+
const c = l(() => {
|
|
7
7
|
const r = {};
|
|
8
|
-
return !
|
|
9
|
-
const n = String(o
|
|
10
|
-
r[n] =
|
|
8
|
+
return !u || !u.length || t.value.forEach((e) => {
|
|
9
|
+
const n = String(e[o]);
|
|
10
|
+
r[n] = u.map((a) => m(f(e, a.split(".")))).filter(Boolean).join(" ");
|
|
11
11
|
}), r;
|
|
12
12
|
});
|
|
13
|
-
function
|
|
14
|
-
return
|
|
15
|
-
const
|
|
16
|
-
return
|
|
13
|
+
function i(r, e) {
|
|
14
|
+
return e != null && e.fuzzy && s(t.value) ? h(r, t.value, { fieldNames: u }) : t.value.filter((n) => {
|
|
15
|
+
const a = String(n[o]);
|
|
16
|
+
return c.value[a].includes(r.trim().toLowerCase());
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
return {
|
|
20
|
-
searchFor:
|
|
20
|
+
searchFor: i
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
export {
|
package/dist/useSearch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearch.js","sources":["../src/composables/useSearch/useSearch.ts"],"sourcesContent":["import get from 'lodash-es/get';\nimport { computed } from 'vue';\n\nimport { isListOfObjects } from '../../../types/utils';\nimport { normalizeText } from '../../utils/helpers';\nimport searchFuzzy from '../../utils/searchFuzzy';\nimport { SearchMap, UseSearchArgs } from './useSearch.types';\n\nexport default function useSearch<Item = unknown>({ items, fieldNames, trackBy = 'id' }: UseSearchArgs<Item>) {\n const searchMap = computed<SearchMap>(() => {\n const newSearchMap = {};\n\n if (!fieldNames || !fieldNames.length) {\n return newSearchMap;\n }\n\n items.value.forEach((item) => {\n const itemKey = String(item[trackBy]);\n\n newSearchMap[itemKey] = fieldNames\n .map((fieldName) => {\n return normalizeText(get(item, fieldName.split('.'))); // get the field's value\n })\n .filter(Boolean)\n .join(' ');\n });\n\n return newSearchMap;\n });\n\n /**\n * Filter `items` by the `fieldNames`'s values.\n * @param options.fuzzy - will use fuzzy search if true\n */\n function searchFor(\n searchTerm: string,\n options?: {\n fuzzy?: boolean;\n },\n ): Item[] {\n if (options?.fuzzy && isListOfObjects(items.value)) {\n return searchFuzzy<Item>(searchTerm, items.value, { fieldNames });\n }\n\n return items.value.filter((item) => {\n const itemKey = String(item[trackBy]);\n\n return searchMap.value[itemKey].includes(searchTerm.trim().toLowerCase());\n });\n }\n\n return {\n searchFor,\n };\n}\n\nexport * from './useSearch.types';\n"],"names":["useSearch","items","fieldNames","trackBy","searchMap","computed","newSearchMap","item","itemKey","fieldName","normalizeText","get","searchFor","searchTerm","options","isListOfObjects","searchFuzzy"],"mappings":";;;;AAQA,SAAwBA,EAA0B,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,IAAU,QAA6B;
|
|
1
|
+
{"version":3,"file":"useSearch.js","sources":["../src/composables/useSearch/useSearch.ts"],"sourcesContent":["import get from 'lodash-es/get';\nimport { computed } from 'vue';\n\nimport { isListOfObjects } from '../../../types/utils';\nimport { normalizeText } from '../../utils/helpers';\nimport searchFuzzy from '../../utils/searchFuzzy';\nimport { SearchMap, UseSearchArgs } from './useSearch.types';\n\nexport default function useSearch<Item = unknown>({ items, fieldNames, trackBy = 'id' }: UseSearchArgs<Item>) {\n const searchMap = computed<SearchMap>(() => {\n const newSearchMap = {};\n\n if (!fieldNames || !fieldNames.length) {\n return newSearchMap;\n }\n\n items.value.forEach((item) => {\n const itemKey = String(item[trackBy]);\n\n newSearchMap[itemKey] = fieldNames\n .map((fieldName) => {\n return normalizeText(get(item, fieldName.split('.'))); // get the field's value\n })\n .filter(Boolean)\n .join(' ');\n });\n\n return newSearchMap;\n });\n\n /**\n * Filter `items` by the `fieldNames`'s values.\n * @param options.fuzzy - will use fuzzy search if true\n */\n function searchFor(\n searchTerm: string,\n options?: {\n fuzzy?: boolean;\n },\n ): Item[] {\n if (options?.fuzzy && isListOfObjects(items.value)) {\n return searchFuzzy<Item>(searchTerm, items.value, { fieldNames });\n }\n\n return items.value.filter((item) => {\n const itemKey = String(item[trackBy]);\n\n return searchMap.value[itemKey].includes(searchTerm.trim().toLowerCase());\n });\n }\n\n return {\n searchFor,\n };\n}\n\nexport * from './useSearch.types';\n"],"names":["useSearch","items","fieldNames","trackBy","searchMap","computed","newSearchMap","item","itemKey","fieldName","normalizeText","get","searchFor","searchTerm","options","isListOfObjects","searchFuzzy"],"mappings":";;;;AAQA,SAAwBA,EAA0B,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,IAAU,QAA6B;AACtG,QAAAC,IAAYC,EAAoB,MAAM;AAC1C,UAAMC,IAAe,CAAC;AAEtB,WAAI,CAACJ,KAAc,CAACA,EAAW,UAIzBD,EAAA,MAAM,QAAQ,CAACM,MAAS;AAC5B,YAAMC,IAAU,OAAOD,EAAKJ,CAAO,CAAC;AAEpC,MAAAG,EAAaE,CAAO,IAAIN,EACrB,IAAI,CAACO,MACGC,EAAcC,EAAIJ,GAAME,EAAU,MAAM,GAAG,CAAC,CAAC,CACrD,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,IAAA,CACZ,GAEMH;AAAA,EAAA,CACR;AAMQ,WAAAM,EACPC,GACAC,GAGQ;AACR,WAAIA,KAAA,QAAAA,EAAS,SAASC,EAAgBd,EAAM,KAAK,IACxCe,EAAkBH,GAAYZ,EAAM,OAAO,EAAE,YAAAC,GAAY,IAG3DD,EAAM,MAAM,OAAO,CAACM,MAAS;AAClC,YAAMC,IAAU,OAAOD,EAAKJ,CAAO,CAAC;AAE7B,aAAAC,EAAU,MAAMI,CAAO,EAAE,SAASK,EAAW,OAAO,aAAa;AAAA,IAAA,CACzE;AAAA,EAAA;AAGI,SAAA;AAAA,IACL,WAAAD;AAAA,EACF;AACF;"}
|
package/dist/useSelection.js
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import { computed as
|
|
2
|
-
function
|
|
3
|
-
items:
|
|
4
|
-
trackBy:
|
|
5
|
-
shouldDisable:
|
|
1
|
+
import { computed as f, toValue as w, ref as x } from "vue";
|
|
2
|
+
function R({
|
|
3
|
+
items: g,
|
|
4
|
+
trackBy: A = "id",
|
|
5
|
+
shouldDisable: t,
|
|
6
6
|
shouldPreselect: o
|
|
7
7
|
}) {
|
|
8
|
-
const
|
|
9
|
-
function
|
|
10
|
-
return String(e[
|
|
8
|
+
const v = f(() => w(g));
|
|
9
|
+
function r(e) {
|
|
10
|
+
return String(e[A]);
|
|
11
11
|
}
|
|
12
|
-
const
|
|
13
|
-
() =>
|
|
14
|
-
(e,
|
|
12
|
+
const c = f(
|
|
13
|
+
() => v.value.reduce(
|
|
14
|
+
(e, u) => (e[r(u)] = u, e),
|
|
15
15
|
{}
|
|
16
16
|
)
|
|
17
|
-
),
|
|
18
|
-
function
|
|
19
|
-
|
|
17
|
+
), n = x(/* @__PURE__ */ new Set());
|
|
18
|
+
function m(e) {
|
|
19
|
+
t != null && t(c.value[r(e)]) || n.value.add(r(e));
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
|
|
21
|
+
function E(e) {
|
|
22
|
+
t != null && t(c.value[r(e)]) || n.value.delete(r(e));
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
if (
|
|
24
|
+
function k(e) {
|
|
25
|
+
if (t != null && t(c.value[r(e)]))
|
|
26
26
|
return;
|
|
27
|
-
|
|
27
|
+
n.value.has(r(e)) ? n.value.delete(r(e)) : n.value.add(r(e));
|
|
28
28
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
function l() {
|
|
30
|
+
v.value.forEach((e) => {
|
|
31
|
+
t != null && t(e) || n.value.add(r(e));
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
function a() {
|
|
35
|
-
typeof
|
|
36
|
-
|
|
37
|
-
}) :
|
|
35
|
+
typeof t == "function" ? n.value.forEach((e, u) => {
|
|
36
|
+
t(c.value[u]) || n.value.delete(u);
|
|
37
|
+
}) : n.value.clear();
|
|
38
38
|
}
|
|
39
|
-
function
|
|
40
|
-
|
|
39
|
+
function z() {
|
|
40
|
+
y.value ? a() : l();
|
|
41
41
|
}
|
|
42
42
|
function i() {
|
|
43
|
-
a(), typeof o == "function" &&
|
|
44
|
-
o(e) &&
|
|
43
|
+
a(), typeof o == "function" && v.value.forEach((e) => {
|
|
44
|
+
o(e) && n.value.add(r(e));
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
return
|
|
47
|
+
function I(e) {
|
|
48
|
+
return n.value.has(r(e));
|
|
49
49
|
}
|
|
50
|
-
function
|
|
51
|
-
return typeof
|
|
50
|
+
function K(e) {
|
|
51
|
+
return typeof t != "function" ? !1 : t(c.value[r(e)]);
|
|
52
52
|
}
|
|
53
|
-
const
|
|
54
|
-
if (typeof
|
|
55
|
-
return
|
|
56
|
-
for (const e of
|
|
57
|
-
if (!
|
|
53
|
+
const N = f(() => Array.from(n.value.keys()).map((e) => c.value[e])), S = f(() => n.value.size === v.value.length), y = f(() => {
|
|
54
|
+
if (typeof t != "function")
|
|
55
|
+
return S.value;
|
|
56
|
+
for (const e of v.value)
|
|
57
|
+
if (!t(e) && !n.value.has(r(e)))
|
|
58
58
|
return !1;
|
|
59
59
|
return !0;
|
|
60
|
-
}),
|
|
61
|
-
if (typeof
|
|
62
|
-
return
|
|
63
|
-
for (const e of
|
|
64
|
-
if (!
|
|
60
|
+
}), p = f(() => n.value.size > 0), T = f(() => {
|
|
61
|
+
if (typeof t != "function")
|
|
62
|
+
return p.value;
|
|
63
|
+
for (const e of n.value.keys())
|
|
64
|
+
if (!t(c.value[e]))
|
|
65
65
|
return !0;
|
|
66
66
|
return !1;
|
|
67
67
|
});
|
|
68
68
|
return i(), {
|
|
69
|
-
select:
|
|
70
|
-
unselect:
|
|
71
|
-
selectToggle:
|
|
72
|
-
selectAll:
|
|
69
|
+
select: m,
|
|
70
|
+
unselect: E,
|
|
71
|
+
selectToggle: k,
|
|
72
|
+
selectAll: l,
|
|
73
73
|
unselectAll: a,
|
|
74
|
-
selectToggleAll:
|
|
74
|
+
selectToggleAll: z,
|
|
75
75
|
resetSelection: i,
|
|
76
|
-
isSelected:
|
|
77
|
-
isSelectDisabled:
|
|
78
|
-
selectedItems:
|
|
79
|
-
allSelected:
|
|
80
|
-
allNonDisabledSelected:
|
|
81
|
-
someSelected:
|
|
82
|
-
someNonDisabledSelected:
|
|
76
|
+
isSelected: I,
|
|
77
|
+
isSelectDisabled: K,
|
|
78
|
+
selectedItems: N,
|
|
79
|
+
allSelected: S,
|
|
80
|
+
allNonDisabledSelected: y,
|
|
81
|
+
someSelected: p,
|
|
82
|
+
someNonDisabledSelected: T
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
export {
|
|
86
|
-
|
|
86
|
+
R as default
|
|
87
87
|
};
|
|
88
88
|
//# sourceMappingURL=useSelection.js.map
|
package/dist/useSelection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelection.js","sources":["../src/composables/useSelection/useSelection.ts"],"sourcesContent":["import { computed, ref, toValue } from 'vue';\n\nimport { UseSelection, UseSelectionArgs } from './useSelection.types';\n\nexport default function useSelection<Item extends object>({\n items,\n trackBy = 'id',\n shouldDisable,\n shouldPreselect,\n}: UseSelectionArgs<Item>): UseSelection<Item> {\n const itemsRef = computed(() => toValue(items));\n\n function getItemKey(item: Item) {\n return String(item[trackBy]);\n }\n\n const itemsByKey = computed(() =>\n itemsRef.value.reduce(\n (map, item) => {\n map[getItemKey(item)] = item;\n\n return map;\n },\n {} as { [key: string]: Item },\n ),\n );\n\n /**\n * A set of item keys that are currently selected, regardless if they are disabled\n */\n const selectedSet = ref(new Set<string>());\n\n function select(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.add(getItemKey(item));\n }\n\n function unselect(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.delete(getItemKey(item));\n }\n\n function selectToggle(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n const isSelected = selectedSet.value.has(getItemKey(item));\n\n if (isSelected) {\n selectedSet.value.delete(getItemKey(item));\n } else {\n selectedSet.value.add(getItemKey(item));\n }\n }\n\n function selectAll() {\n itemsRef.value.forEach((item) => {\n if (!shouldDisable?.(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n\n function unselectAll() {\n if (typeof shouldDisable === 'function') {\n selectedSet.value.forEach((_isSelected, itemKey) => {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n selectedSet.value.delete(itemKey);\n }\n });\n } else {\n selectedSet.value.clear();\n }\n }\n\n function selectToggleAll() {\n if (allNonDisabledSelected.value) {\n unselectAll();\n } else {\n selectAll();\n }\n }\n\n function resetSelection() {\n unselectAll();\n\n if (typeof shouldPreselect === 'function') {\n itemsRef.value.forEach((item) => {\n if (shouldPreselect(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n }\n\n function isSelected(item: Item) {\n return selectedSet.value.has(getItemKey(item));\n }\n\n function isSelectDisabled(item: Item) {\n if (typeof shouldDisable !== 'function') {\n return false;\n }\n\n return shouldDisable(itemsByKey.value[getItemKey(item)]);\n }\n\n const selectedItems = computed(() => {\n return Array.from(selectedSet.value.keys()).map((itemKey) => itemsByKey.value[itemKey]);\n });\n\n const allSelected = computed(() => {\n return selectedSet.value.size === itemsRef.value.length;\n });\n\n const allNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return allSelected.value;\n }\n\n for (const item of itemsRef.value) {\n if (!shouldDisable(item) && !selectedSet.value.has(getItemKey(item))) {\n return false;\n }\n }\n\n return true;\n });\n\n const someSelected = computed(() => {\n return selectedSet.value.size > 0;\n });\n\n const someNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return someSelected.value;\n }\n\n for (const itemKey of selectedSet.value.keys()) {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n return true;\n }\n }\n\n return false;\n });\n\n resetSelection();\n\n return {\n select,\n unselect,\n selectToggle,\n selectAll,\n unselectAll,\n selectToggleAll,\n resetSelection,\n isSelected,\n isSelectDisabled,\n selectedItems,\n allSelected,\n allNonDisabledSelected,\n someSelected,\n someNonDisabledSelected,\n };\n}\n\nexport * from './useSelection.types';\n"],"names":["useSelection","items","trackBy","shouldDisable","shouldPreselect","itemsRef","computed","toValue","getItemKey","item","itemsByKey","map","selectedSet","ref","select","unselect","selectToggle","selectAll","unselectAll","_isSelected","itemKey","selectToggleAll","allNonDisabledSelected","resetSelection","isSelected","isSelectDisabled","selectedItems","allSelected","someSelected","someNonDisabledSelected"],"mappings":";AAIA,SAAwBA,EAAkC;AAAA,EACxD,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,eAAAC;AAAA,EACA,iBAAAC;AACF,GAA+C;AAC7C,QAAMC,IAAWC,EAAS,MAAMC,EAAQN,CAAK,CAAC;AAE9C,WAASO,EAAWC,GAAY;
|
|
1
|
+
{"version":3,"file":"useSelection.js","sources":["../src/composables/useSelection/useSelection.ts"],"sourcesContent":["import { computed, ref, toValue } from 'vue';\n\nimport { UseSelection, UseSelectionArgs } from './useSelection.types';\n\nexport default function useSelection<Item extends object>({\n items,\n trackBy = 'id',\n shouldDisable,\n shouldPreselect,\n}: UseSelectionArgs<Item>): UseSelection<Item> {\n const itemsRef = computed(() => toValue(items));\n\n function getItemKey(item: Item) {\n return String(item[trackBy]);\n }\n\n const itemsByKey = computed(() =>\n itemsRef.value.reduce(\n (map, item) => {\n map[getItemKey(item)] = item;\n\n return map;\n },\n {} as { [key: string]: Item },\n ),\n );\n\n /**\n * A set of item keys that are currently selected, regardless if they are disabled\n */\n const selectedSet = ref(new Set<string>());\n\n function select(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.add(getItemKey(item));\n }\n\n function unselect(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.delete(getItemKey(item));\n }\n\n function selectToggle(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n const isSelected = selectedSet.value.has(getItemKey(item));\n\n if (isSelected) {\n selectedSet.value.delete(getItemKey(item));\n } else {\n selectedSet.value.add(getItemKey(item));\n }\n }\n\n function selectAll() {\n itemsRef.value.forEach((item) => {\n if (!shouldDisable?.(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n\n function unselectAll() {\n if (typeof shouldDisable === 'function') {\n selectedSet.value.forEach((_isSelected, itemKey) => {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n selectedSet.value.delete(itemKey);\n }\n });\n } else {\n selectedSet.value.clear();\n }\n }\n\n function selectToggleAll() {\n if (allNonDisabledSelected.value) {\n unselectAll();\n } else {\n selectAll();\n }\n }\n\n function resetSelection() {\n unselectAll();\n\n if (typeof shouldPreselect === 'function') {\n itemsRef.value.forEach((item) => {\n if (shouldPreselect(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n }\n\n function isSelected(item: Item) {\n return selectedSet.value.has(getItemKey(item));\n }\n\n function isSelectDisabled(item: Item) {\n if (typeof shouldDisable !== 'function') {\n return false;\n }\n\n return shouldDisable(itemsByKey.value[getItemKey(item)]);\n }\n\n const selectedItems = computed(() => {\n return Array.from(selectedSet.value.keys()).map((itemKey) => itemsByKey.value[itemKey]);\n });\n\n const allSelected = computed(() => {\n return selectedSet.value.size === itemsRef.value.length;\n });\n\n const allNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return allSelected.value;\n }\n\n for (const item of itemsRef.value) {\n if (!shouldDisable(item) && !selectedSet.value.has(getItemKey(item))) {\n return false;\n }\n }\n\n return true;\n });\n\n const someSelected = computed(() => {\n return selectedSet.value.size > 0;\n });\n\n const someNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return someSelected.value;\n }\n\n for (const itemKey of selectedSet.value.keys()) {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n return true;\n }\n }\n\n return false;\n });\n\n resetSelection();\n\n return {\n select,\n unselect,\n selectToggle,\n selectAll,\n unselectAll,\n selectToggleAll,\n resetSelection,\n isSelected,\n isSelectDisabled,\n selectedItems,\n allSelected,\n allNonDisabledSelected,\n someSelected,\n someNonDisabledSelected,\n };\n}\n\nexport * from './useSelection.types';\n"],"names":["useSelection","items","trackBy","shouldDisable","shouldPreselect","itemsRef","computed","toValue","getItemKey","item","itemsByKey","map","selectedSet","ref","select","unselect","selectToggle","selectAll","unselectAll","_isSelected","itemKey","selectToggleAll","allNonDisabledSelected","resetSelection","isSelected","isSelectDisabled","selectedItems","allSelected","someSelected","someNonDisabledSelected"],"mappings":"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"}
|
package/dist/useSortable.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { u as
|
|
3
|
-
import { isRef as
|
|
4
|
-
function
|
|
5
|
-
if (
|
|
6
|
-
const r =
|
|
1
|
+
import v from "@leaflink/snitch";
|
|
2
|
+
import { u as I } from "./index-C14LhAwV.js";
|
|
3
|
+
import { isRef as w, toValue as D, nextTick as A, computed as i, ref as y, watch as S, onMounted as $, onBeforeUnmount as G } from "vue";
|
|
4
|
+
function O({ list: n, from: s, to: e }) {
|
|
5
|
+
if (s === e) return;
|
|
6
|
+
const r = w(n), a = r ? [...D(n)] : D(n);
|
|
7
7
|
if (e >= 0 && e < a.length) {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
a.splice(e, 0,
|
|
8
|
+
const u = a.splice(s, 1)[0];
|
|
9
|
+
A(() => {
|
|
10
|
+
a.splice(e, 0, u), r && (n.value = a);
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
function B(n, s) {
|
|
15
|
+
var a;
|
|
16
|
+
const e = c(n.target).cloneNode(!0);
|
|
17
|
+
e.classList.add(...s), e.style.position = "absolute", e.style.top = "-9999px", e.style.listStyle = "none", e.setAttribute("data-test", `${e.dataset.test}|ghost`), e.removeAttribute("draggable"), document.body.appendChild(e), (a = n.dataTransfer) == null || a.setDragImage(e, e.offsetWidth / 2, e.offsetHeight / 2);
|
|
17
18
|
function r() {
|
|
18
19
|
requestAnimationFrame(() => {
|
|
19
20
|
document.body.removeChild(e);
|
|
@@ -24,38 +25,45 @@ function O(o, l) {
|
|
|
24
25
|
cleanupGhostElement: r
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
if (!
|
|
30
|
-
return
|
|
28
|
+
function c(n) {
|
|
29
|
+
const s = n == null ? void 0 : n.closest("[draggable=true]");
|
|
30
|
+
if (!s) throw new Error("Draggable element not found");
|
|
31
|
+
return s;
|
|
31
32
|
}
|
|
32
|
-
function
|
|
33
|
-
isEnabled:
|
|
34
|
-
sortInPlace:
|
|
33
|
+
function q({
|
|
34
|
+
isEnabled: n = !0,
|
|
35
|
+
sortInPlace: s = !0,
|
|
35
36
|
...e
|
|
36
37
|
}) {
|
|
37
|
-
const r = i(() =>
|
|
38
|
+
const r = i(() => I(e.ref)), a = y(-1), u = y(-1), b = i(() => a.value !== -1), T = i(() => {
|
|
39
|
+
var t;
|
|
40
|
+
return ((t = e.ghostClass) == null ? void 0 : t.split(" ")) || [];
|
|
41
|
+
}), f = i(() => {
|
|
42
|
+
var t;
|
|
43
|
+
return ((t = e.chosenClass) == null ? void 0 : t.split(" ")) || [];
|
|
44
|
+
}), g = (t) => {
|
|
45
|
+
var l;
|
|
38
46
|
if (!(!t.dataTransfer || !r.value)) {
|
|
39
47
|
t.dataTransfer.setData("text/plain", ""), t.dataTransfer.effectAllowed = "move";
|
|
40
48
|
try {
|
|
41
|
-
const
|
|
42
|
-
if (
|
|
43
|
-
const { cleanupGhostElement:
|
|
44
|
-
|
|
45
|
-
} catch (
|
|
46
|
-
|
|
49
|
+
const o = c(t.target), d = Array.from(r.value.children).indexOf(o);
|
|
50
|
+
if (d === -1) return;
|
|
51
|
+
const { cleanupGhostElement: C } = B(t, T.value);
|
|
52
|
+
u.value = a.value = d, o.classList.add(...f.value), C(), (l = e.onDragStart) == null || l.call(e, { ...t, oldIndex: d });
|
|
53
|
+
} catch (o) {
|
|
54
|
+
v.error(`Error in drag start: ${o}`);
|
|
47
55
|
}
|
|
48
56
|
}
|
|
49
57
|
}, m = (t) => {
|
|
50
58
|
if (!(!t.dataTransfer || !r.value)) {
|
|
51
59
|
t.dataTransfer.dropEffect = "move";
|
|
52
60
|
try {
|
|
53
|
-
const
|
|
54
|
-
if (
|
|
55
|
-
const
|
|
56
|
-
r.value.insertBefore(
|
|
57
|
-
} catch (
|
|
58
|
-
|
|
61
|
+
const l = c(t.target), o = Array.from(r.value.children).indexOf(l);
|
|
62
|
+
if (o === -1 || o === a.value) return;
|
|
63
|
+
const d = r.value.children[a.value];
|
|
64
|
+
r.value.insertBefore(d, o < a.value ? l : l.nextSibling), a.value = o;
|
|
65
|
+
} catch (l) {
|
|
66
|
+
v.error(`Error in drag enter: ${l}`);
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
69
|
};
|
|
@@ -65,43 +73,44 @@ function k({
|
|
|
65
73
|
function E(t) {
|
|
66
74
|
if (t.preventDefault(), !!r.value)
|
|
67
75
|
try {
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
} catch (
|
|
71
|
-
|
|
76
|
+
if (u.value === a.value || !s) return;
|
|
77
|
+
O({ list: e.list, from: u.value, to: a.value });
|
|
78
|
+
} catch (l) {
|
|
79
|
+
v.error(`Error in drag drop: ${l}`);
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
|
-
function
|
|
82
|
+
function L(t) {
|
|
83
|
+
var l;
|
|
75
84
|
try {
|
|
76
|
-
|
|
85
|
+
c(t.target).classList.remove(...f.value), (l = e.onDragEnd) == null || l.call(e, {
|
|
77
86
|
...t,
|
|
78
|
-
oldIndex:
|
|
87
|
+
oldIndex: u.value,
|
|
79
88
|
newIndex: a.value
|
|
80
|
-
}),
|
|
81
|
-
} catch (
|
|
82
|
-
|
|
89
|
+
}), u.value = a.value = -1;
|
|
90
|
+
} catch (o) {
|
|
91
|
+
v.error(`Error in drag end: ${o}`);
|
|
83
92
|
}
|
|
84
93
|
}
|
|
85
|
-
|
|
86
|
-
() =>
|
|
87
|
-
() =>
|
|
94
|
+
S(
|
|
95
|
+
() => n,
|
|
96
|
+
() => n ? p() : x()
|
|
88
97
|
);
|
|
89
|
-
function
|
|
90
|
-
r.value && (r.value.addEventListener("dragstart", g), r.value.addEventListener("dragend",
|
|
98
|
+
function p() {
|
|
99
|
+
r.value && (r.value.addEventListener("dragstart", g), r.value.addEventListener("dragend", L), r.value.addEventListener("dragenter", m), r.value.addEventListener("dragover", h), r.value.addEventListener("drop", E));
|
|
91
100
|
}
|
|
92
101
|
function x() {
|
|
93
|
-
r.value && (r.value.removeEventListener("dragstart", g), r.value.removeEventListener("dragend",
|
|
102
|
+
r.value && (r.value.removeEventListener("dragstart", g), r.value.removeEventListener("dragend", L), r.value.removeEventListener("dragenter", m), r.value.removeEventListener("dragover", h), r.value.removeEventListener("drop", E));
|
|
94
103
|
}
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
}),
|
|
104
|
+
return $(() => {
|
|
105
|
+
n && p();
|
|
106
|
+
}), G(x), {
|
|
98
107
|
isDragging: b,
|
|
99
|
-
oldIndex:
|
|
108
|
+
oldIndex: u,
|
|
100
109
|
newIndex: a
|
|
101
110
|
};
|
|
102
111
|
}
|
|
103
112
|
export {
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
q as default,
|
|
114
|
+
O as moveSortableElements
|
|
106
115
|
};
|
|
107
116
|
//# sourceMappingURL=useSortable.js.map
|
package/dist/useSortable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSortable.js","sources":["../src/composables/useSortable/useSortable.utils.ts","../src/composables/useSortable/useSortable.ts"],"sourcesContent":["import { isRef, nextTick, Ref, toValue } from 'vue';\n\nimport { MoveSortableElementsOptions } from './useSortable.types';\n\n/**\n * Move sortable elements in the list\n * @param list List of sortable elements\n * @param from Original element position\n * @param to New element position\n */\nexport function moveSortableElements<ListItem>({ list, from, to }: MoveSortableElementsOptions<ListItem>): void {\n if (from === to) return;\n\n const _listIsRef = isRef(list);\n // When the list is a ref, make a shallow copy of it to avoid repeatedly triggering side effects when moving elements\n const listCopy = _listIsRef ? [...toValue(list)] : toValue(list);\n\n if (to >= 0 && to < listCopy.length) {\n const element = listCopy.splice(from, 1)[0];\n nextTick(() => {\n listCopy.splice(to, 0, element);\n // When list is ref, assign listCopy to list.value\n if (_listIsRef) (list as Ref).value = listCopy;\n });\n }\n}\n\n/**\n * Create a ghost element for dragging, which is the element that follows the cursor while dragging\n * @param e Drag event\n * @param ghostClass Custom classes to be added to the ghost element\n * @returns Ghost element and cleanup function\n */\nexport function createGhostElement(e: DragEvent, ghostClass: string[]) {\n const ghost = getValidDragTarget(e.target as HTMLElement).cloneNode(true) as HTMLElement;\n\n ghost.classList.add(...ghostClass);\n\n ghost.style.position = 'absolute';\n ghost.style.top = '-9999px';\n ghost.style.listStyle = 'none';\n ghost.setAttribute('data-test', `${ghost.dataset.test}|ghost`);\n ghost.removeAttribute('draggable');\n\n document.body.appendChild(ghost);\n\n e.dataTransfer?.setDragImage(ghost, ghost.offsetWidth / 2, ghost.offsetHeight / 2);\n\n function cleanupGhostElement() {\n requestAnimationFrame(() => {\n document.body.removeChild(ghost);\n });\n }\n\n return {\n ghost,\n cleanupGhostElement,\n };\n}\n\n/**\n * Get the valid draggable target element\n * @param element\n * @returns Draggable element\n */\nexport function getValidDragTarget(element: HTMLElement | null) {\n const dragElement = element?.closest<HTMLElement>('[draggable=true]');\n if (!dragElement) throw new Error('Draggable element not found');\n return dragElement;\n}\n","import logger from '@leaflink/snitch';\nimport { unrefElement } from '@vueuse/core';\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n\nimport type { UseSortableOptions, UseSortableReturn } from './useSortable.types';\nimport { createGhostElement, getValidDragTarget, moveSortableElements } from './useSortable.utils';\n\nexport * from './useSortable.types';\nexport { moveSortableElements } from './useSortable.utils';\n\nexport default function useSortable<SortableItem>({\n isEnabled = true,\n sortInPlace = true,\n ...options\n}: UseSortableOptions<SortableItem>): UseSortableReturn {\n const parentEl = computed(() => unrefElement(options.ref));\n\n const newIndex = ref(-1);\n const oldIndex = ref(-1);\n\n const isDragging = computed(() => newIndex.value !== -1);\n\n const ghostClasses = computed(() => options.ghostClass?.split(' ') || []);\n const chosenClasses = computed(() => options.chosenClass?.split(' ') || []);\n\n const handleDragStart = (e: DragEvent) => {\n if (!e.dataTransfer || !parentEl.value) return;\n e.dataTransfer.setData('text/plain', ''); // Required for Firefox\n e.dataTransfer.effectAllowed = 'move';\n\n try {\n const target = getValidDragTarget(e.target as HTMLElement);\n\n const index = Array.from(parentEl.value.children).indexOf(target);\n if (index === -1) return;\n\n const { cleanupGhostElement } = createGhostElement(e, ghostClasses.value);\n\n oldIndex.value = newIndex.value = index;\n\n target.classList.add(...chosenClasses.value);\n\n cleanupGhostElement();\n\n options.onDragStart?.({ ...e, oldIndex: index });\n } catch (error) {\n logger.error(`Error in drag start: ${error}`);\n }\n };\n\n const handleDragEnter = (e: DragEvent) => {\n if (!e.dataTransfer || !parentEl.value) return;\n e.dataTransfer.dropEffect = 'move';\n\n try {\n const target = getValidDragTarget(e.target as HTMLElement);\n\n const index = Array.from(parentEl.value.children).indexOf(target);\n if (index === -1 || index === newIndex.value) return;\n\n const draggedEl = parentEl.value.children[newIndex.value];\n parentEl.value.insertBefore(draggedEl, index < newIndex.value ? target : target.nextSibling);\n\n newIndex.value = index;\n } catch (error) {\n logger.error(`Error in drag enter: ${error}`);\n }\n };\n\n function handleDragOver(e: DragEvent) {\n e.preventDefault(); // Required to allow dropping\n }\n\n function handleDrop(e: DragEvent) {\n e.preventDefault();\n\n if (!parentEl.value) return;\n\n try {\n if (oldIndex.value === newIndex.value || !sortInPlace) return;\n moveSortableElements({ list: options.list, from: oldIndex.value, to: newIndex.value });\n } catch (error) {\n logger.error(`Error in drag drop: ${error}`);\n }\n }\n\n function handleDragEnd(e: DragEvent) {\n try {\n const target = getValidDragTarget(e.target as HTMLElement);\n\n target.classList.remove(...chosenClasses.value);\n\n options.onDragEnd?.({\n ...e,\n oldIndex: oldIndex.value,\n newIndex: newIndex.value,\n });\n\n oldIndex.value = newIndex.value = -1;\n } catch (error) {\n logger.error(`Error in drag end: ${error}`);\n }\n }\n\n watch(\n () => isEnabled,\n () => (isEnabled ? setupListeners() : removeListeners()),\n );\n\n function setupListeners() {\n if (!parentEl.value) return;\n\n parentEl.value.addEventListener('dragstart', handleDragStart);\n parentEl.value.addEventListener('dragend', handleDragEnd);\n parentEl.value.addEventListener('dragenter', handleDragEnter);\n parentEl.value.addEventListener('dragover', handleDragOver);\n parentEl.value.addEventListener('drop', handleDrop);\n }\n\n function removeListeners() {\n if (!parentEl.value) return;\n\n parentEl.value.removeEventListener('dragstart', handleDragStart);\n parentEl.value.removeEventListener('dragend', handleDragEnd);\n parentEl.value.removeEventListener('dragenter', handleDragEnter);\n parentEl.value.removeEventListener('dragover', handleDragOver);\n parentEl.value.removeEventListener('drop', handleDrop);\n }\n\n onMounted(() => {\n if (!isEnabled) return;\n setupListeners();\n });\n\n onBeforeUnmount(removeListeners);\n\n return {\n isDragging,\n oldIndex,\n newIndex,\n };\n}\n"],"names":["moveSortableElements","list","from","to","_listIsRef","isRef","listCopy","toValue","element","nextTick","createGhostElement","e","ghostClass","ghost","getValidDragTarget","cleanupGhostElement","dragElement","useSortable","isEnabled","sortInPlace","options","parentEl","computed","unrefElement","newIndex","ref","oldIndex","isDragging","ghostClasses","chosenClasses","handleDragStart","target","index","error","logger","handleDragEnter","draggedEl","handleDragOver","handleDrop","handleDragEnd","watch","setupListeners","removeListeners","onMounted","onBeforeUnmount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSortable.js","sources":["../src/composables/useSortable/useSortable.utils.ts","../src/composables/useSortable/useSortable.ts"],"sourcesContent":["import { isRef, nextTick, Ref, toValue } from 'vue';\n\nimport { MoveSortableElementsOptions } from './useSortable.types';\n\n/**\n * Move sortable elements in the list\n * @param list List of sortable elements\n * @param from Original element position\n * @param to New element position\n */\nexport function moveSortableElements<ListItem>({ list, from, to }: MoveSortableElementsOptions<ListItem>): void {\n if (from === to) return;\n\n const _listIsRef = isRef(list);\n // When the list is a ref, make a shallow copy of it to avoid repeatedly triggering side effects when moving elements\n const listCopy = _listIsRef ? [...toValue(list)] : toValue(list);\n\n if (to >= 0 && to < listCopy.length) {\n const element = listCopy.splice(from, 1)[0];\n nextTick(() => {\n listCopy.splice(to, 0, element);\n // When list is ref, assign listCopy to list.value\n if (_listIsRef) (list as Ref).value = listCopy;\n });\n }\n}\n\n/**\n * Create a ghost element for dragging, which is the element that follows the cursor while dragging\n * @param e Drag event\n * @param ghostClass Custom classes to be added to the ghost element\n * @returns Ghost element and cleanup function\n */\nexport function createGhostElement(e: DragEvent, ghostClass: string[]) {\n const ghost = getValidDragTarget(e.target as HTMLElement).cloneNode(true) as HTMLElement;\n\n ghost.classList.add(...ghostClass);\n\n ghost.style.position = 'absolute';\n ghost.style.top = '-9999px';\n ghost.style.listStyle = 'none';\n ghost.setAttribute('data-test', `${ghost.dataset.test}|ghost`);\n ghost.removeAttribute('draggable');\n\n document.body.appendChild(ghost);\n\n e.dataTransfer?.setDragImage(ghost, ghost.offsetWidth / 2, ghost.offsetHeight / 2);\n\n function cleanupGhostElement() {\n requestAnimationFrame(() => {\n document.body.removeChild(ghost);\n });\n }\n\n return {\n ghost,\n cleanupGhostElement,\n };\n}\n\n/**\n * Get the valid draggable target element\n * @param element\n * @returns Draggable element\n */\nexport function getValidDragTarget(element: HTMLElement | null) {\n const dragElement = element?.closest<HTMLElement>('[draggable=true]');\n if (!dragElement) throw new Error('Draggable element not found');\n return dragElement;\n}\n","import logger from '@leaflink/snitch';\nimport { unrefElement } from '@vueuse/core';\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n\nimport type { UseSortableOptions, UseSortableReturn } from './useSortable.types';\nimport { createGhostElement, getValidDragTarget, moveSortableElements } from './useSortable.utils';\n\nexport * from './useSortable.types';\nexport { moveSortableElements } from './useSortable.utils';\n\nexport default function useSortable<SortableItem>({\n isEnabled = true,\n sortInPlace = true,\n ...options\n}: UseSortableOptions<SortableItem>): UseSortableReturn {\n const parentEl = computed(() => unrefElement(options.ref));\n\n const newIndex = ref(-1);\n const oldIndex = ref(-1);\n\n const isDragging = computed(() => newIndex.value !== -1);\n\n const ghostClasses = computed(() => options.ghostClass?.split(' ') || []);\n const chosenClasses = computed(() => options.chosenClass?.split(' ') || []);\n\n const handleDragStart = (e: DragEvent) => {\n if (!e.dataTransfer || !parentEl.value) return;\n e.dataTransfer.setData('text/plain', ''); // Required for Firefox\n e.dataTransfer.effectAllowed = 'move';\n\n try {\n const target = getValidDragTarget(e.target as HTMLElement);\n\n const index = Array.from(parentEl.value.children).indexOf(target);\n if (index === -1) return;\n\n const { cleanupGhostElement } = createGhostElement(e, ghostClasses.value);\n\n oldIndex.value = newIndex.value = index;\n\n target.classList.add(...chosenClasses.value);\n\n cleanupGhostElement();\n\n options.onDragStart?.({ ...e, oldIndex: index });\n } catch (error) {\n logger.error(`Error in drag start: ${error}`);\n }\n };\n\n const handleDragEnter = (e: DragEvent) => {\n if (!e.dataTransfer || !parentEl.value) return;\n e.dataTransfer.dropEffect = 'move';\n\n try {\n const target = getValidDragTarget(e.target as HTMLElement);\n\n const index = Array.from(parentEl.value.children).indexOf(target);\n if (index === -1 || index === newIndex.value) return;\n\n const draggedEl = parentEl.value.children[newIndex.value];\n parentEl.value.insertBefore(draggedEl, index < newIndex.value ? target : target.nextSibling);\n\n newIndex.value = index;\n } catch (error) {\n logger.error(`Error in drag enter: ${error}`);\n }\n };\n\n function handleDragOver(e: DragEvent) {\n e.preventDefault(); // Required to allow dropping\n }\n\n function handleDrop(e: DragEvent) {\n e.preventDefault();\n\n if (!parentEl.value) return;\n\n try {\n if (oldIndex.value === newIndex.value || !sortInPlace) return;\n moveSortableElements({ list: options.list, from: oldIndex.value, to: newIndex.value });\n } catch (error) {\n logger.error(`Error in drag drop: ${error}`);\n }\n }\n\n function handleDragEnd(e: DragEvent) {\n try {\n const target = getValidDragTarget(e.target as HTMLElement);\n\n target.classList.remove(...chosenClasses.value);\n\n options.onDragEnd?.({\n ...e,\n oldIndex: oldIndex.value,\n newIndex: newIndex.value,\n });\n\n oldIndex.value = newIndex.value = -1;\n } catch (error) {\n logger.error(`Error in drag end: ${error}`);\n }\n }\n\n watch(\n () => isEnabled,\n () => (isEnabled ? setupListeners() : removeListeners()),\n );\n\n function setupListeners() {\n if (!parentEl.value) return;\n\n parentEl.value.addEventListener('dragstart', handleDragStart);\n parentEl.value.addEventListener('dragend', handleDragEnd);\n parentEl.value.addEventListener('dragenter', handleDragEnter);\n parentEl.value.addEventListener('dragover', handleDragOver);\n parentEl.value.addEventListener('drop', handleDrop);\n }\n\n function removeListeners() {\n if (!parentEl.value) return;\n\n parentEl.value.removeEventListener('dragstart', handleDragStart);\n parentEl.value.removeEventListener('dragend', handleDragEnd);\n parentEl.value.removeEventListener('dragenter', handleDragEnter);\n parentEl.value.removeEventListener('dragover', handleDragOver);\n parentEl.value.removeEventListener('drop', handleDrop);\n }\n\n onMounted(() => {\n if (!isEnabled) return;\n setupListeners();\n });\n\n onBeforeUnmount(removeListeners);\n\n return {\n isDragging,\n oldIndex,\n newIndex,\n };\n}\n"],"names":["moveSortableElements","list","from","to","_listIsRef","isRef","listCopy","toValue","element","nextTick","createGhostElement","e","ghostClass","ghost","getValidDragTarget","_a","cleanupGhostElement","dragElement","useSortable","isEnabled","sortInPlace","options","parentEl","computed","unrefElement","newIndex","ref","oldIndex","isDragging","ghostClasses","chosenClasses","handleDragStart","target","index","error","logger","handleDragEnter","draggedEl","handleDragOver","handleDrop","handleDragEnd","watch","setupListeners","removeListeners","onMounted","onBeforeUnmount"],"mappings":"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"}
|
package/dist/useStepper.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ComputedRef } from 'vue';
|
|
2
2
|
import { Ref } from 'vue';
|
|
3
3
|
|
|
4
|
-
declare interface StepDefinition {
|
|
4
|
+
export declare interface StepDefinition {
|
|
5
5
|
completed: boolean;
|
|
6
6
|
substeps: Array<Omit<StepDefinition, 'substeps'>>;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
declare interface StepperOptions {
|
|
9
|
+
export declare interface StepperOptions {
|
|
10
10
|
/**
|
|
11
11
|
* If true, the stepper will prevent skipping steps
|
|
12
12
|
*/
|