intelicoreact 1.8.6 → 1.8.7

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.
Files changed (225) hide show
  1. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.jsx +1 -18
  2. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.jsx +1 -121
  3. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.jsx +1 -507
  4. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.jsx +1 -46
  5. package/dist/Atomic/FormElements/NumericInput/NumericInput.jsx +1 -337
  6. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.jsx +1 -66
  7. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.jsx +1 -78
  8. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.jsx +1 -54
  9. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.jsx +1 -183
  10. package/dist/Atomic/FormElements/RangeList/RangeList.jsx +1 -181
  11. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.jsx +1 -41
  12. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.jsx +1 -449
  13. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.jsx +1 -865
  14. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.jsx +1 -37
  15. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.jsx +1 -48
  16. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.jsx +1 -62
  17. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.jsx +1 -175
  18. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.jsx +1 -65
  19. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.jsx +1 -118
  20. package/dist/Atomic/FormElements/Text/Text.jsx +1 -126
  21. package/dist/Atomic/FormElements/Textarea/Textarea.jsx +1 -61
  22. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.jsx +1 -181
  23. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.jsx +1 -60
  24. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.jsx +1 -83
  25. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.jsx +1 -80
  26. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.jsx +1 -103
  27. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.jsx +1 -115
  28. package/dist/Atomic/Layout/Header/Header.jsx +1 -86
  29. package/dist/Atomic/Layout/MainMenu/MainMenu.jsx +1 -164
  30. package/dist/Atomic/UI/AccordionTable/AccordionTable.jsx +1 -250
  31. package/dist/Atomic/UI/AccordionText/AccordionText.jsx +1 -68
  32. package/dist/Atomic/UI/Arrow/Arrow.jsx +1 -134
  33. package/dist/Atomic/UI/Box/Box.jsx +1 -53
  34. package/dist/Atomic/UI/Chart/Chart.jsx +1 -178
  35. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.jsx +1 -78
  36. package/dist/Atomic/UI/Chart/partial/optionsConstructor.jsx +1 -334
  37. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.jsx +1 -111
  38. package/dist/Atomic/UI/DateTime/DateTime.jsx +1 -57
  39. package/dist/Atomic/UI/DebugContainer/DebugContainer.jsx +1 -44
  40. package/dist/Atomic/UI/DebugContainer/useDebugContainer.jsx +1 -15
  41. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.jsx +1 -223
  42. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.jsx +1 -75
  43. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.jsx +1 -86
  44. package/dist/Atomic/UI/PieChart/PieChart.jsx +1 -41
  45. package/dist/Atomic/UI/Table/Partials/TdCell.jsx +1 -87
  46. package/dist/Atomic/UI/Table/Partials/TdHeader.jsx +1 -36
  47. package/dist/Atomic/UI/Table/Partials/TdRow.jsx +1 -103
  48. package/dist/Atomic/UI/Table/Partials/TdTitle.jsx +1 -55
  49. package/dist/Atomic/UI/Table/Table.jsx +1 -63
  50. package/dist/Atomic/UI/Table/TdTypes/TdActions.jsx +1 -80
  51. package/dist/Atomic/UI/Table/TdTypes/TdPriority.jsx +1 -26
  52. package/dist/Atomic/UI/Table/TdTypes/TdRange.jsx +1 -13
  53. package/dist/Atomic/UI/Table/TdTypes/TdWeight.jsx +1 -56
  54. package/dist/Atomic/UI/TagList/TagList.jsx +1 -256
  55. package/dist/Atomic/UI/WizardStepper/constructor.jsx +1 -86
  56. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.jsx +1 -254
  57. package/dist/Functions/customEventListener.jsx +1 -96
  58. package/dist/Functions/operations.jsx +1 -138
  59. package/dist/Functions/useFormTools/functions/RenderFields.jsx +1 -108
  60. package/dist/Functions/useFormTools/index.jsx +1 -777
  61. package/dist/Functions/usePasswordChecker.jsx +1 -128
  62. package/dist/Functions/utils.jsx +1 -492
  63. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.jsx +1 -22
  64. package/dist/Molecular/CustomIcons/components/AlertCircle.jsx +1 -24
  65. package/dist/Molecular/CustomIcons/components/AppStore.jsx +1 -30
  66. package/dist/Molecular/CustomIcons/components/Arrow.jsx +1 -33
  67. package/dist/Molecular/CustomIcons/components/ArrowDown.jsx +1 -18
  68. package/dist/Molecular/CustomIcons/components/ArrowLeft.jsx +1 -23
  69. package/dist/Molecular/CustomIcons/components/ArrowRight.jsx +1 -23
  70. package/dist/Molecular/CustomIcons/components/ArrowUp.jsx +1 -18
  71. package/dist/Molecular/CustomIcons/components/Bell.jsx +1 -16
  72. package/dist/Molecular/CustomIcons/components/Button.jsx +1 -13
  73. package/dist/Molecular/CustomIcons/components/Campaigns.jsx +1 -17
  74. package/dist/Molecular/CustomIcons/components/Check.jsx +1 -15
  75. package/dist/Molecular/CustomIcons/components/Check2.jsx +1 -13
  76. package/dist/Molecular/CustomIcons/components/ChevronDown.jsx +1 -13
  77. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.jsx +1 -12
  78. package/dist/Molecular/CustomIcons/components/ChevronLeft.jsx +1 -12
  79. package/dist/Molecular/CustomIcons/components/ChevronRight.jsx +1 -12
  80. package/dist/Molecular/CustomIcons/components/ChevronUp.jsx +1 -12
  81. package/dist/Molecular/CustomIcons/components/ChevronUpDown.jsx +1 -28
  82. package/dist/Molecular/CustomIcons/components/Close.jsx +1 -15
  83. package/dist/Molecular/CustomIcons/components/ColumnsOrder.jsx +1 -18
  84. package/dist/Molecular/CustomIcons/components/Delete.jsx +1 -17
  85. package/dist/Molecular/CustomIcons/components/Edit.jsx +1 -16
  86. package/dist/Molecular/CustomIcons/components/Email.jsx +1 -32
  87. package/dist/Molecular/CustomIcons/components/FinturfLogo.jsx +1 -19
  88. package/dist/Molecular/CustomIcons/components/FinturfLogo2.jsx +1 -36
  89. package/dist/Molecular/CustomIcons/components/Flows.jsx +1 -16
  90. package/dist/Molecular/CustomIcons/components/Gift.jsx +1 -26
  91. package/dist/Molecular/CustomIcons/components/GoogleAuth.jsx +1 -30
  92. package/dist/Molecular/CustomIcons/components/GooglePlay.jsx +1 -30
  93. package/dist/Molecular/CustomIcons/components/HelpCircle.jsx +1 -20
  94. package/dist/Molecular/CustomIcons/components/HelpCircle2.jsx +1 -21
  95. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.jsx +1 -20
  96. package/dist/Molecular/CustomIcons/components/Home.jsx +1 -17
  97. package/dist/Molecular/CustomIcons/components/Home2.jsx +1 -23
  98. package/dist/Molecular/CustomIcons/components/Key.jsx +1 -24
  99. package/dist/Molecular/CustomIcons/components/Landers.jsx +1 -21
  100. package/dist/Molecular/CustomIcons/components/Lock.jsx +1 -16
  101. package/dist/Molecular/CustomIcons/components/Mail.jsx +1 -27
  102. package/dist/Molecular/CustomIcons/components/Mastercard.jsx +1 -74
  103. package/dist/Molecular/CustomIcons/components/Minus.jsx +1 -26
  104. package/dist/Molecular/CustomIcons/components/Offers.jsx +1 -17
  105. package/dist/Molecular/CustomIcons/components/Pause.jsx +1 -29
  106. package/dist/Molecular/CustomIcons/components/PayPal.jsx +1 -42
  107. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.jsx +1 -29
  108. package/dist/Molecular/CustomIcons/components/Phone.jsx +1 -31
  109. package/dist/Molecular/CustomIcons/components/Play.jsx +1 -26
  110. package/dist/Molecular/CustomIcons/components/Plus.jsx +1 -26
  111. package/dist/Molecular/CustomIcons/components/Profile.jsx +1 -17
  112. package/dist/Molecular/CustomIcons/components/QRCode.jsx +1 -30
  113. package/dist/Molecular/CustomIcons/components/Rectangle.jsx +1 -13
  114. package/dist/Molecular/CustomIcons/components/Revert.jsx +1 -14
  115. package/dist/Molecular/CustomIcons/components/Star.jsx +1 -15
  116. package/dist/Molecular/CustomIcons/components/Star2.jsx +1 -17
  117. package/dist/Molecular/CustomIcons/components/TrafficSources.jsx +1 -15
  118. package/dist/Molecular/CustomIcons/components/Trash.jsx +1 -16
  119. package/dist/Molecular/CustomIcons/components/TrashRed.jsx +1 -16
  120. package/dist/Molecular/CustomIcons/components/Triggers.jsx +1 -16
  121. package/dist/Molecular/CustomIcons/components/User.jsx +1 -26
  122. package/dist/Molecular/CustomIcons/components/Visa.jsx +1 -32
  123. package/dist/Molecular/CustomIcons/components/X.jsx +1 -13
  124. package/dist/Molecular/FormElement/FormElement.jsx +1 -52
  125. package/dist/Molecular/FormWithDependOn/FormWithDependOn.jsx +1 -161
  126. package/dist/Molecular/InputAddress/InputAddress.jsx +1 -641
  127. package/dist/Molecular/InputPassword/InputPassword.jsx +1 -50
  128. package/package.json +1 -1
  129. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.d.ts +0 -5
  130. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js.map +0 -1
  131. /package/dist/Atomic/FormElements/ActionAlert/{ActionAlert.js → ActionAlert.jsx} +0 -0
  132. /package/dist/Atomic/FormElements/AdvancedStatus/{AdvancedStatus.js → AdvancedStatus.jsx} +0 -0
  133. /package/dist/Atomic/FormElements/Calendar/{Calendar.js → Calendar.jsx} +0 -0
  134. /package/dist/Atomic/FormElements/Calendar/{Calendar.props.js → Calendar.props.jsx} +0 -0
  135. /package/dist/Atomic/FormElements/CheckboxInput/{CheckboxInput.js → CheckboxInput.jsx} +0 -0
  136. /package/dist/Atomic/FormElements/CheckboxesLine/{CheckboxesLine.js → CheckboxesLine.jsx} +0 -0
  137. /package/dist/Atomic/FormElements/Datepicker/{Datepicker.js → Datepicker.jsx} +0 -0
  138. /package/dist/Atomic/FormElements/Datepicker/{Datepicker.props.js → Datepicker.props.jsx} +0 -0
  139. /package/dist/Atomic/FormElements/Datepicker/components/{DatepickerCalendar.js → DatepickerCalendar.jsx} +0 -0
  140. /package/dist/Atomic/FormElements/Datepicker/components/{DatepickerCalendar.props.js → DatepickerCalendar.props.jsx} +0 -0
  141. /package/dist/Atomic/FormElements/Dropdown/{Dropdown.js → Dropdown.jsx} +0 -0
  142. /package/dist/Atomic/FormElements/DropdownLiveSearch/{DropdownLiveSearch.js → DropdownLiveSearch.jsx} +0 -0
  143. /package/dist/Atomic/FormElements/FileLoader/{FileLoader.js → FileLoader.jsx} +0 -0
  144. /package/dist/Atomic/FormElements/FileLoader/partial/{LoadZone.js → LoadZone.jsx} +0 -0
  145. /package/dist/Atomic/FormElements/FileLoader/partial/{LoadedContent.js → LoadedContent.jsx} +0 -0
  146. /package/dist/Atomic/FormElements/FileLoaderDescription/{FileLoaderDescription.js → FileLoaderDescription.jsx} +0 -0
  147. /package/dist/Atomic/FormElements/FileLoaderLocal/{FileLoaderLocal.js → FileLoaderLocal.jsx} +0 -0
  148. /package/dist/Atomic/FormElements/FileLoaderLocalGroup/{FileLoaderLocalGroup.js → FileLoaderLocalGroup.jsx} +0 -0
  149. /package/dist/Atomic/FormElements/FormattedRawSSN/{FormattedRawSSN.js → FormattedRawSSN.jsx} +0 -0
  150. /package/dist/Atomic/FormElements/Input/{Input.js → Input.jsx} +0 -0
  151. /package/dist/Atomic/FormElements/Input/hooks/{useErrorBlink.js → useErrorBlink.jsx} +0 -0
  152. /package/dist/Atomic/FormElements/Input/hooks/{useInputFocus.js → useInputFocus.jsx} +0 -0
  153. /package/dist/Atomic/FormElements/Input/hooks/{useInputHover.js → useInputHover.jsx} +0 -0
  154. /package/dist/Atomic/FormElements/Input/hooks/{useInputValueProcessing.js → useInputValueProcessing.jsx} +0 -0
  155. /package/dist/Atomic/FormElements/Input/hooks/{useKeyboardHandling.js → useKeyboardHandling.jsx} +0 -0
  156. /package/dist/Atomic/FormElements/Input/lib/{autocomplete.js → autocomplete.jsx} +0 -0
  157. /package/dist/Atomic/FormElements/Input/{types.js → types.jsx} +0 -0
  158. /package/dist/Atomic/FormElements/InputCalendar/{InputCalendar.js → InputCalendar.jsx} +0 -0
  159. /package/dist/Atomic/FormElements/InputColor/{InputColor.js → InputColor.jsx} +0 -0
  160. /package/dist/Atomic/FormElements/InputCurrency/{InputCurrency.js → InputCurrency.jsx} +0 -0
  161. /package/dist/Atomic/FormElements/InputDateRange/{InputDateRange.js → InputDateRange.jsx} +0 -0
  162. /package/dist/Atomic/FormElements/InputDateRange/components/{DateInput.js → DateInput.jsx} +0 -0
  163. /package/dist/Atomic/FormElements/InputDateRange/components/{Datepicker.js → Datepicker.jsx} +0 -0
  164. /package/dist/Atomic/FormElements/InputDateRange/components/{OpenedPart.js → OpenedPart.jsx} +0 -0
  165. /package/dist/Atomic/FormElements/InputDateRange/components/{SelectItem.js → SelectItem.jsx} +0 -0
  166. /package/dist/Atomic/FormElements/InputDateRange/{dependencies.js → dependencies.jsx} +0 -0
  167. /package/dist/Atomic/FormElements/InputLink/{InputLink.js → InputLink.jsx} +0 -0
  168. /package/dist/Atomic/FormElements/InputMask/{InputMask.js → InputMask.jsx} +0 -0
  169. /package/dist/Atomic/FormElements/InputMask3/{InputMask3.js → InputMask3.jsx} +0 -0
  170. /package/dist/Atomic/FormElements/InputMask3/{config.js → config.jsx} +0 -0
  171. /package/dist/Atomic/FormElements/InputMask3/{functions.js → functions.jsx} +0 -0
  172. /package/dist/Atomic/FormElements/InputWithAction/{InputWithAction.js → InputWithAction.jsx} +0 -0
  173. /package/dist/Atomic/FormElements/InputsRow/{InputsRow.js → InputsRow.jsx} +0 -0
  174. /package/dist/Atomic/FormElements/Label/{Label.js → Label.jsx} +0 -0
  175. /package/dist/Atomic/FormElements/RadioInput/{RadioInput.js → RadioInput.jsx} +0 -0
  176. /package/dist/Atomic/FormElements/RangeInputs/{RangeInputs.js → RangeInputs.jsx} +0 -0
  177. /package/dist/Atomic/FormElements/Switcher/{Switcher.js → Switcher.jsx} +0 -0
  178. /package/dist/Atomic/FormElements/SwitcherHide/{SwitcherHide.js → SwitcherHide.jsx} +0 -0
  179. /package/dist/Atomic/FormElements/SwitcherRadio/{SwitcherRadio.js → SwitcherRadio.jsx} +0 -0
  180. /package/dist/Atomic/FormElements/SwitcherRange/{SwitcherRange.js → SwitcherRange.jsx} +0 -0
  181. /package/dist/Atomic/FormElements/TagsDropdown/{TagsDropdown.js → TagsDropdown.jsx} +0 -0
  182. /package/dist/Atomic/FormElements/TextSwitcher/{TextSwitcher.js → TextSwitcher.jsx} +0 -0
  183. /package/dist/Atomic/FormElements/TimeRange/{TimeRange.js → TimeRange.jsx} +0 -0
  184. /package/dist/Atomic/FormElements/UserContacts/{UserContacts.js → UserContacts.jsx} +0 -0
  185. /package/dist/Atomic/Layout/Spinner/{Spinner.js → Spinner.jsx} +0 -0
  186. /package/dist/Atomic/UI/Accordion/{Accordion.js → Accordion.jsx} +0 -0
  187. /package/dist/Atomic/UI/Accordion/{AccordionItem.js → AccordionItem.jsx} +0 -0
  188. /package/dist/Atomic/UI/AdvancedTag/{AdvTag.js → AdvTag.jsx} +0 -0
  189. /package/dist/Atomic/UI/AdvancedTag/{AdvancedTags.js → AdvancedTags.jsx} +0 -0
  190. /package/dist/Atomic/UI/Alert/{Alert.js → Alert.jsx} +0 -0
  191. /package/dist/Atomic/UI/Button/{Button.js → Button.jsx} +0 -0
  192. /package/dist/Atomic/UI/ButtonsBar/{ButtonsBar.js → ButtonsBar.jsx} +0 -0
  193. /package/dist/Atomic/UI/DoubleString/{DoubleString.js → DoubleString.jsx} +0 -0
  194. /package/dist/Atomic/UI/DynamicIcon/{DynamicIcon.js → DynamicIcon.jsx} +0 -0
  195. /package/dist/Atomic/UI/Hint/{Hint.js → Hint.jsx} +0 -0
  196. /package/dist/Atomic/UI/Hint/partials/{_constants.js → _constants.jsx} +0 -0
  197. /package/dist/Atomic/UI/Hint/partials/{_utils.js → _utils.jsx} +0 -0
  198. /package/dist/Atomic/UI/Modal/{Modal.js → Modal.jsx} +0 -0
  199. /package/dist/Atomic/UI/Modal/{ModalHOC.js → ModalHOC.jsx} +0 -0
  200. /package/dist/Atomic/UI/Modal/partials/{ModalFooter.js → ModalFooter.jsx} +0 -0
  201. /package/dist/Atomic/UI/Modal/partials/{ModalTitle.js → ModalTitle.jsx} +0 -0
  202. /package/dist/Atomic/UI/Modal/partials/{_constants.js → _constants.jsx} +0 -0
  203. /package/dist/Atomic/UI/Modal/partials/{_utils.js → _utils.jsx} +0 -0
  204. /package/dist/Atomic/UI/Modal/partials/{useMobileModal.js → useMobileModal.jsx} +0 -0
  205. /package/dist/Atomic/UI/NavLine/{NavLine.js → NavLine.jsx} +0 -0
  206. /package/dist/Atomic/UI/PageTitle/{PageTitle.js → PageTitle.jsx} +0 -0
  207. /package/dist/Atomic/UI/Price/{Price.js → Price.jsx} +0 -0
  208. /package/dist/Atomic/UI/PriceRange/{PriceRange.js → PriceRange.jsx} +0 -0
  209. /package/dist/Atomic/UI/ProgressLine/{ProgressLine.js → ProgressLine.jsx} +0 -0
  210. /package/dist/Atomic/UI/Status/{Status.js → Status.jsx} +0 -0
  211. /package/dist/Atomic/UI/Tag/{Tag.js → Tag.jsx} +0 -0
  212. /package/dist/Atomic/UI/UserBox/{UserBox.js → UserBox.jsx} +0 -0
  213. /package/dist/Atomic/UI/WizardStepper/ui/StateIcon/{StateIcon.js → StateIcon.jsx} +0 -0
  214. /package/dist/Atomic/UI/WizardStepper/ui/StepRow/{StepRow.js → StepRow.jsx} +0 -0
  215. /package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/{StepWrapper.js → StepWrapper.jsx} +0 -0
  216. /package/dist/Atomic/UI/WizardStepper/ui/{icons.js → icons.jsx} +0 -0
  217. /package/dist/Functions/guards/{assertions.js → assertions.jsx} +0 -0
  218. /package/dist/Functions/guards/{safeValue.js → safeValue.jsx} +0 -0
  219. /package/dist/Functions/guards/{typeGuards.js → typeGuards.jsx} +0 -0
  220. /package/dist/Functions/useIsMobile/{useIsMobile.js → useIsMobile.jsx} +0 -0
  221. /package/dist/Functions/useKeyPress/{useHandleKeyPress.js → useHandleKeyPress.jsx} +0 -0
  222. /package/dist/Functions/useKeyPress/{useKeyPress.js → useKeyPress.jsx} +0 -0
  223. /package/dist/Functions/utils/{disableDefaultBehavior.js → disableDefaultBehavior.jsx} +0 -0
  224. /package/dist/Functions/utils/{getLimitedMask.js → getLimitedMask.jsx} +0 -0
  225. /package/dist/types/declaration/TWithEventManagementAsObj/innerTypes/{Modal.js → Modal.jsx} +0 -0
