intelicoreact 0.2.25 → 0.2.28

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.
@@ -69,6 +69,12 @@ var Dropdown = function Dropdown(_ref) {
69
69
 
70
70
  var dropdownRef = (0, _react.useRef)(null);
71
71
  var dropdownListRef = (0, _react.useRef)(null);
72
+
73
+ var _useState5 = (0, _react.useState)(false),
74
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
75
+ isFocusedByClick = _useState6[0],
76
+ setIsFocusedByClick = _useState6[1];
77
+
72
78
  if (!options) return null;
73
79
  var filteredGroups = options.filter(function (item) {
74
80
  var _item$items;
@@ -210,6 +216,8 @@ var Dropdown = function Dropdown(_ref) {
210
216
  };
211
217
  }, [value]);
212
218
  (0, _react.useEffect)(function () {
219
+ if (!isOpen) setIsFocusedByClick(false);
220
+
213
221
  if (scrollReactionObj && (0, _typeof2.default)(scrollReactionObj) === 'object' && isOpen && dropdownListRef && dropdownListRef.current) {
214
222
  dropdownListRef.current.addEventListener('scroll', doScrollCallback);
215
223
  }
@@ -218,6 +226,17 @@ var Dropdown = function Dropdown(_ref) {
218
226
  if (scrollReactionObj && (0, _typeof2.default)(scrollReactionObj) === 'object') removeEventListener('scroll', doScrollCallback);
219
227
  };
220
228
  }, [isOpen, dropdownListRef]);
229
+
230
+ var onKeyDown = function onKeyDown(e) {
231
+ if (![9, 13].includes(e.keyCode)) return false;
232
+ setIsOpen(false);
233
+ };
234
+
235
+ var onKeyUp = function onKeyUp(e) {
236
+ if (![9, 13].includes(e.keyCode)) return false;
237
+ setIsOpen(true);
238
+ };
239
+
221
240
  var postfixText = selectedLabel && ((_filteredOptions$find = filteredOptions.find(function (option) {
222
241
  return option.value === value;
223
242
  })) === null || _filteredOptions$find === void 0 ? void 0 : _filteredOptions$find.postfix) || null;
@@ -226,18 +245,20 @@ var Dropdown = function Dropdown(_ref) {
226
245
  disabled: disabled
227
246
  }),
228
247
  ref: dropdownRef,
