admins-components 9.0.87 → 9.0.88
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/admins-components100.js +9 -9
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +10 -5
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components38.js +24 -27
- package/dist/admins-components38.js.map +1 -1
- package/dist/admins-components40.js.map +1 -1
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components82.js.map +1 -1
- package/dist/admins-components83.js +54 -53
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components85.js.map +1 -1
- package/dist/admins-components87.js +14 -14
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components91.js +85 -84
- package/dist/admins-components91.js.map +1 -1
- package/dist/admins-components93.js.map +1 -1
- package/dist/main.css +1 -1
- package/dist/src/components/data-table/DataFilters.vue.d.ts +2 -0
- package/dist/src/components/data-table/DataPaginator.vue.d.ts +4 -3
- package/dist/src/components/data-table/DataSearch.vue.d.ts +4 -0
- package/dist/src/components/data-table/DataSort.vue.d.ts +3 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/types/types.d.ts +1 -0
- package/dist/src/utils/dataFilters.d.ts +2 -2
- package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-sort.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/filter-tags.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/widget.css +1 -1
- package/package.json +1 -1
|
@@ -7,12 +7,12 @@ import a from "./admins-components28.js";
|
|
|
7
7
|
import o from "./admins-components34.js";
|
|
8
8
|
import { extractDropdownValues as s, filterEmptyValues as c, getDefaultFilters as l, writeFilterParams as u } from "./admins-components87.js";
|
|
9
9
|
import d from "./admins-components90.js";
|
|
10
|
-
import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _,
|
|
10
|
+
import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, mergeProps as x, normalizeClass as S, openBlock as C, ref as w, renderList as T, toDisplayString as E, withCtx as D } from "vue";
|
|
11
11
|
//#region src/components/data-table/DataFilters.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
-
var
|
|
12
|
+
var O = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "data-filters__separator"
|
|
15
|
-
},
|
|
15
|
+
}, k = ["for"], A = { class: "c-label" }, j = { class: "c-label" }, M = { class: "data-filters__footer" }, N = /*@__PURE__*/ b({
|
|
16
16
|
__name: "DataFilters",
|
|
17
17
|
props: {
|
|
18
18
|
items: {},
|
|
@@ -33,102 +33,103 @@ var D = {
|
|
|
33
33
|
type: Boolean,
|
|
34
34
|
default: !0
|
|
35
35
|
},
|
|
36
|
-
storageKey: {}
|
|
36
|
+
storageKey: {},
|
|
37
|
+
ignoreSavedDefault: { type: Boolean }
|
|
37
38
|
},
|
|
38
39
|
emits: ["close", "change"],
|
|
39
|
-
setup(
|
|
40
|
-
let
|
|
41
|
-
function
|
|
42
|
-
t ?
|
|
40
|
+
setup(b, { expose: N, emit: P }) {
|
|
41
|
+
let F = b, I = P, L = w(l(F.items, F.storageKey, !1, F.ignoreSavedDefault)), R = w({});
|
|
42
|
+
function z(e, t) {
|
|
43
|
+
t ? R.value[e] = t : delete R.value[e];
|
|
43
44
|
}
|
|
44
|
-
function
|
|
45
|
+
function B(e) {
|
|
45
46
|
return {
|
|
46
47
|
...e.config ?? {},
|
|
47
48
|
showTime: e.type === "datetime",
|
|
48
49
|
placeholder: e.placeholder ?? (e.type === "datetime" ? "Időpont" : "Dátum")
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
|
-
function
|
|
52
|
+
function V(e) {
|
|
52
53
|
return {
|
|
53
54
|
...e.config ?? {},
|
|
54
55
|
...e.fullWidth ? {} : { compact: !0 },
|
|
55
56
|
showTime: e.type === "datetimerange"
|
|
56
57
|
};
|
|
57
58
|
}
|
|
58
|
-
function
|
|
59
|
+
function H(e, t) {
|
|
59
60
|
let n = typeof t == "string" ? t.trim() : t;
|
|
60
|
-
|
|
61
|
-
...
|
|
61
|
+
L.value = {
|
|
62
|
+
...L.value,
|
|
62
63
|
[e.key]: n
|
|
63
|
-
}, e.onChange && e.onChange(n),
|
|
64
|
+
}, e.onChange && e.onChange(n), F.lazy || G();
|
|
64
65
|
}
|
|
65
|
-
let
|
|
66
|
-
function
|
|
66
|
+
let U = p(() => Object.values(L.value).some((e) => e !== null && e !== "" && e !== void 0));
|
|
67
|
+
function W() {
|
|
67
68
|
let e = {};
|
|
68
|
-
for (let t of
|
|
69
|
+
for (let t of F.items) {
|
|
69
70
|
if (t.type === "separator") continue;
|
|
70
|
-
let n =
|
|
71
|
+
let n = L.value[t.key];
|
|
71
72
|
t.transformer ? Object.assign(e, t.transformer(n) ?? {}) : t.type === "date" || t.type === "datetime" ? e[t.key] = n?.utc ?? n : t.type === "dropdown" ? e[t.key] = s(n) : e[t.key] = n;
|
|
72
73
|
}
|
|
73
74
|
return {
|
|
74
|
-
values: c(
|
|
75
|
+
values: c(L.value),
|
|
75
76
|
transformed: c(e)
|
|
76
77
|
};
|
|
77
78
|
}
|
|
78
|
-
function W() {
|
|
79
|
-
P.handleUrl && u(P.items, I.value), F("change", U());
|
|
80
|
-
}
|
|
81
79
|
function G() {
|
|
82
|
-
|
|
80
|
+
F.handleUrl && u(F.items, L.value), I("change", W());
|
|
83
81
|
}
|
|
84
82
|
function K() {
|
|
85
|
-
|
|
83
|
+
G(), I("close");
|
|
86
84
|
}
|
|
87
|
-
function q(
|
|
88
|
-
|
|
89
|
-
...I.value,
|
|
90
|
-
[e]: null
|
|
91
|
-
}, W();
|
|
85
|
+
function q() {
|
|
86
|
+
L.value = {}, G();
|
|
92
87
|
}
|
|
93
88
|
function J(e) {
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
L.value = {
|
|
90
|
+
...L.value,
|
|
91
|
+
[e]: null
|
|
92
|
+
}, G();
|
|
96
93
|
}
|
|
97
94
|
function Y(e) {
|
|
98
|
-
let t =
|
|
99
|
-
|
|
100
|
-
I.value = t, W();
|
|
95
|
+
let t = R.value[e];
|
|
96
|
+
t && (typeof t.focusAndOpen == "function" ? t.focusAndOpen() : typeof t.focus == "function" && t.focus());
|
|
101
97
|
}
|
|
102
|
-
M({
|
|
103
|
-
clearFilter: q,
|
|
104
|
-
focusFilter: J
|
|
105
|
-
});
|
|
106
98
|
function X(e) {
|
|
107
|
-
|
|
99
|
+
let t = { ...L.value };
|
|
100
|
+
for (let n of F.items) n.type !== "separator" && n.key in e && (t[n.key] = e[n.key] ?? null);
|
|
101
|
+
L.value = t, G();
|
|
102
|
+
}
|
|
103
|
+
N({
|
|
104
|
+
clearFilter: J,
|
|
105
|
+
focusFilter: Y
|
|
106
|
+
});
|
|
107
|
+
function Z(e) {
|
|
108
|
+
e.key === "Enter" && e.target?.tagName !== "TEXTAREA" && (e.preventDefault(), K());
|
|
108
109
|
}
|
|
109
|
-
function
|
|
110
|
+
function Q(e, t) {
|
|
110
111
|
e.onInnerSearch && e.onInnerSearch(t);
|
|
111
112
|
}
|
|
112
|
-
return (s, c) => (
|
|
113
|
-
open:
|
|
113
|
+
return (s, c) => (C(), m(o, {
|
|
114
|
+
open: b.open,
|
|
114
115
|
title: "Szűrők",
|
|
115
|
-
position:
|
|
116
|
-
onClose: c[0] ||= (e) =>
|
|
116
|
+
position: b.position,
|
|
117
|
+
onClose: c[0] ||= (e) => I("close")
|
|
117
118
|
}, {
|
|
118
|
-
default:
|
|
119
|
+
default: D(() => [
|
|
119
120
|
_("div", {
|
|
120
121
|
class: "data-filters",
|
|
121
|
-
onKeydown:
|
|
122
|
-
}, [(
|
|
122
|
+
onKeydown: Z
|
|
123
|
+
}, [v(E(b.ignoreSavedDefault) + " ", 1), (C(!0), g(f, null, T(b.items, (e) => (C(), g("div", {
|
|
123
124
|
key: e.key,
|
|
124
|
-
class:
|
|
125
|
-
}, [e.type === "separator" ? (
|
|
125
|
+
class: S(["data-filters__field", { "data-filters__field--full": e.fullWidth || e.type === "separator" }])
|
|
126
|
+
}, [e.type === "separator" ? (C(), g("hr", O)) : e.type === "checkbox" ? (C(), m(r, x({
|
|
126
127
|
key: 1,
|
|
127
128
|
ref_for: !0,
|
|
128
|
-
ref: (t) =>
|
|
129
|
-
"model-value":
|
|
129
|
+
ref: (t) => z(e.key, t),
|
|
130
|
+
"model-value": L.value[e.key] ?? !1,
|
|
130
131
|
label: e.label ?? e.key,
|
|
131
|
-
"onUpdate:modelValue": (t) =>
|
|
132
|
+
"onUpdate:modelValue": (t) => H(e, t)
|
|
132
133
|
}, { ref_for: !0 }, e.config), null, 16, [
|
|
133
134
|
"model-value",
|
|
134
135
|
"label",
|
|
@@ -137,17 +138,17 @@ var D = {
|
|
|
137
138
|
"text",
|
|
138
139
|
"number",
|
|
139
140
|
"textarea"
|
|
140
|
-
].includes(e.type) ? (
|
|
141
|
+
].includes(e.type) ? (C(), m(n, x({
|
|
141
142
|
key: 2,
|
|
142
143
|
type: e.type,
|
|
143
144
|
ref_for: !0,
|
|
144
|
-
ref: (t) =>
|
|
145
|
+
ref: (t) => z(e.key, t),
|
|
145
146
|
id: `df-${e.key}`,
|
|
146
|
-
"model-value":
|
|
147
|
+
"model-value": L.value[e.key] ?? "",
|
|
147
148
|
label: e.label ?? e.key,
|
|
148
149
|
placeholder: e.placeholder,
|
|
149
|
-
debounce:
|
|
150
|
-
"onUpdate:modelValue": (t) =>
|
|
150
|
+
debounce: b.lazy ? void 0 : 500,
|
|
151
|
+
"onUpdate:modelValue": (t) => H(e, t || null)
|
|
151
152
|
}, { ref_for: !0 }, e.config), null, 16, [
|
|
152
153
|
"type",
|
|
153
154
|
"id",
|
|
@@ -156,35 +157,35 @@ var D = {
|
|
|
156
157
|
"placeholder",
|
|
157
158
|
"debounce",
|
|
158
159
|
"onUpdate:modelValue"
|
|
159
|
-
])) : e.type === "date" || e.type === "datetime" ? (
|
|
160
|
+
])) : e.type === "date" || e.type === "datetime" ? (C(), g(f, { key: 3 }, [_("label", {
|
|
160
161
|
class: "c-label",
|
|
161
162
|
for: `df-${e.key}`
|
|
162
|
-
},
|
|
163
|
+
}, E(e.label ?? e.key), 9, k), y(t, {
|
|
163
164
|
ref_for: !0,
|
|
164
|
-
ref: (t) =>
|
|
165
|
+
ref: (t) => z(e.key, t),
|
|
165
166
|
id: `df-${e.key}`,
|
|
166
|
-
"model-value":
|
|
167
|
-
config:
|
|
168
|
-
"onUpdate:modelValue": (t) =>
|
|
167
|
+
"model-value": L.value[e.key] ?? null,
|
|
168
|
+
config: B(e),
|
|
169
|
+
"onUpdate:modelValue": (t) => H(e, t)
|
|
169
170
|
}, null, 8, [
|
|
170
171
|
"id",
|
|
171
172
|
"model-value",
|
|
172
173
|
"config",
|
|
173
174
|
"onUpdate:modelValue"
|
|
174
|
-
])], 64)) : e.type === "daterange" || e.type === "datetimerange" ? (
|
|
175
|
+
])], 64)) : e.type === "daterange" || e.type === "datetimerange" ? (C(), g(f, { key: 4 }, [_("span", A, E(e.label ?? e.key), 1), y(i, {
|
|
175
176
|
ref_for: !0,
|
|
176
|
-
ref: (t) =>
|
|
177
|
-
"model-value":
|
|
178
|
-
config:
|
|
179
|
-
"onUpdate:modelValue": (t) =>
|
|
177
|
+
ref: (t) => z(e.key, t),
|
|
178
|
+
"model-value": L.value[e.key] ?? null,
|
|
179
|
+
config: V(e),
|
|
180
|
+
"onUpdate:modelValue": (t) => H(e, t)
|
|
180
181
|
}, null, 8, [
|
|
181
182
|
"model-value",
|
|
182
183
|
"config",
|
|
183
184
|
"onUpdate:modelValue"
|
|
184
|
-
])], 64)) : e.type === "dropdown" ? (
|
|
185
|
+
])], 64)) : e.type === "dropdown" ? (C(), g(f, { key: 5 }, [_("span", j, E(e.label ?? e.key), 1), y(a, {
|
|
185
186
|
ref_for: !0,
|
|
186
|
-
ref: (t) =>
|
|
187
|
-
"model-value":
|
|
187
|
+
ref: (t) => z(e.key, t),
|
|
188
|
+
"model-value": L.value[e.key] ?? null,
|
|
188
189
|
options: e.options ?? [],
|
|
189
190
|
config: {
|
|
190
191
|
...e.config ?? {},
|
|
@@ -192,8 +193,8 @@ var D = {
|
|
|
192
193
|
clearable: !0,
|
|
193
194
|
filterable: !0
|
|
194
195
|
},
|
|
195
|
-
onFilterInput: (t) =>
|
|
196
|
-
"onUpdate:modelValue": (t) =>
|
|
196
|
+
onFilterInput: (t) => Q(e, t),
|
|
197
|
+
"onUpdate:modelValue": (t) => H(e, t)
|
|
197
198
|
}, null, 8, [
|
|
198
199
|
"model-value",
|
|
199
200
|
"options",
|
|
@@ -201,24 +202,24 @@ var D = {
|
|
|
201
202
|
"onFilterInput",
|
|
202
203
|
"onUpdate:modelValue"
|
|
203
204
|
])], 64)) : h("", !0)], 2))), 128))], 32),
|
|
204
|
-
_("div",
|
|
205
|
+
_("div", M, [y(e, {
|
|
205
206
|
icon: "fa-solid fa-trash-can",
|
|
206
|
-
disabled: !
|
|
207
|
+
disabled: !U.value,
|
|
207
208
|
label: "Szűrők törlése",
|
|
208
209
|
"aria-label": "Szűrők törlése",
|
|
209
210
|
size: "small",
|
|
210
|
-
onClick:
|
|
211
|
-
}, null, 8, ["disabled"]),
|
|
211
|
+
onClick: q
|
|
212
|
+
}, null, 8, ["disabled"]), y(e, {
|
|
212
213
|
label: "Szűrés",
|
|
213
214
|
"aria-label": "Szűrés",
|
|
214
215
|
type: "success",
|
|
215
|
-
onClick:
|
|
216
|
+
onClick: K
|
|
216
217
|
})]),
|
|
217
|
-
|
|
218
|
-
items:
|
|
219
|
-
values:
|
|
220
|
-
"storage-key":
|
|
221
|
-
onLoad:
|
|
218
|
+
b.historyEnabled ? (C(), g(f, { key: 0 }, [c[1] ||= _("hr", { class: "separator my-3" }, null, -1), y(d, {
|
|
219
|
+
items: b.items,
|
|
220
|
+
values: L.value,
|
|
221
|
+
"storage-key": b.storageKey,
|
|
222
|
+
onLoad: X
|
|
222
223
|
}, null, 8, [
|
|
223
224
|
"items",
|
|
224
225
|
"values",
|
|
@@ -230,4 +231,4 @@ var D = {
|
|
|
230
231
|
}
|
|
231
232
|
});
|
|
232
233
|
//#endregion
|
|
233
|
-
export {
|
|
234
|
+
export { N as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components91.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n transformer?: (value: any) => Record<string, any> | null | undefined\n onInnerSearch?: (value: string) => void\n onChange?: (value: any) => void\n}\n\nexport interface FilterResponse {\n values: Record<string, any>\n transformed: Record<string, any>\n}\n\nexport interface DataFiltersProps {\n items: FilterItem[]\n open?: boolean\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport TextInput, { type TextInputType } from '@/components/TextInput.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\nimport {\n extractDropdownValues,\n filterEmptyValues,\n getDefaultFilters,\n writeFilterParams,\n} from '@/utils/dataFilters'\n\nconst props = withDefaults(defineProps<DataFiltersProps>(), {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [response: FilterResponse]\n}>()\n\nconst values = ref<Record<string, any>>(getDefaultFilters(props.items, props.storageKey, false))\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) filterRefs.value[key] = el\n else delete filterRefs.value[key]\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nfunction update(item: FilterItem, value: any) {\n const stored = typeof value === 'string' ? value.trim() : value\n values.value = { ...values.value, [item.key]: stored }\n if (item.onChange) item.onChange(stored)\n if (!props.lazy) emitChange()\n}\n\nconst hasActiveFilters = computed(() =>\n Object.values(values.value).some((v) => v !== null && v !== '' && v !== undefined),\n)\n\nfunction buildResponse(): FilterResponse {\n const transformed: Record<string, any> = {}\n for (const item of props.items) {\n if (item.type === 'separator') continue\n const val = values.value[item.key]\n if (item.transformer) {\n Object.assign(transformed, item.transformer(val) ?? {})\n } else if (item.type === 'date' || item.type === 'datetime') {\n transformed[item.key] = val?.utc ?? val\n } else if (item.type === 'dropdown') {\n transformed[item.key] = extractDropdownValues(val)\n } else {\n transformed[item.key] = val\n }\n }\n return { values: filterEmptyValues(values.value), transformed: filterEmptyValues(transformed) }\n}\n\nfunction emitChange() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponse())\n}\n\nfunction confirm() {\n emitChange()\n emit('close')\n}\n\nfunction clearAll() {\n values.value = {}\n emitChange()\n}\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n emitChange()\n}\n\nfunction focusFilter(key: string) {\n const el = (filterRefs.value as Record<string, any>)[key]\n if (!el) return\n\n if (typeof el.focusAndOpen === 'function') el.focusAndOpen()\n else if (typeof el.focus === 'function') el.focus()\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) next[item.key] = loaded[item.key] ?? null\n }\n values.value = next\n emitChange()\n}\n\ndefineExpose({ clearFilter, focusFilter })\n\nfunction handleFilterKeydown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return\n\n const target = event.target as HTMLElement\n if (target?.tagName === 'TEXTAREA') return\n\n event.preventDefault()\n confirm()\n}\n\nfunction handleDropdownFilterInput(item: FilterItem, text: string) {\n if (item.onInnerSearch) item.onInnerSearch(text)\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\" @keydown=\"handleFilterKeydown\">\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"['text', 'number', 'textarea'].includes(item.type)\">\n <TextInput\n :type=\"item.type as TextInputType\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as string) ?? ''\"\n :label=\"item.label ?? item.key\"\n :placeholder=\"item.placeholder\"\n :debounce=\"!lazy ? 500 : undefined\"\n @update:model-value=\"(val) => update(item, val || null)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"item.type === 'date' || item.type === 'datetime'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <DatePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DateRangePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'dropdown'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DropdownSelect\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as DropdownOption | DropdownOption[] | null) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @filter-input=\"handleDropdownFilterInput(item, $event)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <template v-if=\"historyEnabled\">\n <hr class=\"separator my-3\" />\n <FiltersHistory\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n />\n </template>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components91.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n transformer?: (value: any) => Record<string, any> | null | undefined\n onInnerSearch?: (value: string) => void\n onChange?: (value: any) => void\n}\n\nexport interface FilterResponse {\n values: Record<string, any>\n transformed: Record<string, any>\n}\n\nexport interface DataFiltersProps {\n items: FilterItem[]\n open?: boolean\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n /** Skip the saved default filter set from FiltersHistory when resolving initial values. */\n ignoreSavedDefault?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport TextInput, { type TextInputType } from '@/components/TextInput.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\nimport {\n extractDropdownValues,\n filterEmptyValues,\n getDefaultFilters,\n writeFilterParams,\n} from '@/utils/dataFilters'\n\nconst props = withDefaults(defineProps<DataFiltersProps>(), {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [response: FilterResponse]\n}>()\n\nconst values = ref<Record<string, any>>(\n getDefaultFilters(props.items, props.storageKey, false, props.ignoreSavedDefault),\n)\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) filterRefs.value[key] = el\n else delete filterRefs.value[key]\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nfunction update(item: FilterItem, value: any) {\n const stored = typeof value === 'string' ? value.trim() : value\n values.value = { ...values.value, [item.key]: stored }\n if (item.onChange) item.onChange(stored)\n if (!props.lazy) emitChange()\n}\n\nconst hasActiveFilters = computed(() =>\n Object.values(values.value).some((v) => v !== null && v !== '' && v !== undefined),\n)\n\nfunction buildResponse(): FilterResponse {\n const transformed: Record<string, any> = {}\n for (const item of props.items) {\n if (item.type === 'separator') continue\n const val = values.value[item.key]\n if (item.transformer) {\n Object.assign(transformed, item.transformer(val) ?? {})\n } else if (item.type === 'date' || item.type === 'datetime') {\n transformed[item.key] = val?.utc ?? val\n } else if (item.type === 'dropdown') {\n transformed[item.key] = extractDropdownValues(val)\n } else {\n transformed[item.key] = val\n }\n }\n return { values: filterEmptyValues(values.value), transformed: filterEmptyValues(transformed) }\n}\n\nfunction emitChange() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponse())\n}\n\nfunction confirm() {\n emitChange()\n emit('close')\n}\n\nfunction clearAll() {\n values.value = {}\n emitChange()\n}\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n emitChange()\n}\n\nfunction focusFilter(key: string) {\n const el = (filterRefs.value as Record<string, any>)[key]\n if (!el) return\n\n if (typeof el.focusAndOpen === 'function') el.focusAndOpen()\n else if (typeof el.focus === 'function') el.focus()\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) next[item.key] = loaded[item.key] ?? null\n }\n values.value = next\n emitChange()\n}\n\ndefineExpose({ clearFilter, focusFilter })\n\nfunction handleFilterKeydown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return\n\n const target = event.target as HTMLElement\n if (target?.tagName === 'TEXTAREA') return\n\n event.preventDefault()\n confirm()\n}\n\nfunction handleDropdownFilterInput(item: FilterItem, text: string) {\n if (item.onInnerSearch) item.onInnerSearch(text)\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\" @keydown=\"handleFilterKeydown\">\n {{ ignoreSavedDefault }}\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"['text', 'number', 'textarea'].includes(item.type)\">\n <TextInput\n :type=\"item.type as TextInputType\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as string) ?? ''\"\n :label=\"item.label ?? item.key\"\n :placeholder=\"item.placeholder\"\n :debounce=\"!lazy ? 500 : undefined\"\n @update:model-value=\"(val) => update(item, val || null)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"item.type === 'date' || item.type === 'datetime'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <DatePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DateRangePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'dropdown'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DropdownSelect\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as DropdownOption | DropdownOption[] | null) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @filter-input=\"handleDropdownFilterInput(item, $event)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <template v-if=\"historyEnabled\">\n <hr class=\"separator my-3\" />\n <FiltersHistory\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n />\n </template>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components93.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n transformer?: (value: any) => Record<string, any> | null | undefined\n onInnerSearch?: (value: string) => void\n onChange?: (value: any) => void\n}\n\nexport interface FilterResponse {\n values: Record<string, any>\n transformed: Record<string, any>\n}\n\nexport interface DataFiltersProps {\n items: FilterItem[]\n open?: boolean\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport TextInput, { type TextInputType } from '@/components/TextInput.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\nimport {\n extractDropdownValues,\n filterEmptyValues,\n getDefaultFilters,\n writeFilterParams,\n} from '@/utils/dataFilters'\n\nconst props = withDefaults(defineProps<DataFiltersProps>(), {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [response: FilterResponse]\n}>()\n\nconst values = ref<Record<string, any>>(getDefaultFilters(props.items, props.storageKey, false))\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) filterRefs.value[key] = el\n else delete filterRefs.value[key]\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nfunction update(item: FilterItem, value: any) {\n const stored = typeof value === 'string' ? value.trim() : value\n values.value = { ...values.value, [item.key]: stored }\n if (item.onChange) item.onChange(stored)\n if (!props.lazy) emitChange()\n}\n\nconst hasActiveFilters = computed(() =>\n Object.values(values.value).some((v) => v !== null && v !== '' && v !== undefined),\n)\n\nfunction buildResponse(): FilterResponse {\n const transformed: Record<string, any> = {}\n for (const item of props.items) {\n if (item.type === 'separator') continue\n const val = values.value[item.key]\n if (item.transformer) {\n Object.assign(transformed, item.transformer(val) ?? {})\n } else if (item.type === 'date' || item.type === 'datetime') {\n transformed[item.key] = val?.utc ?? val\n } else if (item.type === 'dropdown') {\n transformed[item.key] = extractDropdownValues(val)\n } else {\n transformed[item.key] = val\n }\n }\n return { values: filterEmptyValues(values.value), transformed: filterEmptyValues(transformed) }\n}\n\nfunction emitChange() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponse())\n}\n\nfunction confirm() {\n emitChange()\n emit('close')\n}\n\nfunction clearAll() {\n values.value = {}\n emitChange()\n}\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n emitChange()\n}\n\nfunction focusFilter(key: string) {\n const el = (filterRefs.value as Record<string, any>)[key]\n if (!el) return\n\n if (typeof el.focusAndOpen === 'function') el.focusAndOpen()\n else if (typeof el.focus === 'function') el.focus()\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) next[item.key] = loaded[item.key] ?? null\n }\n values.value = next\n emitChange()\n}\n\ndefineExpose({ clearFilter, focusFilter })\n\nfunction handleFilterKeydown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return\n\n const target = event.target as HTMLElement\n if (target?.tagName === 'TEXTAREA') return\n\n event.preventDefault()\n confirm()\n}\n\nfunction handleDropdownFilterInput(item: FilterItem, text: string) {\n if (item.onInnerSearch) item.onInnerSearch(text)\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\" @keydown=\"handleFilterKeydown\">\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"['text', 'number', 'textarea'].includes(item.type)\">\n <TextInput\n :type=\"item.type as TextInputType\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as string) ?? ''\"\n :label=\"item.label ?? item.key\"\n :placeholder=\"item.placeholder\"\n :debounce=\"!lazy ? 500 : undefined\"\n @update:model-value=\"(val) => update(item, val || null)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"item.type === 'date' || item.type === 'datetime'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <DatePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DateRangePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'dropdown'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DropdownSelect\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as DropdownOption | DropdownOption[] | null) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @filter-input=\"handleDropdownFilterInput(item, $event)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <template v-if=\"historyEnabled\">\n <hr class=\"separator my-3\" />\n <FiltersHistory\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n />\n </template>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"admins-components93.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n transformer?: (value: any) => Record<string, any> | null | undefined\n onInnerSearch?: (value: string) => void\n onChange?: (value: any) => void\n}\n\nexport interface FilterResponse {\n values: Record<string, any>\n transformed: Record<string, any>\n}\n\nexport interface DataFiltersProps {\n items: FilterItem[]\n open?: boolean\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n /** Skip the saved default filter set from FiltersHistory when resolving initial values. */\n ignoreSavedDefault?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport TextInput, { type TextInputType } from '@/components/TextInput.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\nimport {\n extractDropdownValues,\n filterEmptyValues,\n getDefaultFilters,\n writeFilterParams,\n} from '@/utils/dataFilters'\n\nconst props = withDefaults(defineProps<DataFiltersProps>(), {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [response: FilterResponse]\n}>()\n\nconst values = ref<Record<string, any>>(\n getDefaultFilters(props.items, props.storageKey, false, props.ignoreSavedDefault),\n)\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) filterRefs.value[key] = el\n else delete filterRefs.value[key]\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nfunction update(item: FilterItem, value: any) {\n const stored = typeof value === 'string' ? value.trim() : value\n values.value = { ...values.value, [item.key]: stored }\n if (item.onChange) item.onChange(stored)\n if (!props.lazy) emitChange()\n}\n\nconst hasActiveFilters = computed(() =>\n Object.values(values.value).some((v) => v !== null && v !== '' && v !== undefined),\n)\n\nfunction buildResponse(): FilterResponse {\n const transformed: Record<string, any> = {}\n for (const item of props.items) {\n if (item.type === 'separator') continue\n const val = values.value[item.key]\n if (item.transformer) {\n Object.assign(transformed, item.transformer(val) ?? {})\n } else if (item.type === 'date' || item.type === 'datetime') {\n transformed[item.key] = val?.utc ?? val\n } else if (item.type === 'dropdown') {\n transformed[item.key] = extractDropdownValues(val)\n } else {\n transformed[item.key] = val\n }\n }\n return { values: filterEmptyValues(values.value), transformed: filterEmptyValues(transformed) }\n}\n\nfunction emitChange() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponse())\n}\n\nfunction confirm() {\n emitChange()\n emit('close')\n}\n\nfunction clearAll() {\n values.value = {}\n emitChange()\n}\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n emitChange()\n}\n\nfunction focusFilter(key: string) {\n const el = (filterRefs.value as Record<string, any>)[key]\n if (!el) return\n\n if (typeof el.focusAndOpen === 'function') el.focusAndOpen()\n else if (typeof el.focus === 'function') el.focus()\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) next[item.key] = loaded[item.key] ?? null\n }\n values.value = next\n emitChange()\n}\n\ndefineExpose({ clearFilter, focusFilter })\n\nfunction handleFilterKeydown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return\n\n const target = event.target as HTMLElement\n if (target?.tagName === 'TEXTAREA') return\n\n event.preventDefault()\n confirm()\n}\n\nfunction handleDropdownFilterInput(item: FilterItem, text: string) {\n if (item.onInnerSearch) item.onInnerSearch(text)\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\" @keydown=\"handleFilterKeydown\">\n {{ ignoreSavedDefault }}\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"['text', 'number', 'textarea'].includes(item.type)\">\n <TextInput\n :type=\"item.type as TextInputType\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as string) ?? ''\"\n :label=\"item.label ?? item.key\"\n :placeholder=\"item.placeholder\"\n :debounce=\"!lazy ? 500 : undefined\"\n @update:model-value=\"(val) => update(item, val || null)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"item.type === 'date' || item.type === 'datetime'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <DatePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DateRangePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'dropdown'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DropdownSelect\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as DropdownOption | DropdownOption[] | null) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @filter-input=\"handleDropdownFilterInput(item, $event)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <template v-if=\"historyEnabled\">\n <hr class=\"separator my-3\" />\n <FiltersHistory\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n />\n </template>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":""}
|
package/dist/main.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/regular.min.css";:root{--ac-font-family: 'Geist', 'Segoe UI', system-ui, -apple-system, sans-serif;--background-50: #f7f9f9;--background-100: #eff3f3;--neutral-0: #fff;--neutral-50: #f2f4f4;--neutral-100: #e5e9ea;--neutral-150: #dae0e1;--neutral-200: #cbd3d4;--neutral-250: #bec8ca;--neutral-300: #b0bdbf;--neutral-400: #96a7a9;--neutral-500: #7c9194;--neutral-600: #637476;--neutral-700: #4a5759;--neutral-800: #323a3b;--neutral-900: #1f2d2d;--site-50: #ffebe1;--site-100: #ffceb6;--site-200: #f79d71;--site-300: #f5844e;--site-500: #f26522;--site-600: #da5b1f;--site-700: #c2511b;--premium-50: #dfefef;--premium-100: #cfe7e6;--premium-200: #bfdfde;--premium-300: #9ed0ce;--premium-400: #7ec0bd;--premium-500: #5eb0ad;--premium-600: #4b8d8a;--premium-700: #386a68;--pulse-10: #e0d8f1;--pulse-100: #a18ad5;--pulse-400: #7250c0;--pulse-500: #623cb9;--ac-color-primary: #146eb4;--ac-color-primary-rgb: 20, 110, 180;--ac-color-error: #d92d20;--ac-color-warning: #dc6803;--ac-color-success: #067647;--ac-color-success-rgb: 6, 118, 71;--ac-color-info: #1570ef;--ac-color-info-rgb: 21, 112, 239;--ac-color-text: var(--neutral-800);--ac-color-darker-blue: #1246d4;--ac-color-lighter-blue: rgb(45 126 241);--ac-input-padding: 0.5rem;--ac-input-padding-sm: 0.3125rem;--ac-input-padding-lg: 0.75rem;--ac-field-padding: 0.5rem 0.75rem;--ac-field-padding-sm: 0.3125rem 0.625rem;--ac-field-padding-lg: 0.6875rem 1rem;--ac-field-font-size: 0.825rem;--ac-field-font-size-sm: 0.75rem;--ac-field-font-size-lg: 0.9375rem;--ac-field-border-radius: 0.5rem;--ac-field-border-radius-sm: 0.375rem;--ac-field-border-radius-lg: 0.625rem;--ac-dropdown-max-height: 17.5rem;--ac-section-bottom-margin: 1rem;--ac-placeholder-color: var(--neutral-600)}@media(prefers-reduced-motion: no-preference){html{interpolate-size:allow-keywords}}.ac-component{font-family:var(--ac-font-family);letter-spacing:-0.18px;color:var(--neutral-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}.ac-component.v-tooltip{background:var(--neutral-800);font-family:var(--ac-font-family);color:var(--neutral-0);font-size:.8125rem;font-weight:400;line-height:1.4;padding:var(--ac-field-padding);border-radius:.5rem;white-space:normal;width:max-content;box-shadow:0 2px 6px rgba(0,0,0,.12)}.ac-component{--vf-ring-color: var(--ac-color-primary);--vf-primary: var(--ac-color-primary);--vf-border-color-checked: var(--ac-color-primary)}.ac-component img,.ac-component picture,.ac-component video,.ac-component canvas,.ac-component svg{display:block;max-width:100%}.ac-component input,.ac-component button,.ac-component textarea,.ac-component select{font-family:inherit;letter-spacing:inherit}.ac-component p,.ac-component h1,.ac-component h2,.ac-component h3,.ac-component h4,.ac-component h5,.ac-component h6{overflow-wrap:break-word}.ac-component *{margin:0}.ac-component .fa-tag,.ac-component .fa-arrow-rotate-right{transform:translateY(0.5px)}.ac-component .align-center-fix{transform:translateY(0.5px)}.ac-component hr.separator{border:none;border-top:1px solid var(--neutral-200);margin:.5rem 0}.ac-component .lh-1{line-height:1}.ac-component .flex-center{display:flex;align-items:center}.ac-component .click-expand{--expand-size: 0.5rem}.ac-component .click-expand::after{content:"";position:absolute;inset:calc(-1*var(--expand-size))}.ac-component .m-0{margin:0 !important}.ac-component .mx-0{margin-left:0 !important;margin-right:0 !important}.ac-component .my-0{margin-top:0 !important;margin-bottom:0 !important}.ac-component .mt-0{margin-top:0 !important}.ac-component .mb-0{margin-bottom:0 !important}.ac-component .ml-0{margin-left:0 !important}.ac-component .mr-0{margin-right:0 !important}.ac-component .m-1{margin:.25rem !important}.ac-component .mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.ac-component .my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.ac-component .mt-1{margin-top:.25rem !important}.ac-component .mb-1{margin-bottom:.25rem !important}.ac-component .ml-1{margin-left:.25rem !important}.ac-component .mr-1{margin-right:.25rem !important}.ac-component .m-2{margin:.5rem !important}.ac-component .mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.ac-component .my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.ac-component .mt-2{margin-top:.5rem !important}.ac-component .mb-2{margin-bottom:.5rem !important}.ac-component .ml-2{margin-left:.5rem !important}.ac-component .mr-2{margin-right:.5rem !important}.ac-component .m-3{margin:1rem !important}.ac-component .mx-3{margin-left:1rem !important;margin-right:1rem !important}.ac-component .my-3{margin-top:1rem !important;margin-bottom:1rem !important}.ac-component .mt-3{margin-top:1rem !important}.ac-component .mb-3{margin-bottom:1rem !important}.ac-component .ml-3{margin-left:1rem !important}.ac-component .mr-3{margin-right:1rem !important}.ac-component .m-4{margin:1.5rem !important}.ac-component .mx-4{margin-left:1.5rem !important;margin-right:1.5rem !important}.ac-component .my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.ac-component .mt-4{margin-top:1.5rem !important}.ac-component .mb-4{margin-bottom:1.5rem !important}.ac-component .ml-4{margin-left:1.5rem !important}.ac-component .mr-4{margin-right:1.5rem !important}.ac-component .m-5{margin:3rem !important}.ac-component .mx-5{margin-left:3rem !important;margin-right:3rem !important}.ac-component .my-5{margin-top:3rem !important;margin-bottom:3rem !important}.ac-component .mt-5{margin-top:3rem !important}.ac-component .mb-5{margin-bottom:3rem !important}.ac-component .ml-5{margin-left:3rem !important}.ac-component .mr-5{margin-right:3rem !important}.ac-component .m-auto{margin:auto !important}.ac-component .mx-auto{margin-left:auto !important;margin-right:auto !important}.ac-component .my-auto{margin-top:auto !important;margin-bottom:auto !important}.ac-component .mt-auto{margin-top:auto !important}.ac-component .mb-auto{margin-bottom:auto !important}.ac-component .ml-auto{margin-left:auto !important}.ac-component .mr-auto{margin-right:auto !important}.ac-component .p-0{padding:0 !important}.ac-component .px-0{padding-left:0 !important;padding-right:0 !important}.ac-component .py-0{padding-top:0 !important;padding-bottom:0 !important}.ac-component .pt-0{padding-top:0 !important}.ac-component .pb-0{padding-bottom:0 !important}.ac-component .pl-0{padding-left:0 !important}.ac-component .pr-0{padding-right:0 !important}.ac-component .p-1{padding:.25rem !important}.ac-component .px-1{padding-left:.25rem !important;padding-right:.25rem !important}.ac-component .py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.ac-component .pt-1{padding-top:.25rem !important}.ac-component .pb-1{padding-bottom:.25rem !important}.ac-component .pl-1{padding-left:.25rem !important}.ac-component .pr-1{padding-right:.25rem !important}.ac-component .p-2{padding:.5rem !important}.ac-component .px-2{padding-left:.5rem !important;padding-right:.5rem !important}.ac-component .py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.ac-component .pt-2{padding-top:.5rem !important}.ac-component .pb-2{padding-bottom:.5rem !important}.ac-component .pl-2{padding-left:.5rem !important}.ac-component .pr-2{padding-right:.5rem !important}.ac-component .p-3{padding:1rem !important}.ac-component .px-3{padding-left:1rem !important;padding-right:1rem !important}.ac-component .py-3{padding-top:1rem !important;padding-bottom:1rem !important}.ac-component .pt-3{padding-top:1rem !important}.ac-component .pb-3{padding-bottom:1rem !important}.ac-component .pl-3{padding-left:1rem !important}.ac-component .pr-3{padding-right:1rem !important}.ac-component .p-4{padding:1.5rem !important}.ac-component .px-4{padding-left:1.5rem !important;padding-right:1.5rem !important}.ac-component .py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.ac-component .pt-4{padding-top:1.5rem !important}.ac-component .pb-4{padding-bottom:1.5rem !important}.ac-component .pl-4{padding-left:1.5rem !important}.ac-component .pr-4{padding-right:1.5rem !important}.ac-component .p-5{padding:3rem !important}.ac-component .px-5{padding-left:3rem !important;padding-right:3rem !important}.ac-component .py-5{padding-top:3rem !important;padding-bottom:3rem !important}.ac-component .pt-5{padding-top:3rem !important}.ac-component .pb-5{padding-bottom:3rem !important}.ac-component .pl-5{padding-left:3rem !important}.ac-component .pr-5{padding-right:3rem !important}.ac-component .gap-0{gap:0 !important}.ac-component .gap-1{gap:.25rem !important}.ac-component .gap-2{gap:.5rem !important}.ac-component .gap-3{gap:1rem !important}.ac-component .gap-4{gap:1.5rem !important}.ac-component .gap-5{gap:3rem !important}.ac-component .d-flex{display:flex !important}.ac-component .d-inline-flex{display:inline-flex !important}.ac-component .d-block{display:block !important}.ac-component .d-inline-block{display:inline-block !important}.ac-component .flex-wrap{flex-wrap:wrap}.ac-component .flex-column{flex-direction:column}.ac-component .text-center{text-align:center}.ac-component .w-100{width:100% !important}.ac-component .mw-100{max-width:100% !important}.ac-component .h-100{height:100% !important}.ac-component .mh-100{max-height:100% !important}.ac-component .pointer{cursor:pointer}.ac-component .nowrap{white-space:nowrap}.ac-component .align-items-center{align-items:center}.ac-component .text-primary,.ac-component .text-normal{color:var(--neutral-800) !important}.ac-component .text-info{color:var(--ac-color-info) !important}.ac-component .text-success{color:var(--ac-color-success) !important}.ac-component .text-warning{color:var(--ac-color-warning) !important}.ac-component .text-error,.ac-component .text-danger{color:var(--ac-color-error) !important}.ac-component .lh-normal{line-height:normal !important}.ac-component .lh-1{line-height:1 !important}.ac-component .lh-inherit{line-height:inherit !important}.ac-component .hide,.ac-component .hidden{display:none !important}.ac-component .c-wrapper{position:relative}.ac-component .c-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-field-size{font-size:var(--ac-field-font-size);padding:var(--ac-field-padding)}.ac-component .c-field-size--sm,.ac-component .c-field-size--small{font-size:var(--ac-field-font-size-sm);padding:var(--ac-field-padding-sm)}.ac-component .c-field-size--lg,.ac-component .c-field-size--large{font-size:var(--ac-field-font-size-lg);padding:var(--ac-field-padding-lg)}.ac-component .c-type-color{--text-color: var(--neutral-800);--hover-bg-color: var(--neutral-100);--hover-text-color: var(--neutral-800);color:var(--text-color)}.ac-component .c-type-color:hover{background-color:var(--hover-bg-color);color:var(--hover-text-color)}.ac-component .c-type-color--error{--text-color: var(--ac-color-error);--hover-bg-color: var(--ac-color-error);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--success{--text-color: var(--ac-color-success);--hover-bg-color: var(--ac-color-success);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--warning{--text-color: var(--ac-color-warning);--hover-bg-color: var(--ac-color-warning);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--info{--text-color: var(--ac-color-info);--hover-bg-color: var(--ac-color-info);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--dark{--text-color: var(--neutral-0);--hover-bg-color: var(--neutral-800);--hover-text-color: var(--neutral-0)}.ac-component .c-chip{display:inline-flex;padding:0;border-radius:.25rem;background:var(--neutral-100);color:var(--neutral-700);font-size:.75rem;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--neutral-200);color:var(--neutral-700);font-family:var(--ac-font-family);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums}.ac-component .c-scroll{scrollbar-width:thin;scrollbar-color:var(--neutral-300) rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar{width:.5rem;height:.5rem}.ac-component .c-scroll::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:999px;border:2px solid rgba(0,0,0,0);background-clip:content-box;transition:background-color .15s}.ac-component .c-scroll::-webkit-scrollbar-thumb:hover{background:var(--neutral-500);background-clip:content-box}.ac-component .c-scroll::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.ac-component .c-placeholder{flex:1;font-style:italic;min-width:0;padding:var(--ac-input-padding);color:var(--ac-placeholder-color);user-select:none}.ac-component .c-input{width:100%;font-family:inherit;letter-spacing:-0.36px;border:none;background:rgba(0,0,0,0);padding:var(--ac-input-padding);font-size:var(--ac-field-font-size);color:var(--neutral-900)}.ac-component .c-input::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input:-webkit-autofill,.ac-component .c-input:-webkit-autofill:hover,.ac-component .c-input:-webkit-autofill:focus,.ac-component .c-input:-webkit-autofill:active{border-radius:inherit}.ac-component .c-input:focus,.ac-component .c-input:focus-within,.ac-component .c-input:focus-visible,.ac-component .c-focus:focus,.ac-component .c-focus:focus-within,.ac-component .c-focus:focus-visible{border-color:var(--ac-color-lighter-blue);outline:0}.ac-component .c-input-wrapper{position:relative;display:flex;flex-direction:column;gap:.25rem}.ac-component .c-textarea{resize:none}.ac-component .c-input-row{display:flex;align-items:center;font-family:inherit;border:1px solid var(--neutral-200);border-radius:var(--ac-field-border-radius);background:var(--neutral-0);font-size:var(--ac-field-font-size);color:var(--neutral-900);transition:border-color .15s}.ac-component .c-input-row::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input-row--disabled{background:var(--neutral-50);cursor:not-allowed}.ac-component .c-input-row:is(input,textarea){padding:var(--ac-input-padding)}.ac-component .c-input-row:hover{border-color:var(--neutral-300)}.ac-component .c-input-row:focus-within,.ac-component .c-input-row:focus,.ac-component .c-input-row:focus-visible,.ac-component .c-input-row--focus{border-color:var(--ac-color-lighter-blue);box-shadow:0 0 0 2px rgba(21,112,239,.1)}.ac-component .c-input-row:focus-within:hover,.ac-component .c-input-row:focus:hover,.ac-component .c-input-row:focus-visible:hover,.ac-component .c-input-row--focus:hover{border-color:var(--ac-color-darker-blue)}.ac-component .c-input-row--sm{border-radius:var(--ac-field-border-radius-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm:is(input,textarea){padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-icon-btn{font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm .c-placeholder{font-size:var(--ac-field-font-size-sm);padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-input{padding:var(--ac-input-padding-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--lg{border-radius:var(--ac-field-border-radius-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg:is(input,textarea){padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-icon-btn{font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg .c-placeholder{font-size:var(--ac-field-font-size-lg);padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-input{padding:var(--ac-input-padding-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-icon-btn{display:flex;align-items:center;justify-content:center;border:none;background:rgba(0,0,0,0);cursor:pointer;transition:color .15s}.ac-component .c-icon-btn--clear{color:var(--neutral-400);padding-left:0;padding-right:.25rem}.ac-component .c-icon-btn--clear:hover{color:var(--ac-color-error)}.ac-component .c-icon-btn--chevron{color:var(--neutral-500);transition:transform .2s}.ac-component .c-icon-btn--chevron-open{transform:rotate(180deg)}.ac-component .c-icon-btn--calendar{font-size:.925rem;color:var(--neutral-500);padding-inline:.375rem}.ac-component .c-icon-btn--calendar:hover{color:var(--site-500)}.ac-component .c-icon-btn--hidden{visibility:hidden;pointer-events:none}.ac-component .c-dropdown{background:var(--neutral-0);border:1px solid var(--neutral-200);border-radius:var(--ac-field-border-radius);box-shadow:0 2px 12px rgba(0,0,0,.5);overflow:hidden}.ac-component .c-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.25rem;padding:.5rem;border-top:1px solid var(--neutral-100)}.ac-component .c-checkbox{display:inline-block;width:1rem;height:1rem;vertical-align:middle;position:relative;cursor:pointer;border:1.5px solid var(--neutral-300);border-radius:.25rem;background:var(--neutral-0);transition:border-color .15s,background-color .15s}.ac-component .c-checkbox:hover{border-color:var(--ac-color-info);background:var(--premium-300)}.ac-component .c-checkbox::after{content:"";position:absolute;top:50%;left:50%;width:.3rem;height:.55rem;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%, -60%) rotate(45deg);opacity:0}.ac-component .c-checkbox--checked,.ac-component .c-checkbox:checked{border-color:var(--ac-color-info);background:var(--ac-color-info)}.ac-component .c-checkbox--checked::after,.ac-component .c-checkbox:checked::after{opacity:1}.ac-component .c-checkbox--checked:hover,.ac-component .c-checkbox:checked:hover{background:var(--premium-300)}.ac-component .c-checkbox--disabled,.ac-component .c-checkbox:disabled{opacity:.5;cursor:not-allowed}.ac-component input.c-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0}.ac-component .c-checkbox-wrapper{display:inline-flex;align-items:center;line-height:1}.ac-component .c-checkbox-wrapper .c-checkbox-inner{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox{border-color:var(--ac-color-primary);background:rgba(var(--ac-color-primary-rgb), 0.2)}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox:checked,.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox--checked{background:var(--ac-color-darker-blue)}.ac-component .c-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-600)}.ac-component .c-label--on-border{position:absolute;top:-0.5lh;left:.5rem;padding:0 .125rem;font-size:.7rem;background:var(--neutral-0);text-transform:none}.ac-component .c-btn-group{display:inline-flex;border-radius:var(--ac-field-border-radius);gap:0 !important;flex-wrap:nowrap !important}.ac-component .c-btn-group>.c-btn{border-radius:0}.ac-component .c-btn-group>*>.c-btn{border-radius:0}.ac-component .c-btn-group>.c-btn:not(:last-child),.ac-component .c-btn-group>*:not(:last-child)>.c-btn{border-right-width:0}.ac-component .c-btn-group>.c-btn:first-child,.ac-component .c-btn-group>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-bottom-left-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group>.c-btn:last-child,.ac-component .c-btn-group>*:last-child>.c-btn{border-top-right-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical{display:inline-flex;flex-direction:column;border-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>*>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>.c-btn:not(:last-child),.ac-component .c-btn-group-vertical>*:not(:last-child)>.c-btn{border-bottom-width:0}.ac-component .c-btn-group-vertical>.c-btn:first-child,.ac-component .c-btn-group-vertical>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-top-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn:last-child,.ac-component .c-btn-group-vertical>*:last-child>.c-btn{border-bottom-left-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn{--btn-color: var(--neutral-200);--btn-bg: var(--background-50);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-100);--btn-hover-border: var(--neutral-300);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700);font-family:var(--ac-font-family);letter-spacing:-0.18px;display:inline-flex;align-items:center;gap:.375em;padding:var(--ac-field-padding);border:1px solid var(--btn-color);border-radius:var(--ac-field-border-radius);background:var(--btn-bg);color:var(--btn-text);font-size:var(--ac-field-font-size);font-weight:500;cursor:pointer;text-transform:capitalize;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.ac-component .c-btn i{line-height:inherit}.ac-component .c-btn span.btn-label{line-height:1}.ac-component .c-btn:hover,.ac-component .c-btn:active{background:var(--btn-hover-bg);border-color:var(--btn-hover-border)}.ac-component .c-btn:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(242,101,34,.12)}.ac-component .c-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ac-component .c-btn .c-btn-indicator{--padding-inline: 0.3125rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.325rem;padding:.0625rem var(--padding-inline);padding-right:calc(var(--padding-inline) + 1px);border-radius:999px;color:var(--btn-indicator-text);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600;background:var(--btn-indicator-bg)}.ac-component .c-btn-sm{padding:var(--ac-field-padding-sm);font-size:var(--ac-field-font-size-sm);border-radius:var(--ac-field-border-radius-sm)}.ac-component .c-btn-lg{padding:var(--ac-field-padding-lg);font-size:var(--ac-field-font-size-lg);border-radius:var(--ac-field-border-radius-lg)}.ac-component .c-btn-dark{--btn-color: var(--neutral-800);--btn-bg: var(--neutral-800);--btn-text: var(--neutral-0);--btn-hover-bg: var(--neutral-900);--btn-hover-border: var(--neutral-900);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-800)}.ac-component .c-btn-outline{--btn-bg: transparent;--btn-color: var(--neutral-300);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-800);--btn-hover-border: var(--neutral-500);--btn-indicator-bg: var(--neutral-100);--btn-indicator-text: var(--neutral-800)}.ac-component .c-btn-outline:hover,.ac-component .c-btn-outline:active{color:var(--neutral-0)}.ac-component .c-btn-primary{--btn-bg: var(--ac-color-primary);--btn-color: var(--ac-color-primary);--btn-hover-bg: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-text: var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-primary)}.ac-component .c-btn-success{--btn-color: var(--ac-color-success);--btn-bg: var(--ac-color-success);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-success)}.ac-component .c-btn-error{--btn-color: var(--ac-color-error);--btn-bg: var(--ac-color-error);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-error)}.ac-component .c-btn-warning{--btn-color: var(--ac-color-warning);--btn-bg: var(--ac-color-warning);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-warning)}.ac-component .c-btn-info{--btn-color: var(--ac-color-info);--btn-bg: var(--ac-color-info);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-info)}.ac-component .c-btn-outline.c-btn-success{--btn-bg: transparent;--btn-text: var(--ac-color-success);--btn-hover-bg: var(--ac-color-success);--btn-hover-border: var(--ac-color-success);--btn-indicator-bg: var(--ac-color-success);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-success:hover,.ac-component .c-btn-outline.c-btn-success:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-error{--btn-bg: transparent;--btn-text: var(--ac-color-error);--btn-hover-bg: var(--ac-color-error);--btn-hover-border: var(--ac-color-error);--btn-indicator-bg: var(--ac-color-error);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-error:hover,.ac-component .c-btn-outline.c-btn-error:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-warning{--btn-bg: transparent;--btn-text: var(--ac-color-warning);--btn-hover-bg: var(--ac-color-warning);--btn-hover-border: var(--ac-color-warning);--btn-indicator-bg: var(--ac-color-warning);--btn-indicator-text: var(--neutral-900)}.ac-component .c-btn-outline.c-btn-warning:hover,.ac-component .c-btn-outline.c-btn-warning:active{color:var(--neutral-900);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-info{--btn-bg: transparent;--btn-text: var(--ac-color-info);--btn-hover-bg: var(--ac-color-info);--btn-hover-border: var(--ac-color-info);--btn-indicator-bg: var(--ac-color-info);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-info:hover,.ac-component .c-btn-outline.c-btn-info:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-dark{--btn-bg: transparent;--btn-color: var(--neutral-800);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-800);--btn-hover-border: var(--neutral-800);--btn-indicator-bg: var(--neutral-800);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-dark:hover,.ac-component .c-btn-outline.c-btn-dark:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .vf-checkbox-wrapper{display:flex;align-items:center;gap:.25rem}.ac-component .vf-input-field::placeholder{color:var(--ac-placeholder-color)}*,*::before,*::after{box-sizing:border-box}body{margin:0;padding:0}.ac-container{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden}.ac-container .data-list-section{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/regular.min.css";:root{--ac-font-family: 'Geist', 'Segoe UI', system-ui, -apple-system, sans-serif;--background-50: #f7f9f9;--background-100: #eff3f3;--neutral-0: #fff;--neutral-50: #f2f4f4;--neutral-100: #e5e9ea;--neutral-150: #dae0e1;--neutral-200: #cbd3d4;--neutral-250: #bec8ca;--neutral-300: #b0bdbf;--neutral-400: #96a7a9;--neutral-500: #7c9194;--neutral-600: #637476;--neutral-700: #4a5759;--neutral-800: #323a3b;--neutral-900: #1f2d2d;--site-50: #ffebe1;--site-100: #ffceb6;--site-200: #f79d71;--site-300: #f5844e;--site-500: #f26522;--site-600: #da5b1f;--site-700: #c2511b;--premium-50: #dfefef;--premium-100: #cfe7e6;--premium-200: #bfdfde;--premium-300: #9ed0ce;--premium-400: #7ec0bd;--premium-500: #5eb0ad;--premium-600: #4b8d8a;--premium-700: #386a68;--pulse-10: #e0d8f1;--pulse-100: #a18ad5;--pulse-400: #7250c0;--pulse-500: #623cb9;--ac-color-primary: #146eb4;--ac-color-primary-rgb: 20, 110, 180;--ac-color-error: #d92d20;--ac-color-warning: #dc6803;--ac-color-success: #067647;--ac-color-success-rgb: 6, 118, 71;--ac-color-info: #1570ef;--ac-color-info-rgb: 21, 112, 239;--ac-color-text: var(--neutral-800);--ac-color-darker-blue: #1246d4;--ac-color-lighter-blue: rgb(45 126 241);--ac-input-padding: 0.5rem;--ac-input-padding-sm: 0.3125rem;--ac-input-padding-lg: 0.75rem;--ac-field-padding: 0.5rem 0.75rem;--ac-field-padding-sm: 0.3125rem 0.625rem;--ac-field-padding-lg: 0.6875rem 1rem;--ac-field-font-size: 0.825rem;--ac-field-font-size-sm: 0.75rem;--ac-field-font-size-lg: 0.9375rem;--ac-field-border-radius: 0.5rem;--ac-field-border-radius-sm: 0.375rem;--ac-field-border-radius-lg: 0.625rem;--ac-dropdown-max-height: 17.5rem;--ac-section-bottom-margin: 1rem;--ac-placeholder-color: var(--neutral-600)}@media(prefers-reduced-motion: no-preference){html{interpolate-size:allow-keywords}}.ac-component{font-family:var(--ac-font-family);letter-spacing:-0.18px;color:var(--neutral-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}.ac-component.v-tooltip{background:var(--neutral-800);font-family:var(--ac-font-family);color:var(--neutral-0);font-size:.8125rem;font-weight:400;line-height:1.4;padding:var(--ac-field-padding);border-radius:.5rem;white-space:normal;width:max-content;box-shadow:0 2px 6px rgba(0,0,0,.12)}.ac-component{--vf-ring-color: var(--ac-color-primary);--vf-primary: var(--ac-color-primary);--vf-border-color-checked: var(--ac-color-primary)}.ac-component.is-font-small,.ac-component .is-font-small{font-size:.875rem}.ac-component.is-font-normal,.ac-component .is-font-normal{font-size:1rem}.ac-component.is-font-large,.ac-component .is-font-large{font-size:1.125rem}.ac-component img,.ac-component picture,.ac-component video,.ac-component canvas,.ac-component svg{display:block;max-width:100%}.ac-component input,.ac-component button,.ac-component textarea,.ac-component select{font-family:inherit;letter-spacing:inherit}.ac-component p,.ac-component h1,.ac-component h2,.ac-component h3,.ac-component h4,.ac-component h5,.ac-component h6{overflow-wrap:break-word}.ac-component *{margin:0}.ac-component .fa-tag,.ac-component .fa-arrow-rotate-right{transform:translateY(0.5px)}.ac-component .align-center-fix{transform:translateY(0.5px)}.ac-component hr.separator{border:none;border-top:1px solid var(--neutral-200);margin:.5rem 0}.ac-component .lh-1{line-height:1}.ac-component .flex-center{display:flex;align-items:center}.ac-component .click-expand{--expand-size: 0.5rem}.ac-component .click-expand::after{content:"";position:absolute;inset:calc(-1*var(--expand-size))}.ac-component .m-0{margin:0 !important}.ac-component .mx-0{margin-left:0 !important;margin-right:0 !important}.ac-component .my-0{margin-top:0 !important;margin-bottom:0 !important}.ac-component .mt-0{margin-top:0 !important}.ac-component .mb-0{margin-bottom:0 !important}.ac-component .ml-0{margin-left:0 !important}.ac-component .mr-0{margin-right:0 !important}.ac-component .m-1{margin:.25rem !important}.ac-component .mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.ac-component .my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.ac-component .mt-1{margin-top:.25rem !important}.ac-component .mb-1{margin-bottom:.25rem !important}.ac-component .ml-1{margin-left:.25rem !important}.ac-component .mr-1{margin-right:.25rem !important}.ac-component .m-2{margin:.5rem !important}.ac-component .mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.ac-component .my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.ac-component .mt-2{margin-top:.5rem !important}.ac-component .mb-2{margin-bottom:.5rem !important}.ac-component .ml-2{margin-left:.5rem !important}.ac-component .mr-2{margin-right:.5rem !important}.ac-component .m-3{margin:1rem !important}.ac-component .mx-3{margin-left:1rem !important;margin-right:1rem !important}.ac-component .my-3{margin-top:1rem !important;margin-bottom:1rem !important}.ac-component .mt-3{margin-top:1rem !important}.ac-component .mb-3{margin-bottom:1rem !important}.ac-component .ml-3{margin-left:1rem !important}.ac-component .mr-3{margin-right:1rem !important}.ac-component .m-4{margin:1.5rem !important}.ac-component .mx-4{margin-left:1.5rem !important;margin-right:1.5rem !important}.ac-component .my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.ac-component .mt-4{margin-top:1.5rem !important}.ac-component .mb-4{margin-bottom:1.5rem !important}.ac-component .ml-4{margin-left:1.5rem !important}.ac-component .mr-4{margin-right:1.5rem !important}.ac-component .m-5{margin:3rem !important}.ac-component .mx-5{margin-left:3rem !important;margin-right:3rem !important}.ac-component .my-5{margin-top:3rem !important;margin-bottom:3rem !important}.ac-component .mt-5{margin-top:3rem !important}.ac-component .mb-5{margin-bottom:3rem !important}.ac-component .ml-5{margin-left:3rem !important}.ac-component .mr-5{margin-right:3rem !important}.ac-component .m-auto{margin:auto !important}.ac-component .mx-auto{margin-left:auto !important;margin-right:auto !important}.ac-component .my-auto{margin-top:auto !important;margin-bottom:auto !important}.ac-component .mt-auto{margin-top:auto !important}.ac-component .mb-auto{margin-bottom:auto !important}.ac-component .ml-auto{margin-left:auto !important}.ac-component .mr-auto{margin-right:auto !important}.ac-component .p-0{padding:0 !important}.ac-component .px-0{padding-left:0 !important;padding-right:0 !important}.ac-component .py-0{padding-top:0 !important;padding-bottom:0 !important}.ac-component .pt-0{padding-top:0 !important}.ac-component .pb-0{padding-bottom:0 !important}.ac-component .pl-0{padding-left:0 !important}.ac-component .pr-0{padding-right:0 !important}.ac-component .p-1{padding:.25rem !important}.ac-component .px-1{padding-left:.25rem !important;padding-right:.25rem !important}.ac-component .py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.ac-component .pt-1{padding-top:.25rem !important}.ac-component .pb-1{padding-bottom:.25rem !important}.ac-component .pl-1{padding-left:.25rem !important}.ac-component .pr-1{padding-right:.25rem !important}.ac-component .p-2{padding:.5rem !important}.ac-component .px-2{padding-left:.5rem !important;padding-right:.5rem !important}.ac-component .py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.ac-component .pt-2{padding-top:.5rem !important}.ac-component .pb-2{padding-bottom:.5rem !important}.ac-component .pl-2{padding-left:.5rem !important}.ac-component .pr-2{padding-right:.5rem !important}.ac-component .p-3{padding:1rem !important}.ac-component .px-3{padding-left:1rem !important;padding-right:1rem !important}.ac-component .py-3{padding-top:1rem !important;padding-bottom:1rem !important}.ac-component .pt-3{padding-top:1rem !important}.ac-component .pb-3{padding-bottom:1rem !important}.ac-component .pl-3{padding-left:1rem !important}.ac-component .pr-3{padding-right:1rem !important}.ac-component .p-4{padding:1.5rem !important}.ac-component .px-4{padding-left:1.5rem !important;padding-right:1.5rem !important}.ac-component .py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.ac-component .pt-4{padding-top:1.5rem !important}.ac-component .pb-4{padding-bottom:1.5rem !important}.ac-component .pl-4{padding-left:1.5rem !important}.ac-component .pr-4{padding-right:1.5rem !important}.ac-component .p-5{padding:3rem !important}.ac-component .px-5{padding-left:3rem !important;padding-right:3rem !important}.ac-component .py-5{padding-top:3rem !important;padding-bottom:3rem !important}.ac-component .pt-5{padding-top:3rem !important}.ac-component .pb-5{padding-bottom:3rem !important}.ac-component .pl-5{padding-left:3rem !important}.ac-component .pr-5{padding-right:3rem !important}.ac-component .gap-0{gap:0 !important}.ac-component .gap-1{gap:.25rem !important}.ac-component .gap-2{gap:.5rem !important}.ac-component .gap-3{gap:1rem !important}.ac-component .gap-4{gap:1.5rem !important}.ac-component .gap-5{gap:3rem !important}.ac-component .d-flex{display:flex !important}.ac-component .d-inline-flex{display:inline-flex !important}.ac-component .d-block{display:block !important}.ac-component .d-inline-block{display:inline-block !important}.ac-component .flex-wrap{flex-wrap:wrap}.ac-component .flex-column{flex-direction:column}.ac-component .text-center{text-align:center}.ac-component .w-100{width:100% !important}.ac-component .mw-100{max-width:100% !important}.ac-component .h-100{height:100% !important}.ac-component .mh-100{max-height:100% !important}.ac-component .pointer{cursor:pointer}.ac-component .nowrap{white-space:nowrap}.ac-component .align-items-center{align-items:center}.ac-component .text-primary,.ac-component .text-normal{color:var(--neutral-800) !important}.ac-component .text-info{color:var(--ac-color-info) !important}.ac-component .text-success{color:var(--ac-color-success) !important}.ac-component .text-warning{color:var(--ac-color-warning) !important}.ac-component .text-error,.ac-component .text-danger{color:var(--ac-color-error) !important}.ac-component .lh-normal{line-height:normal !important}.ac-component .lh-1{line-height:1 !important}.ac-component .lh-inherit{line-height:inherit !important}.ac-component .hide,.ac-component .hidden{display:none !important}.ac-component .c-wrapper{position:relative}.ac-component .c-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-field-size{font-size:var(--ac-field-font-size);padding:var(--ac-field-padding)}.ac-component .c-field-size--sm,.ac-component .c-field-size--small{font-size:var(--ac-field-font-size-sm);padding:var(--ac-field-padding-sm)}.ac-component .c-field-size--lg,.ac-component .c-field-size--large{font-size:var(--ac-field-font-size-lg);padding:var(--ac-field-padding-lg)}.ac-component .c-type-color{--text-color: var(--neutral-800);--hover-bg-color: var(--neutral-100);--hover-text-color: var(--neutral-800);color:var(--text-color)}.ac-component .c-type-color:hover{background-color:var(--hover-bg-color);color:var(--hover-text-color)}.ac-component .c-type-color--error{--text-color: var(--ac-color-error);--hover-bg-color: var(--ac-color-error);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--success{--text-color: var(--ac-color-success);--hover-bg-color: var(--ac-color-success);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--warning{--text-color: var(--ac-color-warning);--hover-bg-color: var(--ac-color-warning);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--info{--text-color: var(--ac-color-info);--hover-bg-color: var(--ac-color-info);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--dark{--text-color: var(--neutral-0);--hover-bg-color: var(--neutral-800);--hover-text-color: var(--neutral-0)}.ac-component .c-chip{display:inline-flex;padding:0;border-radius:.5rem;background:var(--neutral-100);color:var(--neutral-700);font-size:.75rem;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--neutral-200);color:var(--neutral-700);font-family:var(--ac-font-family);font-size:.875em;font-weight:700;font-variant-numeric:tabular-nums}.ac-component .c-scroll{scrollbar-width:thin;scrollbar-color:var(--neutral-300) rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar{width:.5rem;height:.5rem}.ac-component .c-scroll::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:999px;border:2px solid rgba(0,0,0,0);background-clip:content-box;transition:background-color .15s}.ac-component .c-scroll::-webkit-scrollbar-thumb:hover{background:var(--neutral-500);background-clip:content-box}.ac-component .c-scroll::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.ac-component .c-placeholder{flex:1;font-style:italic;min-width:0;padding:var(--ac-input-padding);color:var(--ac-placeholder-color);user-select:none}.ac-component .c-input{width:100%;font-family:inherit;letter-spacing:-0.36px;border:none;background:rgba(0,0,0,0);padding:var(--ac-input-padding);font-size:var(--ac-field-font-size);color:var(--neutral-900)}.ac-component .c-input::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input:-webkit-autofill,.ac-component .c-input:-webkit-autofill:hover,.ac-component .c-input:-webkit-autofill:focus,.ac-component .c-input:-webkit-autofill:active{border-radius:inherit}.ac-component .c-input:focus,.ac-component .c-input:focus-within,.ac-component .c-input:focus-visible,.ac-component .c-focus:focus,.ac-component .c-focus:focus-within,.ac-component .c-focus:focus-visible{border-color:var(--ac-color-lighter-blue);outline:0}.ac-component .c-input-wrapper{position:relative;display:flex;flex-direction:column;gap:.25rem}.ac-component .c-textarea{resize:none}.ac-component .c-input-row{display:flex;align-items:center;font-family:inherit;border:1px solid var(--neutral-200);border-radius:var(--ac-field-border-radius);background:var(--neutral-0);font-size:var(--ac-field-font-size);color:var(--neutral-900);transition:border-color .15s}.ac-component .c-input-row::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input-row--disabled{background:var(--neutral-50);cursor:not-allowed}.ac-component .c-input-row:is(input,textarea){padding:var(--ac-input-padding)}.ac-component .c-input-row:hover{border-color:var(--neutral-300)}.ac-component .c-input-row:focus-within,.ac-component .c-input-row:focus,.ac-component .c-input-row:focus-visible,.ac-component .c-input-row--focus{border-color:var(--ac-color-lighter-blue);box-shadow:0 0 0 2px rgba(21,112,239,.1)}.ac-component .c-input-row:focus-within:hover,.ac-component .c-input-row:focus:hover,.ac-component .c-input-row:focus-visible:hover,.ac-component .c-input-row--focus:hover{border-color:var(--ac-color-darker-blue)}.ac-component .c-input-row--sm{border-radius:var(--ac-field-border-radius-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm:is(input,textarea){padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-icon-btn{font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm .c-placeholder{font-size:var(--ac-field-font-size-sm);padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-input{padding:var(--ac-input-padding-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--lg{border-radius:var(--ac-field-border-radius-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg:is(input,textarea){padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-icon-btn{font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg .c-placeholder{font-size:var(--ac-field-font-size-lg);padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-input{padding:var(--ac-input-padding-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-icon-btn{display:flex;align-items:center;justify-content:center;border:none;background:rgba(0,0,0,0);cursor:pointer;transition:color .15s}.ac-component .c-icon-btn--clear{color:var(--neutral-400);padding-left:0;padding-right:.25rem}.ac-component .c-icon-btn--clear:hover{color:var(--ac-color-error)}.ac-component .c-icon-btn--chevron{color:var(--neutral-500);transition:transform .2s}.ac-component .c-icon-btn--chevron-open{transform:rotate(180deg)}.ac-component .c-icon-btn--calendar{font-size:.925rem;color:var(--neutral-500);padding-inline:.375rem}.ac-component .c-icon-btn--calendar:hover{color:var(--site-500)}.ac-component .c-icon-btn--hidden{visibility:hidden;pointer-events:none}.ac-component .c-dropdown{background:var(--neutral-0);border:1px solid var(--neutral-200);border-radius:var(--ac-field-border-radius);box-shadow:0 2px 12px rgba(0,0,0,.5);overflow:hidden}.ac-component .c-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.25rem;padding:.5rem;border-top:1px solid var(--neutral-100)}.ac-component .c-checkbox{display:inline-block;width:1rem;height:1rem;vertical-align:middle;position:relative;cursor:pointer;border:1.5px solid var(--neutral-300);border-radius:.25rem;background:var(--neutral-0);transition:border-color .15s,background-color .15s}.ac-component .c-checkbox:hover{border-color:var(--ac-color-info);background:var(--premium-300)}.ac-component .c-checkbox::after{content:"";position:absolute;top:50%;left:50%;width:.3rem;height:.55rem;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%, -60%) rotate(45deg);opacity:0}.ac-component .c-checkbox--checked,.ac-component .c-checkbox:checked{border-color:var(--ac-color-info);background:var(--ac-color-info)}.ac-component .c-checkbox--checked::after,.ac-component .c-checkbox:checked::after{opacity:1}.ac-component .c-checkbox--checked:hover,.ac-component .c-checkbox:checked:hover{background:var(--premium-300)}.ac-component .c-checkbox--disabled,.ac-component .c-checkbox:disabled{opacity:.5;cursor:not-allowed}.ac-component input.c-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0}.ac-component .c-checkbox-wrapper{display:inline-flex;align-items:center;line-height:1}.ac-component .c-checkbox-wrapper .c-checkbox-inner{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox{border-color:var(--ac-color-primary);background:rgba(var(--ac-color-primary-rgb), 0.2)}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox:checked,.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox--checked{background:var(--ac-color-darker-blue)}.ac-component .c-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-600)}.ac-component .c-label--on-border{position:absolute;top:-0.5lh;left:.5rem;padding:0 .125rem;font-size:.7rem;background:var(--neutral-0);text-transform:none}.ac-component .c-btn-group{display:inline-flex;border-radius:var(--ac-field-border-radius);gap:0 !important;flex-wrap:nowrap !important}.ac-component .c-btn-group>.c-btn{border-radius:0}.ac-component .c-btn-group>*>.c-btn{border-radius:0}.ac-component .c-btn-group>.c-btn:not(:last-child),.ac-component .c-btn-group>*:not(:last-child)>.c-btn{border-right-width:0}.ac-component .c-btn-group>.c-btn:first-child,.ac-component .c-btn-group>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-bottom-left-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group>.c-btn:last-child,.ac-component .c-btn-group>*:last-child>.c-btn{border-top-right-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical{display:inline-flex;flex-direction:column;border-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>*>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>.c-btn:not(:last-child),.ac-component .c-btn-group-vertical>*:not(:last-child)>.c-btn{border-bottom-width:0}.ac-component .c-btn-group-vertical>.c-btn:first-child,.ac-component .c-btn-group-vertical>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-top-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn:last-child,.ac-component .c-btn-group-vertical>*:last-child>.c-btn{border-bottom-left-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn{--btn-color: var(--neutral-200);--btn-bg: var(--background-50);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-100);--btn-hover-border: var(--neutral-300);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700);font-family:var(--ac-font-family);letter-spacing:-0.18px;display:inline-flex;align-items:center;gap:.375em;padding:var(--ac-field-padding);border:1px solid var(--btn-color);border-radius:var(--ac-field-border-radius);background:var(--btn-bg);color:var(--btn-text);font-size:var(--ac-field-font-size);font-weight:500;cursor:pointer;text-transform:capitalize;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.ac-component .c-btn i{line-height:inherit}.ac-component .c-btn span.btn-label{line-height:1}.ac-component .c-btn:hover,.ac-component .c-btn:active{background:var(--btn-hover-bg);border-color:var(--btn-hover-border)}.ac-component .c-btn:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(242,101,34,.12)}.ac-component .c-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ac-component .c-btn .c-btn-indicator{--padding-inline: 0.3125rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.325rem;padding:.0625rem var(--padding-inline);padding-right:calc(var(--padding-inline) + 1px);border-radius:999px;color:var(--btn-indicator-text);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600;background:var(--btn-indicator-bg)}.ac-component .c-btn-sm{padding:var(--ac-field-padding-sm);font-size:var(--ac-field-font-size-sm);border-radius:var(--ac-field-border-radius-sm)}.ac-component .c-btn-lg{padding:var(--ac-field-padding-lg);font-size:var(--ac-field-font-size-lg);border-radius:var(--ac-field-border-radius-lg)}.ac-component .c-btn-dark{--btn-color: var(--neutral-800);--btn-bg: var(--neutral-800);--btn-text: var(--neutral-0);--btn-hover-bg: var(--neutral-900);--btn-hover-border: var(--neutral-900);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-800)}.ac-component .c-btn-outline{--btn-bg: transparent;--btn-color: var(--neutral-300);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-800);--btn-hover-border: var(--neutral-500);--btn-indicator-bg: var(--neutral-100);--btn-indicator-text: var(--neutral-800)}.ac-component .c-btn-outline:hover,.ac-component .c-btn-outline:active{color:var(--neutral-0)}.ac-component .c-btn-primary{--btn-bg: var(--ac-color-primary);--btn-color: var(--ac-color-primary);--btn-hover-bg: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-text: var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-primary)}.ac-component .c-btn-success{--btn-color: var(--ac-color-success);--btn-bg: var(--ac-color-success);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-success)}.ac-component .c-btn-error{--btn-color: var(--ac-color-error);--btn-bg: var(--ac-color-error);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-error)}.ac-component .c-btn-warning{--btn-color: var(--ac-color-warning);--btn-bg: var(--ac-color-warning);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-warning)}.ac-component .c-btn-info{--btn-color: var(--ac-color-info);--btn-bg: var(--ac-color-info);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-info)}.ac-component .c-btn-outline.c-btn-success{--btn-bg: transparent;--btn-text: var(--ac-color-success);--btn-hover-bg: var(--ac-color-success);--btn-hover-border: var(--ac-color-success);--btn-indicator-bg: var(--ac-color-success);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-success:hover,.ac-component .c-btn-outline.c-btn-success:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-error{--btn-bg: transparent;--btn-text: var(--ac-color-error);--btn-hover-bg: var(--ac-color-error);--btn-hover-border: var(--ac-color-error);--btn-indicator-bg: var(--ac-color-error);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-error:hover,.ac-component .c-btn-outline.c-btn-error:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-warning{--btn-bg: transparent;--btn-text: var(--ac-color-warning);--btn-hover-bg: var(--ac-color-warning);--btn-hover-border: var(--ac-color-warning);--btn-indicator-bg: var(--ac-color-warning);--btn-indicator-text: var(--neutral-900)}.ac-component .c-btn-outline.c-btn-warning:hover,.ac-component .c-btn-outline.c-btn-warning:active{color:var(--neutral-900);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-info{--btn-bg: transparent;--btn-text: var(--ac-color-info);--btn-hover-bg: var(--ac-color-info);--btn-hover-border: var(--ac-color-info);--btn-indicator-bg: var(--ac-color-info);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-info:hover,.ac-component .c-btn-outline.c-btn-info:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-dark{--btn-bg: transparent;--btn-color: var(--neutral-800);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-800);--btn-hover-border: var(--neutral-800);--btn-indicator-bg: var(--neutral-800);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-dark:hover,.ac-component .c-btn-outline.c-btn-dark:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .vf-checkbox-wrapper{display:flex;align-items:center;gap:.25rem}.ac-component .vf-input-field::placeholder{color:var(--ac-placeholder-color)}*,*::before,*::after{box-sizing:border-box}body{margin:0;padding:0}.ac-container{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden}.ac-container .data-list-section{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
|
|
@@ -27,6 +27,8 @@ export interface DataFiltersProps {
|
|
|
27
27
|
handleUrl?: boolean;
|
|
28
28
|
historyEnabled?: boolean;
|
|
29
29
|
storageKey?: string;
|
|
30
|
+
/** Skip the saved default filter set from FiltersHistory when resolving initial values. */
|
|
31
|
+
ignoreSavedDefault?: boolean;
|
|
30
32
|
}
|
|
31
33
|
declare const _default: typeof __VLS_export;
|
|
32
34
|
export default _default;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PaginatorSettings, PageSettings } from '../../types/data-list';
|
|
2
|
+
import { FontSize } from '../../types/types';
|
|
2
3
|
export declare function getPageSize(storageKey: string): number;
|
|
3
4
|
export declare function getDefaultPaginator(storageKey: string): PaginatorSettings;
|
|
4
5
|
declare const _default: typeof __VLS_export;
|
|
@@ -7,17 +8,17 @@ declare const __VLS_export: import('vue').DefineComponent<{
|
|
|
7
8
|
settings: PaginatorSettings;
|
|
8
9
|
storageKey: string;
|
|
9
10
|
handleUrl?: boolean;
|
|
10
|
-
fontSize?:
|
|
11
|
+
fontSize?: FontSize;
|
|
11
12
|
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
12
13
|
"update:pagination": (pagination: PageSettings) => any;
|
|
13
14
|
}, string, import('vue').PublicProps, Readonly<{
|
|
14
15
|
settings: PaginatorSettings;
|
|
15
16
|
storageKey: string;
|
|
16
17
|
handleUrl?: boolean;
|
|
17
|
-
fontSize?:
|
|
18
|
+
fontSize?: FontSize;
|
|
18
19
|
}> & Readonly<{
|
|
19
20
|
"onUpdate:pagination"?: ((pagination: PageSettings) => any) | undefined;
|
|
20
21
|
}>, {
|
|
21
|
-
fontSize:
|
|
22
|
+
fontSize: FontSize;
|
|
22
23
|
handleUrl: boolean;
|
|
23
24
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FontSize } from '../../types/types';
|
|
1
2
|
export interface DataSearchProps {
|
|
2
3
|
showExactMatch?: boolean;
|
|
3
4
|
showSearch?: boolean;
|
|
@@ -5,6 +6,8 @@ export interface DataSearchProps {
|
|
|
5
6
|
handleUrl?: boolean;
|
|
6
7
|
searchKey?: string;
|
|
7
8
|
exactMatchKey?: string;
|
|
9
|
+
/** Font-size modifier driven by DataListSettings.fontSize. */
|
|
10
|
+
fontSize?: FontSize;
|
|
8
11
|
}
|
|
9
12
|
export interface DefaultSearch {
|
|
10
13
|
search?: string;
|
|
@@ -23,6 +26,7 @@ declare const __VLS_export: import('vue').DefineComponent<DataSearchProps, {}, {
|
|
|
23
26
|
}) => any) | undefined;
|
|
24
27
|
}>, {
|
|
25
28
|
placeholder: string;
|
|
29
|
+
fontSize: FontSize;
|
|
26
30
|
handleUrl: boolean;
|
|
27
31
|
showExactMatch: boolean;
|
|
28
32
|
showSearch: boolean;
|
|
@@ -13,6 +13,8 @@ export interface DataSortProps {
|
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
handleUrl?: boolean;
|
|
15
15
|
disabled?: boolean;
|
|
16
|
+
/** Font-size modifier driven by DataListSettings.fontSize. */
|
|
17
|
+
fontSize?: 'small' | 'normal' | 'large';
|
|
16
18
|
}
|
|
17
19
|
export declare function getDefaultSort(): {
|
|
18
20
|
key: string;
|
|
@@ -41,5 +43,6 @@ declare const __VLS_export: import('vue').DefineComponent<DataSortProps, {}, {},
|
|
|
41
43
|
}>, {
|
|
42
44
|
disabled: boolean;
|
|
43
45
|
placeholder: string;
|
|
46
|
+
fontSize: "small" | "normal" | "large";
|
|
44
47
|
handleUrl: boolean;
|
|
45
48
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|