@teammodlr/ui-kit 2.1.41 → 2.1.43

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.
Files changed (268) hide show
  1. package/env.d.ts +1 -1
  2. package/lib/components/checkbox/Checkbox.vue.d.ts +1 -0
  3. package/lib/components/checkbox/style/Checkbox.css.d.ts +1 -0
  4. package/lib/index.cjs.js +8 -8
  5. package/lib/index.es.js +1352 -1342
  6. package/lib/nuxt.js +35 -35
  7. package/lib/nuxt.plugin.js +8 -8
  8. package/lib/style.css +1 -1
  9. package/package.json +89 -89
  10. package/src/__storybook__/argTypes.ts +53 -53
  11. package/src/__storybook__/createStory.ts +15 -15
  12. package/src/__storybook__/index.ts +2 -2
  13. package/src/call.ts +34 -34
  14. package/src/components/avatar/Avatar.vue +110 -110
  15. package/src/components/avatar/examples/basic.vue +6 -6
  16. package/src/components/avatar/examples/custom-size.vue +7 -7
  17. package/src/components/avatar/examples/index.ts +5 -5
  18. package/src/components/avatar/examples/sizes.vue +33 -33
  19. package/src/components/avatar/examples/slots.vue +8 -8
  20. package/src/components/avatar/examples/variants.vue +18 -18
  21. package/src/components/avatar/style/Avatar.css.ts +92 -92
  22. package/src/components/avatar/style/index.ts +1 -1
  23. package/src/components/avatargroup/AvatarGroup.vue +72 -72
  24. package/src/components/avatargroup/examples/basic.vue +37 -37
  25. package/src/components/avatargroup/examples/index.ts +1 -1
  26. package/src/components/avatargroup/style/AvatarGroup.css.ts +26 -26
  27. package/src/components/avatargroup/style/index.ts +1 -1
  28. package/src/components/avatargroup/symbol.ts +17 -17
  29. package/src/components/badge/Badge.vue +43 -43
  30. package/src/components/badge/examples/basic.vue +10 -10
  31. package/src/components/badge/examples/index.ts +1 -1
  32. package/src/components/badge/style/Badge.css.ts +135 -135
  33. package/src/components/badge/style/index.ts +1 -1
  34. package/src/components/breadcrumb/Breadcrumb.vue +54 -54
  35. package/src/components/breadcrumb/BreadcrumbItem.vue +72 -72
  36. package/src/components/breadcrumb/examples/basic.vue +7 -7
  37. package/src/components/breadcrumb/examples/index.ts +1 -1
  38. package/src/components/breadcrumb/style/Breadcrumb.css.ts +40 -40
  39. package/src/components/breadcrumb/style/index.ts +1 -1
  40. package/src/components/breadcrumb/symbol.ts +18 -18
  41. package/src/components/button/Button.vue +203 -203
  42. package/src/components/button/examples/basic.vue +3 -3
  43. package/src/components/button/examples/disabled.vue +3 -3
  44. package/src/components/button/examples/icon-left.vue +12 -12
  45. package/src/components/button/examples/icon.vue +9 -9
  46. package/src/components/button/examples/index.ts +9 -9
  47. package/src/components/button/examples/link.vue +3 -3
  48. package/src/components/button/examples/rounded.vue +7 -7
  49. package/src/components/button/examples/size.vue +7 -7
  50. package/src/components/button/examples/variants-secondary.vue +10 -10
  51. package/src/components/button/examples/variants.vue +10 -10
  52. package/src/components/button/style/Button.css.ts +695 -695
  53. package/src/components/button/style/index.ts +1 -1
  54. package/src/components/buttongroup/ButtonGroup.vue +36 -36
  55. package/src/components/buttongroup/examples/basic.vue +9 -9
  56. package/src/components/buttongroup/examples/icon-group.vue +21 -21
  57. package/src/components/buttongroup/examples/index.ts +2 -2
  58. package/src/components/buttongroup/style/ButtonGroup.css.ts +42 -42
  59. package/src/components/buttongroup/style/index.ts +1 -1
  60. package/src/components/buttongroup/symbol.ts +9 -9
  61. package/src/components/checkbox/Checkbox.vue +149 -145
  62. package/src/components/checkbox/examples/basic.vue +9 -9
  63. package/src/components/checkbox/examples/index.ts +2 -2
  64. package/src/components/checkbox/examples/slot.vue +14 -11
  65. package/src/components/checkbox/style/Checkbox.css.ts +178 -161
  66. package/src/components/checkbox/style/index.ts +1 -1
  67. package/src/components/colorpicker/ColorPicker.vue +333 -333
  68. package/src/components/colorpicker/examples/basic.vue +2 -2
  69. package/src/components/colorpicker/examples/index.ts +1 -1
  70. package/src/components/colorpicker/style/ColorPicker.css.ts +127 -127
  71. package/src/components/colorpicker/style/index.ts +1 -1
  72. package/src/components/colorpicker/utils.ts +206 -206
  73. package/src/components/confirm/Confirm.vue +65 -65
  74. package/src/components/confirm/ConfirmProvider.vue +83 -83
  75. package/src/components/confirm/examples/basic.vue +48 -48
  76. package/src/components/confirm/examples/index.ts +1 -1
  77. package/src/components/confirm/examples/wrapper.vue +9 -9
  78. package/src/components/confirm/props.ts +24 -24
  79. package/src/components/confirm/providerProps.ts +10 -10
  80. package/src/components/confirm/types.ts +33 -33
  81. package/src/components/confirm/useConfirm.ts +14 -14
  82. package/src/components/dialog/Dialog.vue +118 -118
  83. package/src/components/dialog/examples/basic.vue +16 -16
  84. package/src/components/dialog/examples/index.ts +1 -1
  85. package/src/components/dialog/style/Dialog.css.ts +100 -100
  86. package/src/components/dialog/style/index.ts +1 -1
  87. package/src/components/dropdown/Dropdown.vue +308 -308
  88. package/src/components/dropdown/DropdownHeading.vue +23 -23
  89. package/src/components/dropdown/DropdownItem.vue +151 -151
  90. package/src/components/dropdown/DropdownList.vue +20 -20
  91. package/src/components/dropdown/DropdownSeperator.vue +22 -22
  92. package/src/components/dropdown/DropdownWrapper.vue +18 -18
  93. package/src/components/dropdown/examples/basic.vue +119 -119
  94. package/src/components/dropdown/examples/context.vue +71 -71
  95. package/src/components/dropdown/examples/index.ts +3 -3
  96. package/src/components/dropdown/hooks.ts +30 -30
  97. package/src/components/dropdown/style/Dropdown.css.ts +158 -158
  98. package/src/components/dropdown/style/index.ts +1 -1
  99. package/src/components/dropdown/symbol.ts +9 -9
  100. package/src/components/form/Form.vue +153 -153
  101. package/src/components/form/examples/basic.vue +75 -75
  102. package/src/components/form/examples/index.ts +1 -1
  103. package/src/components/form/style/Form.css.ts +28 -28
  104. package/src/components/form/style/index.ts +2 -2
  105. package/src/components/form/symbol.ts +16 -16
  106. package/src/components/image/Image.vue +71 -71
  107. package/src/components/image/examples/basic.vue +5 -5
  108. package/src/components/image/examples/index.ts +1 -1
  109. package/src/components/index.ts +47 -47
  110. package/src/components/input/Input.vue +233 -233
  111. package/src/components/input/examples/basic.vue +21 -21
  112. package/src/components/input/examples/index.ts +6 -6
  113. package/src/components/input/examples/left-icon.vue +9 -9
  114. package/src/components/input/examples/prefix.vue +5 -5
  115. package/src/components/input/examples/right-icon.vue +9 -9
  116. package/src/components/input/examples/sizes.vue +9 -9
  117. package/src/components/input/examples/suffix.vue +7 -7
  118. package/src/components/input/style/Input.css.ts +294 -294
  119. package/src/components/input/style/index.ts +1 -1
  120. package/src/components/link/Link.vue +53 -53
  121. package/src/components/link/examples/basic.vue +3 -3
  122. package/src/components/link/examples/index.ts +1 -1
  123. package/src/components/messageprovider/Message.vue +135 -135
  124. package/src/components/messageprovider/MessageProvider.vue +156 -156
  125. package/src/components/messageprovider/examples/basic.vue +70 -70
  126. package/src/components/messageprovider/examples/index.ts +2 -2
  127. package/src/components/messageprovider/examples/update.vue +34 -34
  128. package/src/components/messageprovider/examples/wrapper.vue +9 -9
  129. package/src/components/messageprovider/style/Message.css.ts +111 -111
  130. package/src/components/messageprovider/style/index.ts +1 -1
  131. package/src/components/messageprovider/types.ts +56 -56
  132. package/src/components/messageprovider/useMessage.ts +14 -14
  133. package/src/components/modal/Modal.vue +310 -310
  134. package/src/components/modal/examples/basic.vue +80 -80
  135. package/src/components/modal/examples/index.ts +3 -3
  136. package/src/components/modal/examples/modal-form.vue +99 -99
  137. package/src/components/modal/examples/sidebar.vue +79 -79
  138. package/src/components/modal/style/Modal.css.ts +318 -318
  139. package/src/components/modal/style/index.ts +1 -1
  140. package/src/components/pagination/Pagination.vue +296 -296
  141. package/src/components/pagination/examples/basic.vue +17 -17
  142. package/src/components/pagination/examples/index.ts +1 -1
  143. package/src/components/pagination/style/Pagination.css.ts +93 -93
  144. package/src/components/pagination/style/index.ts +1 -1
  145. package/src/components/radio/Radio.vue +136 -136
  146. package/src/components/radio/examples/basic.vue +8 -8
  147. package/src/components/radio/examples/group.vue +15 -15
  148. package/src/components/radio/examples/index.ts +2 -2
  149. package/src/components/radio/style/Checkbox.css.ts +130 -130
  150. package/src/components/radio/style/index.ts +1 -1
  151. package/src/components/radiobutton/RadioButton.vue +131 -131
  152. package/src/components/radiobutton/style/RadioButton.css.ts +189 -189
  153. package/src/components/radiobutton/style/index.ts +1 -1
  154. package/src/components/radiobuttongroup/RadioButtonGroup.vue +74 -74
  155. package/src/components/radiobuttongroup/examples/basic.vue +16 -16
  156. package/src/components/radiobuttongroup/examples/index.ts +1 -1
  157. package/src/components/radiobuttongroup/style/RadioButtonGroup.css.ts +37 -37
  158. package/src/components/radiobuttongroup/style/index.ts +1 -1
  159. package/src/components/radiobuttongroup/symbol.ts +12 -12
  160. package/src/components/renderer/examlpes/basic.vue +23 -23
  161. package/src/components/renderer/examlpes/index.ts +1 -1
  162. package/src/components/renderer/props.ts +14 -14
  163. package/src/components/renderer/renderer.ts +16 -16
  164. package/src/components/select/Select.vue +781 -781
  165. package/src/components/select/examples/basic.vue +21 -21
  166. package/src/components/select/examples/index.ts +3 -3
  167. package/src/components/select/examples/multiple.vue +21 -21
  168. package/src/components/select/examples/searchable.vue +20 -20
  169. package/src/components/select/style/Select.css.ts +368 -368
  170. package/src/components/select/style/index.ts +1 -1
  171. package/src/components/skeleton/Skeleton.vue +55 -55
  172. package/src/components/skeleton/examples/basic.vue +3 -3
  173. package/src/components/skeleton/examples/index.ts +2 -2
  174. package/src/components/skeleton/examples/post.vue +8 -8
  175. package/src/components/skeleton/style/Skeleton.css.ts +72 -72
  176. package/src/components/skeleton/style/index.ts +2 -2
  177. package/src/components/slider/Slider.vue +76 -76
  178. package/src/components/slider/style/Slider.css.ts +50 -50
  179. package/src/components/slider/style/index.ts +1 -1
  180. package/src/components/switch/Switch.vue +132 -132
  181. package/src/components/switch/examples/basic.vue +9 -9
  182. package/src/components/switch/examples/index.ts +2 -2
  183. package/src/components/switch/examples/slot.vue +11 -11
  184. package/src/components/switch/style/Switch.css.ts +135 -135
  185. package/src/components/switch/style/index.ts +1 -1
  186. package/src/components/tab/Tab.css +113 -113
  187. package/src/components/tab/Tab.vue +98 -98
  188. package/src/components/tab/TabGroup.vue +90 -90
  189. package/src/components/tab/examples/basic.vue +19 -19
  190. package/src/components/tab/examples/index.ts +2 -2
  191. package/src/components/tab/examples/vertical.vue +19 -19
  192. package/src/components/table/Table.vue +198 -198
  193. package/src/components/table/TableBody.vue +13 -13
  194. package/src/components/table/TableCell.vue +13 -13
  195. package/src/components/table/TableHead.vue +46 -46
  196. package/src/components/table/TableHeadRow.vue +15 -15
  197. package/src/components/table/TableRow.vue +19 -19
  198. package/src/components/table/examples/basic.vue +61 -61
  199. package/src/components/table/examples/empty.vue +44 -44
  200. package/src/components/table/examples/index.ts +3 -3
  201. package/src/components/table/examples/selected.vue +68 -68
  202. package/src/components/table/style/Table.css.ts +62 -62
  203. package/src/components/table/style/index.ts +1 -1
  204. package/src/components/table/types/index.ts +6 -6
  205. package/src/components/tag/Tag.vue +72 -72
  206. package/src/components/tag/examples/basic.vue +5 -5
  207. package/src/components/tag/examples/index.ts +1 -1
  208. package/src/components/tag/style/Tag.css.ts +83 -83
  209. package/src/components/tag/style/index.ts +1 -1
  210. package/src/components/textarea/Textarea.vue +180 -180
  211. package/src/components/textarea/examples/basic.vue +8 -8
  212. package/src/components/textarea/examples/index.ts +1 -1
  213. package/src/components/textarea/style/Textarea.css.ts +191 -191
  214. package/src/components/textarea/style/index.ts +1 -1
  215. package/src/components/tooltip/Tooltip.vue +196 -196
  216. package/src/components/tooltip/examples/basic.vue +5 -5
  217. package/src/components/tooltip/examples/index.ts +2 -2
  218. package/src/components/tooltip/examples/placement.vue +9 -9
  219. package/src/components/tooltip/style/Tooltip.css.ts +90 -90
  220. package/src/components/tooltip/style/index.ts +1 -1
  221. package/src/components/transfer/Transfer.vue +145 -145
  222. package/src/components/transfer/examples/basic.vue +21 -21
  223. package/src/components/transfer/examples/index.ts +1 -1
  224. package/src/components/transfer/style/Transfer.css.ts +81 -81
  225. package/src/components/transfer/style/index.ts +1 -1
  226. package/src/components/tree/Tree.vue +138 -138
  227. package/src/components/tree/TreeNode.vue +109 -109
  228. package/src/components/tree/TreeNodeToggle.vue +48 -48
  229. package/src/components/tree/examples/basic.vue +458 -458
  230. package/src/components/tree/examples/index.ts +1 -1
  231. package/src/components/tree/props.ts +97 -97
  232. package/src/components/tree/style/Tree.css.ts +75 -75
  233. package/src/components/tree/style/index.ts +1 -1
  234. package/src/components/tree/types.ts +103 -103
  235. package/src/components/virtualscroll/VirtualScroll.css +13 -13
  236. package/src/components/virtualscroll/VirtualScroll.vue +166 -166
  237. package/src/components/virtualscroll/examples/basic.vue +31 -31
  238. package/src/components/virtualscroll/examples/index.ts +1 -1
  239. package/src/components/virtualscroll/style/VirtualScroll.css.ts +17 -17
  240. package/src/components/virtualscroll/style/index.ts +1 -1
  241. package/src/composables/element.ts +13 -13
  242. package/src/composables/index.ts +4 -4
  243. package/src/composables/useCachedUid.ts +49 -49
  244. package/src/composables/useEventListener.ts +19 -19
  245. package/src/composables/useInput.ts +151 -151
  246. package/src/composables/useInteractive.ts +19 -19
  247. package/src/composables/useIsServer.ts +7 -7
  248. package/src/composables/useMergedState.ts +18 -18
  249. package/src/composables/useMount.ts +43 -43
  250. package/src/composables/usePopper.ts +215 -215
  251. package/src/composables/useZIndex.ts +33 -33
  252. package/src/create.ts +38 -38
  253. package/src/css/components.css +16 -16
  254. package/src/css/index.css +4 -4
  255. package/src/css/transitions.css +40 -40
  256. package/src/css/variables.css +80 -80
  257. package/src/examples/cards/sidebar.vue +262 -262
  258. package/src/examples/modal/modal.vue +52 -52
  259. package/src/exports/nuxt.js +35 -35
  260. package/src/exports/nuxt.plugin.js +8 -8
  261. package/src/index.ts +5 -5
  262. package/src/install.ts +8 -8
  263. package/src/shims-vue.d.ts +6 -6
  264. package/src/styles/theme.css.ts +181 -181
  265. package/src/styles/transitions.css.ts +97 -97
  266. package/src/types/props.ts +19 -19
  267. package/src/utils/injection.ts +5 -5
  268. package/volar.d.ts +16 -16
