element-ps 1.0.14 → 1.0.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.
- package/dist/index.full.js +141 -124
- package/dist/index.full.min.js +4 -4
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +140 -125
- package/es/components/descriptions/index.d.ts +14 -2
- package/es/components/descriptions/src/description-item.d.ts +7 -1
- package/es/components/descriptions/src/descriptions.type.d.ts +1 -0
- package/es/components/input-number/index.d.ts +2 -0
- package/es/components/input-number/src/input-number.vue.d.ts +2 -0
- package/es/components/rate/index.d.ts +75 -246
- package/es/components/rate/src/rate.d.ts +26 -0
- package/es/components/rate/src/rate.vue.d.ts +108 -0
- package/es/index.mjs +12 -11
- package/es/index.mjs.map +1 -1
- package/es/packages/components/alert/index.mjs +2 -2
- package/es/packages/components/alert/src/alert.mjs +5 -34
- package/es/packages/components/alert/src/alert.mjs.map +1 -1
- package/es/packages/components/alert/src/alert.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/alert/src/alert2.mjs +34 -5
- package/es/packages/components/alert/src/alert2.mjs.map +1 -1
- package/es/packages/components/avatar/index.mjs +2 -2
- package/es/packages/components/avatar/src/avatar.mjs +5 -29
- package/es/packages/components/avatar/src/avatar.mjs.map +1 -1
- package/es/packages/components/avatar/src/avatar.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/avatar/src/avatar2.mjs +29 -5
- package/es/packages/components/avatar/src/avatar2.mjs.map +1 -1
- package/es/packages/components/backtop/index.mjs +2 -2
- package/es/packages/components/backtop/src/backtop.mjs +5 -19
- package/es/packages/components/backtop/src/backtop.mjs.map +1 -1
- package/es/packages/components/backtop/src/backtop.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/backtop/src/backtop2.mjs +19 -5
- package/es/packages/components/backtop/src/backtop2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/index.mjs +2 -2
- package/es/packages/components/breadcrumb/src/breadcrumb.mjs +13 -5
- package/es/packages/components/breadcrumb/src/breadcrumb.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb2.mjs +5 -13
- package/es/packages/components/breadcrumb/src/breadcrumb2.mjs.map +1 -1
- package/es/packages/components/button/index.mjs +1 -1
- package/es/packages/components/button/src/button-group.mjs +5 -7
- package/es/packages/components/button/src/button-group.mjs.map +1 -1
- package/es/packages/components/button/src/button-group.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/button/src/button-group2.mjs +7 -5
- package/es/packages/components/button/src/button-group2.mjs.map +1 -1
- package/es/packages/components/card/index.mjs +2 -2
- package/es/packages/components/card/src/card.mjs +17 -5
- package/es/packages/components/card/src/card.mjs.map +1 -1
- package/es/packages/components/card/src/card.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/card/src/card2.mjs +5 -17
- package/es/packages/components/card/src/card2.mjs.map +1 -1
- package/es/packages/components/cascader/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/packages/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs +8 -6
- package/es/packages/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs.map +1 -1
- package/es/packages/components/descriptions/src/description-item.mjs +3 -0
- package/es/packages/components/descriptions/src/description-item.mjs.map +1 -1
- package/es/packages/components/descriptions/src/descriptions-cell.mjs +2 -1
- package/es/packages/components/descriptions/src/descriptions-cell.mjs.map +1 -1
- package/es/packages/components/divider/index.mjs +2 -2
- package/es/packages/components/divider/src/divider.mjs +15 -5
- package/es/packages/components/divider/src/divider.mjs.map +1 -1
- package/es/packages/components/divider/src/divider.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/divider/src/divider2.mjs +5 -15
- package/es/packages/components/divider/src/divider2.mjs.map +1 -1
- package/es/packages/components/image/index.mjs +2 -2
- package/es/packages/components/image/src/image.mjs +44 -5
- package/es/packages/components/image/src/image.mjs.map +1 -1
- package/es/packages/components/image/src/image.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/image/src/image2.mjs +5 -44
- package/es/packages/components/image/src/image2.mjs.map +1 -1
- package/es/packages/components/image-viewer/index.mjs +2 -2
- package/es/packages/components/image-viewer/src/image-viewer.mjs +5 -25
- package/es/packages/components/image-viewer/src/image-viewer.mjs.map +1 -1
- package/es/packages/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/image-viewer/src/image-viewer2.mjs +25 -5
- package/es/packages/components/image-viewer/src/image-viewer2.mjs.map +1 -1
- package/es/packages/components/index.mjs +12 -11
- package/es/packages/components/index.mjs.map +1 -1
- package/es/packages/components/input/index.mjs +2 -2
- package/es/packages/components/input/src/input.mjs +79 -5
- package/es/packages/components/input/src/input.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/input/src/input2.mjs +5 -79
- package/es/packages/components/input/src/input2.mjs.map +1 -1
- package/es/packages/components/input-number/src/input-number.vue_vue&type=script&lang.mjs +4 -2
- package/es/packages/components/input-number/src/input-number.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/packages/components/input-number/src/input-number.vue_vue&type=template&id=dec60af6&lang.mjs.map +1 -1
- package/es/packages/components/menu/index.mjs +4 -4
- package/es/packages/components/menu/src/menu-item-group.mjs +4 -5
- package/es/packages/components/menu/src/menu-item-group.mjs.map +1 -1
- package/es/packages/components/menu/src/menu-item-group.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/menu/src/menu-item-group2.mjs +5 -4
- package/es/packages/components/menu/src/menu-item-group2.mjs.map +1 -1
- package/es/packages/components/menu/src/menu-item.mjs +18 -5
- package/es/packages/components/menu/src/menu-item.mjs.map +1 -1
- package/es/packages/components/menu/src/menu-item.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/menu/src/menu-item2.mjs +5 -18
- package/es/packages/components/menu/src/menu-item2.mjs.map +1 -1
- package/es/packages/components/rate/index.mjs +6 -8
- package/es/packages/components/rate/index.mjs.map +1 -1
- package/es/packages/components/rate/src/rate.mjs +87 -0
- package/es/packages/components/rate/src/rate.mjs.map +1 -0
- package/es/packages/components/rate/src/{index.vue_vue&type=script&lang.mjs → rate.vue_vue&type=script&lang.mjs} +19 -88
- package/es/packages/components/rate/src/rate.vue_vue&type=script&lang.mjs.map +1 -0
- package/es/packages/components/rate/src/{index.vue_vue&type=template&id=55b4fa7d&lang.mjs → rate.vue_vue&type=template&id=38c42df6&lang.mjs} +1 -1
- package/es/packages/components/rate/src/rate.vue_vue&type=template&id=38c42df6&lang.mjs.map +1 -0
- package/es/packages/components/rate/src/rate2.mjs +7 -0
- package/es/packages/components/rate/src/rate2.mjs.map +1 -0
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/descriptions/index.d.ts +14 -2
- package/lib/components/descriptions/src/description-item.d.ts +7 -1
- package/lib/components/descriptions/src/descriptions.type.d.ts +1 -0
- package/lib/components/input-number/index.d.ts +2 -0
- package/lib/components/input-number/src/input-number.vue.d.ts +2 -0
- package/lib/components/rate/index.d.ts +75 -246
- package/lib/components/rate/src/rate.d.ts +26 -0
- package/lib/components/rate/src/rate.vue.d.ts +108 -0
- package/lib/index.js +14 -11
- package/lib/index.js.map +1 -1
- package/lib/packages/components/alert/index.js +2 -2
- package/lib/packages/components/alert/src/alert.js +5 -33
- package/lib/packages/components/alert/src/alert.js.map +1 -1
- package/lib/packages/components/alert/src/alert.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/alert/src/alert2.js +33 -5
- package/lib/packages/components/alert/src/alert2.js.map +1 -1
- package/lib/packages/components/avatar/index.js +2 -2
- package/lib/packages/components/avatar/src/avatar.js +5 -28
- package/lib/packages/components/avatar/src/avatar.js.map +1 -1
- package/lib/packages/components/avatar/src/avatar.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/avatar/src/avatar2.js +28 -5
- package/lib/packages/components/avatar/src/avatar2.js.map +1 -1
- package/lib/packages/components/backtop/index.js +2 -2
- package/lib/packages/components/backtop/src/backtop.js +6 -19
- package/lib/packages/components/backtop/src/backtop.js.map +1 -1
- package/lib/packages/components/backtop/src/backtop.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/backtop/src/backtop2.js +19 -6
- package/lib/packages/components/backtop/src/backtop2.js.map +1 -1
- package/lib/packages/components/breadcrumb/index.js +2 -2
- package/lib/packages/components/breadcrumb/src/breadcrumb.js +12 -5
- package/lib/packages/components/breadcrumb/src/breadcrumb.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb2.js +5 -12
- package/lib/packages/components/breadcrumb/src/breadcrumb2.js.map +1 -1
- package/lib/packages/components/button/index.js +1 -1
- package/lib/packages/components/button/src/button-group.js +5 -6
- package/lib/packages/components/button/src/button-group.js.map +1 -1
- package/lib/packages/components/button/src/button-group.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/button/src/button-group2.js +6 -5
- package/lib/packages/components/button/src/button-group2.js.map +1 -1
- package/lib/packages/components/card/index.js +2 -2
- package/lib/packages/components/card/src/card.js +16 -5
- package/lib/packages/components/card/src/card.js.map +1 -1
- package/lib/packages/components/card/src/card.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/card/src/card2.js +5 -16
- package/lib/packages/components/card/src/card2.js.map +1 -1
- package/lib/packages/components/cascader/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/packages/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js +8 -6
- package/lib/packages/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js.map +1 -1
- package/lib/packages/components/descriptions/src/description-item.js +3 -0
- package/lib/packages/components/descriptions/src/description-item.js.map +1 -1
- package/lib/packages/components/descriptions/src/descriptions-cell.js +2 -1
- package/lib/packages/components/descriptions/src/descriptions-cell.js.map +1 -1
- package/lib/packages/components/divider/index.js +2 -2
- package/lib/packages/components/divider/src/divider.js +14 -5
- package/lib/packages/components/divider/src/divider.js.map +1 -1
- package/lib/packages/components/divider/src/divider.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/divider/src/divider2.js +5 -14
- package/lib/packages/components/divider/src/divider2.js.map +1 -1
- package/lib/packages/components/image/index.js +2 -2
- package/lib/packages/components/image/src/image.js +44 -5
- package/lib/packages/components/image/src/image.js.map +1 -1
- package/lib/packages/components/image/src/image.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/image/src/image2.js +5 -44
- package/lib/packages/components/image/src/image2.js.map +1 -1
- package/lib/packages/components/image-viewer/index.js +2 -2
- package/lib/packages/components/image-viewer/src/image-viewer.js +5 -24
- package/lib/packages/components/image-viewer/src/image-viewer.js.map +1 -1
- package/lib/packages/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/image-viewer/src/image-viewer2.js +24 -5
- package/lib/packages/components/image-viewer/src/image-viewer2.js.map +1 -1
- package/lib/packages/components/index.js +14 -11
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/input/index.js +2 -2
- package/lib/packages/components/input/src/input.js +78 -5
- package/lib/packages/components/input/src/input.js.map +1 -1
- package/lib/packages/components/input/src/input.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/input/src/input2.js +5 -78
- package/lib/packages/components/input/src/input2.js.map +1 -1
- package/lib/packages/components/input-number/src/input-number.vue_vue&type=script&lang.js +4 -2
- package/lib/packages/components/input-number/src/input-number.vue_vue&type=script&lang.js.map +1 -1
- package/lib/packages/components/input-number/src/input-number.vue_vue&type=template&id=dec60af6&lang.js.map +1 -1
- package/lib/packages/components/menu/index.js +4 -4
- package/lib/packages/components/menu/src/menu-item-group.js +4 -6
- package/lib/packages/components/menu/src/menu-item-group.js.map +1 -1
- package/lib/packages/components/menu/src/menu-item-group.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/menu/src/menu-item-group2.js +6 -4
- package/lib/packages/components/menu/src/menu-item-group2.js.map +1 -1
- package/lib/packages/components/menu/src/menu-item.js +18 -5
- package/lib/packages/components/menu/src/menu-item.js.map +1 -1
- package/lib/packages/components/menu/src/menu-item.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/menu/src/menu-item2.js +5 -18
- package/lib/packages/components/menu/src/menu-item2.js.map +1 -1
- package/lib/packages/components/rate/index.js +8 -8
- package/lib/packages/components/rate/index.js.map +1 -1
- package/lib/packages/components/rate/src/rate.js +92 -0
- package/lib/packages/components/rate/src/rate.js.map +1 -0
- package/lib/packages/components/rate/src/{index.vue_vue&type=script&lang.js → rate.vue_vue&type=script&lang.js} +19 -88
- package/lib/packages/components/rate/src/rate.vue_vue&type=script&lang.js.map +1 -0
- package/lib/packages/components/rate/src/{index.vue_vue&type=template&id=55b4fa7d&lang.js → rate.vue_vue&type=template&id=38c42df6&lang.js} +1 -1
- package/lib/packages/components/rate/src/rate.vue_vue&type=template&id=38c42df6&lang.js.map +1 -0
- package/lib/packages/components/rate/src/rate2.js +12 -0
- package/lib/packages/components/rate/src/rate2.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
- package/web-types.json +1 -1
- package/es/components/rate/src/index.vue.d.ts +0 -141
- package/es/packages/components/rate/src/index.mjs +0 -7
- package/es/packages/components/rate/src/index.mjs.map +0 -1
- package/es/packages/components/rate/src/index.vue_vue&type=script&lang.mjs.map +0 -1
- package/es/packages/components/rate/src/index.vue_vue&type=template&id=55b4fa7d&lang.mjs.map +0 -1
- package/lib/components/rate/src/index.vue.d.ts +0 -141
- package/lib/packages/components/rate/src/index.js +0 -12
- package/lib/packages/components/rate/src/index.js.map +0 -1
- package/lib/packages/components/rate/src/index.vue_vue&type=script&lang.js.map +0 -1
- package/lib/packages/components/rate/src/index.vue_vue&type=template&id=55b4fa7d&lang.js.map +0 -1
|
@@ -1,81 +1,7 @@
|
|
|
1
|
-
import '
|
|
2
|
-
|
|
3
|
-
import {
|
|
1
|
+
import script from './input.vue_vue&type=script&lang.mjs';
|
|
2
|
+
export { default } from './input.vue_vue&type=script&lang.mjs';
|
|
3
|
+
import { render } from './input.vue_vue&type=template&id=3290dcb6&lang.mjs';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
modelValue: {
|
|
8
|
-
type: definePropType(void 0),
|
|
9
|
-
default: ""
|
|
10
|
-
},
|
|
11
|
-
type: {
|
|
12
|
-
type: String,
|
|
13
|
-
default: "text"
|
|
14
|
-
},
|
|
15
|
-
resize: {
|
|
16
|
-
type: String,
|
|
17
|
-
values: ["none", "both", "horizontal", "vertical"]
|
|
18
|
-
},
|
|
19
|
-
autosize: {
|
|
20
|
-
type: definePropType([Boolean, Object]),
|
|
21
|
-
default: false
|
|
22
|
-
},
|
|
23
|
-
autocomplete: {
|
|
24
|
-
type: String,
|
|
25
|
-
default: "off"
|
|
26
|
-
},
|
|
27
|
-
placeholder: {
|
|
28
|
-
type: String
|
|
29
|
-
},
|
|
30
|
-
form: {
|
|
31
|
-
type: String,
|
|
32
|
-
default: ""
|
|
33
|
-
},
|
|
34
|
-
readonly: {
|
|
35
|
-
type: Boolean,
|
|
36
|
-
default: false
|
|
37
|
-
},
|
|
38
|
-
clearable: {
|
|
39
|
-
type: Boolean,
|
|
40
|
-
default: false
|
|
41
|
-
},
|
|
42
|
-
showPassword: {
|
|
43
|
-
type: Boolean,
|
|
44
|
-
default: false
|
|
45
|
-
},
|
|
46
|
-
showWordLimit: {
|
|
47
|
-
type: Boolean,
|
|
48
|
-
default: false
|
|
49
|
-
},
|
|
50
|
-
suffixIcon: {
|
|
51
|
-
type: definePropType([String, Object]),
|
|
52
|
-
default: ""
|
|
53
|
-
},
|
|
54
|
-
prefixIcon: {
|
|
55
|
-
type: definePropType([String, Object]),
|
|
56
|
-
default: ""
|
|
57
|
-
},
|
|
58
|
-
label: {
|
|
59
|
-
type: String
|
|
60
|
-
},
|
|
61
|
-
tabindex: {
|
|
62
|
-
type: [Number, String]
|
|
63
|
-
},
|
|
64
|
-
validateEvent: {
|
|
65
|
-
type: Boolean,
|
|
66
|
-
default: true
|
|
67
|
-
},
|
|
68
|
-
inputStyle: {
|
|
69
|
-
type: definePropType([Object, Array, String]),
|
|
70
|
-
default: () => mutable({})
|
|
71
|
-
},
|
|
72
|
-
maxlength: {
|
|
73
|
-
type: [Number, String]
|
|
74
|
-
},
|
|
75
|
-
widget: {
|
|
76
|
-
type: String
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
export { inputProps };
|
|
5
|
+
script.render = render;
|
|
6
|
+
script.__file = "packages/components/input/src/input.vue";
|
|
81
7
|
//# sourceMappingURL=input2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input2.mjs","sources":[
|
|
1
|
+
{"version":3,"file":"input2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -41,7 +41,7 @@ var script = defineComponent({
|
|
|
41
41
|
const controlsAtRight = computed(() => {
|
|
42
42
|
return props.controls && props.controlsPosition === "right";
|
|
43
43
|
});
|
|
44
|
-
const { disabled: inputNumberDisabled } = useFormItem({});
|
|
44
|
+
const { size: inputNumberSize, disabled: inputNumberDisabled } = useFormItem({});
|
|
45
45
|
const displayValue = computed(() => {
|
|
46
46
|
if (data.userInput !== null) {
|
|
47
47
|
return data.userInput;
|
|
@@ -100,7 +100,9 @@ var script = defineComponent({
|
|
|
100
100
|
displayValue,
|
|
101
101
|
controlsAtRight,
|
|
102
102
|
maxDisabled,
|
|
103
|
-
minDisabled
|
|
103
|
+
minDisabled,
|
|
104
|
+
inputNumberSize,
|
|
105
|
+
inputNumberDisabled
|
|
104
106
|
};
|
|
105
107
|
}
|
|
106
108
|
});
|
package/es/packages/components/input-number/src/input-number.vue_vue&type=script&lang.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-number.vue_vue&type=script&lang.mjs","sources":["../../../../../../../packages/components/input-number/src/input-number.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'el-input-number',\n inputNumberSize ? 'el-input-number--' + inputNumberSize : '',\n { 'is-disabled': inputNumberDisabled },\n { 'is-without-controls': !controls },\n { 'is-controls-right': controlsAtRight },\n ]\"\n >\n <span\n v-if=\"controls\"\n class=\"el-input-number__decrease\"\n role=\"button\"\n :class=\"{ 'is-disabled': minDisabled }\"\n >\n <ps-icon>\n <arrow-down v-if=\"controlsAtRight\" />\n <minus v-else />\n </ps-icon>\n </span>\n <span\n v-if=\"controls\"\n class=\"el-input-number__increase\"\n role=\"button\"\n :class=\"{ 'is-disabled': maxDisabled }\"\n >\n <ps-icon>\n <arrow-up v-if=\"controlsAtRight\" />\n <plus v-else />\n </ps-icon>\n </span>\n <ps-input\n ref=\"input\"\n type=\"number\"\n :model-value=\"displayValue\"\n :placeholder=\"placeholder\"\n :disabled=\"inputNumberDisabled\"\n :size=\"inputNumberSize\"\n :max=\"max\"\n :min=\"min\"\n :name=\"name\"\n :label=\"label\"\n />\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n reactive,\n ref,\n onMounted,\n} from 'vue'\n\nimport { PsIcon } from '@element-ps/components/icon'\nimport { useFormItem } from '@element-ps/hooks'\nimport PsInput from '@element-ps/components/input'\nimport { isNumber } from '@element-ps/utils/util'\nimport { debugWarn } from '@element-ps/utils/error'\nimport { ArrowUp, ArrowDown, Plus, Minus } from '@element-plus/icons'\nimport { inputNumberProps } from './input-number'\n\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface IData {\n currentValue: number\n userInput: null | number | string\n}\n\nexport default defineComponent({\n name: 'PsInputNumber',\n components: {\n PsInput,\n PsIcon,\n ArrowUp,\n ArrowDown,\n Plus,\n Minus,\n },\n props: inputNumberProps,\n setup(props) {\n const input = ref<ComponentPublicInstance<typeof ElInput>>()\n const data = reactive<IData>({\n currentValue: props.modelValue,\n userInput: null,\n })\n\n const minDisabled = computed(() => _decrease(props.modelValue) < props.min)\n const maxDisabled = computed(() => _increase(props.modelValue) > props.max)\n\n const numPrecision = computed(() => {\n const stepPrecision = getPrecision(props.step)\n if (props.precision !== undefined) {\n if (stepPrecision > props.precision) {\n debugWarn(\n 'InputNumber',\n 'precision should not be less than the decimal places of step'\n )\n }\n return props.precision\n } else {\n return Math.max(getPrecision(props.modelValue), stepPrecision)\n }\n })\n const controlsAtRight = computed(() => {\n return props.controls && props.controlsPosition === 'right'\n })\n\n const { disabled: inputNumberDisabled } = useFormItem({})\n\n const displayValue = computed(() => {\n if (data.userInput !== null) {\n return data.userInput\n }\n let currentValue: number | string = data.currentValue\n if (isNumber(currentValue)) {\n if (Number.isNaN(currentValue)) return ''\n if (props.precision !== undefined) {\n currentValue = currentValue.toFixed(props.precision)\n }\n }\n return currentValue\n })\n const toPrecision = (num: number, pre?: number) => {\n if (pre === undefined) pre = numPrecision.value\n return parseFloat(\n `${Math.round(num * Math.pow(10, pre)) / Math.pow(10, pre)}`\n )\n }\n const getPrecision = (value: number | undefined) => {\n if (value === undefined) return 0\n const valueString = value.toString()\n const dotPosition = valueString.indexOf('.')\n let precision = 0\n if (dotPosition !== -1) {\n precision = valueString.length - dotPosition - 1\n }\n return precision\n }\n const _increase = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val + precisionFactor * props.step) / precisionFactor\n )\n }\n const _decrease = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val - precisionFactor * props.step) / precisionFactor\n )\n }\n\n onMounted(() => {\n const innerInput = input.value?.input as HTMLInputElement\n innerInput.setAttribute('role', 'spinbutton')\n innerInput.setAttribute('aria-valuemax', String(props.max))\n innerInput.setAttribute('aria-valuemin', String(props.min))\n innerInput.setAttribute('aria-valuenow', String(data.currentValue))\n innerInput.setAttribute(\n 'aria-disabled',\n String(inputNumberDisabled.value)\n )\n })\n\n return {\n input,\n displayValue,\n controlsAtRight,\n maxDisabled,\n minDisabled,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAsEA,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,MAAM,OAAO;AACX,UAAM,QAAQ;AACd,UAAM,OAAO,SAAgB;AAAA,MAC3B,cAAc,MAAM;AAAA,MACpB,WAAW;AAAA;AAGb,UAAM,cAAc,SAAS,MAAM,UAAU,MAAM,cAAc,MAAM;AACvE,UAAM,cAAc,SAAS,MAAM,UAAU,MAAM,cAAc,MAAM;AAEvE,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,gBAAgB,aAAa,MAAM;AACzC,UAAI,MAAM,cAAc,QAAW;AACjC,YAAI,gBAAgB,MAAM,WAAW;AACnC,oBACE,eACA;AAAA;AAGJ,eAAO,MAAM;AAAA,aACR;AACL,eAAO,KAAK,IAAI,aAAa,MAAM,aAAa;AAAA;AAAA;AAGpD,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,MAAM,YAAY,MAAM,qBAAqB;AAAA;AAGtD,UAAM,EAAE,UAAU,wBAAwB,YAAY;
|
|
1
|
+
{"version":3,"file":"input-number.vue_vue&type=script&lang.mjs","sources":["../../../../../../../packages/components/input-number/src/input-number.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'el-input-number',\n inputNumberSize ? 'el-input-number--' + inputNumberSize : '',\n { 'is-disabled': inputNumberDisabled },\n { 'is-without-controls': !controls },\n { 'is-controls-right': controlsAtRight },\n ]\"\n >\n <span\n v-if=\"controls\"\n class=\"el-input-number__decrease\"\n role=\"button\"\n :class=\"{ 'is-disabled': minDisabled }\"\n >\n <ps-icon>\n <arrow-down v-if=\"controlsAtRight\" />\n <minus v-else />\n </ps-icon>\n </span>\n <span\n v-if=\"controls\"\n class=\"el-input-number__increase\"\n role=\"button\"\n :class=\"{ 'is-disabled': maxDisabled }\"\n >\n <ps-icon>\n <arrow-up v-if=\"controlsAtRight\" />\n <plus v-else />\n </ps-icon>\n </span>\n <ps-input\n ref=\"input\"\n type=\"number\"\n :model-value=\"displayValue\"\n :placeholder=\"placeholder\"\n :disabled=\"inputNumberDisabled\"\n :size=\"inputNumberSize\"\n :max=\"max\"\n :min=\"min\"\n :name=\"name\"\n :label=\"label\"\n />\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n reactive,\n ref,\n onMounted,\n} from 'vue'\n\nimport { PsIcon } from '@element-ps/components/icon'\nimport { useFormItem } from '@element-ps/hooks'\nimport PsInput from '@element-ps/components/input'\nimport { isNumber } from '@element-ps/utils/util'\nimport { debugWarn } from '@element-ps/utils/error'\nimport { ArrowUp, ArrowDown, Plus, Minus } from '@element-plus/icons'\nimport { inputNumberProps } from './input-number'\n\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface IData {\n currentValue: number\n userInput: null | number | string\n}\n\nexport default defineComponent({\n name: 'PsInputNumber',\n components: {\n PsInput,\n PsIcon,\n ArrowUp,\n ArrowDown,\n Plus,\n Minus,\n },\n props: inputNumberProps,\n setup(props) {\n const input = ref<ComponentPublicInstance<typeof ElInput>>()\n const data = reactive<IData>({\n currentValue: props.modelValue,\n userInput: null,\n })\n\n const minDisabled = computed(() => _decrease(props.modelValue) < props.min)\n const maxDisabled = computed(() => _increase(props.modelValue) > props.max)\n\n const numPrecision = computed(() => {\n const stepPrecision = getPrecision(props.step)\n if (props.precision !== undefined) {\n if (stepPrecision > props.precision) {\n debugWarn(\n 'InputNumber',\n 'precision should not be less than the decimal places of step'\n )\n }\n return props.precision\n } else {\n return Math.max(getPrecision(props.modelValue), stepPrecision)\n }\n })\n const controlsAtRight = computed(() => {\n return props.controls && props.controlsPosition === 'right'\n })\n\n const { size: inputNumberSize, disabled: inputNumberDisabled } = useFormItem({})\n\n const displayValue = computed(() => {\n if (data.userInput !== null) {\n return data.userInput\n }\n let currentValue: number | string = data.currentValue\n if (isNumber(currentValue)) {\n if (Number.isNaN(currentValue)) return ''\n if (props.precision !== undefined) {\n currentValue = currentValue.toFixed(props.precision)\n }\n }\n return currentValue\n })\n const toPrecision = (num: number, pre?: number) => {\n if (pre === undefined) pre = numPrecision.value\n return parseFloat(\n `${Math.round(num * Math.pow(10, pre)) / Math.pow(10, pre)}`\n )\n }\n const getPrecision = (value: number | undefined) => {\n if (value === undefined) return 0\n const valueString = value.toString()\n const dotPosition = valueString.indexOf('.')\n let precision = 0\n if (dotPosition !== -1) {\n precision = valueString.length - dotPosition - 1\n }\n return precision\n }\n const _increase = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val + precisionFactor * props.step) / precisionFactor\n )\n }\n const _decrease = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val - precisionFactor * props.step) / precisionFactor\n )\n }\n\n onMounted(() => {\n const innerInput = input.value?.input as HTMLInputElement\n innerInput.setAttribute('role', 'spinbutton')\n innerInput.setAttribute('aria-valuemax', String(props.max))\n innerInput.setAttribute('aria-valuemin', String(props.min))\n innerInput.setAttribute('aria-valuenow', String(data.currentValue))\n innerInput.setAttribute(\n 'aria-disabled',\n String(inputNumberDisabled.value)\n )\n })\n\n return {\n input,\n displayValue,\n controlsAtRight,\n maxDisabled,\n minDisabled,\n inputNumberSize,\n inputNumberDisabled\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAsEA,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,MAAM,OAAO;AACX,UAAM,QAAQ;AACd,UAAM,OAAO,SAAgB;AAAA,MAC3B,cAAc,MAAM;AAAA,MACpB,WAAW;AAAA;AAGb,UAAM,cAAc,SAAS,MAAM,UAAU,MAAM,cAAc,MAAM;AACvE,UAAM,cAAc,SAAS,MAAM,UAAU,MAAM,cAAc,MAAM;AAEvE,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,gBAAgB,aAAa,MAAM;AACzC,UAAI,MAAM,cAAc,QAAW;AACjC,YAAI,gBAAgB,MAAM,WAAW;AACnC,oBACE,eACA;AAAA;AAGJ,eAAO,MAAM;AAAA,aACR;AACL,eAAO,KAAK,IAAI,aAAa,MAAM,aAAa;AAAA;AAAA;AAGpD,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,MAAM,YAAY,MAAM,qBAAqB;AAAA;AAGtD,UAAM,EAAE,MAAM,iBAAiB,UAAU,wBAAwB,YAAY;AAE7E,UAAM,eAAe,SAAS,MAAM;AAClC,UAAI,KAAK,cAAc,MAAM;AAC3B,eAAO,KAAK;AAAA;AAEd,UAAI,eAAgC,KAAK;AACzC,UAAI,SAAS,eAAe;AAC1B,YAAI,OAAO,MAAM;AAAe,iBAAO;AACvC,YAAI,MAAM,cAAc,QAAW;AACjC,yBAAe,aAAa,QAAQ,MAAM;AAAA;AAAA;AAG9C,aAAO;AAAA;AAET,UAAM,cAAc,CAAC,KAAa,QAAiB;AACjD,UAAI,QAAQ;AAAW,cAAM,aAAa;AAC1C,aAAO,WACL,GAAG,KAAK,MAAM,MAAM,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI;AAAA;AAG1D,UAAM,eAAe,CAAC,UAA8B;AAClD,UAAI,UAAU;AAAW,eAAO;AAChC,YAAM,cAAc,MAAM;AAC1B,YAAM,cAAc,YAAY,QAAQ;AACxC,UAAI,YAAY;AAChB,UAAI,gBAAgB,IAAI;AACtB,oBAAY,YAAY,SAAS,cAAc;AAAA;AAEjD,aAAO;AAAA;AAET,UAAM,YAAY,CAAC,QAAgB;AACjC,UAAI,CAAC,SAAS;AAAM,eAAO,KAAK;AAChC,YAAM,kBAAkB,KAAK,IAAI,IAAI,aAAa;AAElD,YAAM,SAAS,OAAO,MAAM;AAC5B,aAAO,YACJ,mBAAkB,MAAM,kBAAkB,MAAM,QAAQ;AAAA;AAG7D,UAAM,YAAY,CAAC,QAAgB;AACjC,UAAI,CAAC,SAAS;AAAM,eAAO,KAAK;AAChC,YAAM,kBAAkB,KAAK,IAAI,IAAI,aAAa;AAElD,YAAM,SAAS,OAAO,MAAM;AAC5B,aAAO,YACJ,mBAAkB,MAAM,kBAAkB,MAAM,QAAQ;AAAA;AAI7D,cAAU,MAAM;;AACd,YAAM,aAAa,YAAM,UAAN,mBAAa;AAChC,iBAAW,aAAa,QAAQ;AAChC,iBAAW,aAAa,iBAAiB,OAAO,MAAM;AACtD,iBAAW,aAAa,iBAAiB,OAAO,MAAM;AACtD,iBAAW,aAAa,iBAAiB,OAAO,KAAK;AACrD,iBAAW,aACT,iBACA,OAAO,oBAAoB;AAAA;AAI/B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-number.vue_vue&type=template&id=dec60af6&lang.mjs","sources":["../../../../../../../packages/components/input-number/src/input-number.vue?vue&type=template&id=dec60af6&lang.js"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'el-input-number',\n inputNumberSize ? 'el-input-number--' + inputNumberSize : '',\n { 'is-disabled': inputNumberDisabled },\n { 'is-without-controls': !controls },\n { 'is-controls-right': controlsAtRight },\n ]\"\n >\n <span\n v-if=\"controls\"\n class=\"el-input-number__decrease\"\n role=\"button\"\n :class=\"{ 'is-disabled': minDisabled }\"\n >\n <ps-icon>\n <arrow-down v-if=\"controlsAtRight\" />\n <minus v-else />\n </ps-icon>\n </span>\n <span\n v-if=\"controls\"\n class=\"el-input-number__increase\"\n role=\"button\"\n :class=\"{ 'is-disabled': maxDisabled }\"\n >\n <ps-icon>\n <arrow-up v-if=\"controlsAtRight\" />\n <plus v-else />\n </ps-icon>\n </span>\n <ps-input\n ref=\"input\"\n type=\"number\"\n :model-value=\"displayValue\"\n :placeholder=\"placeholder\"\n :disabled=\"inputNumberDisabled\"\n :size=\"inputNumberSize\"\n :max=\"max\"\n :min=\"min\"\n :name=\"name\"\n :label=\"label\"\n />\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n reactive,\n ref,\n onMounted,\n} from 'vue'\n\nimport { PsIcon } from '@element-ps/components/icon'\nimport { useFormItem } from '@element-ps/hooks'\nimport PsInput from '@element-ps/components/input'\nimport { isNumber } from '@element-ps/utils/util'\nimport { debugWarn } from '@element-ps/utils/error'\nimport { ArrowUp, ArrowDown, Plus, Minus } from '@element-plus/icons'\nimport { inputNumberProps } from './input-number'\n\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface IData {\n currentValue: number\n userInput: null | number | string\n}\n\nexport default defineComponent({\n name: 'PsInputNumber',\n components: {\n PsInput,\n PsIcon,\n ArrowUp,\n ArrowDown,\n Plus,\n Minus,\n },\n props: inputNumberProps,\n setup(props) {\n const input = ref<ComponentPublicInstance<typeof ElInput>>()\n const data = reactive<IData>({\n currentValue: props.modelValue,\n userInput: null,\n })\n\n const minDisabled = computed(() => _decrease(props.modelValue) < props.min)\n const maxDisabled = computed(() => _increase(props.modelValue) > props.max)\n\n const numPrecision = computed(() => {\n const stepPrecision = getPrecision(props.step)\n if (props.precision !== undefined) {\n if (stepPrecision > props.precision) {\n debugWarn(\n 'InputNumber',\n 'precision should not be less than the decimal places of step'\n )\n }\n return props.precision\n } else {\n return Math.max(getPrecision(props.modelValue), stepPrecision)\n }\n })\n const controlsAtRight = computed(() => {\n return props.controls && props.controlsPosition === 'right'\n })\n\n const { disabled: inputNumberDisabled } = useFormItem({})\n\n const displayValue = computed(() => {\n if (data.userInput !== null) {\n return data.userInput\n }\n let currentValue: number | string = data.currentValue\n if (isNumber(currentValue)) {\n if (Number.isNaN(currentValue)) return ''\n if (props.precision !== undefined) {\n currentValue = currentValue.toFixed(props.precision)\n }\n }\n return currentValue\n })\n const toPrecision = (num: number, pre?: number) => {\n if (pre === undefined) pre = numPrecision.value\n return parseFloat(\n `${Math.round(num * Math.pow(10, pre)) / Math.pow(10, pre)}`\n )\n }\n const getPrecision = (value: number | undefined) => {\n if (value === undefined) return 0\n const valueString = value.toString()\n const dotPosition = valueString.indexOf('.')\n let precision = 0\n if (dotPosition !== -1) {\n precision = valueString.length - dotPosition - 1\n }\n return precision\n }\n const _increase = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val + precisionFactor * props.step) / precisionFactor\n )\n }\n const _decrease = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val - precisionFactor * props.step) / precisionFactor\n )\n }\n\n onMounted(() => {\n const innerInput = input.value?.input as HTMLInputElement\n innerInput.setAttribute('role', 'spinbutton')\n innerInput.setAttribute('aria-valuemax', String(props.max))\n innerInput.setAttribute('aria-valuemin', String(props.min))\n innerInput.setAttribute('aria-valuenow', String(data.currentValue))\n innerInput.setAttribute(\n 'aria-disabled',\n String(inputNumberDisabled.value)\n )\n })\n\n return {\n input,\n displayValue,\n controlsAtRight,\n maxDisabled,\n minDisabled,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createVNode","_createBlock"],"mappings":";;;;;;;;;sBACEA;IACG;;;;;;;;IASO,8BADRA;;MAEE,uBAAM,8CAEmB;MADzB,MAAK;AAAA;MAGLC;yBACE;UAAkB,qCAAlBC,gEACAA;;;;;IAII,8BADRF;;MAEE,uBAAM,8CAEmB;MADzB,MAAK;AAAA;MAGLC;yBACE;UAAgB,qCAAhBC,8DACAA;;;;;IAGJD;MACE,KAAI;AAAA,MACJ,MAAK;AAAA,MACJ,eAAa;MACb,aAAa;MACb,UAAU;MACV,MAAM;MACN,KAAK;MACL,KAAK;MACL,MAAM;MACN,OAAO;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"input-number.vue_vue&type=template&id=dec60af6&lang.mjs","sources":["../../../../../../../packages/components/input-number/src/input-number.vue?vue&type=template&id=dec60af6&lang.js"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'el-input-number',\n inputNumberSize ? 'el-input-number--' + inputNumberSize : '',\n { 'is-disabled': inputNumberDisabled },\n { 'is-without-controls': !controls },\n { 'is-controls-right': controlsAtRight },\n ]\"\n >\n <span\n v-if=\"controls\"\n class=\"el-input-number__decrease\"\n role=\"button\"\n :class=\"{ 'is-disabled': minDisabled }\"\n >\n <ps-icon>\n <arrow-down v-if=\"controlsAtRight\" />\n <minus v-else />\n </ps-icon>\n </span>\n <span\n v-if=\"controls\"\n class=\"el-input-number__increase\"\n role=\"button\"\n :class=\"{ 'is-disabled': maxDisabled }\"\n >\n <ps-icon>\n <arrow-up v-if=\"controlsAtRight\" />\n <plus v-else />\n </ps-icon>\n </span>\n <ps-input\n ref=\"input\"\n type=\"number\"\n :model-value=\"displayValue\"\n :placeholder=\"placeholder\"\n :disabled=\"inputNumberDisabled\"\n :size=\"inputNumberSize\"\n :max=\"max\"\n :min=\"min\"\n :name=\"name\"\n :label=\"label\"\n />\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n reactive,\n ref,\n onMounted,\n} from 'vue'\n\nimport { PsIcon } from '@element-ps/components/icon'\nimport { useFormItem } from '@element-ps/hooks'\nimport PsInput from '@element-ps/components/input'\nimport { isNumber } from '@element-ps/utils/util'\nimport { debugWarn } from '@element-ps/utils/error'\nimport { ArrowUp, ArrowDown, Plus, Minus } from '@element-plus/icons'\nimport { inputNumberProps } from './input-number'\n\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface IData {\n currentValue: number\n userInput: null | number | string\n}\n\nexport default defineComponent({\n name: 'PsInputNumber',\n components: {\n PsInput,\n PsIcon,\n ArrowUp,\n ArrowDown,\n Plus,\n Minus,\n },\n props: inputNumberProps,\n setup(props) {\n const input = ref<ComponentPublicInstance<typeof ElInput>>()\n const data = reactive<IData>({\n currentValue: props.modelValue,\n userInput: null,\n })\n\n const minDisabled = computed(() => _decrease(props.modelValue) < props.min)\n const maxDisabled = computed(() => _increase(props.modelValue) > props.max)\n\n const numPrecision = computed(() => {\n const stepPrecision = getPrecision(props.step)\n if (props.precision !== undefined) {\n if (stepPrecision > props.precision) {\n debugWarn(\n 'InputNumber',\n 'precision should not be less than the decimal places of step'\n )\n }\n return props.precision\n } else {\n return Math.max(getPrecision(props.modelValue), stepPrecision)\n }\n })\n const controlsAtRight = computed(() => {\n return props.controls && props.controlsPosition === 'right'\n })\n\n const { size: inputNumberSize, disabled: inputNumberDisabled } = useFormItem({})\n\n const displayValue = computed(() => {\n if (data.userInput !== null) {\n return data.userInput\n }\n let currentValue: number | string = data.currentValue\n if (isNumber(currentValue)) {\n if (Number.isNaN(currentValue)) return ''\n if (props.precision !== undefined) {\n currentValue = currentValue.toFixed(props.precision)\n }\n }\n return currentValue\n })\n const toPrecision = (num: number, pre?: number) => {\n if (pre === undefined) pre = numPrecision.value\n return parseFloat(\n `${Math.round(num * Math.pow(10, pre)) / Math.pow(10, pre)}`\n )\n }\n const getPrecision = (value: number | undefined) => {\n if (value === undefined) return 0\n const valueString = value.toString()\n const dotPosition = valueString.indexOf('.')\n let precision = 0\n if (dotPosition !== -1) {\n precision = valueString.length - dotPosition - 1\n }\n return precision\n }\n const _increase = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val + precisionFactor * props.step) / precisionFactor\n )\n }\n const _decrease = (val: number) => {\n if (!isNumber(val)) return data.currentValue\n const precisionFactor = Math.pow(10, numPrecision.value)\n // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n val = isNumber(val) ? val : NaN\n return toPrecision(\n (precisionFactor * val - precisionFactor * props.step) / precisionFactor\n )\n }\n\n onMounted(() => {\n const innerInput = input.value?.input as HTMLInputElement\n innerInput.setAttribute('role', 'spinbutton')\n innerInput.setAttribute('aria-valuemax', String(props.max))\n innerInput.setAttribute('aria-valuemin', String(props.min))\n innerInput.setAttribute('aria-valuenow', String(data.currentValue))\n innerInput.setAttribute(\n 'aria-disabled',\n String(inputNumberDisabled.value)\n )\n })\n\n return {\n input,\n displayValue,\n controlsAtRight,\n maxDisabled,\n minDisabled,\n inputNumberSize,\n inputNumberDisabled\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createVNode","_createBlock"],"mappings":";;;;;;;;;sBACEA;IACG;;;;;;;;IASO,8BADRA;;MAEE,uBAAM,8CAEmB;MADzB,MAAK;AAAA;MAGLC;yBACE;UAAkB,qCAAlBC,gEACAA;;;;;IAII,8BADRF;;MAEE,uBAAM,8CAEmB;MADzB,MAAK;AAAA;MAGLC;yBACE;UAAgB,qCAAhBC,8DACAA;;;;;IAGJD;MACE,KAAI;AAAA,MACJ,MAAK;AAAA,MACJ,eAAa;MACb,aAAa;MACb,UAAU;MACV,MAAM;MACN,KAAK;MACL,KAAK;MACL,MAAM;MACN,OAAO;;;;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { withInstall, withNoopInstall } from '../../utils/with-install.mjs';
|
|
2
2
|
import Menu from './src/menu.mjs';
|
|
3
3
|
export { menuEmits, menuProps } from './src/menu.mjs';
|
|
4
|
-
import './src/menu-
|
|
5
|
-
import './src/menu-item-
|
|
4
|
+
import './src/menu-item2.mjs';
|
|
5
|
+
import './src/menu-item-group2.mjs';
|
|
6
6
|
import SubMenu from './src/sub-menu.mjs';
|
|
7
7
|
export { subMenuProps } from './src/sub-menu.mjs';
|
|
8
|
-
export { menuItemEmits, menuItemProps } from './src/menu-
|
|
9
|
-
export { menuItemGroupProps } from './src/menu-item-
|
|
8
|
+
export { menuItemEmits, menuItemProps } from './src/menu-item.mjs';
|
|
9
|
+
export { menuItemGroupProps } from './src/menu-item-group.mjs';
|
|
10
10
|
import './src/types.mjs';
|
|
11
11
|
import script from './src/menu-item.vue_vue&type=script&lang.mjs';
|
|
12
12
|
import script$1 from './src/menu-item-group.vue_vue&type=script&lang.mjs';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const menuItemGroupProps = {
|
|
2
|
+
title: String
|
|
3
|
+
};
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
script.__file = "packages/components/menu/src/menu-item-group.vue";
|
|
5
|
+
export { menuItemGroupProps };
|
|
7
6
|
//# sourceMappingURL=menu-item-group.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-group.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu-item-group.mjs","sources":["../../../../../../../packages/components/menu/src/menu-item-group.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\n\nexport const menuItemGroupProps = {\n title: String,\n} as const\nexport type MenuItemGroupProps = ExtractPropTypes<typeof menuItemGroupProps>\n"],"names":[],"mappings":"MAEa,qBAAqB;AAAA,EAChC,OAAO;AAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, getCurrentInstance, inject, computed } from 'vue';
|
|
2
2
|
import { throwError } from '../../../utils/error.mjs';
|
|
3
|
-
import { menuItemGroupProps } from './menu-item-
|
|
3
|
+
import { menuItemGroupProps } from './menu-item-group.mjs';
|
|
4
4
|
|
|
5
5
|
const COMPONENT_NAME = "ElMenuItemGroup";
|
|
6
6
|
var script = defineComponent({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
};
|
|
1
|
+
import script from './menu-item-group.vue_vue&type=script&lang.mjs';
|
|
2
|
+
export { default } from './menu-item-group.vue_vue&type=script&lang.mjs';
|
|
3
|
+
import { render } from './menu-item-group.vue_vue&type=template&id=67a2995d&lang.mjs';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
script.render = render;
|
|
6
|
+
script.__file = "packages/components/menu/src/menu-item-group.vue";
|
|
6
7
|
//# sourceMappingURL=menu-item-group2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-group2.mjs","sources":[
|
|
1
|
+
{"version":3,"file":"menu-item-group2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import {
|
|
1
|
+
import { buildProps, definePropType } from '../../../utils/props.mjs';
|
|
2
|
+
import '../../../utils/util.mjs';
|
|
3
|
+
import { isString } from '@vue/shared';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const menuItemProps = buildProps({
|
|
6
|
+
index: {
|
|
7
|
+
type: definePropType([String, null]),
|
|
8
|
+
default: null
|
|
9
|
+
},
|
|
10
|
+
route: {
|
|
11
|
+
type: definePropType([String, Object])
|
|
12
|
+
},
|
|
13
|
+
disabled: Boolean
|
|
14
|
+
});
|
|
15
|
+
const menuItemEmits = {
|
|
16
|
+
click: (item) => isString(item.index) && Array.isArray(item.indexPath)
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { menuItemEmits, menuItemProps };
|
|
7
20
|
//# sourceMappingURL=menu-item.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu-item.mjs","sources":["../../../../../../../packages/components/menu/src/menu-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-ps/utils/props'\nimport { isString } from '@element-ps/utils/util'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport type { MenuItemRegistered } from './types'\n\nexport const menuItemProps = buildProps({\n index: {\n type: definePropType<string | null>([String, null]),\n default: null,\n },\n route: {\n type: definePropType<RouteLocationRaw>([String, Object]),\n },\n disabled: Boolean,\n} as const)\nexport type MenuItemProps = ExtractPropTypes<typeof menuItemProps>\n\nexport const menuItemEmits = {\n click: (item: MenuItemRegistered) =>\n isString(item.index) && Array.isArray(item.indexPath),\n}\nexport type MenuItemEmits = typeof menuItemEmits\n"],"names":[],"mappings":";;;;MAOa,gBAAgB,WAAW;AAAA,EACtC,OAAO;AAAA,IACL,MAAM,eAA8B,CAAC,QAAQ;AAAA,IAC7C,SAAS;AAAA;AAAA,EAEX,OAAO;AAAA,IACL,MAAM,eAAiC,CAAC,QAAQ;AAAA;AAAA,EAElD,UAAU;AAAA;MAIC,gBAAgB;AAAA,EAC3B,OAAO,CAAC,SACN,SAAS,KAAK,UAAU,MAAM,QAAQ,KAAK;AAAA;;;;"}
|
|
@@ -3,7 +3,7 @@ import _Tooltip from '../../tooltip/index.mjs';
|
|
|
3
3
|
import '../../popper/index.mjs';
|
|
4
4
|
import { throwError } from '../../../utils/error.mjs';
|
|
5
5
|
import useMenu from './use-menu.mjs';
|
|
6
|
-
import { menuItemProps } from './menu-
|
|
6
|
+
import { menuItemProps } from './menu-item.mjs';
|
|
7
7
|
import { Effect } from '../../popper/src/use-popper/defaults.mjs';
|
|
8
8
|
|
|
9
9
|
const COMPONENT_NAME = "PsMenuItem";
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import {
|
|
1
|
+
import script from './menu-item.vue_vue&type=script&lang.mjs';
|
|
2
|
+
export { default } from './menu-item.vue_vue&type=script&lang.mjs';
|
|
3
|
+
import { render } from './menu-item.vue_vue&type=template&id=aa755baa&lang.mjs';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
type: definePropType([String, null]),
|
|
8
|
-
default: null
|
|
9
|
-
},
|
|
10
|
-
route: {
|
|
11
|
-
type: definePropType([String, Object])
|
|
12
|
-
},
|
|
13
|
-
disabled: Boolean
|
|
14
|
-
});
|
|
15
|
-
const menuItemEmits = {
|
|
16
|
-
click: (item) => isString(item.index) && Array.isArray(item.indexPath)
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { menuItemEmits, menuItemProps };
|
|
5
|
+
script.render = render;
|
|
6
|
+
script.__file = "packages/components/menu/src/menu-item.vue";
|
|
20
7
|
//# sourceMappingURL=menu-item2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item2.mjs","sources":[
|
|
1
|
+
{"version":3,"file":"menu-item2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import
|
|
1
|
+
import { withInstall } from '../../utils/with-install.mjs';
|
|
2
|
+
import './src/rate2.mjs';
|
|
3
|
+
export { rateEmits, rateProps } from './src/rate.mjs';
|
|
4
|
+
import script from './src/rate.vue_vue&type=script&lang.mjs';
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
app.component(script.name, script);
|
|
6
|
-
};
|
|
7
|
-
const _Rate = script;
|
|
8
|
-
const PsRate = _Rate;
|
|
6
|
+
const PsRate = withInstall(script);
|
|
9
7
|
|
|
10
|
-
export { PsRate,
|
|
8
|
+
export { PsRate, PsRate as default };
|
|
11
9
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/rate/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/rate/index.ts"],"sourcesContent":["import { withInstall } from '@element-ps/utils/with-install'\n\nimport Rate from './src/rate.vue'\n\nexport const PsRate = withInstall(Rate)\nexport default PsRate\n\nexport * from './src/rate'\n"],"names":["Rate"],"mappings":";;;;;MAIa,SAAS,YAAYA;;;;"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { StarFilled, Star } from '@element-plus/icons';
|
|
2
|
+
import { UPDATE_MODEL_EVENT } from '../../../utils/constants.mjs';
|
|
3
|
+
import { buildProps, definePropType, mutable } from '../../../utils/props.mjs';
|
|
4
|
+
|
|
5
|
+
const rateProps = buildProps({
|
|
6
|
+
modelValue: {
|
|
7
|
+
type: Number,
|
|
8
|
+
default: 0
|
|
9
|
+
},
|
|
10
|
+
lowThreshold: {
|
|
11
|
+
type: Number,
|
|
12
|
+
default: 2
|
|
13
|
+
},
|
|
14
|
+
highThreshold: {
|
|
15
|
+
type: Number,
|
|
16
|
+
default: 4
|
|
17
|
+
},
|
|
18
|
+
max: {
|
|
19
|
+
type: Number,
|
|
20
|
+
default: 5
|
|
21
|
+
},
|
|
22
|
+
colors: {
|
|
23
|
+
type: definePropType([Array, Object]),
|
|
24
|
+
default: () => mutable(["#F7BA2A", "#F7BA2A", "#F7BA2A"])
|
|
25
|
+
},
|
|
26
|
+
voidColor: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: "#C6D1DE"
|
|
29
|
+
},
|
|
30
|
+
disabledVoidColor: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: "#EFF2F7"
|
|
33
|
+
},
|
|
34
|
+
icons: {
|
|
35
|
+
type: definePropType([Array, Object]),
|
|
36
|
+
default: () => [StarFilled, StarFilled, StarFilled]
|
|
37
|
+
},
|
|
38
|
+
voidIcon: {
|
|
39
|
+
type: definePropType([String, Object]),
|
|
40
|
+
default: () => Star
|
|
41
|
+
},
|
|
42
|
+
disabledvoidIcon: {
|
|
43
|
+
type: definePropType([String, Object]),
|
|
44
|
+
default: () => StarFilled
|
|
45
|
+
},
|
|
46
|
+
disabled: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: false
|
|
49
|
+
},
|
|
50
|
+
allowHalf: {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
default: false
|
|
53
|
+
},
|
|
54
|
+
showText: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
default: false
|
|
57
|
+
},
|
|
58
|
+
showScore: {
|
|
59
|
+
type: Boolean,
|
|
60
|
+
default: false
|
|
61
|
+
},
|
|
62
|
+
textColor: {
|
|
63
|
+
type: String,
|
|
64
|
+
default: "#1f2d3d"
|
|
65
|
+
},
|
|
66
|
+
texts: {
|
|
67
|
+
type: definePropType([Array]),
|
|
68
|
+
default: () => mutable([
|
|
69
|
+
"Extremely bad",
|
|
70
|
+
"Disappointed",
|
|
71
|
+
"Fair",
|
|
72
|
+
"Satisfied",
|
|
73
|
+
"Surprise"
|
|
74
|
+
])
|
|
75
|
+
},
|
|
76
|
+
scoreTemplate: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: "{value}"
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
const rateEmits = {
|
|
82
|
+
change: (value) => typeof value === "number",
|
|
83
|
+
[UPDATE_MODEL_EVENT]: (value) => typeof value === "number"
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export { rateEmits, rateProps };
|
|
87
|
+
//# sourceMappingURL=rate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate.mjs","sources":["../../../../../../../packages/components/rate/src/rate.ts"],"sourcesContent":["import { Star, StarFilled } from '@element-plus/icons'\nimport { UPDATE_MODEL_EVENT } from '@element-ps/utils/constants'\nimport { buildProps, definePropType, mutable } from '@element-ps/utils/props'\nimport type { Component, ExtractPropTypes } from 'vue'\n\nexport const rateProps = buildProps({\n modelValue: {\n type: Number,\n default: 0,\n },\n lowThreshold: {\n type: Number,\n default: 2,\n },\n highThreshold: {\n type: Number,\n default: 4,\n },\n max: {\n type: Number,\n default: 5,\n },\n colors: {\n type: definePropType<string[] | Record<number, string>>([Array, Object]),\n default: () => mutable(['#F7BA2A', '#F7BA2A', '#F7BA2A'] as const),\n },\n voidColor: {\n type: String,\n default: '#C6D1DE',\n },\n disabledVoidColor: {\n type: String,\n default: '#EFF2F7',\n },\n icons: {\n type: definePropType<\n Array<string | Component> | Record<number, string | Component>\n >([Array, Object]),\n default: () => [StarFilled, StarFilled, StarFilled],\n },\n voidIcon: {\n type: definePropType<string | Component>([String, Object]),\n default: () => Star,\n },\n disabledvoidIcon: {\n type: definePropType<string | Component>([String, Object]),\n default: () => StarFilled,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n allowHalf: {\n type: Boolean,\n default: false,\n },\n showText: {\n type: Boolean,\n default: false,\n },\n showScore: {\n type: Boolean,\n default: false,\n },\n textColor: {\n type: String,\n default: '#1f2d3d',\n },\n texts: {\n type: definePropType<string[]>([Array]),\n default: () =>\n mutable([\n 'Extremely bad',\n 'Disappointed',\n 'Fair',\n 'Satisfied',\n 'Surprise',\n ] as const),\n },\n scoreTemplate: {\n type: String,\n default: '{value}',\n },\n} as const)\n\nexport type RateProps = ExtractPropTypes<typeof rateProps>\n\nexport const rateEmits = {\n change: (value: number) => typeof value === 'number',\n [UPDATE_MODEL_EVENT]: (value: number) => typeof value === 'number',\n}\nexport type RateEmits = typeof rateEmits\n"],"names":[],"mappings":";;;;MAKa,YAAY,WAAW;AAAA,EAClC,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,KAAK;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,QAAQ;AAAA,IACN,MAAM,eAAkD,CAAC,OAAO;AAAA,IAChE,SAAS,MAAM,QAAQ,CAAC,WAAW,WAAW;AAAA;AAAA,EAEhD,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,OAAO;AAAA,IACL,MAAM,eAEJ,CAAC,OAAO;AAAA,IACV,SAAS,MAAM,CAAC,YAAY,YAAY;AAAA;AAAA,EAE1C,UAAU;AAAA,IACR,MAAM,eAAmC,CAAC,QAAQ;AAAA,IAClD,SAAS,MAAM;AAAA;AAAA,EAEjB,kBAAkB;AAAA,IAChB,MAAM,eAAmC,CAAC,QAAQ;AAAA,IAClD,SAAS,MAAM;AAAA;AAAA,EAEjB,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,OAAO;AAAA,IACL,MAAM,eAAyB,CAAC;AAAA,IAChC,SAAS,MACP,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,EAGN,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AAAA;MAMA,YAAY;AAAA,EACvB,QAAQ,CAAC,UAAkB,OAAO,UAAU;AAAA,GAC3C,qBAAqB,CAAC,UAAkB,OAAO,UAAU;AAAA;;;;"}
|
|
@@ -3,90 +3,32 @@ import { isObject, isArray } from '@vue/shared';
|
|
|
3
3
|
import '../../../tokens/index.mjs';
|
|
4
4
|
import { PsIcon } from '../../icon/index.mjs';
|
|
5
5
|
import { StarFilled, Star } from '@element-plus/icons';
|
|
6
|
+
import { rateProps } from './rate.mjs';
|
|
6
7
|
import { elFormKey } from '../../../tokens/form.mjs';
|
|
7
8
|
|
|
9
|
+
function getValueFromMap(value, map) {
|
|
10
|
+
const isExcludedObject = (val) => isObject(val);
|
|
11
|
+
const matchedKeys = Object.keys(map).map((key) => +key).filter((key) => {
|
|
12
|
+
const val = map[key];
|
|
13
|
+
const excluded = isExcludedObject(val) ? val.excluded : false;
|
|
14
|
+
return excluded ? value < key : value <= key;
|
|
15
|
+
}).sort((a, b) => a - b);
|
|
16
|
+
const matchedValue = map[matchedKeys[0]];
|
|
17
|
+
return isExcludedObject(matchedValue) && matchedValue.value || matchedValue;
|
|
18
|
+
}
|
|
8
19
|
var script = defineComponent({
|
|
9
20
|
name: "PsRate",
|
|
10
|
-
components: {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
default: 0
|
|
15
|
-
},
|
|
16
|
-
lowThreshold: {
|
|
17
|
-
type: Number,
|
|
18
|
-
default: 2
|
|
19
|
-
},
|
|
20
|
-
highThreshold: {
|
|
21
|
-
type: Number,
|
|
22
|
-
default: 4
|
|
23
|
-
},
|
|
24
|
-
max: {
|
|
25
|
-
type: Number,
|
|
26
|
-
default: 5
|
|
27
|
-
},
|
|
28
|
-
colors: {
|
|
29
|
-
type: [Array, Object],
|
|
30
|
-
default: () => ["#F7BA2A", "#F7BA2A", "#F7BA2A"]
|
|
31
|
-
},
|
|
32
|
-
voidColor: {
|
|
33
|
-
type: String,
|
|
34
|
-
default: "#C6D1DE"
|
|
35
|
-
},
|
|
36
|
-
disabledVoidColor: {
|
|
37
|
-
type: String,
|
|
38
|
-
default: "#EFF2F7"
|
|
39
|
-
},
|
|
40
|
-
icons: {
|
|
41
|
-
type: [Array, Object],
|
|
42
|
-
default: () => [StarFilled, StarFilled, StarFilled]
|
|
43
|
-
},
|
|
44
|
-
voidIcon: {
|
|
45
|
-
type: [String, Object],
|
|
46
|
-
default: Star
|
|
47
|
-
},
|
|
48
|
-
disabledvoidIcon: {
|
|
49
|
-
type: [String, Object],
|
|
50
|
-
default: StarFilled
|
|
51
|
-
},
|
|
52
|
-
disabled: {
|
|
53
|
-
type: Boolean,
|
|
54
|
-
default: false
|
|
55
|
-
},
|
|
56
|
-
allowHalf: {
|
|
57
|
-
type: Boolean,
|
|
58
|
-
default: false
|
|
59
|
-
},
|
|
60
|
-
showText: {
|
|
61
|
-
type: Boolean,
|
|
62
|
-
default: false
|
|
63
|
-
},
|
|
64
|
-
showScore: {
|
|
65
|
-
type: Boolean,
|
|
66
|
-
default: false
|
|
67
|
-
},
|
|
68
|
-
textColor: {
|
|
69
|
-
type: String,
|
|
70
|
-
default: "#1f2d3d"
|
|
71
|
-
},
|
|
72
|
-
texts: {
|
|
73
|
-
type: Array,
|
|
74
|
-
default: () => [
|
|
75
|
-
"Extremely bad",
|
|
76
|
-
"Disappointed",
|
|
77
|
-
"Fair",
|
|
78
|
-
"Satisfied",
|
|
79
|
-
"Surprise"
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
scoreTemplate: {
|
|
83
|
-
type: String,
|
|
84
|
-
default: "{value}"
|
|
85
|
-
}
|
|
21
|
+
components: {
|
|
22
|
+
PsIcon,
|
|
23
|
+
StarFilled,
|
|
24
|
+
Star
|
|
86
25
|
},
|
|
26
|
+
props: rateProps,
|
|
87
27
|
setup(props) {
|
|
88
28
|
const elForm = inject(elFormKey, {});
|
|
89
29
|
const currentValue = ref(props.modelValue);
|
|
30
|
+
const hoverIndex = ref(-1);
|
|
31
|
+
const pointerAtLeftHalf = ref(true);
|
|
90
32
|
const rateDisabled = computed(() => props.disabled || elForm.disabled);
|
|
91
33
|
const text = computed(() => {
|
|
92
34
|
let result = "";
|
|
@@ -97,15 +39,6 @@ var script = defineComponent({
|
|
|
97
39
|
}
|
|
98
40
|
return result;
|
|
99
41
|
});
|
|
100
|
-
function getValueFromMap(value, map) {
|
|
101
|
-
const matchedKeys = Object.keys(map).filter((key) => {
|
|
102
|
-
const val = map[key];
|
|
103
|
-
const excluded = isObject(val) ? val.excluded : false;
|
|
104
|
-
return excluded ? value < key : value <= key;
|
|
105
|
-
}).sort((a, b) => a - b);
|
|
106
|
-
const matchedValue = map[matchedKeys[0]];
|
|
107
|
-
return isObject(matchedValue) ? matchedValue.value || matchedValue : matchedValue || "";
|
|
108
|
-
}
|
|
109
42
|
const valueDecimal = computed(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100);
|
|
110
43
|
const colorMap = computed(() => isArray(props.colors) ? {
|
|
111
44
|
[props.lowThreshold]: props.colors[0],
|
|
@@ -143,7 +76,6 @@ var script = defineComponent({
|
|
|
143
76
|
result.fill(voidComponent.value, threshold, props.max);
|
|
144
77
|
return result;
|
|
145
78
|
});
|
|
146
|
-
const pointerAtLeftHalf = ref(true);
|
|
147
79
|
function showDecimalIcon(item) {
|
|
148
80
|
const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue;
|
|
149
81
|
const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - 0.5 <= currentValue.value && item > currentValue.value;
|
|
@@ -155,7 +87,6 @@ var script = defineComponent({
|
|
|
155
87
|
color: item <= currentValue.value ? activeColor.value : voidColor
|
|
156
88
|
};
|
|
157
89
|
}
|
|
158
|
-
const hoverIndex = ref(-1);
|
|
159
90
|
return {
|
|
160
91
|
hoverIndex,
|
|
161
92
|
currentValue,
|
|
@@ -171,4 +102,4 @@ var script = defineComponent({
|
|
|
171
102
|
});
|
|
172
103
|
|
|
173
104
|
export { script as default };
|
|
174
|
-
//# sourceMappingURL=
|
|
105
|
+
//# sourceMappingURL=rate.vue_vue&type=script&lang.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate.vue_vue&type=script&lang.mjs","sources":["../../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<template>\n <div\n class=\"el-rate\"\n role=\"slider\"\n :aria-valuenow=\"currentValue\"\n :aria-valuetext=\"text\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"max\"\n tabindex=\"0\"\n >\n <span\n v-for=\"(item, key) in max\"\n :key=\"key\"\n class=\"el-rate__item\"\n :style=\"{ cursor: rateDisabled ? 'auto' : 'pointer' }\"\n >\n <ps-icon\n :class=\"[{ hover: hoverIndex === item }]\"\n class=\"el-rate__icon\"\n :style=\"getIconStyle(item)\"\n >\n <component :is=\"iconComponents[item - 1]\" />\n <ps-icon\n v-if=\"showDecimalIcon(item)\"\n :style=\"decimalStyle\"\n class=\"el-rate__icon el-rate__decimal\"\n >\n <component :is=\"decimalIconComponent\" />\n </ps-icon>\n </ps-icon>\n </span>\n <span\n v-if=\"showText || showScore\"\n class=\"el-rate__text\"\n :style=\"{ color: textColor }\"\n >\n {{ text }}\n </span>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref, watch } from 'vue'\nimport { isObject, isArray } from '@vue/shared'\nimport { elFormKey } from '@element-ps/tokens'\nimport { PsIcon } from '@element-ps/components/icon'\nimport { StarFilled, Star } from '@element-plus/icons'\nimport { rateProps, rateEmits } from './rate'\nimport type { ElFormContext } from '@element-ps/tokens'\n\nfunction getValueFromMap<T>(\n value: number,\n map: Record<string, T | { excluded?: boolean; value: T }>\n) {\n const isExcludedObject = (\n val: unknown\n ): val is { excluded?: boolean } & Record<any, unknown> => isObject(val)\n\n const matchedKeys = Object.keys(map)\n .map((key) => +key)\n .filter((key) => {\n const val = map[key]\n const excluded = isExcludedObject(val) ? val.excluded : false\n return excluded ? value < key : value <= key\n })\n .sort((a, b) => a - b)\n const matchedValue = map[matchedKeys[0]]\n return (isExcludedObject(matchedValue) && matchedValue.value) || matchedValue\n}\n\nexport default defineComponent({\n name: 'PsRate',\n components: {\n PsIcon,\n StarFilled,\n Star,\n },\n props: rateProps,\n setup(props) {\n const elForm = inject(elFormKey, {} as ElFormContext)\n\n const currentValue = ref(props.modelValue)\n const hoverIndex = ref(-1)\n const pointerAtLeftHalf = ref(true)\n\n const rateDisabled = computed(() => props.disabled || elForm.disabled)\n const text = computed(() => {\n let result = ''\n if (props.showScore) {\n result = props.scoreTemplate.replace(\n /\\{\\s*value\\s*\\}/,\n rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`\n )\n } else if (props.showText) {\n result = props.texts[Math.ceil(currentValue.value) - 1]\n }\n return result\n })\n const valueDecimal = computed(\n () => props.modelValue * 100 - Math.floor(props.modelValue) * 100\n )\n const colorMap = computed(() =>\n isArray(props.colors)\n ? {\n [props.lowThreshold]: props.colors[0],\n [props.highThreshold]: { value: props.colors[1], excluded: true },\n [props.max]: props.colors[2],\n }\n : props.colors\n )\n const activeColor = computed(() =>\n getValueFromMap(currentValue.value, colorMap.value)\n )\n const decimalStyle = computed(() => {\n let width = ''\n if (rateDisabled.value) {\n width = `${valueDecimal.value}%`\n } else if (props.allowHalf) {\n width = '50%'\n }\n return {\n color: activeColor.value,\n width,\n }\n })\n const componentMap = computed(() =>\n isArray(props.icons)\n ? {\n [props.lowThreshold]: props.icons[0],\n [props.highThreshold]: {\n value: props.icons[1],\n excluded: true,\n },\n [props.max]: props.icons[2],\n }\n : props.icons\n )\n const decimalIconComponent = computed(() =>\n getValueFromMap(props.modelValue, componentMap.value)\n )\n const voidComponent = computed(() =>\n rateDisabled.value ? props.disabledvoidIcon : props.voidIcon\n )\n const activeComponent = computed(() =>\n getValueFromMap(currentValue.value, componentMap.value)\n )\n const iconComponents = computed(() => {\n const result = Array(props.max)\n const threshold = currentValue.value\n result.fill(activeComponent.value, 0, threshold)\n result.fill(voidComponent.value, threshold, props.max)\n return result\n })\n\n function showDecimalIcon(item: number) {\n const showWhenDisabled =\n rateDisabled.value &&\n valueDecimal.value > 0 &&\n item - 1 < props.modelValue &&\n item > props.modelValue\n const showWhenAllowHalf =\n props.allowHalf &&\n pointerAtLeftHalf.value &&\n item - 0.5 <= currentValue.value &&\n item > currentValue.value\n return showWhenDisabled || showWhenAllowHalf\n }\n\n function getIconStyle(item: number) {\n const voidColor = rateDisabled.value\n ? props.disabledVoidColor\n : props.voidColor\n return {\n color: item <= currentValue.value ? activeColor.value : voidColor,\n }\n }\n\n return {\n hoverIndex,\n currentValue,\n rateDisabled,\n text,\n decimalStyle,\n decimalIconComponent,\n iconComponents,\n\n showDecimalIcon,\n getIconStyle,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;AAiDA,yBACE,OACA,KACA;AACA,QAAM,mBAAmB,CACvB,QACyD,SAAS;AAEpE,QAAM,cAAc,OAAO,KAAK,KAC7B,IAAI,CAAC,QAAQ,CAAC,KACd,OAAO,CAAC,QAAQ;AACf,UAAM,MAAM,IAAI;AAChB,UAAM,WAAW,iBAAiB,OAAO,IAAI,WAAW;AACxD,WAAO,WAAW,QAAQ,MAAM,SAAS;AAAA,KAE1C,KAAK,CAAC,GAAG,MAAM,IAAI;AACtB,QAAM,eAAe,IAAI,YAAY;AACrC,SAAQ,iBAAiB,iBAAiB,aAAa,SAAU;AAAA;AAGnE,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,MAAM,OAAO;AACX,UAAM,SAAS,OAAO,WAAW;AAEjC,UAAM,eAAe,IAAI,MAAM;AAC/B,UAAM,aAAa,IAAI;AACvB,UAAM,oBAAoB,IAAI;AAE9B,UAAM,eAAe,SAAS,MAAM,MAAM,YAAY,OAAO;AAC7D,UAAM,OAAO,SAAS,MAAM;AAC1B,UAAI,SAAS;AACb,UAAI,MAAM,WAAW;AACnB,iBAAS,MAAM,cAAc,QAC3B,mBACA,aAAa,QAAQ,GAAG,MAAM,eAAe,GAAG,aAAa;AAAA,iBAEtD,MAAM,UAAU;AACzB,iBAAS,MAAM,MAAM,KAAK,KAAK,aAAa,SAAS;AAAA;AAEvD,aAAO;AAAA;AAET,UAAM,eAAe,SACnB,MAAM,MAAM,aAAa,MAAM,KAAK,MAAM,MAAM,cAAc;AAEhE,UAAM,WAAW,SAAS,MACxB,QAAQ,MAAM,UACV;AAAA,OACG,MAAM,eAAe,MAAM,OAAO;AAAA,OAClC,MAAM,gBAAgB,EAAE,OAAO,MAAM,OAAO,IAAI,UAAU;AAAA,OAC1D,MAAM,MAAM,MAAM,OAAO;AAAA,QAE5B,MAAM;AAEZ,UAAM,cAAc,SAAS,MAC3B,gBAAgB,aAAa,OAAO,SAAS;AAE/C,UAAM,eAAe,SAAS,MAAM;AAClC,UAAI,QAAQ;AACZ,UAAI,aAAa,OAAO;AACtB,gBAAQ,GAAG,aAAa;AAAA,iBACf,MAAM,WAAW;AAC1B,gBAAQ;AAAA;AAEV,aAAO;AAAA,QACL,OAAO,YAAY;AAAA,QACnB;AAAA;AAAA;AAGJ,UAAM,eAAe,SAAS,MAC5B,QAAQ,MAAM,SACV;AAAA,OACG,MAAM,eAAe,MAAM,MAAM;AAAA,OACjC,MAAM,gBAAgB;AAAA,QACrB,OAAO,MAAM,MAAM;AAAA,QACnB,UAAU;AAAA;AAAA,OAEX,MAAM,MAAM,MAAM,MAAM;AAAA,QAE3B,MAAM;AAEZ,UAAM,uBAAuB,SAAS,MACpC,gBAAgB,MAAM,YAAY,aAAa;AAEjD,UAAM,gBAAgB,SAAS,MAC7B,aAAa,QAAQ,MAAM,mBAAmB,MAAM;AAEtD,UAAM,kBAAkB,SAAS,MAC/B,gBAAgB,aAAa,OAAO,aAAa;AAEnD,UAAM,iBAAiB,SAAS,MAAM;AACpC,YAAM,SAAS,MAAM,MAAM;AAC3B,YAAM,YAAY,aAAa;AAC/B,aAAO,KAAK,gBAAgB,OAAO,GAAG;AACtC,aAAO,KAAK,cAAc,OAAO,WAAW,MAAM;AAClD,aAAO;AAAA;AAGT,6BAAyB,MAAc;AACrC,YAAM,mBACJ,aAAa,SACb,aAAa,QAAQ,KACrB,OAAO,IAAI,MAAM,cACjB,OAAO,MAAM;AACf,YAAM,oBACJ,MAAM,aACN,kBAAkB,SAClB,OAAO,OAAO,aAAa,SAC3B,OAAO,aAAa;AACtB,aAAO,oBAAoB;AAAA;AAG7B,0BAAsB,MAAc;AAClC,YAAM,YAAY,aAAa,QAC3B,MAAM,oBACN,MAAM;AACV,aAAO;AAAA,QACL,OAAO,QAAQ,aAAa,QAAQ,YAAY,QAAQ;AAAA;AAAA;AAI5D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
|