@xleddyl/443-components-vue 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -4
- package/dist/chart/BarChart.vue +33 -22
- package/dist/chart/BarChart.vue.d.ts +4 -0
- package/dist/chart/chart.css +2 -2
- package/dist/chart/useChartColors.mjs +8 -8
- package/dist/components/core/Button.vue.d.ts +1 -1
- package/dist/components/core/FormField.vue +5 -0
- package/dist/components/core/FormField.vue.d.ts +4 -0
- package/dist/components/core/Input.vue +59 -5
- package/dist/components/core/Input.vue.d.ts +9 -5
- package/dist/components/core/Textarea.vue +28 -3
- package/dist/components/core/Textarea.vue.d.ts +7 -5
- package/dist/components/core/types.d.ts +1 -1
- package/dist/components/data/Badge.vue.d.ts +1 -1
- package/dist/components/data/DescriptionList.vue.d.ts +1 -1
- package/dist/components/data/FilterPills.vue +43 -4
- package/dist/components/data/FilterPills.vue.d.ts +4 -1
- package/dist/components/data/Pagination.vue +63 -2
- package/dist/components/data/Pagination.vue.d.ts +12 -0
- package/dist/components/data/Tag.vue.d.ts +1 -1
- package/dist/components/data/Tree.vue.d.ts +1 -1
- package/dist/components/data/types.d.ts +1 -0
- package/dist/components/feedback/Meter.vue.d.ts +1 -1
- package/dist/components/feedback/Progress.vue.d.ts +1 -1
- package/dist/components/feedback/ProgressRing.vue.d.ts +1 -1
- package/dist/components/forms/Calendar.vue +31 -7
- package/dist/components/forms/Calendar.vue.d.ts +13 -2
- package/dist/components/forms/CheckboxGroup.vue +7 -1
- package/dist/components/forms/CheckboxGroup.vue.d.ts +1 -0
- package/dist/components/forms/ColorInput.vue.d.ts +5 -5
- package/dist/components/forms/Combobox.vue +4 -3
- package/dist/components/forms/Combobox.vue.d.ts +1 -0
- package/dist/components/forms/DateInput.vue.d.ts +10 -6
- package/dist/components/forms/DatePicker.vue.d.ts +1 -1
- package/dist/components/forms/FileInput.vue.d.ts +1 -1
- package/dist/components/forms/NumberInput.vue.d.ts +5 -5
- package/dist/components/forms/PasswordInput.vue.d.ts +9 -5
- package/dist/components/forms/PinInput.vue.d.ts +5 -5
- package/dist/components/forms/Select.vue +21 -2
- package/dist/components/forms/Select.vue.d.ts +4 -4
- package/dist/components/forms/Slider.vue.d.ts +5 -5
- package/dist/components/forms/Switch.vue.d.ts +1 -1
- package/dist/components/forms/TimeInput.vue.d.ts +9 -5
- package/dist/components/layout/AppShell.vue +4 -2
- package/dist/components/layout/AppShell.vue.d.ts +2 -0
- package/dist/components/layout/Card.vue.d.ts +1 -1
- package/dist/components/layout/CopyButton.vue.d.ts +1 -1
- package/dist/components/layout/PageHeader.vue +15 -3
- package/dist/components/layout/PageHeader.vue.d.ts +5 -0
- package/dist/components/layout/Separator.vue +17 -4
- package/dist/components/layout/Separator.vue.d.ts +7 -1
- package/dist/components/layout/Tabs.vue +10 -0
- package/dist/components/layout/types.d.ts +3 -0
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -4
- package/dist/components/overlays/ConfirmHost.vue.d.ts +8 -4
- package/dist/components/overlays/ContextMenu.vue.d.ts +4 -2
- package/dist/components/overlays/DropdownMenu.vue +5 -1
- package/dist/components/overlays/DropdownMenu.vue.d.ts +8 -2
- package/dist/components/overlays/Modal.vue +9 -2
- package/dist/components/overlays/Modal.vue.d.ts +4 -0
- package/dist/components/overlays/types.d.ts +2 -2
- package/dist/components/templates/DashboardLayout.vue +2 -0
- package/dist/components/templates/DashboardLayout.vue.d.ts +2 -0
- package/dist/components/templates/SettingsModal.vue.d.ts +8 -4
- package/dist/components/templates/types.d.ts +1 -0
- package/dist/composables/useForm.d.ts +24 -2
- package/dist/composables/useForm.mjs +51 -8
- package/dist/composables/useOverlay.d.ts +1 -1
- package/dist/editor/RichTextEditor.vue +108 -10
- package/dist/editor/RichTextEditor.vue.d.ts +5 -2
- package/dist/editor/rich-text-editor.css +31 -4
- package/dist/editor/types.d.ts +2 -1
- package/dist/grid/DataGrid.vue +106 -24
- package/dist/grid/DataGrid.vue.d.ts +14 -2
- package/dist/grid/cells/DateCell.vue +18 -3
- package/dist/grid/cells/ImageCell.vue +6 -1
- package/dist/grid/data-grid.css +17 -3
- package/dist/grid/index.d.ts +2 -1
- package/dist/grid/index.mjs +6 -1
- package/dist/grid/modules.d.ts +2 -0
- package/dist/grid/modules.mjs +32 -0
- package/dist/grid/theme.mjs +5 -5
- package/dist/grid/types.d.ts +4 -0
- package/dist/icons/builtin.d.ts +3 -0
- package/dist/icons/builtin.mjs +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -0
- package/dist/internal/core/intl.d.ts +2 -0
- package/dist/internal/core/intl.mjs +17 -0
- package/dist/internal/forms/counter.d.ts +18 -0
- package/dist/internal/forms/counter.mjs +31 -0
- package/dist/internal/keys.d.ts +2 -1
- package/dist/internal/keys.mjs +1 -0
- package/dist/internal/overlays/MenuList.vue +4 -2
- package/dist/internal/overlays/MenuList.vue.d.ts +2 -0
- package/dist/internal/overlays/OverlayView.vue.d.ts +8 -4
- package/dist/locale/de.mjs +21 -3
- package/dist/locale/en.mjs +21 -3
- package/dist/locale/it.mjs +21 -3
- package/dist/locale/types.d.ts +18 -0
- package/dist/nuxt/runtime/layouts/dashboard.vue +1 -0
- package/dist/styles/base.css +2 -1
- package/dist/styles/core/button.css +42 -16
- package/dist/styles/core/form-field.css +7 -1
- package/dist/styles/core/input.css +31 -2
- package/dist/styles/core/kbd.css +1 -1
- package/dist/styles/core/textarea.css +10 -0
- package/dist/styles/data/avatar.css +1 -1
- package/dist/styles/data/badge.css +39 -23
- package/dist/styles/data/description-list.css +2 -2
- package/dist/styles/data/filter-pills.css +24 -3
- package/dist/styles/data/pagination.css +26 -3
- package/dist/styles/data/selection-bar.css +1 -1
- package/dist/styles/data/stat.css +4 -4
- package/dist/styles/data/table.css +4 -4
- package/dist/styles/data/tag.css +1 -1
- package/dist/styles/data/timeline.css +1 -1
- package/dist/styles/data/tree.css +2 -2
- package/dist/styles/feedback/empty-state.css +1 -1
- package/dist/styles/feedback/loading-host.css +1 -1
- package/dist/styles/feedback/loading-overlay.css +1 -1
- package/dist/styles/feedback/meter.css +1 -1
- package/dist/styles/feedback/progress.css +2 -2
- package/dist/styles/forced-colors.css +6 -1
- package/dist/styles/forms/calendar.css +30 -3
- package/dist/styles/forms/checkbox.css +1 -1
- package/dist/styles/forms/choice.css +7 -1
- package/dist/styles/forms/combobox.css +2 -2
- package/dist/styles/forms/file-input.css +1 -1
- package/dist/styles/forms/password-input.css +1 -1
- package/dist/styles/forms/pin-input.css +1 -1
- package/dist/styles/forms/radio.css +1 -1
- package/dist/styles/forms/segmented.css +2 -2
- package/dist/styles/forms/select.css +2 -2
- package/dist/styles/forms/slider.css +1 -1
- package/dist/styles/forms/switch.css +4 -4
- package/dist/styles/layout/accordion.css +2 -2
- package/dist/styles/layout/app-shell.css +18 -6
- package/dist/styles/layout/breadcrumbs.css +3 -3
- package/dist/styles/layout/card.css +1 -1
- package/dist/styles/layout/nav-link.css +1 -1
- package/dist/styles/layout/page-header.css +21 -1
- package/dist/styles/layout/separator.css +21 -1
- package/dist/styles/layout/sidebar.css +1 -1
- package/dist/styles/layout/tabs.css +30 -1
- package/dist/styles/layout/theme-switch.css +1 -1
- package/dist/styles/overlays/command.css +3 -3
- package/dist/styles/overlays/drawer.css +4 -3
- package/dist/styles/overlays/floating.css +2 -2
- package/dist/styles/overlays/menu.css +5 -1
- package/dist/styles/overlays/modal.css +12 -9
- package/dist/styles/overlays/toast.css +3 -3
- package/dist/styles/overlays/tooltip.css +26 -8
- package/dist/styles/shared.css +2 -2
- package/dist/styles/templates/account-menu.css +1 -1
- package/dist/styles/templates/auth-layout.css +4 -4
- package/dist/styles/templates/brand.css +2 -2
- package/dist/styles/templates/dashboard-page.css +1 -1
- package/dist/styles/templates/empty-page.css +3 -3
- package/dist/styles/templates/error-page.css +1 -1
- package/dist/styles/templates/save-bar.css +1 -1
- package/dist/styles/templates/settings-modal.css +6 -6
- package/dist/styles/utilities.css +3 -3
- package/package.json +1 -1
|
@@ -406,8 +406,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
406
406
|
ref_for?: boolean | undefined | undefined;
|
|
407
407
|
ref_key?: string | undefined | undefined;
|
|
408
408
|
}> & Readonly<{}>, {
|
|
409
|
-
tone: Tone;
|
|
410
409
|
size: BadgeSize;
|
|
410
|
+
tone: Tone;
|
|
411
411
|
variant: BadgeVariant;
|
|
412
412
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
413
413
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -410,8 +410,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
410
410
|
ref_key?: string | undefined | undefined;
|
|
411
411
|
}> & Readonly<{}>, {
|
|
412
412
|
columns: number;
|
|
413
|
-
items: DescriptionItem[];
|
|
414
413
|
layout: DescriptionLayout;
|
|
414
|
+
items: DescriptionItem[];
|
|
415
415
|
divided: boolean;
|
|
416
416
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
417
417
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
<script setup>
|
|
35
35
|
import { computed, h, nextTick, ref, useTemplateRef, watch } from "vue";
|
|
36
36
|
import { useLocale } from "../../composables/useLocale";
|
|
37
|
+
import { translateOr } from "../../locale";
|
|
37
38
|
import { hasFocusWithin } from "../../internal/core/focus";
|
|
38
39
|
import Button from "../core/Button.vue";
|
|
39
40
|
import DropdownMenu from "../overlays/DropdownMenu.vue";
|
|
@@ -46,10 +47,12 @@ const props = defineProps({
|
|
|
46
47
|
size: { type: String, required: false, default: "md" },
|
|
47
48
|
clearable: { type: Boolean, required: false },
|
|
48
49
|
clearLabel: { type: String, required: false },
|
|
50
|
+
removeLabel: { type: String, required: false },
|
|
49
51
|
disabled: { type: Boolean, required: false },
|
|
50
52
|
required: { type: null, required: false }
|
|
51
53
|
});
|
|
52
|
-
const
|
|
54
|
+
const emit = defineEmits(["select", "remove"]);
|
|
55
|
+
const { t, locale } = useLocale();
|
|
53
56
|
const groupLabel = computed(() => props.label ?? t("filterPills.label"));
|
|
54
57
|
const clearText = computed(() => props.clearLabel ?? t("common.clear"));
|
|
55
58
|
const slots = defineSlots();
|
|
@@ -82,10 +85,10 @@ function toggle(value) {
|
|
|
82
85
|
setModel(active ? null : value);
|
|
83
86
|
}
|
|
84
87
|
const root = useTemplateRef("root");
|
|
85
|
-
async function
|
|
88
|
+
async function keepFocus(change) {
|
|
86
89
|
const group = root.value;
|
|
87
90
|
const hadFocus = hasFocusWithin(group);
|
|
88
|
-
|
|
91
|
+
change();
|
|
89
92
|
if (!hadFocus || !group) return;
|
|
90
93
|
await nextTick();
|
|
91
94
|
if (hasFocusWithin(group)) return;
|
|
@@ -98,6 +101,35 @@ async function clear() {
|
|
|
98
101
|
group.focus({ preventScroll: true });
|
|
99
102
|
}
|
|
100
103
|
}
|
|
104
|
+
function clear() {
|
|
105
|
+
return keepFocus(() => setModel(props.multiple ? [] : null));
|
|
106
|
+
}
|
|
107
|
+
function remove(value) {
|
|
108
|
+
return keepFocus(() => {
|
|
109
|
+
const rest = activeValues.value.filter((item) => item !== value);
|
|
110
|
+
if (isActive(value) && !(props.required && rest.length === 0))
|
|
111
|
+
setModel(props.multiple ? rest : null);
|
|
112
|
+
emit("remove", value);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function removable(pill, option, disabled) {
|
|
116
|
+
return h("span", { class: "k-filter-pill-group" }, [
|
|
117
|
+
pill,
|
|
118
|
+
h(Button, {
|
|
119
|
+
class: "k-filter-pill-remove",
|
|
120
|
+
variant: "ghost",
|
|
121
|
+
tone: "neutral",
|
|
122
|
+
size: "xs",
|
|
123
|
+
icon: "x-mark",
|
|
124
|
+
square: true,
|
|
125
|
+
disabled,
|
|
126
|
+
"aria-label": translateOr(locale.value, props.removeLabel, "filterPills.remove", {
|
|
127
|
+
label: option.valueLabel ? `${option.label} ${option.valueLabel}` : option.label
|
|
128
|
+
}),
|
|
129
|
+
onClick: () => remove(option.value)
|
|
130
|
+
})
|
|
131
|
+
]);
|
|
132
|
+
}
|
|
101
133
|
function setPanel(value, open) {
|
|
102
134
|
if (open) openPanel.value = value;
|
|
103
135
|
else if (openPanel.value === value) openPanel.value = null;
|
|
@@ -113,7 +145,12 @@ function renderPill(value) {
|
|
|
113
145
|
size: props.size,
|
|
114
146
|
disabled: Boolean(props.disabled || option.disabled)
|
|
115
147
|
};
|
|
116
|
-
const active = option.active ?? isActive(value);
|
|
148
|
+
const active = option.active ?? (option.removable ? true : isActive(value));
|
|
149
|
+
const pill = renderTrigger(option, base, active);
|
|
150
|
+
return option.removable ? removable(pill, option, base.disabled) : pill;
|
|
151
|
+
}
|
|
152
|
+
function renderTrigger(option, base, active) {
|
|
153
|
+
const value = option.value;
|
|
117
154
|
if (option.menu)
|
|
118
155
|
return h(
|
|
119
156
|
DropdownMenu,
|
|
@@ -140,6 +177,8 @@ function renderPill(value) {
|
|
|
140
177
|
}
|
|
141
178
|
);
|
|
142
179
|
}
|
|
180
|
+
if (option.removable)
|
|
181
|
+
return h(FilterPill, { ...base, active, onClick: () => emit("select", value) });
|
|
143
182
|
return h(FilterPill, { ...base, pressed: isActive(value), onClick: () => toggle(value) });
|
|
144
183
|
}
|
|
145
184
|
const defaultPills = /* @__PURE__ */ new Map();
|
|
@@ -8,11 +8,14 @@ declare const __VLS_export: <T extends FilterPillValue, M extends boolean = fals
|
|
|
8
8
|
size?: "sm" | "md";
|
|
9
9
|
clearable?: boolean;
|
|
10
10
|
clearLabel?: string;
|
|
11
|
+
removeLabel?: string;
|
|
11
12
|
disabled?: boolean;
|
|
12
13
|
required?: R;
|
|
13
14
|
} & {
|
|
14
15
|
modelValue?: M extends true ? T[] : R extends true ? T : T | null;
|
|
15
16
|
}) & {
|
|
17
|
+
onRemove?: ((value: T) => any) | undefined;
|
|
18
|
+
onSelect?: ((value: T) => any) | undefined;
|
|
16
19
|
"onUpdate:modelValue"?: ((value: M extends true ? T[] : R extends true ? T : T | null) => any) | undefined;
|
|
17
20
|
} & Partial<import("vue").HTMLAttributes & import("vue").ReservedProps>> & (typeof globalThis extends {
|
|
18
21
|
__VLS_PROPS_FALLBACK: infer P;
|
|
@@ -36,7 +39,7 @@ declare const __VLS_export: <T extends FilterPillValue, M extends boolean = fals
|
|
|
36
39
|
close: () => void;
|
|
37
40
|
}) => unknown) | undefined;
|
|
38
41
|
};
|
|
39
|
-
emit: (event: "update:modelValue", value: M extends true ? T[] : R extends true ? T : T | null) => void;
|
|
42
|
+
emit: (((evt: "remove", value: T) => void) & ((evt: "select", value: T) => void)) & ((event: "update:modelValue", value: M extends true ? T[] : R extends true ? T : T | null) => void);
|
|
40
43
|
}>) => import("vue").VNode & {
|
|
41
44
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
42
45
|
};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
class="k-pagination"
|
|
4
|
+
:class="[`k-pagination-${size}`, { 'is-loading': loading }]"
|
|
5
|
+
:aria-busy="loading ? 'true' : void 0"
|
|
6
|
+
>
|
|
3
7
|
<p v-if="showSummary" class="k-pagination-summary" aria-live="polite">
|
|
4
8
|
<slot name="summary" :start="range.start" :end="range.end" :total="total">
|
|
5
9
|
<template v-if="total > 0">
|
|
@@ -28,6 +32,18 @@
|
|
|
28
32
|
</span>
|
|
29
33
|
</div>
|
|
30
34
|
<nav class="k-pagination-nav" :aria-label="navLabel">
|
|
35
|
+
<button
|
|
36
|
+
v-if="showEdges"
|
|
37
|
+
type="button"
|
|
38
|
+
class="k-btn k-btn-neutral k-btn-ghost is-icon"
|
|
39
|
+
:class="`k-btn-${buttonSize}`"
|
|
40
|
+
:disabled="disabled"
|
|
41
|
+
:aria-disabled="!disabled && page <= 1 ? 'true' : void 0"
|
|
42
|
+
:aria-label="firstText"
|
|
43
|
+
@click="go(1)"
|
|
44
|
+
>
|
|
45
|
+
<Icon name="chevron-double-left" />
|
|
46
|
+
</button>
|
|
31
47
|
<button
|
|
32
48
|
type="button"
|
|
33
49
|
class="k-btn k-btn-neutral k-btn-ghost is-icon"
|
|
@@ -73,7 +89,35 @@
|
|
|
73
89
|
>
|
|
74
90
|
<Icon name="chevron-right" />
|
|
75
91
|
</button>
|
|
92
|
+
<button
|
|
93
|
+
v-if="showEdges"
|
|
94
|
+
type="button"
|
|
95
|
+
class="k-btn k-btn-neutral k-btn-ghost is-icon"
|
|
96
|
+
:class="`k-btn-${buttonSize}`"
|
|
97
|
+
:disabled="disabled"
|
|
98
|
+
:aria-disabled="!disabled && page >= pageCount ? 'true' : void 0"
|
|
99
|
+
:aria-label="lastText"
|
|
100
|
+
@click="go(pageCount)"
|
|
101
|
+
>
|
|
102
|
+
<Icon name="chevron-double-right" />
|
|
103
|
+
</button>
|
|
76
104
|
</nav>
|
|
105
|
+
<div v-if="showJump" class="k-pagination-jump">
|
|
106
|
+
<label :for="jumpId" class="k-pagination-size-label">{{ jumpText }}</label>
|
|
107
|
+
<input
|
|
108
|
+
:id="jumpId"
|
|
109
|
+
class="k-field k-field-sm k-pagination-jump-input"
|
|
110
|
+
type="number"
|
|
111
|
+
inputmode="numeric"
|
|
112
|
+
min="1"
|
|
113
|
+
:max="pageCount"
|
|
114
|
+
:value="page"
|
|
115
|
+
:disabled="disabled"
|
|
116
|
+
@change="onJump"
|
|
117
|
+
@keydown.enter.prevent="onJump"
|
|
118
|
+
/>
|
|
119
|
+
<span class="k-pagination-jump-total" aria-hidden="true">/ {{ pageCount }}</span>
|
|
120
|
+
</div>
|
|
77
121
|
</div>
|
|
78
122
|
</template>
|
|
79
123
|
|
|
@@ -90,11 +134,17 @@ const props = defineProps({
|
|
|
90
134
|
size: { type: String, required: false, default: "md" },
|
|
91
135
|
compact: { type: Boolean, required: false },
|
|
92
136
|
disabled: { type: Boolean, required: false },
|
|
137
|
+
loading: { type: Boolean, required: false },
|
|
93
138
|
showSummary: { type: Boolean, required: false, default: true },
|
|
139
|
+
showEdges: { type: Boolean, required: false },
|
|
140
|
+
showJump: { type: Boolean, required: false },
|
|
94
141
|
label: { type: String, required: false },
|
|
95
142
|
pageLabel: { type: String, required: false },
|
|
96
143
|
previousLabel: { type: String, required: false },
|
|
97
144
|
nextLabel: { type: String, required: false },
|
|
145
|
+
firstLabel: { type: String, required: false },
|
|
146
|
+
lastLabel: { type: String, required: false },
|
|
147
|
+
jumpLabel: { type: String, required: false },
|
|
98
148
|
pageSizeLabel: { type: String, required: false },
|
|
99
149
|
ofText: { type: String, required: false },
|
|
100
150
|
emptyText: { type: String, required: false }
|
|
@@ -106,12 +156,16 @@ function pageText(value) {
|
|
|
106
156
|
}
|
|
107
157
|
const previousText = computed(() => props.previousLabel ?? t("pagination.previous"));
|
|
108
158
|
const nextText = computed(() => props.nextLabel ?? t("pagination.next"));
|
|
159
|
+
const firstText = computed(() => props.firstLabel ?? t("pagination.first"));
|
|
160
|
+
const lastText = computed(() => props.lastLabel ?? t("pagination.last"));
|
|
161
|
+
const jumpText = computed(() => props.jumpLabel ?? t("pagination.jump"));
|
|
109
162
|
const pageSizeText = computed(() => props.pageSizeLabel ?? t("pagination.pageSize"));
|
|
110
163
|
const ofLabel = computed(() => props.ofText ?? t("pagination.of"));
|
|
111
164
|
const emptyLabel = computed(() => props.emptyText ?? t("common.noResults"));
|
|
112
165
|
const page = defineModel("page", { type: Number, ...{ default: 1 } });
|
|
113
166
|
const pageSize = defineModel("pageSize", { type: Number, ...{ default: 20 } });
|
|
114
167
|
const sizeId = useId();
|
|
168
|
+
const jumpId = useId();
|
|
115
169
|
const buttonSize = computed(() => props.size === "sm" ? "xs" : "sm");
|
|
116
170
|
const pageCount = computed(() => Math.max(1, Math.ceil(props.total / pageSize.value)));
|
|
117
171
|
const items = computed(() => paginationItems(page.value, pageCount.value, props.siblings));
|
|
@@ -119,13 +173,20 @@ const range = computed(() => ({
|
|
|
119
173
|
start: props.total === 0 ? 0 : (page.value - 1) * pageSize.value + 1,
|
|
120
174
|
end: Math.min(page.value * pageSize.value, props.total)
|
|
121
175
|
}));
|
|
122
|
-
watch(pageCount, (count) => {
|
|
176
|
+
watch([pageCount, () => props.total, () => props.loading], ([count, total, loading]) => {
|
|
177
|
+
if (loading || total <= 0) return;
|
|
123
178
|
if (page.value > count) page.value = count;
|
|
124
179
|
});
|
|
125
180
|
function go(target) {
|
|
126
181
|
const next = Math.min(Math.max(target, 1), pageCount.value);
|
|
127
182
|
if (next !== page.value) page.value = next;
|
|
128
183
|
}
|
|
184
|
+
function onJump(event) {
|
|
185
|
+
const input = event.target;
|
|
186
|
+
const target = Math.trunc(Number(input.value));
|
|
187
|
+
if (Number.isFinite(target) && input.value !== "") go(target);
|
|
188
|
+
input.value = String(page.value);
|
|
189
|
+
}
|
|
129
190
|
function onSizeChange(event) {
|
|
130
191
|
const firstItem = (page.value - 1) * pageSize.value;
|
|
131
192
|
pageSize.value = Number(event.target.value);
|
|
@@ -13,11 +13,17 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
13
13
|
size?: "sm" | "md";
|
|
14
14
|
compact?: boolean;
|
|
15
15
|
disabled?: boolean;
|
|
16
|
+
loading?: boolean;
|
|
16
17
|
showSummary?: boolean;
|
|
18
|
+
showEdges?: boolean;
|
|
19
|
+
showJump?: boolean;
|
|
17
20
|
label?: string;
|
|
18
21
|
pageLabel?: string;
|
|
19
22
|
previousLabel?: string;
|
|
20
23
|
nextLabel?: string;
|
|
24
|
+
firstLabel?: string;
|
|
25
|
+
lastLabel?: string;
|
|
26
|
+
jumpLabel?: string;
|
|
21
27
|
pageSizeLabel?: string;
|
|
22
28
|
ofText?: string;
|
|
23
29
|
emptyText?: string;
|
|
@@ -225,11 +231,17 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
225
231
|
size?: "sm" | "md";
|
|
226
232
|
compact?: boolean;
|
|
227
233
|
disabled?: boolean;
|
|
234
|
+
loading?: boolean;
|
|
228
235
|
showSummary?: boolean;
|
|
236
|
+
showEdges?: boolean;
|
|
237
|
+
showJump?: boolean;
|
|
229
238
|
label?: string;
|
|
230
239
|
pageLabel?: string;
|
|
231
240
|
previousLabel?: string;
|
|
232
241
|
nextLabel?: string;
|
|
242
|
+
firstLabel?: string;
|
|
243
|
+
lastLabel?: string;
|
|
244
|
+
jumpLabel?: string;
|
|
233
245
|
pageSizeLabel?: string;
|
|
234
246
|
ofText?: string;
|
|
235
247
|
emptyText?: string;
|
|
@@ -410,8 +410,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
410
410
|
}> & Readonly<{
|
|
411
411
|
onRemove?: (() => any) | undefined;
|
|
412
412
|
}>, {
|
|
413
|
-
tone: Tone;
|
|
414
413
|
size: BadgeSize;
|
|
414
|
+
tone: Tone;
|
|
415
415
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
416
416
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
417
417
|
declare const _default: typeof __VLS_export;
|
|
@@ -441,8 +441,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
441
441
|
"onUpdate:selected"?: ((value: TreeNodeId | null) => any) | undefined;
|
|
442
442
|
"onUpdate:expanded"?: ((value: TreeNodeId[]) => any) | undefined;
|
|
443
443
|
}>, {
|
|
444
|
-
invalid: boolean;
|
|
445
444
|
size: TreeSize;
|
|
445
|
+
invalid: boolean;
|
|
446
446
|
selectable: boolean;
|
|
447
447
|
bordered: boolean;
|
|
448
448
|
descriptionVariant: TreeDescriptionVariant;
|
|
@@ -407,9 +407,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
407
407
|
ref_for?: boolean | undefined | undefined;
|
|
408
408
|
ref_key?: string | undefined | undefined;
|
|
409
409
|
}> & Readonly<{}>, {
|
|
410
|
+
size: "sm" | "md";
|
|
410
411
|
min: number;
|
|
411
412
|
max: number;
|
|
412
|
-
size: "sm" | "md";
|
|
413
413
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
414
414
|
declare const _default: typeof __VLS_export;
|
|
415
415
|
export default _default;
|
|
@@ -408,9 +408,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
408
408
|
ref_key?: string | undefined | undefined;
|
|
409
409
|
}> & Readonly<{}>, {
|
|
410
410
|
value: number | null;
|
|
411
|
+
size: ProgressSize;
|
|
411
412
|
tone: Tone;
|
|
412
413
|
max: number;
|
|
413
|
-
size: ProgressSize;
|
|
414
414
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
415
415
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
416
416
|
declare const _default: typeof __VLS_export;
|
|
@@ -410,9 +410,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
410
410
|
ref_key?: string | undefined | undefined;
|
|
411
411
|
}> & Readonly<{}>, {
|
|
412
412
|
value: number | null;
|
|
413
|
+
size: number | "sm" | "md" | "lg";
|
|
413
414
|
tone: Tone;
|
|
414
415
|
max: number;
|
|
415
|
-
size: number | "sm" | "md" | "lg";
|
|
416
416
|
thickness: number;
|
|
417
417
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
418
418
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
class="k-calendar"
|
|
4
|
-
:class="{
|
|
4
|
+
:class="{
|
|
5
|
+
'is-range': range,
|
|
6
|
+
'is-disabled': disabled,
|
|
7
|
+
'is-readonly': readonly,
|
|
8
|
+
'has-day-text': Boolean(dayText || $slots.day)
|
|
9
|
+
}"
|
|
5
10
|
>
|
|
6
11
|
<div class="k-calendar-header">
|
|
7
12
|
<button
|
|
@@ -77,7 +82,22 @@
|
|
|
77
82
|
@mouseenter="hoverDate = day.iso"
|
|
78
83
|
@focus="focusedDate = day.iso"
|
|
79
84
|
>
|
|
80
|
-
<span class="k-calendar-day-number">
|
|
85
|
+
<span class="k-calendar-day-number">
|
|
86
|
+
<slot
|
|
87
|
+
name="day"
|
|
88
|
+
:date="day.iso"
|
|
89
|
+
:number="day.number"
|
|
90
|
+
:text="day.text"
|
|
91
|
+
:selected="day.selected"
|
|
92
|
+
:unavailable="day.unavailable"
|
|
93
|
+
:in-month="day.inMonth"
|
|
94
|
+
>
|
|
95
|
+
{{ day.number }}
|
|
96
|
+
<span v-if="day.text" class="k-calendar-day-text" aria-hidden="true">{{
|
|
97
|
+
day.text
|
|
98
|
+
}}</span>
|
|
99
|
+
</slot>
|
|
100
|
+
</span>
|
|
81
101
|
</td>
|
|
82
102
|
</tr>
|
|
83
103
|
</tbody>
|
|
@@ -118,7 +138,8 @@ const props = defineProps({
|
|
|
118
138
|
nextLabel: { type: String, required: false },
|
|
119
139
|
disabled: { type: Boolean, required: false },
|
|
120
140
|
readonly: { type: Boolean, required: false },
|
|
121
|
-
level: { type: Number, required: false, default: 2 }
|
|
141
|
+
level: { type: Number, required: false, default: 2 },
|
|
142
|
+
dayText: { type: Function, required: false }
|
|
122
143
|
});
|
|
123
144
|
const { locale: appLocale, t } = useLocale();
|
|
124
145
|
const resolvedLocale = computed(() => props.locale ?? appLocale.value.code);
|
|
@@ -176,10 +197,12 @@ function dayLabel(iso, start, end) {
|
|
|
176
197
|
month: "long",
|
|
177
198
|
day: "numeric"
|
|
178
199
|
});
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if (
|
|
182
|
-
return
|
|
200
|
+
const extra = props.dayText?.(iso);
|
|
201
|
+
const described = extra ? `${label}, ${extra}` : label;
|
|
202
|
+
if (!props.range || !start) return described;
|
|
203
|
+
if (iso === start) return `${described}, ${t("calendar.rangeStart")}`;
|
|
204
|
+
if (iso === end) return `${described}, ${t("calendar.rangeEnd")}`;
|
|
205
|
+
return described;
|
|
183
206
|
}
|
|
184
207
|
const weeks = computed(() => {
|
|
185
208
|
const currentMonth = monthKey(focusedDate.value);
|
|
@@ -195,6 +218,7 @@ const weeks = computed(() => {
|
|
|
195
218
|
iso,
|
|
196
219
|
inMonth,
|
|
197
220
|
number: Number(iso.slice(8)),
|
|
221
|
+
text: props.dayText?.(iso),
|
|
198
222
|
label: dayLabel(iso, start, end),
|
|
199
223
|
unavailable: isUnavailable(iso),
|
|
200
224
|
selected: selected || Boolean(props.range && start && end && iso > start && iso < end),
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import type { CalendarDateDisabled, CalendarRange } from './types';
|
|
2
|
-
declare var __VLS_25: {
|
|
2
|
+
declare var __VLS_25: {
|
|
3
|
+
date: string;
|
|
4
|
+
number: number;
|
|
5
|
+
text: string | undefined;
|
|
6
|
+
selected: boolean;
|
|
7
|
+
unavailable: boolean;
|
|
8
|
+
inMonth: boolean;
|
|
9
|
+
}, __VLS_27: {};
|
|
3
10
|
type __VLS_Slots = {} & {
|
|
4
|
-
|
|
11
|
+
day?: (props: typeof __VLS_25) => any;
|
|
12
|
+
} & {
|
|
13
|
+
footer?: (props: typeof __VLS_27) => any;
|
|
5
14
|
};
|
|
6
15
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
7
16
|
range?: boolean;
|
|
@@ -15,6 +24,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
15
24
|
disabled?: boolean;
|
|
16
25
|
readonly?: boolean;
|
|
17
26
|
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
27
|
+
dayText?: (iso: string) => string | undefined;
|
|
18
28
|
modelValue?: string | CalendarRange | null | undefined;
|
|
19
29
|
month?: string | undefined;
|
|
20
30
|
key?: PropertyKey | undefined;
|
|
@@ -227,6 +237,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
227
237
|
disabled?: boolean;
|
|
228
238
|
readonly?: boolean;
|
|
229
239
|
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
240
|
+
dayText?: (iso: string) => string | undefined;
|
|
230
241
|
modelValue?: string | CalendarRange | null | undefined;
|
|
231
242
|
month?: string | undefined;
|
|
232
243
|
key?: PropertyKey | undefined;
|
|
@@ -9,8 +9,13 @@
|
|
|
9
9
|
class="k-choice-group k-checkbox-group"
|
|
10
10
|
:class="[
|
|
11
11
|
`k-choice-group-${orientation}`,
|
|
12
|
-
{
|
|
12
|
+
{
|
|
13
|
+
'is-invalid': control.invalid.value,
|
|
14
|
+
'is-disabled': control.disabled.value,
|
|
15
|
+
'has-columns': Boolean(columns)
|
|
16
|
+
}
|
|
13
17
|
]"
|
|
18
|
+
:style="columns ? { '--k-choice-columns': String(columns) } : void 0"
|
|
14
19
|
>
|
|
15
20
|
<legend v-if="hasLegend" class="k-choice-group-legend">
|
|
16
21
|
<slot name="legend">{{ legendText }}</slot>
|
|
@@ -43,6 +48,7 @@ const props = defineProps({
|
|
|
43
48
|
label: { type: String, required: false },
|
|
44
49
|
legend: { type: String, required: false },
|
|
45
50
|
orientation: { type: String, required: false, default: "vertical" },
|
|
51
|
+
columns: { type: Number, required: false },
|
|
46
52
|
size: { type: String, required: false, default: "md" },
|
|
47
53
|
name: { type: String, required: false },
|
|
48
54
|
invalid: { type: Boolean, required: false, default: void 0 },
|
|
@@ -225,13 +225,13 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
225
225
|
popovertarget?: string | undefined;
|
|
226
226
|
popovertargetaction?: import("../../index.ts").PopoverTargetAction | undefined;
|
|
227
227
|
autocomplete?: import("vue").InputAutoCompleteAttribute | undefined;
|
|
228
|
+
maxlength?: (string | number) | undefined;
|
|
229
|
+
multiple?: (boolean | "true" | "false") | undefined;
|
|
228
230
|
accept?: string | undefined | undefined;
|
|
229
231
|
alt?: string | undefined | undefined;
|
|
230
232
|
capture?: boolean | "user" | "environment" | undefined | undefined;
|
|
231
233
|
crossorigin?: string | undefined | undefined;
|
|
232
|
-
maxlength?: (string | number) | undefined;
|
|
233
234
|
minlength?: (string | number) | undefined;
|
|
234
|
-
multiple?: (boolean | "true" | "false") | undefined;
|
|
235
235
|
src?: string | undefined | undefined;
|
|
236
236
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
237
237
|
}, {
|
|
@@ -464,22 +464,22 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
464
464
|
popovertarget?: string | undefined;
|
|
465
465
|
popovertargetaction?: import("../../index.ts").PopoverTargetAction | undefined;
|
|
466
466
|
autocomplete?: import("vue").InputAutoCompleteAttribute | undefined;
|
|
467
|
+
maxlength?: (string | number) | undefined;
|
|
468
|
+
multiple?: (boolean | "true" | "false") | undefined;
|
|
467
469
|
accept?: string | undefined | undefined;
|
|
468
470
|
alt?: string | undefined | undefined;
|
|
469
471
|
capture?: boolean | "user" | "environment" | undefined | undefined;
|
|
470
472
|
crossorigin?: string | undefined | undefined;
|
|
471
|
-
maxlength?: (string | number) | undefined;
|
|
472
473
|
minlength?: (string | number) | undefined;
|
|
473
|
-
multiple?: (boolean | "true" | "false") | undefined;
|
|
474
474
|
src?: string | undefined | undefined;
|
|
475
475
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
476
476
|
}> & Readonly<{
|
|
477
477
|
"onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
|
|
478
478
|
}>, {
|
|
479
|
+
size: FieldSize;
|
|
479
480
|
invalid: boolean;
|
|
480
481
|
swatches: ColorSwatch[];
|
|
481
482
|
placeholder: string;
|
|
482
|
-
size: FieldSize;
|
|
483
483
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
484
484
|
declare const _default: typeof __VLS_export;
|
|
485
485
|
export default _default;
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
@mousedown="onControlMousedown"
|
|
29
29
|
>
|
|
30
30
|
<span v-if="icon" class="k-combobox-lead" aria-hidden="true"><Icon :name="icon" /></span>
|
|
31
|
-
<template v-if="multiple">
|
|
31
|
+
<template v-if="multiple && !hideTags">
|
|
32
32
|
<span v-for="value in selectedValues" :key="keyOf(value)" class="k-combobox-tag">
|
|
33
33
|
<span class="k-combobox-tag-label">{{ labelFor(value) }}</span>
|
|
34
34
|
<button
|
|
@@ -211,6 +211,7 @@ const props = defineProps({
|
|
|
211
211
|
search: { type: Function, required: false },
|
|
212
212
|
filter: { type: Function, required: false },
|
|
213
213
|
multiple: { type: Boolean, required: false },
|
|
214
|
+
hideTags: { type: Boolean, required: false },
|
|
214
215
|
creatable: { type: [Boolean, Function], required: false },
|
|
215
216
|
debounce: { type: Number, required: false, default: 250 },
|
|
216
217
|
minQueryLength: { type: Number, required: false, default: 0 },
|
|
@@ -316,7 +317,7 @@ const inputValue = computed(() => {
|
|
|
316
317
|
return selectedLabel.value;
|
|
317
318
|
});
|
|
318
319
|
const inputPlaceholder = computed(
|
|
319
|
-
() => props.multiple && selectedValues.value.length ? void 0 : props.placeholder
|
|
320
|
+
() => props.multiple && !props.hideTags && selectedValues.value.length ? void 0 : props.placeholder
|
|
320
321
|
);
|
|
321
322
|
const showClear = computed(
|
|
322
323
|
() => props.clearable && interactive.value && selectedValues.value.length > 0
|
|
@@ -517,7 +518,7 @@ function onKeydown(event) {
|
|
|
517
518
|
}
|
|
518
519
|
break;
|
|
519
520
|
case "Backspace":
|
|
520
|
-
if (props.multiple && !query.value && selectedValues.value.length) {
|
|
521
|
+
if (props.multiple && !props.hideTags && !query.value && selectedValues.value.length) {
|
|
521
522
|
event.preventDefault();
|
|
522
523
|
remove(selectedValues.value[selectedValues.value.length - 1]);
|
|
523
524
|
}
|
|
@@ -8,6 +8,7 @@ declare const __VLS_export: <T extends string | number, M extends T | T[] | null
|
|
|
8
8
|
search?: ComboboxSearch<T>;
|
|
9
9
|
filter?: (option: ComboboxOption<T>, query: string) => boolean;
|
|
10
10
|
multiple?: boolean;
|
|
11
|
+
hideTags?: boolean;
|
|
11
12
|
creatable?: boolean | ComboboxCreate<T>;
|
|
12
13
|
debounce?: number;
|
|
13
14
|
minQueryLength?: number;
|
|
@@ -131,6 +131,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
131
131
|
lang?: string | undefined;
|
|
132
132
|
width?: (string | number) | undefined;
|
|
133
133
|
tabindex?: (string | number) | undefined;
|
|
134
|
+
transform?: (value: string) => string;
|
|
134
135
|
'aria-activedescendant'?: string | undefined;
|
|
135
136
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
136
137
|
'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined;
|
|
@@ -229,16 +230,17 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
229
230
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
230
231
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
231
232
|
autocomplete?: import("vue").InputAutoCompleteAttribute | undefined;
|
|
233
|
+
maxlength?: (string | number) | undefined;
|
|
232
234
|
clearLabel?: string;
|
|
233
235
|
noAutofill?: boolean;
|
|
236
|
+
counter?: boolean;
|
|
234
237
|
onClear?: (() => any) | undefined;
|
|
238
|
+
multiple?: (boolean | "true" | "false") | undefined;
|
|
235
239
|
accept?: string | undefined;
|
|
236
240
|
alt?: string | undefined;
|
|
237
241
|
capture?: boolean | "user" | "environment" | undefined;
|
|
238
242
|
crossorigin?: string | undefined;
|
|
239
|
-
maxlength?: (string | number) | undefined;
|
|
240
243
|
minlength?: (string | number) | undefined;
|
|
241
|
-
multiple?: (boolean | "true" | "false") | undefined;
|
|
242
244
|
src?: string | undefined;
|
|
243
245
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
244
246
|
modelModifiers?: Partial<Record<"number" | "trim", true>>;
|
|
@@ -376,6 +378,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
376
378
|
lang?: string | undefined;
|
|
377
379
|
width?: (string | number) | undefined;
|
|
378
380
|
tabindex?: (string | number) | undefined;
|
|
381
|
+
transform?: (value: string) => string;
|
|
379
382
|
'aria-activedescendant'?: string | undefined;
|
|
380
383
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
381
384
|
'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined;
|
|
@@ -474,25 +477,26 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
474
477
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
475
478
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
476
479
|
autocomplete?: import("vue").InputAutoCompleteAttribute | undefined;
|
|
480
|
+
maxlength?: (string | number) | undefined;
|
|
477
481
|
clearLabel?: string;
|
|
478
482
|
noAutofill?: boolean;
|
|
483
|
+
counter?: boolean;
|
|
479
484
|
onClear?: (() => any) | undefined;
|
|
485
|
+
multiple?: (boolean | "true" | "false") | undefined;
|
|
480
486
|
accept?: string | undefined;
|
|
481
487
|
alt?: string | undefined;
|
|
482
488
|
capture?: boolean | "user" | "environment" | undefined;
|
|
483
489
|
crossorigin?: string | undefined;
|
|
484
|
-
maxlength?: (string | number) | undefined;
|
|
485
490
|
minlength?: (string | number) | undefined;
|
|
486
|
-
multiple?: (boolean | "true" | "false") | undefined;
|
|
487
491
|
src?: string | undefined;
|
|
488
492
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
489
493
|
modelModifiers?: Partial<Record<"number" | "trim", true>>;
|
|
490
494
|
}> & Readonly<{
|
|
491
495
|
"onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
|
|
492
496
|
}>, {
|
|
493
|
-
invalid: boolean;
|
|
494
497
|
size: FieldSize;
|
|
495
|
-
|
|
498
|
+
invalid: boolean;
|
|
499
|
+
type: "month" | "week" | "date" | "datetime-local";
|
|
496
500
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
497
501
|
declare const _default: typeof __VLS_export;
|
|
498
502
|
export default _default;
|