@@ -1,65 +1,65 @@
1
- <template>
2
- <div>
3
- <MModal
4
- ref="modal"
5
- :title="title"
6
- :canClickOutside="false"
7
- :onClose="onClose">
8
- <template #body>
9
- {{ content }}
10
- </template>
11
-
12
- <template #footer>
13
- <div style="display: flex; flex-grow: 1; justify-content: end">
14
- <MButton :variant="okVariant" @click="handleOk">
15
- {{ okText ?? 'Okay' }}
16
- </MButton>
17
- <MButton style="margin-left: 8px" @click="handleCancel">
18
- {{ cancelText ?? 'Cancel' }}
19
- </MButton>
20
- </div>
21
- </template>
22
- </MModal>
23
- </div>
24
- </template>
25
-
26
- <script lang="ts">
27
- import { defineComponent, onMounted, ref } from 'vue';
28
- import { useZIndex } from '../../composables/useZIndex';
29
- import { confirmProps } from './props';
30
- import MModal from '../modal/Modal.vue';
31
- import MButton from '../button/Button.vue';
32
-
33
- export default defineComponent({
34
- name: 'Confirm',
35
- props: confirmProps,
36
- setup(props, { slots }) {
37
- const modal = ref();
38
-
39
- const { nextZIndex } = useZIndex();
40
-
41
- async function handleCancel(event: MouseEvent) {
42
- modal.value?.close();
43
- if (props.onCancel) {
44
- await props.onCancel(event);
45
- }
46
- }
47
-
48
- async function handleOk(event: MouseEvent) {
49
- modal.value?.close();
50
- if (props.onOk) {
51
- props.onOk(event);
52
- }
53
- }
54
- onMounted(() => {
55
- modal.value?.open(null);
56
- });
57
- return {
58
- modal,
59
- handleOk,
60
- handleCancel
61
- };
62
- },
63
- components: { MModal, MButton }
64
- });
65
- </script>
1
+ <template>
2
+ <div>
3
+ <MModal
4
+ ref="modal"
5
+ :title="title"
6
+ :canClickOutside="false"
7
+ :onClose="onClose">
8
+ <template #body>
9
+ {{ content }}
10
+ </template>
11
+
12
+ <template #footer>
13
+ <div style="display: flex; flex-grow: 1; justify-content: end">
14
+ <MButton :variant="okVariant" @click="handleOk">
15
+ {{ okText ?? 'Okay' }}
16
+ </MButton>
17
+ <MButton style="margin-left: 8px" @click="handleCancel">
18
+ {{ cancelText ?? 'Cancel' }}
19
+ </MButton>
20
+ </div>
21
+ </template>
22
+ </MModal>
23
+ </div>
24
+ </template>
25
+
26
+ <script lang="ts">
27
+ import { defineComponent, onMounted, ref } from 'vue';
28
+ import { useZIndex } from '../../composables/useZIndex';
29
+ import { confirmProps } from './props';
30
+ import MModal from '../modal/Modal.vue';
31
+ import MButton from '../button/Button.vue';
32
+
33
+ export default defineComponent({
34
+ name: 'Confirm',
35
+ props: confirmProps,
36
+ setup(props, { slots }) {
37
+ const modal = ref();
38
+
39
+ const { nextZIndex } = useZIndex();
40
+
41
+ async function handleCancel(event: MouseEvent) {
42
+ modal.value?.close();
43
+ if (props.onCancel) {
44
+ await props.onCancel(event);
45
+ }
46
+ }
47
+
48
+ async function handleOk(event: MouseEvent) {
49
+ modal.value?.close();
50
+ if (props.onOk) {
51
+ props.onOk(event);
52
+ }
53
+ }
54
+ onMounted(() => {
55
+ modal.value?.open(null);
56
+ });
57
+ return {
58
+ modal,
59
+ handleOk,
60
+ handleCancel
61
+ };
62
+ },
63
+ components: { MModal, MButton }
64
+ });
65
+ </script>
@@ -1,83 +1,83 @@
1
- <template>
2
- <slot />
3
- <template v-if="dialogList.length > 0">
4
- <Teleport :to="teleportTo ?? 'body'">
5
- <MConfirm
6
- v-for="dialog in dialogList"
7
- :key="dialog.key"
8
- :internalKey="dialog.key"
9
- :title="dialog.title"
10
- :content="dialog.content"
11
- :okText="dialog.okText"
12
- :cancelText="dialog.cancelText"
13
- :on-ok="dialog.onOk"
14
- :on-cancel="dialog.onCancel"
15
- :ok-variant="dialog.okVariant"
16
- ref="dialogRefs" />
17
- </Teleport>
18
- </template>
19
- </template>
20
-
21
- <script lang="ts">
22
- import { defineComponent, provide, ref } from 'vue';
23
- import { useCachedUid } from '../../composables/useCachedUid';
24
- import { providerProps } from './providerProps';
25
- import type { Confirm, ConfirmApiInjection, ConfirmOptions } from './types';
26
- import MConfirm from './Confirm.vue';
27
-
28
- interface PrivateConfirm extends Confirm {
29
- key: string;
30
- }
31
-
32
- interface PrivateConfirmRef extends Confirm {
33
- key: string;
34
- hide: () => void;
35
- }
36
-
37
- export default defineComponent({
38
- name: 'ConfirmProvider',
39
- props: providerProps,
40
- components: {
41
- MConfirm
42
- },
43
- setup(props, { slots }) {
44
- const dialogListRef = ref<PrivateConfirm[]>([]);
45
- const dialogRefs: Record<string, PrivateConfirmRef> = {};
46
-
47
- function create(options: ConfirmOptions): Confirm {
48
- const { id } = useCachedUid('m-confirm');
49
- const key = id.value;
50
- const dialog: PrivateConfirm = {
51
- ...options,
52
- key,
53
- destroy: () => {
54
- dialogRefs[key].hide();
55
- }
56
- };
57
-
58
- dialogListRef.value.push(dialog);
59
- return dialog;
60
- }
61
-
62
- function destroyAll(): void {
63
- // @ts-ignore
64
- Object.values(dialogRefs.value).forEach(dialog => {
65
- dialog.hide();
66
- });
67
- }
68
-
69
- const api: ConfirmApiInjection = {
70
- create,
71
- destroyAll
72
- } as const;
73
-
74
- provide('m-confirm', api);
75
-
76
- return {
77
- ...api,
78
- dialogRefs,
79
- dialogList: dialogListRef
80
- };
81
- }
82
- });
83
- </script>
1
+ <template>
2
+ <slot />
3
+ <template v-if="dialogList.length > 0">
4
+ <Teleport :to="teleportTo ?? 'body'">
5
+ <MConfirm
6
+ v-for="dialog in dialogList"
7
+ :key="dialog.key"
8
+ :internalKey="dialog.key"
9
+ :title="dialog.title"
10
+ :content="dialog.content"
11
+ :okText="dialog.okText"
12
+ :cancelText="dialog.cancelText"
13
+ :on-ok="dialog.onOk"
14
+ :on-cancel="dialog.onCancel"
15
+ :ok-variant="dialog.okVariant"
16
+ ref="dialogRefs" />
17
+ </Teleport>
18
+ </template>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent, provide, ref } from 'vue';
23
+ import { useCachedUid } from '../../composables/useCachedUid';
24
+ import { providerProps } from './providerProps';
25
+ import type { Confirm, ConfirmApiInjection, ConfirmOptions } from './types';
26
+ import MConfirm from './Confirm.vue';
27
+
28
+ interface PrivateConfirm extends Confirm {
29
+ key: string;
30
+ }
31
+
32
+ interface PrivateConfirmRef extends Confirm {
33
+ key: string;
34
+ hide: () => void;
35
+ }
36
+
37
+ export default defineComponent({
38
+ name: 'ConfirmProvider',
39
+ props: providerProps,
40
+ components: {
41
+ MConfirm
42
+ },
43
+ setup(props, { slots }) {
44
+ const dialogListRef = ref<PrivateConfirm[]>([]);
45
+ const dialogRefs: Record<string, PrivateConfirmRef> = {};
46
+
47
+ function create(options: ConfirmOptions): Confirm {
48
+ const { id } = useCachedUid('m-confirm');
49
+ const key = id.value;
50
+ const dialog: PrivateConfirm = {
51
+ ...options,
52
+ key,
53
+ destroy: () => {
54
+ dialogRefs[key].hide();
55
+ }
56
+ };
57
+
58
+ dialogListRef.value.push(dialog);
59
+ return dialog;
60
+ }
61
+
62
+ function destroyAll(): void {
63
+ // @ts-ignore
64
+ Object.values(dialogRefs.value).forEach(dialog => {
65
+ dialog.hide();
66
+ });
67
+ }
68
+
69
+ const api: ConfirmApiInjection = {
70
+ create,
71
+ destroyAll
72
+ } as const;
73
+
74
+ provide('m-confirm', api);
75
+
76
+ return {
77
+ ...api,
78
+ dialogRefs,
79
+ dialogList: dialogListRef
80
+ };
81
+ }
82
+ });
83
+ </script>
@@ -1,48 +1,48 @@
1
- <template>
2
- <div>
3
- <button @click="showBasicDialog">
4
- Show Basic</button>
5
-
6
- <button @click="showDangerDialog">
7
- Show Danger
8
- </button>
9
- </div>
10
- </template>
11
-
12
- <script lang="ts" setup>
13
- import { ref } from 'vue';
14
- import { useConfirm } from '../useConfirm';
15
-
16
- const confirm = useConfirm();
17
-
18
- async function showBasicDialog() {
19
- const result = confirm.create({
20
- title: 'Hello World',
21
- content: 'This is a dialog',
22
- okText: 'OK',
23
- cancelText: 'Cancel',
24
- onOk: () => {
25
- console.log('OK');
26
- },
27
- onCancel: () => {
28
- console.log('Cancel');
29
- }
30
- });
31
- }
32
-
33
- async function showDangerDialog() {
34
- const result = confirm.create({
35
- title: 'Hello World',
36
- content: 'This is a confirm',
37
- okText: 'Continue',
38
- okVariant: 'error',
39
- cancelText: 'Cancel',
40
- onOk: () => {
41
- showBasicDialog()
42
- },
43
- onCancel: () => {
44
- console.log('Cancel');
45
- }
46
- });
47
- }
48
- </script>
1
+ <template>
2
+ <div>
3
+ <button @click="showBasicDialog">
4
+ Show Basic</button>
5
+
6
+ <button @click="showDangerDialog">
7
+ Show Danger
8
+ </button>
9
+ </div>
10
+ </template>
11
+
12
+ <script lang="ts" setup>
13
+ import { ref } from 'vue';
14
+ import { useConfirm } from '../useConfirm';
15
+
16
+ const confirm = useConfirm();
17
+
18
+ async function showBasicDialog() {
19
+ const result = confirm.create({
20
+ title: 'Hello World',
21
+ content: 'This is a dialog',
22
+ okText: 'OK',
23
+ cancelText: 'Cancel',
24
+ onOk: () => {
25
+ console.log('OK');
26
+ },
27
+ onCancel: () => {
28
+ console.log('Cancel');
29
+ }
30
+ });
31
+ }
32
+
33
+ async function showDangerDialog() {
34
+ const result = confirm.create({
35
+ title: 'Hello World',
36
+ content: 'This is a confirm',
37
+ okText: 'Continue',
38
+ okVariant: 'error',
39
+ cancelText: 'Cancel',
40
+ onOk: () => {
41
+ showBasicDialog()
42
+ },
43
+ onCancel: () => {
44
+ console.log('Cancel');
45
+ }
46
+ });
47
+ }
48
+ </script>
@@ -1 +1 @@
1
- export { default as MConfirmProviderBasic } from './basic.vue';
1
+ export { default as MConfirmProviderBasic } from './basic.vue';
@@ -1,9 +1,9 @@
1
- <template>
2
- <m-message-provider placement="top-left">
3
- <slot />
4
- </m-message-provider>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- import MMessageProvider from '../MessageProvider.vue';
9
- </script>
1
+ <template>
2
+ <m-message-provider placement="top-left">
3
+ <slot />
4
+ </m-message-provider>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import MMessageProvider from '../MessageProvider.vue';
9
+ </script>
@@ -1,24 +1,24 @@
1
- import type { Variant } from '../../types/props';
2
- import type { ExtractPropTypes, PropType, VNodeChild } from 'vue';
3
-
4
- export const confirmProps = {
5
- title: String,
6
- closable: {
7
- type: Boolean,
8
- default: true
9
- },
10
- okText: String,
11
- cancelText: String,
12
- content: [String, Function] as PropType<string | (() => VNodeChild)>,
13
- action: Function as PropType<() => VNodeChild>,
14
- loading: Boolean,
15
- onOk: Function as PropType<(e: MouseEvent) => void>,
16
- onCancel: Function as PropType<(e: MouseEvent) => void>,
17
- onClose: Function as PropType<() => void>,
18
- okVariant: {
19
- type: String as PropType<Variant>,
20
- default: 'primary'
21
- }
22
- } as const;
23
-
24
- export type ConfirmProps = ExtractPropTypes<typeof confirmProps>;
1
+ import type { Variant } from '../../types/props';
2
+ import type { ExtractPropTypes, PropType, VNodeChild } from 'vue';
3
+
4
+ export const confirmProps = {
5
+ title: String,
6
+ closable: {
7
+ type: Boolean,
8
+ default: true
9
+ },
10
+ okText: String,
11
+ cancelText: String,
12
+ content: [String, Function] as PropType<string | (() => VNodeChild)>,
13
+ action: Function as PropType<() => VNodeChild>,
14
+ loading: Boolean,
15
+ onOk: Function as PropType<(e: MouseEvent) => void>,
16
+ onCancel: Function as PropType<(e: MouseEvent) => void>,
17
+ onClose: Function as PropType<() => void>,
18
+ okVariant: {
19
+ type: String as PropType<Variant>,
20
+ default: 'primary'
21
+ }
22
+ } as const;
23
+
24
+ export type ConfirmProps = ExtractPropTypes<typeof confirmProps>;
@@ -1,10 +1,10 @@
1
- import type { ExtractPropTypes, PropType } from 'vue';
2
-
3
- export const providerProps = {
4
- teleportTo: {
5
- type: String,
6
- default: 'body'
7
- }
8
- };
9
-
10
- export type ProviderProps = ExtractPropTypes<typeof providerProps>;
1
+ import type { ExtractPropTypes, PropType } from 'vue';
2
+
3
+ export const providerProps = {
4
+ teleportTo: {
5
+ type: String,
6
+ default: 'body'
7
+ }
8
+ };
9
+
10
+ export type ProviderProps = ExtractPropTypes<typeof providerProps>;
@@ -1,33 +1,33 @@
1
- import type { Variant } from '../../types/props';
2
- import type { VNodeChild } from 'vue';
3
-
4
- export type ConfirmContentType = string;
5
-
6
- export type ConfirmContentRender = (props: any) => VNodeChild;
7
-
8
- export interface ConfirmOptions {
9
- title?: string;
10
- render?: ConfirmContentRender;
11
- content: ConfirmContentType;
12
- onClose?: () => void;
13
- onOpen?: () => void;
14
- onOk?: () => void;
15
- onCancel?: () => void;
16
- okVariant?: Variant;
17
- okText?: ConfirmContentType;
18
- cancelText?: ConfirmContentType;
19
- }
20
-
21
- export interface ConfirmResponse {
22
- result: boolean;
23
- data: any;
24
- }
25
-
26
- export interface ConfirmApiInjection {
27
- create: (options: ConfirmOptions) => Confirm;
28
- destroyAll: () => void;
29
- }
30
-
31
- export interface Confirm extends ConfirmOptions {
32
- destroy: () => void;
33
- }
1
+ import type { Variant } from '../../types/props';
2
+ import type { VNodeChild } from 'vue';
3
+
4
+ export type ConfirmContentType = string;
5
+
6
+ export type ConfirmContentRender = (props: any) => VNodeChild;
7
+
8
+ export interface ConfirmOptions {
9
+ title?: string;
10
+ render?: ConfirmContentRender;
11
+ content: ConfirmContentType;
12
+ onClose?: () => void;
13
+ onOpen?: () => void;
14
+ onOk?: () => void;
15
+ onCancel?: () => void;
16
+ okVariant?: Variant;
17
+ okText?: ConfirmContentType;
18
+ cancelText?: ConfirmContentType;
19
+ }
20
+
21
+ export interface ConfirmResponse {
22
+ result: boolean;
23
+ data: any;
24
+ }
25
+
26
+ export interface ConfirmApiInjection {
27
+ create: (options: ConfirmOptions) => Confirm;
28
+ destroyAll: () => void;
29
+ }
30
+
31
+ export interface Confirm extends ConfirmOptions {
32
+ destroy: () => void;
33
+ }
@@ -1,14 +1,14 @@
1
- import { inject } from 'vue';
2
- import type { ConfirmApiInjection } from './types';
3
-
4
- export function useConfirm(): ConfirmApiInjection {
5
- const api = inject('m-confirm', null);
6
-
7
- if (api === null) {
8
- throw new Error(
9
- 'm-confirm api is not provided, ensure the component is wrapped in <m-confirm-provider />.'
10
- );
11
- }
12
-
13
- return api;
14
- }
1
+ import { inject } from 'vue';
2
+ import type { ConfirmApiInjection } from './types';
3
+
4
+ export function useConfirm(): ConfirmApiInjection {
5
+ const api = inject('m-confirm', null);
6
+
7
+ if (api === null) {
8
+ throw new Error(
9
+ 'm-confirm api is not provided, ensure the component is wrapped in <m-confirm-provider />.'
10
+ );
11
+ }
12
+
13
+ return api;
14
+ }