@nutui/nutui-react 0.1.0-beta.1
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/README.md +151 -0
- package/dist/esm/ActionSheet.js +110 -0
- package/dist/esm/Address.js +597 -0
- package/dist/esm/AnimatingNumbers.js +157 -0
- package/dist/esm/Avatar.js +70 -0
- package/dist/esm/BackTop.js +152 -0
- package/dist/esm/Badge.js +70 -0
- package/dist/esm/Barrage.js +101 -0
- package/dist/esm/Button.js +4 -0
- package/dist/esm/Cell.js +92 -0
- package/dist/esm/Checkbox.js +95 -0
- package/dist/esm/CheckboxGroup.js +107 -0
- package/dist/esm/CircleProgress.js +99 -0
- package/dist/esm/Collapse.js +108 -0
- package/dist/esm/Divider.js +38 -0
- package/dist/esm/Drag.js +192 -0
- package/dist/esm/Elevator.js +205 -0
- package/dist/esm/FixedNav.js +105 -0
- package/dist/esm/Icon.js +5 -0
- package/dist/esm/Infiniteloading.js +234 -0
- package/dist/esm/Input.js +186 -0
- package/dist/esm/InputNumber.js +194 -0
- package/dist/esm/Layout.js +20 -0
- package/dist/esm/NavBar.js +67 -0
- package/dist/esm/NoticeBar.js +340 -0
- package/dist/esm/Notify.js +251 -0
- package/dist/esm/Overlay.js +6 -0
- package/dist/esm/Pagination.js +199 -0
- package/dist/esm/Popup.js +195 -0
- package/dist/esm/Price.js +95 -0
- package/dist/esm/Radio.js +111 -0
- package/dist/esm/RadioGroup.js +103 -0
- package/dist/esm/Range.js +451 -0
- package/dist/esm/Rate.js +122 -0
- package/dist/esm/Signature.js +173 -0
- package/dist/esm/Step.js +73 -0
- package/dist/esm/Steps.js +44 -0
- package/dist/esm/Tabbar.js +74 -0
- package/dist/esm/TabbarItem.js +70 -0
- package/dist/esm/Tag.js +108 -0
- package/dist/esm/TextArea.js +126 -0
- package/dist/esm/Toast.js +8 -0
- package/dist/esm/Uploader.js +482 -0
- package/dist/esm/UserContext-68f62e66.js +3 -0
- package/dist/esm/bem-893ad28d.js +8 -0
- package/dist/esm/button-345fb015.js +110 -0
- package/dist/esm/context-aa058329.js +6 -0
- package/dist/esm/icon-63c0d58f.js +70 -0
- package/dist/esm/nutui-react.es.js +42 -0
- package/dist/esm/overlay-418bcf84.js +94 -0
- package/dist/esm/toast-420b65b7.js +294 -0
- package/dist/esm/types/src/packages/actionsheet/actionsheet.d.ts +20 -0
- package/dist/esm/types/src/packages/actionsheet/index.d.ts +2 -0
- package/dist/esm/types/src/packages/address/address.d.ts +56 -0
- package/dist/esm/types/src/packages/address/customRender.d.ts +18 -0
- package/dist/esm/types/src/packages/address/existRender.d.ts +18 -0
- package/dist/esm/types/src/packages/address/index.d.ts +2 -0
- package/dist/esm/types/src/packages/animatingnumbers/animatingnumbers.d.ts +12 -0
- package/dist/esm/types/src/packages/animatingnumbers/countup.d.ts +11 -0
- package/dist/esm/types/src/packages/animatingnumbers/index.d.ts +2 -0
- package/dist/esm/types/src/packages/avatar/avatar.d.ts +14 -0
- package/dist/esm/types/src/packages/avatar/index.d.ts +2 -0
- package/dist/esm/types/src/packages/backtop/backtop.d.ts +15 -0
- package/dist/esm/types/src/packages/backtop/index.d.ts +2 -0
- package/dist/esm/types/src/packages/badge/badge.d.ts +13 -0
- package/dist/esm/types/src/packages/badge/index.d.ts +2 -0
- package/dist/esm/types/src/packages/barrage/barrage.d.ts +12 -0
- package/dist/esm/types/src/packages/barrage/index.d.ts +2 -0
- package/dist/esm/types/src/packages/button/button.d.ts +20 -0
- package/dist/esm/types/src/packages/button/index.d.ts +2 -0
- package/dist/esm/types/src/packages/cell/cell.d.ts +16 -0
- package/dist/esm/types/src/packages/cell/index.d.ts +2 -0
- package/dist/esm/types/src/packages/cellgroup/cellgroup.d.ts +6 -0
- package/dist/esm/types/src/packages/cellgroup/index.d.ts +2 -0
- package/dist/esm/types/src/packages/checkbox/checkbox.d.ts +15 -0
- package/dist/esm/types/src/packages/checkbox/index.d.ts +2 -0
- package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.d.ts +7 -0
- package/dist/esm/types/src/packages/checkboxgroup/index.d.ts +2 -0
- package/dist/esm/types/src/packages/circleprogress/circleprogress.d.ts +9 -0
- package/dist/esm/types/src/packages/circleprogress/index.d.ts +2 -0
- package/dist/esm/types/src/packages/col/col.d.ts +7 -0
- package/dist/esm/types/src/packages/col/index.d.ts +2 -0
- package/dist/esm/types/src/packages/collapse/collapse.d.ts +11 -0
- package/dist/esm/types/src/packages/collapse/index.d.ts +2 -0
- package/dist/esm/types/src/packages/collapseitem/collapseitem.d.ts +18 -0
- package/dist/esm/types/src/packages/collapseitem/index.d.ts +2 -0
- package/dist/esm/types/src/packages/divider/divider.d.ts +9 -0
- package/dist/esm/types/src/packages/divider/index.d.ts +2 -0
- package/dist/esm/types/src/packages/drag/drag.d.ts +14 -0
- package/dist/esm/types/src/packages/drag/index.d.ts +2 -0
- package/dist/esm/types/src/packages/elevator/elevator.d.ts +17 -0
- package/dist/esm/types/src/packages/elevator/index.d.ts +2 -0
- package/dist/esm/types/src/packages/fixednav/fixednav.d.ts +22 -0
- package/dist/esm/types/src/packages/fixednav/index.d.ts +2 -0
- package/dist/esm/types/src/packages/icon/icon.d.ts +12 -0
- package/dist/esm/types/src/packages/icon/index.d.ts +2 -0
- package/dist/esm/types/src/packages/infiniteloading/index.d.ts +2 -0
- package/dist/esm/types/src/packages/infiniteloading/infiniteloading.d.ts +20 -0
- package/dist/esm/types/src/packages/input/index.d.ts +2 -0
- package/dist/esm/types/src/packages/input/input.d.ts +20 -0
- package/dist/esm/types/src/packages/input/util.d.ts +1 -0
- package/dist/esm/types/src/packages/inputnumber/index.d.ts +2 -0
- package/dist/esm/types/src/packages/inputnumber/inputnumber.d.ts +22 -0
- package/dist/esm/types/src/packages/layout/index.d.ts +2 -0
- package/dist/esm/types/src/packages/layout/layout.d.ts +4 -0
- package/dist/esm/types/src/packages/navbar/index.d.ts +2 -0
- package/dist/esm/types/src/packages/navbar/navbar.d.ts +15 -0
- package/dist/esm/types/src/packages/noticebar/index.d.ts +2 -0
- package/dist/esm/types/src/packages/noticebar/noticebar.d.ts +23 -0
- package/dist/esm/types/src/packages/notify/Notification.d.ts +31 -0
- package/dist/esm/types/src/packages/notify/index.d.ts +2 -0
- package/dist/esm/types/src/packages/notify/notify.d.ts +10 -0
- package/dist/esm/types/src/packages/nutui.react.build.d.ts +43 -0
- package/dist/esm/types/src/packages/nutui.react.d.ts +43 -0
- package/dist/esm/types/src/packages/overlay/index.d.ts +2 -0
- package/dist/esm/types/src/packages/overlay/overlay.d.ts +12 -0
- package/dist/esm/types/src/packages/pagination/index.d.ts +2 -0
- package/dist/esm/types/src/packages/pagination/pagination.d.ts +19 -0
- package/dist/esm/types/src/packages/popup/index.d.ts +2 -0
- package/dist/esm/types/src/packages/popup/popup.d.ts +23 -0
- package/dist/esm/types/src/packages/price/index.d.ts +2 -0
- package/dist/esm/types/src/packages/price/price.d.ts +11 -0
- package/dist/esm/types/src/packages/radio/context.d.ts +5 -0
- package/dist/esm/types/src/packages/radio/index.d.ts +2 -0
- package/dist/esm/types/src/packages/radio/radio.d.ts +21 -0
- package/dist/esm/types/src/packages/radiogroup/index.d.ts +2 -0
- package/dist/esm/types/src/packages/radiogroup/radiogroup.d.ts +11 -0
- package/dist/esm/types/src/packages/range/index.d.ts +2 -0
- package/dist/esm/types/src/packages/range/range.d.ts +23 -0
- package/dist/esm/types/src/packages/rate/index.d.ts +2 -0
- package/dist/esm/types/src/packages/rate/rate.d.ts +16 -0
- package/dist/esm/types/src/packages/row/UserContext.d.ts +1 -0
- package/dist/esm/types/src/packages/row/index.d.ts +2 -0
- package/dist/esm/types/src/packages/row/row.d.ts +9 -0
- package/dist/esm/types/src/packages/signature/index.d.ts +2 -0
- package/dist/esm/types/src/packages/signature/signature.d.ts +11 -0
- package/dist/esm/types/src/packages/step/index.d.ts +2 -0
- package/dist/esm/types/src/packages/step/step.d.ts +12 -0
- package/dist/esm/types/src/packages/steps/UserContext.d.ts +1 -0
- package/dist/esm/types/src/packages/steps/index.d.ts +2 -0
- package/dist/esm/types/src/packages/steps/steps.d.ts +9 -0
- package/dist/esm/types/src/packages/switch/index.d.ts +2 -0
- package/dist/esm/types/src/packages/switch/switch.d.ts +14 -0
- package/dist/esm/types/src/packages/tabbar/index.d.ts +2 -0
- package/dist/esm/types/src/packages/tabbar/tabbar.d.ts +13 -0
- package/dist/esm/types/src/packages/tabbaritem/index.d.ts +2 -0
- package/dist/esm/types/src/packages/tabbaritem/tabbarItem.d.ts +13 -0
- package/dist/esm/types/src/packages/tag/index.d.ts +2 -0
- package/dist/esm/types/src/packages/tag/tag.d.ts +15 -0
- package/dist/esm/types/src/packages/textarea/index.d.ts +2 -0
- package/dist/esm/types/src/packages/textarea/textarea.d.ts +18 -0
- package/dist/esm/types/src/packages/toast/Notification.d.ts +37 -0
- package/dist/esm/types/src/packages/toast/index.d.ts +2 -0
- package/dist/esm/types/src/packages/toast/toast.d.ts +11 -0
- package/dist/esm/types/src/packages/uploader/index.d.ts +2 -0
- package/dist/esm/types/src/packages/uploader/upload.d.ts +20 -0
- package/dist/esm/types/src/packages/uploader/uploader.d.ts +59 -0
- package/dist/esm/types/src/utils/bem.d.ts +2 -0
- package/dist/esm/types/src/utils/create/bem.d.ts +2 -0
- package/dist/esm/types/src/utils/create/index.d.ts +1 -0
- package/dist/esm/types/src/utils/date.d.ts +49 -0
- package/dist/esm/types/src/utils/index.d.ts +1 -0
- package/dist/esm/types/src/utils/raf.d.ts +2 -0
- package/dist/esm/types/src/utils/useRect/index.d.ts +17 -0
- package/dist/esm/types/src/utils/useTouch/index.d.ts +16 -0
- package/dist/nutui.react.es.js +6647 -0
- package/dist/nutui.react.umd.js +28 -0
- package/dist/packages/actionsheet/actionsheet.scss +68 -0
- package/dist/packages/address/address.scss +145 -0
- package/dist/packages/animatingnumbers/animatingnumbers.scss +3 -0
- package/dist/packages/animatingnumbers/countup.scss +36 -0
- package/dist/packages/avatar/avatar.scss +48 -0
- package/dist/packages/backtop/backtop.scss +20 -0
- package/dist/packages/badge/badge.scss +39 -0
- package/dist/packages/barrage/barrage.scss +48 -0
- package/dist/packages/button/button.scss +157 -0
- package/dist/packages/cell/cell.scss +79 -0
- package/dist/packages/cellgroup/cellgroup.scss +24 -0
- package/dist/packages/checkbox/checkbox.scss +20 -0
- package/dist/packages/checkboxgroup/checkboxgroup.scss +0 -0
- package/dist/packages/circleprogress/circleprogress.scss +65 -0
- package/dist/packages/col/col.scss +24 -0
- package/dist/packages/collapse/collapse.scss +1 -0
- package/dist/packages/collapseitem/collapseitem.scss +82 -0
- package/dist/packages/divider/divider.scss +54 -0
- package/dist/packages/drag/drag.scss +8 -0
- package/dist/packages/elevator/elevator.scss +71 -0
- package/dist/packages/fixednav/fixednav.scss +129 -0
- package/dist/packages/icon/icon.scss +40 -0
- package/dist/packages/infiniteloading/infiniteloading.scss +47 -0
- package/dist/packages/input/input.scss +47 -0
- package/dist/packages/inputnumber/inputnumber.scss +36 -0
- package/dist/packages/layout/layout.scss +2 -0
- package/dist/packages/navbar/navbar.scss +38 -0
- package/dist/packages/noticebar/noticebar.scss +111 -0
- package/dist/packages/notify/notify.scss +80 -0
- package/dist/packages/overlay/overlay.scss +50 -0
- package/dist/packages/pagination/pagination.scss +50 -0
- package/dist/packages/popup/popup.scss +149 -0
- package/dist/packages/price/price.scss +22 -0
- package/dist/packages/radio/radio.scss +58 -0
- package/dist/packages/radiogroup/radiogroup.scss +22 -0
- package/dist/packages/range/custom.scss +9 -0
- package/dist/packages/range/range.scss +96 -0
- package/dist/packages/rate/rate.scss +34 -0
- package/dist/packages/row/row.scss +51 -0
- package/dist/packages/signature/signature.scss +16 -0
- package/dist/packages/step/step.scss +190 -0
- package/dist/packages/steps/steps.scss +7 -0
- package/dist/packages/switch/switch.scss +60 -0
- package/dist/packages/tabbar/tabbar.scss +20 -0
- package/dist/packages/tabbaritem/tabbarItem.scss +61 -0
- package/dist/packages/tag/tag.scss +52 -0
- package/dist/packages/textarea/textarea.scss +39 -0
- package/dist/packages/toast/toast.scss +94 -0
- package/dist/packages/uploader/uploader.scss +72 -0
- package/dist/style.css +1 -0
- package/dist/style.es.js +7 -0
- package/dist/styles/animation/drop.scss +24 -0
- package/dist/styles/animation/ease.scss +23 -0
- package/dist/styles/animation/fade.scss +20 -0
- package/dist/styles/animation/index.scss +6 -0
- package/dist/styles/animation/rotate.scss +10 -0
- package/dist/styles/animation/zoom.scss +26 -0
- package/dist/styles/font/demo.css +539 -0
- package/dist/styles/font/demo_index.html +2718 -0
- package/dist/styles/font/iconfont.css +455 -0
- package/dist/styles/font/iconfont.eot +0 -0
- package/dist/styles/font/iconfont.js +63 -0
- package/dist/styles/font/iconfont.json +779 -0
- package/dist/styles/font/iconfont.svg +356 -0
- package/dist/styles/font/iconfont.ttf +0 -0
- package/dist/styles/font/iconfont.woff +0 -0
- package/dist/styles/font/iconfont.woff2 +0 -0
- package/dist/styles/mixins/index.scss +2 -0
- package/dist/styles/mixins/make-animation.scss +24 -0
- package/dist/styles/mixins/text-ellipsis.scss +20 -0
- package/dist/styles/themes/default.scss +46 -0
- package/dist/styles/variables.scss +326 -0
- package/package.json +120 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
var _excluded = ["className", "value", "onChange", "textPosition", "direction"];
|
|
5
|
+
|
|
6
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
|
+
|
|
8
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
|
+
|
|
10
|
+
import React__default, { useState, useEffect } from 'react';
|
|
11
|
+
import { R as RadioContext } from './context-aa058329.js';
|
|
12
|
+
import { c as cn } from './bem-893ad28d.js';
|
|
13
|
+
import '@bem-react/classname';
|
|
14
|
+
var defaultProps = {
|
|
15
|
+
value: null,
|
|
16
|
+
textPosition: 'right',
|
|
17
|
+
onChange: function onChange(value) {},
|
|
18
|
+
direction: 'vertical'
|
|
19
|
+
};
|
|
20
|
+
var RadioGroup = React__default.forwardRef(function (props, ref) {
|
|
21
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
22
|
+
children = _defaultProps$props.children;
|
|
23
|
+
|
|
24
|
+
cn('RadioGroup');
|
|
25
|
+
|
|
26
|
+
var className = props.className,
|
|
27
|
+
value = props.value,
|
|
28
|
+
_onChange = props.onChange,
|
|
29
|
+
textPosition = props.textPosition,
|
|
30
|
+
direction = props.direction,
|
|
31
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
32
|
+
|
|
33
|
+
var _useState = useState(value),
|
|
34
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
35
|
+
val2State = _useState2[0],
|
|
36
|
+
setVal2State = _useState2[1]; // useImperativeHandle(ref, () => ({
|
|
37
|
+
// toggleAll(state: boolean) {
|
|
38
|
+
// console.log(state)
|
|
39
|
+
// if (state === false) {
|
|
40
|
+
// setInnerValue([])
|
|
41
|
+
// } else {
|
|
42
|
+
// const childrenLabel: string[] = []
|
|
43
|
+
// React.Children.map(children, (child) => {
|
|
44
|
+
// const childProps = (child as any).props
|
|
45
|
+
// childrenLabel.push(childProps.label || (child as any).children)
|
|
46
|
+
// })
|
|
47
|
+
// setInnerValue(childrenLabel)
|
|
48
|
+
// }
|
|
49
|
+
// },
|
|
50
|
+
// }))
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
useEffect(function () {
|
|
54
|
+
setVal2State(value);
|
|
55
|
+
}, [value]); // function handleChildChange(state: boolean, label: string) {
|
|
56
|
+
// if (innerValue) {
|
|
57
|
+
// let clippedValue = []
|
|
58
|
+
// if (state) {
|
|
59
|
+
// clippedValue = [...innerValue, label]
|
|
60
|
+
// } else {
|
|
61
|
+
// innerValue?.splice(innerValue?.indexOf(label), 1)
|
|
62
|
+
// clippedValue = [...innerValue]
|
|
63
|
+
// }
|
|
64
|
+
// setInnerValue(clippedValue)
|
|
65
|
+
// onChange && onChange(clippedValue)
|
|
66
|
+
// }
|
|
67
|
+
// }
|
|
68
|
+
|
|
69
|
+
function validateChildChecked(child) {
|
|
70
|
+
if (val2State === null) return false;
|
|
71
|
+
return val2State === child.props.value;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function cloneChildren() {
|
|
75
|
+
return React__default.Children.map(children, function (child, index) {
|
|
76
|
+
var childChecked = validateChildChecked(child);
|
|
77
|
+
|
|
78
|
+
if (child.type.displayName !== 'NutRadio') {
|
|
79
|
+
return React__default.cloneElement(child);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return React__default.cloneElement(child, {
|
|
83
|
+
textPosition: textPosition,
|
|
84
|
+
checked: childChecked // onChange: handleChildChange,
|
|
85
|
+
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return React__default.createElement(RadioContext.Provider, {
|
|
91
|
+
value: {
|
|
92
|
+
onChange: function onChange(val) {
|
|
93
|
+
setVal2State(val);
|
|
94
|
+
_onChange && _onChange(val);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}, React__default.createElement("div", _objectSpread({
|
|
98
|
+
className: "nut-radiogroup nut-radiogroup--".concat(props.direction)
|
|
99
|
+
}, rest), cloneChildren()));
|
|
100
|
+
});
|
|
101
|
+
RadioGroup.defaultProps = defaultProps;
|
|
102
|
+
RadioGroup.displayName = 'NutRadioGroup';
|
|
103
|
+
export { RadioGroup as default };
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
|
|
4
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
+
|
|
6
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
+
|
|
8
|
+
import React__default, { useState, useRef, useEffect } from 'react';
|
|
9
|
+
import { c as cn } from './bem-893ad28d.js';
|
|
10
|
+
import { T as Toast } from './toast-420b65b7.js';
|
|
11
|
+
import '@bem-react/classname';
|
|
12
|
+
import 'react-dom';
|
|
13
|
+
import './icon-63c0d58f.js';
|
|
14
|
+
import 'classnames';
|
|
15
|
+
var MIN_DISTANCE = 10;
|
|
16
|
+
|
|
17
|
+
function getDirection(x, y) {
|
|
18
|
+
if (x > y && x > MIN_DISTANCE) {
|
|
19
|
+
return 'horizontal';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (y > x && y > MIN_DISTANCE) {
|
|
23
|
+
return 'vertical';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return '';
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function useTouch() {
|
|
30
|
+
var _useState = useState(0),
|
|
31
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
32
|
+
startX = _useState2[0],
|
|
33
|
+
SetStartX = _useState2[1];
|
|
34
|
+
|
|
35
|
+
var _useState3 = useState(0),
|
|
36
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
37
|
+
startY = _useState4[0],
|
|
38
|
+
SetStartY = _useState4[1];
|
|
39
|
+
|
|
40
|
+
var _useState5 = useState(0),
|
|
41
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
+
deltaX = _useState6[0],
|
|
43
|
+
SetDeltaX = _useState6[1];
|
|
44
|
+
|
|
45
|
+
var _useState7 = useState(0),
|
|
46
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
47
|
+
deltaY = _useState8[0],
|
|
48
|
+
SetDeltaY = _useState8[1];
|
|
49
|
+
|
|
50
|
+
var _useState9 = useState(0),
|
|
51
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
52
|
+
offsetX = _useState10[0],
|
|
53
|
+
SetOffsetX = _useState10[1];
|
|
54
|
+
|
|
55
|
+
var _useState11 = useState(0),
|
|
56
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
57
|
+
offsetY = _useState12[0],
|
|
58
|
+
SetOffsetY = _useState12[1];
|
|
59
|
+
|
|
60
|
+
var _useState13 = useState(''),
|
|
61
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
62
|
+
direction = _useState14[0],
|
|
63
|
+
SetDirection = _useState14[1];
|
|
64
|
+
|
|
65
|
+
var isVertical = function isVertical() {
|
|
66
|
+
return direction === 'vertical';
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var isHorizontal = function isHorizontal() {
|
|
70
|
+
return direction === 'horizontal';
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var reset = function reset() {
|
|
74
|
+
SetDeltaX(0);
|
|
75
|
+
SetDeltaY(0);
|
|
76
|
+
SetOffsetX(0);
|
|
77
|
+
SetOffsetY(0);
|
|
78
|
+
SetDirection('');
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var start = function start(event) {
|
|
82
|
+
reset();
|
|
83
|
+
SetStartX(event.touches[0].clientX);
|
|
84
|
+
SetStartY(event.touches[0].clientY);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var move = function move(event) {
|
|
88
|
+
var touch = event.touches[0];
|
|
89
|
+
var dX = touch.clientX - startX;
|
|
90
|
+
var dY = touch.clientY - startY;
|
|
91
|
+
SetDeltaX(dX);
|
|
92
|
+
SetDeltaY(dY);
|
|
93
|
+
SetOffsetX(Math.abs(dX));
|
|
94
|
+
SetOffsetY(Math.abs(dY));
|
|
95
|
+
|
|
96
|
+
if (!direction) {
|
|
97
|
+
SetDirection(getDirection(Math.abs(dX), Math.abs(dY)));
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
move: move,
|
|
103
|
+
start: start,
|
|
104
|
+
reset: reset,
|
|
105
|
+
startX: startX,
|
|
106
|
+
startY: startY,
|
|
107
|
+
deltaX: deltaX,
|
|
108
|
+
deltaY: deltaY,
|
|
109
|
+
offsetX: offsetX,
|
|
110
|
+
offsetY: offsetY,
|
|
111
|
+
direction: direction,
|
|
112
|
+
isVertical: isVertical,
|
|
113
|
+
isHorizontal: isHorizontal
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
获取元素的大小及其相对于视口的位置,等价于 Element.getBoundingClientRect。
|
|
118
|
+
width 宽度 number
|
|
119
|
+
height 高度 number
|
|
120
|
+
top 顶部与视图窗口左上角的距离 number
|
|
121
|
+
left 左侧与视图窗口左上角的距离 number
|
|
122
|
+
right 右侧与视图窗口左上角的距离 number
|
|
123
|
+
bottom 底部与视图窗口左上角的距离 number
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
function isWindow(val) {
|
|
128
|
+
return val === window;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
var useRect = function useRect(elementRef) {
|
|
132
|
+
var element = elementRef;
|
|
133
|
+
|
|
134
|
+
if (isWindow(element)) {
|
|
135
|
+
var width = element.innerWidth;
|
|
136
|
+
var height = element.innerHeight;
|
|
137
|
+
return {
|
|
138
|
+
top: 0,
|
|
139
|
+
left: 0,
|
|
140
|
+
right: width,
|
|
141
|
+
bottom: height,
|
|
142
|
+
width: width,
|
|
143
|
+
height: height
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (element && element.getBoundingClientRect) {
|
|
148
|
+
return element.getBoundingClientRect();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return {
|
|
152
|
+
top: 0,
|
|
153
|
+
left: 0,
|
|
154
|
+
right: 0,
|
|
155
|
+
bottom: 0,
|
|
156
|
+
width: 0,
|
|
157
|
+
height: 0
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var defaultProps = {
|
|
162
|
+
range: false,
|
|
163
|
+
hiddenRange: false,
|
|
164
|
+
hiddenTag: false,
|
|
165
|
+
min: 0,
|
|
166
|
+
max: 100,
|
|
167
|
+
step: 1,
|
|
168
|
+
modelValue: 0
|
|
169
|
+
};
|
|
170
|
+
var startValue;
|
|
171
|
+
var currentValue;
|
|
172
|
+
|
|
173
|
+
var Range = function Range(props) {
|
|
174
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
175
|
+
className = _defaultProps$props.className,
|
|
176
|
+
range = _defaultProps$props.range,
|
|
177
|
+
disabled = _defaultProps$props.disabled,
|
|
178
|
+
activeColor = _defaultProps$props.activeColor,
|
|
179
|
+
inactiveColor = _defaultProps$props.inactiveColor,
|
|
180
|
+
buttonColor = _defaultProps$props.buttonColor,
|
|
181
|
+
hiddenRange = _defaultProps$props.hiddenRange,
|
|
182
|
+
hiddenTag = _defaultProps$props.hiddenTag,
|
|
183
|
+
min = _defaultProps$props.min,
|
|
184
|
+
max = _defaultProps$props.max,
|
|
185
|
+
step = _defaultProps$props.step,
|
|
186
|
+
modelValue = _defaultProps$props.modelValue,
|
|
187
|
+
button = _defaultProps$props.button,
|
|
188
|
+
change = _defaultProps$props.change,
|
|
189
|
+
dragStart = _defaultProps$props.dragStart,
|
|
190
|
+
dragEnd = _defaultProps$props.dragEnd;
|
|
191
|
+
|
|
192
|
+
var _useState15 = useState(0),
|
|
193
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
194
|
+
buttonIndex = _useState16[0],
|
|
195
|
+
SetButtonIndex = _useState16[1];
|
|
196
|
+
|
|
197
|
+
var _useState17 = useState(),
|
|
198
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
199
|
+
initValue = _useState18[0],
|
|
200
|
+
SetInitValue = _useState18[1];
|
|
201
|
+
|
|
202
|
+
var _useState19 = useState('start'),
|
|
203
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
204
|
+
dragStatus = _useState20[0],
|
|
205
|
+
SetDragStatus = _useState20[1];
|
|
206
|
+
|
|
207
|
+
var touch = useTouch();
|
|
208
|
+
var root = useRef(null);
|
|
209
|
+
var rangeBem = cn('range');
|
|
210
|
+
useEffect(function () {
|
|
211
|
+
if (modelValue) {
|
|
212
|
+
if (!range && (modelValue < min || modelValue > max)) {
|
|
213
|
+
SetInitValue(0);
|
|
214
|
+
Toast.text("".concat(modelValue, "\u4E0D\u5728\u8BE5\u533A\u95F4\u5185"));
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
SetInitValue(modelValue);
|
|
219
|
+
}
|
|
220
|
+
}, [modelValue]);
|
|
221
|
+
|
|
222
|
+
var scope = function scope() {
|
|
223
|
+
return Number(max) - Number(min);
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
var wrapperStyle = function wrapperStyle() {
|
|
227
|
+
return {
|
|
228
|
+
background: inactiveColor
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
var buttonStyle = function buttonStyle() {
|
|
233
|
+
return {
|
|
234
|
+
borderColor: buttonColor
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
var isRange = function isRange(val) {
|
|
239
|
+
return !!range && Array.isArray(val);
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
var calcMainAxis = function calcMainAxis() {
|
|
243
|
+
var modelVal = initValue || initValue === 0 ? initValue : modelValue;
|
|
244
|
+
|
|
245
|
+
if (isRange(modelVal)) {
|
|
246
|
+
return "".concat((modelVal[1] - modelVal[0]) * 100 / scope(), "%");
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
return "".concat((modelVal - Number(min)) * 100 / scope(), "%");
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
var calcOffset = function calcOffset() {
|
|
253
|
+
var modelVal = initValue || initValue === 0 ? initValue : modelValue;
|
|
254
|
+
|
|
255
|
+
if (isRange(modelVal)) {
|
|
256
|
+
return "".concat((modelVal[0] - Number(min)) * 100 / scope(), "%");
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return "0%";
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
var barStyle = function barStyle() {
|
|
263
|
+
return {
|
|
264
|
+
width: calcMainAxis(),
|
|
265
|
+
left: calcOffset(),
|
|
266
|
+
background: activeColor,
|
|
267
|
+
transition: dragStatus ? 'none' : undefined
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
var format = function format(value) {
|
|
272
|
+
value = Math.max(+min, Math.min(value, +max));
|
|
273
|
+
return Math.round(value / +step) * +step;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
var isSameValue = function isSameValue(newValue, oldValue) {
|
|
277
|
+
return JSON.stringify(newValue) === JSON.stringify(oldValue);
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
var handleOverlap = function handleOverlap(value) {
|
|
281
|
+
if (value[0] > value[1]) {
|
|
282
|
+
return value.slice(0).reverse();
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return value;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
var updateValue = function updateValue(value, end) {
|
|
289
|
+
if (isRange(value)) {
|
|
290
|
+
value = handleOverlap(value).map(format);
|
|
291
|
+
} else {
|
|
292
|
+
value = format(value);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
var modelVal = initValue || initValue === 0 ? initValue : modelValue;
|
|
296
|
+
|
|
297
|
+
if (!isSameValue(value, modelVal)) {
|
|
298
|
+
SetInitValue(value);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
if (end && !isSameValue(value, startValue)) {
|
|
302
|
+
change && change(value);
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
var _onTouchStart = function onTouchStart(event) {
|
|
307
|
+
if (disabled) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
touch.start(event);
|
|
312
|
+
currentValue = initValue || initValue === 0 ? initValue : modelValue;
|
|
313
|
+
|
|
314
|
+
if (isRange(currentValue)) {
|
|
315
|
+
startValue = currentValue.map(format);
|
|
316
|
+
} else {
|
|
317
|
+
startValue = format(currentValue);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
SetDragStatus('start');
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
var _onTouchMove = function onTouchMove(event) {
|
|
324
|
+
if (disabled || !root.current) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (dragStatus === 'start') {
|
|
329
|
+
dragStart && dragStart();
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
touch.move(event);
|
|
333
|
+
SetDragStatus('draging');
|
|
334
|
+
var rect = useRect(root.current);
|
|
335
|
+
var delta = touch.deltaX;
|
|
336
|
+
var total = rect.width;
|
|
337
|
+
var diff = delta / total * scope();
|
|
338
|
+
|
|
339
|
+
if (isRange(startValue)) {
|
|
340
|
+
currentValue[buttonIndex] = startValue[buttonIndex] + diff;
|
|
341
|
+
} else {
|
|
342
|
+
currentValue = startValue + diff;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
updateValue(currentValue);
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
var _onTouchEnd = function onTouchEnd(event) {
|
|
349
|
+
if (disabled) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
if (dragStatus === 'draging') {
|
|
354
|
+
updateValue(currentValue, true);
|
|
355
|
+
dragEnd && dragEnd();
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
SetDragStatus('');
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
var curValue = function curValue(idx) {
|
|
362
|
+
var modelVal = initValue || initValue === 0 ? initValue : modelValue;
|
|
363
|
+
var value = typeof idx === 'number' ? modelVal[idx] : modelVal;
|
|
364
|
+
return value;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
return React__default.createElement("div", {
|
|
368
|
+
className: "nut-range-container ".concat(className ? className : '')
|
|
369
|
+
}, !hiddenRange ? React__default.createElement("div", {
|
|
370
|
+
className: "min"
|
|
371
|
+
}, +min) : null, React__default.createElement("div", {
|
|
372
|
+
ref: root,
|
|
373
|
+
style: wrapperStyle(),
|
|
374
|
+
className: "".concat(rangeBem(), " ").concat(disabled ? rangeBem('disabled') : '', " ").concat(!hiddenRange ? rangeBem('show-number') : '')
|
|
375
|
+
}, React__default.createElement("div", {
|
|
376
|
+
className: "nut-range-bar",
|
|
377
|
+
style: barStyle()
|
|
378
|
+
}, range ? [0, 1].map(function (item, index) {
|
|
379
|
+
return React__default.createElement("div", {
|
|
380
|
+
role: "slider",
|
|
381
|
+
key: index,
|
|
382
|
+
className: "".concat(index == 0 ? 'nut-range-button-wrapper-left' : '', "\n ").concat(index == 1 ? 'nut-range-button-wrapper-right' : ''),
|
|
383
|
+
tabIndex: disabled ? -1 : 0,
|
|
384
|
+
"aria-valuemin": +min,
|
|
385
|
+
"aria-valuenow": curValue(index),
|
|
386
|
+
"aria-valuemax": +max,
|
|
387
|
+
"aria-orientation": "horizontal",
|
|
388
|
+
onTouchStart: function onTouchStart(e) {
|
|
389
|
+
e.preventDefault;
|
|
390
|
+
|
|
391
|
+
if (typeof index === 'number') {
|
|
392
|
+
// 实时更新当前拖动的按钮索引
|
|
393
|
+
SetButtonIndex(index);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
_onTouchStart(e);
|
|
397
|
+
},
|
|
398
|
+
onTouchMove: function onTouchMove(e) {
|
|
399
|
+
_onTouchMove(e);
|
|
400
|
+
},
|
|
401
|
+
onTouchEnd: function onTouchEnd(e) {
|
|
402
|
+
_onTouchEnd();
|
|
403
|
+
},
|
|
404
|
+
onTouchCancel: function onTouchCancel(e) {
|
|
405
|
+
_onTouchEnd();
|
|
406
|
+
},
|
|
407
|
+
onClick: function onClick(e) {
|
|
408
|
+
e.stopPropagation();
|
|
409
|
+
}
|
|
410
|
+
}, button ? button : React__default.createElement("div", {
|
|
411
|
+
className: "nut-range-button",
|
|
412
|
+
style: buttonStyle()
|
|
413
|
+
}, !hiddenTag ? React__default.createElement("div", {
|
|
414
|
+
className: "number"
|
|
415
|
+
}, curValue(index)) : null));
|
|
416
|
+
}) : React__default.createElement("div", {
|
|
417
|
+
role: "slider",
|
|
418
|
+
className: "nut-range-button-wrapper",
|
|
419
|
+
tabIndex: disabled ? -1 : 0,
|
|
420
|
+
"aria-valuemin": +min,
|
|
421
|
+
"aria-valuenow": curValue(),
|
|
422
|
+
"aria-valuemax": +max,
|
|
423
|
+
"aria-orientation": "horizontal",
|
|
424
|
+
onTouchStart: function onTouchStart(e) {
|
|
425
|
+
_onTouchStart(e);
|
|
426
|
+
},
|
|
427
|
+
onTouchMove: function onTouchMove(e) {
|
|
428
|
+
_onTouchMove(e);
|
|
429
|
+
},
|
|
430
|
+
onTouchEnd: function onTouchEnd(e) {
|
|
431
|
+
_onTouchEnd();
|
|
432
|
+
},
|
|
433
|
+
onTouchCancel: function onTouchCancel(e) {
|
|
434
|
+
_onTouchEnd();
|
|
435
|
+
},
|
|
436
|
+
onClick: function onClick(e) {
|
|
437
|
+
e.stopPropagation();
|
|
438
|
+
}
|
|
439
|
+
}, button ? button : React__default.createElement("div", {
|
|
440
|
+
className: "nut-range-button",
|
|
441
|
+
style: buttonStyle()
|
|
442
|
+
}, !hiddenTag ? React__default.createElement("div", {
|
|
443
|
+
className: "number"
|
|
444
|
+
}, curValue()) : null)))), !hiddenRange ? React__default.createElement("div", {
|
|
445
|
+
className: "max"
|
|
446
|
+
}, +max) : null);
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
Range.defaultProps = defaultProps;
|
|
450
|
+
Range.displayName = 'NutRange';
|
|
451
|
+
export { Range as default };
|
package/dist/esm/Rate.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
|
|
4
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
+
|
|
6
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
+
|
|
8
|
+
import React__default, { useState, useEffect } from 'react';
|
|
9
|
+
import { c as cn } from './bem-893ad28d.js';
|
|
10
|
+
import { I as Icon } from './icon-63c0d58f.js';
|
|
11
|
+
import '@bem-react/classname';
|
|
12
|
+
var defaultProps = {
|
|
13
|
+
count: 5,
|
|
14
|
+
modelValue: 0,
|
|
15
|
+
iconSize: 18,
|
|
16
|
+
activeColor: '',
|
|
17
|
+
voidColor: '',
|
|
18
|
+
checkedIcon: 'star-fill-n',
|
|
19
|
+
uncheckedIcon: 'star-n',
|
|
20
|
+
disabled: false,
|
|
21
|
+
readonly: false,
|
|
22
|
+
allowHalf: false,
|
|
23
|
+
spacing: 14
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var Rate = function Rate(props) {
|
|
27
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
28
|
+
count = _defaultProps$props.count,
|
|
29
|
+
modelValue = _defaultProps$props.modelValue,
|
|
30
|
+
iconSize = _defaultProps$props.iconSize,
|
|
31
|
+
activeColor = _defaultProps$props.activeColor,
|
|
32
|
+
voidColor = _defaultProps$props.voidColor,
|
|
33
|
+
checkedIcon = _defaultProps$props.checkedIcon,
|
|
34
|
+
uncheckedIcon = _defaultProps$props.uncheckedIcon,
|
|
35
|
+
disabled = _defaultProps$props.disabled,
|
|
36
|
+
readonly = _defaultProps$props.readonly,
|
|
37
|
+
allowHalf = _defaultProps$props.allowHalf,
|
|
38
|
+
spacing = _defaultProps$props.spacing,
|
|
39
|
+
change = _defaultProps$props.change;
|
|
40
|
+
|
|
41
|
+
var b = cn('rate');
|
|
42
|
+
var bi = cn('rate-item');
|
|
43
|
+
|
|
44
|
+
var _useState = useState([1, 2, 3, 4, 5]),
|
|
45
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
46
|
+
countArray = _useState2[0],
|
|
47
|
+
setCountArray = _useState2[1];
|
|
48
|
+
|
|
49
|
+
var _useState3 = useState(0),
|
|
50
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
51
|
+
score = _useState4[0],
|
|
52
|
+
setScore = _useState4[1];
|
|
53
|
+
|
|
54
|
+
useEffect(function () {
|
|
55
|
+
var tmp = [];
|
|
56
|
+
|
|
57
|
+
for (var i = 1; i <= Number(count); i++) {
|
|
58
|
+
tmp.push(i);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
setCountArray(tmp);
|
|
62
|
+
}, [count]);
|
|
63
|
+
useEffect(function () {
|
|
64
|
+
setScore(Number(modelValue));
|
|
65
|
+
}, [modelValue]);
|
|
66
|
+
|
|
67
|
+
var pxCheck = function pxCheck(value) {
|
|
68
|
+
return isNaN(Number(value)) ? String(value) : "".concat(value, "px");
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
var _onClick = function onClick(e, index) {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
e.stopPropagation();
|
|
74
|
+
if (disabled || readonly) return;
|
|
75
|
+
var value = 0;
|
|
76
|
+
if (index === 1 && score === index) ;else {
|
|
77
|
+
value = index;
|
|
78
|
+
|
|
79
|
+
if (allowHalf) {
|
|
80
|
+
if (e !== null && e !== void 0 && e.target.className.includes('__icon--half')) {
|
|
81
|
+
value -= 0.5;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
setScore(value);
|
|
86
|
+
change && change(value);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
return React__default.createElement("div", {
|
|
90
|
+
className: b()
|
|
91
|
+
}, countArray.map(function (n) {
|
|
92
|
+
return React__default.createElement("div", {
|
|
93
|
+
className: bi(),
|
|
94
|
+
key: n,
|
|
95
|
+
onClick: function onClick(event) {
|
|
96
|
+
return _onClick(event, n);
|
|
97
|
+
},
|
|
98
|
+
style: {
|
|
99
|
+
marginRight: pxCheck(spacing)
|
|
100
|
+
}
|
|
101
|
+
}, React__default.createElement(Icon, {
|
|
102
|
+
size: iconSize,
|
|
103
|
+
className: "".concat(bi('icon'), " ").concat(disabled || n > score ? bi('icon--disabled') : ''),
|
|
104
|
+
name: n <= score ? checkedIcon : uncheckedIcon,
|
|
105
|
+
color: n <= score ? activeColor : voidColor
|
|
106
|
+
}), allowHalf && score > n - 1 && React__default.createElement(Icon, {
|
|
107
|
+
className: "".concat(bi('icon'), " ").concat(bi('icon--half')),
|
|
108
|
+
color: n <= score ? activeColor : voidColor,
|
|
109
|
+
size: iconSize,
|
|
110
|
+
name: checkedIcon
|
|
111
|
+
}), allowHalf && score < n - 1 && React__default.createElement(Icon, {
|
|
112
|
+
className: "".concat(bi('icon'), " ").concat(bi('icon--disabled'), " ").concat(bi('icon--half')),
|
|
113
|
+
color: voidColor,
|
|
114
|
+
size: iconSize,
|
|
115
|
+
name: uncheckedIcon
|
|
116
|
+
}));
|
|
117
|
+
}));
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
Rate.defaultProps = defaultProps;
|
|
121
|
+
Rate.displayName = 'NutRate';
|
|
122
|
+
export { Rate as default };
|