@element-plus/nightly 0.0.20221207 → 0.0.20221209
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/attributes.json +1 -1
- package/dist/index.full.js +93 -101
- package/dist/index.full.min.js +13 -13
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +13 -13
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +93 -101
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/checkbox/index.d.ts +24 -20
- package/es/components/checkbox/src/checkbox-button.mjs +10 -7
- package/es/components/checkbox/src/checkbox-button.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox-button.vue.d.ts +1 -0
- package/es/components/checkbox/src/checkbox-group.d.ts +3 -2
- package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox-group.vue.d.ts +14 -14
- package/es/components/checkbox/src/checkbox-group2.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox.d.ts +42 -0
- package/es/components/checkbox/src/checkbox.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox.vue.d.ts +2 -0
- package/es/components/checkbox/src/checkbox2.mjs +21 -15
- package/es/components/checkbox/src/checkbox2.mjs.map +1 -1
- package/es/components/color-picker/index.d.ts +1 -0
- package/es/components/color-picker/src/color-picker.mjs.map +1 -1
- package/es/components/color-picker/src/color-picker.vue.d.ts +1 -0
- package/es/components/color-picker/src/color-picker2.mjs +8 -5
- package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
- package/es/components/index.mjs +1 -1
- package/es/components/statistic/index.d.ts +55 -50
- package/es/components/statistic/index.mjs +1 -1
- package/es/components/statistic/src/countdown.d.ts +8 -8
- package/es/components/statistic/src/countdown.mjs +29 -27
- package/es/components/statistic/src/countdown.mjs.map +1 -1
- package/es/components/statistic/src/countdown.vue.d.ts +20 -23
- package/es/components/statistic/src/countdown2.mjs +14 -22
- package/es/components/statistic/src/countdown2.mjs.map +1 -1
- package/es/components/statistic/src/statistic.d.ts +12 -8
- package/es/components/statistic/src/statistic.mjs +10 -24
- package/es/components/statistic/src/statistic.mjs.map +1 -1
- package/es/components/statistic/src/statistic.vue.d.ts +35 -27
- package/es/components/statistic/src/statistic2.mjs +6 -5
- package/es/components/statistic/src/statistic2.mjs.map +1 -1
- package/es/components/transfer/index.d.ts +115 -100
- package/es/components/transfer/src/transfer-panel.vue.d.ts +23 -20
- package/es/components/transfer/src/transfer.vue.d.ts +115 -100
- package/es/components/tree-v2/index.d.ts +13 -10
- package/es/components/tree-v2/src/tree-node.vue.d.ts +13 -10
- package/es/components/tree-v2/src/tree.vue.d.ts +13 -10
- package/es/index.mjs +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/checkbox/index.d.ts +24 -20
- package/lib/components/checkbox/src/checkbox-button.js +10 -7
- package/lib/components/checkbox/src/checkbox-button.js.map +1 -1
- package/lib/components/checkbox/src/checkbox-button.vue.d.ts +1 -0
- package/lib/components/checkbox/src/checkbox-group.d.ts +3 -2
- package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
- package/lib/components/checkbox/src/checkbox-group.vue.d.ts +14 -14
- package/lib/components/checkbox/src/checkbox-group2.js.map +1 -1
- package/lib/components/checkbox/src/checkbox.d.ts +42 -0
- package/lib/components/checkbox/src/checkbox.js.map +1 -1
- package/lib/components/checkbox/src/checkbox.vue.d.ts +2 -0
- package/lib/components/checkbox/src/checkbox2.js +20 -14
- package/lib/components/checkbox/src/checkbox2.js.map +1 -1
- package/lib/components/color-picker/index.d.ts +1 -0
- package/lib/components/color-picker/src/color-picker.js.map +1 -1
- package/lib/components/color-picker/src/color-picker.vue.d.ts +1 -0
- package/lib/components/color-picker/src/color-picker2.js +8 -5
- package/lib/components/color-picker/src/color-picker2.js.map +1 -1
- package/lib/components/index.js +1 -1
- package/lib/components/statistic/index.d.ts +55 -50
- package/lib/components/statistic/index.js +1 -1
- package/lib/components/statistic/src/countdown.d.ts +8 -8
- package/lib/components/statistic/src/countdown.js +28 -30
- package/lib/components/statistic/src/countdown.js.map +1 -1
- package/lib/components/statistic/src/countdown.vue.d.ts +20 -23
- package/lib/components/statistic/src/countdown2.js +13 -21
- package/lib/components/statistic/src/countdown2.js.map +1 -1
- package/lib/components/statistic/src/statistic.d.ts +12 -8
- package/lib/components/statistic/src/statistic.js +10 -24
- package/lib/components/statistic/src/statistic.js.map +1 -1
- package/lib/components/statistic/src/statistic.vue.d.ts +35 -27
- package/lib/components/statistic/src/statistic2.js +5 -4
- package/lib/components/statistic/src/statistic2.js.map +1 -1
- package/lib/components/transfer/index.d.ts +115 -100
- package/lib/components/transfer/src/transfer-panel.vue.d.ts +23 -20
- package/lib/components/transfer/src/transfer.vue.d.ts +115 -100
- package/lib/components/tree-v2/index.d.ts +13 -10
- package/lib/components/tree-v2/src/tree-node.vue.d.ts +13 -10
- package/lib/components/tree-v2/src/tree.vue.d.ts +13 -10
- package/lib/index.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- package/web-types.json +1 -1
|
@@ -1,38 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import dayjs from 'dayjs';
|
|
1
|
+
import { padStart } from 'lodash-unified';
|
|
3
2
|
import '../../../utils/index.mjs';
|
|
3
|
+
import '../../../constants/index.mjs';
|
|
4
4
|
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
|
5
|
+
import { CHANGE_EVENT } from '../../../constants/event.mjs';
|
|
6
|
+
import { isNumber } from '@vueuse/core';
|
|
5
7
|
|
|
6
8
|
const countdownProps = buildProps({
|
|
7
9
|
format: {
|
|
8
10
|
type: String,
|
|
9
11
|
default: "HH:mm:ss"
|
|
10
12
|
},
|
|
11
|
-
prefix:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
suffix: {
|
|
16
|
-
type: String,
|
|
17
|
-
default: null
|
|
18
|
-
},
|
|
19
|
-
title: {
|
|
20
|
-
type: [String, Number],
|
|
21
|
-
default: ""
|
|
22
|
-
},
|
|
13
|
+
prefix: String,
|
|
14
|
+
suffix: String,
|
|
15
|
+
title: String,
|
|
23
16
|
value: {
|
|
24
|
-
type: definePropType([Number, Object])
|
|
17
|
+
type: definePropType([Number, Object]),
|
|
18
|
+
default: 0
|
|
25
19
|
},
|
|
26
20
|
valueStyle: {
|
|
27
|
-
type: definePropType([String, Object])
|
|
28
|
-
default: () => ({})
|
|
21
|
+
type: definePropType([String, Object, Array])
|
|
29
22
|
}
|
|
30
23
|
});
|
|
31
24
|
const countdownEmits = {
|
|
32
25
|
finish: () => true,
|
|
33
|
-
|
|
26
|
+
[CHANGE_EVENT]: (value) => isNumber(value)
|
|
34
27
|
};
|
|
35
|
-
const formatTimeStr =
|
|
28
|
+
const formatTimeStr = (format, time) => {
|
|
36
29
|
const timeUnits = [
|
|
37
30
|
["Y", 1e3 * 60 * 60 * 24 * 365],
|
|
38
31
|
["M", 1e3 * 60 * 60 * 24 * 30],
|
|
@@ -42,19 +35,28 @@ const formatTimeStr = function(format, time, futureTime) {
|
|
|
42
35
|
["s", 1e3],
|
|
43
36
|
["S", 1]
|
|
44
37
|
];
|
|
45
|
-
|
|
38
|
+
let pre = 0;
|
|
39
|
+
let preTick = 0;
|
|
40
|
+
let timeLeft = time;
|
|
41
|
+
return timeUnits.reduce((con, item) => {
|
|
46
42
|
const name = item[0];
|
|
47
43
|
return con.replace(new RegExp(`${name}+`, "g"), (match) => {
|
|
48
44
|
let sum = 0;
|
|
49
|
-
if (name
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
if (!format.includes(name)) {
|
|
46
|
+
pre = Math.floor(timeLeft / item[1]);
|
|
47
|
+
timeLeft = timeLeft - pre * item[1];
|
|
48
|
+
preTick = item[1];
|
|
52
49
|
} else {
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
pre = 0;
|
|
51
|
+
preTick = 0;
|
|
52
|
+
sum = Math.floor(timeLeft / item[1]);
|
|
53
|
+
timeLeft = timeLeft - sum * item[1];
|
|
54
|
+
if (pre > 0) {
|
|
55
|
+
sum = sum + pre * (preTick / item[1]);
|
|
56
|
+
pre = 0;
|
|
57
|
+
}
|
|
55
58
|
}
|
|
56
|
-
|
|
57
|
-
return sum;
|
|
59
|
+
return padStart(String(sum), match.length, "0");
|
|
58
60
|
});
|
|
59
61
|
}, format);
|
|
60
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countdown.mjs","sources":["../../../../../../packages/components/statistic/src/countdown.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"countdown.mjs","sources":["../../../../../../packages/components/statistic/src/countdown.ts"],"sourcesContent":["import { padStart } from 'lodash-unified'\nimport { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport type { StyleValue } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type Countdown from './countdown.vue'\nexport const countdownProps = buildProps({\n /**\n * @description Formatting the countdown display\n */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /**\n * @description Sets the prefix of a countdown\n */\n prefix: String,\n /**\n * @description Sets the suffix of a countdown\n */\n suffix: String,\n /**\n * @description countdown titles\n */\n title: String,\n /**\n * @description target time\n */\n value: {\n type: definePropType<number | Dayjs>([Number, Object]),\n default: 0,\n },\n /**\n * @description Styles countdown values\n */\n valueStyle: {\n type: definePropType<StyleValue>([String, Object, Array]),\n },\n} as const)\n\nexport const countdownEmits = {\n finish: () => true,\n [CHANGE_EVENT]: (value: number) => isNumber(value),\n}\n\nexport const formatTimeStr = (format: string, time: number) => {\n const timeUnits: [string, number][] = [\n ['Y', 1000 * 60 * 60 * 24 * 365], // years\n ['M', 1000 * 60 * 60 * 24 * 30], // months\n ['D', 1000 * 60 * 60 * 24], // days\n ['H', 1000 * 60 * 60], // hours\n ['m', 1000 * 60], // minutes\n ['s', 1000], // seconds\n ['S', 1], // million seconds\n ]\n // The unformatted value of the previous tick\n let pre = 0\n // previous tick\n let preTick = 0\n // time left\n let timeLeft = time\n return timeUnits.reduce((con: string, item: [string, number]) => {\n const name = item[0]\n return con.replace(new RegExp(`${name}+`, 'g'), (match) => {\n let sum = 0\n if (!format.includes(name)) {\n pre = Math.floor(timeLeft / item[1])\n timeLeft = timeLeft - pre * item[1]\n preTick = item[1]\n } else {\n pre = 0\n preTick = 0\n sum = Math.floor(timeLeft / item[1])\n timeLeft = timeLeft - sum * item[1]\n if (pre > 0) {\n sum = sum + pre * (preTick / item[1])\n pre = 0\n }\n }\n return padStart(String(sum), match.length, '0') // autoCompletion\n })\n }, format)\n}\n\nexport type CountdownInstance = InstanceType<typeof Countdown>\n"],"names":[],"mappings":";;;;;;;AAGY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,GAAG;AACH,CAAC,EAAE;AACS,MAAC,cAAc,GAAG;AAC9B,EAAE,MAAM,EAAE,MAAM,IAAI;AACpB,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAC5C,EAAE;AACU,MAAC,aAAa,GAAG,CAAC,MAAM,EAAE,IAAI,KAAK;AAC/C,EAAE,MAAM,SAAS,GAAG;AACpB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AACnC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAClC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACxB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AACd,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACZ,GAAG,CAAC;AACJ,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;AAClB,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC;AACtB,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACzC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK;AAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClC,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAQ,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAO,MAAM;AACb,QAAQ,GAAG,GAAG,CAAC,CAAC;AAChB,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,UAAU,GAAG,GAAG,CAAC,CAAC;AAClB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtD,KAAK,CAAC,CAAC;AACP,GAAG,EAAE,MAAM,CAAC,CAAC;AACb;;;;"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{
|
|
2
2
|
readonly format: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "HH:mm:ss", boolean>;
|
|
3
|
-
readonly prefix:
|
|
4
|
-
readonly suffix:
|
|
5
|
-
readonly title:
|
|
6
|
-
readonly value: {
|
|
7
|
-
|
|
3
|
+
readonly prefix: StringConstructor;
|
|
4
|
+
readonly suffix: StringConstructor;
|
|
5
|
+
readonly title: StringConstructor;
|
|
6
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs) | ((new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs))[], unknown, unknown, 0, boolean>;
|
|
7
|
+
readonly valueStyle: {
|
|
8
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown>>;
|
|
8
9
|
readonly required: false;
|
|
9
10
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
10
11
|
__epPropKey: true;
|
|
11
12
|
};
|
|
12
|
-
readonly valueStyle: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown, () => {}, boolean>;
|
|
13
13
|
}, {
|
|
14
14
|
REFRESH_INTERVAL: number;
|
|
15
15
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
16
16
|
readonly format: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "HH:mm:ss", boolean>;
|
|
17
|
-
readonly prefix:
|
|
18
|
-
readonly suffix:
|
|
19
|
-
readonly title:
|
|
20
|
-
readonly value: {
|
|
21
|
-
|
|
17
|
+
readonly prefix: StringConstructor;
|
|
18
|
+
readonly suffix: StringConstructor;
|
|
19
|
+
readonly title: StringConstructor;
|
|
20
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs) | ((new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs))[], unknown, unknown, 0, boolean>;
|
|
21
|
+
readonly valueStyle: {
|
|
22
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown>>;
|
|
22
23
|
readonly required: false;
|
|
23
24
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
24
25
|
__epPropKey: true;
|
|
25
26
|
};
|
|
26
|
-
readonly valueStyle: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown, () => {}, boolean>;
|
|
27
27
|
}>> & {
|
|
28
28
|
onChange?: ((value: number) => any) | undefined;
|
|
29
29
|
onFinish?: (() => any) | undefined;
|
|
@@ -47,7 +47,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
47
47
|
cssVarBlock: (object: Record<string, string>) => Record<string, string>;
|
|
48
48
|
cssVarBlockName: (name: string) => string;
|
|
49
49
|
};
|
|
50
|
-
|
|
50
|
+
displayValue: import("vue").Ref<string>;
|
|
51
51
|
timer: number | undefined;
|
|
52
52
|
getTime: (val: number) => number;
|
|
53
53
|
stopTimer: () => void;
|
|
@@ -57,24 +57,21 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
57
57
|
change: (value: number) => boolean;
|
|
58
58
|
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
59
59
|
readonly format: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "HH:mm:ss", boolean>;
|
|
60
|
-
readonly prefix:
|
|
61
|
-
readonly suffix:
|
|
62
|
-
readonly title:
|
|
63
|
-
readonly value: {
|
|
64
|
-
|
|
60
|
+
readonly prefix: StringConstructor;
|
|
61
|
+
readonly suffix: StringConstructor;
|
|
62
|
+
readonly title: StringConstructor;
|
|
63
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs) | ((new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs))[], unknown, unknown, 0, boolean>;
|
|
64
|
+
readonly valueStyle: {
|
|
65
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown>>;
|
|
65
66
|
readonly required: false;
|
|
66
67
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
67
68
|
__epPropKey: true;
|
|
68
69
|
};
|
|
69
|
-
readonly valueStyle: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown, () => {}, boolean>;
|
|
70
70
|
}>> & {
|
|
71
71
|
onChange?: ((value: number) => any) | undefined;
|
|
72
72
|
onFinish?: (() => any) | undefined;
|
|
73
73
|
}, {
|
|
74
|
-
readonly
|
|
75
|
-
readonly prefix: string;
|
|
76
|
-
readonly suffix: string;
|
|
74
|
+
readonly value: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs) | ((new (...args: any[]) => (number | import("dayjs").Dayjs) & {}) | (() => number | import("dayjs").Dayjs))[], unknown, unknown>;
|
|
77
75
|
readonly format: string;
|
|
78
|
-
readonly valueStyle: import("vue").StyleValue;
|
|
79
76
|
}>;
|
|
80
77
|
export default _default;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { defineComponent,
|
|
2
|
-
import { isNil } from 'lodash-unified';
|
|
1
|
+
import { defineComponent, ref, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode, normalizeStyle } from 'vue';
|
|
3
2
|
import '../../../hooks/index.mjs';
|
|
4
3
|
import '../../../utils/index.mjs';
|
|
5
4
|
import { countdownProps, countdownEmits, formatTimeStr } from './countdown.mjs';
|
|
@@ -17,11 +16,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17
16
|
emits: countdownEmits,
|
|
18
17
|
setup(__props, { expose, emit }) {
|
|
19
18
|
const props = __props;
|
|
20
|
-
onBeforeUnmount(() => {
|
|
21
|
-
stopTimer();
|
|
22
|
-
});
|
|
23
19
|
const ns = useNamespace("statistic");
|
|
24
|
-
const
|
|
20
|
+
const displayValue = ref("");
|
|
25
21
|
let timer;
|
|
26
22
|
const getTime = (val) => {
|
|
27
23
|
return new Date(val).getTime();
|
|
@@ -34,19 +30,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
30
|
};
|
|
35
31
|
const startTimer = () => {
|
|
36
32
|
const { value, format } = props;
|
|
37
|
-
if (isNil(value)) {
|
|
38
|
-
disposeValue.value = "";
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
33
|
const timestamp = getTime(isNumber(value) ? value : value.valueOf());
|
|
34
|
+
displayValue.value = formatTimeStr(format, timestamp - Date.now());
|
|
42
35
|
timer = setInterval(() => {
|
|
43
|
-
|
|
36
|
+
let diff = timestamp - Date.now();
|
|
44
37
|
emit("change", diff);
|
|
45
|
-
if (diff
|
|
38
|
+
if (diff <= 0) {
|
|
39
|
+
diff = 0;
|
|
46
40
|
stopTimer();
|
|
47
41
|
emit("finish");
|
|
48
42
|
}
|
|
49
|
-
|
|
43
|
+
displayValue.value = formatTimeStr(format, diff);
|
|
50
44
|
}, REFRESH_INTERVAL);
|
|
51
45
|
};
|
|
52
46
|
watch(() => [props.value, props.format], () => {
|
|
@@ -55,8 +49,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
55
49
|
}, {
|
|
56
50
|
immediate: true
|
|
57
51
|
});
|
|
52
|
+
onBeforeUnmount(() => {
|
|
53
|
+
stopTimer();
|
|
54
|
+
});
|
|
58
55
|
expose({
|
|
59
|
-
|
|
56
|
+
displayValue
|
|
60
57
|
});
|
|
61
58
|
return (_ctx, _cache) => {
|
|
62
59
|
return openBlock(), createElementBlock("div", {
|
|
@@ -86,17 +83,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
86
83
|
createTextVNode(toDisplayString(_ctx.prefix), 1)
|
|
87
84
|
])
|
|
88
85
|
], 2)) : createCommentVNode("v-if", true),
|
|
89
|
-
|
|
90
|
-
key: 1,
|
|
86
|
+
createElementVNode("span", {
|
|
91
87
|
class: normalizeClass(unref(ns).e("number")),
|
|
92
88
|
style: normalizeStyle(_ctx.valueStyle)
|
|
93
|
-
},
|
|
94
|
-
renderSlot(_ctx.$slots, "formatter", {}, () => [
|
|
95
|
-
createTextVNode(toDisplayString(disposeValue.value), 1)
|
|
96
|
-
])
|
|
97
|
-
], 6)) : createCommentVNode("v-if", true),
|
|
89
|
+
}, toDisplayString(displayValue.value), 7),
|
|
98
90
|
!!_ctx.$slots.title || _ctx.suffix ? (openBlock(), createElementBlock("span", {
|
|
99
|
-
key:
|
|
91
|
+
key: 1,
|
|
100
92
|
class: normalizeClass(unref(ns).e("suffix"))
|
|
101
93
|
}, [
|
|
102
94
|
renderSlot(_ctx.$slots, "suffix", {}, () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countdown2.mjs","sources":["../../../../../../packages/components/statistic/src/countdown.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"!!$slots.title || title\" ref=\"title\" :class=\"ns.e('head')\">\n <span :class=\"ns.e('title')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </span>\n </div>\n <div :class=\"ns.e('content')\">\n <span v-if=\"!!$slots.title || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n {{ prefix }}\n </slot>\n </span>\n <span
|
|
1
|
+
{"version":3,"file":"countdown2.mjs","sources":["../../../../../../packages/components/statistic/src/countdown.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"!!$slots.title || title\" ref=\"title\" :class=\"ns.e('head')\">\n <span :class=\"ns.e('title')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </span>\n </div>\n <div :class=\"ns.e('content')\">\n <span v-if=\"!!$slots.title || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n {{ prefix }}\n </slot>\n </span>\n <span :class=\"ns.e('number')\" :style=\"valueStyle\">\n {{ displayValue }}\n </span>\n <span v-if=\"!!$slots.title || suffix\" :class=\"ns.e('suffix')\">\n <slot name=\"suffix\">\n {{ suffix }}\n </slot>\n </span>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { onBeforeUnmount, ref, watch } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isNumber } from '@element-plus/utils'\nimport { countdownEmits, countdownProps, formatTimeStr } from './countdown'\n\nconst REFRESH_INTERVAL = 1000 / 30\n\ndefineOptions({\n name: 'ElCountdown',\n})\n\nconst props = defineProps(countdownProps)\nconst emit = defineEmits(countdownEmits)\nconst ns = useNamespace('statistic')\nconst displayValue = ref('')\nlet timer: ReturnType<typeof setInterval> | undefined\n\nconst getTime = (val: number) => {\n return new Date(val).getTime()\n}\n\nconst stopTimer = () => {\n if (timer) {\n clearInterval(timer)\n timer = undefined\n }\n}\n\nconst startTimer = () => {\n const { value, format } = props\n const timestamp = getTime(isNumber(value) ? value : value.valueOf())\n displayValue.value = formatTimeStr(format, timestamp - Date.now())\n timer = setInterval(() => {\n let diff = timestamp - Date.now()\n emit('change', diff)\n if (diff <= 0) {\n diff = 0\n stopTimer()\n emit('finish')\n }\n displayValue.value = formatTimeStr(format, diff)\n }, REFRESH_INTERVAL)\n}\n\nwatch(\n () => [props.value, props.format],\n () => {\n stopTimer()\n startTimer()\n },\n {\n immediate: true,\n }\n)\n\nonBeforeUnmount(() => {\n stopTimer()\n})\n\ndefineExpose({\n /**\n * @description Current display value\n */\n displayValue,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;mCAkCc,CAAA;AAAA,EACZ,IAAM,EAAA,aAAA;AACR;;;;;;;AAIA,IAAM,MAAA,EAAA,GAAK,aAAa,WAAW,CAAA,CAAA;AACnC,IAAM,MAAA,YAAA,GAAe,IAAI,EAAE,CAAA,CAAA;AAC3B,IAAI,IAAA,KAAA,CAAA;AAEJ,IAAM,MAAA,OAAA,GAAU,CAAC,GAAgB,KAAA;AAC/B,MAAA,OAAO,IAAI,IAAA,CAAK,GAAG,CAAA,CAAE,OAAQ,EAAA,CAAA;AAAA,KAC/B,CAAA;AAEA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AACnB,QAAQ,KAAA,GAAA,KAAA,CAAA,CAAA;AAAA,OACV;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAM,MAAA,EAAE,OAAO,MAAW,EAAA,GAAA,KAAA,CAAA;AAC1B,MAAM,MAAA,SAAA,GAAY,QAAQ,QAAS,CAAA,KAAK,IAAI,KAAQ,GAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AACnE,MAAA,YAAA,CAAa,QAAQ,aAAc,CAAA,MAAA,EAAQ,SAAY,GAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AACjE,MAAA,KAAA,GAAQ,YAAY,MAAM;AACxB,QAAI,IAAA,IAAA,GAAO,SAAY,GAAA,IAAA,CAAK,GAAI,EAAA,CAAA;AAChC,QAAA,IAAA,CAAK,UAAU,IAAI,CAAA,CAAA;AACnB,QAAA,IAAI,QAAQ,CAAG,EAAA;AACb,UAAO,IAAA,GAAA,CAAA,CAAA;AACP,UAAU,SAAA,EAAA,CAAA;AACV,UAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,SACf;AACA,QAAa,YAAA,CAAA,KAAA,GAAQ,aAAc,CAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,SAC9C,gBAAgB,CAAA,CAAA;AAAA,KACrB,CAAA;AAEA,IAAA,KAAA,CACE,MAAM,CAAC,KAAA,CAAM,OAAO,KAAM,CAAA,MAAM,GAChC,MAAM;AACJ,MAAU,SAAA,EAAA,CAAA;AACV,MAAW,UAAA,EAAA,CAAA;AAAA,KAEb,EAAA;AAAA,MACE,SAAW,EAAA,IAAA;AAAA,KAEf,CAAA,CAAA;AAEA,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAU,SAAA,EAAA,CAAA;AAAA,KACX,CAAA,CAAA;AAED,IAAa,MAAA,CAAA;AAAA,MAIX,YAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,19 +3,23 @@ import type Statistic from './statistic.vue';
|
|
|
3
3
|
export declare const statisticProps: {
|
|
4
4
|
readonly decimalSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".", boolean>;
|
|
5
5
|
readonly groupSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ",", boolean>;
|
|
6
|
-
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown,
|
|
6
|
+
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
|
|
7
7
|
readonly formatter: {
|
|
8
8
|
readonly type: import("vue").PropType<(val: string | number) => string | number>;
|
|
9
9
|
readonly required: false;
|
|
10
10
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
11
11
|
__epPropKey: true;
|
|
12
12
|
};
|
|
13
|
-
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown,
|
|
14
|
-
readonly prefix:
|
|
15
|
-
readonly suffix:
|
|
16
|
-
readonly title:
|
|
17
|
-
readonly valueStyle:
|
|
18
|
-
|
|
13
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 0, boolean>;
|
|
14
|
+
readonly prefix: StringConstructor;
|
|
15
|
+
readonly suffix: StringConstructor;
|
|
16
|
+
readonly title: StringConstructor;
|
|
17
|
+
readonly valueStyle: {
|
|
18
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => StyleValue & {}) | (() => StyleValue) | ((new (...args: any[]) => StyleValue & {}) | (() => StyleValue))[], unknown, unknown>>;
|
|
19
|
+
readonly required: false;
|
|
20
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
21
|
+
__epPropKey: true;
|
|
22
|
+
};
|
|
19
23
|
};
|
|
20
|
-
export declare const
|
|
24
|
+
export declare const groupFormat: (target: string, step?: number, groupSeparator?: string) => string;
|
|
21
25
|
export declare type StatisticInstance = InstanceType<typeof Statistic>;
|
|
@@ -12,40 +12,26 @@ const statisticProps = buildProps({
|
|
|
12
12
|
},
|
|
13
13
|
precision: {
|
|
14
14
|
type: Number,
|
|
15
|
-
default:
|
|
15
|
+
default: 0
|
|
16
16
|
},
|
|
17
17
|
formatter: {
|
|
18
18
|
type: definePropType(Function)
|
|
19
19
|
},
|
|
20
20
|
value: {
|
|
21
21
|
type: [String, Number],
|
|
22
|
-
default:
|
|
23
|
-
},
|
|
24
|
-
prefix: {
|
|
25
|
-
type: String,
|
|
26
|
-
default: ""
|
|
27
|
-
},
|
|
28
|
-
suffix: {
|
|
29
|
-
type: String,
|
|
30
|
-
default: null
|
|
31
|
-
},
|
|
32
|
-
title: {
|
|
33
|
-
type: [String, Number],
|
|
34
|
-
default: ""
|
|
22
|
+
default: 0
|
|
35
23
|
},
|
|
24
|
+
prefix: String,
|
|
25
|
+
suffix: String,
|
|
26
|
+
title: String,
|
|
36
27
|
valueStyle: {
|
|
37
|
-
type: definePropType([String, Object])
|
|
38
|
-
default: () => ({})
|
|
39
|
-
},
|
|
40
|
-
rate: {
|
|
41
|
-
type: Number,
|
|
42
|
-
default: 3
|
|
28
|
+
type: definePropType([String, Object, Array])
|
|
43
29
|
}
|
|
44
30
|
});
|
|
45
|
-
const
|
|
46
|
-
const reg = new RegExp(`\\B(?=(\\d{${
|
|
47
|
-
return
|
|
31
|
+
const groupFormat = function(target, step = 3, groupSeparator = ",") {
|
|
32
|
+
const reg = new RegExp(`\\B(?=(\\d{${step}})+(?!\\d))`, "g");
|
|
33
|
+
return target.replace(reg, groupSeparator);
|
|
48
34
|
};
|
|
49
35
|
|
|
50
|
-
export {
|
|
36
|
+
export { groupFormat, statisticProps };
|
|
51
37
|
//# sourceMappingURL=statistic.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistic.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport type { StyleValue } from 'vue'\nimport type Statistic from './statistic.vue'\nexport const statisticProps = buildProps({\n decimalSeparator: {\n type: String,\n default: '.',\n },\n groupSeparator: {\n type: String,\n default: ',',\n },\n precision: {\n type: Number,\n default:
|
|
1
|
+
{"version":3,"file":"statistic.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport type { StyleValue } from 'vue'\nimport type Statistic from './statistic.vue'\nexport const statisticProps = buildProps({\n /**\n * @description Setting the decimal point\n */\n decimalSeparator: {\n type: String,\n default: '.',\n },\n /**\n * @description Sets the thousandth identifier\n */\n groupSeparator: {\n type: String,\n default: ',',\n },\n /**\n * @description numerical precision\n */\n precision: {\n type: Number,\n default: 0,\n },\n /**\n * @description Custom numerical presentation\n */\n formatter: {\n type: definePropType<(val: string | number) => string | number>(Function),\n },\n /**\n * @description Numerical content\n */\n value: {\n type: [String, Number],\n default: 0,\n },\n /**\n * @description Sets the prefix of a number\n */\n prefix: String,\n\n /**\n * @description Sets the suffix of a number\n */\n suffix: String,\n /**\n * @description Numeric titles\n */\n title: String,\n /**\n * @description Styles numeric values\n */\n valueStyle: {\n type: definePropType<StyleValue>([String, Object, Array]),\n },\n // rate: {\n // type: Number,\n // default: 3,\n // },\n} as const)\nexport const groupFormat = function (\n target: string,\n step = 3,\n groupSeparator = ','\n): string {\n const reg = new RegExp(`\\\\B(?=(\\\\d{${step}})+(?!\\\\d))`, 'g')\n return target.replace(reg, groupSeparator)\n}\nexport type StatisticInstance = InstanceType<typeof Statistic>\n"],"names":[],"mappings":";;;AACY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,GAAG;AACH,CAAC,EAAE;AACS,MAAC,WAAW,GAAG,SAAS,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,cAAc,GAAG,GAAG,EAAE;AAC5E,EAAE,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AAC7C;;;;"}
|
|
@@ -1,36 +1,45 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{
|
|
2
2
|
readonly decimalSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".", boolean>;
|
|
3
3
|
readonly groupSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ",", boolean>;
|
|
4
|
-
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown,
|
|
4
|
+
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
|
|
5
5
|
readonly formatter: {
|
|
6
6
|
readonly type: import("vue").PropType<(val: string | number) => string | number>;
|
|
7
7
|
readonly required: false;
|
|
8
8
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
9
9
|
__epPropKey: true;
|
|
10
10
|
};
|
|
11
|
-
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown,
|
|
12
|
-
readonly prefix:
|
|
13
|
-
readonly suffix:
|
|
14
|
-
readonly title:
|
|
15
|
-
readonly valueStyle:
|
|
16
|
-
|
|
11
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 0, boolean>;
|
|
12
|
+
readonly prefix: StringConstructor;
|
|
13
|
+
readonly suffix: StringConstructor;
|
|
14
|
+
readonly title: StringConstructor;
|
|
15
|
+
readonly valueStyle: {
|
|
16
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown>>;
|
|
17
|
+
readonly required: false;
|
|
18
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
19
|
+
__epPropKey: true;
|
|
20
|
+
};
|
|
17
21
|
}, {
|
|
22
|
+
THOUSANDTH: number;
|
|
18
23
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
19
24
|
readonly decimalSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".", boolean>;
|
|
20
25
|
readonly groupSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ",", boolean>;
|
|
21
|
-
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown,
|
|
26
|
+
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
|
|
22
27
|
readonly formatter: {
|
|
23
28
|
readonly type: import("vue").PropType<(val: string | number) => string | number>;
|
|
24
29
|
readonly required: false;
|
|
25
30
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
26
31
|
__epPropKey: true;
|
|
27
32
|
};
|
|
28
|
-
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown,
|
|
29
|
-
readonly prefix:
|
|
30
|
-
readonly suffix:
|
|
31
|
-
readonly title:
|
|
32
|
-
readonly valueStyle:
|
|
33
|
-
|
|
33
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 0, boolean>;
|
|
34
|
+
readonly prefix: StringConstructor;
|
|
35
|
+
readonly suffix: StringConstructor;
|
|
36
|
+
readonly title: StringConstructor;
|
|
37
|
+
readonly valueStyle: {
|
|
38
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown>>;
|
|
39
|
+
readonly required: false;
|
|
40
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
41
|
+
__epPropKey: true;
|
|
42
|
+
};
|
|
34
43
|
}>> & {
|
|
35
44
|
[x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined;
|
|
36
45
|
}>>;
|
|
@@ -52,32 +61,31 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
52
61
|
cssVarBlock: (object: Record<string, string>) => Record<string, string>;
|
|
53
62
|
cssVarBlockName: (name: string) => string;
|
|
54
63
|
};
|
|
55
|
-
|
|
64
|
+
displayValue: import("vue").ComputedRef<import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
|
|
56
65
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
57
66
|
readonly decimalSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".", boolean>;
|
|
58
67
|
readonly groupSeparator: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ",", boolean>;
|
|
59
|
-
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown,
|
|
68
|
+
readonly precision: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
|
|
60
69
|
readonly formatter: {
|
|
61
70
|
readonly type: import("vue").PropType<(val: string | number) => string | number>;
|
|
62
71
|
readonly required: false;
|
|
63
72
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
64
73
|
__epPropKey: true;
|
|
65
74
|
};
|
|
66
|
-
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown,
|
|
67
|
-
readonly prefix:
|
|
68
|
-
readonly suffix:
|
|
69
|
-
readonly title:
|
|
70
|
-
readonly valueStyle:
|
|
71
|
-
|
|
75
|
+
readonly value: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 0, boolean>;
|
|
76
|
+
readonly prefix: StringConstructor;
|
|
77
|
+
readonly suffix: StringConstructor;
|
|
78
|
+
readonly title: StringConstructor;
|
|
79
|
+
readonly valueStyle: {
|
|
80
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown>>;
|
|
81
|
+
readonly required: false;
|
|
82
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
83
|
+
__epPropKey: true;
|
|
84
|
+
};
|
|
72
85
|
}>>, {
|
|
73
|
-
readonly title: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
74
86
|
readonly value: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
75
|
-
readonly prefix: string;
|
|
76
|
-
readonly suffix: string;
|
|
77
87
|
readonly precision: number;
|
|
78
88
|
readonly decimalSeparator: string;
|
|
79
89
|
readonly groupSeparator: string;
|
|
80
|
-
readonly valueStyle: import("vue").StyleValue;
|
|
81
|
-
readonly rate: number;
|
|
82
90
|
}>;
|
|
83
91
|
export default _default;
|
|
@@ -2,11 +2,12 @@ import { defineComponent, computed, openBlock, createElementBlock, normalizeClas
|
|
|
2
2
|
import { isNil } from 'lodash-unified';
|
|
3
3
|
import '../../../hooks/index.mjs';
|
|
4
4
|
import '../../../utils/index.mjs';
|
|
5
|
-
import { statisticProps,
|
|
5
|
+
import { statisticProps, groupFormat } from './statistic.mjs';
|
|
6
6
|
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
7
7
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
8
8
|
import { isFunction } from '@vue/shared';
|
|
9
9
|
|
|
10
|
+
const THOUSANDTH = 3;
|
|
10
11
|
const __default__ = defineComponent({
|
|
11
12
|
name: "ElStatistic"
|
|
12
13
|
});
|
|
@@ -16,7 +17,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16
17
|
setup(__props, { expose }) {
|
|
17
18
|
const props = __props;
|
|
18
19
|
const ns = useNamespace("statistic");
|
|
19
|
-
const
|
|
20
|
+
const displayValue = computed(() => {
|
|
20
21
|
if (isFunction(props.formatter)) {
|
|
21
22
|
return props.formatter(props.value);
|
|
22
23
|
} else if (isNil(props.value) || !/^(-|\+)?\d+(\.\d+)?$/.test(`${props.value}`)) {
|
|
@@ -27,12 +28,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
27
28
|
decimal = `${decimal || ""}${1 .toFixed(props.precision).replace(".", "").slice(1)}`;
|
|
28
29
|
decimal = decimal.slice(0, props.precision);
|
|
29
30
|
}
|
|
30
|
-
integer =
|
|
31
|
+
integer = groupFormat(integer, THOUSANDTH, props.groupSeparator);
|
|
31
32
|
return [integer, decimal].join(decimal ? props.decimalSeparator || "." : "");
|
|
32
33
|
}
|
|
33
34
|
});
|
|
34
35
|
expose({
|
|
35
|
-
|
|
36
|
+
displayValue
|
|
36
37
|
});
|
|
37
38
|
return (_ctx, _cache) => {
|
|
38
39
|
return openBlock(), createElementBlock("div", {
|
|
@@ -61,7 +62,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
61
62
|
createElementVNode("span", {
|
|
62
63
|
class: normalizeClass(unref(ns).e("number")),
|
|
63
64
|
style: normalizeStyle(_ctx.valueStyle)
|
|
64
|
-
}, toDisplayString(unref(
|
|
65
|
+
}, toDisplayString(unref(displayValue)), 7),
|
|
65
66
|
_ctx.$slots.suffix || _ctx.suffix ? (openBlock(), createElementBlock("div", {
|
|
66
67
|
key: 1,
|
|
67
68
|
class: normalizeClass(unref(ns).e("suffix"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistic2.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"$slots.title || title\" ref=\"title\" :class=\"ns.e('head')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div :class=\"ns.e('content')\">\n <div v-if=\"$slots.prefix || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n <span>{{ prefix }}</span>\n </slot>\n </div>\n <span :class=\"ns.e('number')\" :style=\"valueStyle\">\n {{
|
|
1
|
+
{"version":3,"file":"statistic2.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"$slots.title || title\" ref=\"title\" :class=\"ns.e('head')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div :class=\"ns.e('content')\">\n <div v-if=\"$slots.prefix || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n <span>{{ prefix }}</span>\n </slot>\n </div>\n <span :class=\"ns.e('number')\" :style=\"valueStyle\">\n {{ displayValue }}\n </span>\n <div v-if=\"$slots.suffix || suffix\" :class=\"ns.e('suffix')\">\n <slot name=\"suffix\">\n <span>{{ suffix }}</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isFunction } from '@element-plus/utils'\nimport { groupFormat, statisticProps } from './statistic'\n\ndefineOptions({\n name: 'ElStatistic',\n})\n\nconst THOUSANDTH = 3\n\nconst props = defineProps(statisticProps)\nconst ns = useNamespace('statistic')\n\nconst displayValue = computed(() => {\n if (isFunction(props.formatter)) {\n return props.formatter(props.value)\n } else if (\n isNil(props.value) ||\n !/^(-|\\+)?\\d+(\\.\\d+)?$/.test(`${props.value}`)\n ) {\n return props.value\n } else {\n let [integer, decimal] = `${props.value}`.split('.')\n if (!isNil(props.precision)) {\n decimal = `${decimal || ''}${(1)\n .toFixed(props.precision)\n .replace('.', '')\n .slice(1)}`\n decimal = decimal.slice(0, props.precision)\n }\n integer = groupFormat(integer, THOUSANDTH, props.groupSeparator)\n return [integer, decimal].join(decimal ? props.decimalSeparator || '.' : '')\n }\n})\n\ndefineExpose({\n /**\n * @description Current display value\n */\n displayValue,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;mCA+Bc,CAAA;AAAA,EACZ,IAAM,EAAA,aAAA;AACR;;;;;;AAKA,IAAM,MAAA,EAAA,GAAK,aAAa,WAAW,CAAA,CAAA;AAEnC,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAI,IAAA,UAAA,CAAW,KAAM,CAAA,SAAS,CAAG,EAAA;AAC/B,QAAO,OAAA,KAAA,CAAM,SAAU,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,OACpC,MAAA,IACE,KAAM,CAAA,KAAA,CAAM,KAAK,CAAA,IACjB,CAAC,sBAAA,CAAuB,IAAK,CAAA,CAAA,EAAG,KAAM,CAAA,KAAA,CAAA,CAAO,CAC7C,EAAA;AACA,QAAA,OAAO,KAAM,CAAA,KAAA,CAAA;AAAA,OACR,MAAA;AACL,QAAA,IAAI,CAAC,OAAS,EAAA,OAAA,CAAA,GAAW,GAAG,KAAM,CAAA,KAAA,CAAA,CAAA,CAAQ,MAAM,GAAG,CAAA,CAAA;AACnD,QAAA,IAAI,CAAC,KAAA,CAAM,KAAM,CAAA,SAAS,CAAG,EAAA;AAC3B,UAAA,OAAA,GAAU,CAAG,EAAA,OAAA,IAAW,EAAM,CAAA,EAAA,CAAA,EAC3B,OAAQ,CAAA,KAAA,CAAM,SAAS,CAAA,CACvB,OAAQ,CAAA,GAAA,EAAK,EAAE,CAAA,CACf,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA;AACV,UAAA,OAAA,GAAU,OAAQ,CAAA,KAAA,CAAM,CAAG,EAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,SAC5C;AACA,QAAA,OAAA,GAAU,WAAY,CAAA,OAAA,EAAS,UAAY,EAAA,KAAA,CAAM,cAAc,CAAA,CAAA;AAC/D,QAAO,OAAA,CAAC,SAAS,OAAO,CAAA,CAAE,KAAK,OAAU,GAAA,KAAA,CAAM,gBAAoB,IAAA,GAAA,GAAM,EAAE,CAAA,CAAA;AAAA,OAC7E;AAAA,KACD,CAAA,CAAA;AAED,IAAa,MAAA,CAAA;AAAA,MAIX,YAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|