intelicoreact 0.2.26 → 0.2.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +373 -0
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.scss +146 -0
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.stories.scss +26 -0
- package/dist/Atomic/UI/Chart/Chart.js +145 -0
- package/dist/Atomic/UI/Chart/Chart.scss +57 -0
- package/dist/Atomic/UI/Chart/partial/AnyOuterClass.scss +38 -0
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +30 -0
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +95 -0
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.scss +18 -0
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +286 -0
- package/dist/Atomic/UI/Chart/partial/utils.js +147 -0
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +235 -0
- package/dist/Atomic/UI/ExampleChartIntegration/partial/AnyOuterClass.scss +61 -0
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +131 -0
- package/dist/Functions/utils.js +15 -1
- package/package.json +3 -1
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = RangeSlider;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reactFeather = require("react-feather");
|
|
17
|
+
|
|
18
|
+
var _Input = _interopRequireDefault(require("../Input/Input"));
|
|
19
|
+
|
|
20
|
+
require("./RangeSlider.scss");
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
// require('./lib/customEventListener.js');
|
|
27
|
+
function RangeSlider(_ref) {
|
|
28
|
+
var _value$from, _value$to;
|
|
29
|
+
|
|
30
|
+
var _ref$min = _ref.min,
|
|
31
|
+
min = _ref$min === void 0 ? 0 : _ref$min,
|
|
32
|
+
_ref$max = _ref.max,
|
|
33
|
+
max = _ref$max === void 0 ? 100 : _ref$max,
|
|
34
|
+
_ref$minRange = _ref.minRange,
|
|
35
|
+
minRange = _ref$minRange === void 0 ? 0 : _ref$minRange,
|
|
36
|
+
_ref$precision = _ref.precision,
|
|
37
|
+
precision = _ref$precision === void 0 ? 0 : _ref$precision,
|
|
38
|
+
_ref$value = _ref.value,
|
|
39
|
+
value = _ref$value === void 0 ? {
|
|
40
|
+
from: min,
|
|
41
|
+
to: max
|
|
42
|
+
} : _ref$value,
|
|
43
|
+
_ref$unit = _ref.unit,
|
|
44
|
+
unit = _ref$unit === void 0 ? '' : _ref$unit,
|
|
45
|
+
_ref$label = _ref.label,
|
|
46
|
+
label = _ref$label === void 0 ? '' : _ref$label,
|
|
47
|
+
_ref$onChange = _ref.onChange,
|
|
48
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
|
|
49
|
+
var trackRef = (0, _react.useRef)(0);
|
|
50
|
+
|
|
51
|
+
var _useState = (0, _react.useState)(0),
|
|
52
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
53
|
+
trackWidth = _useState2[0],
|
|
54
|
+
setTrackWidth = _useState2[1];
|
|
55
|
+
|
|
56
|
+
var _useState3 = (0, _react.useState)(0),
|
|
57
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
58
|
+
trackPosition = _useState4[0],
|
|
59
|
+
setTrackPosition = _useState4[1];
|
|
60
|
+
|
|
61
|
+
var fromTriggerRef = (0, _react.useRef)(0);
|
|
62
|
+
var toTriggerRef = (0, _react.useRef)(0);
|
|
63
|
+
|
|
64
|
+
var _useState5 = (0, _react.useState)((_value$from = value === null || value === void 0 ? void 0 : value.from) !== null && _value$from !== void 0 ? _value$from : min),
|
|
65
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
66
|
+
from = _useState6[0],
|
|
67
|
+
setFromValue = _useState6[1];
|
|
68
|
+
|
|
69
|
+
var setFrom = function setFrom(v) {
|
|
70
|
+
return setFromValue(prepareValue(v));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var _useState7 = (0, _react.useState)((_value$to = value === null || value === void 0 ? void 0 : value.to) !== null && _value$to !== void 0 ? _value$to : max),
|
|
74
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
75
|
+
to = _useState8[0],
|
|
76
|
+
setToValue = _useState8[1];
|
|
77
|
+
|
|
78
|
+
var setTo = function setTo(v) {
|
|
79
|
+
return setToValue(prepareValue(v));
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var _useState9 = (0, _react.useState)(null),
|
|
83
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
84
|
+
tempValue = _useState10[0],
|
|
85
|
+
setTempValue = _useState10[1];
|
|
86
|
+
|
|
87
|
+
var _useState11 = (0, _react.useState)(null),
|
|
88
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
89
|
+
focusedType = _useState12[0],
|
|
90
|
+
setFocusedType = _useState12[1];
|
|
91
|
+
|
|
92
|
+
var _useState13 = (0, _react.useState)(null),
|
|
93
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
94
|
+
movingController = _useState14[0],
|
|
95
|
+
setMovingController = _useState14[1];
|
|
96
|
+
|
|
97
|
+
var _useState15 = (0, _react.useState)(null),
|
|
98
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
99
|
+
movingTrigger = _useState16[0],
|
|
100
|
+
setMovingTrigger = _useState16[1];
|
|
101
|
+
|
|
102
|
+
var _useState17 = (0, _react.useState)(null),
|
|
103
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
104
|
+
movingTriggerType = _useState18[0],
|
|
105
|
+
setMovingTriggerType = _useState18[1];
|
|
106
|
+
|
|
107
|
+
var _useState19 = (0, _react.useState)(false),
|
|
108
|
+
_useState20 = (0, _slicedToArray2.default)(_useState19, 2),
|
|
109
|
+
isTriggerMoved = _useState20[0],
|
|
110
|
+
setIsTriggerMoved = _useState20[1];
|
|
111
|
+
|
|
112
|
+
var _useState21 = (0, _react.useState)(0),
|
|
113
|
+
_useState22 = (0, _slicedToArray2.default)(_useState21, 2),
|
|
114
|
+
pointsPerPx = _useState22[0],
|
|
115
|
+
setPointsPerPx = _useState22[1];
|
|
116
|
+
|
|
117
|
+
var countPointsPerPx = function countPointsPerPx(width) {
|
|
118
|
+
return (max - min) / width;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var _useState23 = (0, _react.useState)(0),
|
|
122
|
+
_useState24 = (0, _slicedToArray2.default)(_useState23, 2),
|
|
123
|
+
extremumRange = _useState24[0],
|
|
124
|
+
setExtremumRange = _useState24[1];
|
|
125
|
+
|
|
126
|
+
var _useState25 = (0, _react.useState)(0),
|
|
127
|
+
_useState26 = (0, _slicedToArray2.default)(_useState25, 2),
|
|
128
|
+
extremumWidth = _useState26[0],
|
|
129
|
+
setExtremumWidth = _useState26[1];
|
|
130
|
+
|
|
131
|
+
var resetRange = function resetRange() {
|
|
132
|
+
setFrom(min);
|
|
133
|
+
setTo(max);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var getRangeWidth = function getRangeWidth() {
|
|
137
|
+
return (to - from) * 100 / (max - min);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var getRangeOffset = function getRangeOffset() {
|
|
141
|
+
return (from - min) * 100 / (max - min);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var getXByPoints = function getXByPoints(pts) {
|
|
145
|
+
return pts / pointsPerPx + trackPosition;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
var getPointsByX = function getPointsByX(x) {
|
|
149
|
+
return (x - trackPosition) * pointsPerPx + min;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
var prepareValue = function prepareValue(value) {
|
|
153
|
+
return parseInt(parseFloat(value) * Math.pow(10, precision)) / Math.pow(10, precision);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
var onRangeChange = function onRangeChange(type, value) {
|
|
157
|
+
var validate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
158
|
+
if (validate) value = prepareValue(value);
|
|
159
|
+
if (isNaN(value)) value = 0;
|
|
160
|
+
|
|
161
|
+
switch (type) {
|
|
162
|
+
case 'from':
|
|
163
|
+
if (value < min && validate) setFrom(min);else if (value > max - extremumRange && extremumRange > minRange && validate) setFrom(max - extremumRange);else if (value > to - extremumRange && extremumRange > minRange && validate) setFrom(to - extremumRange);else if (value > to - minRange && minRange > extremumRange && validate) setFrom(to - minRange);else setFrom(value);
|
|
164
|
+
break;
|
|
165
|
+
|
|
166
|
+
case 'to':
|
|
167
|
+
if (value > max && validate) setTo(max);else if (value < min + extremumRange && extremumRange > minRange && validate) setTo(min + +extremumRange);else if (value < from + extremumRange && extremumRange > minRange && validate) setTo(from + extremumRange);else if (value < from + minRange && minRange > extremumRange && validate) setTo(from + minRange);else setTo(value);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
var onTriggerMouseDown = function onTriggerMouseDown(e, type) {
|
|
173
|
+
setMovingTrigger(e.target);
|
|
174
|
+
setMovingTriggerType(type);
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
var onTriggerMove = function onTriggerMove(e) {
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
e.stopPropagation();
|
|
180
|
+
if (!isTriggerMoved) setIsTriggerMoved(true);
|
|
181
|
+
if (!movingTrigger) return false;
|
|
182
|
+
var x = e.clientX;
|
|
183
|
+
if (x < trackPosition || x > trackPosition + trackWidth) return false;
|
|
184
|
+
|
|
185
|
+
var _movingTrigger$getBou = movingTrigger === null || movingTrigger === void 0 ? void 0 : movingTrigger.getBoundingClientRect(),
|
|
186
|
+
_movingTrigger$getBou2 = _movingTrigger$getBou.width,
|
|
187
|
+
triggerWidth = _movingTrigger$getBou2 === void 0 ? 16 : _movingTrigger$getBou2;
|
|
188
|
+
|
|
189
|
+
x = movingTriggerType === 'from' ? x - triggerWidth / 2 : x + triggerWidth / 2;
|
|
190
|
+
onRangeChange(movingTriggerType, getPointsByX(x));
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
var onRangeInputFocus = function onRangeInputFocus(e, type) {
|
|
194
|
+
setFocusedType(type);
|
|
195
|
+
setTempValue(type === 'from' ? from : to);
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
var onRangeInputBlur = function onRangeInputBlur(e, type) {
|
|
199
|
+
onRangeChange(type, parseFloat(tempValue));
|
|
200
|
+
setTempValue(null);
|
|
201
|
+
setFocusedType(null);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
(0, _react.useLayoutEffect)(function () {
|
|
205
|
+
var _trackRef$current;
|
|
206
|
+
|
|
207
|
+
var _trackRef$current$get = trackRef === null || trackRef === void 0 ? void 0 : (_trackRef$current = trackRef.current) === null || _trackRef$current === void 0 ? void 0 : _trackRef$current.getBoundingClientRect(),
|
|
208
|
+
width = _trackRef$current$get.width,
|
|
209
|
+
x = _trackRef$current$get.x;
|
|
210
|
+
|
|
211
|
+
setPointsPerPx(countPointsPerPx(width));
|
|
212
|
+
setTrackWidth(width);
|
|
213
|
+
setTrackPosition(x);
|
|
214
|
+
}, [trackRef]);
|
|
215
|
+
(0, _react.useLayoutEffect)(function () {
|
|
216
|
+
var _fromTriggerRef$curre, _toTriggerRef$current;
|
|
217
|
+
|
|
218
|
+
var _ref2 = (fromTriggerRef === null || fromTriggerRef === void 0 ? void 0 : (_fromTriggerRef$curre = fromTriggerRef.current) === null || _fromTriggerRef$curre === void 0 ? void 0 : _fromTriggerRef$curre.getBoundingClientRect()) || {},
|
|
219
|
+
fromTriggerWidth = _ref2.width;
|
|
220
|
+
|
|
221
|
+
var _ref3 = (toTriggerRef === null || toTriggerRef === void 0 ? void 0 : (_toTriggerRef$current = toTriggerRef.current) === null || _toTriggerRef$current === void 0 ? void 0 : _toTriggerRef$current.getBoundingClientRect()) || {},
|
|
222
|
+
toTriggerWidth = _ref3.width;
|
|
223
|
+
|
|
224
|
+
setExtremumRange((fromTriggerWidth + toTriggerWidth) * pointsPerPx);
|
|
225
|
+
setExtremumWidth(fromTriggerWidth + toTriggerWidth);
|
|
226
|
+
}, [fromTriggerRef, toTriggerRef, pointsPerPx]);
|
|
227
|
+
(0, _react.useEffect)(function () {
|
|
228
|
+
var _value$from2, _value$to2;
|
|
229
|
+
|
|
230
|
+
if (extremumRange === 0) return null;
|
|
231
|
+
onRangeChange('from', (_value$from2 = value === null || value === void 0 ? void 0 : value.from) !== null && _value$from2 !== void 0 ? _value$from2 : max);
|
|
232
|
+
onRangeChange('to', (_value$to2 = value === null || value === void 0 ? void 0 : value.to) !== null && _value$to2 !== void 0 ? _value$to2 : min);
|
|
233
|
+
}, [extremumRange]); // MouseUp Event Controller
|
|
234
|
+
|
|
235
|
+
(0, _react.useEffect)(function () {
|
|
236
|
+
var resetMovingTrigger = function resetMovingTrigger() {
|
|
237
|
+
setMovingTrigger(null);
|
|
238
|
+
setMovingTriggerType(null);
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
document.addEventListener('mouseup', resetMovingTrigger);
|
|
242
|
+
return function () {
|
|
243
|
+
document.removeEventListener('mouseup', resetMovingTrigger);
|
|
244
|
+
};
|
|
245
|
+
}, []); // MouseMove Event Controller
|
|
246
|
+
|
|
247
|
+
(0, _react.useEffect)(function () {
|
|
248
|
+
var _body$classList;
|
|
249
|
+
|
|
250
|
+
if (!movingTrigger && isTriggerMoved) {
|
|
251
|
+
movingController === null || movingController === void 0 ? void 0 : movingController.abort();
|
|
252
|
+
setIsTriggerMoved(false);
|
|
253
|
+
setMovingController(null);
|
|
254
|
+
} else if (movingTrigger && !isTriggerMoved) {
|
|
255
|
+
setMovingController(new AbortController());
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
var body = document.getElementsByTagName('body')[0];
|
|
259
|
+
(_body$classList = body.classList) === null || _body$classList === void 0 ? void 0 : _body$classList[movingTrigger ? 'add' : 'remove']('moving-cursor');
|
|
260
|
+
}, [movingTrigger]);
|
|
261
|
+
(0, _react.useEffect)(function () {
|
|
262
|
+
if (movingController) {
|
|
263
|
+
document.addEventListener('mousemove', onTriggerMove, {
|
|
264
|
+
signal: movingController === null || movingController === void 0 ? void 0 : movingController.signal
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}, [movingController]);
|
|
268
|
+
(0, _react.useEffect)(function () {
|
|
269
|
+
return onChange({
|
|
270
|
+
from: from,
|
|
271
|
+
to: to
|
|
272
|
+
});
|
|
273
|
+
}, [from, to]);
|
|
274
|
+
|
|
275
|
+
var renderLabel = function renderLabel() {
|
|
276
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
277
|
+
className: "range-slider__header__label"
|
|
278
|
+
}, label);
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
var renderSelectedRange = function renderSelectedRange() {
|
|
282
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
283
|
+
className: "range-slider__header__selected-range"
|
|
284
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
285
|
+
className: "range-slider__header__selected-range--text"
|
|
286
|
+
}, "from ", from, " to ", to, unit), /*#__PURE__*/_react.default.createElement("div", {
|
|
287
|
+
className: "range-slider__header__selected-range--reset",
|
|
288
|
+
onClick: resetRange
|
|
289
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.X, null)));
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
var renderHeader = function renderHeader() {
|
|
293
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
294
|
+
className: "range-slider__header"
|
|
295
|
+
}, renderLabel(), min !== from || max !== to ? renderSelectedRange() : null);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
var renderInputs = function renderInputs() {
|
|
299
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
300
|
+
className: "range-slider__inputs"
|
|
301
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
302
|
+
className: "range-slider__inputs--from"
|
|
303
|
+
}, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
304
|
+
value: focusedType === 'from' ? tempValue : from.toString(),
|
|
305
|
+
onFocus: function onFocus(e) {
|
|
306
|
+
return onRangeInputFocus(e, 'from');
|
|
307
|
+
},
|
|
308
|
+
onBlur: function onBlur(e) {
|
|
309
|
+
return onRangeInputBlur(e, 'from');
|
|
310
|
+
},
|
|
311
|
+
onChange: setTempValue
|
|
312
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
313
|
+
className: "range-slider__inputs__input"
|
|
314
|
+
}, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
315
|
+
value: focusedType === 'to' ? tempValue : to.toString(),
|
|
316
|
+
onFocus: function onFocus(e) {
|
|
317
|
+
return onRangeInputFocus(e, 'to');
|
|
318
|
+
},
|
|
319
|
+
onBlur: function onBlur(e) {
|
|
320
|
+
return onRangeInputBlur(e, 'to');
|
|
321
|
+
},
|
|
322
|
+
onChange: setTempValue
|
|
323
|
+
})));
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
var renderTrackRange = function renderTrackRange() {
|
|
327
|
+
var style = {
|
|
328
|
+
width: getRangeWidth().toString().concat('%'),
|
|
329
|
+
left: getRangeOffset().toString().concat('%'),
|
|
330
|
+
minWidth: extremumWidth.toString().concat('px')
|
|
331
|
+
};
|
|
332
|
+
var extremumWidthPercent = extremumWidth * 100 / trackWidth;
|
|
333
|
+
|
|
334
|
+
if (getRangeOffset() + extremumWidthPercent >= 100) {
|
|
335
|
+
style.left = (100 - extremumWidthPercent).toString().concat('%');
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
339
|
+
className: "range-slider__track__range",
|
|
340
|
+
style: style,
|
|
341
|
+
onMouseMove: movingTrigger ? moveTrigger : function () {}
|
|
342
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
343
|
+
ref: fromTriggerRef,
|
|
344
|
+
className: "range-slider__track__range--trigger",
|
|
345
|
+
onMouseDown: function onMouseDown(e) {
|
|
346
|
+
return onTriggerMouseDown(e, 'from');
|
|
347
|
+
}
|
|
348
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
349
|
+
ref: toTriggerRef,
|
|
350
|
+
className: "range-slider__track__range--trigger",
|
|
351
|
+
onMouseDown: function onMouseDown(e) {
|
|
352
|
+
return onTriggerMouseDown(e, 'to');
|
|
353
|
+
}
|
|
354
|
+
}));
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
var renderTrack = function renderTrack() {
|
|
358
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
359
|
+
className: "range-slider__track",
|
|
360
|
+
ref: trackRef
|
|
361
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
362
|
+
className: "range-slider__track__line"
|
|
363
|
+
}), renderTrackRange());
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
var render = function render() {
|
|
367
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
368
|
+
className: "range-slider"
|
|
369
|
+
}, renderHeader(), renderInputs(), renderTrack());
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
return render();
|
|
373
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
@import url("https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap");
|
|
2
|
+
|
|
3
|
+
.range-slider {
|
|
4
|
+
width: 100%;
|
|
5
|
+
max-width: 270px;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
|
|
9
|
+
&__header {
|
|
10
|
+
display: flex;
|
|
11
|
+
justify-content: space-between;
|
|
12
|
+
margin-bottom: 2px;
|
|
13
|
+
|
|
14
|
+
&__label {
|
|
15
|
+
font-family: "Sarabun";
|
|
16
|
+
font-style: normal;
|
|
17
|
+
font-weight: 500;
|
|
18
|
+
font-size: 12px;
|
|
19
|
+
line-height: 18px;
|
|
20
|
+
letter-spacing: 0.2px;
|
|
21
|
+
color: #757f8c;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__selected-range {
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
padding: 0px 4px 0px 8px;
|
|
28
|
+
background: #eaf2ff;
|
|
29
|
+
border-radius: 16px;
|
|
30
|
+
|
|
31
|
+
&--text {
|
|
32
|
+
font-family: "Sarabun";
|
|
33
|
+
font-style: normal;
|
|
34
|
+
font-weight: 400;
|
|
35
|
+
font-size: 12px;
|
|
36
|
+
line-height: 18px;
|
|
37
|
+
letter-spacing: 0.2px;
|
|
38
|
+
color: #3b414b;
|
|
39
|
+
margin-right: 2px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&--reset {
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
color: #9aa0b9;
|
|
46
|
+
border-left: 1px solid #cde1ff;
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
|
|
49
|
+
svg {
|
|
50
|
+
height: 16px;
|
|
51
|
+
width: 16px;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&__inputs {
|
|
58
|
+
display: flex;
|
|
59
|
+
|
|
60
|
+
&--from {
|
|
61
|
+
margin-right: 4px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&--to {
|
|
65
|
+
margin-left: 4px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.input__wrap {
|
|
69
|
+
height: auto;
|
|
70
|
+
max-height: 40px;
|
|
71
|
+
box-sizing: border-box;
|
|
72
|
+
|
|
73
|
+
padding: 9px 16px;
|
|
74
|
+
background: #ffffff;
|
|
75
|
+
border: 1px solid #e1e8f1;
|
|
76
|
+
border-radius: 6px;
|
|
77
|
+
|
|
78
|
+
&_focus {
|
|
79
|
+
border-color: #166c92;
|
|
80
|
+
filter: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
input {
|
|
84
|
+
box-sizing: border-box;
|
|
85
|
+
font-family: "Sarabun";
|
|
86
|
+
font-style: normal;
|
|
87
|
+
font-weight: 500;
|
|
88
|
+
font-size: 16px;
|
|
89
|
+
line-height: 22px;
|
|
90
|
+
letter-spacing: 0.2px;
|
|
91
|
+
color: #171d33;
|
|
92
|
+
padding: 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&__track {
|
|
98
|
+
display: flex;
|
|
99
|
+
align-items: center;
|
|
100
|
+
height: 16px;
|
|
101
|
+
margin-top: 2px;
|
|
102
|
+
position: relative;
|
|
103
|
+
|
|
104
|
+
&__line {
|
|
105
|
+
position: absolute;
|
|
106
|
+
width: 100%;
|
|
107
|
+
height: 4px;
|
|
108
|
+
background: #d6d9e4;
|
|
109
|
+
border-radius: 4px;
|
|
110
|
+
}
|
|
111
|
+
&__range {
|
|
112
|
+
position: relative;
|
|
113
|
+
height: 4px;
|
|
114
|
+
display: flex;
|
|
115
|
+
|
|
116
|
+
background: #1f7499;
|
|
117
|
+
border-radius: 4px;
|
|
118
|
+
justify-content: space-between;
|
|
119
|
+
|
|
120
|
+
&--trigger {
|
|
121
|
+
position: relative;
|
|
122
|
+
width: 16px;
|
|
123
|
+
height: 16px;
|
|
124
|
+
background: #ffffff;
|
|
125
|
+
border: 1px solid #1f7499;
|
|
126
|
+
box-shadow: 0px 4px 26px rgba(0, 67, 96, 0.1);
|
|
127
|
+
border-radius: 50%;
|
|
128
|
+
transform: translateY(-50%);
|
|
129
|
+
top: 50%;
|
|
130
|
+
box-sizing: border-box;
|
|
131
|
+
cursor: move;
|
|
132
|
+
|
|
133
|
+
&-left {
|
|
134
|
+
transform: translate(-50%, 0);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
&-right {
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.moving-cursor {
|
|
145
|
+
cursor: move!important;
|
|
146
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.desc {
|
|
2
|
+
margin-top: 16px;
|
|
3
|
+
padding: 4px 12px;
|
|
4
|
+
background: #f7f7f7;
|
|
5
|
+
border-radius: 8px;
|
|
6
|
+
max-width: 270px;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
box-shadow: 0px 0px 8px 2px #e9e7e7;
|
|
9
|
+
|
|
10
|
+
h4 {
|
|
11
|
+
margin: 0;
|
|
12
|
+
padding: 0;
|
|
13
|
+
padding-bottom: 8px;
|
|
14
|
+
margin-top: 4px;
|
|
15
|
+
color: #1f7499;
|
|
16
|
+
font-size: 14px;
|
|
17
|
+
line-height: 1;
|
|
18
|
+
border-bottom: 1px solid #e9e7e7;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
code {
|
|
22
|
+
font-size: 12px;
|
|
23
|
+
line-height: 16px;
|
|
24
|
+
color: #171d33;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
21
|
+
|
|
22
|
+
var _chart = require("chart.js");
|
|
23
|
+
|
|
24
|
+
var _helpers = require("chart.js/helpers");
|
|
25
|
+
|
|
26
|
+
var ChartComponents = _interopRequireWildcard(require("react-chartjs-2"));
|
|
27
|
+
|
|
28
|
+
var _optionsConstructor = require("./partial/optionsConstructor");
|
|
29
|
+
|
|
30
|
+
var _utils = require("./partial/utils");
|
|
31
|
+
|
|
32
|
+
var _Chart = require("./partial/Chart.constants");
|
|
33
|
+
|
|
34
|
+
var _ChartTypeSwitcherIcon = _interopRequireDefault(require("./partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon"));
|
|
35
|
+
|
|
36
|
+
require("./Chart.scss");
|
|
37
|
+
|
|
38
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
|
+
|
|
40
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
|
+
|
|
42
|
+
var RC = 'chart';
|
|
43
|
+
|
|
44
|
+
_chart.Chart.register(_chart.CategoryScale, _chart.LinearScale, _chart.BarElement, _chart.PointElement, _chart.LineElement);
|
|
45
|
+
|
|
46
|
+
var Chart = function Chart(_ref) {
|
|
47
|
+
var className = _ref.className,
|
|
48
|
+
initialModel = _ref.initialModel,
|
|
49
|
+
modelsForSwitch = _ref.modelsForSwitch,
|
|
50
|
+
setModelExternalValue = _ref.setModelExternalValue,
|
|
51
|
+
description = _ref.description,
|
|
52
|
+
customOptions = _ref.customOptions,
|
|
53
|
+
data = _ref.data;
|
|
54
|
+
if (!data) return null;
|
|
55
|
+
|
|
56
|
+
var correctModelKey = function correctModelKey(key) {
|
|
57
|
+
return key && _Chart.CHART_TYPES.includes((0, _utils.getChartTypeKey)(key)) ? key : _Chart.DEFAULT_CHART_MODEL;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var _ref2 = description || {},
|
|
61
|
+
label = _ref2.label,
|
|
62
|
+
value = _ref2.value;
|
|
63
|
+
|
|
64
|
+
var _useState = (0, _react.useState)(correctModelKey(initialModel)),
|
|
65
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
66
|
+
model = _useState2[0],
|
|
67
|
+
setModel = _useState2[1];
|
|
68
|
+
|
|
69
|
+
var _useState3 = (0, _react.useState)(data),
|
|
70
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
71
|
+
localData = _useState4[0],
|
|
72
|
+
setLocalData = _useState4[1];
|
|
73
|
+
|
|
74
|
+
var chartRef = (0, _react.useRef)(null);
|
|
75
|
+
|
|
76
|
+
var isExcludeDescription = _optionsConstructor.componentOptions.disableDescriptionsFor.includes(model);
|
|
77
|
+
|
|
78
|
+
var isExcludeChartTypeSwitcher = _optionsConstructor.componentOptions.disableChartTypeSwitcherFor.includes(model);
|
|
79
|
+
|
|
80
|
+
var getChartOptions = function getChartOptions() {
|
|
81
|
+
return customOptions || (0, _utils.getOptions)(model);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
var ChartComponent = (0, _react.useCallback)(function (props) {
|
|
85
|
+
var Component = ChartComponents[(0, _utils.getChartTypeKey)(model)];
|
|
86
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
87
|
+
ref: chartRef
|
|
88
|
+
}, props));
|
|
89
|
+
}, [model]);
|
|
90
|
+
(0, _react.useLayoutEffect)(function () {
|
|
91
|
+
if (initialModel !== model) setModel(correctModelKey(initialModel));
|
|
92
|
+
}, [initialModel]);
|
|
93
|
+
(0, _react.useLayoutEffect)(function () {
|
|
94
|
+
if (setModelExternalValue) setModelExternalValue(correctModelKey(model));
|
|
95
|
+
}, [model]);
|
|
96
|
+
(0, _react.useEffect)(function () {
|
|
97
|
+
return setLocalData((0, _utils.prepareData)(model, data, chartRef.current));
|
|
98
|
+
}, [model, data, chartRef]);
|
|
99
|
+
(0, _react.useEffect)(function () {
|
|
100
|
+
var _getChartOptions = getChartOptions(),
|
|
101
|
+
_getChartOptions$notL = _getChartOptions.notLibraryOptions;
|
|
102
|
+
|
|
103
|
+
_getChartOptions$notL = _getChartOptions$notL === void 0 ? {} : _getChartOptions$notL;
|
|
104
|
+
var setCanvasDimensions = _getChartOptions$notL.setCanvasDimensions;
|
|
105
|
+
|
|
106
|
+
if (chartRef.current) {
|
|
107
|
+
var _setCanvasDimensions$, _setCanvasDimensions$2;
|
|
108
|
+
|
|
109
|
+
chartRef.current.canvas.parentNode.style.width = (_setCanvasDimensions$ = setCanvasDimensions === null || setCanvasDimensions === void 0 ? void 0 : setCanvasDimensions.width) !== null && _setCanvasDimensions$ !== void 0 ? _setCanvasDimensions$ : '';
|
|
110
|
+
chartRef.current.canvas.parentNode.style.height = (_setCanvasDimensions$2 = setCanvasDimensions === null || setCanvasDimensions === void 0 ? void 0 : setCanvasDimensions.height) !== null && _setCanvasDimensions$2 !== void 0 ? _setCanvasDimensions$2 : '';
|
|
111
|
+
}
|
|
112
|
+
}, [model]);
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
114
|
+
className: (0, _classnames.default)(RC, (0, _defineProperty2.default)({}, "".concat(RC, "_icon-mode"), _optionsConstructor.iconModels.includes(model)), className)
|
|
115
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
116
|
+
className: (0, _classnames.default)("".concat(RC, "__header"), (0, _defineProperty2.default)({}, "".concat(RC, "__header_only-switcher"), !description))
|
|
117
|
+
}, description && !isExcludeDescription ? /*#__PURE__*/_react.default.createElement("div", {
|
|
118
|
+
className: (0, _classnames.default)("".concat(RC, "__description"))
|
|
119
|
+
}, label ? /*#__PURE__*/_react.default.createElement("span", {
|
|
120
|
+
className: (0, _classnames.default)("".concat(RC, "__description-title"))
|
|
121
|
+
}, label) : null, value ? /*#__PURE__*/_react.default.createElement("div", {
|
|
122
|
+
className: (0, _classnames.default)("".concat(RC, "__description-value"))
|
|
123
|
+
}, value) : null) : null, !isExcludeChartTypeSwitcher ? /*#__PURE__*/_react.default.createElement("div", {
|
|
124
|
+
className: (0, _classnames.default)("".concat(RC, "__type-switcher"))
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement(_ChartTypeSwitcherIcon.default, {
|
|
126
|
+
iconType: "Bar",
|
|
127
|
+
isActive: (0, _utils.getChartTypeKey)(model) === 'Bar',
|
|
128
|
+
onClick: function onClick() {
|
|
129
|
+
return setModel((modelsForSwitch === null || modelsForSwitch === void 0 ? void 0 : modelsForSwitch[0]) || 'barLayout');
|
|
130
|
+
}
|
|
131
|
+
}), /*#__PURE__*/_react.default.createElement(_ChartTypeSwitcherIcon.default, {
|
|
132
|
+
iconType: "Line",
|
|
133
|
+
isActive: (0, _utils.getChartTypeKey)(model) === 'Line',
|
|
134
|
+
onClick: function onClick() {
|
|
135
|
+
return setModel((modelsForSwitch === null || modelsForSwitch === void 0 ? void 0 : modelsForSwitch[1]) || 'lineLayout');
|
|
136
|
+
}
|
|
137
|
+
})) : null), /*#__PURE__*/_react.default.createElement("div", {
|
|
138
|
+
className: (0, _classnames.default)("".concat(RC, "__chart-wrapper"))
|
|
139
|
+
}, /*#__PURE__*/_react.default.createElement(ChartComponent, (0, _extends2.default)({}, getChartOptions(), {
|
|
140
|
+
data: localData
|
|
141
|
+
}))));
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var _default = Chart;
|
|
145
|
+
exports.default = _default;
|