@privyid/persona 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/components/app/App.vue +29 -0
- package/dist/components/avatar/Avatar.vue +144 -0
- package/dist/components/avatar/Avatar.vue.d.ts +69 -0
- package/dist/components/avatar/assets/avatar.png +0 -0
- package/dist/components/avatar/utils/color-hash.d.ts +2 -0
- package/dist/components/avatar/utils/color-hash.mjs +22 -0
- package/dist/components/avatar/utils/create-image.d.ts +5 -0
- package/dist/components/avatar/utils/create-image.mjs +19 -0
- package/dist/components/avatar/utils/load-image.d.ts +1 -0
- package/dist/components/avatar/utils/load-image.mjs +22 -0
- package/dist/components/badge/Badge.vue +185 -0
- package/dist/components/badge/Badge.vue.d.ts +28 -0
- package/dist/components/badge/assets/images/img-guide-badge.svg +1 -0
- package/dist/components/banner/Banner.vue +112 -0
- package/dist/components/banner/Banner.vue.d.ts +32 -0
- package/dist/components/button/Button.vue +247 -0
- package/dist/components/button/Button.vue.d.ts +56 -0
- package/dist/components/button-group/ButtonGroup.vue +161 -0
- package/dist/components/button-group/ButtonGroup.vue.d.ts +26 -0
- package/dist/components/calendar/Calendar.vue +279 -0
- package/dist/components/calendar/Calendar.vue.d.ts +141 -0
- package/dist/components/calendar/adapter/adapter.d.ts +25 -0
- package/dist/components/calendar/adapter/adapter.mjs +8 -0
- package/dist/components/calendar/adapter/date.d.ts +2 -0
- package/dist/components/calendar/adapter/date.mjs +75 -0
- package/dist/components/calendar/adapter/month.d.ts +2 -0
- package/dist/components/calendar/adapter/month.mjs +58 -0
- package/dist/components/calendar/adapter/year.d.ts +2 -0
- package/dist/components/calendar/adapter/year.mjs +58 -0
- package/dist/components/caption/Caption.vue +38 -0
- package/dist/components/caption/Caption.vue.d.ts +16 -0
- package/dist/components/card/Card.vue +247 -0
- package/dist/components/card/Card.vue.d.ts +68 -0
- package/dist/components/card/CardSection.vue +66 -0
- package/dist/components/card/CardSection.vue.d.ts +25 -0
- package/dist/components/card/assets/images/img-card-callout-01.svg +1 -0
- package/dist/components/chart/Chart.vue +109 -0
- package/dist/components/chart/Chart.vue.d.ts +30 -0
- package/dist/components/chart/ChartSet.vue +16 -0
- package/dist/components/chart/ChartSet.vue.d.ts +12 -0
- package/dist/components/chart/ChartVal.vue +24 -0
- package/dist/components/chart/ChartVal.vue.d.ts +30 -0
- package/dist/components/chart/adapter/adapter.d.ts +7 -0
- package/dist/components/chart/adapter/adapter.mjs +3 -0
- package/dist/components/chart/adapter/index.d.ts +3 -0
- package/dist/components/chart/adapter/index.mjs +10 -0
- package/dist/components/chart/adapter/line.d.ts +2 -0
- package/dist/components/chart/adapter/line.mjs +63 -0
- package/dist/components/chart/adapter/pie.d.ts +2 -0
- package/dist/components/chart/adapter/pie.mjs +33 -0
- package/dist/components/chart/use-chart.d.ts +2 -0
- package/dist/components/chart/use-chart.mjs +9 -0
- package/dist/components/checkbox/Checkbox.vue +176 -0
- package/dist/components/checkbox/Checkbox.vue.d.ts +88 -0
- package/dist/components/checkbox/use-checkbox.d.ts +7 -0
- package/dist/components/checkbox/use-checkbox.mjs +37 -0
- package/dist/components/datepicker/Datepicker.vue +143 -0
- package/dist/components/datepicker/Datepicker.vue.d.ts +88 -0
- package/dist/components/dialog/Dialog.vue +75 -0
- package/dist/components/dialog/Dialog.vue.d.ts +11 -0
- package/dist/components/dialog/DialogFooter.vue +126 -0
- package/dist/components/dialog/DialogFooter.vue.d.ts +114 -0
- package/dist/components/dialog/index.d.ts +6 -0
- package/dist/components/dialog/index.mjs +5 -0
- package/dist/components/dialog/use-dialog.d.ts +28 -0
- package/dist/components/dialog/use-dialog.mjs +31 -0
- package/dist/components/divider/Divider.vue +9 -0
- package/dist/components/dot/Dot.vue +83 -0
- package/dist/components/dot/Dot.vue.d.ts +18 -0
- package/dist/components/dropdown/Dropdown.vue +231 -0
- package/dist/components/dropdown/Dropdown.vue.d.ts +113 -0
- package/dist/components/dropdown/DropdownItem.vue +44 -0
- package/dist/components/dropdown/DropdownItem.vue.d.ts +18 -0
- package/dist/components/dropdown/utils/use-focus.d.ts +5 -0
- package/dist/components/dropdown/utils/use-focus.mjs +20 -0
- package/dist/components/dropdown/utils/use-popper.d.ts +6 -0
- package/dist/components/dropdown/utils/use-popper.mjs +32 -0
- package/dist/components/dropdown-subitem/DropdownSubitem.vue +168 -0
- package/dist/components/dropdown-subitem/DropdownSubitem.vue.d.ts +35 -0
- package/dist/components/dropdown-subitem/use-dropdown-subitem.d.ts +12 -0
- package/dist/components/dropdown-subitem/use-dropdown-subitem.mjs +1 -0
- package/dist/components/filterbar/Filterbar.vue +100 -0
- package/dist/components/filterbar/Filterbar.vue.d.ts +33 -0
- package/dist/components/filterbar/pinned/Date.vue +99 -0
- package/dist/components/filterbar/pinned/Date.vue.d.ts +67 -0
- package/dist/components/filterbar/pinned/Multiselect.vue +109 -0
- package/dist/components/filterbar/pinned/Multiselect.vue.d.ts +42 -0
- package/dist/components/filterbar/pinned/Select.vue +95 -0
- package/dist/components/filterbar/pinned/Select.vue.d.ts +42 -0
- package/dist/components/filterbar/pinned/Toggle.vue +76 -0
- package/dist/components/filterbar/pinned/Toggle.vue.d.ts +57 -0
- package/dist/components/filterbar/use-filterbar.d.ts +45 -0
- package/dist/components/filterbar/use-filterbar.mjs +7 -0
- package/dist/components/global/use-singleton.d.ts +6 -0
- package/dist/components/global/use-singleton.mjs +52 -0
- package/dist/components/heading/Heading.vue +59 -0
- package/dist/components/heading/Heading.vue.d.ts +19 -0
- package/dist/components/input/Input.vue +54 -0
- package/dist/components/input/Input.vue.d.ts +32 -0
- package/dist/components/input/InputGroup.vue +25 -0
- package/dist/components/input/use-input.d.ts +5 -0
- package/dist/components/input/use-input.mjs +20 -0
- package/dist/components/label/Label.vue +221 -0
- package/dist/components/label/Label.vue.d.ts +51 -0
- package/dist/components/modal/Modal.vue +217 -0
- package/dist/components/modal/Modal.vue.d.ts +75 -0
- package/dist/components/modal/assets/images/img-modal-banner-sheet.jpg +0 -0
- package/dist/components/nav/Nav.vue +324 -0
- package/dist/components/nav/Nav.vue.d.ts +73 -0
- package/dist/components/nav/NavItem.vue +149 -0
- package/dist/components/nav/NavItem.vue.d.ts +47 -0
- package/dist/components/nav/NavItemDropdown.vue +56 -0
- package/dist/components/nav/NavItemDropdown.vue.d.ts +23 -0
- package/dist/components/nav/NavSubItem.vue +137 -0
- package/dist/components/nav/NavSubItem.vue.d.ts +26 -0
- package/dist/components/overlay/Overlay.vue +61 -0
- package/dist/components/overlay/Overlay.vue.d.ts +7 -0
- package/dist/components/overlay/assets/icon-white.svg +1 -0
- package/dist/components/overlay/use-overlay.d.ts +2 -0
- package/dist/components/overlay/use-overlay.mjs +8 -0
- package/dist/components/overlay/utils/use-loading.d.ts +4 -0
- package/dist/components/overlay/utils/use-loading.mjs +27 -0
- package/dist/components/radio/Radio.vue +194 -0
- package/dist/components/radio/Radio.vue.d.ts +81 -0
- package/dist/components/radio/use-radio.d.ts +3 -0
- package/dist/components/radio/use-radio.mjs +17 -0
- package/dist/components/select/Select.vue +282 -0
- package/dist/components/select/Select.vue.d.ts +110 -0
- package/dist/components/select/adapter/adapter.d.ts +16 -0
- package/dist/components/select/adapter/adapter.mjs +20 -0
- package/dist/components/select/adapter/async-adapter.d.ts +5 -0
- package/dist/components/select/adapter/async-adapter.mjs +67 -0
- package/dist/components/select/adapter/basic-adapter.d.ts +5 -0
- package/dist/components/select/adapter/basic-adapter.mjs +13 -0
- package/dist/components/select/adapter/fuzzy-adapter.d.ts +2 -0
- package/dist/components/select/adapter/fuzzy-adapter.mjs +24 -0
- package/dist/components/select/demo/api/province.d.ts +5 -0
- package/dist/components/select/demo/api/province.mjs +138 -0
- package/dist/components/select/demo/api/regencies/11.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/11.mjs +117 -0
- package/dist/components/select/demo/api/regencies/12.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/12.mjs +167 -0
- package/dist/components/select/demo/api/regencies/13.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/13.mjs +97 -0
- package/dist/components/select/demo/api/regencies/14.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/14.mjs +62 -0
- package/dist/components/select/demo/api/regencies/15.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/15.mjs +57 -0
- package/dist/components/select/demo/api/regencies/16.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/16.mjs +87 -0
- package/dist/components/select/demo/api/regencies/17.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/17.mjs +52 -0
- package/dist/components/select/demo/api/regencies/18.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/18.mjs +77 -0
- package/dist/components/select/demo/api/regencies/19.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/19.mjs +37 -0
- package/dist/components/select/demo/api/regencies/21.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/21.mjs +37 -0
- package/dist/components/select/demo/api/regencies/31.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/31.mjs +32 -0
- package/dist/components/select/demo/api/regencies/32.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/32.mjs +137 -0
- package/dist/components/select/demo/api/regencies/33.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/33.mjs +177 -0
- package/dist/components/select/demo/api/regencies/34.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/34.mjs +27 -0
- package/dist/components/select/demo/api/regencies/35.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/35.mjs +192 -0
- package/dist/components/select/demo/api/regencies/36.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/36.mjs +42 -0
- package/dist/components/select/demo/api/regencies/51.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/51.mjs +47 -0
- package/dist/components/select/demo/api/regencies/52.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/52.mjs +52 -0
- package/dist/components/select/demo/api/regencies/53.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/53.mjs +112 -0
- package/dist/components/select/demo/api/regencies/61.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/61.mjs +72 -0
- package/dist/components/select/demo/api/regencies/62.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/62.mjs +72 -0
- package/dist/components/select/demo/api/regencies/63.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/63.mjs +67 -0
- package/dist/components/select/demo/api/regencies/64.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/64.mjs +52 -0
- package/dist/components/select/demo/api/regencies/65.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/65.mjs +27 -0
- package/dist/components/select/demo/api/regencies/71.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/71.mjs +77 -0
- package/dist/components/select/demo/api/regencies/72.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/72.mjs +67 -0
- package/dist/components/select/demo/api/regencies/73.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/73.mjs +122 -0
- package/dist/components/select/demo/api/regencies/74.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/74.mjs +87 -0
- package/dist/components/select/demo/api/regencies/75.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/75.mjs +32 -0
- package/dist/components/select/demo/api/regencies/76.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/76.mjs +32 -0
- package/dist/components/select/demo/api/regencies/81.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/81.mjs +57 -0
- package/dist/components/select/demo/api/regencies/82.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/82.mjs +52 -0
- package/dist/components/select/demo/api/regencies/91.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/91.mjs +67 -0
- package/dist/components/select/demo/api/regencies/94.d.ts +6 -0
- package/dist/components/select/demo/api/regencies/94.mjs +147 -0
- package/dist/components/select/demo/get-region.d.ts +11 -0
- package/dist/components/select/demo/get-region.mjs +19 -0
- package/dist/components/select/use-select.d.ts +10 -0
- package/dist/components/select/use-select.mjs +3 -0
- package/dist/components/select/utils/use-on-scroll.d.ts +2 -0
- package/dist/components/select/utils/use-on-scroll.mjs +9 -0
- package/dist/components/select/utils/use-on-typing.d.ts +3 -0
- package/dist/components/select/utils/use-on-typing.mjs +8 -0
- package/dist/components/sidebar/Sidebar.vue +92 -0
- package/dist/components/sidebar/Sidebar.vue.d.ts +51 -0
- package/dist/components/sidebar/SidebarBrand.vue +53 -0
- package/dist/components/sidebar/SidebarBrand.vue.d.ts +14 -0
- package/dist/components/sidebar/SidebarNav.vue +151 -0
- package/dist/components/sidebar/SidebarNav.vue.d.ts +36 -0
- package/dist/components/sidebar/assets/images/icon-flag.svg +1 -0
- package/dist/components/sidebar/assets/images/logo-privy-icon.svg +1 -0
- package/dist/components/sidebar/assets/images/logo-privy.svg +1 -0
- package/dist/components/sidebar-menu/SidebarMenu.vue +94 -0
- package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +43 -0
- package/dist/components/sidebar-menu/assets/images/img-flag.svg +1 -0
- package/dist/components/sidebar-menu/use-sidebar-menu.d.ts +21 -0
- package/dist/components/sidebar-menu/use-sidebar-menu.mjs +3 -0
- package/dist/components/signature-draw/SignatureDraw.vue +69 -0
- package/dist/components/signature-draw/SignatureDraw.vue.d.ts +82 -0
- package/dist/components/signature-draw/SignatureDrawDesktop.vue +152 -0
- package/dist/components/signature-draw/SignatureDrawDesktop.vue.d.ts +66 -0
- package/dist/components/signature-draw/SignatureDrawMobile.vue +203 -0
- package/dist/components/signature-draw/SignatureDrawMobile.vue.d.ts +89 -0
- package/dist/components/signature-draw/assets/empty-img.png +0 -0
- package/dist/components/signature-draw/utils/canvas.d.ts +35 -0
- package/dist/components/signature-draw/utils/canvas.mjs +47 -0
- package/dist/components/signature-draw/utils/rotate-image.d.ts +6 -0
- package/dist/components/signature-draw/utils/rotate-image.mjs +12 -0
- package/dist/components/signature-draw/utils/smooth-line.d.ts +36 -0
- package/dist/components/signature-draw/utils/smooth-line.mjs +36 -0
- package/dist/components/signature-draw/utils/straight-line.d.ts +8 -0
- package/dist/components/signature-draw/utils/straight-line.mjs +22 -0
- package/dist/components/signature-draw/utils/use-draw.d.ts +7 -0
- package/dist/components/signature-draw/utils/use-draw.mjs +24 -0
- package/dist/components/signature-text/SignatureText.vue +104 -0
- package/dist/components/signature-text/SignatureText.vue.d.ts +70 -0
- package/dist/components/signature-text/sample/sample-signature.png +0 -0
- package/dist/components/signature-text/utils/formatter.d.ts +2 -0
- package/dist/components/signature-text/utils/formatter.mjs +8 -0
- package/dist/components/signature-text/utils/generate-text.d.ts +8 -0
- package/dist/components/signature-text/utils/generate-text.mjs +33 -0
- package/dist/components/signature-text/utils/load-font.d.ts +1 -0
- package/dist/components/signature-text/utils/load-font.mjs +14 -0
- package/dist/components/spinner/Spinner.vue +141 -0
- package/dist/components/spinner/Spinner.vue.d.ts +2 -0
- package/dist/components/spinner/SpinnerRing.vue +28 -0
- package/dist/components/spinner/SpinnerRing.vue.d.ts +2 -0
- package/dist/components/subheading/Subheading.vue +66 -0
- package/dist/components/subheading/Subheading.vue.d.ts +28 -0
- package/dist/components/table/Table.vue +257 -0
- package/dist/components/table/Table.vue.d.ts +71 -0
- package/dist/components/table/use-table.d.ts +23 -0
- package/dist/components/table/use-table.mjs +16 -0
- package/dist/components/tabs/Tab.vue +28 -0
- package/dist/components/tabs/Tab.vue.d.ts +23 -0
- package/dist/components/tabs/TabContent.vue +27 -0
- package/dist/components/tabs/TabContent.vue.d.ts +14 -0
- package/dist/components/tabs/Tabs.vue +194 -0
- package/dist/components/tabs/Tabs.vue.d.ts +79 -0
- package/dist/components/textarea/Textarea.vue +158 -0
- package/dist/components/textarea/Textarea.vue.d.ts +95 -0
- package/dist/components/toast/Toast.vue +228 -0
- package/dist/components/toast/Toast.vue.d.ts +56 -0
- package/dist/components/toast/ToastContainer.vue +63 -0
- package/dist/components/toast/ToastContainer.vue.d.ts +15 -0
- package/dist/components/toast/use-toast.d.ts +11 -0
- package/dist/components/toast/use-toast.mjs +5 -0
- package/dist/components/toggle/Toggle.vue +220 -0
- package/dist/components/toggle/Toggle.vue.d.ts +104 -0
- package/dist/components/truncate/Truncate.vue +75 -0
- package/dist/components/truncate/Truncate.vue.d.ts +64 -0
- package/dist/components/utils/color.d.ts +12 -0
- package/dist/components/utils/color.mjs +10 -0
- package/dist/components/utils/value.d.ts +8 -0
- package/dist/components/utils/value.mjs +6 -0
- package/dist/components/utils/vnode.d.ts +2 -0
- package/dist/components/utils/vnode.mjs +15 -0
- package/dist/core/index.cjs +75 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.mjs +25 -0
- package/dist/module.cjs +5 -0
- package/dist/module.d.ts +5 -0
- package/dist/module.json +5 -0
- package/dist/module.mjs +25 -0
- package/dist/types.d.ts +6 -0
- package/package.json +40 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="filterbar">
|
|
3
|
+
<template
|
|
4
|
+
v-for="item in pinnedItems"
|
|
5
|
+
:key="item.key">
|
|
6
|
+
<slot :name="`cell(${item.key})`">
|
|
7
|
+
<component
|
|
8
|
+
:is="item.type"
|
|
9
|
+
class="filterbar__item"
|
|
10
|
+
:schema="item"
|
|
11
|
+
:model-value="getValue(item.key)"
|
|
12
|
+
v-bind="item"
|
|
13
|
+
@update:model-value="setValue(item.key, $event)" />
|
|
14
|
+
</slot>
|
|
15
|
+
</template>
|
|
16
|
+
<Button
|
|
17
|
+
variant="link"
|
|
18
|
+
@click="reset">
|
|
19
|
+
Reset
|
|
20
|
+
</Button>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
23
|
+
|
|
24
|
+
<script>
|
|
25
|
+
import {
|
|
26
|
+
computed,
|
|
27
|
+
defineComponent
|
|
28
|
+
} from "vue-demi";
|
|
29
|
+
import Dropdown from "../dropdown/Dropdown.vue";
|
|
30
|
+
import Button from "../button/Button.vue";
|
|
31
|
+
import Select from "./pinned/Select.vue";
|
|
32
|
+
import Toggle from "./pinned/Toggle.vue";
|
|
33
|
+
import Multiselect from "./pinned/Multiselect.vue";
|
|
34
|
+
import Date from "./pinned/Date.vue";
|
|
35
|
+
import { useVModel } from "../input/use-input";
|
|
36
|
+
export default defineComponent({
|
|
37
|
+
components: {
|
|
38
|
+
Button,
|
|
39
|
+
Dropdown,
|
|
40
|
+
Date,
|
|
41
|
+
Select,
|
|
42
|
+
Multiselect,
|
|
43
|
+
Toggle
|
|
44
|
+
},
|
|
45
|
+
props: {
|
|
46
|
+
schema: {
|
|
47
|
+
type: Array,
|
|
48
|
+
default: () => []
|
|
49
|
+
},
|
|
50
|
+
modelValue: {
|
|
51
|
+
type: Object,
|
|
52
|
+
default: () => ({})
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
models: {
|
|
56
|
+
prop: "modelValue",
|
|
57
|
+
event: "update:modelValue"
|
|
58
|
+
},
|
|
59
|
+
emits: ["update:modelValue"],
|
|
60
|
+
setup(props) {
|
|
61
|
+
const model = useVModel(props);
|
|
62
|
+
const pinnedItems = computed(() => {
|
|
63
|
+
return props.schema.filter((item) => {
|
|
64
|
+
return item.pinned !== false;
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
function getValue(key) {
|
|
68
|
+
return model.value[key];
|
|
69
|
+
}
|
|
70
|
+
function setValue(key, value) {
|
|
71
|
+
model.value = { ...model.value, [key]: value };
|
|
72
|
+
}
|
|
73
|
+
function reset() {
|
|
74
|
+
model.value = Object.fromEntries(props.schema.map((i) => [i.key, i.default]));
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
model,
|
|
78
|
+
pinnedItems,
|
|
79
|
+
getValue,
|
|
80
|
+
setValue,
|
|
81
|
+
reset
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<style lang="postcss">
|
|
88
|
+
.filterbar {
|
|
89
|
+
@apply flex gap-2;
|
|
90
|
+
|
|
91
|
+
&__item {
|
|
92
|
+
&.filterbar--active {
|
|
93
|
+
&.btn--input,
|
|
94
|
+
& .dropdown__activator.btn--input {
|
|
95
|
+
@apply bg-body-100 text-white;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
</style>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PropType } from 'vue-demi';
|
|
2
|
+
import { FilterItem } from './use-filterbar';
|
|
3
|
+
declare const _default: import("vue-demi").DefineComponent<{
|
|
4
|
+
schema: {
|
|
5
|
+
type: PropType<FilterItem[]>;
|
|
6
|
+
default: () => any[];
|
|
7
|
+
};
|
|
8
|
+
modelValue: {
|
|
9
|
+
type: PropType<Record<string, unknown>>;
|
|
10
|
+
default: () => {};
|
|
11
|
+
};
|
|
12
|
+
}, {
|
|
13
|
+
model: import("vue-demi").Ref<Record<string, unknown>>;
|
|
14
|
+
pinnedItems: import("vue-demi").ComputedRef<FilterItem[]>;
|
|
15
|
+
getValue: (key: string) => unknown;
|
|
16
|
+
setValue: (key: string, value: unknown) => void;
|
|
17
|
+
reset: () => void;
|
|
18
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
19
|
+
schema: {
|
|
20
|
+
type: PropType<FilterItem[]>;
|
|
21
|
+
default: () => any[];
|
|
22
|
+
};
|
|
23
|
+
modelValue: {
|
|
24
|
+
type: PropType<Record<string, unknown>>;
|
|
25
|
+
default: () => {};
|
|
26
|
+
};
|
|
27
|
+
}>> & {
|
|
28
|
+
"onUpdate:modelValue"?: (...args: any[]) => any;
|
|
29
|
+
}, {
|
|
30
|
+
modelValue: Record<string, unknown>;
|
|
31
|
+
schema: FilterItem[];
|
|
32
|
+
}>;
|
|
33
|
+
export default _default;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Dropdown
|
|
3
|
+
v-model="isOpen"
|
|
4
|
+
variant="input"
|
|
5
|
+
class="filterbar__date"
|
|
6
|
+
:class="{'filterbar--active': !!value }"
|
|
7
|
+
caret>
|
|
8
|
+
<template #button-content>
|
|
9
|
+
{{ value ? value : schema.label }}
|
|
10
|
+
</template>
|
|
11
|
+
<Caption
|
|
12
|
+
class="px-3 py-2"
|
|
13
|
+
bold>
|
|
14
|
+
{{ schema.label }}
|
|
15
|
+
</Caption>
|
|
16
|
+
|
|
17
|
+
<Calendar
|
|
18
|
+
v-model="model"
|
|
19
|
+
:min="min"
|
|
20
|
+
:max="max"
|
|
21
|
+
:mode="mode"
|
|
22
|
+
@change="close" />
|
|
23
|
+
</Dropdown>
|
|
24
|
+
</template>
|
|
25
|
+
|
|
26
|
+
<script>
|
|
27
|
+
import {
|
|
28
|
+
computed,
|
|
29
|
+
defineComponent,
|
|
30
|
+
ref
|
|
31
|
+
} from "vue-demi";
|
|
32
|
+
import Caption from "../../caption/Caption.vue";
|
|
33
|
+
import Calendar from "../../calendar/Calendar.vue";
|
|
34
|
+
import Dropdown from "../../dropdown/Dropdown.vue";
|
|
35
|
+
import { useVModel } from "../../input/use-input";
|
|
36
|
+
import { isDate, format as formatDate } from "date-fns";
|
|
37
|
+
export default defineComponent({
|
|
38
|
+
components: {
|
|
39
|
+
Caption,
|
|
40
|
+
Dropdown,
|
|
41
|
+
Calendar
|
|
42
|
+
},
|
|
43
|
+
props: {
|
|
44
|
+
schema: {
|
|
45
|
+
type: Object,
|
|
46
|
+
required: true
|
|
47
|
+
},
|
|
48
|
+
modelValue: {
|
|
49
|
+
type: Date,
|
|
50
|
+
default: void 0
|
|
51
|
+
},
|
|
52
|
+
format: {
|
|
53
|
+
type: String,
|
|
54
|
+
default: "dd/MM/yyyy"
|
|
55
|
+
},
|
|
56
|
+
max: {
|
|
57
|
+
type: Date,
|
|
58
|
+
default: void 0
|
|
59
|
+
},
|
|
60
|
+
min: {
|
|
61
|
+
type: Date,
|
|
62
|
+
default: void 0
|
|
63
|
+
},
|
|
64
|
+
mode: {
|
|
65
|
+
type: String,
|
|
66
|
+
default: "date"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
models: {
|
|
70
|
+
prop: "modelValue",
|
|
71
|
+
event: "update:modelValue"
|
|
72
|
+
},
|
|
73
|
+
emits: ["update:modelValue"],
|
|
74
|
+
setup(props) {
|
|
75
|
+
const isOpen = ref(false);
|
|
76
|
+
const model = useVModel(props);
|
|
77
|
+
const value = computed(() => {
|
|
78
|
+
return isDate(model.value) ? formatDate(model.value, props.format) : "";
|
|
79
|
+
});
|
|
80
|
+
function close() {
|
|
81
|
+
isOpen.value = false;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
model,
|
|
85
|
+
value,
|
|
86
|
+
isOpen,
|
|
87
|
+
close
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
</script>
|
|
92
|
+
|
|
93
|
+
<style lang="postcss">
|
|
94
|
+
.filterbar__date {
|
|
95
|
+
> .dropdown__menu {
|
|
96
|
+
@apply min-w-max max-h-min;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
</style>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PropType } from 'vue-demi';
|
|
2
|
+
import { FilterDate } from '../use-filterbar';
|
|
3
|
+
declare const _default: import("vue-demi").DefineComponent<{
|
|
4
|
+
schema: {
|
|
5
|
+
type: PropType<FilterDate>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
modelValue: {
|
|
9
|
+
type: DateConstructor;
|
|
10
|
+
default: any;
|
|
11
|
+
};
|
|
12
|
+
format: {
|
|
13
|
+
type: StringConstructor;
|
|
14
|
+
default: string;
|
|
15
|
+
};
|
|
16
|
+
max: {
|
|
17
|
+
type: DateConstructor;
|
|
18
|
+
default: any;
|
|
19
|
+
};
|
|
20
|
+
min: {
|
|
21
|
+
type: DateConstructor;
|
|
22
|
+
default: any;
|
|
23
|
+
};
|
|
24
|
+
mode: {
|
|
25
|
+
type: PropType<"date" | "month" | "year">;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
28
|
+
}, {
|
|
29
|
+
model: import("vue-demi").Ref<Date>;
|
|
30
|
+
value: import("vue-demi").ComputedRef<string>;
|
|
31
|
+
isOpen: import("vue-demi").Ref<boolean>;
|
|
32
|
+
close: () => void;
|
|
33
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
34
|
+
schema: {
|
|
35
|
+
type: PropType<FilterDate>;
|
|
36
|
+
required: true;
|
|
37
|
+
};
|
|
38
|
+
modelValue: {
|
|
39
|
+
type: DateConstructor;
|
|
40
|
+
default: any;
|
|
41
|
+
};
|
|
42
|
+
format: {
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
default: string;
|
|
45
|
+
};
|
|
46
|
+
max: {
|
|
47
|
+
type: DateConstructor;
|
|
48
|
+
default: any;
|
|
49
|
+
};
|
|
50
|
+
min: {
|
|
51
|
+
type: DateConstructor;
|
|
52
|
+
default: any;
|
|
53
|
+
};
|
|
54
|
+
mode: {
|
|
55
|
+
type: PropType<"date" | "month" | "year">;
|
|
56
|
+
default: string;
|
|
57
|
+
};
|
|
58
|
+
}>> & {
|
|
59
|
+
"onUpdate:modelValue"?: (...args: any[]) => any;
|
|
60
|
+
}, {
|
|
61
|
+
min: Date;
|
|
62
|
+
max: Date;
|
|
63
|
+
modelValue: Date;
|
|
64
|
+
mode: "date" | "month" | "year";
|
|
65
|
+
format: string;
|
|
66
|
+
}>;
|
|
67
|
+
export default _default;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Dropdown
|
|
3
|
+
v-model="isOpen"
|
|
4
|
+
variant="input"
|
|
5
|
+
class="filterbar__multiselect-badge"
|
|
6
|
+
:class="{'filterbar--active': selected.length > 0 }"
|
|
7
|
+
caret>
|
|
8
|
+
<template #button-content>
|
|
9
|
+
<template v-if="selected.length > 1">
|
|
10
|
+
{{ schema.label }}:
|
|
11
|
+
<Badge class="filterbar__multiselect-badge">
|
|
12
|
+
{{ selected.length }}
|
|
13
|
+
</Badge>
|
|
14
|
+
</template>
|
|
15
|
+
<template v-else-if="selected.length === 1">
|
|
16
|
+
{{ selected.at(0).text }}
|
|
17
|
+
</template>
|
|
18
|
+
<template v-else>
|
|
19
|
+
{{ schema.label }}
|
|
20
|
+
</template>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<Caption
|
|
24
|
+
class="px-3 py-2"
|
|
25
|
+
bold>
|
|
26
|
+
{{ schema.label }}
|
|
27
|
+
</Caption>
|
|
28
|
+
<template
|
|
29
|
+
v-for="(item, i) in items"
|
|
30
|
+
:key="i">
|
|
31
|
+
<Checkbox
|
|
32
|
+
v-model="model"
|
|
33
|
+
apperance="option"
|
|
34
|
+
:value="item.value">
|
|
35
|
+
{{ item.text }}
|
|
36
|
+
</Checkbox>
|
|
37
|
+
</template>
|
|
38
|
+
</Dropdown>
|
|
39
|
+
</template>
|
|
40
|
+
|
|
41
|
+
<script>
|
|
42
|
+
import {
|
|
43
|
+
computed,
|
|
44
|
+
defineComponent,
|
|
45
|
+
ref
|
|
46
|
+
} from "vue-demi";
|
|
47
|
+
import Badge from "../../badge/Badge.vue";
|
|
48
|
+
import Caption from "../../caption/Caption.vue";
|
|
49
|
+
import Dropdown from "../../dropdown/Dropdown.vue";
|
|
50
|
+
import Checkbox from "../../checkbox/Checkbox.vue";
|
|
51
|
+
import { useOptionsProp } from "../../select/adapter/adapter";
|
|
52
|
+
import { useVModel } from "../../input/use-input";
|
|
53
|
+
import { isEqual } from "../../utils/value";
|
|
54
|
+
export default defineComponent({
|
|
55
|
+
components: {
|
|
56
|
+
Badge,
|
|
57
|
+
Caption,
|
|
58
|
+
Dropdown,
|
|
59
|
+
Checkbox
|
|
60
|
+
},
|
|
61
|
+
props: {
|
|
62
|
+
schema: {
|
|
63
|
+
type: Object,
|
|
64
|
+
required: true
|
|
65
|
+
},
|
|
66
|
+
options: {
|
|
67
|
+
type: Array,
|
|
68
|
+
default: () => []
|
|
69
|
+
},
|
|
70
|
+
modelValue: {
|
|
71
|
+
type: Array,
|
|
72
|
+
default: () => []
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
models: {
|
|
76
|
+
prop: "modelValue",
|
|
77
|
+
event: "update:modelValue"
|
|
78
|
+
},
|
|
79
|
+
emits: ["update:modelValue"],
|
|
80
|
+
setup(props) {
|
|
81
|
+
const items = useOptionsProp(props);
|
|
82
|
+
const isOpen = ref(false);
|
|
83
|
+
const model = useVModel(props);
|
|
84
|
+
const selected = computed(() => {
|
|
85
|
+
return items.value.filter((item) => {
|
|
86
|
+
return Array.isArray(model.value) && model.value.some((v) => isEqual(item.value, v));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
function close() {
|
|
90
|
+
isOpen.value = false;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
model,
|
|
94
|
+
items,
|
|
95
|
+
isOpen,
|
|
96
|
+
selected,
|
|
97
|
+
close
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
</script>
|
|
102
|
+
|
|
103
|
+
<style lang="postcss">
|
|
104
|
+
.filterbar__multiselect {
|
|
105
|
+
&-badge.badge--primary {
|
|
106
|
+
@apply bg-white bg-opacity-20;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
</style>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { PropType } from 'vue-demi';
|
|
2
|
+
import { FilterSelect } from '../use-filterbar';
|
|
3
|
+
import { SelectItem } from '../../select/use-select';
|
|
4
|
+
declare const _default: import("vue-demi").DefineComponent<{
|
|
5
|
+
schema: {
|
|
6
|
+
type: PropType<FilterSelect>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
options: {
|
|
10
|
+
type: PropType<string[] | SelectItem[]>;
|
|
11
|
+
default: () => any[];
|
|
12
|
+
};
|
|
13
|
+
modelValue: {
|
|
14
|
+
type: ArrayConstructor;
|
|
15
|
+
default: () => any[];
|
|
16
|
+
};
|
|
17
|
+
}, {
|
|
18
|
+
model: import("vue-demi").Ref<unknown[]>;
|
|
19
|
+
items: import("vue-demi").ComputedRef<SelectItem[]>;
|
|
20
|
+
isOpen: import("vue-demi").Ref<boolean>;
|
|
21
|
+
selected: import("vue-demi").ComputedRef<SelectItem[]>;
|
|
22
|
+
close: () => void;
|
|
23
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
24
|
+
schema: {
|
|
25
|
+
type: PropType<FilterSelect>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
options: {
|
|
29
|
+
type: PropType<string[] | SelectItem[]>;
|
|
30
|
+
default: () => any[];
|
|
31
|
+
};
|
|
32
|
+
modelValue: {
|
|
33
|
+
type: ArrayConstructor;
|
|
34
|
+
default: () => any[];
|
|
35
|
+
};
|
|
36
|
+
}>> & {
|
|
37
|
+
"onUpdate:modelValue"?: (...args: any[]) => any;
|
|
38
|
+
}, {
|
|
39
|
+
modelValue: unknown[];
|
|
40
|
+
options: string[] | SelectItem[];
|
|
41
|
+
}>;
|
|
42
|
+
export default _default;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Dropdown
|
|
3
|
+
v-model="isOpen"
|
|
4
|
+
variant="input"
|
|
5
|
+
class="filterbar__select"
|
|
6
|
+
:class="{'filterbar--active': selected !== undefined }"
|
|
7
|
+
caret>
|
|
8
|
+
<template #button-content>
|
|
9
|
+
{{ selected ? selected.text : schema.label }}
|
|
10
|
+
</template>
|
|
11
|
+
<Caption
|
|
12
|
+
class="px-3 py-2"
|
|
13
|
+
bold>
|
|
14
|
+
{{ schema.label }}
|
|
15
|
+
</Caption>
|
|
16
|
+
<template
|
|
17
|
+
v-for="(item, i) in items"
|
|
18
|
+
:key="i">
|
|
19
|
+
<Radio
|
|
20
|
+
v-model="model"
|
|
21
|
+
apperance="option"
|
|
22
|
+
:value="item.value"
|
|
23
|
+
@click="close">
|
|
24
|
+
{{ item.text }}
|
|
25
|
+
</Radio>
|
|
26
|
+
</template>
|
|
27
|
+
</Dropdown>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script>
|
|
31
|
+
import {
|
|
32
|
+
computed,
|
|
33
|
+
defineComponent,
|
|
34
|
+
ref
|
|
35
|
+
} from "vue-demi";
|
|
36
|
+
import Caption from "../../caption/Caption.vue";
|
|
37
|
+
import Dropdown from "../../dropdown/Dropdown.vue";
|
|
38
|
+
import Radio from "../../radio/Radio.vue";
|
|
39
|
+
import { useOptionsProp } from "../../select/adapter/adapter";
|
|
40
|
+
import { useVModel } from "../../input/use-input";
|
|
41
|
+
import { isEqual } from "../../utils/value";
|
|
42
|
+
export default defineComponent({
|
|
43
|
+
components: {
|
|
44
|
+
Caption,
|
|
45
|
+
Dropdown,
|
|
46
|
+
Radio
|
|
47
|
+
},
|
|
48
|
+
props: {
|
|
49
|
+
schema: {
|
|
50
|
+
type: Object,
|
|
51
|
+
required: true
|
|
52
|
+
},
|
|
53
|
+
options: {
|
|
54
|
+
type: Array,
|
|
55
|
+
default: () => []
|
|
56
|
+
},
|
|
57
|
+
modelValue: {
|
|
58
|
+
type: [
|
|
59
|
+
String,
|
|
60
|
+
Number,
|
|
61
|
+
Boolean,
|
|
62
|
+
Array,
|
|
63
|
+
Object,
|
|
64
|
+
Date
|
|
65
|
+
],
|
|
66
|
+
default: void 0
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
models: {
|
|
70
|
+
prop: "modelValue",
|
|
71
|
+
event: "update:modelValue"
|
|
72
|
+
},
|
|
73
|
+
emits: ["update:modelValue"],
|
|
74
|
+
setup(props) {
|
|
75
|
+
const items = useOptionsProp(props);
|
|
76
|
+
const isOpen = ref(false);
|
|
77
|
+
const model = useVModel(props);
|
|
78
|
+
const selected = computed(() => {
|
|
79
|
+
return items.value.find((item) => {
|
|
80
|
+
return isEqual(item.value, model.value);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
function close() {
|
|
84
|
+
isOpen.value = false;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
model,
|
|
88
|
+
items,
|
|
89
|
+
isOpen,
|
|
90
|
+
selected,
|
|
91
|
+
close
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
</script>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { PropType } from 'vue-demi';
|
|
2
|
+
import { FilterSelect } from '../use-filterbar';
|
|
3
|
+
import { SelectItem } from '../../select/use-select';
|
|
4
|
+
declare const _default: import("vue-demi").DefineComponent<{
|
|
5
|
+
schema: {
|
|
6
|
+
type: PropType<FilterSelect>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
options: {
|
|
10
|
+
type: PropType<string[] | SelectItem[]>;
|
|
11
|
+
default: () => any[];
|
|
12
|
+
};
|
|
13
|
+
modelValue: {
|
|
14
|
+
type: (ObjectConstructor | StringConstructor | ArrayConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
|
|
15
|
+
default: any;
|
|
16
|
+
};
|
|
17
|
+
}, {
|
|
18
|
+
model: import("vue-demi").Ref<string | number | boolean | unknown[] | Record<string, any> | Date>;
|
|
19
|
+
items: import("vue-demi").ComputedRef<SelectItem[]>;
|
|
20
|
+
isOpen: import("vue-demi").Ref<boolean>;
|
|
21
|
+
selected: import("vue-demi").ComputedRef<SelectItem>;
|
|
22
|
+
close: () => void;
|
|
23
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
24
|
+
schema: {
|
|
25
|
+
type: PropType<FilterSelect>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
options: {
|
|
29
|
+
type: PropType<string[] | SelectItem[]>;
|
|
30
|
+
default: () => any[];
|
|
31
|
+
};
|
|
32
|
+
modelValue: {
|
|
33
|
+
type: (ObjectConstructor | StringConstructor | ArrayConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
|
|
34
|
+
default: any;
|
|
35
|
+
};
|
|
36
|
+
}>> & {
|
|
37
|
+
"onUpdate:modelValue"?: (...args: any[]) => any;
|
|
38
|
+
}, {
|
|
39
|
+
modelValue: string | number | boolean | unknown[] | Record<string, any> | Date;
|
|
40
|
+
options: string[] | SelectItem[];
|
|
41
|
+
}>;
|
|
42
|
+
export default _default;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Button
|
|
3
|
+
class="filterbar__item filterbar--pinned"
|
|
4
|
+
variant="input"
|
|
5
|
+
:class="{ 'filterbar--active': model }"
|
|
6
|
+
@click="toggle">
|
|
7
|
+
{{ schema.label }}
|
|
8
|
+
</Button>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
import { defineComponent } from "vue-demi";
|
|
13
|
+
import Button from "../../button/Button.vue";
|
|
14
|
+
import { useVModel } from "../../checkbox/use-checkbox";
|
|
15
|
+
export default defineComponent({
|
|
16
|
+
components: { Button },
|
|
17
|
+
props: {
|
|
18
|
+
schema: {
|
|
19
|
+
type: Object,
|
|
20
|
+
required: true
|
|
21
|
+
},
|
|
22
|
+
modelValue: {
|
|
23
|
+
type: [
|
|
24
|
+
String,
|
|
25
|
+
Number,
|
|
26
|
+
Boolean,
|
|
27
|
+
Array,
|
|
28
|
+
Object,
|
|
29
|
+
Date
|
|
30
|
+
],
|
|
31
|
+
default: false
|
|
32
|
+
},
|
|
33
|
+
value: {
|
|
34
|
+
type: [
|
|
35
|
+
String,
|
|
36
|
+
Number,
|
|
37
|
+
Boolean,
|
|
38
|
+
Array,
|
|
39
|
+
Object,
|
|
40
|
+
Date
|
|
41
|
+
],
|
|
42
|
+
default: true
|
|
43
|
+
},
|
|
44
|
+
uncheckedValue: {
|
|
45
|
+
type: [
|
|
46
|
+
String,
|
|
47
|
+
Number,
|
|
48
|
+
Boolean,
|
|
49
|
+
Array,
|
|
50
|
+
Object,
|
|
51
|
+
Date
|
|
52
|
+
],
|
|
53
|
+
default: false
|
|
54
|
+
},
|
|
55
|
+
checked: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
default: false
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
models: {
|
|
61
|
+
prop: "modelValue",
|
|
62
|
+
event: "update:modelValue"
|
|
63
|
+
},
|
|
64
|
+
emits: ["update:modelValue", "change"],
|
|
65
|
+
setup(props) {
|
|
66
|
+
const model = useVModel(props);
|
|
67
|
+
function toggle() {
|
|
68
|
+
model.value = !model.value;
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
model,
|
|
72
|
+
toggle
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
</script>
|