@teammodlr/ui-kit 2.3.12 → 2.3.15

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 (278) hide show
  1. package/env.d.ts +1 -1
  2. package/lib/components/colorpicker/ColorPicker.vue.d.ts +12 -2
  3. package/lib/index.cjs.js +3 -3
  4. package/lib/index.es.js +509 -504
  5. package/lib/nuxt.js +35 -35
  6. package/lib/nuxt.plugin.js +8 -8
  7. package/package.json +1 -1
  8. package/src/__storybook__/argTypes.ts +53 -53
  9. package/src/__storybook__/createStory.ts +15 -15
  10. package/src/__storybook__/index.ts +2 -2
  11. package/src/components/avatar/Avatar.vue +110 -110
  12. package/src/components/avatar/examples/basic.vue +6 -6
  13. package/src/components/avatar/examples/custom-size.vue +7 -7
  14. package/src/components/avatar/examples/index.stories.ts +25 -25
  15. package/src/components/avatar/examples/index.ts +5 -5
  16. package/src/components/avatar/examples/sizes.vue +33 -33
  17. package/src/components/avatar/examples/slots.vue +8 -8
  18. package/src/components/avatar/examples/variants.vue +18 -18
  19. package/src/components/avatar/style/Avatar.css.ts +92 -92
  20. package/src/components/avatar/style/index.ts +1 -1
  21. package/src/components/avatargroup/AvatarGroup.vue +72 -72
  22. package/src/components/avatargroup/examples/basic.vue +37 -37
  23. package/src/components/avatargroup/examples/index.stories.ts +19 -19
  24. package/src/components/avatargroup/examples/index.ts +1 -1
  25. package/src/components/avatargroup/style/AvatarGroup.css.ts +26 -26
  26. package/src/components/avatargroup/style/index.ts +1 -1
  27. package/src/components/avatargroup/symbol.ts +17 -17
  28. package/src/components/badge/Badge.vue +43 -43
  29. package/src/components/badge/examples/basic.vue +10 -10
  30. package/src/components/badge/examples/index.stories.ts +19 -19
  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.stories.ts +16 -16
  38. package/src/components/breadcrumb/examples/index.ts +1 -1
  39. package/src/components/breadcrumb/style/Breadcrumb.css.ts +40 -40
  40. package/src/components/breadcrumb/style/index.ts +1 -1
  41. package/src/components/breadcrumb/symbol.ts +18 -18
  42. package/src/components/button/Button.vue +203 -203
  43. package/src/components/button/examples/basic.vue +3 -3
  44. package/src/components/button/examples/disabled.vue +3 -3
  45. package/src/components/button/examples/icon-left.vue +12 -12
  46. package/src/components/button/examples/icon.vue +9 -9
  47. package/src/components/button/examples/index.stories.ts +37 -37
  48. package/src/components/button/examples/index.ts +9 -9
  49. package/src/components/button/examples/link.vue +3 -3
  50. package/src/components/button/examples/rounded.vue +7 -7
  51. package/src/components/button/examples/size.vue +7 -7
  52. package/src/components/button/examples/variants-secondary.vue +10 -10
  53. package/src/components/button/examples/variants.vue +10 -10
  54. package/src/components/button/style/index.ts +1 -1
  55. package/src/components/buttongroup/ButtonGroup.vue +36 -36
  56. package/src/components/buttongroup/examples/basic.vue +9 -9
  57. package/src/components/buttongroup/examples/icon-group.vue +21 -21
  58. package/src/components/buttongroup/examples/index.stories.ts +17 -17
  59. package/src/components/buttongroup/examples/index.ts +2 -2
  60. package/src/components/buttongroup/style/ButtonGroup.css.ts +42 -42
  61. package/src/components/buttongroup/style/index.ts +1 -1
  62. package/src/components/buttongroup/symbol.ts +9 -9
  63. package/src/components/checkbox/Checkbox.vue +149 -149
  64. package/src/components/checkbox/examples/basic.vue +9 -9
  65. package/src/components/checkbox/examples/index.stories.ts +16 -16
  66. package/src/components/checkbox/examples/index.ts +2 -2
  67. package/src/components/checkbox/examples/slot.vue +14 -14
  68. package/src/components/checkbox/style/Checkbox.css.ts +178 -178
  69. package/src/components/checkbox/style/index.ts +1 -1
  70. package/src/components/colorpicker/ColorPicker.vue +20 -10
  71. package/src/components/colorpicker/examples/index.stories.ts +12 -12
  72. package/src/components/colorpicker/examples/index.ts +1 -1
  73. package/src/components/colorpicker/style/index.ts +1 -1
  74. package/src/components/configprovider/ConfigProvider.vue +38 -38
  75. package/src/components/configprovider/types.ts +3 -3
  76. package/src/components/confirm/Confirm.vue +65 -65
  77. package/src/components/confirm/examples/basic.vue +48 -48
  78. package/src/components/confirm/examples/index.stories.ts +26 -26
  79. package/src/components/confirm/examples/index.ts +1 -1
  80. package/src/components/confirm/examples/wrapper.vue +9 -9
  81. package/src/components/confirm/props.ts +24 -24
  82. package/src/components/confirm/providerProps.ts +10 -10
  83. package/src/components/confirm/types.ts +33 -33
  84. package/src/components/confirm/useConfirm.ts +14 -14
  85. package/src/components/dialog/examples/basic.vue +23 -23
  86. package/src/components/dialog/examples/index.stories.ts +14 -14
  87. package/src/components/dialog/examples/index.ts +1 -1
  88. package/src/components/dialog/style/index.ts +1 -1
  89. package/src/components/dialogprovider/examples/index.stories.ts +26 -26
  90. package/src/components/dropdown/DropdownList.vue +20 -20
  91. package/src/components/dropdown/examples/index.stories.ts +26 -26
  92. package/src/components/dropdown/examples/index.ts +3 -3
  93. package/src/components/dropdown/hooks.ts +30 -30
  94. package/src/components/dropdown/style/index.ts +1 -1
  95. package/src/components/dropdown/symbol.ts +9 -9
  96. package/src/components/form/Form.vue +153 -153
  97. package/src/components/form/examples/basic.vue +75 -75
  98. package/src/components/form/examples/index.stories.ts +23 -23
  99. package/src/components/form/examples/index.ts +1 -1
  100. package/src/components/form/style/Form.css.ts +28 -28
  101. package/src/components/form/style/index.ts +2 -2
  102. package/src/components/form/symbol.ts +16 -16
  103. package/src/components/image/Image.vue +71 -71
  104. package/src/components/image/examples/basic.vue +5 -5
  105. package/src/components/image/examples/index.stories.ts +10 -10
  106. package/src/components/image/examples/index.ts +1 -1
  107. package/src/components/input/Input.vue +233 -233
  108. package/src/components/input/examples/basic.vue +21 -21
  109. package/src/components/input/examples/index.stories.ts +26 -26
  110. package/src/components/input/examples/index.ts +6 -6
  111. package/src/components/input/examples/left-icon.vue +9 -9
  112. package/src/components/input/examples/prefix.vue +5 -5
  113. package/src/components/input/examples/right-icon.vue +9 -9
  114. package/src/components/input/examples/sizes.vue +9 -9
  115. package/src/components/input/examples/suffix.vue +7 -7
  116. package/src/components/input/style/Input.css.ts +294 -294
  117. package/src/components/input/style/index.ts +1 -1
  118. package/src/components/link/Link.vue +53 -53
  119. package/src/components/link/examples/basic.vue +3 -3
  120. package/src/components/link/examples/index.stories.ts +15 -15
  121. package/src/components/link/examples/index.ts +1 -1
  122. package/src/components/messageprovider/Message.vue +135 -135
  123. package/src/components/messageprovider/MessageProvider.vue +152 -152
  124. package/src/components/messageprovider/examples/basic.vue +70 -70
  125. package/src/components/messageprovider/examples/index.stories.ts +26 -26
  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.stories.ts +16 -16
  136. package/src/components/modal/examples/index.ts +3 -3
  137. package/src/components/modal/examples/modal-form.vue +99 -99
  138. package/src/components/modal/examples/sidebar.vue +79 -79
  139. package/src/components/modal/style/Modal.css.ts +318 -318
  140. package/src/components/modal/style/index.ts +1 -1
  141. package/src/components/pagination/Pagination.vue +296 -296
  142. package/src/components/pagination/examples/basic.vue +17 -17
  143. package/src/components/pagination/examples/index.stories.ts +11 -11
  144. package/src/components/pagination/examples/index.ts +1 -1
  145. package/src/components/pagination/style/Pagination.css.ts +93 -93
  146. package/src/components/pagination/style/index.ts +1 -1
  147. package/src/components/radio/Radio.vue +136 -136
  148. package/src/components/radio/examples/basic.vue +8 -8
  149. package/src/components/radio/examples/group.vue +15 -15
  150. package/src/components/radio/examples/index.stories.ts +16 -16
  151. package/src/components/radio/examples/index.ts +2 -2
  152. package/src/components/radio/style/Checkbox.css.ts +130 -130
  153. package/src/components/radio/style/index.ts +1 -1
  154. package/src/components/radiobutton/RadioButton.vue +131 -131
  155. package/src/components/radiobutton/style/RadioButton.css.ts +189 -189
  156. package/src/components/radiobutton/style/index.ts +1 -1
  157. package/src/components/radiobuttongroup/RadioButtonGroup.vue +74 -74
  158. package/src/components/radiobuttongroup/examples/basic.vue +16 -16
  159. package/src/components/radiobuttongroup/examples/index.stories.ts +18 -18
  160. package/src/components/radiobuttongroup/examples/index.ts +1 -1
  161. package/src/components/radiobuttongroup/style/RadioButtonGroup.css.ts +37 -37
  162. package/src/components/radiobuttongroup/style/index.ts +1 -1
  163. package/src/components/radiobuttongroup/symbol.ts +12 -12
  164. package/src/components/renderer/examlpes/basic.vue +23 -23
  165. package/src/components/renderer/examlpes/index.stories.ts +14 -14
  166. package/src/components/renderer/examlpes/index.ts +1 -1
  167. package/src/components/renderer/props.ts +14 -14
  168. package/src/components/renderer/renderer.ts +16 -16
  169. package/src/components/select/examples/basic.vue +26 -26
  170. package/src/components/select/examples/index.stories.ts +16 -16
  171. package/src/components/select/examples/index.ts +3 -3
  172. package/src/components/select/examples/multiple.vue +21 -21
  173. package/src/components/select/examples/searchable.vue +20 -20
  174. package/src/components/select/style/index.ts +1 -1
  175. package/src/components/select/types.ts +27 -27
  176. package/src/components/skeleton/Skeleton.vue +55 -55
  177. package/src/components/skeleton/examples/basic.vue +3 -3
  178. package/src/components/skeleton/examples/index.stories.ts +13 -13
  179. package/src/components/skeleton/examples/index.ts +2 -2
  180. package/src/components/skeleton/examples/post.vue +8 -8
  181. package/src/components/skeleton/style/Skeleton.css.ts +72 -72
  182. package/src/components/skeleton/style/index.ts +2 -2
  183. package/src/components/slider/style/Slider.css.ts +50 -50
  184. package/src/components/slider/style/index.ts +1 -1
  185. package/src/components/switch/Switch.vue +132 -132
  186. package/src/components/switch/examples/basic.vue +9 -9
  187. package/src/components/switch/examples/index.stories.ts +15 -15
  188. package/src/components/switch/examples/index.ts +2 -2
  189. package/src/components/switch/examples/slot.vue +11 -11
  190. package/src/components/switch/style/index.ts +1 -1
  191. package/src/components/tab/examples/basic.vue +23 -23
  192. package/src/components/tab/examples/index.ts +2 -2
  193. package/src/components/tab/examples/vertical.vue +19 -19
  194. package/src/components/table/Table.vue +198 -198
  195. package/src/components/table/TableBody.vue +13 -13
  196. package/src/components/table/TableCell.vue +13 -13
  197. package/src/components/table/TableHead.vue +46 -46
  198. package/src/components/table/TableHeadRow.vue +15 -15
  199. package/src/components/table/TableRow.vue +19 -19
  200. package/src/components/table/examples/basic.vue +61 -61
  201. package/src/components/table/examples/empty.vue +44 -44
  202. package/src/components/table/examples/index.stories.ts +17 -17
  203. package/src/components/table/examples/index.ts +3 -3
  204. package/src/components/table/examples/selected.vue +68 -68
  205. package/src/components/table/style/Table.css.ts +62 -62
  206. package/src/components/table/style/index.ts +1 -1
  207. package/src/components/table/types/index.ts +6 -6
  208. package/src/components/tag/Tag.vue +72 -72
  209. package/src/components/tag/examples/basic.vue +5 -5
  210. package/src/components/tag/examples/index.stories.ts +16 -16
  211. package/src/components/tag/examples/index.ts +1 -1
  212. package/src/components/tag/style/Tag.css.ts +83 -83
  213. package/src/components/tag/style/index.ts +1 -1
  214. package/src/components/textarea/Textarea.vue +180 -180
  215. package/src/components/textarea/examples/basic.vue +8 -8
  216. package/src/components/textarea/examples/index.stories.ts +14 -14
  217. package/src/components/textarea/examples/index.ts +1 -1
  218. package/src/components/textarea/style/Textarea.css.ts +191 -191
  219. package/src/components/textarea/style/index.ts +1 -1
  220. package/src/components/tooltip/examples/basic.vue +5 -5
  221. package/src/components/tooltip/examples/index.stories.ts +17 -17
  222. package/src/components/tooltip/examples/index.ts +2 -2
  223. package/src/components/tooltip/examples/placement.vue +9 -9
  224. package/src/components/tooltip/style/Tooltip.css.ts +90 -90
  225. package/src/components/tooltip/style/index.ts +1 -1
  226. package/src/components/transfer/Transfer.vue +145 -145
  227. package/src/components/transfer/examples/basic.vue +21 -21
  228. package/src/components/transfer/examples/index.stories.ts +12 -12
  229. package/src/components/transfer/examples/index.ts +1 -1
  230. package/src/components/transfer/style/Transfer.css.ts +81 -81
  231. package/src/components/transfer/style/index.ts +1 -1
  232. package/src/components/tree/Tree.vue +138 -138
  233. package/src/components/tree/TreeNode.vue +109 -109
  234. package/src/components/tree/TreeNodeToggle.vue +48 -48
  235. package/src/components/tree/examples/basic.vue +458 -458
  236. package/src/components/tree/examples/index.stories.ts +12 -12
  237. package/src/components/tree/examples/index.ts +1 -1
  238. package/src/components/tree/props.ts +97 -97
  239. package/src/components/tree/style/Tree.css.ts +75 -75
  240. package/src/components/tree/style/index.ts +1 -1
  241. package/src/components/tree/types.ts +103 -103
  242. package/src/components/virtualscroll/VirtualScroll.css +13 -13
  243. package/src/components/virtualscroll/VirtualScroll.vue +166 -166
  244. package/src/components/virtualscroll/examples/basic.vue +31 -31
  245. package/src/components/virtualscroll/examples/index.stories.ts +11 -11
  246. package/src/components/virtualscroll/examples/index.ts +1 -1
  247. package/src/components/virtualscroll/style/VirtualScroll.css.ts +17 -17
  248. package/src/components/virtualscroll/style/index.ts +1 -1
  249. package/src/composables/element.ts +13 -13
  250. package/src/composables/index.ts +5 -5
  251. package/src/composables/useCachedUid.ts +15 -15
  252. package/src/composables/useEventListener.ts +19 -19
  253. package/src/composables/useInput.ts +151 -151
  254. package/src/composables/useInteractive.ts +19 -19
  255. package/src/composables/useIsServer.ts +7 -7
  256. package/src/composables/useMergedState.ts +18 -18
  257. package/src/composables/useMount.ts +43 -43
  258. package/src/composables/usePopper.ts +215 -215
  259. package/src/composables/useZIndex.ts +33 -33
  260. package/src/create.ts +38 -38
  261. package/src/css/components.css +16 -16
  262. package/src/css/index.css +4 -4
  263. package/src/css/transitions.css +40 -40
  264. package/src/css/variables.css +80 -80
  265. package/src/examples/cards/cards.stories.ts +9 -9
  266. package/src/examples/cards/sidebar.vue +262 -262
  267. package/src/examples/modal/modal.stories.ts +9 -9
  268. package/src/examples/modal/modal.vue +52 -52
  269. package/src/exports/nuxt.js +35 -35
  270. package/src/exports/nuxt.plugin.js +8 -8
  271. package/src/index.ts +5 -5
  272. package/src/install.ts +8 -8
  273. package/src/shims-vue.d.ts +6 -6
  274. package/src/styles/theme.css.ts +181 -181
  275. package/src/types/props.ts +21 -21
  276. package/src/utils/call.ts +34 -34
  277. package/src/utils/injection.ts +45 -45
  278. package/volar.d.ts +16 -16