229
- onKeyDown: function onKeyDown(e) {
230
- if (!['Tab', 'Enter'].includes(e.code)) return false;
231
- setIsOpen(false);
232
- },
233
- onKeyUp: function onKeyUp(e) {
234
- if (!['Tab', 'Enter'].includes(e.code)) return false;
235
- setIsOpen(true);
236
- }
248
+ onKeyDown: onKeyDown,
249
+ onKeyUp: onKeyUp
237
250
  }, /*#__PURE__*/_react.default.createElement("button", {
238
251
  className: "".concat(RC, "__trigger input__wrap ").concat(isOpen ? 'input__wrap--focus' : '', " ").concat(!value ? 'placeholder' : '', " ").concat(error ? 'error' : ''),
239
252
  onClick: function onClick() {
240
253
  return !isSearchable ? setIsOpen(!isOpen) : null;
254
+ },
255
+ onMouseDown: function onMouseDown() {
256
+ return setIsFocusedByClick(true);
257
+ },
258
+ onKeyDown: onKeyDown,
259
+ onKeyUp: onKeyUp,
260
+ onFocus: function onFocus() {
261
+ return !isFocusedByClick ? setIsOpen(true) : null;
241
262
  }
242
263
  }, isSearchable ? /*#__PURE__*/_react.default.createElement("input", {
243
264
  className: "".concat(RC, "__input"),
@@ -0,0 +1,376 @@
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);
164
+ // else if (value > to - extremumRange && extremumRange > minRange && validate) setFrom(to - extremumRange);
165
+ else if (value > to - minRange && minRange > extremumRange && validate) setFrom(to - minRange);else setFrom(value);
166
+ break;
167
+
168
+ case 'to':
169
+ if (value > max && validate) setTo(max); // else if (value < min + extremumRange && extremumRange > minRange && validate) setTo(min+ + extremumRange);
170
+ // else if (value < from + extremumRange && extremumRange > minRange && validate) setTo(from + extremumRange);
171
+ else if (value < from + minRange && minRange > extremumRange && validate) setTo(from + minRange);else setTo(value);
172
+ break;
173
+ }
174
+ };
175
+
176
+ var onTriggerMouseDown = function onTriggerMouseDown(e, type) {
177
+ setMovingTrigger(e.target);
178
+ setMovingTriggerType(type);
179
+ };
180
+
181
+ var onTriggerMove = function onTriggerMove(e) {
182
+ e.preventDefault();
183
+ e.stopPropagation();
184
+ if (!isTriggerMoved) setIsTriggerMoved(true);
185
+ if (!movingTrigger) return false;
186
+ var x = e.clientX;
187
+ if (x < trackPosition || x > trackPosition + trackWidth) return false;
188
+
189
+ var _movingTrigger$getBou = movingTrigger === null || movingTrigger === void 0 ? void 0 : movingTrigger.getBoundingClientRect(),
190
+ _movingTrigger$getBou2 = _movingTrigger$getBou.width,
191
+ triggerWidth = _movingTrigger$getBou2 === void 0 ? 16 : _movingTrigger$getBou2;
192
+
193
+ x = movingTriggerType === 'from' ? x - triggerWidth / 2 : x + triggerWidth / 2;
194
+ onRangeChange(movingTriggerType, getPointsByX(x));
195
+ };
196
+
197
+ var onRangeInputFocus = function onRangeInputFocus(e, type) {
198
+ setFocusedType(type);
199
+ setTempValue(type === 'from' ? from : to);
200
+ };
201
+
202
+ var onRangeInputBlur = function onRangeInputBlur(e, type) {
203
+ onRangeChange(type, parseFloat(tempValue));
204
+ setTempValue(null);
205
+ setFocusedType(null);
206
+ };
207
+
208
+ (0, _react.useLayoutEffect)(function () {
209
+ var _trackRef$current;
210
+
211
+ 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(),
212
+ width = _trackRef$current$get.width,
213
+ x = _trackRef$current$get.x;
214
+
215
+ setPointsPerPx(countPointsPerPx(width));
216
+ setTrackWidth(width);
217
+ setTrackPosition(x);
218
+ }, [trackRef]);
219
+ (0, _react.useLayoutEffect)(function () {
220
+ var _fromTriggerRef$curre, _toTriggerRef$current;
221
+
222
+ var _ref2 = (fromTriggerRef === null || fromTriggerRef === void 0 ? void 0 : (_fromTriggerRef$curre = fromTriggerRef.current) === null || _fromTriggerRef$curre === void 0 ? void 0 : _fromTriggerRef$curre.getBoundingClientRect()) || {},
223
+ fromTriggerWidth = _ref2.width;
224
+
225
+ var _ref3 = (toTriggerRef === null || toTriggerRef === void 0 ? void 0 : (_toTriggerRef$current = toTriggerRef.current) === null || _toTriggerRef$current === void 0 ? void 0 : _toTriggerRef$current.getBoundingClientRect()) || {},
226
+ toTriggerWidth = _ref3.width;
227
+
228
+ setExtremumRange((fromTriggerWidth + toTriggerWidth) * pointsPerPx);
229
+ setExtremumWidth(fromTriggerWidth + toTriggerWidth);
230
+ }, [fromTriggerRef, toTriggerRef, pointsPerPx]);
231
+ (0, _react.useEffect)(function () {
232
+ var _value$from2, _value$to2;
233
+
234
+ if (extremumRange === 0) return null;
235
+ onRangeChange('from', (_value$from2 = value === null || value === void 0 ? void 0 : value.from) !== null && _value$from2 !== void 0 ? _value$from2 : max);
236
+ onRangeChange('to', (_value$to2 = value === null || value === void 0 ? void 0 : value.to) !== null && _value$to2 !== void 0 ? _value$to2 : min);
237
+ }, [extremumRange]); // MouseUp Event Controller
238
+
239
+ (0, _react.useEffect)(function () {
240
+ var resetMovingTrigger = function resetMovingTrigger() {
241
+ setMovingTrigger(null);
242
+ setMovingTriggerType(null);
243
+ };
244
+
245
+ document.addEventListener('mouseup', resetMovingTrigger);
246
+ return function () {
247
+ document.removeEventListener('mouseup', resetMovingTrigger);
248
+ };
249
+ }, []); // MouseMove Event Controller
250
+
251
+ (0, _react.useEffect)(function () {
252
+ var _body$classList;
253
+
254
+ if (!movingTrigger && isTriggerMoved) {
255
+ movingController === null || movingController === void 0 ? void 0 : movingController.abort();
256
+ setIsTriggerMoved(false);
257
+ setMovingController(null);
258
+ } else if (movingTrigger && !isTriggerMoved) {
259
+ setMovingController(new AbortController());
260
+ }
261
+
262
+ var body = document.getElementsByTagName('body')[0];
263
+ (_body$classList = body.classList) === null || _body$classList === void 0 ? void 0 : _body$classList[movingTrigger ? 'add' : 'remove']('moving-cursor');
264
+ }, [movingTrigger]);
265
+ (0, _react.useEffect)(function () {
266
+ if (movingController) {
267
+ document.addEventListener('mousemove', onTriggerMove, {
268
+ signal: movingController === null || movingController === void 0 ? void 0 : movingController.signal
269
+ });
270
+ }
271
+ }, [movingController]);
272
+ (0, _react.useEffect)(function () {
273
+ return onChange({
274
+ from: from,
275
+ to: to
276
+ });
277
+ }, [from, to]);
278
+
279
+ var renderLabel = function renderLabel() {
280
+ return /*#__PURE__*/_react.default.createElement("div", {
281
+ className: "range-slider__header__label"
282
+ }, label);
283
+ };
284
+
285
+ var renderSelectedRange = function renderSelectedRange() {
286
+ return /*#__PURE__*/_react.default.createElement("div", {
287
+ className: "range-slider__header__selected-range"
288
+ }, /*#__PURE__*/_react.default.createElement("div", {
289
+ className: "range-slider__header__selected-range--text"
290
+ }, "from ", from, " to ", to, unit), /*#__PURE__*/_react.default.createElement("div", {
291
+ className: "range-slider__header__selected-range--reset",
292
+ onClick: resetRange
293
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, null)));
294
+ };
295
+
296
+ var renderHeader = function renderHeader() {
297
+ return /*#__PURE__*/_react.default.createElement("div", {
298
+ className: "range-slider__header"
299
+ }, renderLabel(), min !== from || max !== to ? renderSelectedRange() : null);
300
+ };
301
+
302
+ var renderInputs = function renderInputs() {
303
+ return /*#__PURE__*/_react.default.createElement("div", {
304
+ className: "range-slider__inputs"
305
+ }, /*#__PURE__*/_react.default.createElement("div", {
306
+ className: "range-slider__inputs--from"
307
+ }, /*#__PURE__*/_react.default.createElement(_Input.default, {
308
+ value: focusedType === 'from' ? tempValue : from.toString(),
309
+ onFocus: function onFocus(e) {
310
+ return onRangeInputFocus(e, 'from');
311
+ },
312
+ onBlur: function onBlur(e) {
313
+ return onRangeInputBlur(e, 'from');
314
+ },
315
+ onChange: setTempValue
316
+ })), /*#__PURE__*/_react.default.createElement("div", {
317
+ className: "range-slider__inputs__input"
318
+ }, /*#__PURE__*/_react.default.createElement(_Input.default, {
319
+ value: focusedType === 'to' ? tempValue : to.toString(),
320
+ onFocus: function onFocus(e) {
321
+ return onRangeInputFocus(e, 'to');
322
+ },
323
+ onBlur: function onBlur(e) {
324
+ return onRangeInputBlur(e, 'to');
325
+ },
326
+ onChange: setTempValue
327
+ })));
328
+ };
329
+
330
+ var renderTrackRange = function renderTrackRange() {
331
+ var style = {
332
+ width: getRangeWidth().toString().concat('%'),
333
+ left: getRangeOffset().toString().concat('%'),
334
+ minWidth: extremumWidth.toString().concat('px')
335
+ };
336
+ var extremumWidthPercent = extremumWidth * 100 / trackWidth;
337
+
338
+ if (getRangeOffset() + extremumWidthPercent >= 100) {
339
+ style.left = (100 - extremumWidthPercent).toString().concat('%');
340
+ }
341
+
342
+ return /*#__PURE__*/_react.default.createElement("div", {
343
+ className: "range-slider__track__range",
344
+ style: style
345
+ }, /*#__PURE__*/_react.default.createElement("div", {
346
+ ref: fromTriggerRef,
347
+ className: "range-slider__track__range--trigger",
348
+ onMouseDown: function onMouseDown(e) {
349
+ return onTriggerMouseDown(e, 'from');
350
+ }
351
+ }), /*#__PURE__*/_react.default.createElement("div", {
352
+ ref: toTriggerRef,
353
+ className: "range-slider__track__range--trigger",
354
+ onMouseDown: function onMouseDown(e) {
355
+ return onTriggerMouseDown(e, 'to');
356
+ }
357
+ }));
358
+ };
359
+
360
+ var renderTrack = function renderTrack() {
361
+ return /*#__PURE__*/_react.default.createElement("div", {
362
+ className: "range-slider__track",
363
+ ref: trackRef
364
+ }, /*#__PURE__*/_react.default.createElement("div", {
365
+ className: "range-slider__track__line"
366
+ }), renderTrackRange());
367
+ };
368
+
369
+ var render = function render() {
370
+ return /*#__PURE__*/_react.default.createElement("div", {
371
+ className: "range-slider"
372
+ }, renderHeader(), renderInputs(), renderTrack());
373
+ };
374
+
375
+ return render();
376
+ }
@@ -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
+ }