@leaflink/stash 44.0.0-beta.6 → 44.0.0-beta.8
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/README.md +107 -39
- package/dist/ActionsDropdown.js +2 -2
- package/dist/ActionsDropdown.js.map +1 -1
- package/dist/AddressSelect.js +2 -2
- package/dist/AppNavigationItem.js +1 -1
- package/dist/AppSidebar.js +13 -13
- package/dist/AppSidebar.js.map +1 -1
- package/dist/Badge.vue.d.ts +1 -1
- package/dist/Button.js +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Button.vue_used_vue_type_style_index_0_lang.module-63d31dc0.js +17 -0
- package/dist/Button.vue_used_vue_type_style_index_0_lang.module-63d31dc0.js.map +1 -0
- package/dist/ButtonGroup.js +19 -19
- package/dist/ButtonGroup.js.map +1 -1
- package/dist/Carousel.js +258 -246
- package/dist/Carousel.js.map +1 -1
- package/dist/Checkbox.js +57 -46
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.vue.d.ts +2 -0
- package/dist/Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js +9 -0
- package/dist/Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js.map +1 -0
- package/dist/ChevronToggle.js +1 -1
- package/dist/Copy.js +1 -1
- package/dist/CurrencyInput.js +2 -2
- package/dist/DataView.js +1 -1
- package/dist/DataViewFilters.js +4 -4
- package/dist/DataViewSortButton.js +47 -38
- package/dist/DataViewSortButton.js.map +1 -1
- package/dist/DataViewToolbar.js +2 -2
- package/dist/DatePicker.js +9 -9
- package/dist/DatePicker.js.map +1 -1
- package/dist/DescriptionListTerm.js +1 -1
- package/dist/DescriptionListTerm.js.map +1 -1
- package/dist/Dialog.js +33 -33
- package/dist/Dialog.js.map +1 -1
- package/dist/Divider.js +4 -4
- package/dist/Divider.js.map +1 -1
- package/dist/Expand.js +1 -1
- package/dist/{Expand.vue_vue_type_script_setup_true_lang-5fe03d51.js → Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js} +14 -15
- package/dist/Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js.map +1 -0
- package/dist/Field.js +2 -2
- package/dist/Field.vue.d.ts +1 -1
- package/dist/{Field.vue_vue_type_script_setup_true_lang-4483019d.js → Field.vue_vue_type_script_setup_true_lang-42ba3c5a.js} +2 -2
- package/dist/Field.vue_vue_type_script_setup_true_lang-42ba3c5a.js.map +1 -0
- package/dist/FileUpload.js +7 -7
- package/dist/FileUpload.js.map +1 -1
- package/dist/FilterChip.js +30 -30
- package/dist/FilterChip.js.map +1 -1
- package/dist/FilterDropdown.js +2 -2
- package/dist/FilterSelect.js +27 -27
- package/dist/FilterSelect.js.map +1 -1
- package/dist/Filters.js +39 -39
- package/dist/Filters.js.map +1 -1
- package/dist/HttpError.js +6 -6
- package/dist/IconLabel.js +6 -6
- package/dist/IconLabel.js.map +1 -1
- package/dist/IconLabel.vue.d.ts +1 -1
- package/dist/Illustration.js +10 -60
- package/dist/Illustration.js.map +1 -1
- package/dist/Illustration.vue_vue_type_script_setup_true_lang-d6a94e17.js +56 -0
- package/dist/Illustration.vue_vue_type_script_setup_true_lang-d6a94e17.js.map +1 -0
- package/dist/Image.js +67 -72
- package/dist/Image.js.map +1 -1
- package/dist/InlineEdit.js +2 -2
- package/dist/Input.js +53 -53
- package/dist/Input.js.map +1 -1
- package/dist/InputOptions.js +2 -2
- package/dist/Label.js +1 -1
- package/dist/Label.vue.d.ts +13 -2
- package/dist/{Label.vue_vue_type_script_setup_true_lang-2de35913.js → Label.vue_vue_type_script_setup_true_lang-4b02087f.js} +12 -11
- package/dist/Label.vue_vue_type_script_setup_true_lang-4b02087f.js.map +1 -0
- package/dist/ListItem.js +11 -11
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemCell.js +9 -9
- package/dist/ListItemCell.js.map +1 -1
- package/dist/ListView.js +55 -52
- package/dist/ListView.js.map +1 -1
- package/dist/Loading.js +17 -10
- package/dist/Loading.js.map +1 -1
- package/dist/Loading.vue_used_vue_type_style_index_0_lang.module-ef5a3bc6.js +8 -0
- package/dist/Loading.vue_used_vue_type_style_index_0_lang.module-ef5a3bc6.js.map +1 -0
- package/dist/MenuItem.js +20 -14
- package/dist/MenuItem.js.map +1 -1
- package/dist/Modal.js +2 -2
- package/dist/Modal.js.map +1 -1
- package/dist/ObfuscateText.js +30 -32
- package/dist/ObfuscateText.js.map +1 -1
- package/dist/ObfuscateText.vue.d.ts +1 -1
- package/dist/PageContent.js +9 -9
- package/dist/PageContent.js.map +1 -1
- package/dist/PageHeader.js +22 -22
- package/dist/PageHeader.js.map +1 -1
- package/dist/PageNavigation.js +3 -3
- package/dist/PageNavigation.js.map +1 -1
- package/dist/Paginate.js +1 -1
- package/dist/Paginate.js.map +1 -1
- package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js +11 -0
- package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js.map +1 -0
- package/dist/QuickAction.js +22 -19
- package/dist/QuickAction.js.map +1 -1
- package/dist/Radio.js +30 -15
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.js +135 -106
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioNew.js +118 -91
- package/dist/RadioNew.js.map +1 -1
- package/dist/SearchBar.js +32 -32
- package/dist/SearchBar.js.map +1 -1
- package/dist/Select.js +7 -7
- package/dist/Select.js.map +1 -1
- package/dist/SelectStatus.js +2 -2
- package/dist/Switch.js +41 -34
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.js +2 -2
- package/dist/{Tab.vue_vue_type_script_setup_true_lang-4a40f015.js → Tab.vue_vue_type_script_setup_true_lang-69d1b046.js} +2 -2
- package/dist/{Tab.vue_vue_type_script_setup_true_lang-4a40f015.js.map → Tab.vue_vue_type_script_setup_true_lang-69d1b046.js.map} +1 -1
- package/dist/Table.js +6 -6
- package/dist/Table.keys-cf93df19.js +27 -0
- package/dist/{Table.keys-1ebe4ecb.js.map → Table.keys-cf93df19.js.map} +1 -1
- package/dist/TableCell.js +5 -5
- package/dist/TableCell.js.map +1 -1
- package/dist/TableHeaderCell.js +32 -32
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderRow.js +10 -10
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableRow.js +42 -41
- package/dist/TableRow.js.map +1 -1
- package/dist/Tabs.js +2 -2
- package/dist/{Tabs.vue_used_vue_type_style_index_0_lang.module-0af1e1cf.js → Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js} +25 -25
- package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js.map +1 -0
- package/dist/Textarea.js +49 -41
- package/dist/Textarea.js.map +1 -1
- package/dist/Toast.js +23 -23
- package/dist/Toast.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/constants.d.ts +26 -19
- package/dist/constants.js +41 -26
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tailwind-base.d.ts +16 -16
- package/dist/tailwind-base.js +16 -6
- package/dist/tailwind-base.js.map +1 -1
- package/package.json +2 -2
- package/styles/backwards-compat.css +41 -104
- package/styles/base.css +258 -112
- package/tailwind-base.ts +6 -1
- package/dist/Button.vue_used_vue_type_style_index_0_lang.module-b2ee90e6.js +0 -17
- package/dist/Button.vue_used_vue_type_style_index_0_lang.module-b2ee90e6.js.map +0 -1
- package/dist/Checkbox.vue_vue_type_style_index_0_scoped_dbd26d7f_lang-4ed993c7.js +0 -2
- package/dist/Checkbox.vue_vue_type_style_index_0_scoped_dbd26d7f_lang-4ed993c7.js.map +0 -1
- package/dist/Expand.vue_vue_type_script_setup_true_lang-5fe03d51.js.map +0 -1
- package/dist/Field.vue_vue_type_script_setup_true_lang-4483019d.js.map +0 -1
- package/dist/Label.vue_vue_type_script_setup_true_lang-2de35913.js.map +0 -1
- package/dist/Loading.vue_vue_type_style_index_0_scoped_bb8d5f15_lang-4ed993c7.js +0 -2
- package/dist/Loading.vue_vue_type_style_index_0_scoped_bb8d5f15_lang-4ed993c7.js.map +0 -1
- package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-1a2084f9.js +0 -11
- package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-1a2084f9.js.map +0 -1
- package/dist/Table.keys-1ebe4ecb.js +0 -27
- package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-0af1e1cf.js.map +0 -1
- package/styles/_base.scss +0 -493
- package/styles/elements/_links.scss +0 -32
- package/styles/elements/_lists.scss +0 -31
- package/styles/elements/_misc.scss +0 -16
- package/styles/main.scss +0 -38
package/dist/FilterChip.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as u, useCssModule as f, computed as
|
|
1
|
+
import { defineComponent as u, useCssModule as f, computed as v, openBlock as a, createBlock as h, normalizeClass as s, unref as t, withCtx as w, createElementVNode as b, renderSlot as C, createElementBlock as n, toDisplayString as k, createCommentVNode as i, createVNode as y } from "vue";
|
|
2
2
|
import { t as c } from "./locale.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { _ as
|
|
3
|
+
import D from "./Chip.js";
|
|
4
|
+
import x from "./Icon.js";
|
|
5
|
+
import { _ as B } from "./_plugin-vue_export-helper-dad06003.js";
|
|
6
6
|
import "lodash-es/get";
|
|
7
7
|
import "./utils/colorScheme.js";
|
|
8
8
|
import "lodash-es/uniqueId";
|
|
9
9
|
import "./index-79ce320f.js";
|
|
10
10
|
import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
|
|
11
|
-
const
|
|
11
|
+
const F = { class: "tw-flex tw-items-center" }, O = ["aria-label", "title"], R = { key: 1 }, S = /* @__PURE__ */ u({
|
|
12
12
|
__name: "FilterChip",
|
|
13
13
|
props: {
|
|
14
14
|
filterCount: { default: void 0 },
|
|
@@ -19,24 +19,24 @@ const B = { class: "tw-flex tw-items-center" }, F = ["aria-label", "title"], O =
|
|
|
19
19
|
},
|
|
20
20
|
emits: ["click", "remove"],
|
|
21
21
|
setup(d, { emit: r }) {
|
|
22
|
-
const e = d, o = f(),
|
|
22
|
+
const e = d, o = f(), l = v(() => Number(e.filterCount) > 0);
|
|
23
23
|
function p() {
|
|
24
24
|
r("click");
|
|
25
25
|
}
|
|
26
26
|
function m() {
|
|
27
27
|
r("remove");
|
|
28
28
|
}
|
|
29
|
-
return (_, A) => (
|
|
29
|
+
return (_, A) => (a(), h(D, {
|
|
30
30
|
"should-override-colors": "",
|
|
31
31
|
tabindex: "0",
|
|
32
|
-
class:
|
|
32
|
+
class: s(["stash-filter-chip tw-text-sm tw-font-normal tw-normal-case tw-leading-5 tw-text-ice-900", [
|
|
33
33
|
t(o).root,
|
|
34
34
|
{
|
|
35
35
|
[t(o)["is-selected"]]: e.isSelected,
|
|
36
36
|
[t(o)["is-removable"]]: e.isRemovable,
|
|
37
37
|
[t(o)["is-dropdown-open"]]: e.isDropdownOpen,
|
|
38
38
|
[t(o)["has-dropdown"]]: e.hasDropdown,
|
|
39
|
-
[t(o)["has-filter-count"]]:
|
|
39
|
+
[t(o)["has-filter-count"]]: l.value
|
|
40
40
|
}
|
|
41
41
|
]]),
|
|
42
42
|
radius: "pill",
|
|
@@ -44,45 +44,45 @@ const B = { class: "tw-flex tw-items-center" }, F = ["aria-label", "title"], O =
|
|
|
44
44
|
onClick: p,
|
|
45
45
|
onRemove: m
|
|
46
46
|
}, {
|
|
47
|
-
default:
|
|
48
|
-
b("div",
|
|
47
|
+
default: w(() => [
|
|
48
|
+
b("div", F, [
|
|
49
49
|
C(_.$slots, "default"),
|
|
50
|
-
|
|
50
|
+
l.value ? (a(), n("span", {
|
|
51
51
|
key: 0,
|
|
52
52
|
"data-test": "span|filter-count",
|
|
53
|
-
class:
|
|
53
|
+
class: s(t(o)["filter-count"]),
|
|
54
54
|
"aria-label": t(c)("ll.numberOfActiveFilters"),
|
|
55
55
|
title: t(c)("ll.numberOfActiveFilters")
|
|
56
|
-
},
|
|
57
|
-
e.hasDropdown ? (
|
|
58
|
-
|
|
56
|
+
}, k(e.filterCount), 11, O)) : i("", !0),
|
|
57
|
+
e.hasDropdown ? (a(), n("span", R, [
|
|
58
|
+
y(x, {
|
|
59
59
|
"data-test": "icon|caret",
|
|
60
60
|
name: "caret-down",
|
|
61
|
-
class:
|
|
61
|
+
class: s([
|
|
62
62
|
t(o).caret,
|
|
63
63
|
{
|
|
64
64
|
[t(o)["caret-rotate"]]: e.isDropdownOpen
|
|
65
65
|
}
|
|
66
66
|
])
|
|
67
67
|
}, null, 8, ["class"])
|
|
68
|
-
])) :
|
|
68
|
+
])) : i("", !0)
|
|
69
69
|
])
|
|
70
70
|
]),
|
|
71
71
|
_: 3
|
|
72
72
|
}, 8, ["class", "is-removable"]));
|
|
73
73
|
}
|
|
74
|
-
}),
|
|
75
|
-
root:
|
|
76
|
-
"is-selected": "_is-
|
|
77
|
-
"is-removable": "_is-
|
|
78
|
-
"has-filter-count": "_has-filter-
|
|
79
|
-
"has-dropdown": "_has-
|
|
80
|
-
"filter-count": "_filter-
|
|
81
|
-
caret:
|
|
82
|
-
"caret-rotate": "_caret-
|
|
83
|
-
},
|
|
84
|
-
$style:
|
|
85
|
-
}, L = /* @__PURE__ */
|
|
74
|
+
}), N = "_root_1avat_5", M = "_caret_1avat_94", V = {
|
|
75
|
+
root: N,
|
|
76
|
+
"is-selected": "_is-selected_1avat_24",
|
|
77
|
+
"is-removable": "_is-removable_1avat_36",
|
|
78
|
+
"has-filter-count": "_has-filter-count_1avat_49",
|
|
79
|
+
"has-dropdown": "_has-dropdown_1avat_54",
|
|
80
|
+
"filter-count": "_filter-count_1avat_67",
|
|
81
|
+
caret: M,
|
|
82
|
+
"caret-rotate": "_caret-rotate_1avat_105"
|
|
83
|
+
}, g = {
|
|
84
|
+
$style: V
|
|
85
|
+
}, L = /* @__PURE__ */ B(S, [["__cssModules", g]]);
|
|
86
86
|
export {
|
|
87
87
|
L as default
|
|
88
88
|
};
|
package/dist/FilterChip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChip.js","sources":["../src/components/FilterChip/FilterChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, useCssModule } from 'vue';\n\n import { t } from '../../locale';\n import Chip from '../Chip/Chip.vue';\n import Icon from '../Icon/Icon.vue';\n\n export interface FilterChipProps {\n /**\n * Used for conditionally rendering filter count chip\n */\n filterCount?: number;\n\n /**\n * Use for conditionally rendering caret\n */\n hasDropdown?: boolean;\n\n /**\n * Used for styling when `hasDropdown` is true\n */\n isDropdownOpen?: boolean;\n\n /**\n * Used for conditionally rendering close icon and exposing remove event\n */\n isRemovable?: boolean;\n\n /**\n * Used for conditionally applying styles\n */\n isSelected?: boolean;\n }\n\n const props = withDefaults(defineProps<FilterChipProps>(), {\n filterCount: undefined,\n hasDropdown: false,\n isDropdownOpen: false,\n isRemovable: false,\n isSelected: false,\n });\n\n const emit =\n defineEmits<{\n (e: 'click'): void;\n (e: 'remove'): void;\n }>();\n\n const classes = useCssModule();\n const hasFilterCount = computed(() => Number(props.filterCount) > 0);\n\n function handleClick() {\n emit('click');\n }\n\n function handleRemove() {\n emit('remove');\n }\n</script>\n\n<template>\n <Chip\n should-override-colors\n tabindex=\"0\"\n class=\"stash-filter-chip tw-text-sm tw-font-normal tw-normal-case tw-leading-5 tw-text-ice-900\"\n radius=\"pill\"\n :class=\"[\n classes.root,\n {\n [classes['is-selected']]: props.isSelected,\n [classes['is-removable']]: props.isRemovable,\n [classes['is-dropdown-open']]: props.isDropdownOpen,\n [classes['has-dropdown']]: props.hasDropdown,\n [classes['has-filter-count']]: hasFilterCount,\n },\n ]\"\n :is-removable=\"props.isSelected && props.isRemovable && !props.hasDropdown\"\n @click=\"handleClick\"\n @remove=\"handleRemove\"\n >\n <div class=\"tw-flex tw-items-center\">\n <!-- @slot default -->\n <slot></slot>\n\n <span\n v-if=\"hasFilterCount\"\n data-test=\"span|filter-count\"\n :class=\"classes['filter-count']\"\n :aria-label=\"t('ll.numberOfActiveFilters')\"\n :title=\"t('ll.numberOfActiveFilters')\"\n >\n {{ props.filterCount }}\n </span>\n\n <span v-if=\"props.hasDropdown\">\n <Icon\n data-test=\"icon|caret\"\n name=\"caret-down\"\n :class=\"[\n classes.caret,\n {\n [classes['caret-rotate']]: props.isDropdownOpen,\n },\n ]\"\n />\n </span>\n </div>\n </Chip>\n</template>\n\n<style module>\n /**\n many styles declared here are overriding styles defined in Chip\n */\n .root {\n background-color: var(--color-white);\n border: 1px solid var(--color-ice-500);\n cursor: pointer;\n height:
|
|
1
|
+
{"version":3,"file":"FilterChip.js","sources":["../src/components/FilterChip/FilterChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, useCssModule } from 'vue';\n\n import { t } from '../../locale';\n import Chip from '../Chip/Chip.vue';\n import Icon from '../Icon/Icon.vue';\n\n export interface FilterChipProps {\n /**\n * Used for conditionally rendering filter count chip\n */\n filterCount?: number;\n\n /**\n * Use for conditionally rendering caret\n */\n hasDropdown?: boolean;\n\n /**\n * Used for styling when `hasDropdown` is true\n */\n isDropdownOpen?: boolean;\n\n /**\n * Used for conditionally rendering close icon and exposing remove event\n */\n isRemovable?: boolean;\n\n /**\n * Used for conditionally applying styles\n */\n isSelected?: boolean;\n }\n\n const props = withDefaults(defineProps<FilterChipProps>(), {\n filterCount: undefined,\n hasDropdown: false,\n isDropdownOpen: false,\n isRemovable: false,\n isSelected: false,\n });\n\n const emit =\n defineEmits<{\n (e: 'click'): void;\n (e: 'remove'): void;\n }>();\n\n const classes = useCssModule();\n const hasFilterCount = computed(() => Number(props.filterCount) > 0);\n\n function handleClick() {\n emit('click');\n }\n\n function handleRemove() {\n emit('remove');\n }\n</script>\n\n<template>\n <Chip\n should-override-colors\n tabindex=\"0\"\n class=\"stash-filter-chip tw-text-sm tw-font-normal tw-normal-case tw-leading-5 tw-text-ice-900\"\n radius=\"pill\"\n :class=\"[\n classes.root,\n {\n [classes['is-selected']]: props.isSelected,\n [classes['is-removable']]: props.isRemovable,\n [classes['is-dropdown-open']]: props.isDropdownOpen,\n [classes['has-dropdown']]: props.hasDropdown,\n [classes['has-filter-count']]: hasFilterCount,\n },\n ]\"\n :is-removable=\"props.isSelected && props.isRemovable && !props.hasDropdown\"\n @click=\"handleClick\"\n @remove=\"handleRemove\"\n >\n <div class=\"tw-flex tw-items-center\">\n <!-- @slot default -->\n <slot></slot>\n\n <span\n v-if=\"hasFilterCount\"\n data-test=\"span|filter-count\"\n :class=\"classes['filter-count']\"\n :aria-label=\"t('ll.numberOfActiveFilters')\"\n :title=\"t('ll.numberOfActiveFilters')\"\n >\n {{ props.filterCount }}\n </span>\n\n <span v-if=\"props.hasDropdown\">\n <Icon\n data-test=\"icon|caret\"\n name=\"caret-down\"\n :class=\"[\n classes.caret,\n {\n [classes['caret-rotate']]: props.isDropdownOpen,\n },\n ]\"\n />\n </span>\n </div>\n </Chip>\n</template>\n\n<style module>\n /**\n many styles declared here are overriding styles defined in Chip\n */\n .root {\n background-color: var(--color-white);\n border: 1px solid var(--color-ice-500);\n cursor: pointer;\n height: theme('spacing.9');\n padding-left: theme('spacing.3');\n padding-right: theme('spacing.3');\n }\n\n .root:focus {\n box-shadow: 0 0 0 4px rgb(0 123 255 / 15%);\n outline: none;\n }\n\n .root:hover {\n background-color: var(--color-blue-100);\n border: 1px solid var(--color-blue-500);\n }\n\n .root.is-selected {\n color: var(--color-white);\n background-color: var(--color-blue-500);\n border: 1px solid var(--color-blue-500);\n }\n\n .root.is-selected:hover {\n color: var(--color-white);\n background-color: var(--color-blue-700);\n border: 1px solid var(--color-blue-700);\n }\n\n .root.is-selected.is-removable {\n background-color: var(--color-blue-500);\n }\n\n .root.is-selected.is-removable :global(.stash-chip__remove-button) {\n margin-right: -1px;\n padding-right: theme('spacing.3');\n }\n\n .root.is-selected.is-removable :global(.stash-chip__remove-button):hover {\n background-color: var(--color-blue-700);\n }\n\n .root.is-selected.has-filter-count:hover {\n background-color: var(--color-blue-700);\n color: var(--color-white);\n }\n\n .root.has-dropdown {\n padding-right: theme('spacing[1.5]');\n }\n\n .root.has-filter-count:hover {\n background-color: var(--color-blue-100);\n color: var(--color-ice-900);\n }\n\n .root label {\n cursor: pointer;\n }\n\n .filter-count {\n display: inline-flex;\n align-items: center;\n border-radius: 5em;\n height: 16px;\n padding: 0 8px;\n margin-left: theme('spacing[1.5]');\n font-size: 10px;\n font-weight: bold;\n background-color: var(--color-blue-500);\n color: var(--color-white);\n }\n\n .is-selected .filter-count {\n background-color: var(--color-blue-700);\n }\n\n .is-selected:hover .filter-count {\n background-color: var(--color-white);\n color: var(--color-blue-700);\n }\n\n .is-selected.is-removable .filter-count {\n background-color: var(--color-blue-700);\n color: var(--color-white);\n }\n\n .caret {\n color: var(--color-ice-700);\n margin-left: theme('spacing[1.5]');\n transform: rotate(0);\n transition: all 0.5s;\n }\n\n .is-selected .caret {\n color: var(--color-white);\n }\n\n .caret-rotate {\n transform: rotate(-180deg);\n }\n</style>\n"],"names":["classes","useCssModule","hasFilterCount","computed","props","handleClick","emit","handleRemove"],"mappings":";;;;;;;;;;;;;;;;;;;;;iBAgDQA,IAAUC,KACVC,IAAiBC,EAAS,MAAM,OAAOC,EAAM,WAAW,IAAI,CAAC;AAEnE,aAASC,IAAc;AACrB,MAAAC,EAAK,OAAO;AAAA,IACd;AAEA,aAASC,IAAe;AACtB,MAAAD,EAAK,QAAQ;AAAA,IACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/FilterDropdown.js
CHANGED
|
@@ -5,13 +5,13 @@ import D from "./Button.js";
|
|
|
5
5
|
import "lodash-es/cloneDeep";
|
|
6
6
|
import "lodash-es/uniqueId";
|
|
7
7
|
import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
|
|
8
|
-
import "./Paginate.vue_used_vue_type_style_index_0_lang.module-
|
|
8
|
+
import "./Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js";
|
|
9
9
|
import { D as F } from "./DataView.vue_used_vue_type_style_index_0_lang.module-d878ca9a.js";
|
|
10
10
|
import { D as z } from "./DataViewFilters.keys-c80ffabe.js";
|
|
11
11
|
import G from "./Dropdown.js";
|
|
12
12
|
import $ from "./FilterChip.js";
|
|
13
13
|
import "lodash-es/get";
|
|
14
|
-
import "./Button.vue_used_vue_type_style_index_0_lang.module-
|
|
14
|
+
import "./Button.vue_used_vue_type_style_index_0_lang.module-63d31dc0.js";
|
|
15
15
|
import "./_plugin-vue_export-helper-dad06003.js";
|
|
16
16
|
import "./constants.js";
|
|
17
17
|
import "./clickoutside.js";
|
package/dist/FilterSelect.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineComponent as S, computed as p, openBlock as r, createBlock as $, withCtx as u, createElementVNode as s, createElementBlock as d, withDirectives as f, vModelCheckbox as v, createVNode as _, withKeys as h, createTextVNode as b, toDisplayString as x, unref as C, createCommentVNode as K, Fragment as A, renderList as B } from "vue";
|
|
2
2
|
import { t as E } from "./locale.js";
|
|
3
|
-
import { _ as N } from "./Field.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { _ as N } from "./Field.vue_vue_type_script_setup_true_lang-42ba3c5a.js";
|
|
4
4
|
import y from "./FilterChip.js";
|
|
5
5
|
import "lodash-es/get";
|
|
6
6
|
import "lodash-es/uniqueId";
|
|
7
|
-
import "./Label.vue_vue_type_script_setup_true_lang-
|
|
7
|
+
import "./Label.vue_vue_type_script_setup_true_lang-4b02087f.js";
|
|
8
8
|
import "./Chip.js";
|
|
9
9
|
import "./utils/colorScheme.js";
|
|
10
10
|
import "./Icon.js";
|
|
@@ -26,31 +26,31 @@ const F = { class: "tw-flex tw-flex-wrap tw-gap-1.5" }, D = ["id"], O = ["for"],
|
|
|
26
26
|
get() {
|
|
27
27
|
return e.modelValue;
|
|
28
28
|
},
|
|
29
|
-
set(
|
|
30
|
-
c("update:modelValue",
|
|
29
|
+
set(t) {
|
|
30
|
+
c("update:modelValue", t);
|
|
31
31
|
}
|
|
32
32
|
}), n = p({
|
|
33
33
|
get() {
|
|
34
34
|
return e.options.length === e.modelValue.length;
|
|
35
35
|
},
|
|
36
|
-
set(
|
|
37
|
-
c("update:modelValue",
|
|
36
|
+
set(t) {
|
|
37
|
+
c("update:modelValue", t ? e.options.map((a) => a.value) : []);
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
|
-
function i(
|
|
41
|
-
return `${e.name}--${
|
|
40
|
+
function i(t) {
|
|
41
|
+
return `${e.name}--${t.value}`;
|
|
42
42
|
}
|
|
43
|
-
function g(
|
|
44
|
-
return e.modelValue.includes(
|
|
43
|
+
function g(t) {
|
|
44
|
+
return e.modelValue.includes(t.value);
|
|
45
45
|
}
|
|
46
|
-
function
|
|
47
|
-
const a = o.value.filter((
|
|
48
|
-
a.length === o.value.length && a.push(
|
|
46
|
+
function w(t) {
|
|
47
|
+
const a = o.value.filter((l) => l !== t);
|
|
48
|
+
a.length === o.value.length && a.push(t), o.value = a;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function k() {
|
|
51
51
|
n.value = !n.value;
|
|
52
52
|
}
|
|
53
|
-
return (
|
|
53
|
+
return (t, a) => (r(), $(N, {
|
|
54
54
|
class: "stash-filter-select",
|
|
55
55
|
fieldset: "",
|
|
56
56
|
label: e.label
|
|
@@ -62,8 +62,8 @@ const F = { class: "tw-flex tw-flex-wrap tw-gap-1.5" }, D = ["id"], O = ["for"],
|
|
|
62
62
|
}, [
|
|
63
63
|
f(s("input", {
|
|
64
64
|
id: `${e.name}--all`,
|
|
65
|
-
"onUpdate:modelValue": a[0] || (a[0] = (
|
|
66
|
-
class: "sr-only",
|
|
65
|
+
"onUpdate:modelValue": a[0] || (a[0] = (l) => n.value = l),
|
|
66
|
+
class: "tw-sr-only",
|
|
67
67
|
tabindex: "-1",
|
|
68
68
|
type: "checkbox",
|
|
69
69
|
value: "all"
|
|
@@ -76,7 +76,7 @@ const F = { class: "tw-flex tw-flex-wrap tw-gap-1.5" }, D = ["id"], O = ["for"],
|
|
|
76
76
|
_(y, {
|
|
77
77
|
"is-selected": n.value,
|
|
78
78
|
tabindex: "0",
|
|
79
|
-
onKeypress: h(
|
|
79
|
+
onKeypress: h(k, ["enter"])
|
|
80
80
|
}, {
|
|
81
81
|
default: u(() => [
|
|
82
82
|
b(x(C(E)("ll.all")), 1)
|
|
@@ -85,29 +85,29 @@ const F = { class: "tw-flex tw-flex-wrap tw-gap-1.5" }, D = ["id"], O = ["for"],
|
|
|
85
85
|
}, 8, ["is-selected", "onKeypress"])
|
|
86
86
|
], 8, O)
|
|
87
87
|
])) : K("", !0),
|
|
88
|
-
(r(!0), d(A, null, B(e.options, (
|
|
89
|
-
key: i(
|
|
88
|
+
(r(!0), d(A, null, B(e.options, (l) => (r(), d("div", {
|
|
89
|
+
key: i(l)
|
|
90
90
|
}, [
|
|
91
91
|
f(s("input", {
|
|
92
|
-
id: i(
|
|
92
|
+
id: i(l),
|
|
93
93
|
"onUpdate:modelValue": a[1] || (a[1] = (m) => o.value = m),
|
|
94
|
-
class: "sr-only",
|
|
94
|
+
class: "tw-sr-only",
|
|
95
95
|
tabindex: "-1",
|
|
96
96
|
type: "checkbox",
|
|
97
|
-
value:
|
|
97
|
+
value: l.value
|
|
98
98
|
}, null, 8, U), [
|
|
99
99
|
[v, o.value]
|
|
100
100
|
]),
|
|
101
101
|
s("label", {
|
|
102
|
-
for: i(
|
|
102
|
+
for: i(l)
|
|
103
103
|
}, [
|
|
104
104
|
_(y, {
|
|
105
|
-
"is-selected": g(
|
|
105
|
+
"is-selected": g(l),
|
|
106
106
|
tabindex: "0",
|
|
107
|
-
onKeypress: h((m) =>
|
|
107
|
+
onKeypress: h((m) => w(l.value), ["enter"])
|
|
108
108
|
}, {
|
|
109
109
|
default: u(() => [
|
|
110
|
-
b(x(
|
|
110
|
+
b(x(l.label), 1)
|
|
111
111
|
]),
|
|
112
112
|
_: 2
|
|
113
113
|
}, 1032, ["is-selected", "onKeypress"])
|
package/dist/FilterSelect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterSelect.js","sources":["../src/components/FilterSelect/FilterSelect.vue"],"sourcesContent":["<script lang=\"ts\">\n export * from './FilterSelect.types';\n</script>\n\n<script lang=\"ts\" setup>\n import { computed } from 'vue';\n\n import { t } from '../../locale';\n import Field from '../Field/Field.vue';\n import FilterChip from '../FilterChip/FilterChip.vue';\n import { FilterSelectModelValue, FilterSelectOption } from './FilterSelect.types';\n\n export interface FilterSelectProps {\n /**\n * The name attribute for the `<input>` elements. It is also used as a unique field to differentiate FilterSelect instances.\n */\n name: string;\n\n label: string;\n\n options: FilterSelectOption[];\n\n modelValue: FilterSelectModelValue;\n\n /**\n * When true, this prop adds an \"All\" option for selecting all options.\n */\n canSelectAll?: boolean;\n }\n\n const props = withDefaults(defineProps<FilterSelectProps>(), {\n canSelectAll: false,\n });\n\n const emit =\n defineEmits<{\n (e: 'update:modelValue', value: FilterSelectModelValue): void;\n }>();\n\n /**\n * @see: https://vuejs.org/guide/components/v-model.html#component-v-model\n */\n const selected = computed({\n get() {\n return props.modelValue;\n },\n set(value) {\n emit('update:modelValue', value);\n },\n });\n\n const isAllSelected = computed({\n get() {\n return props.options.length === props.modelValue.length;\n },\n set(isChecked) {\n emit('update:modelValue', isChecked ? props.options.map((option) => option.value) : []);\n },\n });\n\n function getOptionId(option: FilterSelectOption) {\n return `${props.name}--${option.value}`;\n }\n\n function isOptionSelected(option: FilterSelectOption) {\n return props.modelValue.includes(option.value);\n }\n\n function onEnter(enteredValue: FilterSelectOption['value']) {\n const newSelected = selected.value.filter((value) => value !== enteredValue);\n\n if (newSelected.length === selected.value.length) {\n newSelected.push(enteredValue);\n }\n\n selected.value = newSelected;\n }\n\n function onEnterAll() {\n isAllSelected.value = !isAllSelected.value;\n }\n</script>\n\n<template>\n <Field class=\"stash-filter-select\" fieldset :label=\"props.label\">\n <div class=\"tw-flex tw-flex-wrap tw-gap-1.5\">\n <div v-if=\"props.canSelectAll\" :key=\"`${props.name}--all`\">\n <input\n :id=\"`${props.name}--all`\"\n v-model=\"isAllSelected\"\n class=\"sr-only\"\n tabindex=\"-1\"\n type=\"checkbox\"\n value=\"all\"\n />\n <label :for=\"`${props.name}--all`\">\n <FilterChip :is-selected=\"isAllSelected\" tabindex=\"0\" @keypress.enter=\"onEnterAll\">\n {{ t('ll.all') }}\n </FilterChip>\n </label>\n </div>\n <div v-for=\"option in props.options\" :key=\"getOptionId(option)\">\n <input\n :id=\"getOptionId(option)\"\n v-model=\"selected\"\n class=\"sr-only\"\n tabindex=\"-1\"\n type=\"checkbox\"\n :value=\"option.value\"\n />\n <label :for=\"getOptionId(option)\">\n <FilterChip :is-selected=\"isOptionSelected(option)\" tabindex=\"0\" @keypress.enter=\"onEnter(option.value)\">\n {{ option.label }}\n </FilterChip>\n </label>\n </div>\n </div>\n </Field>\n</template>\n"],"names":["selected","computed","props","value","emit","isAllSelected","isChecked","option","getOptionId","isOptionSelected","onEnter","enteredValue","newSelected","onEnterAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;iBA0CQA,IAAWC,EAAS;AAAA,MACxB,MAAM;AACJ,eAAOC,EAAM;AAAA,MACf;AAAA,MACA,IAAIC,GAAO;AACT,QAAAC,EAAK,qBAAqBD,CAAK;AAAA,MACjC;AAAA,IAAA,CACD,GAEKE,IAAgBJ,EAAS;AAAA,MAC7B,MAAM;AACJ,eAAOC,EAAM,QAAQ,WAAWA,EAAM,WAAW;AAAA,MACnD;AAAA,MACA,IAAII,GAAW;AACR,QAAAF,EAAA,qBAAqBE,IAAYJ,EAAM,QAAQ,IAAI,CAACK,MAAWA,EAAO,KAAK,IAAI,CAAE,CAAA;AAAA,MACxF;AAAA,IAAA,CACD;AAED,aAASC,EAAYD,GAA4B;AAC/C,aAAO,GAAGL,EAAM,IAAI,KAAKK,EAAO,KAAK;AAAA,IACvC;AAEA,aAASE,EAAiBF,GAA4B;AACpD,aAAOL,EAAM,WAAW,SAASK,EAAO,KAAK;AAAA,IAC/C;AAEA,aAASG,EAAQC,GAA2C;AAC1D,YAAMC,IAAcZ,EAAS,MAAM,OAAO,CAACG,MAAUA,MAAUQ,CAAY;AAE3E,MAAIC,EAAY,WAAWZ,EAAS,MAAM,UACxCY,EAAY,KAAKD,CAAY,GAG/BX,EAAS,QAAQY;AAAA,IACnB;AAEA,aAASC,IAAa;AACN,MAAAR,EAAA,QAAQ,CAACA,EAAc;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"FilterSelect.js","sources":["../src/components/FilterSelect/FilterSelect.vue"],"sourcesContent":["<script lang=\"ts\">\n export * from './FilterSelect.types';\n</script>\n\n<script lang=\"ts\" setup>\n import { computed } from 'vue';\n\n import { t } from '../../locale';\n import Field from '../Field/Field.vue';\n import FilterChip from '../FilterChip/FilterChip.vue';\n import { FilterSelectModelValue, FilterSelectOption } from './FilterSelect.types';\n\n export interface FilterSelectProps {\n /**\n * The name attribute for the `<input>` elements. It is also used as a unique field to differentiate FilterSelect instances.\n */\n name: string;\n\n label: string;\n\n options: FilterSelectOption[];\n\n modelValue: FilterSelectModelValue;\n\n /**\n * When true, this prop adds an \"All\" option for selecting all options.\n */\n canSelectAll?: boolean;\n }\n\n const props = withDefaults(defineProps<FilterSelectProps>(), {\n canSelectAll: false,\n });\n\n const emit =\n defineEmits<{\n (e: 'update:modelValue', value: FilterSelectModelValue): void;\n }>();\n\n /**\n * @see: https://vuejs.org/guide/components/v-model.html#component-v-model\n */\n const selected = computed({\n get() {\n return props.modelValue;\n },\n set(value) {\n emit('update:modelValue', value);\n },\n });\n\n const isAllSelected = computed({\n get() {\n return props.options.length === props.modelValue.length;\n },\n set(isChecked) {\n emit('update:modelValue', isChecked ? props.options.map((option) => option.value) : []);\n },\n });\n\n function getOptionId(option: FilterSelectOption) {\n return `${props.name}--${option.value}`;\n }\n\n function isOptionSelected(option: FilterSelectOption) {\n return props.modelValue.includes(option.value);\n }\n\n function onEnter(enteredValue: FilterSelectOption['value']) {\n const newSelected = selected.value.filter((value) => value !== enteredValue);\n\n if (newSelected.length === selected.value.length) {\n newSelected.push(enteredValue);\n }\n\n selected.value = newSelected;\n }\n\n function onEnterAll() {\n isAllSelected.value = !isAllSelected.value;\n }\n</script>\n\n<template>\n <Field class=\"stash-filter-select\" fieldset :label=\"props.label\">\n <div class=\"tw-flex tw-flex-wrap tw-gap-1.5\">\n <div v-if=\"props.canSelectAll\" :key=\"`${props.name}--all`\">\n <input\n :id=\"`${props.name}--all`\"\n v-model=\"isAllSelected\"\n class=\"tw-sr-only\"\n tabindex=\"-1\"\n type=\"checkbox\"\n value=\"all\"\n />\n <label :for=\"`${props.name}--all`\">\n <FilterChip :is-selected=\"isAllSelected\" tabindex=\"0\" @keypress.enter=\"onEnterAll\">\n {{ t('ll.all') }}\n </FilterChip>\n </label>\n </div>\n <div v-for=\"option in props.options\" :key=\"getOptionId(option)\">\n <input\n :id=\"getOptionId(option)\"\n v-model=\"selected\"\n class=\"tw-sr-only\"\n tabindex=\"-1\"\n type=\"checkbox\"\n :value=\"option.value\"\n />\n <label :for=\"getOptionId(option)\">\n <FilterChip :is-selected=\"isOptionSelected(option)\" tabindex=\"0\" @keypress.enter=\"onEnter(option.value)\">\n {{ option.label }}\n </FilterChip>\n </label>\n </div>\n </div>\n </Field>\n</template>\n"],"names":["selected","computed","props","value","emit","isAllSelected","isChecked","option","getOptionId","isOptionSelected","onEnter","enteredValue","newSelected","onEnterAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;iBA0CQA,IAAWC,EAAS;AAAA,MACxB,MAAM;AACJ,eAAOC,EAAM;AAAA,MACf;AAAA,MACA,IAAIC,GAAO;AACT,QAAAC,EAAK,qBAAqBD,CAAK;AAAA,MACjC;AAAA,IAAA,CACD,GAEKE,IAAgBJ,EAAS;AAAA,MAC7B,MAAM;AACJ,eAAOC,EAAM,QAAQ,WAAWA,EAAM,WAAW;AAAA,MACnD;AAAA,MACA,IAAII,GAAW;AACR,QAAAF,EAAA,qBAAqBE,IAAYJ,EAAM,QAAQ,IAAI,CAACK,MAAWA,EAAO,KAAK,IAAI,CAAE,CAAA;AAAA,MACxF;AAAA,IAAA,CACD;AAED,aAASC,EAAYD,GAA4B;AAC/C,aAAO,GAAGL,EAAM,IAAI,KAAKK,EAAO,KAAK;AAAA,IACvC;AAEA,aAASE,EAAiBF,GAA4B;AACpD,aAAOL,EAAM,WAAW,SAASK,EAAO,KAAK;AAAA,IAC/C;AAEA,aAASG,EAAQC,GAA2C;AAC1D,YAAMC,IAAcZ,EAAS,MAAM,OAAO,CAACG,MAAUA,MAAUQ,CAAY;AAE3E,MAAIC,EAAY,WAAWZ,EAAS,MAAM,UACxCY,EAAY,KAAKD,CAAY,GAG/BX,EAAS,QAAQY;AAAA,IACnB;AAEA,aAASC,IAAa;AACN,MAAAR,EAAA,QAAQ,CAACA,EAAc;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/Filters.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import G from "lodash-es/cloneDeep";
|
|
2
2
|
import z from "lodash-es/merge";
|
|
3
|
-
import { toRefs as W, ref as
|
|
3
|
+
import { toRefs as W, ref as j, nextTick as Y, resolveComponent as y, openBlock as d, createElementBlock as V, Fragment as E, renderList as q, normalizeClass as S, createBlock as f, mergeProps as v, resolveDynamicComponent as k, createSlots as J, withCtx as b, normalizeProps as L, guardReactiveProps as O, createElementVNode as g, createCommentVNode as R, createVNode as U, createTextVNode as D, toDisplayString as A } from "vue";
|
|
4
4
|
import K from "./useValidation.js";
|
|
5
|
-
import { LLLV_CHANGE_TRIGGERS as
|
|
5
|
+
import { LLLV_CHANGE_TRIGGERS as M } from "./constants.js";
|
|
6
6
|
import { t as N } from "./locale.js";
|
|
7
7
|
import { persistentStorage as H } from "./storage.js";
|
|
8
8
|
import Q from "./Button.js";
|
|
@@ -23,9 +23,9 @@ import "./utils/helpers.js";
|
|
|
23
23
|
import "lodash-es/camelCase";
|
|
24
24
|
import "lodash-es/isFinite";
|
|
25
25
|
import "lodash-es/isPlainObject";
|
|
26
|
-
import "./Button.vue_used_vue_type_style_index_0_lang.module-
|
|
26
|
+
import "./Button.vue_used_vue_type_style_index_0_lang.module-63d31dc0.js";
|
|
27
27
|
import "lodash-es/uniqueId";
|
|
28
|
-
import "./Checkbox.
|
|
28
|
+
import "./Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js";
|
|
29
29
|
import "./utils/createValidDate.js";
|
|
30
30
|
import "./index-5e5945a9.js";
|
|
31
31
|
import "./index-fe8d3765.js";
|
|
@@ -38,8 +38,8 @@ import "./index-79ce320f.js";
|
|
|
38
38
|
import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
|
|
39
39
|
import "lodash-es/isNil";
|
|
40
40
|
import "./utils/i18n.js";
|
|
41
|
-
import "./Field.vue_vue_type_script_setup_true_lang-
|
|
42
|
-
import "./Label.vue_vue_type_script_setup_true_lang-
|
|
41
|
+
import "./Field.vue_vue_type_script_setup_true_lang-42ba3c5a.js";
|
|
42
|
+
import "./Label.vue_vue_type_script_setup_true_lang-4b02087f.js";
|
|
43
43
|
import "lodash-es/isEmpty";
|
|
44
44
|
import "lodash-es/isEqual";
|
|
45
45
|
import "./useSearch.js";
|
|
@@ -49,7 +49,7 @@ import "./MenusPlugin-5e93f0a5.js";
|
|
|
49
49
|
import "./Chip.js";
|
|
50
50
|
import "./utils/colorScheme.js";
|
|
51
51
|
const ie = {
|
|
52
|
-
"filter-button-group": "_filter-button-
|
|
52
|
+
"filter-button-group": "_filter-button-group_1o1yr_2"
|
|
53
53
|
}, oe = {
|
|
54
54
|
name: "ll-filters",
|
|
55
55
|
components: {
|
|
@@ -94,12 +94,12 @@ const ie = {
|
|
|
94
94
|
},
|
|
95
95
|
emits: ["change", "submit", "reset"],
|
|
96
96
|
setup(l) {
|
|
97
|
-
const { validationSchema: r } = W(l), o = r.value(), i =
|
|
97
|
+
const { validationSchema: r } = W(l), o = r.value(), i = j({}), t = j();
|
|
98
98
|
function s() {
|
|
99
99
|
if ((o == null ? void 0 : o.toString()) !== "[object Object]")
|
|
100
100
|
return;
|
|
101
|
-
i.value = Object.keys(o).reduce((
|
|
102
|
-
const p = Object.entries(o).reduce((
|
|
101
|
+
i.value = Object.keys(o).reduce((c, m) => (c[m] = void 0, c), {});
|
|
102
|
+
const p = Object.entries(o).reduce((c, [m, h]) => (c[m] = h.map((u) => u(i)), c), {});
|
|
103
103
|
t.value = K({ rules: p, values: i }), t.value.validate();
|
|
104
104
|
}
|
|
105
105
|
return {
|
|
@@ -132,10 +132,10 @@ const ie = {
|
|
|
132
132
|
const s = l[i];
|
|
133
133
|
if (s === "" || s == null)
|
|
134
134
|
return o;
|
|
135
|
-
const p = t.attributes.trackBy || "id",
|
|
135
|
+
const p = t.attributes.trackBy || "id", c = typeof s == "object", m = typeof t.type == "object", h = m && t.attributes.multiple || !m && t.type.includes("ll-select") && (t.attributes.multiple || !t.attributes.single), u = h ? (
|
|
136
136
|
// local storage might have item stored as an object from the old Select
|
|
137
137
|
(Array.isArray(s) ? s : [s]).map((a) => a[p])
|
|
138
|
-
) :
|
|
138
|
+
) : c ? [s[p]] : [s], e = t.groupedWith;
|
|
139
139
|
return e && (u[0] = {
|
|
140
140
|
index: e,
|
|
141
141
|
value: l[e]
|
|
@@ -161,7 +161,7 @@ const ie = {
|
|
|
161
161
|
}
|
|
162
162
|
},
|
|
163
163
|
async created() {
|
|
164
|
-
this.initFilterValues(), await Y(), this.initValidation(), this.applyFilters({ trigger:
|
|
164
|
+
this.initFilterValues(), await Y(), this.initValidation(), this.applyFilters({ trigger: M.LOAD });
|
|
165
165
|
},
|
|
166
166
|
methods: {
|
|
167
167
|
initFilterValues() {
|
|
@@ -178,7 +178,7 @@ const ie = {
|
|
|
178
178
|
* @param {object} [options] - optional parameters
|
|
179
179
|
* @param {string} [options.trigger] - the action that triggered this function call
|
|
180
180
|
*/
|
|
181
|
-
async applyFilters({ trigger: l =
|
|
181
|
+
async applyFilters({ trigger: l = M.APPLY } = {}) {
|
|
182
182
|
this.validation && (await this.validation.validate(), this.validation.hasErrors) || (this.disablePersistency || this.persistFilterValues(this.filterValues), this.$emit("submit", { trigger: l }));
|
|
183
183
|
},
|
|
184
184
|
resetFilters() {
|
|
@@ -236,25 +236,25 @@ const ie = {
|
|
|
236
236
|
H.set("filter-values", G(l));
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
}, se = { class: "ll-grid
|
|
240
|
-
function
|
|
239
|
+
}, se = { class: "ll-grid tw-grid-cols-4 md:tw-grid-cols-12" }, re = ["data-test"], ae = ["innerHTML"], ne = ["innerHTML"];
|
|
240
|
+
function de(l, r, o, i, t, s) {
|
|
241
241
|
var u;
|
|
242
|
-
const p = y("ll-select"),
|
|
243
|
-
return
|
|
244
|
-
(
|
|
245
|
-
var _, F, T, C, x, P, B
|
|
246
|
-
return
|
|
247
|
-
e.hidden ?
|
|
242
|
+
const p = y("ll-select"), c = y("ll-checkbox"), m = y("ll-radio"), h = y("ll-button");
|
|
243
|
+
return d(), V("div", se, [
|
|
244
|
+
(d(!0), V(E, null, q(o.schema, (e, a) => {
|
|
245
|
+
var _, F, T, C, w, x, P, B;
|
|
246
|
+
return d(), V(E, null, [
|
|
247
|
+
e.hidden ? R("", !0) : (d(), V("div", {
|
|
248
248
|
key: `${a} ${t.forceRenderCount}`,
|
|
249
|
-
class:
|
|
249
|
+
class: S(["field-wrapper tw-col-span-4 md:tw-col-span-3", { "max-md:tw-hidden": !e.type, "tw-flex tw-items-end": e.type === "ll-checkbox" }]),
|
|
250
250
|
"data-test": `filter|${e.fieldToFilter}`
|
|
251
251
|
}, [
|
|
252
|
-
e.type === "ll-select" ? (
|
|
252
|
+
e.type === "ll-select" ? (d(), f(p, v({ key: 0 }, e.attributes, {
|
|
253
253
|
error: ((_ = i.validation) == null ? void 0 : _.fields[e.fieldToFilter]) && ((F = i.validation) == null ? void 0 : F.getError(e.fieldToFilter)),
|
|
254
254
|
label: e.label,
|
|
255
255
|
"model-value": t.filterValues[a],
|
|
256
256
|
"onUpdate:modelValue": (n) => s.onSelectInput(n, e, a)
|
|
257
|
-
}), null, 16, ["error", "label", "model-value", "onUpdate:modelValue"])) : e.type === "ll-checkbox" ? (
|
|
257
|
+
}), null, 16, ["error", "label", "model-value", "onUpdate:modelValue"])) : e.type === "ll-checkbox" ? (d(), f(c, v({
|
|
258
258
|
key: 1,
|
|
259
259
|
checked: t.filterValues[a],
|
|
260
260
|
"onUpdate:checked": (n) => t.filterValues[a] = n
|
|
@@ -262,31 +262,31 @@ function ce(l, r, o, i, t, s) {
|
|
|
262
262
|
"error-text": ((T = i.validation) == null ? void 0 : T.fields[e.fieldToFilter]) && ((C = i.validation) == null ? void 0 : C.getError(e.fieldToFilter)),
|
|
263
263
|
label: e.label,
|
|
264
264
|
"onUpdate:checked": (n) => s.onChange(e, t.filterValues, a)
|
|
265
|
-
}), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type === "ll-radio" ? (
|
|
265
|
+
}), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type === "ll-radio" ? (d(), f(m, v({
|
|
266
266
|
key: 2,
|
|
267
267
|
checked: t.filterValues[a],
|
|
268
268
|
"onUpdate:checked": (n) => t.filterValues[a] = n
|
|
269
269
|
}, e.attributes, {
|
|
270
|
-
"error-text": ((
|
|
270
|
+
"error-text": ((w = i.validation) == null ? void 0 : w.fields[e.fieldToFilter]) && ((x = i.validation) == null ? void 0 : x.getError(e.fieldToFilter)),
|
|
271
271
|
label: e.label,
|
|
272
272
|
"onUpdate:checked": (n) => s.onChange(e, t.filterValues, a)
|
|
273
|
-
}), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type ? (
|
|
273
|
+
}), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type ? (d(), f(k(e.type), v({ key: 3 }, e.attributes, {
|
|
274
274
|
modelValue: t.filterValues[a],
|
|
275
275
|
"onUpdate:modelValue": [(n) => t.filterValues[a] = n, (n) => s.onChange(e, t.filterValues, a)],
|
|
276
|
-
"error-text": ((
|
|
276
|
+
"error-text": ((P = i.validation) == null ? void 0 : P.fields[e.fieldToFilter]) && ((B = i.validation) == null ? void 0 : B.getError(e.fieldToFilter)),
|
|
277
277
|
label: e.label
|
|
278
278
|
}), J({ _: 2 }, [
|
|
279
279
|
e.slots && e.slots.selected ? {
|
|
280
280
|
name: "selected",
|
|
281
281
|
fn: b(({ option: n }) => [
|
|
282
|
-
(
|
|
282
|
+
(d(), f(k(e.slots.selected), L(O(n.props)), null, 16))
|
|
283
283
|
]),
|
|
284
284
|
key: "0"
|
|
285
285
|
} : void 0,
|
|
286
286
|
e.slots && e.slots.option ? {
|
|
287
287
|
name: "option",
|
|
288
288
|
fn: b(({ option: n }) => [
|
|
289
|
-
(
|
|
289
|
+
(d(), f(k(e.slots.option), L(O(n.props)), null, 16))
|
|
290
290
|
]),
|
|
291
291
|
key: "1"
|
|
292
292
|
} : void 0,
|
|
@@ -308,41 +308,41 @@ function ce(l, r, o, i, t, s) {
|
|
|
308
308
|
]),
|
|
309
309
|
key: "3"
|
|
310
310
|
} : void 0
|
|
311
|
-
]), 1040, ["modelValue", "onUpdate:modelValue", "error-text", "label"])) :
|
|
311
|
+
]), 1040, ["modelValue", "onUpdate:modelValue", "error-text", "label"])) : R("", !0)
|
|
312
312
|
], 10, re))
|
|
313
313
|
], 64);
|
|
314
314
|
}), 256)),
|
|
315
315
|
g("div", {
|
|
316
|
-
class:
|
|
316
|
+
class: S(["button-grid tw-col-span-4 tw-flex tw-items-end tw-justify-end md:tw-col-span-12", l.$style["filter-button-group"]])
|
|
317
317
|
}, [
|
|
318
|
-
|
|
318
|
+
U(h, {
|
|
319
319
|
secondary: "",
|
|
320
320
|
"data-test": "button|reset-filters",
|
|
321
321
|
disabled: o.disableClear,
|
|
322
322
|
onClick: s.resetFilters
|
|
323
323
|
}, {
|
|
324
324
|
default: b(() => [
|
|
325
|
-
A(
|
|
325
|
+
D(A(t.clearText), 1)
|
|
326
326
|
]),
|
|
327
327
|
_: 1
|
|
328
328
|
}, 8, ["disabled", "onClick"]),
|
|
329
|
-
|
|
329
|
+
U(h, {
|
|
330
330
|
primary: "",
|
|
331
331
|
"data-test": "button|apply-filters",
|
|
332
332
|
disabled: o.disableApply || ((u = i.validation) == null ? void 0 : u.hasErrors),
|
|
333
333
|
onClick: s.applyFilters
|
|
334
334
|
}, {
|
|
335
335
|
default: b(() => [
|
|
336
|
-
A(
|
|
336
|
+
D(A(t.applyText), 1)
|
|
337
337
|
]),
|
|
338
338
|
_: 1
|
|
339
339
|
}, 8, ["disabled", "onClick"])
|
|
340
340
|
], 2)
|
|
341
341
|
]);
|
|
342
342
|
}
|
|
343
|
-
const
|
|
343
|
+
const ce = {
|
|
344
344
|
$style: ie
|
|
345
|
-
}, at = /* @__PURE__ */ le(oe, [["render",
|
|
345
|
+
}, at = /* @__PURE__ */ le(oe, [["render", de], ["__cssModules", ce]]);
|
|
346
346
|
export {
|
|
347
347
|
at as default
|
|
348
348
|
};
|