@@ -1,152 +1,152 @@
1
- <template>
2
- <slot />
3
- <template v-if="messageList.length > 0">
4
- <Teleport to="body">
5
- <transition
6
- type="animation"
7
- :enter-active-class="modalScale.enterActive"
8
- :leave-active-class="modalScale.leaveActive"
9
- :enter-from-class="modalScale.enterFrom"
10
- :leave-to-class="modalScale.leaveTo">
11
- <div :class="classes">
12
- <MMessage
13
- v-for="message in messageList"
14
- :key="message.key"
15
- :internalKey="message.key"
16
- :variant="message.type"
17
- :content="message.content"
18
- :timeout="message.timeout ?? timeout"
19
- ref="messageRefs"
20
- :on-internal-after-leave="onInternalAfterLeave" />
21
- </div>
22
- </transition>
23
- </Teleport>
24
- </template>
25
- </template>
26
-
27
- <script lang="ts">
28
- import {
29
- ref,
30
- reactive,
31
- defineComponent,
32
- provide,
33
- computed
34
- } from 'vue';
35
- import type {
36
- MessageType,
37
- MessageReactive,
38
- MessageOptions,
39
- MessageApiInjection,
40
- ContentType,
41
- MessagePlacement
42
- } from './types';
43
- import type { PropType } from 'vue';
44
- import MMessage from './Message.vue';
45
- import * as style from './style';
46
- import { modalScale } from '../../styles/transitions.css';
47
-
48
- interface PrivateMessageReactive extends MessageReactive {
49
- key: string;
50
- }
51
-
52
- interface PrivateMessageRef extends MessageReactive {
53
- key: string;
54
- hide: () => void;
55
- }
56
-
57
- export default defineComponent({
58
- name: 'MMessageProvider',
59
- components: {
60
- MMessage
61
- },
62
- props: {
63
- placement: {
64
- type: String as PropType<MessagePlacement>,
65
- default: 'top'
66
- },
67
- timeout: {
68
- type: Number,
69
- default: 3000
70
- }
71
- },
72
- setup(props, { slots }) {
73
- const messageListRef = ref<PrivateMessageReactive[]>([]);
74
- const messageRefs = ref<Record<string, PrivateMessageRef>>({});
75
- const api: MessageApiInjection = {
76
- create(content: ContentType, options?: MessageOptions) {
77
- return create(content, { type: 'default', ...options });
78
- },
79
- info(content: ContentType, options?: MessageOptions) {
80
- return create(content, { ...options, type: 'info' });
81
- },
82
- success(content: ContentType, options?: MessageOptions) {
83
- return create(content, { ...options, type: 'success' });
84
- },
85
- warning(content: ContentType, options?: MessageOptions) {
86
- return create(content, { ...options, type: 'warning' });
87
- },
88
- error(content: ContentType, options?: MessageOptions) {
89
- return create(content, { ...options, type: 'error' });
90
- },
91
- loading(content: ContentType, options?: MessageOptions) {
92
- return create(content, { ...options, type: 'loading' });
93
- },
94
- destroyAll
95
- };
96
-
97
- provide('m-message', api);
98
- function create(
99
- content: ContentType,
100
- options: MessageOptions & { type: MessageType }
101
- ): MessageReactive {
102
- const key = Math.random()
103
- .toString(16)
104
- .slice(2, 2 + 12);
105
- const messageReactive = reactive({
106
- ...options,
107
- content,
108
- key,
109
- destroy: () => {
110
- messageRefs.value[key].hide();
111
- }
112
- });
113
-
114
- messageListRef.value.push(messageReactive);
115
- return messageReactive;
116
- }
117
-
118
- function destroyAll(): void {
119
- //@ts-ignore
120
- Object.values(messageRefs.value).forEach(messageRef => {
121
- messageRef.hide();
122
- });
123
- }
124
-
125
- function onInternalAfterLeave(key: string): void {
126
- messageListRef.value = messageListRef.value.filter(
127
- message => message.key !== key
128
- );
129
- delete messageRefs.value[key];
130
- }
131
-
132
- const classes = computed(() => {
133
- return [
134
- style.wrapper,
135
- // @ts-ignore
136
- [style.placement[props.placement]]
137
- ];
138
- });
139
-
140
- return Object.assign(
141
- {
142
- messageRefs,
143
- messageList: messageListRef,
144
- onInternalAfterLeave,
145
- classes,
146
- modalScale
147
- },
148
- api
149
- );
150
- }
151
- });
152
- </script>
1
+ <template>
2
+ <slot />
3
+ <template v-if="messageList.length > 0">
4
+ <Teleport to="body">
5
+ <transition
6
+ type="animation"
7
+ :enter-active-class="modalScale.enterActive"
8
+ :leave-active-class="modalScale.leaveActive"
9
+ :enter-from-class="modalScale.enterFrom"
10
+ :leave-to-class="modalScale.leaveTo">
11
+ <div :class="classes">
12
+ <MMessage
13
+ v-for="message in messageList"
14
+ :key="message.key"
15
+ :internalKey="message.key"
16
+ :variant="message.type"
17
+ :content="message.content"
18
+ :timeout="message.timeout ?? timeout"
19
+ ref="messageRefs"
20
+ :on-internal-after-leave="onInternalAfterLeave" />
21
+ </div>
22
+ </transition>
23
+ </Teleport>
24
+ </template>
25
+ </template>
26
+
27
+ <script lang="ts">
28
+ import {
29
+ ref,
30
+ reactive,
31
+ defineComponent,
32
+ provide,
33
+ computed
34
+ } from 'vue';
35
+ import type {
36
+ MessageType,
37
+ MessageReactive,
38
+ MessageOptions,
39
+ MessageApiInjection,
40
+ ContentType,
41
+ MessagePlacement
42
+ } from './types';
43
+ import type { PropType } from 'vue';
44
+ import MMessage from './Message.vue';
45
+ import * as style from './style';
46
+ import { modalScale } from '../../styles/transitions.css';
47
+
48
+ interface PrivateMessageReactive extends MessageReactive {
49
+ key: string;
50
+ }
51
+
52
+ interface PrivateMessageRef extends MessageReactive {
53
+ key: string;
54
+ hide: () => void;
55
+ }
56
+
57
+ export default defineComponent({
58
+ name: 'MMessageProvider',
59
+ components: {
60
+ MMessage
61
+ },
62
+ props: {
63
+ placement: {
64
+ type: String as PropType<MessagePlacement>,
65
+ default: 'top'
66
+ },
67
+ timeout: {
68
+ type: Number,
69
+ default: 3000
70
+ }
71
+ },
72
+ setup(props, { slots }) {
73
+ const messageListRef = ref<PrivateMessageReactive[]>([]);
74
+ const messageRefs = ref<Record<string, PrivateMessageRef>>({});
75
+ const api: MessageApiInjection = {
76
+ create(content: ContentType, options?: MessageOptions) {
77
+ return create(content, { type: 'default', ...options });
78
+ },
79
+ info(content: ContentType, options?: MessageOptions) {
80
+ return create(content, { ...options, type: 'info' });
81
+ },
82
+ success(content: ContentType, options?: MessageOptions) {
83
+ return create(content, { ...options, type: 'success' });
84
+ },
85
+ warning(content: ContentType, options?: MessageOptions) {
86
+ return create(content, { ...options, type: 'warning' });
87
+ },
88
+ error(content: ContentType, options?: MessageOptions) {
89
+ return create(content, { ...options, type: 'error' });
90
+ },
91
+ loading(content: ContentType, options?: MessageOptions) {
92
+ return create(content, { ...options, type: 'loading' });
93
+ },
94
+ destroyAll
95
+ };
96
+
97
+ provide('m-message', api);
98
+ function create(
99
+ content: ContentType,
100
+ options: MessageOptions & { type: MessageType }
101
+ ): MessageReactive {
102
+ const key = Math.random()
103
+ .toString(16)
104
+ .slice(2, 2 + 12);
105
+ const messageReactive = reactive({
106
+ ...options,
107
+ content,
108
+ key,
109
+ destroy: () => {
110
+ messageRefs.value[key].hide();
111
+ }
112
+ });
113
+
114
+ messageListRef.value.push(messageReactive);
115
+ return messageReactive;
116
+ }
117
+
118
+ function destroyAll(): void {
119
+ //@ts-ignore
120
+ Object.values(messageRefs.value).forEach(messageRef => {
121
+ messageRef.hide();
122
+ });
123
+ }
124
+
125
+ function onInternalAfterLeave(key: string): void {
126
+ messageListRef.value = messageListRef.value.filter(
127
+ message => message.key !== key
128
+ );
129
+ delete messageRefs.value[key];
130
+ }
131
+
132
+ const classes = computed(() => {
133
+ return [
134
+ style.wrapper,
135
+ // @ts-ignore
136
+ [style.placement[props.placement]]
137
+ ];
138
+ });
139
+
140
+ return Object.assign(
141
+ {
142
+ messageRefs,
143
+ messageList: messageListRef,
144
+ onInternalAfterLeave,
145
+ classes,
146
+ modalScale
147
+ },
148
+ api
149
+ );
150
+ }
151
+ });
152
+ </script>
@@ -1,70 +1,70 @@
1
- <template>
2
- <div>
3
- <button @click="showSuccess">Success</button>
4
- <button @click="showInfo">Info</button>
5
- <button @click="showWarning">Warning</button>
6
- <button @click="showError">Error</button>
7
- <hr />
8
-
9
- <div>
10
- <button @click="showMessage">Success</button><br />
11
-
12
- <button @click="updateNumber">+1</button>
13
-
14
- </div>
15
- </div>
16
- </template>
17
-
18
- <script lang="ts" setup>
19
- import { ref } from 'vue';
20
- import type { MessageReactive } from '../types';
21
- import { useMessage } from '../useMessage';
22
-
23
- const message = useMessage();
24
-
25
- const number = ref(0);
26
- let msg: MessageReactive | null = null;
27
-
28
- const showMessage = () => {
29
- msg = message.loading(`Loading`, {
30
- timeout: 0
31
- });
32
- };
33
-
34
- function updateNumber() {
35
- if (msg) {
36
- // number.value++;
37
- msg.content = `Saved Successfully`;
38
- msg.type = 'success';
39
- msg.timeout = 3000;
40
- }
41
- }
42
-
43
-
44
- const showSuccess = () => {
45
- message.success(`Hello World`, {
46
- timeout: 3000
47
- });
48
- };
49
-
50
- const showInfo = () => {
51
- message.info(`Hello World`, {
52
- timeout: 3000
53
- });
54
- };
55
-
56
- const showWarning = () => {
57
- message.warning(`Hello World`, {
58
- timeout: 3000
59
- });
60
- };
61
-
62
- const showError = () => {
63
- message.error(`Hello World`, {
64
- timeout: 3000
65
- });
66
- };
67
-
68
-
69
-
70
- </script>
1
+ <template>
2
+ <div>
3
+ <button @click="showSuccess">Success</button>
4
+ <button @click="showInfo">Info</button>
5
+ <button @click="showWarning">Warning</button>
6
+ <button @click="showError">Error</button>
7
+ <hr />
8
+
9
+ <div>
10
+ <button @click="showMessage">Success</button><br />
11
+
12
+ <button @click="updateNumber">+1</button>
13
+
14
+ </div>
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import { ref } from 'vue';
20
+ import type { MessageReactive } from '../types';
21
+ import { useMessage } from '../useMessage';
22
+
23
+ const message = useMessage();
24
+
25
+ const number = ref(0);
26
+ let msg: MessageReactive | null = null;
27
+
28
+ const showMessage = () => {
29
+ msg = message.loading(`Loading`, {
30
+ timeout: 0
31
+ });
32
+ };
33
+
34
+ function updateNumber() {
35
+ if (msg) {
36
+ // number.value++;
37
+ msg.content = `Saved Successfully`;
38
+ msg.type = 'success';
39
+ msg.timeout = 3000;
40
+ }
41
+ }
42
+
43
+
44
+ const showSuccess = () => {
45
+ message.success(`Hello World`, {
46
+ timeout: 3000
47
+ });
48
+ };
49
+
50
+ const showInfo = () => {
51
+ message.info(`Hello World`, {
52
+ timeout: 3000
53
+ });
54
+ };
55
+
56
+ const showWarning = () => {
57
+ message.warning(`Hello World`, {
58
+ timeout: 3000
59
+ });
60
+ };
61
+
62
+ const showError = () => {
63
+ message.error(`Hello World`, {
64
+ timeout: 3000
65
+ });
66
+ };
67
+
68
+
69
+
70
+ </script>
@@ -1,26 +1,26 @@
1
- import MMessageProvider from '../MessageProvider.vue';
2
- import { MMessageProviderBasic } from './index';
3
-
4
- const Template = (args: any) => ({
5
- components: {
6
- MMessageProvider,
7
- MMessageProviderBasic
8
- },
9
- setup() {
10
- return {
11
- args
12
- };
13
- },
14
- template: `
15
- <m-message-provider v-bind="args">
16
- <MMessageProviderBasic />
17
- </m-message-provider>
18
- `
19
- });
20
-
21
- export default {
22
- component: MMessageProvider,
23
- title: 'Components/MessageProvider'
24
- };
25
-
26
- export const Primary = Template.bind({});
1
+ import MMessageProvider from '../MessageProvider.vue';
2
+ import { MMessageProviderBasic } from './index';
3
+
4
+ const Template = (args: any) => ({
5
+ components: {
6
+ MMessageProvider,
7
+ MMessageProviderBasic
8
+ },
9
+ setup() {
10
+ return {
11
+ args
12
+ };
13
+ },
14
+ template: `
15
+ <m-message-provider v-bind="args">
16
+ <MMessageProviderBasic />
17
+ </m-message-provider>
18
+ `
19
+ });
20
+
21
+ export default {
22
+ component: MMessageProvider,
23
+ title: 'Components/MessageProvider'
24
+ };
25
+
26
+ export const Primary = Template.bind({});
@@ -1,2 +1,2 @@
1
- export { default as MMessageProviderBasic } from './basic.vue';
2
- export { default as MMessageProviderUpdate } from './update.vue';
1
+ export { default as MMessageProviderBasic } from './basic.vue';
2
+ export { default as MMessageProviderUpdate } from './update.vue';
@@ -1,34 +1,34 @@
1
- <template>
2
- <div>
3
- <button @click="showMessage">Success</button><br />
4
-
5
- <button @click="updateNumber">+1</button>
6
-
7
- </div>
8
- </template>
9
-
10
- <script lang="ts" setup>
11
- import { ref } from 'vue';
12
- import type { MessageReactive } from '../types';
13
- import { useMessage } from '../useMessage';
14
-
15
- const message = useMessage();
16
-
17
- const number = ref(0);
18
- let msg: MessageReactive | null = null;
19
-
20
- const showMessage = () => {
21
- msg = message.success(`Hello World`, {
22
- timeout: 3000
23
- });
24
- };
25
-
26
- function updateNumber() {
27
- if (msg) {
28
- number.value++;
29
- msg.content = `Hello World ${number.value}`;
30
- }
31
- }
32
-
33
-
34
- </script>
1
+ <template>
2
+ <div>
3
+ <button @click="showMessage">Success</button><br />
4
+
5
+ <button @click="updateNumber">+1</button>
6
+
7
+ </div>
8
+ </template>
9
+
10
+ <script lang="ts" setup>
11
+ import { ref } from 'vue';
12
+ import type { MessageReactive } from '../types';
13
+ import { useMessage } from '../useMessage';
14
+
15
+ const message = useMessage();
16
+
17
+ const number = ref(0);
18
+ let msg: MessageReactive | null = null;
19
+
20
+ const showMessage = () => {
21
+ msg = message.success(`Hello World`, {
22
+ timeout: 3000
23
+ });
24
+ };
25
+
26
+ function updateNumber() {
27
+ if (msg) {
28
+ number.value++;
29
+ msg.content = `Hello World ${number.value}`;
30
+ }
31
+ }
32
+
33
+
34
+ </script>
@@ -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>