Commit 40008bc235b35b2cf097555854d18f369eadf707
1 parent
00fca0fe
refactor: refactor CountTo component
Showing
8 changed files
with
130 additions
and
203 deletions
CHANGELOG.zh_CN.md
1 | 1 | ## Wip |
2 | 2 | |
3 | +### ✨ Refactor | |
4 | + | |
5 | +- `CountTo`组件重构 | |
6 | + | |
7 | +### ✨ Features | |
8 | + | |
3 | 9 | - `radioButtonGroup` 支持`boolean`值 |
4 | 10 | - `useModalInner` 新增 `redoModalHeight`用于在 Modal 内部重设`Modal`高度 |
5 | 11 | - `useECharts` 新增`getInstance`用于获取`echart`实例 |
... | ... | @@ -12,7 +18,7 @@ |
12 | 18 | - `BasicTable`新增`updateTableDataRecord`方法用于更新指定行数据 |
13 | 19 | - `useModal`新增`closeModal`方法用于关闭`Modal` |
14 | 20 | |
15 | -## Bug Fixes | |
21 | +### 🐛 Bug Fixes | |
16 | 22 | |
17 | 23 | - 修复`redoModalHeight`不能减小高度的问题 |
18 | 24 | - 修复 `BasicForm`设置 schemas 数据不生效的问题 | ... | ... |
package.json
... | ... | @@ -33,16 +33,16 @@ |
33 | 33 | }, |
34 | 34 | "dependencies": { |
35 | 35 | "@iconify/iconify": "^2.0.1", |
36 | - "@logicflow/core": "^0.4.11", | |
37 | - "@logicflow/extension": "^0.4.12", | |
38 | - "@vueuse/core": "^5.0.1", | |
36 | + "@logicflow/core": "^0.4.13", | |
37 | + "@logicflow/extension": "^0.4.13", | |
38 | + "@vueuse/core": "^5.0.2", | |
39 | 39 | "@zxcvbn-ts/core": "^0.3.0", |
40 | 40 | "ant-design-vue": "2.1.2", |
41 | 41 | "axios": "^0.21.1", |
42 | 42 | "codemirror": "^5.61.1", |
43 | 43 | "cropperjs": "^1.5.11", |
44 | 44 | "crypto-js": "^4.0.0", |
45 | - "echarts": "^5.1.1", | |
45 | + "echarts": "^5.1.2", | |
46 | 46 | "lodash-es": "^4.17.21", |
47 | 47 | "mockjs": "^1.1.0", |
48 | 48 | "nprogress": "^0.2.0", |
... | ... | @@ -115,13 +115,13 @@ |
115 | 115 | "vite-plugin-compression": "^0.2.5", |
116 | 116 | "vite-plugin-html": "^2.0.7", |
117 | 117 | "vite-plugin-imagemin": "^0.3.2", |
118 | - "vite-plugin-mock": "^2.7.0", | |
118 | + "vite-plugin-mock": "^2.7.1", | |
119 | 119 | "vite-plugin-purge-icons": "^0.7.0", |
120 | 120 | "vite-plugin-pwa": "^0.7.3", |
121 | 121 | "vite-plugin-style-import": "^0.10.1", |
122 | 122 | "vite-plugin-svg-icons": "^0.7.0", |
123 | 123 | "vite-plugin-theme": "^0.8.1", |
124 | - "vite-plugin-windicss": "^1.0.2", | |
124 | + "vite-plugin-windicss": "^1.0.3", | |
125 | 125 | "vue-eslint-parser": "^7.6.0", |
126 | 126 | "vue-tsc": "^0.1.7" |
127 | 127 | }, | ... | ... |
src/components/ContextMenu/src/ContextMenu.vue
... | ... | @@ -71,7 +71,8 @@ |
71 | 71 | }); |
72 | 72 | |
73 | 73 | onUnmounted(() => { |
74 | - unref(wrapRef) && document.body.removeChild(el); | |
74 | + const el = unref(wrapRef); | |
75 | + el && document.body.removeChild(el); | |
75 | 76 | }); |
76 | 77 | |
77 | 78 | function handleAction(item: ContextMenuItem, e: MouseEvent) { |
... | ... | @@ -118,8 +119,10 @@ |
118 | 119 | }); |
119 | 120 | } |
120 | 121 | return () => { |
122 | + if (!unref(showRef)) { | |
123 | + return null; | |
124 | + } | |
121 | 125 | const { items } = props; |
122 | - if (!unref(showRef)) return null; | |
123 | 126 | return ( |
124 | 127 | <Menu |
125 | 128 | inlineIndent={12} | ... | ... |
src/components/CountTo/index.ts
1 | -// Transform vue-count-to to support vue3 version | |
1 | +import { withInstall } from '/@/utils'; | |
2 | +import countTo from './src/CountTo.vue'; | |
2 | 3 | |
3 | -import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; | |
4 | -export const CountTo = createAsyncComponent(() => import('./src/CountTo.vue')); | |
4 | +export const CountTo = withInstall(countTo); | ... | ... |
src/components/CountTo/src/CountTo.vue
1 | 1 | <template> |
2 | - <span :style="{ color: color }"> | |
3 | - {{ displayValue }} | |
2 | + <span :style="{ color }"> | |
3 | + {{ value }} | |
4 | 4 | </span> |
5 | 5 | </template> |
6 | 6 | <script lang="ts"> |
7 | - import { defineComponent, reactive, computed, watch, onMounted, unref, toRef } from 'vue'; | |
8 | - import { countToProps } from './props'; | |
7 | + import { defineComponent, ref, computed, watchEffect, unref, onMounted, watch } from 'vue'; | |
8 | + import { useTransition, TransitionPresets } from '@vueuse/core'; | |
9 | 9 | import { isNumber } from '/@/utils/is'; |
10 | + | |
11 | + const props = { | |
12 | + startVal: { type: Number, default: 0 }, | |
13 | + endVal: { type: Number, default: 2021 }, | |
14 | + duration: { type: Number, default: 1500 }, | |
15 | + autoplay: { type: Boolean, default: true }, | |
16 | + decimals: { | |
17 | + type: Number, | |
18 | + default: 0, | |
19 | + validator(value: number) { | |
20 | + return value >= 0; | |
21 | + }, | |
22 | + }, | |
23 | + prefix: { type: String, default: '' }, | |
24 | + suffix: { type: String, default: '' }, | |
25 | + separator: { type: String, default: ',' }, | |
26 | + decimal: { type: String, default: '.' }, | |
27 | + /** | |
28 | + * font color | |
29 | + */ | |
30 | + color: { type: String }, | |
31 | + /** | |
32 | + * Turn on digital animation | |
33 | + */ | |
34 | + useEasing: { type: Boolean, default: true }, | |
35 | + /** | |
36 | + * Digital animation | |
37 | + */ | |
38 | + transition: { type: String, default: 'linear' }, | |
39 | + }; | |
40 | + | |
10 | 41 | export default defineComponent({ |
11 | 42 | name: 'CountTo', |
12 | - props: countToProps, | |
13 | - emits: ['mounted', 'callback'], | |
43 | + props, | |
44 | + emits: ['onStarted', 'onFinished'], | |
14 | 45 | setup(props, { emit }) { |
15 | - const state = reactive<{ | |
16 | - localStartVal: number; | |
17 | - printVal: number | null; | |
18 | - displayValue: string; | |
19 | - paused: boolean; | |
20 | - localDuration: number | null; | |
21 | - startTime: number | null; | |
22 | - timestamp: number | null; | |
23 | - rAF: any; | |
24 | - remaining: number | null; | |
25 | - color: any; | |
26 | - }>({ | |
27 | - localStartVal: props.startVal, | |
28 | - displayValue: formatNumber(props.startVal), | |
29 | - printVal: null, | |
30 | - paused: false, | |
31 | - localDuration: props.duration, | |
32 | - startTime: null, | |
33 | - timestamp: null, | |
34 | - remaining: null, | |
35 | - rAF: null, | |
36 | - color: null, | |
37 | - }); | |
46 | + const source = ref(props.startVal); | |
47 | + const disabled = ref(false); | |
48 | + let outputValue = useTransition(source); | |
38 | 49 | |
39 | - onMounted(() => { | |
40 | - if (props.autoplay) { | |
41 | - start(); | |
42 | - } | |
43 | - emit('mounted'); | |
44 | - }); | |
50 | + const value = computed(() => formatNumber(unref(outputValue))); | |
45 | 51 | |
46 | - const getCountDown = computed(() => { | |
47 | - return props.startVal > props.endVal; | |
52 | + watchEffect(() => { | |
53 | + source.value = props.startVal; | |
48 | 54 | }); |
49 | 55 | |
50 | 56 | watch([() => props.startVal, () => props.endVal], () => { |
... | ... | @@ -53,93 +59,42 @@ |
53 | 59 | } |
54 | 60 | }); |
55 | 61 | |
56 | - function start() { | |
57 | - const { startVal, duration, color } = props; | |
58 | - state.localStartVal = startVal; | |
59 | - state.startTime = null; | |
60 | - state.localDuration = duration; | |
61 | - state.color = color; | |
62 | - state.paused = false; | |
63 | - state.rAF = requestAnimationFrame(count); | |
64 | - } | |
65 | - | |
66 | - function pauseResume() { | |
67 | - if (state.paused) { | |
68 | - resume(); | |
69 | - state.paused = false; | |
70 | - } else { | |
71 | - pause(); | |
72 | - state.paused = true; | |
73 | - } | |
74 | - } | |
75 | - | |
76 | - function pause() { | |
77 | - cancelAnimationFrame(state.rAF); | |
78 | - } | |
62 | + onMounted(() => { | |
63 | + props.autoplay && start(); | |
64 | + }); | |
79 | 65 | |
80 | - function resume() { | |
81 | - state.startTime = null; | |
82 | - state.localDuration = +(state.remaining as number); | |
83 | - state.localStartVal = +(state.printVal as number); | |
84 | - requestAnimationFrame(count); | |
66 | + function start() { | |
67 | + run(); | |
68 | + source.value = props.endVal; | |
85 | 69 | } |
86 | 70 | |
87 | 71 | function reset() { |
88 | - state.startTime = null; | |
89 | - cancelAnimationFrame(state.rAF); | |
90 | - state.displayValue = formatNumber(props.startVal); | |
72 | + source.value = props.startVal; | |
73 | + run(); | |
91 | 74 | } |
92 | 75 | |
93 | - function count(timestamp: number) { | |
94 | - const { useEasing, easingFn, endVal } = props; | |
95 | - if (!state.startTime) state.startTime = timestamp; | |
96 | - state.timestamp = timestamp; | |
97 | - const progress = timestamp - state.startTime; | |
98 | - state.remaining = (state.localDuration as number) - progress; | |
99 | - if (useEasing) { | |
100 | - if (unref(getCountDown)) { | |
101 | - state.printVal = | |
102 | - state.localStartVal - | |
103 | - easingFn(progress, 0, state.localStartVal - endVal, state.localDuration as number); | |
104 | - } else { | |
105 | - state.printVal = easingFn( | |
106 | - progress, | |
107 | - state.localStartVal, | |
108 | - endVal - state.localStartVal, | |
109 | - state.localDuration as number | |
110 | - ); | |
111 | - } | |
112 | - } else { | |
113 | - if (unref(getCountDown)) { | |
114 | - state.printVal = | |
115 | - state.localStartVal - | |
116 | - (state.localStartVal - endVal) * (progress / (state.localDuration as number)); | |
117 | - } else { | |
118 | - state.printVal = | |
119 | - state.localStartVal + | |
120 | - (endVal - state.localStartVal) * (progress / (state.localDuration as number)); | |
121 | - } | |
122 | - } | |
123 | - if (unref(getCountDown)) { | |
124 | - state.printVal = state.printVal < endVal ? endVal : state.printVal; | |
125 | - } else { | |
126 | - state.printVal = state.printVal > endVal ? endVal : state.printVal; | |
127 | - } | |
128 | - state.displayValue = formatNumber(state.printVal); | |
129 | - if (progress < (state.localDuration as number)) { | |
130 | - state.rAF = requestAnimationFrame(count); | |
131 | - } else { | |
132 | - emit('callback'); | |
133 | - } | |
76 | + function run() { | |
77 | + outputValue = useTransition(source, { | |
78 | + disabled, | |
79 | + duration: props.duration, | |
80 | + onFinished: () => emit('onFinished'), | |
81 | + onStarted: () => emit('onStarted'), | |
82 | + ...(props.useEasing ? { transition: TransitionPresets[props.transition] } : {}), | |
83 | + }); | |
134 | 84 | } |
135 | 85 | |
136 | 86 | function formatNumber(num: number | string) { |
87 | + if (!num) { | |
88 | + return ''; | |
89 | + } | |
137 | 90 | const { decimals, decimal, separator, suffix, prefix } = props; |
138 | 91 | num = Number(num).toFixed(decimals); |
139 | 92 | num += ''; |
93 | + | |
140 | 94 | const x = num.split('.'); |
141 | 95 | let x1 = x[0]; |
142 | 96 | const x2 = x.length > 1 ? decimal + x[1] : ''; |
97 | + | |
143 | 98 | const rgx = /(\d+)(\d{3})/; |
144 | 99 | if (separator && !isNumber(separator)) { |
145 | 100 | while (rgx.test(x1)) { |
... | ... | @@ -149,14 +104,7 @@ |
149 | 104 | return prefix + x1 + x2 + suffix; |
150 | 105 | } |
151 | 106 | |
152 | - return { | |
153 | - count, | |
154 | - reset, | |
155 | - resume, | |
156 | - start, | |
157 | - pauseResume, | |
158 | - displayValue: toRef(state, 'displayValue'), | |
159 | - }; | |
107 | + return { value, start, reset }; | |
160 | 108 | }, |
161 | 109 | }); |
162 | 110 | </script> | ... | ... |
src/components/CountTo/src/props.ts deleted
100644 → 0
1 | -import { PropType } from 'vue'; | |
2 | -import { propTypes } from '/@/utils/propTypes'; | |
3 | -export const countToProps = { | |
4 | - startVal: propTypes.number.def(0), | |
5 | - endVal: propTypes.number.def(2020), | |
6 | - duration: propTypes.number.def(1300), | |
7 | - autoplay: propTypes.bool.def(true), | |
8 | - decimals: { | |
9 | - type: Number as PropType<number>, | |
10 | - required: false, | |
11 | - default: 0, | |
12 | - validator(value: number) { | |
13 | - return value >= 0; | |
14 | - }, | |
15 | - }, | |
16 | - color: { | |
17 | - type: String as PropType<string>, | |
18 | - require: false, | |
19 | - }, | |
20 | - decimal: propTypes.string.def('.'), | |
21 | - separator: propTypes.string.def(','), | |
22 | - prefix: propTypes.string.def(''), | |
23 | - suffix: propTypes.string.def(''), | |
24 | - useEasing: propTypes.bool.def(true), | |
25 | - easingFn: { | |
26 | - type: Function as PropType<(t: number, b: number, c: number, d: number) => number>, | |
27 | - default(t: number, b: number, c: number, d: number) { | |
28 | - return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b; | |
29 | - }, | |
30 | - }, | |
31 | -}; |
src/components/Cropper/src/Cropper.vue
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | |
21 | 21 | type Options = Cropper.Options; |
22 | 22 | |
23 | - const defaultOptions: Cropper.Options = { | |
23 | + const defaultOptions: Options = { | |
24 | 24 | aspectRatio: 16 / 9, |
25 | 25 | zoomable: true, |
26 | 26 | zoomOnTouch: true, |
... | ... | @@ -42,6 +42,7 @@ |
42 | 42 | movable: true, |
43 | 43 | rotatable: true, |
44 | 44 | }; |
45 | + | |
45 | 46 | export default defineComponent({ |
46 | 47 | name: 'CropperImage', |
47 | 48 | props: { |
... | ... | @@ -108,9 +109,9 @@ |
108 | 109 | let imgInfo = cropper.value.getData(); |
109 | 110 | cropper.value.getCroppedCanvas().toBlob((blob) => { |
110 | 111 | let fileReader: FileReader = new FileReader(); |
111 | - fileReader.onloadend = (e: any) => { | |
112 | + fileReader.onloadend = (e) => { | |
112 | 113 | ctx.emit('cropperedInfo', { |
113 | - imgBase64: e.target.result, | |
114 | + imgBase64: e.target?.result ?? '', | |
114 | 115 | imgInfo, |
115 | 116 | }); |
116 | 117 | }; | ... | ... |
yarn.lock
... | ... | @@ -1252,21 +1252,21 @@ |
1252 | 1252 | "@intlify/runtime" "9.1.6" |
1253 | 1253 | "@intlify/shared" "9.1.6" |
1254 | 1254 | |
1255 | -"@logicflow/core@^0.4.11": | |
1256 | - version "0.4.11" | |
1257 | - resolved "https://registry.yarnpkg.com/@logicflow/core/-/core-0.4.11.tgz#3c617e5cddb47e7052d62fee56ba77ab45b1cd25" | |
1258 | - integrity sha512-FlErJRyKw+XzyT0/0hha8Dwsiok9Cri2ZS2/SDmqLdUK6I3rD6LpmVabj8LjYH4IWb0fOYSfgGhY4oWQAKqa9g== | |
1255 | +"@logicflow/core@^0.4.13": | |
1256 | + version "0.4.13" | |
1257 | + resolved "https://registry.npmjs.org/@logicflow/core/-/core-0.4.13.tgz#69d1e7a30b5e545ada3a2e980059f3e6f6923f15" | |
1258 | + integrity sha512-xOLz8RO6ldAT5H9Q2Ewt9d7z146B54TUom5EXzJ/jx/s1Phy24vP8tAGu6LuoTEitgNHTRQq7WxvH9NqnpxCpg== | |
1259 | 1259 | dependencies: |
1260 | 1260 | "@types/mousetrap" "^1.6.4" |
1261 | 1261 | mousetrap "^1.6.5" |
1262 | 1262 | preact "^10.4.8" |
1263 | 1263 | |
1264 | -"@logicflow/extension@^0.4.12": | |
1265 | - version "0.4.12" | |
1266 | - resolved "https://registry.yarnpkg.com/@logicflow/extension/-/extension-0.4.12.tgz#be69e8ebbcffee6bb0f07778f2126ad98f93f64a" | |
1267 | - integrity sha512-fD0bXxYIEo1d047A3PXkAVMH6vM5y8AAIfLxnXxdMJGOVLH44iWCO6eNW8bvnoab7aSmhj2MWMgY3op5XVZh1Q== | |
1264 | +"@logicflow/extension@^0.4.13": | |
1265 | + version "0.4.13" | |
1266 | + resolved "https://registry.npmjs.org/@logicflow/extension/-/extension-0.4.13.tgz#b1c87b5458345414cc6c5fb813511e62db4acfa7" | |
1267 | + integrity sha512-DAfgO9A5VrJ4oXruTYGgmDGvZAIaT2kLAlTE+luyg4eld6YsgwWXqXazJWCd9ObdAJkLYCf7lU27hZsDNqqbrg== | |
1268 | 1268 | dependencies: |
1269 | - "@logicflow/core" "^0.4.11" | |
1269 | + "@logicflow/core" "^0.4.13" | |
1270 | 1270 | ids "^1.0.0" |
1271 | 1271 | preact "^10.4.8" |
1272 | 1272 | |
... | ... | @@ -2033,25 +2033,25 @@ |
2033 | 2033 | resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.11.tgz#20d22dd0da7d358bb21c17f9bde8628152642c77" |
2034 | 2034 | integrity sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA== |
2035 | 2035 | |
2036 | -"@vueuse/core@^5.0.1": | |
2037 | - version "5.0.1" | |
2038 | - resolved "https://registry.npmjs.org/@vueuse/core/-/core-5.0.1.tgz#94bbb6c71d95b79efbdb24111915775e61723f1b" | |
2039 | - integrity sha512-hzcyYNvW1p9ZEwm+oBaWrHgGx6S93pJBiXLZUj2pgCNiJZjaedoePT9xzesi1SBxeKcYxwToaTISLeKdE4VKeg== | |
2036 | +"@vueuse/core@^5.0.2": | |
2037 | + version "5.0.2" | |
2038 | + resolved "https://registry.npmjs.org/@vueuse/core/-/core-5.0.2.tgz#302389f620c0d4b51fdf157012d9b5b522b605e7" | |
2039 | + integrity sha512-Sp9+7AL4Cg3Tx6I55WoH7zICGRlp6ZUF9NW3EU8SZTkryHm0afAjFfASMwlfV030JFeh45BdqafDOrenVmM9Cw== | |
2040 | 2040 | dependencies: |
2041 | - "@vueuse/shared" "5.0.1" | |
2041 | + "@vueuse/shared" "5.0.2" | |
2042 | 2042 | vue-demi "*" |
2043 | 2043 | |
2044 | -"@vueuse/shared@5.0.1": | |
2045 | - version "5.0.1" | |
2046 | - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-5.0.1.tgz#3b6607ffc9e19b322c39be8a2f6b584d203a7c5e" | |
2047 | - integrity sha512-/+kRII9chn45PhFfRuPVbSQApJHhhqXFhPrWjnYKckMfQE9ZOuNMb1bmQnDTqzuNkoS/ENeHBMq0rnV/cfz/3Q== | |
2044 | +"@vueuse/shared@5.0.2": | |
2045 | + version "5.0.2" | |
2046 | + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-5.0.2.tgz#274c2bf163d25eb7fd2fc51f23088a2b7f060594" | |
2047 | + integrity sha512-S1hRRmEdipjTD4DbXgPdw4ZZYebU/nDi75vNP3Ibpa1irW3NUNUKOT/TWnwRHLQvXquUtdvalhI8D9Db+czZJg== | |
2048 | 2048 | dependencies: |
2049 | 2049 | vue-demi "*" |
2050 | 2050 | |
2051 | -"@windicss/plugin-utils@1.0.2": | |
2052 | - version "1.0.2" | |
2053 | - resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-1.0.2.tgz#c34d6498058d5f4291805027d2ef6e34638a572a" | |
2054 | - integrity sha512-W9fZoPNsD3NMVyqzt9eNb1DNp9p4oy7EscCfGVIg1KBxAC8S+AnXtkaR/rad09y+aqzbILKNfzDKdimDR2FA9g== | |
2051 | +"@windicss/plugin-utils@1.0.3": | |
2052 | + version "1.0.3" | |
2053 | + resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-1.0.3.tgz#04d039ef56b58180079df3f9b3bd8a21a57368d3" | |
2054 | + integrity sha512-SBYjmWBO+dOqxJgyyOAETOuMdcugvVgZYQc3rb7KtcTW5u9UkFXtiuGdoq8cWyFpSkn46gmjCb4WNbY3kEIVnQ== | |
2055 | 2055 | dependencies: |
2056 | 2056 | "@antfu/utils" "^0.1.6" |
2057 | 2057 | debug "^4.3.2" |
... | ... | @@ -4050,13 +4050,13 @@ duplexer3@^0.1.4: |
4050 | 4050 | resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" |
4051 | 4051 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= |
4052 | 4052 | |
4053 | -echarts@^5.1.1: | |
4054 | - version "5.1.1" | |
4055 | - resolved "https://registry.npmjs.org/echarts/-/echarts-5.1.1.tgz#b186f162f017c555cfd67b12ede6762bdc3ddfda" | |
4056 | - integrity sha512-b3nP8M9XwZM2jISuA+fP0EuJv8lcfgWrinel185Npy8bE/UhXTDIPJcqgQOCWdvk0c5CeT6Dsm1xBjmJXAGlxQ== | |
4053 | +echarts@^5.1.2: | |
4054 | + version "5.1.2" | |
4055 | + resolved "https://registry.npmjs.org/echarts/-/echarts-5.1.2.tgz#aa1ab0cef5b74fa2f7c620261a5f286893d30fd1" | |
4056 | + integrity sha512-okUhO4sw22vwZp+rTPNjd/bvTdpug4K4sHNHyrV8NdAncIX9/AarlolFqtJCAYKGFYhUBNjIWu1EznFrSWTFxg== | |
4057 | 4057 | dependencies: |
4058 | 4058 | tslib "2.0.3" |
4059 | - zrender "5.1.0" | |
4059 | + zrender "5.1.1" | |
4060 | 4060 | |
4061 | 4061 | ecstatic@^3.3.2: |
4062 | 4062 | version "3.3.2" |
... | ... | @@ -10573,10 +10573,10 @@ vite-plugin-imagemin@^0.3.2: |
10573 | 10573 | imagemin-svgo "^8.0.0" |
10574 | 10574 | imagemin-webp "^6.0.0" |
10575 | 10575 | |
10576 | -vite-plugin-mock@^2.7.0: | |
10577 | - version "2.7.0" | |
10578 | - resolved "https://registry.yarnpkg.com/vite-plugin-mock/-/vite-plugin-mock-2.7.0.tgz#21aec0397e29d013c87d765c56d177728d4288b4" | |
10579 | - integrity sha512-hB3MbnQlrmqGOigbPB+UsUQ/ZjTisj75FprJ7IDw8pDYQjWmHC7AtmDOHdzpGYPKEEX1mz7UhGJ93LLarPqJNg== | |
10576 | +vite-plugin-mock@^2.7.1: | |
10577 | + version "2.7.1" | |
10578 | + resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.7.1.tgz#c7d25277f7b88158cd3927c1abee7c7721ed92d3" | |
10579 | + integrity sha512-UnYcb4UZrpe5fHBNFNEJQetnR32+XxrduTYhyDQTtXmaJ9Yy+JuBfIT6Mueyf7MGPe8T6hNgIEYaMLSUD5+nWA== | |
10580 | 10580 | dependencies: |
10581 | 10581 | "@rollup/plugin-node-resolve" "^11.2.1" |
10582 | 10582 | "@types/mockjs" "^1.0.3" |
... | ... | @@ -10647,12 +10647,12 @@ vite-plugin-theme@^0.8.1: |
10647 | 10647 | esbuild-plugin-alias "^0.1.2" |
10648 | 10648 | tinycolor2 "^1.4.2" |
10649 | 10649 | |
10650 | -vite-plugin-windicss@^1.0.2: | |
10651 | - version "1.0.2" | |
10652 | - resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.0.2.tgz#0d0fd1ff36dc81d348be755e59a8ee471941095c" | |
10653 | - integrity sha512-iTmkxm8Yp+ZCFWLOs//9q3d4hYaBVDlkRGLzNBUNvRW9AQFVea57ZPhglMm9xOt1nW/O68n5Rkg4/In8rrEjHQ== | |
10650 | +vite-plugin-windicss@^1.0.3: | |
10651 | + version "1.0.3" | |
10652 | + resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.0.3.tgz#bd45cfee13777e7b57c37a257ebcb7e73fee94ab" | |
10653 | + integrity sha512-y9pudcMajdI88PTs49qGftlfAvsLUUhK2Eig+xn5sgxPCbAc3Rj5phXJkRzGDqfmEzGwbpF6JwjmiGmZkm8V+g== | |
10654 | 10654 | dependencies: |
10655 | - "@windicss/plugin-utils" "1.0.2" | |
10655 | + "@windicss/plugin-utils" "1.0.3" | |
10656 | 10656 | chalk "^4.1.1" |
10657 | 10657 | debug "^4.3.2" |
10658 | 10658 | windicss "^3.1.3" |
... | ... | @@ -11321,10 +11321,10 @@ yocto-queue@^0.1.0: |
11321 | 11321 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" |
11322 | 11322 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== |
11323 | 11323 | |
11324 | -zrender@5.1.0: | |
11325 | - version "5.1.0" | |
11326 | - resolved "https://registry.npmjs.org/zrender/-/zrender-5.1.0.tgz#b6a84c3aa7ccc6642ee0519901ca4c0835c4d85e" | |
11327 | - integrity sha512-c+8VRx52ycbmqwHeHLlo/BAfIHBl/JZNLM6cfDQFgzIH05yb+f5J9F/fbRsP+zGc8dW9XHuhdt8/iqukgMZSeg== | |
11324 | +zrender@5.1.1: | |
11325 | + version "5.1.1" | |
11326 | + resolved "https://registry.npmjs.org/zrender/-/zrender-5.1.1.tgz#0515f4f8cc0f4742f02a6b8819550a6d13d64c5c" | |
11327 | + integrity sha512-oeWlmUZPQdS9f5hK4pV21tHPqA3wgQ7CkKkw7l0CCBgWlJ/FP+lRgLFtUBW6yam4JX8y9CdHJo1o587VVrbcoQ== | |
11328 | 11328 | dependencies: |
11329 | 11329 | tslib "2.0.3" |
11330 | 11330 | ... | ... |