vueless 0.0.4 → 0.0.6
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/.eslintrc.js +7 -0
- package/package.json +3 -2
- package/postcss.config.js +1 -1
- package/src/service.storybook/index.js +91 -0
- package/src/service.tailwind/index.js +1 -1
- package/src/service.ui/index.js +1 -1
- package/src/ui.button/Docs.mdx +16 -0
- package/src/ui.button/composables/attrs.composable.js +41 -0
- package/src/ui.button/configs/default.config.js +165 -0
- package/src/ui.button/constants/index.js +5 -0
- package/src/ui.button/index.stories.js +166 -0
- package/src/ui.button/index.vue +151 -0
- package/src/ui.button-link/Docs.mdx +16 -0
- package/src/ui.button-link/composables/attrs.composable.js +99 -0
- package/src/ui.button-link/configs/default.config.js +80 -0
- package/src/ui.button-link/constants/index.js +5 -0
- package/src/ui.button-link/index.stories.js +158 -0
- package/src/ui.button-link/index.vue +226 -0
- package/src/ui.button-toggle/Docs.mdx +16 -0
- package/src/ui.button-toggle/composables/attrs.composable.js +16 -0
- package/src/ui.button-toggle/configs/default.config.js +12 -0
- package/src/ui.button-toggle/constants/index.js +7 -0
- package/src/ui.button-toggle/index.stories.js +155 -0
- package/src/ui.button-toggle/index.vue +128 -0
- package/src/ui.button-toggle-item/Docs.mdx +16 -0
- package/src/ui.button-toggle-item/composables/attrs.composable.js +53 -0
- package/src/ui.button-toggle-item/configs/default.config.js +58 -0
- package/src/ui.button-toggle-item/constants/index.js +5 -0
- package/src/ui.button-toggle-item/index.stories.js +77 -0
- package/src/ui.button-toggle-item/index.vue +147 -0
- package/src/ui.container-accordion/composables/attrs.composable.js +45 -0
- package/src/ui.container-accordion/configs/default.config.js +32 -0
- package/src/ui.container-accordion/constants/index.js +5 -0
- package/src/ui.container-accordion/index.stories.js +89 -0
- package/src/ui.container-accordion/index.vue +95 -0
- package/src/ui.container-card/Docs.mdx +16 -0
- package/src/ui.container-card/composable/attrs.composable.js +56 -0
- package/src/ui.container-card/configs/default.config.js +31 -0
- package/src/ui.container-card/constants/index.js +5 -0
- package/src/ui.container-card/index.stories.js +170 -0
- package/src/ui.container-card/index.vue +146 -0
- package/src/ui.container-divider/Docs.mdx +16 -0
- package/src/ui.container-divider/configs/default.config.js +79 -0
- package/src/ui.container-divider/index.stories.js +124 -0
- package/src/ui.container-group/Docs.mdx +16 -0
- package/src/ui.container-group/composables/attrs.composable.js +44 -0
- package/src/ui.container-group/configs/default.config.js +29 -0
- package/src/ui.container-group/constants/index.js +5 -0
- package/src/ui.container-group/index.stories.js +88 -0
- package/src/ui.container-group/index.vue +106 -0
- package/src/ui.container-groups/Docs.mdx +16 -0
- package/src/ui.container-groups/composables/attrs.composable.js +12 -0
- package/src/ui.container-groups/configs/default.config.js +3 -0
- package/src/ui.container-groups/index.stories.js +45 -0
- package/src/ui.container-groups/index.vue +33 -0
- package/src/ui.container-modal/Docs.mdx +16 -0
- package/src/ui.container-modal/composables/attrs.composable.js +90 -0
- package/src/ui.container-modal/configs/default.config.js +69 -0
- package/src/ui.container-modal/constants/index.js +5 -0
- package/src/ui.container-modal/index.stories.js +170 -0
- package/src/ui.container-modal/index.vue +336 -0
- package/src/ui.container-modal-confirm/Docs.mdx +16 -0
- package/src/ui.container-modal-confirm/composable/attrs.composable.js +20 -0
- package/src/ui.container-modal-confirm/configs/default.config.js +15 -0
- package/src/ui.container-modal-confirm/constants/index.js +5 -0
- package/src/ui.container-modal-confirm/index.stories.js +209 -0
- package/src/ui.container-modal-confirm/index.vue +182 -0
- package/src/ui.container-page/Docs.mdx +16 -0
- package/src/ui.container-page/composables/attrs.composable.js +96 -0
- package/src/ui.container-page/configs/default.config.js +71 -0
- package/src/ui.container-page/constants/index.js +5 -0
- package/src/ui.container-page/index.stories.js +147 -0
- package/src/ui.container-page/index.vue +275 -0
- package/src/ui.container-row/Docs.mdx +16 -0
- package/src/ui.container-row/composables/attrs.composable.js +23 -0
- package/src/ui.container-row/configs/default.config.js +14 -0
- package/src/ui.container-row/constants/index.js +5 -0
- package/src/ui.container-row/index.stories.js +81 -0
- package/src/ui.container-row/index.vue +45 -0
- package/src/ui.data-list/composables/attrs.composable.js +45 -0
- package/src/ui.data-list/configs/default.config.js +32 -0
- package/src/ui.data-list/constants/index.js +5 -0
- package/src/ui.data-list/index.stories.js +91 -0
- package/src/ui.data-list/index.vue +259 -0
- package/src/ui.data-table/Docs.mdx +16 -0
- package/src/ui.data-table/index.vue +5 -0
- package/src/ui.data-table-cell/configs/default.config.js +19 -0
- package/src/ui.dropdown-badge/Docs.mdx +16 -0
- package/src/ui.dropdown-badge/composables/attrs.composable.js +63 -0
- package/src/ui.dropdown-badge/configs/default.config.js +34 -0
- package/src/ui.dropdown-badge/constants/index.js +5 -0
- package/src/ui.dropdown-badge/index.stories.js +126 -0
- package/src/ui.dropdown-badge/index.vue +234 -0
- package/src/ui.dropdown-button/Docs.mdx +16 -0
- package/src/ui.dropdown-button/composables/attrs.composable.js +63 -0
- package/src/ui.dropdown-button/configs/default.config.js +37 -0
- package/src/ui.dropdown-button/constants/index.js +14 -0
- package/src/ui.dropdown-button/index.stories.js +158 -0
- package/src/ui.dropdown-button/index.vue +271 -0
- package/src/ui.dropdown-item/Docs.mdx +16 -0
- package/src/ui.dropdown-item/composables/attrs.composable.js +13 -0
- package/src/ui.dropdown-item/configs/default.config.js +16 -0
- package/src/ui.dropdown-item/index.stories.js +30 -0
- package/src/ui.dropdown-item/index.vue +53 -0
- package/src/ui.dropdown-link/Docs.mdx +16 -0
- package/src/ui.dropdown-link/composables/attrs.composable.js +65 -0
- package/src/ui.dropdown-link/configs/default.config.js +37 -0
- package/src/ui.dropdown-link/constants/index.js +5 -0
- package/src/ui.dropdown-link/index.stories.js +127 -0
- package/src/ui.dropdown-link/index.vue +261 -0
- package/src/ui.dropdown-list/Docs.mdx +16 -0
- package/src/ui.dropdown-list/composables/attrs.composable.js +93 -0
- package/src/ui.dropdown-list/composables/usePointer.js +77 -0
- package/src/ui.dropdown-list/configs/default.config.js +74 -0
- package/src/ui.dropdown-list/constants/index.js +5 -0
- package/src/ui.dropdown-list/index.stories.js +76 -0
- package/src/ui.dropdown-list/index.vue +284 -0
- package/src/ui.form-calendar/Docs.mdx +52 -0
- package/src/ui.form-calendar/components/DayView.vue +268 -0
- package/src/ui.form-calendar/components/MonthView.vue +114 -0
- package/src/ui.form-calendar/components/YearView.vue +118 -0
- package/src/ui.form-calendar/constants/index.js +71 -0
- package/src/ui.form-calendar/index.stories.js +59 -0
- package/src/ui.form-calendar/index.vue +743 -0
- package/src/ui.form-calendar/services/calendar.service.js +189 -0
- package/src/ui.form-calendar/services/formatting.service.js +180 -0
- package/src/ui.form-checkbox/Docs.mdx +16 -0
- package/src/ui.form-checkbox/configs/default.config.js +69 -0
- package/src/ui.form-checkbox/index.stories.js +147 -0
- package/src/ui.form-checkbox/index.vue +3 -2
- package/src/ui.form-checkbox-group/Docs.mdx +16 -0
- package/src/ui.form-checkbox-group/composables/attrs.composable.js +17 -0
- package/src/ui.form-checkbox-group/configs/default.config.js +5 -0
- package/src/ui.form-checkbox-group/constants/index.js +5 -0
- package/src/ui.form-checkbox-group/index.stories.js +45 -0
- package/src/ui.form-checkbox-group/index.vue +145 -0
- package/src/ui.form-checkbox-multi-state/Docs.mdx +16 -0
- package/src/ui.form-checkbox-multi-state/composables/attrs.composable.js +24 -0
- package/src/ui.form-checkbox-multi-state/configs/default.config.js +9 -0
- package/src/ui.form-checkbox-multi-state/constants/index.js +5 -0
- package/src/ui.form-checkbox-multi-state/index.stories.js +59 -0
- package/src/ui.form-checkbox-multi-state/index.vue +134 -0
- package/src/ui.form-color-picker/composables/attrs.composable.js +44 -0
- package/src/ui.form-color-picker/configs/default.config.js +52 -0
- package/src/ui.form-color-picker/constants/index.js +5 -0
- package/src/ui.form-color-picker/index.stories.js +63 -0
- package/src/ui.form-color-picker/index.vue +171 -0
- package/src/ui.form-date-picker/Docs.mdx +52 -0
- package/src/ui.form-date-picker/composables/attrs.composable.js +22 -0
- package/src/ui.form-date-picker/configs/default.config.js +26 -0
- package/src/ui.form-date-picker/constants/index.js +5 -0
- package/src/ui.form-date-picker/index.stories.js +132 -0
- package/src/ui.form-date-picker/index.vue +256 -0
- package/src/ui.form-date-picker-range/constants/index.js +23 -0
- package/src/ui.form-date-picker-range/index.stories.js +135 -0
- package/src/ui.form-date-picker-range/index.vue +937 -0
- package/src/ui.form-date-picker-range/services/dateRange.service.js +116 -0
- package/src/ui.form-input/Docs.mdx +16 -0
- package/src/ui.form-input/assets/fonts/text-security-disc.woff +0 -0
- package/src/ui.form-input/composables/attrs.composable.js +66 -0
- package/src/ui.form-input/configs/default.config.js +72 -0
- package/src/ui.form-input/constants/index.js +5 -0
- package/src/ui.form-input/index.stories.js +166 -0
- package/src/ui.form-input/index.vue +388 -0
- package/src/ui.form-input-file/composables/attrs.composable.js +82 -0
- package/src/ui.form-input-file/configs/default.config.js +59 -0
- package/src/ui.form-input-file/constants/index.js +5 -0
- package/src/ui.form-input-file/index.stories.js +86 -0
- package/src/ui.form-input-file/index.vue +387 -0
- package/src/ui.form-input-money/Docs.mdx +16 -0
- package/src/ui.form-input-money/composables/attrs.composable.js +13 -0
- package/src/ui.form-input-money/composables/useFormatCurrency.js +82 -0
- package/src/ui.form-input-money/configs/default.config.js +16 -0
- package/src/ui.form-input-money/constants/index.js +5 -0
- package/src/ui.form-input-money/index.stories.js +126 -0
- package/src/ui.form-input-money/index.vue +263 -0
- package/src/ui.form-input-money/services/format.service.js +72 -0
- package/src/ui.form-input-number/Docs.mdx +16 -0
- package/src/ui.form-input-number/composables/attrs.composable.js +47 -0
- package/src/ui.form-input-number/configs/default.config.js +33 -0
- package/src/ui.form-input-number/constants/index.js +5 -0
- package/src/ui.form-input-number/index.stories.js +103 -0
- package/src/ui.form-input-number/index.vue +162 -0
- package/src/ui.form-input-rating/composables/attrs.composable.js +34 -0
- package/src/ui.form-input-rating/constants/index.js +5 -0
- package/src/ui.form-input-rating/index.vue +1 -0
- package/src/ui.form-input-search/composables/attrs.composable.js +21 -0
- package/src/ui.form-input-search/configs/default.config.js +20 -0
- package/src/ui.form-input-search/constants/index.js +5 -0
- package/src/ui.form-input-search/index.stories.js +90 -0
- package/src/ui.form-input-search/index.vue +215 -0
- package/src/ui.form-label/Docs.mdx +16 -0
- package/src/ui.form-label/composables/attrs.composable.js +65 -0
- package/src/ui.form-label/configs/default.config.js +95 -0
- package/src/ui.form-label/constants/index.js +13 -0
- package/src/ui.form-label/index.stories.js +107 -0
- package/src/ui.form-label/index.vue +170 -0
- package/src/ui.form-radio/Docs.mdx +16 -0
- package/src/ui.form-radio/composables/attrs.composable.js +34 -0
- package/src/ui.form-radio/configs/default.config.js +47 -0
- package/src/ui.form-radio/constants/index.js +5 -0
- package/src/ui.form-radio/index.stories.js +71 -0
- package/src/ui.form-radio/index.vue +170 -0
- package/src/ui.form-radio-card/Docs.mdx +16 -0
- package/src/ui.form-radio-card/constants/index.js +5 -0
- package/src/ui.form-radio-card/index.stories.js +149 -0
- package/src/ui.form-radio-card/index.vue +1 -0
- package/src/ui.form-radio-card/services/variant.service.js +15 -0
- package/src/ui.form-radio-group/Docs.mdx +16 -0
- package/src/ui.form-radio-group/composables/attrs.composable.js +27 -0
- package/src/ui.form-radio-group/configs/default.config.js +18 -0
- package/src/ui.form-radio-group/constants/index.js +5 -0
- package/src/ui.form-radio-group/index.stories.js +42 -0
- package/src/ui.form-radio-group/index.vue +127 -0
- package/src/ui.form-select/Docs.mdx +16 -0
- package/src/ui.form-select/composables/attrs.composable.js +172 -0
- package/src/ui.form-select/configs/default.config.js +138 -0
- package/src/ui.form-select/constants/index.js +19 -0
- package/src/ui.form-select/index.stories.js +339 -0
- package/src/ui.form-select/index.vue +722 -0
- package/src/ui.form-select/services/select.service.js +98 -0
- package/src/ui.form-switch/composables/attrs.composable.js +77 -0
- package/src/ui.form-switch/configs/default.config.js +76 -0
- package/src/ui.form-switch/constants/index.js +5 -0
- package/src/ui.form-switch/index.stories.js +93 -0
- package/src/ui.form-switch/index.vue +199 -0
- package/src/ui.form-switch/services/variant.service.js +31 -0
- package/src/ui.form-textarea/Docs.mdx +16 -0
- package/src/ui.form-textarea/composables/attrs.composable.js +52 -0
- package/src/ui.form-textarea/configs/default.config.js +68 -0
- package/src/ui.form-textarea/constants/index.js +5 -0
- package/src/ui.form-textarea/index.stories.js +151 -0
- package/src/ui.form-textarea/index.vue +284 -0
- package/src/ui.image-avatar/composables/attrs.composable.js +34 -0
- package/src/ui.image-avatar/configs/default.config.js +42 -0
- package/src/ui.image-avatar/constants/index.js +5 -0
- package/src/ui.image-avatar/default-avatar.png +0 -0
- package/src/ui.image-avatar/index.stories.js +107 -0
- package/src/ui.image-avatar/index.vue +121 -0
- package/src/ui.image-icon/Docs.mdx +16 -0
- package/src/ui.image-icon/index.stories.js +110 -0
- package/src/ui.image-logo/configs/default.config.js +38 -0
- package/src/ui.image-logo/index.stories.js +84 -0
- package/src/ui.loader-top/components/TopProgress.vue +277 -0
- package/src/ui.navigation-pagination/composables/attrs.composable.js +41 -0
- package/src/ui.navigation-pagination/configs/default.config.js +24 -0
- package/src/ui.navigation-pagination/constants/index.js +8 -0
- package/src/ui.navigation-pagination/index.stories.js +52 -0
- package/src/ui.navigation-pagination/index.vue +276 -0
- package/src/ui.navigation-stepper/composables/attrs.composable.js +25 -0
- package/src/ui.navigation-stepper/configs/default.config.js +13 -0
- package/src/ui.navigation-stepper/constants/index.js +5 -0
- package/src/ui.navigation-stepper/index.stories.js +30 -0
- package/src/ui.navigation-stepper/index.vue +126 -0
- package/src/ui.navigation-tab/composables/attrs.composable.js +30 -0
- package/src/ui.navigation-tab/configs/default.config.js +22 -0
- package/src/ui.navigation-tab/constants/index.js +5 -0
- package/src/ui.navigation-tab/index.stories.js +57 -0
- package/src/ui.navigation-tab/index.vue +85 -0
- package/src/ui.navigation-tabs/composables/attrs.composable.js +24 -0
- package/src/ui.navigation-tabs/configs/default.config.js +14 -0
- package/src/ui.navigation-tabs/constants/index.js +5 -0
- package/src/ui.navigation-tabs/index.stories.js +69 -0
- package/src/ui.navigation-tabs/index.vue +99 -0
- package/src/ui.notify/index.stories.js +102 -0
- package/src/ui.other-dot/composables/attrs.composable.js +32 -0
- package/src/ui.other-dot/configs/default.config.js +21 -0
- package/src/ui.other-dot/constants/index.js +5 -0
- package/src/ui.other-dot/index.stories.js +77 -0
- package/src/ui.other-dot/index.vue +52 -0
- package/src/ui.other-loader/composables/attrs.composable.js +51 -0
- package/src/ui.other-loader/configs/default.config.js +47 -0
- package/src/ui.other-loader/constants/index.js +5 -0
- package/src/ui.other-loader/index.stories.js +78 -0
- package/src/ui.other-loader/index.vue +136 -0
- package/src/ui.text-alert/composables/attrs.composable.js +48 -0
- package/src/ui.text-alert/configs/default.config.js +51 -0
- package/src/ui.text-alert/constatns/index.js +5 -0
- package/src/ui.text-alert/index.stories.js +157 -0
- package/src/ui.text-alert/index.vue +122 -0
- package/src/ui.text-badge/Docs.mdx +16 -0
- package/src/ui.text-badge/composables/attrs.composable.js +49 -0
- package/src/ui.text-badge/configs/default.config.js +51 -0
- package/src/ui.text-badge/constants/index.js +5 -0
- package/src/ui.text-badge/index.stories.js +190 -0
- package/src/ui.text-badge/index.vue +120 -0
- package/src/ui.text-block/composables/attrs.composable.js +31 -0
- package/src/ui.text-block/configs/default.config.js +35 -0
- package/src/ui.text-block/constatns/index.js +5 -0
- package/src/ui.text-block/index.stories.js +112 -0
- package/src/ui.text-block/index.vue +76 -0
- package/src/ui.text-empty/Docs.mdx +16 -0
- package/src/ui.text-empty/configs/default.config.js +30 -0
- package/src/ui.text-empty/index.stories.js +106 -0
- package/src/ui.text-empty/index.vue +1 -0
- package/src/ui.text-file/composables/attrs.composable.js +37 -0
- package/src/ui.text-file/configs/default.config.js +15 -0
- package/src/ui.text-file/index.stories.js +29 -0
- package/src/ui.text-file/index.vue +93 -0
- package/src/ui.text-files/composables/attrs.composable.js +19 -0
- package/src/ui.text-files/configs/default.config.js +9 -0
- package/src/ui.text-files/constants/index.js +5 -0
- package/src/ui.text-files/index.stories.js +32 -0
- package/src/ui.text-files/index.vue +87 -0
- package/src/ui.text-header/Docs.mdx +16 -0
- package/src/ui.text-header/composables/attrs.composable.js +34 -0
- package/src/ui.text-header/constants/index.js +5 -0
- package/src/ui.text-header/index.stories.js +106 -0
- package/src/ui.text-header/index.vue +83 -0
- package/src/ui.text-money/Docs.mdx +16 -0
- package/src/ui.text-money/assets/credit.svg +7 -0
- package/src/ui.text-money/assets/debit.svg +12 -0
- package/src/ui.text-money/composables/attrs.composable.js +65 -0
- package/src/ui.text-money/constants/index.js +7 -0
- package/src/ui.text-money/index.stories.js +265 -0
- package/src/ui.text-money/index.vue +204 -0
- package/src/ui.text-money/services/money.services.js +24 -0
- package/src/ui.viewport/index.vue +78 -0
- package/vite.config.mjs +5 -4
- package/web-types.json +1 -1
- package/.web-types-gen/package.json +0 -3
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :data-cy="dataCy" v-bind="wrapperAttrs">
|
|
3
|
+
<div v-bind="pageAttrs">
|
|
4
|
+
<div v-if="isShownHeader" v-bind="headerAttrs">
|
|
5
|
+
<div v-bind="headerLeftAttrs">
|
|
6
|
+
<!-- @slot Use it to add something before left side of the header. -->
|
|
7
|
+
<slot name="header-left-before" />
|
|
8
|
+
|
|
9
|
+
<!-- @slot Use it to customise left side of the header. -->
|
|
10
|
+
<slot name="header-left">
|
|
11
|
+
<div v-bind="headerLeftFallbackAttrs">
|
|
12
|
+
<ULink
|
|
13
|
+
v-if="isShownArrowButton"
|
|
14
|
+
size="xs"
|
|
15
|
+
color="gray"
|
|
16
|
+
:route="backRoute"
|
|
17
|
+
v-bind="backLinkAttrs"
|
|
18
|
+
>
|
|
19
|
+
<UIcon
|
|
20
|
+
:name="config.backLinkIconName"
|
|
21
|
+
size="xs"
|
|
22
|
+
color="gray"
|
|
23
|
+
v-bind="backLinkIconAttrs"
|
|
24
|
+
/>
|
|
25
|
+
{{ backRoute.title }}
|
|
26
|
+
</ULink>
|
|
27
|
+
|
|
28
|
+
<UHeader :label="title" :size="titleSize" v-bind="titleAttrs" />
|
|
29
|
+
<div v-if="description" v-bind="descriptionAttrs" v-text="description" />
|
|
30
|
+
</div>
|
|
31
|
+
</slot>
|
|
32
|
+
|
|
33
|
+
<!-- @slot Use it to add something after left side of the header. -->
|
|
34
|
+
<slot name="header-left-after" />
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div v-bind="headerRightAttrs">
|
|
38
|
+
<!-- @slot Use it to customise right side of the header. -->
|
|
39
|
+
<slot name="header-right" />
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div>
|
|
44
|
+
<!-- @slot Use it to add main content. -->
|
|
45
|
+
<slot />
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div v-if="isShownFooterSlot" class="vueless-page-footer" v-bind="footerAttrs">
|
|
49
|
+
<div class="vueless-page-footer-left" v-bind="footerLeftAttrs">
|
|
50
|
+
<!-- @slot Use it to add something to the left side of the footer. -->
|
|
51
|
+
<slot name="footer-left" />
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="vueless-page-footer-right" v-bind="footerRightAttrs">
|
|
55
|
+
<!-- @slot Use it to add something to the right side of the footer. -->
|
|
56
|
+
<slot name="footer-right" />
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<div v-if="fixedRounding && !isMobileDevice" v-bind="rightRoundingWrapperAttrs">
|
|
62
|
+
<div v-bind="rightRoundingAttrs" />
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</template>
|
|
66
|
+
|
|
67
|
+
<script setup>
|
|
68
|
+
import { computed, useSlots, onMounted } from "vue";
|
|
69
|
+
import { useStore } from "vuex";
|
|
70
|
+
|
|
71
|
+
import ULink from "../ui.button-link/index.vue";
|
|
72
|
+
import UIcon from "../ui.image-icon/index.vue";
|
|
73
|
+
import UHeader from "../ui.text-header/index.vue";
|
|
74
|
+
|
|
75
|
+
import UIService from "../service.ui";
|
|
76
|
+
|
|
77
|
+
import defaultConfig from "./configs/default.config";
|
|
78
|
+
import { UPage } from "./constants";
|
|
79
|
+
import { useAttrs } from "./composables/attrs.composable";
|
|
80
|
+
|
|
81
|
+
const slots = useSlots();
|
|
82
|
+
const store = useStore();
|
|
83
|
+
|
|
84
|
+
/* Should be a string for correct web-types gen */
|
|
85
|
+
defineOptions({ name: "UPage", inheritAttrs: false });
|
|
86
|
+
|
|
87
|
+
const props = defineProps({
|
|
88
|
+
/**
|
|
89
|
+
* The width of the page.
|
|
90
|
+
* @values xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl, wide
|
|
91
|
+
*/
|
|
92
|
+
width: {
|
|
93
|
+
type: String,
|
|
94
|
+
default: UIService.get(defaultConfig, UPage).default.width,
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Set page title.
|
|
99
|
+
*/
|
|
100
|
+
title: {
|
|
101
|
+
type: String,
|
|
102
|
+
default: "",
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Set page title size.
|
|
107
|
+
* @values xs, sm, md, lg, xl, 2xl
|
|
108
|
+
*/
|
|
109
|
+
titleSize: {
|
|
110
|
+
type: String,
|
|
111
|
+
default: UIService.get(defaultConfig, UPage).default.titleSize,
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Set page description.
|
|
116
|
+
*/
|
|
117
|
+
description: {
|
|
118
|
+
type: String,
|
|
119
|
+
default: "",
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Set Vue router route params for back arrow.
|
|
124
|
+
*/
|
|
125
|
+
backRoute: {
|
|
126
|
+
type: Object,
|
|
127
|
+
default: () => ({}),
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Set gray background color.
|
|
132
|
+
*/
|
|
133
|
+
gray: {
|
|
134
|
+
type: Boolean,
|
|
135
|
+
default: UIService.get(defaultConfig, UPage).default.gray,
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Reverse left and right footer blocks (in a mobile version only).
|
|
140
|
+
*/
|
|
141
|
+
mobileFooterReverse: {
|
|
142
|
+
type: Boolean,
|
|
143
|
+
default: UIService.get(defaultConfig, UPage).default.mobileFooterReverse,
|
|
144
|
+
},
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Stick right page rounding.
|
|
148
|
+
*/
|
|
149
|
+
fixedRounding: {
|
|
150
|
+
type: Boolean,
|
|
151
|
+
default: UIService.get(defaultConfig, UPage).default.fixedRounding,
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Sets component ui config object.
|
|
156
|
+
*/
|
|
157
|
+
config: {
|
|
158
|
+
type: Object,
|
|
159
|
+
default: () => ({}),
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Sets data-cy attribute for automated testing.
|
|
164
|
+
*/
|
|
165
|
+
dataCy: {
|
|
166
|
+
type: String,
|
|
167
|
+
default: "",
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
const isMobileDevice = computed(() => {
|
|
172
|
+
return store.getters["breakpoint/isMobileDevice"];
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const {
|
|
176
|
+
config,
|
|
177
|
+
wrapperAttrs,
|
|
178
|
+
pageAttrs,
|
|
179
|
+
rightRoundingAttrs,
|
|
180
|
+
titleAttrs,
|
|
181
|
+
backLinkAttrs,
|
|
182
|
+
backLinkIconAttrs,
|
|
183
|
+
headerAttrs,
|
|
184
|
+
headerLeftFallbackAttrs,
|
|
185
|
+
descriptionAttrs,
|
|
186
|
+
headerLeftAttrs,
|
|
187
|
+
headerRightAttrs,
|
|
188
|
+
footerAttrs,
|
|
189
|
+
footerLeftAttrs,
|
|
190
|
+
footerRightAttrs,
|
|
191
|
+
rightRoundingWrapperAttrs,
|
|
192
|
+
hasSlotContent,
|
|
193
|
+
} = useAttrs(props, { isMobileDevice });
|
|
194
|
+
|
|
195
|
+
const isShownHeader = computed(() => {
|
|
196
|
+
const isHeaderLeftSlot = hasSlotContent(slots["header-left"]);
|
|
197
|
+
const isHeaderRightSlot = hasSlotContent(slots["header-left"]);
|
|
198
|
+
|
|
199
|
+
return props.title || isHeaderLeftSlot || isHeaderRightSlot;
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
const isShownFooterSlot = computed(() => {
|
|
203
|
+
return hasSlotContent(slots["footer-left"]) || hasSlotContent(slots["footer-right"]);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
const isShownArrowButton = computed(() => {
|
|
207
|
+
return Boolean(Object.keys(props.backRoute).length);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
onMounted(() => {
|
|
211
|
+
const classes = props.gray
|
|
212
|
+
? config.value.htmlBody.split(" ").filter((item) => Boolean(item))
|
|
213
|
+
: "";
|
|
214
|
+
|
|
215
|
+
document.querySelector("body").classList.add(...classes);
|
|
216
|
+
});
|
|
217
|
+
</script>
|
|
218
|
+
|
|
219
|
+
<style lang="postcss" scoped>
|
|
220
|
+
/**
|
|
221
|
+
* TODO: Move this styles to global vueless config using tailwind group class and remove footer classes
|
|
222
|
+
*/
|
|
223
|
+
.vueless-page {
|
|
224
|
+
&-footer {
|
|
225
|
+
&-left:deep(.vueless-dropdown-button) {
|
|
226
|
+
@apply !block;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
&-right,
|
|
230
|
+
&-left {
|
|
231
|
+
:deep(.vueless-dropdown-button) {
|
|
232
|
+
.dropdown-block,
|
|
233
|
+
.vueless-dropdown-button-list {
|
|
234
|
+
@apply max-md:w-full;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.vueless-dropdown-item {
|
|
238
|
+
@apply max-md:text-center;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.dropdown-list {
|
|
242
|
+
@apply mb-[calc(theme("spacing.mobile-menu-height")+3rem)];
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
&:deep(.vueless-dropdown-tag, .vueless-dropdown-link, .vueless-dropdown-button) {
|
|
247
|
+
@apply w-full md:w-auto;
|
|
248
|
+
|
|
249
|
+
.dropdown-list {
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.dropdown-wrapper-list {
|
|
253
|
+
@apply mb-2 md:mb-0;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.dropdown-block {
|
|
257
|
+
@apply relative md:absolute;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.dropdown-list-right {
|
|
261
|
+
@apply w-full text-center;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.dropdown-wrapper {
|
|
265
|
+
@apply block w-full;
|
|
266
|
+
|
|
267
|
+
.vueless-svg-icon {
|
|
268
|
+
@apply right-auto;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
</style>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
|
|
2
|
+
import { getSource } from "../service.storybook";
|
|
3
|
+
|
|
4
|
+
import * as stories from "./index.stories";
|
|
5
|
+
import defaultConfig from "./configs/default.config?raw"
|
|
6
|
+
|
|
7
|
+
<Meta of={stories} />
|
|
8
|
+
<Title of={stories} />
|
|
9
|
+
<Subtitle of={stories} />
|
|
10
|
+
<Description of={stories} />
|
|
11
|
+
<Primary of={stories} />
|
|
12
|
+
<Controls of={stories.Default} />
|
|
13
|
+
<Stories of={stories} />
|
|
14
|
+
|
|
15
|
+
## **Default config**
|
|
16
|
+
<Source code={getSource(defaultConfig)} language="jsx" dark />
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import useUI from "../../composable.ui";
|
|
2
|
+
import defaultConfig from "../configs/default.config";
|
|
3
|
+
import { cva } from "../../service.ui";
|
|
4
|
+
import { computed } from "vue";
|
|
5
|
+
|
|
6
|
+
export function useAttrs(props) {
|
|
7
|
+
const { config, getAttrs } = useUI(defaultConfig, () => props.config);
|
|
8
|
+
const { wrapper } = config.value;
|
|
9
|
+
|
|
10
|
+
const cvaWrapper = cva({
|
|
11
|
+
base: wrapper.base,
|
|
12
|
+
variants: wrapper.variants,
|
|
13
|
+
compoundVariants: wrapper.compoundVariants,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const wrapperClasses = computed(() => cvaWrapper({ noMobile: props.noMobile }));
|
|
17
|
+
|
|
18
|
+
const wrapperAttrs = getAttrs("wrapper", { classes: wrapperClasses });
|
|
19
|
+
|
|
20
|
+
return {
|
|
21
|
+
wrapperAttrs,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default /*tw*/ {
|
|
2
|
+
wrapper: {
|
|
3
|
+
base: "flex items-start w-full",
|
|
4
|
+
variants: {
|
|
5
|
+
noMobile: {
|
|
6
|
+
true: "flex-row space-x-4",
|
|
7
|
+
false: "flex-col md:flex-row space-y-4 md:space-y-0 md:space-x-4",
|
|
8
|
+
},
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
defaultVariants: {
|
|
12
|
+
noMobile: false,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { getArgTypes } from "../service.storybook";
|
|
2
|
+
|
|
3
|
+
import URow from "../ui.container-row";
|
|
4
|
+
import UInput from "../ui.form-input";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
id: "5020",
|
|
8
|
+
title: "Containers / Row",
|
|
9
|
+
component: URow,
|
|
10
|
+
argTypes: {
|
|
11
|
+
...getArgTypes(URow.name),
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const DefaultTemplate = (args) => ({
|
|
16
|
+
components: { URow, UInput },
|
|
17
|
+
setup() {
|
|
18
|
+
return { args };
|
|
19
|
+
},
|
|
20
|
+
template: `
|
|
21
|
+
<URow v-bind="args">
|
|
22
|
+
${args.slotTemplate}
|
|
23
|
+
</URow>
|
|
24
|
+
`,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export const Default = DefaultTemplate.bind({});
|
|
28
|
+
Default.args = {
|
|
29
|
+
slotTemplate: `
|
|
30
|
+
<UInput label="Name" />
|
|
31
|
+
<UInput label="Lastname" />
|
|
32
|
+
`,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const noMobile = DefaultTemplate.bind({});
|
|
36
|
+
noMobile.args = {
|
|
37
|
+
noMobile: true,
|
|
38
|
+
slotTemplate: `
|
|
39
|
+
<UInput label="Name" />
|
|
40
|
+
<UInput label="Lastname" />
|
|
41
|
+
`,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const nestedRows = DefaultTemplate.bind({});
|
|
45
|
+
nestedRows.args = {
|
|
46
|
+
slotTemplate: `
|
|
47
|
+
<UInput label="Name" />
|
|
48
|
+
|
|
49
|
+
<URow>
|
|
50
|
+
<UInput label="Lastname" />
|
|
51
|
+
<UInput label="Age"/>
|
|
52
|
+
</URow>
|
|
53
|
+
`,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export const textBlocks = DefaultTemplate.bind({});
|
|
57
|
+
textBlocks.args = {
|
|
58
|
+
slotTemplate: `
|
|
59
|
+
<p>
|
|
60
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
|
|
61
|
+
sed do eiusmod tempor incididunt ut labore et dolore magna
|
|
62
|
+
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
|
|
63
|
+
ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
64
|
+
Duis aute irure dolor in reprehenderit in voluptate velit
|
|
65
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
|
66
|
+
occaecat cupidatat non proident, sunt in culpa qui officia
|
|
67
|
+
deserunt mollit anim id est laborum.
|
|
68
|
+
</p>
|
|
69
|
+
|
|
70
|
+
<p>
|
|
71
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
|
|
72
|
+
sed do eiusmod tempor incididunt ut labore et dolore magna
|
|
73
|
+
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
|
|
74
|
+
ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
75
|
+
Duis aute irure dolor in reprehenderit in voluptate velit
|
|
76
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
|
77
|
+
occaecat cupidatat non proident, sunt in culpa qui officia
|
|
78
|
+
deserunt mollit anim id est laborum.
|
|
79
|
+
</p>
|
|
80
|
+
`,
|
|
81
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :data-cy="dataCy" v-bind="wrapperAttrs">
|
|
3
|
+
<!-- @slot Use it to add something inside. -->
|
|
4
|
+
<slot />
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script setup>
|
|
9
|
+
import UIService from "../service.ui";
|
|
10
|
+
|
|
11
|
+
import { URow } from "./constants";
|
|
12
|
+
import defaultConfig from "./configs/default.config";
|
|
13
|
+
import { useAttrs } from "./composables/attrs.composable";
|
|
14
|
+
|
|
15
|
+
/* Should be a string for correct web-types gen */
|
|
16
|
+
defineOptions({ name: "URow", inheritAttrs: false });
|
|
17
|
+
|
|
18
|
+
const props = defineProps({
|
|
19
|
+
/**
|
|
20
|
+
* Disables mobile adaptivity.
|
|
21
|
+
*/
|
|
22
|
+
noMobile: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: UIService.get(defaultConfig, URow).default.noMobile,
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Sets component ui config object.
|
|
29
|
+
*/
|
|
30
|
+
config: {
|
|
31
|
+
type: Object,
|
|
32
|
+
default: () => ({}),
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Sets data-cy attribute for automated testing.
|
|
37
|
+
*/
|
|
38
|
+
dataCy: {
|
|
39
|
+
type: String,
|
|
40
|
+
default: "",
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const { wrapperAttrs } = useAttrs(props);
|
|
45
|
+
</script>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import useUI from "../../composable.ui";
|
|
2
|
+
import defaultConfig from "../configs/default.config";
|
|
3
|
+
import { computed } from "vue";
|
|
4
|
+
import { cx } from "../../service.ui";
|
|
5
|
+
|
|
6
|
+
export function useAttrs(props) {
|
|
7
|
+
const { config, getAttrs, hasSlotContent } = useUI(defaultConfig, () => props.config);
|
|
8
|
+
const { titleCrossed } = config.value;
|
|
9
|
+
|
|
10
|
+
const wrapperAttrs = getAttrs("wrapper");
|
|
11
|
+
const dividerAttrs = getAttrs("divider", { isComponent: true });
|
|
12
|
+
const emptyAttrs = getAttrs("empty", { isComponent: true });
|
|
13
|
+
const draggableAttrs = getAttrs("draggable");
|
|
14
|
+
const itemWrapperAttrs = getAttrs("itemWrapper");
|
|
15
|
+
const itemAttrs = getAttrs("item");
|
|
16
|
+
const customActionsAttrs = getAttrs("customActions");
|
|
17
|
+
const iconDeleteAttrs = getAttrs("iconDelete", { isComponent: true });
|
|
18
|
+
const iconEditAttrs = getAttrs("iconEdit", { isComponent: true });
|
|
19
|
+
const iconDragAttrs = getAttrs("iconDrag", { isComponent: true });
|
|
20
|
+
const nestedAttrs = getAttrs("nested", { isComponent: true });
|
|
21
|
+
|
|
22
|
+
const titleRaw = getAttrs("title");
|
|
23
|
+
|
|
24
|
+
const titleAttrs = computed(() => (isActive) => ({
|
|
25
|
+
...titleRaw,
|
|
26
|
+
class: cx([titleRaw.value.class, isActive !== undefined && !isActive ? titleCrossed : ""]),
|
|
27
|
+
}));
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
config,
|
|
31
|
+
wrapperAttrs,
|
|
32
|
+
dividerAttrs,
|
|
33
|
+
emptyAttrs,
|
|
34
|
+
draggableAttrs,
|
|
35
|
+
nestedAttrs,
|
|
36
|
+
itemWrapperAttrs,
|
|
37
|
+
itemAttrs,
|
|
38
|
+
iconDragAttrs,
|
|
39
|
+
titleAttrs,
|
|
40
|
+
customActionsAttrs,
|
|
41
|
+
iconDeleteAttrs,
|
|
42
|
+
iconEditAttrs,
|
|
43
|
+
hasSlotContent,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export default /*tw*/ {
|
|
2
|
+
wrapper: "",
|
|
3
|
+
draggable: "",
|
|
4
|
+
draggableDrag: "bg-gray-100",
|
|
5
|
+
draggableGhost: "bg-opacity-50",
|
|
6
|
+
itemWrapper: "group/item-wrapper",
|
|
7
|
+
item: `
|
|
8
|
+
group/item
|
|
9
|
+
border-b border-gray-100
|
|
10
|
+
group-last/item-wrapper:border-b-0 group-[]/nested:group-last/item-wrapper:border-b
|
|
11
|
+
py-4 space-x-4 flex flex-auto items-center justify-between
|
|
12
|
+
`,
|
|
13
|
+
iconDrag: "icon-drag cursor-move opacity-100 fill-gray-400 md:fill-gray-500",
|
|
14
|
+
iconDragName: "drag_indicator",
|
|
15
|
+
title: "text-base font-normal text-gray-900 flex-auto pt-px",
|
|
16
|
+
titleCrossed: "line-through",
|
|
17
|
+
customActions: `
|
|
18
|
+
space-x-5 opacity-50 md:flex md:items-center md:opacity-0
|
|
19
|
+
group-hover/item:md:block group-hover/item:opacity-100
|
|
20
|
+
`,
|
|
21
|
+
iconDelete: "hidden md:block md:opacity-0 group-hover/item:md:opacity-100",
|
|
22
|
+
iconDeleteName: "delete",
|
|
23
|
+
iconEdit: "fill-gray-500 opacity-50",
|
|
24
|
+
iconEditName: "edit_note",
|
|
25
|
+
nested: "group/nested ml-6",
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
animationDuration: 200,
|
|
28
|
+
nesting: false,
|
|
29
|
+
upperlined: false,
|
|
30
|
+
hideEmptyStateForNesting: false,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { getArgTypes, getSlotNames } from "../service.storybook";
|
|
2
|
+
|
|
3
|
+
import UDataList from "../ui.data-list";
|
|
4
|
+
import UIcon from "../ui.image-icon";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
id: "7020",
|
|
8
|
+
title: "Data / Data List",
|
|
9
|
+
component: UDataList,
|
|
10
|
+
args: {
|
|
11
|
+
list: [
|
|
12
|
+
{
|
|
13
|
+
name: "name 1",
|
|
14
|
+
id: 1,
|
|
15
|
+
children: [
|
|
16
|
+
{ name: "name 1.1", id: 1.1 },
|
|
17
|
+
{ name: "name 1.2", id: 1.2 },
|
|
18
|
+
{ name: "name 1.3", id: 1.3 },
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "name 2",
|
|
23
|
+
id: 2,
|
|
24
|
+
children: [
|
|
25
|
+
{ name: "name 2.1", id: 2.1 },
|
|
26
|
+
{ name: "name 2.2", id: 2.2 },
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "name 3",
|
|
31
|
+
id: 3,
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
argTypes: {
|
|
36
|
+
...getArgTypes(UDataList.name),
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const DefaultTemplate = (args) => ({
|
|
41
|
+
components: { UDataList },
|
|
42
|
+
setup() {
|
|
43
|
+
const slots = getSlotNames(UDataList.name);
|
|
44
|
+
|
|
45
|
+
return { args, slots };
|
|
46
|
+
},
|
|
47
|
+
template: `
|
|
48
|
+
<UDataList v-bind="args" @dragSort="onDragSort"/>
|
|
49
|
+
`,
|
|
50
|
+
methods: {
|
|
51
|
+
onDragSort(value) {
|
|
52
|
+
this.list = value;
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const SlotTemplate = (args) => ({
|
|
58
|
+
components: { UDataList, UIcon },
|
|
59
|
+
setup() {
|
|
60
|
+
return { args };
|
|
61
|
+
},
|
|
62
|
+
template: `
|
|
63
|
+
<UDataList v-bind="args" @dragSort="onDragSort">
|
|
64
|
+
${args.slotTemplate}
|
|
65
|
+
</UDataList>
|
|
66
|
+
`,
|
|
67
|
+
methods: {
|
|
68
|
+
onDragSort(value) {
|
|
69
|
+
this.list = value;
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
export const Default = DefaultTemplate.bind({});
|
|
75
|
+
Default.args = {};
|
|
76
|
+
|
|
77
|
+
export const nesting = DefaultTemplate.bind({});
|
|
78
|
+
nesting.args = { nesting: true };
|
|
79
|
+
|
|
80
|
+
export const slotIcons = SlotTemplate.bind({});
|
|
81
|
+
slotIcons.args = {
|
|
82
|
+
slotTemplate: `
|
|
83
|
+
<template #icons>
|
|
84
|
+
<UIcon
|
|
85
|
+
name="star"
|
|
86
|
+
color="red"
|
|
87
|
+
size="md"
|
|
88
|
+
/>
|
|
89
|
+
</template>
|
|
90
|
+
`,
|
|
91
|
+
};
|