@vc-shell/framework 1.0.170 → 1.0.171
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/CHANGELOG.md +21 -0
- package/core/composables/useNotifications/index.ts +12 -5
- package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/framework.js +20946 -19814
- package/dist/index.css +1 -1
- package/dist/shared/components/change-password/change-password.vue.d.ts.map +1 -1
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts +29 -0
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts.map +1 -0
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts +32 -0
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts.map +1 -0
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/index.d.ts +4 -4
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/index.d.ts +1 -28
- package/dist/ui/components/atoms/vc-icon/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +8 -8
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +52 -42
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
- package/package.json +5 -4
- package/shared/components/change-password/change-password.vue +17 -11
- package/shared/components/common/popup/vc-popup-error.vue +44 -0
- package/shared/components/common/popup/vc-popup-warning.vue +47 -0
- package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue +1 -0
- package/shared/components/popup-handler/composables/usePopup/index.ts +7 -8
- package/shared/components/user-dropdown-button/user-dropdown-button.vue +1 -0
- package/shared/modules/dynamic/pages/dynamic-blade-form.vue +21 -2
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +0 -1
- package/ui/components/atoms/vc-container/vc-container.vue +1 -0
- package/ui/components/atoms/vc-icon/index.ts +1 -3
- package/ui/components/molecules/vc-slider/vc-slider.vue +4 -4
- package/ui/components/organisms/vc-blade/vc-blade.vue +4 -5
- package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue +59 -45
- package/ui/components/organisms/vc-popup/vc-popup.vue +173 -141
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts +0 -17
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.d.ts +0 -20
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.d.ts.map +0 -1
- package/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue +0 -31
- package/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue +0 -36
package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue
CHANGED
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
<VcPopup
|
|
3
3
|
v-if="currentImage"
|
|
4
4
|
:title="currentImage?.title"
|
|
5
|
+
is-mobile-fullscreen
|
|
6
|
+
is-fullscreen
|
|
7
|
+
modal-width="tw-w-full"
|
|
5
8
|
@close="$emit('close')"
|
|
9
|
+
@keydown.passive="handleKeyDown"
|
|
6
10
|
>
|
|
7
|
-
<template #
|
|
11
|
+
<template #header>
|
|
8
12
|
<div>
|
|
9
13
|
<span>{{ currentImage.name }} (</span>
|
|
10
14
|
<VcLink @click="copyLink(currentImage.url ?? '')">{{
|
|
@@ -13,53 +17,55 @@
|
|
|
13
17
|
<span>)</span>
|
|
14
18
|
</div>
|
|
15
19
|
</template>
|
|
16
|
-
<
|
|
17
|
-
<div class="tw-
|
|
18
|
-
<div
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
<template #content>
|
|
21
|
+
<div class="tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center">
|
|
22
|
+
<div class="tw-box-border p-5 tw-grow tw-basis-0 tw-w-full">
|
|
23
|
+
<div
|
|
24
|
+
class="tw-w-full tw-h-full tw-box-border"
|
|
25
|
+
:style="imageHandler"
|
|
26
|
+
></div>
|
|
27
|
+
<button
|
|
28
|
+
v-if="localIndex > 0"
|
|
29
|
+
class="tw-absolute tw-top-2/4 -tw-mt-9 tw-h-[72px] tw-w-[72px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-[#f1f6fa] tw-cursor-pointer tw-text-[#a1c0d4] [--icon-size-xl: 36px] hover:tw-shadow-[0_0_20px_rgba(31,40,50,0.15)] tw-left-[25px]"
|
|
30
|
+
@click="localIndex--"
|
|
31
|
+
>
|
|
32
|
+
<VcIcon
|
|
33
|
+
icon="fas fa-arrow-left"
|
|
34
|
+
size="xl"
|
|
35
|
+
></VcIcon>
|
|
36
|
+
</button>
|
|
37
|
+
<button
|
|
38
|
+
v-if="localIndex < images.length - 1"
|
|
39
|
+
class="tw-absolute tw-top-2/4 -tw-mt-9 tw-h-[72px] tw-w-[72px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-[#f1f6fa] tw-cursor-pointer tw-text-[#a1c0d4] [--icon-size-xl: 36px] hover:tw-shadow-[0_0_20px_rgba(31,40,50,0.15)] tw-right-[25px]"
|
|
40
|
+
@click="localIndex++"
|
|
41
|
+
>
|
|
42
|
+
<VcIcon
|
|
43
|
+
icon="fas fa-arrow-right"
|
|
44
|
+
size="xl"
|
|
45
|
+
></VcIcon>
|
|
46
|
+
</button>
|
|
31
47
|
</div>
|
|
32
|
-
<div
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
<div class="tw-p-4 tw-pb-[40px] tw-max-w-full tw-overflow-x-auto tw-box-border tw-shrink tw-flex">
|
|
49
|
+
<div
|
|
50
|
+
v-for="(item, i) in images"
|
|
51
|
+
:key="i"
|
|
52
|
+
class="tw-m-1 tw-opacity-60"
|
|
53
|
+
:class="{
|
|
54
|
+
'vc-gallery-preview__images-item_current': i === localIndex,
|
|
55
|
+
}"
|
|
56
|
+
>
|
|
57
|
+
<VcImage
|
|
58
|
+
:src="item.url"
|
|
59
|
+
size="xl"
|
|
60
|
+
background="contain"
|
|
61
|
+
:bordered="true"
|
|
62
|
+
:clickable="true"
|
|
63
|
+
@click="localIndex = i"
|
|
64
|
+
></VcImage>
|
|
65
|
+
</div>
|
|
41
66
|
</div>
|
|
42
67
|
</div>
|
|
43
|
-
|
|
44
|
-
<div
|
|
45
|
-
v-for="(item, i) in images"
|
|
46
|
-
:key="i"
|
|
47
|
-
class="tw-m-1 tw-opacity-60"
|
|
48
|
-
:class="{
|
|
49
|
-
'vc-gallery-preview__images-item_current': i === localIndex,
|
|
50
|
-
}"
|
|
51
|
-
>
|
|
52
|
-
<VcImage
|
|
53
|
-
:src="item.url"
|
|
54
|
-
size="xl"
|
|
55
|
-
background="contain"
|
|
56
|
-
:bordered="true"
|
|
57
|
-
:clickable="true"
|
|
58
|
-
@click="localIndex = i"
|
|
59
|
-
></VcImage>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
68
|
+
</template>
|
|
63
69
|
</VcPopup>
|
|
64
70
|
</template>
|
|
65
71
|
|
|
@@ -103,6 +109,14 @@ const copyLink = (link: string) => {
|
|
|
103
109
|
navigator.clipboard?.writeText(link);
|
|
104
110
|
}
|
|
105
111
|
};
|
|
112
|
+
|
|
113
|
+
function handleKeyDown(event: KeyboardEvent) {
|
|
114
|
+
if (event.key === "ArrowLeft" && localIndex.value > 0) {
|
|
115
|
+
localIndex.value--;
|
|
116
|
+
} else if (event.key === "ArrowRight" && localIndex.value < props.images.length - 1) {
|
|
117
|
+
localIndex.value++;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
106
120
|
</script>
|
|
107
121
|
|
|
108
122
|
<style lang="scss">
|
|
@@ -1,161 +1,193 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<TransitionRoot
|
|
3
|
+
appear
|
|
4
|
+
show
|
|
5
|
+
as="template"
|
|
5
6
|
>
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
7
|
+
<Dialog
|
|
8
|
+
as="div"
|
|
9
|
+
class="tw-relative tw-z-10"
|
|
10
|
+
@close="closeModal"
|
|
11
|
+
>
|
|
12
|
+
<TransitionChild
|
|
13
|
+
as="template"
|
|
14
|
+
enter="tw-duration-300 tw-ease-out"
|
|
15
|
+
enter-from="tw-opacity-0"
|
|
16
|
+
enter-to="tw-opacity-100"
|
|
17
|
+
leave="tw-duration-200 tw-ease-in"
|
|
18
|
+
leave-from="tw-opacity-100"
|
|
19
|
+
leave-to="tw-opacity-0"
|
|
20
|
+
>
|
|
21
|
+
<div class="tw-fixed tw-inset-0 tw-bg-black/25" />
|
|
22
|
+
</TransitionChild>
|
|
23
|
+
|
|
24
|
+
<div
|
|
25
|
+
class="tw-fixed tw-inset-0 tw-overflow-y-auto"
|
|
26
|
+
:class="{
|
|
27
|
+
'tw-p-4': !isMobileView,
|
|
28
|
+
'tw-p-0': isMobileView,
|
|
29
|
+
}"
|
|
30
|
+
>
|
|
31
|
+
<div class="tw-flex tw-min-h-full tw-items-center tw-justify-center tw-text-center">
|
|
32
|
+
<TransitionChild
|
|
33
|
+
as="template"
|
|
34
|
+
enter="tw-duration-300 tw-ease-out"
|
|
35
|
+
enter-from="tw-opacity-0 tw-scale-95"
|
|
36
|
+
enter-to="tw-opacity-100 tw-scale-100"
|
|
37
|
+
leave="tw-duration-200 tw-ease-in"
|
|
38
|
+
leave-from="tw-opacity-100 tw-scale-100"
|
|
39
|
+
leave-to="tw-opacity-0 tw-scale-95"
|
|
31
40
|
>
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
<DialogPanel
|
|
42
|
+
class="tw-w-full tw-transform tw-overflow-hidden tw-rounded-[5px] tw-bg-white tw-text-left tw-align-middle tw-shadow-xl tw-transition-all"
|
|
43
|
+
:class="[
|
|
44
|
+
{
|
|
45
|
+
'tw-flex tw-flex-col [max-height:calc(100vh-40px)]': !isMobileView,
|
|
46
|
+
'tw-max-w-full tw-h-[100dvh] tw-rounded-none tw-flex tw-flex-col': isMobileView,
|
|
47
|
+
'!tw-h-screen': isFullscreen,
|
|
48
|
+
},
|
|
49
|
+
modalWidth,
|
|
50
|
+
]"
|
|
51
|
+
>
|
|
52
|
+
<DialogTitle
|
|
53
|
+
as="h3"
|
|
54
|
+
class="tw-text-[18px] tw-font-semibold tw-leading-5 tw-text-[var(--header-color)] tw-flex tw-px-6 tw-py-5"
|
|
55
|
+
>
|
|
56
|
+
<slot name="header">{{ title }}</slot>
|
|
57
|
+
|
|
58
|
+
<button
|
|
59
|
+
class="tw-h-[26px] tw-w-[26px] tw-bg-[var(--close-btn-bg)] tw-rounded-[4px] tw-inline-flex tw-items-center tw-justify-center tw-ml-auto hover:tw-bg-[var(--close-btn-bg-hover)]"
|
|
60
|
+
@click="closeModal"
|
|
61
|
+
>
|
|
62
|
+
<svg
|
|
63
|
+
v-if="closable"
|
|
64
|
+
width="12"
|
|
65
|
+
height="12"
|
|
66
|
+
viewBox="0 0 12 12"
|
|
67
|
+
fill="none"
|
|
68
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
69
|
+
>
|
|
70
|
+
<path
|
|
71
|
+
d="M7.27173 5.99939L11.1499 2.12967C11.3198 1.95981 11.4152 1.72943 11.4152 1.48922C11.4152 1.24901 11.3198 1.01863 11.1499 0.848777C10.9801 0.67892 10.7497 0.583496 10.5096 0.583496C10.2694 0.583496 10.0391 0.67892 9.86922 0.848777L6.00004 4.72752L2.13086 0.848777C1.96103 0.67892 1.73069 0.583496 1.49051 0.583496C1.25033 0.583496 1.01999 0.67892 0.850156 0.848777C0.680324 1.01863 0.584913 1.24901 0.584913 1.48922C0.584913 1.72943 0.680324 1.95981 0.850156 2.12967L4.72835 5.99939L0.850156 9.86912C0.765622 9.95298 0.698526 10.0527 0.652737 10.1627C0.606948 10.2726 0.583374 10.3905 0.583374 10.5096C0.583374 10.6286 0.606948 10.7465 0.652737 10.8565C0.698526 10.9664 0.765622 11.0662 0.850156 11.15C0.934 11.2346 1.03375 11.3017 1.14366 11.3475C1.25356 11.3933 1.37145 11.4168 1.49051 11.4168C1.60957 11.4168 1.72746 11.3933 1.83736 11.3475C1.94727 11.3017 2.04702 11.2346 2.13086 11.15L6.00004 7.27126L9.86922 11.15C9.95306 11.2346 10.0528 11.3017 10.1627 11.3475C10.2726 11.3933 10.3905 11.4168 10.5096 11.4168C10.6286 11.4168 10.7465 11.3933 10.8564 11.3475C10.9663 11.3017 11.0661 11.2346 11.1499 11.15C11.2345 11.0662 11.3016 10.9664 11.3473 10.8565C11.3931 10.7465 11.4167 10.6286 11.4167 10.5096C11.4167 10.3905 11.3931 10.2726 11.3473 10.1627C11.3016 10.0527 11.2345 9.95298 11.1499 9.86912L7.27173 5.99939Z"
|
|
72
|
+
fill="#6E8BA5"
|
|
73
|
+
/>
|
|
74
|
+
</svg>
|
|
75
|
+
</button>
|
|
76
|
+
</DialogTitle>
|
|
77
|
+
|
|
78
|
+
<div class="tw-flex tw-w-full tw-min-h-0 tw-grow tw-gap-5 tw-px-6 tw-pb-5 tw-pt-3">
|
|
79
|
+
<VcIcon
|
|
80
|
+
v-if="variant !== 'default'"
|
|
81
|
+
:class="['tw-self-center tw-text-[40px]', iconStyle]"
|
|
82
|
+
:icon="icon"
|
|
83
|
+
/>
|
|
84
|
+
|
|
85
|
+
<div
|
|
86
|
+
class="tw-text-[14px] tw-font-normal tw-leading-[20px] tw-text-[var(--content-text-color)] tw-flex tw-items-center tw-flex-auto tw-overflow-y-auto [word-break:break-word]"
|
|
87
|
+
:class="{
|
|
88
|
+
'tw-grow': isMobileView,
|
|
89
|
+
}"
|
|
90
|
+
>
|
|
91
|
+
<div
|
|
92
|
+
class="tw-flex tw-flex-auto tw-self-center tw-min-h-0 tw-max-h-[-webkit-fill-available]"
|
|
93
|
+
:class="{ 'tw-h-full': isFullscreen }"
|
|
94
|
+
>
|
|
95
|
+
<slot name="content"></slot>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<div
|
|
100
|
+
v-if="$slots.footer"
|
|
101
|
+
class="tw-flex tw-items-center tw-px-6 tw-py-5 tw-border-t tw-border-t-[var(--footer-separator)] tw-border-solid"
|
|
102
|
+
>
|
|
103
|
+
<slot
|
|
104
|
+
name="footer"
|
|
105
|
+
:close="closeModal"
|
|
106
|
+
>
|
|
107
|
+
<VcButton
|
|
108
|
+
class="tw-ml-auto"
|
|
109
|
+
@click="closeModal"
|
|
110
|
+
>{{ $t("COMPONENTS.ORGANISMS.VC_POPUP.CLOSE") }}</VcButton
|
|
111
|
+
>
|
|
112
|
+
</slot>
|
|
113
|
+
</div>
|
|
114
|
+
</DialogPanel>
|
|
115
|
+
</TransitionChild>
|
|
116
|
+
</div>
|
|
38
117
|
</div>
|
|
39
|
-
</
|
|
40
|
-
</
|
|
118
|
+
</Dialog>
|
|
119
|
+
</TransitionRoot>
|
|
41
120
|
</template>
|
|
42
121
|
|
|
43
|
-
<script lang="ts">
|
|
44
|
-
import {
|
|
45
|
-
import
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
},
|
|
55
|
-
props: {
|
|
56
|
-
title: {
|
|
57
|
-
type: String,
|
|
58
|
-
default: "",
|
|
59
|
-
},
|
|
60
|
-
closable: {
|
|
61
|
-
type: Boolean,
|
|
62
|
-
default: true,
|
|
63
|
-
},
|
|
64
|
-
variant: {
|
|
65
|
-
type: String as PropType<"small" | "medium" | "fullscreen">,
|
|
66
|
-
default: "fullscreen",
|
|
67
|
-
},
|
|
68
|
-
type: {
|
|
69
|
-
type: String as PropType<"default" | "error" | "warning" | "success">,
|
|
70
|
-
default: "default",
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
emits: ["close", "confirm"],
|
|
74
|
-
});
|
|
75
|
-
</script>
|
|
76
|
-
|
|
77
|
-
<style lang="scss">
|
|
78
|
-
:root {
|
|
79
|
-
--popup-header-default-color: #eef5fa;
|
|
80
|
-
--popup-header-success-color: #87b563;
|
|
81
|
-
--popup-header-warning-color: #f89406;
|
|
82
|
-
--popup-header-error-color: #ef796f;
|
|
122
|
+
<script lang="ts" setup>
|
|
123
|
+
import { Ref, computed, inject } from "vue";
|
|
124
|
+
import { TransitionRoot, TransitionChild, Dialog, DialogPanel, DialogTitle } from "@headlessui/vue";
|
|
125
|
+
|
|
126
|
+
interface Props {
|
|
127
|
+
title?: string;
|
|
128
|
+
closable?: boolean;
|
|
129
|
+
variant: "default" | "error" | "warning" | "success";
|
|
130
|
+
isMobileFullscreen?: boolean;
|
|
131
|
+
isFullscreen?: boolean;
|
|
132
|
+
modalWidth?: string;
|
|
83
133
|
}
|
|
84
|
-
.vc-popup {
|
|
85
|
-
@apply tw-fixed tw-top-0 tw-right-0 tw-bottom-0 tw-left-0 tw-z-[9999] tw-bg-[rgba(31,40,50,0.58)];
|
|
86
|
-
|
|
87
|
-
&_small {
|
|
88
|
-
.vc-popup__wrapper {
|
|
89
|
-
@apply tw-max-h-[50%] tw-items-center tw-flex tw-grow-0 tw-shrink-0 tw-basis-auto [flex-direction:inherit] tw-justify-center;
|
|
90
|
-
}
|
|
91
134
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
135
|
+
interface Emits {
|
|
136
|
+
(event: "close"): void;
|
|
137
|
+
}
|
|
96
138
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
139
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
140
|
+
closable: true,
|
|
141
|
+
variant: "default",
|
|
142
|
+
modalWidth: "tw-max-w-md",
|
|
143
|
+
});
|
|
102
144
|
|
|
103
|
-
|
|
104
|
-
.vc-popup__wrapper {
|
|
105
|
-
@apply tw-max-h-[100vh];
|
|
106
|
-
}
|
|
107
|
-
}
|
|
145
|
+
const emit = defineEmits<Emits>();
|
|
108
146
|
|
|
109
|
-
|
|
110
|
-
@apply tw-fixed tw-top-2/4 -tw-translate-y-2/4 tw-right-0 tw-bottom-0 tw-left-0 tw-flex tw-grow tw-shrink tw-basis-auto tw-flex-col tw-h-full;
|
|
147
|
+
const isMobile = inject("isMobile") as Ref<boolean>;
|
|
111
148
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
149
|
+
const icon = computed(() => {
|
|
150
|
+
switch (props.variant) {
|
|
151
|
+
case "warning":
|
|
152
|
+
return "fas fa-exclamation-circle";
|
|
153
|
+
case "error":
|
|
154
|
+
return "fas fa-times-circle";
|
|
155
|
+
case "success":
|
|
156
|
+
return "fas fa-check-circle";
|
|
157
|
+
default:
|
|
158
|
+
return "";
|
|
115
159
|
}
|
|
160
|
+
});
|
|
116
161
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
162
|
+
const iconStyle = computed(() => {
|
|
163
|
+
switch (props.variant) {
|
|
164
|
+
case "warning":
|
|
165
|
+
return "tw-text-[var(--warning-icon-color)]";
|
|
166
|
+
case "error":
|
|
167
|
+
return "tw-text-[var(--error-icon-color)]";
|
|
168
|
+
case "success":
|
|
169
|
+
return "tw-text-[var(--success-icon-color)]";
|
|
170
|
+
default:
|
|
171
|
+
return "";
|
|
123
172
|
}
|
|
173
|
+
});
|
|
124
174
|
|
|
125
|
-
|
|
126
|
-
@apply tw-h-[44px] tw-px-4 tw-bg-[var(--popup-header-default-color)] tw-flex tw-shrink-0 tw-items-center;
|
|
127
|
-
|
|
128
|
-
&_default {
|
|
129
|
-
@apply tw-bg-[var(--popup-header-default-color)];
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
&_error {
|
|
133
|
-
@apply tw-bg-[var(--popup-header-error-color)] tw-text-white;
|
|
134
|
-
|
|
135
|
-
.vc-popup__header-icon {
|
|
136
|
-
@apply tw-text-white;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
&_warning {
|
|
141
|
-
@apply tw-bg-[var(--popup-header-warning-color)] tw-text-white;
|
|
142
|
-
|
|
143
|
-
.vc-popup__header-icon {
|
|
144
|
-
@apply tw-text-white;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
&_success {
|
|
149
|
-
@apply tw-bg-[var(--popup-header-success-color)] tw-text-white;
|
|
175
|
+
const isMobileView = computed(() => isMobile.value && props.isMobileFullscreen);
|
|
150
176
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
177
|
+
function closeModal() {
|
|
178
|
+
emit("close");
|
|
179
|
+
}
|
|
180
|
+
</script>
|
|
155
181
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
182
|
+
<style lang="scss">
|
|
183
|
+
:root {
|
|
184
|
+
--close-btn-bg: #f5f8fb;
|
|
185
|
+
--close-btn-bg-hover: color-mix(in srgb, var(--close-btn-bg), #000 5%);
|
|
186
|
+
--header-color: #465769;
|
|
187
|
+
--content-text-color: #465769;
|
|
188
|
+
--warning-icon-color: #ffbb0d;
|
|
189
|
+
--error-icon-color: #ff4a4a;
|
|
190
|
+
--success-icon-color: #87b563;
|
|
191
|
+
--footer-separator: #ebebeb;
|
|
160
192
|
}
|
|
161
193
|
</style>
|
package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface Emits {
|
|
2
|
-
(event: "close"): void;
|
|
3
|
-
}
|
|
4
|
-
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
-
close: () => void;
|
|
6
|
-
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
|
|
7
|
-
onClose?: (() => any) | undefined;
|
|
8
|
-
}, {}, {}>, {
|
|
9
|
-
default?(_: {}): any;
|
|
10
|
-
}>;
|
|
11
|
-
export default _default;
|
|
12
|
-
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
13
|
-
new (): {
|
|
14
|
-
$slots: S;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=vc-popup-error.vue.d.ts.map
|
package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vc-popup-error.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;;;;;;;;AAoHD,wBAAwG;AACxG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
|
package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export interface Emits {
|
|
2
|
-
(event: "close"): void;
|
|
3
|
-
(event: "confirm"): void;
|
|
4
|
-
}
|
|
5
|
-
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
-
close: () => void;
|
|
7
|
-
confirm: () => void;
|
|
8
|
-
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
|
|
9
|
-
onClose?: (() => any) | undefined;
|
|
10
|
-
onConfirm?: (() => any) | undefined;
|
|
11
|
-
}, {}, {}>, {
|
|
12
|
-
default?(_: {}): any;
|
|
13
|
-
}>;
|
|
14
|
-
export default _default;
|
|
15
|
-
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
16
|
-
new (): {
|
|
17
|
-
$slots: S;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=vc-popup-warning.vue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vc-popup-warning.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAC1B;;;;;;;;;;AAgJD,wBAAwG;AACxG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tw-flex tw-flex-col tw-overflow-hidden tw-p-2">
|
|
3
|
-
<VcContainer
|
|
4
|
-
no-padding
|
|
5
|
-
style="word-break: break-word"
|
|
6
|
-
>
|
|
7
|
-
<slot></slot>
|
|
8
|
-
</VcContainer>
|
|
9
|
-
</div>
|
|
10
|
-
|
|
11
|
-
<div class="tw-flex tw-my-4 tw-mx-5">
|
|
12
|
-
<VcButton
|
|
13
|
-
class="tw-ml-auto"
|
|
14
|
-
@click="$emit('close')"
|
|
15
|
-
>{{ t("COMPONENTS.ORGANISMS.VC_POPUP.OK") }}</VcButton
|
|
16
|
-
>
|
|
17
|
-
</div>
|
|
18
|
-
</template>
|
|
19
|
-
|
|
20
|
-
<script setup lang="ts">
|
|
21
|
-
import { VcButton } from "./../../../../";
|
|
22
|
-
import { useI18n } from "vue-i18n";
|
|
23
|
-
|
|
24
|
-
export interface Emits {
|
|
25
|
-
(event: "close"): void;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
defineEmits<Emits>();
|
|
29
|
-
|
|
30
|
-
const { t } = useI18n({ useScope: "global" });
|
|
31
|
-
</script>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tw-flex tw-flex-col tw-overflow-hidden tw-p-2">
|
|
3
|
-
<VcContainer
|
|
4
|
-
no-padding
|
|
5
|
-
style="word-break: break-word"
|
|
6
|
-
>
|
|
7
|
-
<slot></slot>
|
|
8
|
-
</VcContainer>
|
|
9
|
-
</div>
|
|
10
|
-
|
|
11
|
-
<div class="tw-flex tw-my-4 tw-mx-5">
|
|
12
|
-
<div class="tw-ml-auto">
|
|
13
|
-
<VcButton
|
|
14
|
-
text
|
|
15
|
-
class="tw-mr-5 tw-text-[#FF4A4A]"
|
|
16
|
-
@click="$emit('confirm')"
|
|
17
|
-
>{{ t("COMPONENTS.ORGANISMS.VC_POPUP.CONFIRM") }}</VcButton
|
|
18
|
-
>
|
|
19
|
-
<VcButton @click="$emit('close')">{{ t("COMPONENTS.ORGANISMS.VC_POPUP.CANCEL") }}</VcButton>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
</template>
|
|
23
|
-
|
|
24
|
-
<script setup lang="ts">
|
|
25
|
-
import { useI18n } from "vue-i18n";
|
|
26
|
-
import { VcButton } from "./../../../../";
|
|
27
|
-
|
|
28
|
-
export interface Emits {
|
|
29
|
-
(event: "close"): void;
|
|
30
|
-
(event: "confirm"): void;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
defineEmits<Emits>();
|
|
34
|
-
|
|
35
|
-
const { t } = useI18n({ useScope: "global" });
|
|
36
|
-
</script>
|