1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports.default = void 0;
|
11 |
|
12 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
13 |
|
14 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
15 |
|
16 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
17 |
|
18 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
19 |
|
20 | var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
21 |
|
22 | var _react = _interopRequireDefault(require("react"));
|
23 |
|
24 | var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
|
25 |
|
26 | var _Track = _interopRequireDefault(require("./common/Track"));
|
27 |
|
28 | var _createSlider = _interopRequireDefault(require("./common/createSlider"));
|
29 |
|
30 | var utils = _interopRequireWildcard(require("./utils"));
|
31 |
|
32 | var Slider = function (_React$Component) {
|
33 | (0, _inherits2.default)(Slider, _React$Component);
|
34 |
|
35 | var _super = (0, _createSuper2.default)(Slider);
|
36 |
|
37 |
|
38 | function Slider(props) {
|
39 | var _this;
|
40 |
|
41 | (0, _classCallCheck2.default)(this, Slider);
|
42 | _this = _super.call(this, props);
|
43 |
|
44 | _this.positionGetValue = function (position) {
|
45 | return [];
|
46 | };
|
47 |
|
48 | _this.onEnd = function (force) {
|
49 | var dragging = _this.state.dragging;
|
50 |
|
51 | _this.removeDocumentEvents();
|
52 |
|
53 | if (dragging || force) {
|
54 | _this.props.onAfterChange(_this.getValue());
|
55 | }
|
56 |
|
57 | _this.setState({
|
58 | dragging: false
|
59 | });
|
60 | };
|
61 |
|
62 | var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;
|
63 | var value = props.value !== undefined ? props.value : defaultValue;
|
64 | _this.state = {
|
65 | value: _this.trimAlignValue(value),
|
66 | dragging: false
|
67 | };
|
68 | (0, _warning.default)(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');
|
69 | (0, _warning.default)(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');
|
70 | return _this;
|
71 | }
|
72 | |
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 |
|
79 |
|
80 | (0, _createClass2.default)(Slider, [{
|
81 | key: "calcValueByPos",
|
82 | value: function calcValueByPos(value) {
|
83 | return 0;
|
84 | }
|
85 | }, {
|
86 | key: "calcOffset",
|
87 | value: function calcOffset(value) {
|
88 | return 0;
|
89 | }
|
90 | }, {
|
91 | key: "saveHandle",
|
92 | value: function saveHandle(index, h) {}
|
93 | }, {
|
94 | key: "removeDocumentEvents",
|
95 | value: function removeDocumentEvents() {}
|
96 | }, {
|
97 | key: "componentDidUpdate",
|
98 | value: function componentDidUpdate(prevProps, prevState) {
|
99 | var _this$props = this.props,
|
100 | min = _this$props.min,
|
101 | max = _this$props.max,
|
102 | value = _this$props.value,
|
103 | onChange = _this$props.onChange;
|
104 |
|
105 | if (!('min' in this.props || 'max' in this.props)) {
|
106 | return;
|
107 | }
|
108 |
|
109 | var theValue = value !== undefined ? value : prevState.value;
|
110 | var nextValue = this.trimAlignValue(theValue, this.props);
|
111 |
|
112 | if (nextValue === prevState.value) {
|
113 | return;
|
114 | }
|
115 |
|
116 |
|
117 | this.setState({
|
118 | value: nextValue
|
119 | });
|
120 |
|
121 | if (!(min === prevProps.min && max === prevProps.max) && utils.isValueOutOfRange(theValue, this.props)) {
|
122 | onChange(nextValue);
|
123 | }
|
124 | }
|
125 | }, {
|
126 | key: "onChange",
|
127 | value: function onChange(state) {
|
128 | var props = this.props;
|
129 | var isNotControlled = !('value' in props);
|
130 | var nextState = state.value > this.props.max ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
131 | value: this.props.max
|
132 | }) : state;
|
133 |
|
134 | if (isNotControlled) {
|
135 | this.setState(nextState);
|
136 | }
|
137 |
|
138 | var changedValue = nextState.value;
|
139 | props.onChange(changedValue);
|
140 | }
|
141 | }, {
|
142 | key: "onStart",
|
143 | value: function onStart(position) {
|
144 | this.setState({
|
145 | dragging: true
|
146 | });
|
147 | var props = this.props;
|
148 | var prevValue = this.getValue();
|
149 | props.onBeforeChange(prevValue);
|
150 | var value = this.calcValueByPos(position);
|
151 | this.startValue = value;
|
152 | this.startPosition = position;
|
153 | if (value === prevValue) return;
|
154 | this.prevMovedHandleIndex = 0;
|
155 | this.onChange({
|
156 | value: value
|
157 | });
|
158 | }
|
159 | }, {
|
160 | key: "onMove",
|
161 | value: function onMove(e, position) {
|
162 | utils.pauseEvent(e);
|
163 | var oldValue = this.state.value;
|
164 | var value = this.calcValueByPos(position);
|
165 | if (value === oldValue) return;
|
166 | this.onChange({
|
167 | value: value
|
168 | });
|
169 | }
|
170 | }, {
|
171 | key: "onKeyboard",
|
172 | value: function onKeyboard(e) {
|
173 | var _this$props2 = this.props,
|
174 | reverse = _this$props2.reverse,
|
175 | vertical = _this$props2.vertical;
|
176 | var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);
|
177 |
|
178 | if (valueMutator) {
|
179 | utils.pauseEvent(e);
|
180 | var state = this.state;
|
181 | var oldValue = state.value;
|
182 | var mutatedValue = valueMutator(oldValue, this.props);
|
183 | var value = this.trimAlignValue(mutatedValue);
|
184 | if (value === oldValue) return;
|
185 | this.onChange({
|
186 | value: value
|
187 | });
|
188 | this.props.onAfterChange(value);
|
189 | this.onEnd();
|
190 | }
|
191 | }
|
192 | }, {
|
193 | key: "getValue",
|
194 | value: function getValue() {
|
195 | return this.state.value;
|
196 | }
|
197 | }, {
|
198 | key: "getLowerBound",
|
199 | value: function getLowerBound() {
|
200 | var minPoint = this.props.startPoint || this.props.min;
|
201 | return this.state.value > minPoint ? minPoint : this.state.value;
|
202 | }
|
203 | }, {
|
204 | key: "getUpperBound",
|
205 | value: function getUpperBound() {
|
206 | if (this.state.value < this.props.startPoint) {
|
207 | return this.props.startPoint;
|
208 | }
|
209 |
|
210 | return this.state.value;
|
211 | }
|
212 | }, {
|
213 | key: "trimAlignValue",
|
214 | value: function trimAlignValue(v) {
|
215 | var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
216 |
|
217 | if (v === null) {
|
218 | return null;
|
219 | }
|
220 |
|
221 | var mergedProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.props), nextProps);
|
222 | var val = utils.ensureValueInRange(v, mergedProps);
|
223 | return utils.ensureValuePrecision(val, mergedProps);
|
224 | }
|
225 | }, {
|
226 | key: "render",
|
227 | value: function render() {
|
228 | var _this2 = this;
|
229 |
|
230 | var _this$props3 = this.props,
|
231 | prefixCls = _this$props3.prefixCls,
|
232 | vertical = _this$props3.vertical,
|
233 | included = _this$props3.included,
|
234 | disabled = _this$props3.disabled,
|
235 | minimumTrackStyle = _this$props3.minimumTrackStyle,
|
236 | trackStyle = _this$props3.trackStyle,
|
237 | handleStyle = _this$props3.handleStyle,
|
238 | tabIndex = _this$props3.tabIndex,
|
239 | ariaLabelForHandle = _this$props3.ariaLabelForHandle,
|
240 | ariaLabelledByForHandle = _this$props3.ariaLabelledByForHandle,
|
241 | ariaValueTextFormatterForHandle = _this$props3.ariaValueTextFormatterForHandle,
|
242 | min = _this$props3.min,
|
243 | max = _this$props3.max,
|
244 | startPoint = _this$props3.startPoint,
|
245 | reverse = _this$props3.reverse,
|
246 | handleGenerator = _this$props3.handle;
|
247 | var _this$state = this.state,
|
248 | value = _this$state.value,
|
249 | dragging = _this$state.dragging;
|
250 | var offset = this.calcOffset(value);
|
251 | var handle = handleGenerator({
|
252 | className: "".concat(prefixCls, "-handle"),
|
253 | prefixCls: prefixCls,
|
254 | vertical: vertical,
|
255 | offset: offset,
|
256 | value: value,
|
257 | dragging: dragging,
|
258 | disabled: disabled,
|
259 | min: min,
|
260 | max: max,
|
261 | reverse: reverse,
|
262 | index: 0,
|
263 | tabIndex: tabIndex,
|
264 | ariaLabel: ariaLabelForHandle,
|
265 | ariaLabelledBy: ariaLabelledByForHandle,
|
266 | ariaValueTextFormatter: ariaValueTextFormatterForHandle,
|
267 | style: handleStyle[0] || handleStyle,
|
268 | ref: function ref(h) {
|
269 | return _this2.saveHandle(0, h);
|
270 | }
|
271 | });
|
272 | var trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;
|
273 | var mergedTrackStyle = trackStyle[0] || trackStyle;
|
274 |
|
275 | var track = _react.default.createElement(_Track.default, {
|
276 | className: "".concat(prefixCls, "-track"),
|
277 | vertical: vertical,
|
278 | included: included,
|
279 | offset: trackOffset,
|
280 | reverse: reverse,
|
281 | length: offset - trackOffset,
|
282 | style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, minimumTrackStyle), mergedTrackStyle)
|
283 | });
|
284 |
|
285 | return {
|
286 | tracks: track,
|
287 | handles: handle
|
288 | };
|
289 | }
|
290 | }]);
|
291 | return Slider;
|
292 | }(_react.default.Component);
|
293 |
|
294 | var _default = (0, _createSlider.default)(Slider);
|
295 |
|
296 | exports.default = _default; |
\ | No newline at end of file |