@@ -1,865 +1 @@
1
- import cn from 'classnames';
2
-
3
- import {
4
- useEffect,
5
- useLayoutEffect,
6
- useMemo,
7
- useRef,
8
- useState,
9
- } from 'react';
10
- import { ChevronLeft, ChevronRight, Plus, X } from 'react-feather';
11
-
12
- import useIsMobile from '../../../Functions/useIsMobile/useIsMobile';
13
- import { compare } from '../../../Functions/utils';
14
-
15
- import './RangeSlider2.scss';
16
-
17
- const COMPONENT_CLASS = 'range-slider2';
18
- const { LEFT_COLLISSION, RIGHT_COLLISION, BOTH_COLLISION, NO_COLLISION }
19
- = Object.freeze({
20
- NO_COLLISION: 0,
21
- LEFT_COLLISSION: -1,
22
- RIGHT_COLLISION: 1,
23
- BOTH_COLLISION: 2,
24
- });
25
- const { ASSIGN_TO_LEFT, ASSIGN_TO_RIGHT } = Object.freeze({
26
- ASSIGN_TO_LEFT: -1,
27
- ASSIGN_TO_RIGHT: 1,
28
- });
29
-
30
- const POINT_VALUE_TYPES = Object.freeze({
31
- FROM: 'from',
32
- TO: 'to',
33
- BOTH: 'both',
34
- });
35
-
36
- export default function RangeSlider2({
37
- min = 300,
38
- max = 850,
39
- minRange = 50,
40
- dividersRange = 50,
41
- pointValueType = POINT_VALUE_TYPES.FROM,
42
- precision = 0,
43
- step = 5,
44
- className,
45
- value = [],
46
- onChange = () => {},
47
- transformDataOnConcat = (d1, d2) => {
48
- return [];
49
- },
50
- }) {
51
- const { isMobile } = useIsMobile();
52
- const [protectedValue, setProtectedValue] = useState([]);
53
-
54
- const trackRef = useRef(null);
55
- const addTriggerRef = useRef(null);
56
-
57
- const [trackWidth, setTrackWidth] = useState(0);
58
- const [trackPosition, setTrackPosition] = useState(0);
59
-
60
- const [mouseTrackPosition, setMouseTrackPosition] = useState(0);
61
-
62
- const prepareValue = (value) => {
63
- return Number.parseInt(Number.parseFloat(value) * 10 ** precision, 10) / 10 ** precision;
64
- };
65
-
66
- const [ranges, setRanges] = useState(value);
67
- const addRange = ({ from, to, label, value, data = [], id = null }) =>
68
- setRanges((ranges) => {
69
- if (!id) {
70
- id = (ranges?.length + 1) * -1;
71
- }
72
-
73
- return [
74
- ...ranges,
75
- {
76
- id,
77
- from,
78
- to,
79
- label,
80
- data,
81
- value: Number.isInteger(value) ? value : 0,
82
- },
83
- ].sort((a, b) => a.from - b.from);
84
- });
85
- const updateRange = ({ from, to, label, value, data, id }) =>
86
- setRanges((ranges) => {
87
- const newRanges = [...ranges];
88
- const range = newRanges?.find(({ id: rangeId }) => rangeId === id);
89
-
90
- if (range) {
91
- range.from = from ?? range?.from;
92
- range.to = to ?? range?.to;
93
- range.label = label ?? range?.label;
94
- range.value
95
- = value !== undefined
96
- ? Number.isInteger(value)
97
- ? value
98
- : 0
99
- : range?.value;
100
- range.data = data !== undefined ? data : range?.data;
101
- }
102
-
103
- return newRanges;
104
- });
105
- const updateRangesByTrigger = (trigger) => {
106
- const newValue = triggers?.find(({ id }) => id === trigger?.id)?.value;
107
- const oldValue = trigger?.value;
108
-
109
- const leftRange = ranges?.find(range => range?.to === oldValue);
110
- const rightRange = ranges?.find(range => range?.from === oldValue + 1);
111
-
112
- if (leftRange && rightRange) {
113
- updateRange({ from: leftRange?.from, to: newValue, id: leftRange?.id });
114
- updateRange({
115
- from: newValue + 1,
116
- to: rightRange?.to,
117
- id: rightRange?.id,
118
- });
119
- }
120
- };
121
- const splitRange = (score) => {
122
- const range = ranges?.find(
123
- ({ from, to }) => from + minRange <= score + 1 && score <= to - minRange,
124
- );
125
- if (!range) return;
126
-
127
- const { value = 0, label, data } = addTriggerFixedRange || {};
128
- addRange({
129
- value: assignValueToRange === ASSIGN_TO_RIGHT ? value : 0,
130
- data: assignValueToRange === ASSIGN_TO_RIGHT ? data : null,
131
- label,
132
- from: score + 1,
133
- to: range?.to,
134
- id: null,
135
- });
136
- updateRange({
137
- ...range,
138
- value: assignValueToRange === ASSIGN_TO_LEFT ? value : 0,
139
- data: assignValueToRange === ASSIGN_TO_LEFT ? data : null,
140
- label,
141
- to: score,
142
- });
143
-
144
- if (isAddTriggerFixed) unfixAddTrigger();
145
- };
146
- const concatRanges = (score) => {
147
- const [left, right] = ranges?.filter(
148
- ({ from, to }) => from === score + 1 || score === to,
149
- );
150
- const { data, value } = transformDataOnConcat(left, right);
151
-
152
- updateRange({ from: left?.from, to: right?.to, id: left?.id, data, value });
153
- removeRange(right?.id);
154
- };
155
- const removeRange = id =>
156
- setRanges(ranges => ranges?.filter(range => range?.id !== id));
157
- const clearRanges = () => setRanges([]);
158
-
159
- const [triggers, setTriggers] = useState([]);
160
- const addTrigger = (
161
- value,
162
- { isFixed = false, isHidden = false } = {},
163
- { withRange = true } = {},
164
- index = triggers.length,
165
- ) =>
166
- setTriggers((state) => {
167
- if (withRange) splitRange(value);
168
-
169
- const newState = [...state];
170
- const id = state?.length
171
- ? Math.max(...state?.map(({ id }) => id)) + 1
172
- : 0;
173
-
174
- newState.splice(index, 0, { id, value, isFixed, isHidden });
175
- return newState.sort((a, b) => (a.value < b.value ? -1 : 1));
176
- });
177
- const updateTrigger = (index, value) =>
178
- setTriggers((state) => {
179
- const newState = [...state];
180
- newState[index] = { ...newState[index], value };
181
- return newState;
182
- });
183
- const removeTrigger = index =>
184
- setTriggers((state) => {
185
- concatRanges(state[index]?.value);
186
-
187
- const newState = [...state];
188
- newState.splice(index, 1);
189
- return newState;
190
- });
191
- const clearTriggers = () => setTriggers([]);
192
- const getTriggerByScore = (score) => {
193
- return triggers?.find(({ value: triggerScore }) => triggerScore === score);
194
- };
195
-
196
- const [movingController, setMovingController] = useState(null);
197
-
198
- const [movingTrigger, setMovingTrigger] = useState(null);
199
- const [movingTriggerIndex, setMovingTriggerIndex] = useState(null);
200
- const [movingTriggerData, setMovingTriggerData] = useState(null);
201
- const [isTriggerMoved, setIsTriggerMoved] = useState(false);
202
- const [isMouseOverTrigger, setIsMouseOverTrigger] = useState(false);
203
- const setMouseOverTrigger = () => setIsMouseOverTrigger(true);
204
- const setMouseLeaveTrigger = () => setIsMouseOverTrigger(false);
205
- const [isMouseOverTrack, setIsMouseOverTrack] = useState(false);
206
- const setMouseOverTrack = () => setIsMouseOverTrack(true);
207
- const setMouseLeaveTrack = () => setIsMouseOverTrack(false);
208
-
209
- const isTriggerMoving = triggerIndex => triggerIndex === movingTriggerIndex;
210
-
211
- const [addTriggerFixedScore, setAddTriggerFixedScore] = useState(null);
212
- const [addTriggerFixedRange, setAddTriggerFixedRange] = useState(null);
213
- const [isAddTriggerFixed, setIsAddTriggerFixed] = useState(false);
214
- const [assignValueToRange, setAssignValueToRange] = useState(ASSIGN_TO_LEFT);
215
- const fixAddTrigger = (score, inRange) => {
216
- setAddTriggerFixedScore(score);
217
- setAddTriggerFixedRange(inRange);
218
- setIsAddTriggerFixed(true);
219
- };
220
- const unfixAddTrigger = (e) => {
221
- e?.stopPropagation();
222
- e?.preventDefault();
223
-
224
- setAddTriggerFixedScore(null);
225
- setAddTriggerFixedRange(null);
226
- setIsAddTriggerFixed(false);
227
- setAssignValueToRange(ASSIGN_TO_LEFT);
228
- };
229
-
230
- const [pointsPerPx, setPointsPerPx] = useState(0);
231
- const countPointsPerPx = (width) => {
232
- return (max - min) / width;
233
- };
234
-
235
- // GETTERS //
236
- const getTrackXByScore = (score) => {
237
- return (score - min) / pointsPerPx;
238
- };
239
- const getScoreByX = (x) => {
240
- let points = (x - trackPosition) * pointsPerPx + min;
241
- points -= points % step;
242
-
243
- if (points < min) points = min;
244
- if (points > max) points = max;
245
-
246
- return points - 1;
247
- };
248
-
249
- const getTriggerCollisionDirection = (index, points) => {
250
- if (index <= 0) return points;
251
-
252
- const [triggerBefore, triggerAfter] = [
253
- triggers?.[index - 1]?.value + minRange - 1,
254
- triggers?.[index + 1]?.value - minRange - 1,
255
- ];
256
-
257
- if (triggerBefore === triggerAfter) return BOTH_COLLISION;
258
- else if (points === triggerBefore) return LEFT_COLLISSION;
259
- else if (points === triggerAfter) return RIGHT_COLLISION;
260
- else return NO_COLLISION;
261
- };
262
- const getTriggerScore = (index, points) => {
263
- if (index <= 0) return points;
264
-
265
- const [triggerBefore, triggerAfter] = [
266
- triggers?.[index - 1]?.value + minRange - 1,
267
- triggers?.[index + 1]?.value - minRange - 1,
268
- ];
269
-
270
- if (points < triggerBefore) return triggerBefore;
271
- else if (points > triggerAfter) return triggerAfter;
272
- else return points;
273
- };
274
-
275
- const getAddTriggerCollisionDirection = (x) => {
276
- const triggerScore = getAddTriggerScore(x);
277
- const inRange = getInRange(triggerScore);
278
-
279
- if (!inRange) return 0;
280
-
281
- const { from, to } = inRange;
282
- const triggerBefore = from + minRange - 1;
283
- const triggerAfter = to - minRange - 1;
284
-
285
- if (triggerBefore === triggerAfter) return BOTH_COLLISION;
286
- else if (triggerScore <= triggerBefore) return LEFT_COLLISSION;
287
- else if (triggerScore >= triggerAfter) return RIGHT_COLLISION;
288
- else return NO_COLLISION;
289
- };
290
- const getAddTriggerPosition = () => {
291
- return isAddTriggerFixed
292
- ? getTrackXByScore(addTriggerFixedScore)
293
- : mouseTrackPosition;
294
- };
295
- const getAddTriggerScore = (x) => {
296
- const score = getScoreByX(x);
297
-
298
- let result = getRangesList()?.reduce((result, { from, to }) => {
299
- if (to - from + 1 <= 2 * minRange && from <= score && score <= to) {
300
- return null;
301
- }
302
-
303
- if (from <= score && score <= from + minRange) {
304
- return from + minRange - 1;
305
- }
306
- else if (to - minRange <= score && score <= to) {
307
- return to - minRange - 1;
308
- }
309
- else {
310
- return result;
311
- }
312
- }, score);
313
-
314
- if (!result) {
315
- const closestRange = getRangesList()
316
- ?.filter(({ from, to }) => to - from + 1 >= 2 * minRange)
317
- ?.reduce((result, range) => {
318
- const distance = Math.abs((range.to + range.from) / 2 - score);
319
- if (!result || distance < result?.distance) {
320
- return {
321
- ...range,
322
- distance,
323
- };
324
- }
325
-
326
- return result;
327
- }, null);
328
-
329
- if (closestRange) {
330
- if (closestRange?.to < score) result = closestRange?.to - minRange - 1;
331
- if (score < closestRange?.from)
332
- result = closestRange?.from + minRange - 1;
333
- }
334
- }
335
-
336
- return result;
337
- };
338
-
339
- const getRangesList = () => {
340
- return triggers
341
- .map(({ value }) => value)
342
- .sort()
343
- .reduce((result, score, i, scores) => {
344
- if (i !== 0) {
345
- result.push({
346
- from: scores[i - 1],
347
- to: score,
348
- });
349
- }
350
- return result;
351
- }, []);
352
- };
353
- const getInRange = (score) => {
354
- return ranges?.find(({ from, to }) => from <= score && score <= to);
355
- };
356
- const getPointValue = (score) => {
357
- switch (pointValueType) {
358
- case POINT_VALUE_TYPES.FROM:
359
- return `${score + 1}`;
360
- case POINT_VALUE_TYPES.TO:
361
- return `${score}`;
362
- case POINT_VALUE_TYPES.BOTH:
363
- default:
364
- return `${score} | ${score + 1}`;
365
- }
366
- };
367
-
368
- // EVENTS //
369
- const onRangeChange = (index, value, validate = true) => {
370
- if (validate) value = prepareValue(value);
371
-
372
- if (isNaN(value)) value = 0;
373
- updateTrigger(index, value);
374
- };
375
- const onTriggerMouseDown = (e, index) => {
376
- setMovingTrigger(e.target);
377
- setMovingTriggerIndex(index);
378
- setMovingTriggerData({ ...triggers[index] });
379
- };
380
- const onTriggerMove = (e) => {
381
- if (e?.cancelable) e?.preventDefault();
382
- e?.stopPropagation();
383
-
384
- if (!movingTriggerIndex || !movingTrigger) {
385
- return false;
386
- }
387
-
388
- if (!isTriggerMoved) setIsTriggerMoved(true);
389
-
390
- const { clientX: x } = e?.touches?.[0] ?? e;
391
- const { width: triggerWidth }
392
- = movingTrigger?.getBoundingClientRect() || {};
393
-
394
- if (x < trackPosition || x > trackPosition + trackWidth + triggerWidth)
395
- return false;
396
-
397
- const triggerPoints = getTriggerScore(movingTriggerIndex, getScoreByX(x));
398
-
399
- onRangeChange(movingTriggerIndex, triggerPoints);
400
- };
401
- const resetMovingTrigger = () => {
402
- setTimeout(() => {
403
- setMovingTrigger(null);
404
- setMovingTriggerIndex(null);
405
- }, 1);
406
- };
407
-
408
- // USE EFFECT'S //
409
- // MouseUp Event Controller
410
- useEffect(() => {
411
- if (isMobile) {
412
- document.addEventListener('touchend', resetMovingTrigger);
413
- }
414
- else {
415
- document.addEventListener('mouseup', resetMovingTrigger);
416
- }
417
-
418
- return () => {
419
- if (isMobile) {
420
- document.removeEventListener('touchend', resetMovingTrigger);
421
- }
422
- else {
423
- document.removeEventListener('mouseup', resetMovingTrigger);
424
- }
425
- };
426
- }, []);
427
- // MouseMove Event Controller
428
- useEffect(() => {
429
- if (!movingTrigger && isTriggerMoved) {
430
- movingController?.abort();
431
- setIsTriggerMoved(false);
432
- setMovingController(null);
433
- }
434
- else if (movingTrigger && !isTriggerMoved) {
435
- setMovingController(new AbortController());
436
- }
437
-
438
- const body = document.getElementsByTagName('body')[0];
439
- body.classList?.[movingTrigger ? 'add' : 'remove']('moving-cursor');
440
- }, [movingTrigger]);
441
-
442
- useEffect(() => {
443
- if (movingController) {
444
- if (isMobile) {
445
- document.addEventListener('touchmove', onTriggerMove, {
446
- signal: movingController?.signal,
447
- });
448
- }
449
- else {
450
- document.addEventListener('mousemove', onTriggerMove, {
451
- signal: movingController?.signal,
452
- });
453
- }
454
- }
455
-
456
- return () => {
457
- if (isMobile) {
458
- document.removeEventListener('touchmove', onTriggerMove, {
459
- signal: movingController?.signal,
460
- passive: false,
461
- });
462
- }
463
- else {
464
- document.removeEventListener('mousemove', onTriggerMove, {
465
- signal: movingController?.signal,
466
- });
467
- }
468
- };
469
- }, [movingController]);
470
- useLayoutEffect(() => {
471
- const { width, x } = trackRef?.current?.getBoundingClientRect() || {};
472
-
473
- setPointsPerPx(countPointsPerPx(width));
474
- setTrackWidth(width);
475
- setTrackPosition(x);
476
- }, [trackRef]);
477
- useEffect(() => {
478
- onChange(ranges, triggers);
479
- }, [ranges]);
480
- useEffect(() => {
481
- clearRanges();
482
- clearTriggers();
483
-
484
- if (protectedValue?.length === 0) {
485
- addRange({ from: min, to: max });
486
- addTrigger(min, { isFixed: true, isHidden: true });
487
- addTrigger(max, { isFixed: true, isHidden: true });
488
- }
489
- else {
490
- protectedValue
491
- ?.reduce((result, range) => {
492
- addRange({ ...range });
493
-
494
- if (!result.find(score => score === range?.from))
495
- result.splice(result?.length - 1, 0, range?.from);
496
- if (!result.find(score => score === range?.to))
497
- result.splice(result?.length - 1, 0, range?.to);
498
- return result;
499
- }, [])
500
- ?.sort((a, b) => (a < b ? -1 : 1))
501
- ?.filter((item, i, arr) => i === 0 || item - 1 !== arr[i - 1])
502
- ?.map((score, i, triggers) => {
503
- if (i === 0 || score - 1 !== triggers[i - 1]) {
504
- const isExtremum = score === min || score === max;
505
-
506
- addTrigger(
507
- score,
508
- { isFixed: isExtremum, isHidden: isExtremum },
509
- { withRange: false },
510
- );
511
- }
512
- });
513
- }
514
- }, [protectedValue]);
515
- useEffect(() => {
516
- if (!compare(value, protectedValue)) {
517
- setProtectedValue(value);
518
- }
519
- }, [value]);
520
- useEffect(() => {
521
- if (!movingTriggerIndex && movingTriggerData) {
522
- updateRangesByTrigger({ ...movingTriggerData });
523
- setMovingTriggerData(null);
524
- }
525
- }, [movingTriggerIndex]);
526
-
527
- // RENDER //
528
- const renderCollision = ({
529
- isCollisionVisible,
530
- isLeftCollision,
531
- isRightCollision,
532
- isBothCollision,
533
- className,
534
- }) => {
535
- const pieces = Number.parseInt((max - min) / minRange, 10);
536
- const { width: trackWidth }
537
- = trackRef?.current?.getBoundingClientRect() ?? {};
538
- const collisionWidth = trackWidth / pieces - 4;
539
-
540
- const width = isCollisionVisible
541
- ? isBothCollision
542
- ? collisionWidth * 2
543
- : isLeftCollision || isRightCollision
544
- ? collisionWidth
545
- : 0
546
- : 0;
547
-
548
- return (
549
- <div
550
- className={cn('collision', className, {
551
- 'collision--visible': isCollisionVisible,
552
- 'collision--left': isLeftCollision && !isBothCollision,
553
- 'collision--right': isRightCollision && !isBothCollision,
554
- 'collision--both': isBothCollision,
555
- })}
556
- style={{ width }}
557
- />
558
- );
559
- };
560
- const renderAddTrackTriggerSettings = () => {
561
- const { label, value } = addTriggerFixedRange || {};
562
- return (
563
- <div
564
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings`}
565
- >
566
- <div
567
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body`}
568
- >
569
- <div
570
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-left`}
571
- onClick={(e) => {
572
- e.stopPropagation();
573
- setAssignValueToRange(ASSIGN_TO_LEFT);
574
- }}
575
- attr-is-active={`${assignValueToRange === ASSIGN_TO_LEFT}`}
576
- >
577
- <ChevronLeft />
578
- </div>
579
- <div
580
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--lenders-count`}
581
- >
582
- {label}
583
- {value}
584
- </div>
585
- <div
586
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-right`}
587
- onClick={(e) => {
588
- e.stopPropagation();
589
- setAssignValueToRange(ASSIGN_TO_RIGHT);
590
- }}
591
- attr-is-active={`${assignValueToRange === ASSIGN_TO_RIGHT}`}
592
- >
593
- <ChevronRight />
594
- </div>
595
- </div>
596
- <div
597
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions`}
598
- >
599
- <div
600
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--cancel`}
601
- onClick={e => unfixAddTrigger(e)}
602
- >
603
- Cancel
604
- </div>
605
- <div
606
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--apply`}
607
- onClick={(e) => {
608
- e.stopPropagation();
609
- addTrigger(addTriggerFixedScore);
610
- }}
611
- >
612
- Apply
613
- </div>
614
- </div>
615
- </div>
616
- );
617
- };
618
- const renderAddTrackTrigger = () => {
619
- const isNoTriggers = !triggers?.filter(({ isHidden }) => !isHidden).length;
620
-
621
- const x = getAddTriggerPosition();
622
- const score = isAddTriggerFixed
623
- ? addTriggerFixedScore
624
- : isNoTriggers && !isMouseOverTrack
625
- ? (min + max) / 2 - 1
626
- : getAddTriggerScore(x);
627
-
628
- const triggerCollision = !isAddTriggerFixed
629
- ? getAddTriggerCollisionDirection(x)
630
- : NO_COLLISION;
631
- const isLeftCollision = triggerCollision === LEFT_COLLISSION;
632
- const isRightCollision = triggerCollision === RIGHT_COLLISION;
633
- const isBothCollision = triggerCollision === BOTH_COLLISION;
634
- const isCollisionVisible
635
- = (isLeftCollision || isRightCollision || isBothCollision)
636
- && !(isNoTriggers && !isMouseOverTrack);
637
- const left = getTrackXByScore(score);
638
- const inRange = getInRange(score);
639
-
640
- const isTriggerWithScoreExists = getTriggerByScore(score);
641
-
642
- if (isTriggerWithScoreExists || movingTrigger || isMouseOverTrigger)
643
- return null;
644
-
645
- return (
646
- <div
647
- className={cn(
648
- `${COMPONENT_CLASS}__track__range-triggers--add-trigger`,
649
- {
650
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--fixed`]:
651
- isAddTriggerFixed,
652
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--force-visible`]:
653
- isNoTriggers,
654
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--moved-smoothly`]:
655
- isNoTriggers && !isMouseOverTrack,
656
- },
657
- )}
658
- style={{ left: `${left}px` }}
659
- onClick={() =>
660
- inRange?.value ? fixAddTrigger(score, inRange) : addTrigger(score)}
661
- >
662
- <div
663
- ref={addTriggerRef}
664
- className={cn(
665
- `${COMPONENT_CLASS}__track__range-triggers--add-trigger__point`,
666
- {
667
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger__point--shake`]:
668
- isCollisionVisible,
669
- },
670
- )}
671
- data-point-value={getPointValue(score)}
672
- >
673
- <Plus />
674
- </div>
675
- {isAddTriggerFixed && renderAddTrackTriggerSettings()}
676
- {renderCollision({
677
- isCollisionVisible,
678
- isLeftCollision,
679
- isRightCollision,
680
- isBothCollision,
681
- })}
682
- </div>
683
- );
684
- };
685
- const renderTrackTrigger = (
686
- { value: triggerScore, isFixed, isHidden },
687
- triggerIndex,
688
- ) => {
689
- const triggerCollision = getTriggerCollisionDirection(
690
- triggerIndex,
691
- triggerScore,
692
- );
693
- const isLeftCollision = triggerCollision === LEFT_COLLISSION;
694
- const isRightCollision = triggerCollision === RIGHT_COLLISION;
695
- const isBothCollision = triggerCollision === BOTH_COLLISION;
696
- const isCurrentTriggerMoving = isTriggerMoving(triggerIndex);
697
- const isCollisionVisible
698
- = isCurrentTriggerMoving
699
- && isTriggerMoved
700
- && (isLeftCollision || isRightCollision || isBothCollision);
701
- return (
702
- <div
703
- key={`${COMPONENT_CLASS}__track__range-triggers--trigger-${triggerIndex}`}
704
- style={{
705
- left: getTrackXByScore(triggerScore).toString().concat('px'),
706
- }}
707
- className={cn(`${COMPONENT_CLASS}__track__range-triggers--trigger`, {
708
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__moving`]:
709
- isCurrentTriggerMoving,
710
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__fixed`]:
711
- isFixed,
712
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__hidden`]:
713
- isHidden,
714
- })}
715
- {...(isMobile
716
- ? {}
717
- : {
718
- onMouseOver: setMouseOverTrigger,
719
- onMouseLeave: setMouseLeaveTrigger,
720
- })}
721
- >
722
- <div
723
- className={cn(
724
- `${COMPONENT_CLASS}__track__range-triggers--trigger__point`,
725
- {
726
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__point--shake`]:
727
- isCollisionVisible,
728
- },
729
- )}
730
- data-point-value={getPointValue(triggerScore)}
731
- {...(isMobile
732
- ? {
733
- onTouchStart: e => onTriggerMouseDown(e, triggerIndex),
734
- onTouchEnd: resetMovingTrigger,
735
- }
736
- : {
737
- onMouseDown: e => onTriggerMouseDown(e, triggerIndex),
738
- onMouseUp: resetMovingTrigger,
739
- })}
740
- />
741
- <div
742
- className={cn(
743
- `${COMPONENT_CLASS}__track__range-triggers--trigger__actions`,
744
- {
745
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__actions--hidden`]:
746
- isCurrentTriggerMoving,
747
- },
748
- )}
749
- >
750
- <div
751
- className={`${COMPONENT_CLASS}__track__range-triggers--trigger__actions--remove`}
752
- onClick={() => removeTrigger(triggerIndex)}
753
- >
754
- <X />
755
- </div>
756
- </div>
757
- {renderCollision({
758
- isCollisionVisible,
759
- isLeftCollision,
760
- isRightCollision,
761
- isBothCollision,
762
- className: `${COMPONENT_CLASS}__track__range-triggers--trigger__collision`,
763
- })}
764
- </div>
765
- );
766
- };
767
- const renderTrackTriggers = () => {
768
- return (
769
- <div className={`${COMPONENT_CLASS}__track__range-triggers`}>
770
- {triggers?.map(renderTrackTrigger)}
771
- </div>
772
- );
773
- };
774
- const renderRangeValue = ({ from, to, label, value }, rangeIndex) => {
775
- if (!value) return null;
776
-
777
- const left = getTrackXByScore((to + from) / 2);
778
-
779
- return (
780
- <div
781
- className={cn(`${COMPONENT_CLASS}__track__ranges-value--item`)}
782
- style={{ left: `${left}px` }}
783
- key={`${COMPONENT_CLASS}__track__ranges-value--item-${rangeIndex}`}
784
- >
785
- <div
786
- className={cn(`${COMPONENT_CLASS}__track__ranges-value--item__label`)}
787
- >
788
- {label}
789
- </div>
790
- <div
791
- className={cn(`${COMPONENT_CLASS}__track__ranges-value--item__value`)}
792
- >
793
- {value}
794
- </div>
795
- </div>
796
- );
797
- };
798
- const renderRangesValue = () => {
799
- return (
800
- <div className={cn(`${COMPONENT_CLASS}__track__ranges-value`)}>
801
- {ranges?.map(renderRangeValue)}
802
- </div>
803
- );
804
- };
805
- const renderTrackDividers = useMemo(() => {
806
- const renderTrackDivider = (key = 0) => (
807
- <div
808
- key={key}
809
- className={`${COMPONENT_CLASS}__track__line__dividers--item`}
810
- />
811
- );
812
-
813
- const dividersCount = Number.parseInt((max - min) / dividersRange, 10);
814
- const dividers = [];
815
-
816
- for (let i = 0; i < dividersCount; ++i)
817
- dividers.push(renderTrackDivider(i));
818
-
819
- return (
820
- <div className={`${COMPONENT_CLASS}__track__line__dividers`}>
821
- {dividers}
822
- </div>
823
- );
824
- }, [trackRef, minRange, min, max]);
825
- const renderTrackLine = () => {
826
- return (
827
- <div className={`${COMPONENT_CLASS}__track__line`}>
828
- <div className={`${COMPONENT_CLASS}__track__line__extremum--min`}>
829
- {min}
830
- </div>
831
- {renderTrackDividers}
832
- <div className={`${COMPONENT_CLASS}__track__line__extremum--max`}>
833
- {max}
834
- </div>
835
- </div>
836
- );
837
- };
838
- const renderTrack = () => {
839
- return (
840
- <div
841
- className={cn(`${COMPONENT_CLASS}__track`, className)}
842
- ref={trackRef}
843
- >
844
- {renderTrackLine()}
845
- {renderAddTrackTrigger()}
846
- {renderTrackTriggers()}
847
- {renderRangesValue()}
848
- </div>
849
- );
850
- };
851
- const render = () => {
852
- return (
853
- <div
854
- className={COMPONENT_CLASS}
855
- onMouseOver={setMouseOverTrack}
856
- onMouseLeave={setMouseLeaveTrack}
857
- onMouseMove={e => setMouseTrackPosition(e?.clientX)}
858
- >
859
- {renderTrack()}
860
- </div>
861
- );
862
- };
863
-
864
- return render();
865
- }
1
+ function n(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=Array(t);r<t;r++)e[r]=n[r];return e}function t(n,t,r){return t in n?Object.defineProperty(n,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[t]=r,n}function r(n){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{},i=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(e).filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),i.forEach(function(r){t(n,r,e[r])})}return n}function e(n,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(n,t){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);r.push.apply(r,e)}return r})(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))}),n}function i(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var r,e,i=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(n);!(l=(r=i.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(n){a=!0,e=n}finally{try{l||null==i.return||i.return()}finally{if(a)throw e}}return o}}(n,t)||l(n,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||l(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,r){if(t){if("string"==typeof t)return n(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if("Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return n(t,r)}}import{jsx as a,jsxs as u}from"react/jsx-runtime";import c from"classnames";import{useEffect as d,useLayoutEffect as s,useMemo as v,useRef as f,useState as _}from"react";import{ChevronLeft as g,ChevronRight as m,Plus as p,X as h}from"react-feather";import b from"../../../Functions/useIsMobile/useIsMobile";import{compare as O}from"../../../Functions/utils";import"./RangeSlider2.scss";var y="range-slider2",N=Object.freeze({NO_COLLISION:0,LEFT_COLLISSION:-1,RIGHT_COLLISION:1,BOTH_COLLISION:2}),k=N.LEFT_COLLISSION,I=N.RIGHT_COLLISION,C=N.BOTH_COLLISION,L=N.NO_COLLISION,S=Object.freeze({ASSIGN_TO_LEFT:-1,ASSIGN_TO_RIGHT:1}),T=S.ASSIGN_TO_LEFT,j=S.ASSIGN_TO_RIGHT,w=Object.freeze({FROM:"from",TO:"to",BOTH:"both"});export default function x(n){var l,N,S,x,M,E,R,F,P,A,H,B=n.min,D=void 0===B?300:B,G=n.max,V=void 0===G?850:G,z=n.minRange,U=void 0===z?50:z,X=n.dividersRange,$=void 0===X?50:X,q=n.pointValueType,J=void 0===q?w.FROM:q,K=n.precision,Q=void 0===K?0:K,W=n.step,Y=void 0===W?5:W,Z=n.className,nn=n.value,nt=void 0===nn?[]:nn,nr=n.onChange,ne=void 0===nr?function(){}:nr,ni=n.transformDataOnConcat,no=void 0===ni?function(n,t){return[]}:ni,nl=b().isMobile,na=i(_([]),2),nu=na[0],nc=na[1],nd=f(null),ns=f(null),nv=i(_(0),2),nf=nv[0],n_=nv[1],ng=i(_(0),2),nm=ng[0],np=ng[1],nh=i(_(0),2),nb=nh[0],nO=nh[1],ny=i(_(nt),2),nN=ny[0],nk=ny[1],nI=function(n){var t=n.from,r=n.to,e=n.label,i=n.value,l=n.data,a=void 0===l?[]:l,u=n.id,c=void 0===u?null:u;return nk(function(n){return c||(c=-(((null==n?void 0:n.length)+1)*1)),o(n).concat([{id:c,from:t,to:r,label:e,data:a,value:Number.isInteger(i)?i:0}]).sort(function(n,t){return n.from-t.from})})},nC=function(n){var t=n.from,r=n.to,e=n.label,i=n.value,l=n.data,a=n.id;return nk(function(n){var u=o(n),c=null==u?void 0:u.find(function(n){return n.id===a});return c&&(c.from=null!=t?t:null==c?void 0:c.from,c.to=null!=r?r:null==c?void 0:c.to,c.label=null!=e?e:null==c?void 0:c.label,c.value=void 0!==i?Number.isInteger(i)?i:0:null==c?void 0:c.value,c.data=void 0!==l?l:null==c?void 0:c.data),u})},nL=function(n){var t,r=null==nx||null==(t=nx.find(function(t){return t.id===(null==n?void 0:n.id)}))?void 0:t.value,e=null==n?void 0:n.value,i=null==nN?void 0:nN.find(function(n){return(null==n?void 0:n.to)===e}),o=null==nN?void 0:nN.find(function(n){return(null==n?void 0:n.from)===e+1});i&&o&&(nC({from:null==i?void 0:i.from,to:r,id:null==i?void 0:i.id}),nC({from:r+1,to:null==o?void 0:o.to,id:null==o?void 0:o.id}))},nS=function(n){var t=null==nN?void 0:nN.find(function(t){var r=t.from,e=t.to;return r+U<=n+1&&n<=e-U});if(t){var i=n6||{},o=i.value,l=void 0===o?0:o,a=i.label,u=i.data;nI({value:te===j?l:0,data:te===j?u:null,label:a,from:n+1,to:null==t?void 0:t.to,id:null}),nC(e(r({},t),{value:te===T?l:0,data:te===T?u:null,label:a,to:n})),tn&&tl()}},nT=function(n){var t=i(null==nN?void 0:nN.filter(function(t){var r=t.from,e=t.to;return r===n+1||n===e}),2),r=t[0],e=t[1],o=no(r,e),l=o.data,a=o.value;nC({from:null==r?void 0:r.from,to:null==e?void 0:e.to,id:null==r?void 0:r.id,data:l,value:a}),nj(null==e?void 0:e.id)},nj=function(n){return nk(function(t){return null==t?void 0:t.filter(function(t){return(null==t?void 0:t.id)!==n})})},nw=i(_([]),2),nx=nw[0],nM=nw[1],nE=function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.isFixed,e=void 0!==r&&r,i=t.isHidden,l=void 0!==i&&i,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=a.withRange,c=void 0===u||u,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:nx.length;return nM(function(t){c&&nS(n);var r,i=o(t),a=(null==t?void 0:t.length)?(r=Math).max.apply(r,o(null==t?void 0:t.map(function(n){return n.id})))+1:0;return i.splice(d,0,{id:a,value:n,isFixed:e,isHidden:l}),i.sort(function(n,t){return n.value<t.value?-1:1})})},nR=i(_(null),2),nF=nR[0],nP=nR[1],nA=i(_(null),2),nH=nA[0],nB=nA[1],nD=i(_(null),2),nG=nD[0],nV=nD[1],nz=i(_(null),2),nU=nz[0],nX=nz[1],n$=i(_(!1),2),nq=n$[0],nJ=n$[1],nK=i(_(!1),2),nQ=nK[0],nW=nK[1],nY=function(){return nW(!0)},nZ=function(){return nW(!1)},n0=i(_(!1),2),n1=n0[0],n2=n0[1],n3=i(_(null),2),n5=n3[0],n8=n3[1],n4=i(_(null),2),n6=n4[0],n7=n4[1],n9=i(_(!1),2),tn=n9[0],tt=n9[1],tr=i(_(T),2),te=tr[0],ti=tr[1],to=function(n,t){n8(n),n7(t),tt(!0)},tl=function(n){null==n||n.stopPropagation(),null==n||n.preventDefault(),n8(null),n7(null),tt(!1),ti(T)},ta=i(_(0),2),tu=ta[0],tc=ta[1],td=function(n){return(n-D)/tu},ts=function(n){var t=(n-nm)*tu+D;return(t-=t%Y)<D&&(t=D),t>V&&(t=V),t-1},tv=function(n,t){if(n<=0)return t;var r,e,i=[(null==nx||null==(r=nx[n-1])?void 0:r.value)+U-1,(null==nx||null==(e=nx[n+1])?void 0:e.value)-U-1],o=i[0],l=i[1];return o===l?C:t===o?k:t===l?I:L},tf=function(n,t){if(n<=0)return t;var r,e,i=[(null==nx||null==(r=nx[n-1])?void 0:r.value)+U-1,(null==nx||null==(e=nx[n+1])?void 0:e.value)-U-1],o=i[0],l=i[1];return t<o?o:t>l?l:t},t_=function(n){var t=tg(n),r=tp(t);if(!r)return 0;var e=r.from,i=r.to,o=e+U-1,l=i-U-1;return o===l?C:t<=o?k:t>=l?I:L},tg=function(n){var t=ts(n),i=null==(o=tm())?void 0:o.reduce(function(n,r){var e=r.from,i=r.to;return i-e+1<=2*U&&e<=t&&t<=i?null:e<=t&&t<=e+U?e+U-1:i-U<=t&&t<=i?i-U-1:n},t);if(!i){var o,l,a,u=null==(a=tm())||null==(l=a.filter(function(n){var t=n.from;return n.to-t+1>=2*U}))?void 0:l.reduce(function(n,i){var o=Math.abs((i.to+i.from)/2-t);return!n||o<(null==n?void 0:n.distance)?e(r({},i),{distance:o}):n},null);u&&((null==u?void 0:u.to)<t&&(i=(null==u?void 0:u.to)-U-1),t<(null==u?void 0:u.from)&&(i=(null==u?void 0:u.from)+U-1))}return i},tm=function(){return nx.map(function(n){return n.value}).sort().reduce(function(n,t,r,e){return 0!==r&&n.push({from:e[r-1],to:t}),n},[])},tp=function(n){return null==nN?void 0:nN.find(function(t){var r=t.from,e=t.to;return r<=n&&n<=e})},th=function(n){switch(J){case w.FROM:return"".concat(n+1);case w.TO:return"".concat(n);case w.BOTH:default:return"".concat(n," | ").concat(n+1)}},tb=function(n,t){var i,l=!(arguments.length>2)||void 0===arguments[2]||arguments[2];l&&(t=Number.parseInt(Number.parseFloat(t)*Math.pow(10,Q),10)/Math.pow(10,Q)),isNaN(t)&&(t=0),i=t,nM(function(t){var l=o(t);return l[n]=e(r({},l[n]),{value:i}),l})},tO=function(n,t){nB(n.target),nV(t),nX(r({},nx[t]))},ty=function(n){if((null==n?void 0:n.cancelable)&&(null==n||n.preventDefault()),null==n||n.stopPropagation(),!nG||!nH)return!1;nq||nJ(!0);var t,r,e=(null!=(r=null==n||null==(t=n.touches)?void 0:t[0])?r:n).clientX,i=((null==nH?void 0:nH.getBoundingClientRect())||{}).width;if(e<nm||e>nm+nf+i)return!1;var o=tf(nG,ts(e));tb(nG,o)},tN=function(){setTimeout(function(){nB(null),nV(null)},1)};d(function(){return nl?document.addEventListener("touchend",tN):document.addEventListener("mouseup",tN),function(){nl?document.removeEventListener("touchend",tN):document.removeEventListener("mouseup",tN)}},[]),d(function(){var n;!nH&&nq?(null==nF||nF.abort(),nJ(!1),nP(null)):nH&&!nq&&nP(new AbortController),null==(n=document.getElementsByTagName("body")[0].classList)||n[nH?"add":"remove"]("moving-cursor")},[nH]),d(function(){return nF&&(nl?document.addEventListener("touchmove",ty,{signal:null==nF?void 0:nF.signal}):document.addEventListener("mousemove",ty,{signal:null==nF?void 0:nF.signal})),function(){nl?document.removeEventListener("touchmove",ty,{signal:null==nF?void 0:nF.signal,passive:!1}):document.removeEventListener("mousemove",ty,{signal:null==nF?void 0:nF.signal})}},[nF]),s(function(){var n,t=(null==nd||null==(n=nd.current)?void 0:n.getBoundingClientRect())||{},r=t.width,e=t.x;tc((V-D)/r),n_(r),np(e)},[nd]),d(function(){ne(nN,nx)},[nN]),d(function(){if(nk([]),nM([]),(null==nu?void 0:nu.length)===0)nI({from:D,to:V}),nE(D,{isFixed:!0,isHidden:!0}),nE(V,{isFixed:!0,isHidden:!0});else{var n,t,e;null==nu||null==(e=nu.reduce(function(n,t){return nI(r({},t)),n.find(function(n){return n===(null==t?void 0:t.from)})||n.splice((null==n?void 0:n.length)-1,0,null==t?void 0:t.from),n.find(function(n){return n===(null==t?void 0:t.to)})||n.splice((null==n?void 0:n.length)-1,0,null==t?void 0:t.to),n},[]))||null==(t=e.sort(function(n,t){return n<t?-1:1}))||null==(n=t.filter(function(n,t,r){return 0===t||n-1!==r[t-1]}))||n.map(function(n,t,r){if(0===t||n-1!==r[t-1]){var e=n===D||n===V;nE(n,{isFixed:e,isHidden:e},{withRange:!1})}})}},[nu]),d(function(){O(nt,nu)||nc(nt)},[nt]),d(function(){!nG&&nU&&(nL(r({},nU)),nX(null))},[nG]);var tk=function(n){var t,r,e=n.isCollisionVisible,i=n.isLeftCollision,o=n.isRightCollision,l=n.isBothCollision,u=n.className,d=Number.parseInt((V-D)/U,10),s=(null!=(r=null==nd||null==(t=nd.current)?void 0:t.getBoundingClientRect())?r:{}).width/d-4,v=e?l?2*s:i||o?s:0:0;return a("div",{className:c("collision",u,{"collision--visible":e,"collision--left":i&&!l,"collision--right":o&&!l,"collision--both":l}),style:{width:v}})},tI=function(){var n=n6||{},t=n.label,r=n.value;return u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings"),children:[u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body"),children:[a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body--assign-left"),onClick:function(n){n.stopPropagation(),ti(T)},"attr-is-active":"".concat(te===T),children:a(g,{})}),u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body--lenders-count"),children:[t,r]}),a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body--assign-right"),onClick:function(n){n.stopPropagation(),ti(j)},"attr-is-active":"".concat(te===j),children:a(m,{})})]}),u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-actions"),children:[a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-actions--cancel"),onClick:function(n){return tl(n)},children:"Cancel"}),a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-actions--apply"),onClick:function(n){n.stopPropagation(),nE(n5)},children:"Apply"})]})]})},tC=v(function(){for(var n=Number.parseInt((V-D)/$,10),t=[],r=0;r<n;++r)t.push(function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return a("div",{className:"".concat(y,"__track__line__dividers--item")},n)}(r));return a("div",{className:"".concat(y,"__track__line__dividers"),children:t})},[nd,U,D,V]);return a("div",{className:y,onMouseOver:function(){return n2(!0)},onMouseLeave:function(){return n2(!1)},onMouseMove:function(n){return nO(null==n?void 0:n.clientX)},children:u("div",{className:c("".concat(y,"__track"),Z),ref:nd,children:[u("div",{className:"".concat(y,"__track__line"),children:[a("div",{className:"".concat(y,"__track__line__extremum--min"),children:D}),tC,a("div",{className:"".concat(y,"__track__line__extremum--max"),children:V})]}),(N=!(null==nx?void 0:nx.filter(function(n){return!n.isHidden}).length),S=tn?td(n5):nb,x=tn?n5:N&&!n1?(D+V)/2-1:tg(S),E=(M=tn?L:t_(S))===k,R=M===I,F=M===C,P=(E||R||F)&&!(N&&!n1),A=td(x),H=tp(x),(null==nx?void 0:nx.find(function(n){return n.value===x}))||nH||nQ?null:u("div",{className:c("".concat(y,"__track__range-triggers--add-trigger"),(t(l={},"".concat(y,"__track__range-triggers--add-trigger--fixed"),tn),t(l,"".concat(y,"__track__range-triggers--add-trigger--force-visible"),N),t(l,"".concat(y,"__track__range-triggers--add-trigger--moved-smoothly"),N&&!n1),l)),style:{left:"".concat(A,"px")},onClick:function(){return(null==H?void 0:H.value)?to(x,H):nE(x)},children:[a("div",{ref:ns,className:c("".concat(y,"__track__range-triggers--add-trigger__point"),t({},"".concat(y,"__track__range-triggers--add-trigger__point--shake"),P)),"data-point-value":th(x),children:a(p,{})}),tn&&tI(),tk({isCollisionVisible:P,isLeftCollision:E,isRightCollision:R,isBothCollision:F})]})),a("div",{className:"".concat(y,"__track__range-triggers"),children:null==nx?void 0:nx.map(function(n,i){var l,d=n.value,s=n.isFixed,v=n.isHidden,f=tv(i,d),_=f===k,g=f===I,m=f===C,p=i===nG,b=p&&nq&&(_||g||m);return u("div",e(r({style:{left:td(d).toString().concat("px")},className:c("".concat(y,"__track__range-triggers--trigger"),(t(l={},"".concat(y,"__track__range-triggers--trigger__moving"),p),t(l,"".concat(y,"__track__range-triggers--trigger__fixed"),s),t(l,"".concat(y,"__track__range-triggers--trigger__hidden"),v),l))},nl?{}:{onMouseOver:nY,onMouseLeave:nZ}),{children:[a("div",r({className:c("".concat(y,"__track__range-triggers--trigger__point"),t({},"".concat(y,"__track__range-triggers--trigger__point--shake"),b)),"data-point-value":th(d)},nl?{onTouchStart:function(n){return tO(n,i)},onTouchEnd:tN}:{onMouseDown:function(n){return tO(n,i)},onMouseUp:tN})),a("div",{className:c("".concat(y,"__track__range-triggers--trigger__actions"),t({},"".concat(y,"__track__range-triggers--trigger__actions--hidden"),p)),children:a("div",{className:"".concat(y,"__track__range-triggers--trigger__actions--remove"),onClick:function(){return nM(function(n){nT(null==(t=n[i])?void 0:t.value);var t,r=o(n);return r.splice(i,1),r})},children:a(h,{})})}),tk({isCollisionVisible:b,isLeftCollision:_,isRightCollision:g,isBothCollision:m,className:"".concat(y,"__track__range-triggers--trigger__collision")})]}),"".concat(y,"__track__range-triggers--trigger-").concat(i))})}),a("div",{className:c("".concat(y,"__track__ranges-value")),children:null==nN?void 0:nN.map(function(n,t){var r=n.from,e=n.to,i=n.label,o=n.value;if(!o)return null;var l=td((e+r)/2);return u("div",{className:c("".concat(y,"__track__ranges-value--item")),style:{left:"".concat(l,"px")},children:[a("div",{className:c("".concat(y,"__track__ranges-value--item__label")),children:i}),a("div",{className:c("".concat(y,"__track__ranges-value--item__value")),children:o})]},"".concat(y,"__track__ranges-value--item-").concat(t))})})]})})}