amis 1.5.6-beta.5 → 1.5.6
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/lib/components/Card.js +1 -1
- package/lib/components/Card.js.map +2 -2
- package/lib/components/Collapse.js +1 -1
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/Rating.d.ts +203 -73
- package/lib/components/Rating.js +147 -31
- package/lib/components/Rating.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/icons/star.js +12 -0
- package/lib/index.js +1 -1
- package/lib/renderers/Form/InputRating.d.ts +37 -0
- package/lib/renderers/Form/InputRating.js +6 -2
- package/lib/renderers/Form/InputRating.js.map +2 -2
- package/lib/renderers/Json.js +7 -0
- package/lib/renderers/Json.js.map +2 -2
- package/lib/themes/ang-ie11.css +44 -10
- package/lib/themes/ang.css +44 -10
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +44 -10
- package/lib/themes/antd.css +44 -10
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +45 -10
- package/lib/themes/cxd.css +45 -10
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +44 -10
- package/lib/themes/dark.css +44 -10
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +45 -10
- package/lib/themes/default.css.map +1 -1
- package/package.json +2 -2
- package/schema.json +59 -7
- package/scss/_properties.scss +3 -1
- package/scss/components/form/_rating.scss +60 -21
- package/scss/themes/_cxd-variables.scss +2 -0
- package/sdk/ang-ie11.css +47 -8
- package/sdk/ang.css +51 -10
- package/sdk/antd-ie11.css +47 -8
- package/sdk/antd.css +51 -10
- package/sdk/charts.js +13 -13
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +47 -8
- package/sdk/cxd.css +52 -10
- package/sdk/dark-ie11.css +47 -8
- package/sdk/dark.css +51 -10
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +47 -8
- package/sdk/sdk.css +52 -10
- package/sdk/sdk.js +1213 -1211
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/components/Card.tsx +2 -2
- package/src/components/Collapse.tsx +1 -1
- package/src/components/Rating.tsx +235 -47
- package/src/components/icons.tsx +2 -0
- package/src/icons/star.svg +12 -0
- package/src/renderers/Form/InputRating.tsx +66 -3
- package/src/renderers/Json.tsx +5 -0
package/lib/components/Rating.js
CHANGED
@@ -8,12 +8,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.Rating = void 0;
|
9
9
|
var tslib_1 = require("tslib");
|
10
10
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
11
|
-
var classnames_1 = (0, tslib_1.__importDefault)(require("classnames"));
|
12
11
|
var theme_1 = require("../theme");
|
12
|
+
var helper_1 = require("../utils/helper");
|
13
|
+
var icons_1 = require("./icons");
|
13
14
|
var Rating = /** @class */ (function (_super) {
|
14
15
|
(0, tslib_1.__extends)(Rating, _super);
|
15
16
|
function Rating(props) {
|
16
17
|
var _this = _super.call(this, props) || this;
|
18
|
+
_this.starsNode = {};
|
17
19
|
_this.state = {
|
18
20
|
value: props.value || 0,
|
19
21
|
stars: [],
|
@@ -21,7 +23,10 @@ var Rating = /** @class */ (function (_super) {
|
|
21
23
|
halfStar: {
|
22
24
|
at: Math.floor(props.value),
|
23
25
|
hidden: props.half && props.value % 1 < 0.5
|
24
|
-
}
|
26
|
+
},
|
27
|
+
showColor: '',
|
28
|
+
showText: null,
|
29
|
+
hoverValue: null
|
25
30
|
};
|
26
31
|
_this.getRate = _this.getRate.bind(_this);
|
27
32
|
_this.getStars = _this.getStars.bind(_this);
|
@@ -29,6 +34,8 @@ var Rating = /** @class */ (function (_super) {
|
|
29
34
|
_this.mouseOver = _this.mouseOver.bind(_this);
|
30
35
|
_this.mouseLeave = _this.mouseLeave.bind(_this);
|
31
36
|
_this.handleClick = _this.handleClick.bind(_this);
|
37
|
+
_this.saveRef = _this.saveRef.bind(_this);
|
38
|
+
_this.handleStarMouseLeave = _this.handleStarMouseLeave.bind(_this);
|
32
39
|
return _this;
|
33
40
|
}
|
34
41
|
Rating.prototype.componentDidMount = function () {
|
@@ -36,6 +43,7 @@ var Rating = /** @class */ (function (_super) {
|
|
36
43
|
this.setState({
|
37
44
|
stars: this.getStars(value)
|
38
45
|
});
|
46
|
+
this.getShowColorAndText(value);
|
39
47
|
};
|
40
48
|
Rating.prototype.componentDidUpdate = function (prevProps) {
|
41
49
|
var props = this.props;
|
@@ -50,6 +58,47 @@ var Rating = /** @class */ (function (_super) {
|
|
50
58
|
});
|
51
59
|
}
|
52
60
|
};
|
61
|
+
Rating.prototype.sortKeys = function (map) {
|
62
|
+
return Object.keys(map).sort(function (a, b) { return Number(a) - Number(b); });
|
63
|
+
};
|
64
|
+
Rating.prototype.getShowColorAndText = function (value) {
|
65
|
+
var _a = this.props, colors = _a.colors, texts = _a.texts, half = _a.half;
|
66
|
+
if (!value)
|
67
|
+
return this.setState({
|
68
|
+
showText: null
|
69
|
+
});
|
70
|
+
// 对 value 取整
|
71
|
+
if (half) {
|
72
|
+
value = Math.floor(Number(value) * 2) / 2;
|
73
|
+
}
|
74
|
+
else {
|
75
|
+
value = Math.floor(value);
|
76
|
+
}
|
77
|
+
if (colors && typeof colors !== 'string') {
|
78
|
+
var keys = this.sortKeys(colors);
|
79
|
+
var showKey = keys.filter(function (item) { return Number(item) < value; }).length;
|
80
|
+
var showColor = keys[showKey] !== undefined && colors[keys[showKey]];
|
81
|
+
showColor &&
|
82
|
+
this.setState({
|
83
|
+
showColor: showColor
|
84
|
+
});
|
85
|
+
}
|
86
|
+
else if (colors && typeof colors === 'string') {
|
87
|
+
this.setState({
|
88
|
+
showColor: colors
|
89
|
+
});
|
90
|
+
}
|
91
|
+
if (texts && (0, helper_1.isObject)(texts)) {
|
92
|
+
var keys = this.sortKeys(texts);
|
93
|
+
var showKey = keys.filter(function (item) { return Number(item) < value; }).length;
|
94
|
+
var showText = keys[showKey] !== undefined &&
|
95
|
+
texts[keys[showKey]];
|
96
|
+
showText &&
|
97
|
+
this.setState({
|
98
|
+
showText: showText
|
99
|
+
});
|
100
|
+
}
|
101
|
+
};
|
53
102
|
Rating.prototype.getRate = function () {
|
54
103
|
var stars;
|
55
104
|
var value = this.state.value;
|
@@ -75,16 +124,24 @@ var Rating = /** @class */ (function (_super) {
|
|
75
124
|
}
|
76
125
|
return stars;
|
77
126
|
};
|
78
|
-
Rating.prototype.
|
127
|
+
Rating.prototype.saveRef = function (index) {
|
128
|
+
var _this = this;
|
129
|
+
return function (node) {
|
130
|
+
_this.starsNode[String(index)] = node;
|
131
|
+
};
|
132
|
+
};
|
133
|
+
Rating.prototype.mouseOver = function (event, index) {
|
79
134
|
var isClear = this.state.isClear;
|
80
135
|
if (isClear)
|
81
136
|
return;
|
82
|
-
var _a = this.props, readOnly = _a.readOnly,
|
137
|
+
var _a = this.props, readOnly = _a.readOnly, half = _a.half;
|
83
138
|
if (readOnly)
|
84
139
|
return;
|
85
|
-
var index = Number(event.target.getAttribute('data-index'));
|
86
140
|
if (half) {
|
87
|
-
var isAtHalf = this.moreThanHalf(event,
|
141
|
+
var isAtHalf = this.moreThanHalf(event, index);
|
142
|
+
var tmpValue = isAtHalf ? index + 1 : index + 0.5;
|
143
|
+
this.getShowColorAndText(tmpValue);
|
144
|
+
this.onHoverChange(tmpValue);
|
88
145
|
if (isAtHalf)
|
89
146
|
index = index + 1;
|
90
147
|
this.setState({
|
@@ -96,16 +153,27 @@ var Rating = /** @class */ (function (_super) {
|
|
96
153
|
}
|
97
154
|
else {
|
98
155
|
index = index + 1;
|
156
|
+
this.onHoverChange(index);
|
157
|
+
this.getShowColorAndText(index);
|
99
158
|
}
|
100
159
|
this.setState({
|
101
160
|
stars: this.getStars(index)
|
102
161
|
});
|
103
162
|
};
|
104
|
-
Rating.prototype.
|
105
|
-
var
|
106
|
-
var
|
107
|
-
|
108
|
-
|
163
|
+
Rating.prototype.onHoverChange = function (value) {
|
164
|
+
var onHoverChange = this.props.onHoverChange;
|
165
|
+
var hoverValue = this.state.hoverValue;
|
166
|
+
if (!hoverValue || (hoverValue && hoverValue !== value)) {
|
167
|
+
this.setState({
|
168
|
+
hoverValue: value
|
169
|
+
});
|
170
|
+
onHoverChange && onHoverChange(value);
|
171
|
+
}
|
172
|
+
};
|
173
|
+
Rating.prototype.moreThanHalf = function (event, index) {
|
174
|
+
var star = this.starsNode[index];
|
175
|
+
var leftPos = star.getBoundingClientRect().left;
|
176
|
+
return event.clientX - leftPos > star.clientWidth / 2;
|
109
177
|
};
|
110
178
|
Rating.prototype.mouseLeave = function () {
|
111
179
|
var _a = this.state, value = _a.value, isClear = _a.isClear;
|
@@ -113,7 +181,10 @@ var Rating = /** @class */ (function (_super) {
|
|
113
181
|
if (readOnly)
|
114
182
|
return;
|
115
183
|
if (isClear)
|
116
|
-
return this.setState({
|
184
|
+
return this.setState({
|
185
|
+
isClear: false,
|
186
|
+
hoverValue: null
|
187
|
+
});
|
117
188
|
if (half) {
|
118
189
|
this.setState({
|
119
190
|
halfStar: {
|
@@ -123,17 +194,36 @@ var Rating = /** @class */ (function (_super) {
|
|
123
194
|
});
|
124
195
|
}
|
125
196
|
this.setState({
|
126
|
-
stars: this.getStars()
|
197
|
+
stars: this.getStars(),
|
198
|
+
hoverValue: null
|
127
199
|
});
|
200
|
+
this.getShowColorAndText(value);
|
128
201
|
};
|
129
|
-
Rating.prototype.
|
130
|
-
var
|
202
|
+
Rating.prototype.handleStarMouseLeave = function (event, index) {
|
203
|
+
var star = this.starsNode[index];
|
204
|
+
var leftSideX = star.getBoundingClientRect().left;
|
205
|
+
var isClear = this.state.isClear;
|
206
|
+
if (isClear)
|
207
|
+
return this.setState({ isClear: false });
|
208
|
+
// leave star from left side
|
209
|
+
if (event.clientX <= leftSideX) {
|
210
|
+
this.getShowColorAndText(index);
|
211
|
+
this.setState({
|
212
|
+
stars: this.getStars(index),
|
213
|
+
halfStar: {
|
214
|
+
at: index,
|
215
|
+
hidden: true
|
216
|
+
}
|
217
|
+
});
|
218
|
+
}
|
219
|
+
};
|
220
|
+
Rating.prototype.handleClick = function (event, index) {
|
221
|
+
var _a = this.props, half = _a.half, readOnly = _a.readOnly, onChange = _a.onChange, allowClear = _a.allowClear;
|
131
222
|
if (readOnly)
|
132
223
|
return;
|
133
|
-
var index = Number(event.target.getAttribute('data-index'));
|
134
224
|
var value;
|
135
225
|
if (half) {
|
136
|
-
var isAtHalf = this.moreThanHalf(event,
|
226
|
+
var isAtHalf = this.moreThanHalf(event, index);
|
137
227
|
if (isAtHalf)
|
138
228
|
index = index + 1;
|
139
229
|
value = isAtHalf ? index : index + 0.5;
|
@@ -155,24 +245,45 @@ var Rating = /** @class */ (function (_super) {
|
|
155
245
|
stars: this.getStars(index),
|
156
246
|
isClear: isClear
|
157
247
|
});
|
248
|
+
this.getShowColorAndText(value);
|
158
249
|
onChange && onChange(value);
|
159
250
|
};
|
160
251
|
Rating.prototype.renderStars = function () {
|
161
252
|
var _this = this;
|
162
|
-
var _a = this.state, halfStar = _a.halfStar, stars = _a.stars;
|
163
|
-
var _b = this.props, char = _b.char, half = _b.half, disabled = _b.disabled, readOnly = _b.readOnly, cx = _b.classnames;
|
164
|
-
return stars.map(function (star, i) {
|
165
|
-
var
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
253
|
+
var _a = this.state, halfStar = _a.halfStar, stars = _a.stars, showColor = _a.showColor;
|
254
|
+
var _b = this.props, inactiveColor = _b.inactiveColor, char = _b.char, half = _b.half, disabled = _b.disabled, readOnly = _b.readOnly, charClassName = _b.charClassName, cx = _b.classnames;
|
255
|
+
return (react_1.default.createElement("ul", { onMouseLeave: this.mouseLeave }, stars.map(function (star, i) {
|
256
|
+
var isThisHalf = half && !halfStar.hidden && halfStar.at === i;
|
257
|
+
return (react_1.default.createElement("li", { ref: _this.saveRef(i), className: cx('Rating-star', charClassName, {
|
258
|
+
'is-half': isThisHalf,
|
259
|
+
'is-active': star.active,
|
260
|
+
'is-disabled': readOnly || disabled
|
261
|
+
}), key: i, style: {
|
262
|
+
color: star.active ? showColor : inactiveColor
|
263
|
+
}, onMouseOver: function (e) { return _this.mouseOver(e, i); }, onMouseMove: function (e) { return _this.mouseOver(e, i); }, onClick: function (e) { return _this.handleClick(e, i); }, onMouseLeave: function (e) { return _this.handleStarMouseLeave(e, i); } },
|
264
|
+
isThisHalf && (react_1.default.createElement("div", { className: cx('Rating-star-half'), style: {
|
265
|
+
color: showColor
|
266
|
+
} }, char)),
|
267
|
+
char));
|
268
|
+
})));
|
269
|
+
};
|
270
|
+
Rating.prototype.renderText = function () {
|
271
|
+
var _a;
|
272
|
+
var showText = this.state.showText;
|
273
|
+
var _b = this.props, textClassName = _b.textClassName, textPosition = _b.textPosition, cx = _b.classnames;
|
274
|
+
if (!showText)
|
275
|
+
return null;
|
276
|
+
return (react_1.default.createElement("span", { className: cx('Rating-text', textClassName, (_a = {},
|
277
|
+
_a["Rating-text--" + (textPosition === 'left' ? 'left' : 'right')] = textPosition,
|
278
|
+
_a)) }, showText));
|
172
279
|
};
|
173
280
|
Rating.prototype.render = function () {
|
174
|
-
var
|
175
|
-
return (react_1.default.createElement("div", { className: (
|
281
|
+
var _a = this.props, className = _a.className, textPosition = _a.textPosition, cx = _a.classnames;
|
282
|
+
return (react_1.default.createElement("div", { className: cx('Rating', className) }, textPosition === 'left' ? (react_1.default.createElement(react_1.default.Fragment, null,
|
283
|
+
this.renderText(),
|
284
|
+
this.renderStars())) : (react_1.default.createElement(react_1.default.Fragment, null,
|
285
|
+
this.renderStars(),
|
286
|
+
this.renderText()))));
|
176
287
|
};
|
177
288
|
Rating.defaultProps = {
|
178
289
|
containerClass: 'rating',
|
@@ -181,8 +292,13 @@ var Rating = /** @class */ (function (_super) {
|
|
181
292
|
allowClear: true,
|
182
293
|
value: 0,
|
183
294
|
count: 5,
|
184
|
-
char:
|
185
|
-
|
295
|
+
char: react_1.default.createElement(icons_1.Icon, { icon: "star", className: "icon" }),
|
296
|
+
colors: {
|
297
|
+
'2': '#abadb1',
|
298
|
+
'3': '#787b81',
|
299
|
+
'5': '#ffa900'
|
300
|
+
},
|
301
|
+
textPosition: 'right'
|
186
302
|
};
|
187
303
|
return Rating;
|
188
304
|
}(react_1.default.Component));
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/Rating.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;;AAEH,6DAA0B;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Rating\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport cx from 'classnames';\nimport {ClassNamesFn, themeable} from '../theme';\n\ninterface RatingProps {\n id?: string;\n key?: string | number;\n style?: React.CSSProperties;\n count: number;\n half: boolean;\n char: string;\n size: number;\n className?: string;\n onChange?: (value: any) => void;\n value: number;\n containerClass: string;\n readOnly: boolean;\n classPrefix: string;\n disabled?: boolean;\n allowClear?: boolean;\n classnames: ClassNamesFn;\n}\n\nexport class Rating extends React.Component<RatingProps, any> {\n static defaultProps = {\n containerClass: 'rating',\n readOnly: false,\n half: true,\n allowClear: true,\n value: 0,\n count: 5,\n char: '★',\n size: 24\n };\n\n constructor(props: RatingProps) {\n super(props);\n\n this.state = {\n value: props.value || 0,\n stars: [],\n isClear: false,\n halfStar: {\n at: Math.floor(props.value),\n hidden: props.half && props.value % 1 < 0.5\n }\n };\n\n this.getRate = this.getRate.bind(this);\n this.getStars = this.getStars.bind(this);\n this.moreThanHalf = this.moreThanHalf.bind(this);\n this.mouseOver = this.mouseOver.bind(this);\n this.mouseLeave = this.mouseLeave.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {\n const {value} = this.state;\n this.setState({\n stars: this.getStars(value)\n });\n }\n\n componentDidUpdate(prevProps: RatingProps) {\n const props = this.props;\n\n if (props.value !== prevProps.value) {\n this.setState({\n stars: this.getStars(props.value),\n value: props.value,\n halfStar: {\n at: Math.floor(props.value),\n hidden: props.half && props.value % 1 < 0.5\n }\n });\n }\n }\n\n getRate() {\n let stars;\n const {value} = this.state;\n const {half} = this.props;\n if (half) {\n stars = Math.floor(value);\n } else {\n stars = Math.round(value);\n }\n return stars;\n }\n\n getStars(activeCount?: number) {\n if (typeof activeCount === 'undefined') {\n activeCount = this.getRate();\n }\n let stars = [];\n const {count} = this.props;\n for (let i = 0; i < count; i++) {\n stars.push({\n active: i <= activeCount - 1\n });\n }\n return stars;\n }\n\n mouseOver(event: React.ChangeEvent<any>) {\n const {isClear} = this.state;\n if (isClear) return;\n let {readOnly, size, half} = this.props;\n if (readOnly) return;\n let index = Number(event.target.getAttribute('data-index'));\n if (half) {\n const isAtHalf = this.moreThanHalf(event, size);\n if (isAtHalf) index = index + 1;\n this.setState({\n halfStar: {\n at: index,\n hidden: isAtHalf\n }\n });\n } else {\n index = index + 1;\n }\n this.setState({\n stars: this.getStars(index)\n });\n }\n\n moreThanHalf(event: any, size: number) {\n let {target} = event;\n let mouseAt = event.clientX - target.getBoundingClientRect().left;\n mouseAt = Math.round(Math.abs(mouseAt));\n return mouseAt > size / 2;\n }\n\n mouseLeave() {\n const {value, isClear} = this.state;\n const {half, readOnly} = this.props;\n if (readOnly) return;\n if (isClear) return this.setState({isClear: false});\n if (half) {\n this.setState({\n halfStar: {\n at: Math.floor(value),\n hidden: value % 1 === 0 // check value is decimal or not\n }\n });\n }\n this.setState({\n stars: this.getStars()\n });\n }\n\n handleClick(event: React.ChangeEvent<any>) {\n const {half, readOnly, onChange, size, allowClear} = this.props;\n if (readOnly) return;\n let index = Number(event.target.getAttribute('data-index'));\n\n let value;\n if (half) {\n const isAtHalf = this.moreThanHalf(event, size);\n if (isAtHalf) index = index + 1;\n value = isAtHalf ? index : index + 0.5;\n this.setState({\n halfStar: {\n at: index,\n hidden: isAtHalf\n }\n });\n } else {\n value = index = index + 1;\n }\n\n const isClear = allowClear && value === this.state.value;\n if (isClear) value = index = 0;\n this.setState({\n value,\n stars: this.getStars(index),\n isClear\n });\n onChange && onChange(value);\n }\n\n renderStars() {\n const {halfStar, stars} = this.state;\n const {char, half, disabled, readOnly, classnames: cx} = this.props;\n return stars.map((star: any, i: number) => {\n let className = cx('Rating', {\n 'Rating-half': half && !halfStar.hidden && halfStar.at === i,\n 'is-active': star.active,\n 'is-disabled': readOnly || disabled\n });\n\n return (\n <span\n className={className}\n key={i}\n data-index={i}\n data-forhalf={char}\n onMouseOver={this.mouseOver}\n onMouseMove={this.mouseOver}\n onMouseLeave={this.mouseLeave}\n onClick={this.handleClick}\n >\n {char}\n </span>\n );\n });\n }\n\n render() {\n let {className} = this.props;\n\n return (\n <div className={cx(className ? className : '')}>{this.renderStars()}</div>\n );\n }\n}\n\nexport default themeable(Rating);\n"
|
11
|
+
"/**\n * @file Rating\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport cx from 'classnames';\nimport {ClassNamesFn, themeable} from '../theme';\n\nimport {isObject} from '../utils/helper';\nimport {Icon} from './icons';\n\nexport type textPositionType = 'left' | 'right';\n\ninterface RatingProps {\n id?: string;\n key?: string | number;\n style?: React.CSSProperties;\n count: number;\n half: boolean;\n char: string | React.ReactNode;\n className?: string;\n charClassName?: string;\n textClassName?: string;\n onChange?: (value: number) => void;\n onHoverChange?: (value: number) => void;\n value: number;\n containerClass?: string;\n readOnly: boolean;\n classPrefix: string;\n disabled?: boolean;\n allowClear?: boolean;\n inactiveColor?: string;\n colors?: string | {[propName: string]: string};\n texts?: {[propName: string]: string};\n textPosition?: textPositionType;\n classnames: ClassNamesFn;\n}\n\nexport class Rating extends React.Component<RatingProps, any> {\n static defaultProps = {\n containerClass: 'rating',\n readOnly: false,\n half: true,\n allowClear: true,\n value: 0,\n count: 5,\n char: <Icon icon=\"star\" className=\"icon\" />,\n colors: {\n '2': '#abadb1',\n '3': '#787b81',\n '5': '#ffa900'\n },\n textPosition: 'right' as textPositionType\n };\n\n starsNode: Record<string, any>;\n\n constructor(props: RatingProps) {\n super(props);\n\n this.starsNode = {};\n\n this.state = {\n value: props.value || 0,\n stars: [],\n isClear: false,\n halfStar: {\n at: Math.floor(props.value),\n hidden: props.half && props.value % 1 < 0.5\n },\n showColor: '',\n showText: null,\n hoverValue: null\n };\n\n this.getRate = this.getRate.bind(this);\n this.getStars = this.getStars.bind(this);\n this.moreThanHalf = this.moreThanHalf.bind(this);\n this.mouseOver = this.mouseOver.bind(this);\n this.mouseLeave = this.mouseLeave.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.saveRef = this.saveRef.bind(this);\n this.handleStarMouseLeave = this.handleStarMouseLeave.bind(this);\n }\n\n componentDidMount() {\n const {value} = this.state;\n this.setState({\n stars: this.getStars(value)\n });\n\n this.getShowColorAndText(value);\n }\n\n componentDidUpdate(prevProps: RatingProps) {\n const props = this.props;\n\n if (props.value !== prevProps.value) {\n this.setState({\n stars: this.getStars(props.value),\n value: props.value,\n halfStar: {\n at: Math.floor(props.value),\n hidden: props.half && props.value % 1 < 0.5\n }\n });\n }\n }\n\n sortKeys(map: {[propName: number]: string}) {\n return Object.keys(map).sort(\n (a: number | string, b: number | string) => Number(a) - Number(b)\n );\n }\n\n getShowColorAndText(value: number) {\n const {colors, texts, half} = this.props;\n\n if (!value)\n return this.setState({\n showText: null\n });\n\n // 对 value 取整\n if (half) {\n value = Math.floor(Number(value) * 2) / 2;\n } else {\n value = Math.floor(value);\n }\n\n if (colors && typeof colors !== 'string') {\n const keys: string[] = this.sortKeys(colors);\n const showKey = keys.filter(item => Number(item) < value).length;\n\n const showColor = keys[showKey] !== undefined && colors[keys[showKey]];\n showColor &&\n this.setState({\n showColor\n });\n } else if (colors && typeof colors === 'string') {\n this.setState({\n showColor: colors\n });\n }\n\n if (texts && isObject(texts)) {\n const keys: string[] = this.sortKeys(texts);\n const showKey = keys.filter(item => Number(item) < value).length;\n const showText =\n keys[showKey] !== undefined &&\n texts[keys[showKey] as keyof typeof texts];\n showText &&\n this.setState({\n showText\n });\n }\n }\n\n getRate() {\n let stars;\n const {value} = this.state;\n const {half} = this.props;\n if (half) {\n stars = Math.floor(value);\n } else {\n stars = Math.round(value);\n }\n return stars;\n }\n\n getStars(activeCount?: number) {\n if (typeof activeCount === 'undefined') {\n activeCount = this.getRate();\n }\n let stars = [];\n const {count} = this.props;\n for (let i = 0; i < count; i++) {\n stars.push({\n active: i <= activeCount - 1\n });\n }\n return stars;\n }\n\n saveRef(index: number) {\n return (node: React.ReactNode) => {\n this.starsNode[String(index)] = node;\n };\n }\n\n mouseOver(event: React.ChangeEvent<any>, index: number) {\n const {isClear} = this.state;\n if (isClear) return;\n\n const {readOnly, half} = this.props;\n\n if (readOnly) return;\n\n if (half) {\n const isAtHalf = this.moreThanHalf(event, index);\n\n const tmpValue = isAtHalf ? index + 1 : index + 0.5;\n\n this.getShowColorAndText(tmpValue);\n this.onHoverChange(tmpValue);\n\n if (isAtHalf) index = index + 1;\n this.setState({\n halfStar: {\n at: index,\n hidden: isAtHalf\n }\n });\n } else {\n index = index + 1;\n this.onHoverChange(index);\n this.getShowColorAndText(index);\n }\n this.setState({\n stars: this.getStars(index)\n });\n }\n\n onHoverChange(value: number) {\n const {onHoverChange} = this.props;\n const {hoverValue} = this.state;\n\n if (!hoverValue || (hoverValue && hoverValue !== value)) {\n this.setState({\n hoverValue: value\n });\n onHoverChange && onHoverChange(value);\n }\n }\n\n moreThanHalf(event: any, index: number) {\n const star = this.starsNode[index];\n const leftPos = star.getBoundingClientRect().left;\n\n return event.clientX - leftPos > star.clientWidth / 2;\n }\n\n mouseLeave() {\n const {value, isClear} = this.state;\n const {half, readOnly} = this.props;\n if (readOnly) return;\n if (isClear)\n return this.setState({\n isClear: false,\n hoverValue: null\n });\n\n if (half) {\n this.setState({\n halfStar: {\n at: Math.floor(value),\n hidden: value % 1 === 0 // check value is decimal or not\n }\n });\n }\n this.setState({\n stars: this.getStars(),\n hoverValue: null\n });\n this.getShowColorAndText(value);\n }\n\n handleStarMouseLeave(event: any, index: number) {\n const star = this.starsNode[index];\n const leftSideX = star.getBoundingClientRect().left;\n const {isClear} = this.state;\n\n if (isClear) return this.setState({isClear: false});\n\n // leave star from left side\n if (event.clientX <= leftSideX) {\n this.getShowColorAndText(index);\n this.setState({\n stars: this.getStars(index),\n halfStar: {\n at: index,\n hidden: true\n }\n });\n }\n }\n\n handleClick(event: React.ChangeEvent<any>, index: number) {\n const {half, readOnly, onChange, allowClear} = this.props;\n if (readOnly) return;\n\n let value;\n if (half) {\n const isAtHalf = this.moreThanHalf(event, index);\n if (isAtHalf) index = index + 1;\n value = isAtHalf ? index : index + 0.5;\n this.setState({\n halfStar: {\n at: index,\n hidden: isAtHalf\n }\n });\n } else {\n value = index = index + 1;\n }\n\n const isClear = allowClear && value === this.state.value;\n if (isClear) value = index = 0;\n this.setState({\n value,\n stars: this.getStars(index),\n isClear\n });\n\n this.getShowColorAndText(value);\n\n onChange && onChange(value);\n }\n\n renderStars() {\n const {halfStar, stars, showColor} = this.state;\n const {\n inactiveColor,\n char,\n half,\n disabled,\n readOnly,\n charClassName,\n classnames: cx\n } = this.props;\n\n return (\n <ul onMouseLeave={this.mouseLeave}>\n {stars.map((star: any, i: number) => {\n const isThisHalf = half && !halfStar.hidden && halfStar.at === i;\n\n return (\n <li\n ref={this.saveRef(i)}\n className={cx('Rating-star', charClassName, {\n 'is-half': isThisHalf,\n 'is-active': star.active,\n 'is-disabled': readOnly || disabled\n })}\n key={i}\n style={{\n color: star.active ? showColor : inactiveColor\n }}\n onMouseOver={e => this.mouseOver(e, i)}\n onMouseMove={e => this.mouseOver(e, i)}\n onClick={e => this.handleClick(e, i)}\n onMouseLeave={e => this.handleStarMouseLeave(e, i)}\n >\n {isThisHalf && (\n <div\n className={cx('Rating-star-half')}\n style={{\n color: showColor\n }}\n >\n {char}\n </div>\n )}\n {char}\n </li>\n );\n })}\n </ul>\n );\n }\n\n renderText() {\n const {showText} = this.state;\n const {textClassName, textPosition, classnames: cx} = this.props;\n\n if (!showText) return null;\n\n return (\n <span\n className={cx('Rating-text', textClassName, {\n [`Rating-text--${textPosition === 'left' ? 'left' : 'right'}`]:\n textPosition\n })}\n >\n {showText}\n </span>\n );\n }\n\n render() {\n const {className, textPosition, classnames: cx} = this.props;\n\n return (\n <div className={cx('Rating', className)}>\n {textPosition === 'left' ? (\n <>\n {this.renderText()}\n {this.renderStars()}\n </>\n ) : (\n <>\n {this.renderStars()}\n {this.renderText()}\n </>\n )}\n </div>\n );\n }\n}\n\nexport default themeable(Rating);\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/components/icons.js
CHANGED
@@ -86,6 +86,7 @@ var expand_alt_svg_1 = (0, tslib_1.__importDefault)(require("../icons/expand-alt
|
|
86
86
|
var compress_alt_svg_1 = (0, tslib_1.__importDefault)(require("../icons/compress-alt.js"));
|
87
87
|
var transparent_svg_1 = (0, tslib_1.__importDefault)(require("../icons/transparent.js"));
|
88
88
|
var loading_outline_svg_1 = (0, tslib_1.__importDefault)(require("../icons/loading-outline.js"));
|
89
|
+
var star_svg_1 = (0, tslib_1.__importDefault)(require("../icons/star.js"));
|
89
90
|
var alert_success_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-success.js"));
|
90
91
|
var alert_info_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-info.js"));
|
91
92
|
var alert_warning_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-warning.js"));
|
@@ -181,6 +182,7 @@ registerIcon('expand-alt', expand_alt_svg_1.default);
|
|
181
182
|
registerIcon('compress-alt', compress_alt_svg_1.default);
|
182
183
|
registerIcon('transparent', transparent_svg_1.default);
|
183
184
|
registerIcon('loading-outline', loading_outline_svg_1.default);
|
185
|
+
registerIcon('star', star_svg_1.default);
|
184
186
|
registerIcon('alert-success', alert_success_svg_1.default);
|
185
187
|
registerIcon('alert-info', alert_info_svg_1.default);
|
186
188
|
registerIcon('alert-warning', alert_warning_svg_1.default);
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/icons.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;;;GAIG;AACH,6DAA0B;AAE1B,8EAA2C;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon\n};\n"
|
11
|
+
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon\n};\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var tslib_1 = require("tslib");
|
4
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
5
|
+
var Star = function (props) { return react_1.default.createElement("svg", (0, tslib_1.__assign)({ viewBox: "0 0 12 11", className: "icon" }, props),
|
6
|
+
react_1.default.createElement("title", null, "\u661F\u661F"),
|
7
|
+
react_1.default.createElement("g", { id: "\\u9875\\u9762-1", strokeWidth: 1, fillRule: "evenodd" },
|
8
|
+
react_1.default.createElement("g", { id: "\\u753B\\u677F\\u5907\\u4EFD-8", transform: "translate(-453.000000, -354.000000)" },
|
9
|
+
react_1.default.createElement("g", { id: "\\u7F16\\u7EC4", transform: "translate(451.000000, 352.000000)" },
|
10
|
+
react_1.default.createElement("rect", { id: "\\u77E9\\u5F62", opacity: 0, x: 0.5, y: 0.5, width: 15, height: 15 }),
|
11
|
+
react_1.default.createElement("path", { d: "M5.991,5.57 L3.50612104,5.93019955 C2.95954884,6.00942879 2.58069251,6.51674109 2.65992175,7.0633133 C2.69148792,7.28107625 2.79399678,7.48234825 2.95156285,7.63593881 L4.75,9.389 L4.75,9.389 L4.32487658,11.8655653 C4.23143888,12.4098886 4.59695386,12.9268961 5.14127715,13.0203338 C5.35808617,13.0575509 5.58111746,13.0222392 5.77582605,12.9198682 L7.999,11.751 L7.999,11.751 L10.223309,12.9201739 C10.712173,13.1771377 11.3167859,12.9891455 11.5737498,12.5002815 C11.6760846,12.3055935 11.7113789,12.0825978 11.6741677,11.8658233 L11.249,9.389 L11.249,9.389 L13.0473242,7.63660227 C13.4428666,7.25116142 13.4510555,6.6180494 13.0656146,6.22250699 C12.9120633,6.06493147 12.7108304,5.96239489 12.4930948,5.93078419 L10.008,5.57 L10.008,5.57 L8.89657099,3.31725295 C8.65221378,2.82196717 8.05261467,2.61854938 7.5573289,2.86290659 C7.36008347,2.96022079 7.20042315,3.11984957 7.10306997,3.31707577 L5.991,5.57 L5.991,5.57 Z", id: "\\u56FE\\u6807-\\u586B\\u8272" }))))); };
|
12
|
+
exports.default = Star;
|
package/lib/index.js
CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerLocale = exports.setDefaultLocale = exports.getDefaultLocale = exports.classnames = exports.getClassPrefix = exports.classPrefix = exports.getTheme = exports.theme = exports.setDefaultTheme = exports.validateObject = exports.validate = exports.ScopedContext = exports.Scoped = exports.registerIcon = exports.Icon = exports.setIconVendor = exports.resolveVariableAndFilter = exports.resolveVariable = exports.relativeValueRe = exports.filterDate = exports.filterSchema = exports.resolveRenderer = exports.registerOptionsControl = exports.registerFormItem = exports.getRenderers = exports.unRegisterRenderer = exports.registerRenderer = exports.getRendererByName = exports.normalizeOptions = exports.str2rules = exports.addRule = exports.setCustomEvalExpression = exports.setCustomEvalJs = exports.evalJS = exports.evalExpression = exports.registerTplEnginer = exports.registerFilter = exports.resizeSensor = exports.utils = exports.filter = exports.buildApi = exports.wrapFetcher = exports.OptionsControl = exports.FormItemWrap = exports.FormItem = exports.RegisterStore = exports.Renderer = exports.updateEnv = exports.clearStoresCache = exports.render = void 0;
|
4
4
|
exports.animation = exports.makeTranslator = void 0;
|
5
5
|
var tslib_1 = require("tslib");
|
6
|
-
/** @license amis v1.5.6
|
6
|
+
/** @license amis v1.5.6
|
7
7
|
*
|
8
8
|
* Copyright Baidu
|
9
9
|
*
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { FormControlProps, FormBaseControl } from './Item';
|
3
|
+
import { textPositionType } from '../../components/Rating';
|
3
4
|
/**
|
4
5
|
* Rating
|
5
6
|
* 文档:https://baidu.gitee.io/amis/docs/components/form/rating
|
@@ -18,6 +19,42 @@ export interface RatingControlSchema extends FormBaseControl {
|
|
18
19
|
* 是否允许再次点击后清除
|
19
20
|
*/
|
20
21
|
allowClear?: boolean;
|
22
|
+
/**
|
23
|
+
* 是否只读
|
24
|
+
*/
|
25
|
+
readonly?: boolean;
|
26
|
+
/**
|
27
|
+
* 星星被选中的颜色
|
28
|
+
*/
|
29
|
+
colors?: string | {
|
30
|
+
[propName: string]: string;
|
31
|
+
};
|
32
|
+
/**
|
33
|
+
* 未被选中的星星的颜色
|
34
|
+
*/
|
35
|
+
inactiveColor?: string;
|
36
|
+
/**
|
37
|
+
* 星星被选中时的提示文字
|
38
|
+
*/
|
39
|
+
texts?: {
|
40
|
+
[propName: string]: string;
|
41
|
+
};
|
42
|
+
/**
|
43
|
+
* 文字的位置
|
44
|
+
*/
|
45
|
+
textPosition?: textPositionType;
|
46
|
+
/**
|
47
|
+
* 自定义字符
|
48
|
+
*/
|
49
|
+
char?: string;
|
50
|
+
/**
|
51
|
+
* 自定义字符类名
|
52
|
+
*/
|
53
|
+
charClassName?: string;
|
54
|
+
/**
|
55
|
+
* 自定义文字类名
|
56
|
+
*/
|
57
|
+
textClassName?: string;
|
21
58
|
}
|
22
59
|
export interface RatingProps extends FormControlProps {
|
23
60
|
value: number;
|
@@ -11,9 +11,13 @@ var RatingControl = /** @class */ (function (_super) {
|
|
11
11
|
return _super !== null && _super.apply(this, arguments) || this;
|
12
12
|
}
|
13
13
|
RatingControl.prototype.render = function () {
|
14
|
-
var _a = this.props, className = _a.className, value = _a.value, count = _a.count, half = _a.half, readOnly = _a.readOnly, disabled = _a.disabled, onChange = _a.onChange,
|
14
|
+
var _a = this.props, className = _a.className, value = _a.value, count = _a.count, half = _a.half, readOnly = _a.readOnly, disabled = _a.disabled, onChange = _a.onChange, onHoverChange = _a.onHoverChange, allowClear = _a.allowClear, char = _a.char, inactiveColor = _a.inactiveColor, colors = _a.colors, texts = _a.texts, charClassName = _a.charClassName, textClassName = _a.textClassName, textPosition = _a.textPosition, cx = _a.classnames;
|
15
15
|
return (react_1.default.createElement("div", { className: cx('RatingControl', className) },
|
16
|
-
react_1.default.createElement(Rating_1.default, { classnames: cx, value: value, disabled: disabled, count: count, half: half, allowClear: allowClear, readOnly: readOnly,
|
16
|
+
react_1.default.createElement(Rating_1.default, { classnames: cx, value: value, disabled: disabled, count: count, half: half, allowClear: allowClear, readOnly: readOnly, char: char, inactiveColor: inactiveColor, colors: colors, texts: texts, charClassName: charClassName, textClassName: textClassName, textPosition: textPosition, onChange: function (value) {
|
17
|
+
onChange && onChange(value);
|
18
|
+
}, onHoverChange: function (value) {
|
19
|
+
onHoverChange && onHoverChange(value);
|
20
|
+
} })));
|
17
21
|
};
|
18
22
|
RatingControl.defaultProps = {
|
19
23
|
value: 0,
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputRating.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAmE;AACnE,
|
9
|
+
"mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAmE;AACnE,gFAAiE;AA4EjE;IAA2C,8CAAiC;IAA5E;;IAwDA,CAAC;IAhDC,8BAAM,GAAN;QACQ,IAAA,KAkBF,IAAI,CAAC,KAAK,EAjBZ,SAAS,eAAA,EACT,KAAK,WAAA,EACL,KAAK,WAAA,EACL,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,aAAa,mBAAA,EACb,UAAU,gBAAA,EACV,IAAI,UAAA,EACJ,aAAa,mBAAA,EACb,MAAM,YAAA,EACN,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,aAAa,mBAAA,EACb,YAAY,kBAAA,EACA,EAAE,gBACF,CAAC;QAEf,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;YAC5C,8BAAC,gBAAM,IACL,UAAU,EAAE,EAAE,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,UAAC,KAAa;oBACtB,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,EACD,aAAa,EAAE,UAAC,KAAa;oBAC3B,aAAa,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,GACD,CACE,CACP,CAAC;IACJ,CAAC;IAtDM,0BAAY,GAAyB;QAC1C,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC;IAkDJ,oBAAC;CAAA,AAxDD,CAA2C,eAAK,CAAC,SAAS,GAwDzD;kBAxDoB,aAAa;AA8DlC;IAA2C,sDAAa;IAAxD;;IAA0D,CAAC;IAA9C,qBAAqB;QAJjC,IAAA,eAAQ,EAAC;YACR,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,KAAK;SACnB,CAAC;OACW,qBAAqB,CAAyB;IAAD,4BAAC;CAAA,AAA3D,CAA2C,aAAa,GAAG;AAA9C,sDAAqB",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport Rating from '../../components/Rating';\n\n/**\n * Rating\n * 文档:https://baidu.gitee.io/amis/docs/components/form/rating\n */\nexport interface RatingControlSchema extends FormBaseControl {\n type: 'input-rating';\n\n /**\n * 分数\n */\n count?: number;\n\n /**\n * 允许半颗星\n */\n half?: boolean;\n\n /**\n * 是否允许再次点击后清除\n */\n allowClear?: boolean;\n}\n\nexport interface RatingProps extends FormControlProps {\n value: number;\n count: number;\n half: boolean;\n readOnly: boolean;\n}\n\nexport default class RatingControl extends React.Component<RatingProps, any> {\n static defaultProps: Partial<RatingProps> = {\n value: 0,\n count: 5,\n half: false,\n readOnly: false\n };\n\n render() {\n const {\n className,\n value,\n count,\n half,\n readOnly,\n disabled,\n onChange,\n
|
11
|
+
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport Rating, {textPositionType} from '../../components/Rating';\n\n/**\n * Rating\n * 文档:https://baidu.gitee.io/amis/docs/components/form/rating\n */\nexport interface RatingControlSchema extends FormBaseControl {\n type: 'input-rating';\n\n /**\n * 分数\n */\n count?: number;\n\n /**\n * 允许半颗星\n */\n half?: boolean;\n\n /**\n * 是否允许再次点击后清除\n */\n allowClear?: boolean;\n\n /**\n * 是否只读\n */\n readonly?: boolean;\n\n /**\n * 星星被选中的颜色\n */\n // colors?: string | {\n // [propName: string | number]: string;\n // };\n\n colors?: string | {[propName: string]: string};\n\n /**\n * 未被选中的星星的颜色\n */\n inactiveColor?: string;\n\n /**\n * 星星被选中时的提示文字\n */\n texts?: {[propName: string]: string};\n\n /**\n * 文字的位置\n */\n textPosition?: textPositionType;\n\n /**\n * 自定义字符\n */\n char?: string;\n\n /**\n * 自定义字符类名\n */\n charClassName?: string;\n\n /**\n * 自定义文字类名\n */\n textClassName?: string;\n}\n\nexport interface RatingProps extends FormControlProps {\n value: number;\n count: number;\n half: boolean;\n readOnly: boolean;\n}\n\nexport default class RatingControl extends React.Component<RatingProps, any> {\n static defaultProps: Partial<RatingProps> = {\n value: 0,\n count: 5,\n half: false,\n readOnly: false\n };\n\n render() {\n const {\n className,\n value,\n count,\n half,\n readOnly,\n disabled,\n onChange,\n onHoverChange,\n allowClear,\n char,\n inactiveColor,\n colors,\n texts,\n charClassName,\n textClassName,\n textPosition,\n classnames: cx\n } = this.props;\n\n return (\n <div className={cx('RatingControl', className)}>\n <Rating\n classnames={cx}\n value={value}\n disabled={disabled}\n count={count}\n half={half}\n allowClear={allowClear}\n readOnly={readOnly}\n char={char}\n inactiveColor={inactiveColor}\n colors={colors}\n texts={texts}\n charClassName={charClassName}\n textClassName={textClassName}\n textPosition={textPosition}\n onChange={(value: number) => {\n onChange && onChange(value);\n }}\n onHoverChange={(value: number) => {\n onHoverChange && onHoverChange(value);\n }}\n />\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-rating',\n sizeMutable: false\n})\nexport class RatingControlRenderer extends RatingControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/renderers/Json.js
CHANGED
@@ -37,6 +37,13 @@ var JSONField = /** @class */ (function (_super) {
|
|
37
37
|
if (source !== undefined && (0, tpl_builtin_1.isPureVariable)(source)) {
|
38
38
|
data = (0, tpl_builtin_1.resolveVariableAndFilter)(source, this.props.data, '| raw');
|
39
39
|
}
|
40
|
+
else if (typeof value === 'string') {
|
41
|
+
// 尝试解析 json
|
42
|
+
try {
|
43
|
+
data = JSON.parse(value);
|
44
|
+
}
|
45
|
+
catch (e) { }
|
46
|
+
}
|
40
47
|
var jsonThemeValue = jsonTheme;
|
41
48
|
if ((0, tpl_builtin_1.isPureVariable)(jsonTheme)) {
|
42
49
|
jsonThemeValue = (0, tpl_builtin_1.resolveVariableAndFilter)(jsonTheme, this.props.data, '| raw');
|