intelicoreact 1.6.22 → 1.6.24

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 (275) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +98 -1
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +48 -1
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +249 -1
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +4 -1
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +65 -1
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +52 -1
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +424 -1
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +4 -1
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +173 -1
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +4 -1
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +735 -1
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +20 -1
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +529 -1
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +94 -1
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +105 -1
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +67 -1
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +247 -1
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +160 -1
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +193 -1
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +135 -1
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +116 -1
  22. package/dist/Atomic/FormElements/Input/Input.js +467 -1
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +161 -1
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +64 -1
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +200 -1
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +354 -1
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +71 -1
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +693 -1
  29. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +254 -1
  30. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +32 -1
  31. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +200 -1
  32. package/dist/Atomic/FormElements/InputLink/InputLink.js +99 -1
  33. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +37 -1
  34. package/dist/Atomic/FormElements/InputMask/InputMask.js +1214 -1
  35. package/dist/Atomic/FormElements/InputMask/config.js +15 -1
  36. package/dist/Atomic/FormElements/InputMask/functions.js +58 -1
  37. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +674 -1
  38. package/dist/Atomic/FormElements/InputMask2/config.js +15 -1
  39. package/dist/Atomic/FormElements/InputMask2/functions.js +58 -1
  40. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +766 -1
  41. package/dist/Atomic/FormElements/InputMask3/config.js +15 -1
  42. package/dist/Atomic/FormElements/InputMask3/functions.js +58 -1
  43. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +114 -1
  44. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +140 -1
  45. package/dist/Atomic/FormElements/Label/Label.js +87 -1
  46. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +506 -1
  47. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +45 -1
  48. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +331 -1
  49. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +66 -1
  50. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +80 -1
  51. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +57 -1
  52. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +54 -1
  53. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +183 -1
  54. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +222 -1
  55. package/dist/Atomic/FormElements/RangeList/RangeList.js +175 -1
  56. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +43 -1
  57. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +443 -1
  58. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +858 -1
  59. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +39 -1
  60. package/dist/Atomic/FormElements/Switcher/Switcher.js +59 -1
  61. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +50 -1
  62. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +44 -1
  63. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +100 -1
  64. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +52 -1
  65. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +64 -1
  66. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +170 -1
  67. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +202 -1
  68. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +67 -1
  69. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +115 -1
  70. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.ts +2 -2
  71. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1110 -1
  72. package/dist/Atomic/FormElements/Text/Text.js +125 -1
  73. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +49 -1
  74. package/dist/Atomic/FormElements/Textarea/Textarea.js +80 -1
  75. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +176 -1
  76. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +62 -1
  77. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +119 -1
  78. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +188 -1
  79. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +83 -1
  80. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +82 -1
  81. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +101 -1
  82. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +29 -1
  83. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +113 -1
  84. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +30 -1
  85. package/dist/Atomic/Layout/Header/Header.js +85 -1
  86. package/dist/Atomic/Layout/Spinner/Spinner.js +44 -1
  87. package/dist/Atomic/UI/Accordion/Accordion.js +108 -1
  88. package/dist/Atomic/UI/Accordion/AccordionItem.js +176 -1
  89. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +238 -1
  90. package/dist/Atomic/UI/AccordionText/AccordionText.js +69 -1
  91. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +207 -1
  92. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +56 -1
  93. package/dist/Atomic/UI/Alert/Alert.js +72 -1
  94. package/dist/Atomic/UI/Arrow/Arrow.js +132 -1
  95. package/dist/Atomic/UI/Box/Box.js +52 -1
  96. package/dist/Atomic/UI/Button/Button.js +47 -1
  97. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +72 -1
  98. package/dist/Atomic/UI/Chart/Chart.js +172 -1
  99. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +95 -1
  100. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +80 -1
  101. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +188 -1
  102. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +335 -1
  103. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +43 -1
  104. package/dist/Atomic/UI/Chart/partial/utils.js +60 -1
  105. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +109 -1
  106. package/dist/Atomic/UI/DateTime/DateTime.js +57 -1
  107. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +44 -1
  108. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +15 -1
  109. package/dist/Atomic/UI/DoubleString/DoubleString.js +102 -1
  110. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +70 -1
  111. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +221 -1
  112. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +106 -1
  113. package/dist/Atomic/UI/Hint/Hint.js +256 -1
  114. package/dist/Atomic/UI/Hint/partials/_utils.js +64 -1
  115. package/dist/Atomic/UI/Modal/Modal.js +179 -1
  116. package/dist/Atomic/UI/Modal/ModalHOC.js +97 -1
  117. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +71 -1
  118. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +110 -1
  119. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +192 -1
  120. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +75 -1
  121. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +80 -1
  122. package/dist/Atomic/UI/NavLine/NavLine.js +317 -1
  123. package/dist/Atomic/UI/PageTitle/PageTitle.js +77 -1
  124. package/dist/Atomic/UI/PieChart/PieChart.js +42 -1
  125. package/dist/Atomic/UI/Price/Price.js +31 -1
  126. package/dist/Atomic/UI/PriceRange/PriceRange.js +44 -1
  127. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +98 -1
  128. package/dist/Atomic/UI/Status/Status.js +67 -1
  129. package/dist/Atomic/UI/Table/Partials/TdCell.js +87 -1
  130. package/dist/Atomic/UI/Table/Partials/TdHeader.js +38 -1
  131. package/dist/Atomic/UI/Table/Partials/TdRow.js +99 -1
  132. package/dist/Atomic/UI/Table/Partials/TdTitle.js +52 -1
  133. package/dist/Atomic/UI/Table/Table.js +63 -1
  134. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +80 -1
  135. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +28 -1
  136. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +13 -1
  137. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +53 -1
  138. package/dist/Atomic/UI/Tag/Tag.js +167 -1
  139. package/dist/Atomic/UI/TagList/TagList.js +251 -1
  140. package/dist/Atomic/UI/UserBox/UserBox.js +86 -1
  141. package/dist/Atomic/UI/WizardStepper/constructor.js +84 -1
  142. package/dist/Atomic/UI/WizardStepper/index.js +3 -1
  143. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +37 -1
  144. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +3 -1
  145. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +61 -1
  146. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +3 -1
  147. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +39 -1
  148. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +3 -1
  149. package/dist/Atomic/UI/WizardStepper/ui/icons.js +49 -1
  150. package/dist/Atomic/UI/WizardStepper/ui/index.js +3 -1
  151. package/dist/Classes/AbortableFetch.js +454 -1
  152. package/dist/Classes/AnimatedHandler.js +47 -1
  153. package/dist/Classes/RESTAPI/index.js +228 -1
  154. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +457 -1
  155. package/dist/Classes/RESTAPI/partials/ApiBase.js +48 -1
  156. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +112 -1
  157. package/dist/Classes/RESTAPI/partials/ApiUtils.js +189 -1
  158. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +252 -1
  159. package/dist/Classes/RESTAPI/partials/Utils.js +92 -1
  160. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +3 -1
  161. package/dist/Classes/RESTAPI/partials/_utils.js +197 -1
  162. package/dist/Constants/index.constants.js +78 -1
  163. package/dist/Functions/Portal.js +22 -1
  164. package/dist/Functions/customEventListener.js +96 -1
  165. package/dist/Functions/dateTime.js +149 -1
  166. package/dist/Functions/fieldValueFormatters.js +405 -1
  167. package/dist/Functions/guards/assertions.js +294 -1
  168. package/dist/Functions/guards/safeValue.js +75 -1
  169. package/dist/Functions/guards/typeGuards.js +373 -1
  170. package/dist/Functions/hooks/useFormFieldsChangesManager.js +95 -1
  171. package/dist/Functions/locale/createTranslator.js +32 -1
  172. package/dist/Functions/operations.js +130 -1
  173. package/dist/Functions/presets/inputMaskPresets.js +170 -1
  174. package/dist/Functions/presets/inputPresets.js +60 -1
  175. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +45 -1
  176. package/dist/Functions/schemas.js +31 -1
  177. package/dist/Functions/useBodyScrollLock.js +17 -1
  178. package/dist/Functions/useClickOutside.js +15 -1
  179. package/dist/Functions/useDebounce.js +17 -1
  180. package/dist/Functions/useFieldFocus.js +84 -1
  181. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +39 -1
  182. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +159 -1
  183. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +78 -1
  184. package/dist/Functions/useFormTools/functions/General.js +134 -1
  185. package/dist/Functions/useFormTools/functions/RenderFields.js +111 -1
  186. package/dist/Functions/useFormTools/functions/usePrevious.js +12 -1
  187. package/dist/Functions/useFormTools/index.js +778 -1
  188. package/dist/Functions/useInputHighlightError.js +67 -1
  189. package/dist/Functions/useIsMobile/useIsMobile.js +33 -1
  190. package/dist/Functions/useKeyPress/useHandleKeyPress.js +52 -1
  191. package/dist/Functions/useKeyPress/useKeyPress.js +52 -1
  192. package/dist/Functions/useLocalStorage.js +34 -1
  193. package/dist/Functions/useLocationParams.js +27 -1
  194. package/dist/Functions/useMediaQuery.js +17 -1
  195. package/dist/Functions/useMetaInfo.js +43 -1
  196. package/dist/Functions/useMouseUpOutside.js +16 -1
  197. package/dist/Functions/useOnlineStatus.js +29 -1
  198. package/dist/Functions/usePasswordChecker.js +110 -1
  199. package/dist/Functions/usePrevious.js +12 -1
  200. package/dist/Functions/useResize.js +31 -1
  201. package/dist/Functions/useScrollTo.js +17 -1
  202. package/dist/Functions/useToggle.js +17 -1
  203. package/dist/Functions/utils.js +522 -1
  204. package/dist/Langs.js +168 -1
  205. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +21 -1
  206. package/dist/Molecular/CustomIcons/components/AlertCircle.js +23 -1
  207. package/dist/Molecular/CustomIcons/components/AppStore.js +29 -1
  208. package/dist/Molecular/CustomIcons/components/Arrow.js +32 -1
  209. package/dist/Molecular/CustomIcons/components/ArrowDown.js +17 -1
  210. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +22 -1
  211. package/dist/Molecular/CustomIcons/components/ArrowRight.js +22 -1
  212. package/dist/Molecular/CustomIcons/components/ArrowUp.js +17 -1
  213. package/dist/Molecular/CustomIcons/components/Bell.js +15 -1
  214. package/dist/Molecular/CustomIcons/components/Button.js +12 -1
  215. package/dist/Molecular/CustomIcons/components/Campaigns.js +16 -1
  216. package/dist/Molecular/CustomIcons/components/Check.js +14 -1
  217. package/dist/Molecular/CustomIcons/components/Check2.js +12 -1
  218. package/dist/Molecular/CustomIcons/components/ChevronDown.js +12 -1
  219. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +11 -1
  220. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +11 -1
  221. package/dist/Molecular/CustomIcons/components/ChevronRight.js +11 -1
  222. package/dist/Molecular/CustomIcons/components/ChevronUp.js +11 -1
  223. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +27 -1
  224. package/dist/Molecular/CustomIcons/components/Close.js +14 -1
  225. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +17 -1
  226. package/dist/Molecular/CustomIcons/components/Delete.js +16 -1
  227. package/dist/Molecular/CustomIcons/components/Edit.js +15 -1
  228. package/dist/Molecular/CustomIcons/components/Email.js +31 -1
  229. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +18 -1
  230. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +35 -1
  231. package/dist/Molecular/CustomIcons/components/Flows.js +15 -1
  232. package/dist/Molecular/CustomIcons/components/Gift.js +25 -1
  233. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +29 -1
  234. package/dist/Molecular/CustomIcons/components/GooglePlay.js +29 -1
  235. package/dist/Molecular/CustomIcons/components/HelpCircle.js +19 -1
  236. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +20 -1
  237. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +19 -1
  238. package/dist/Molecular/CustomIcons/components/Home.js +16 -1
  239. package/dist/Molecular/CustomIcons/components/Home2.js +22 -1
  240. package/dist/Molecular/CustomIcons/components/Key.js +23 -1
  241. package/dist/Molecular/CustomIcons/components/Landers.js +20 -1
  242. package/dist/Molecular/CustomIcons/components/Lock.js +15 -1
  243. package/dist/Molecular/CustomIcons/components/Mail.js +26 -1
  244. package/dist/Molecular/CustomIcons/components/Mastercard.js +73 -1
  245. package/dist/Molecular/CustomIcons/components/Minus.js +25 -1
  246. package/dist/Molecular/CustomIcons/components/Offers.js +16 -1
  247. package/dist/Molecular/CustomIcons/components/Pause.js +28 -1
  248. package/dist/Molecular/CustomIcons/components/PayPal.js +41 -1
  249. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +28 -1
  250. package/dist/Molecular/CustomIcons/components/Phone.js +30 -1
  251. package/dist/Molecular/CustomIcons/components/Play.js +25 -1
  252. package/dist/Molecular/CustomIcons/components/Plus.js +25 -1
  253. package/dist/Molecular/CustomIcons/components/Profile.js +16 -1
  254. package/dist/Molecular/CustomIcons/components/QRCode.js +29 -1
  255. package/dist/Molecular/CustomIcons/components/Rectangle.js +12 -1
  256. package/dist/Molecular/CustomIcons/components/Revert.js +13 -1
  257. package/dist/Molecular/CustomIcons/components/Star.js +14 -1
  258. package/dist/Molecular/CustomIcons/components/Star2.js +16 -1
  259. package/dist/Molecular/CustomIcons/components/TrafficSources.js +14 -1
  260. package/dist/Molecular/CustomIcons/components/Trash.js +15 -1
  261. package/dist/Molecular/CustomIcons/components/TrashRed.js +15 -1
  262. package/dist/Molecular/CustomIcons/components/Triggers.js +15 -1
  263. package/dist/Molecular/CustomIcons/components/User.js +25 -1
  264. package/dist/Molecular/CustomIcons/components/Visa.js +31 -1
  265. package/dist/Molecular/CustomIcons/components/X.js +12 -1
  266. package/dist/Molecular/CustomIcons/index.js +61 -1
  267. package/dist/Molecular/FormElement/FormElement.js +54 -1
  268. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +184 -1
  269. package/dist/Molecular/FormWithDependOn/partials/_utils.js +53 -1
  270. package/dist/Molecular/InputAddress/InputAddress.js +626 -1
  271. package/dist/Molecular/InputPassword/InputPassword.js +48 -1
  272. package/dist/index.js +104 -1
  273. package/package.json +1 -1
  274. package/dist/Molecular/InputAddress/InputAddress.d.ts +0 -26
  275. package/dist/Molecular/InputAddress/InputAddress.js.map +0 -1
@@ -1 +1,506 @@
1
- function n(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t<e;t++)r[t]=n[t];return r}function e(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,e){var t,r,a=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=a){var o=[],l=!0,i=!1;try{for(a=a.call(n);!(l=(t=a.next()).done)&&(o.push(t.value),!e||o.length!==e);l=!0);}catch(n){i=!0,r=n}finally{try{l||null==a.return||a.return()}finally{if(i)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}}(e,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.")}()}import{jsx as t,jsxs as r}from"react/jsx-runtime";import{useEffect as a,useRef as o,useState as l}from"react";import i from"moment";import{ChevronDown as c,ChevronUp as u}from"react-feather";import"./MobileCalendar.scss";require("../../../Functions/customEventListener");export default function(n){var s,d,m,v=n.min,p=void 0===v?i().subtract("10","years"):v,f=n.max,y=void 0===f?i().add("10","years"):f,h=n.value,b=void 0===h?i():h,_=n.rows,w=void 0===_?5:_,L=n.label,M=n.timeout,I=void 0===M?75:M,N=n.isMobile,g=void 0===N||N,E=n.showSelectedDate,k=n.listItemHeight,S=void 0===k?32:k,x=n.classes,Y=void 0===x?{wrapper:"",label:"",body:"",yearsBlock:"",yearsList:"",yearsListItem:"",monthsBlock:"",monthsList:"",monthsListItem:"",daysBlock:"",daysList:"",daysListItem:"",prevItem:"",nextItem:"",activeItem:""}:x,C=n.onChange,D=void 0===C?function(){}:C,T=n.onMinDateReached,A=void 0===T?function(){}:T,B=n.onMaxDateReached,U=void 0===B?function(){}:B;document.querySelector("body"),document.querySelector(".mobile-calendar_wrapper_body_months-list--item");var j=e(l(b?i(b):i()),2),q=j[0],z=j[1],O=e(l(i(p)),2),R=O[0];O[1];var F=e(l(i(y)),2),H=F[0];F[1];var X=e(l(!1),2),$=(X[0],X[1]),G=e(l(null),2),J=(G[0],G[1]),K=e(l(null),2);K[0],K[1];var P=e(l(null),2),Q=P[0],V=P[1],W=e(l(null),2),Z=W[0],nn=W[1],ne=e(l(null),2),nt=(ne[0],ne[1]),nr=e(l(0),2),na=nr[0],no=nr[1],nl=o(null),ni=o(null),nc=o(null),nu=o(null),ns=o(null),nd=function(n,e){no(e),z(function(t){var r=i(t).add(e,n);return i(r).isBefore(R)?R:i(r).isAfter(H)?H:r}),setTimeout(function(){no(0)},50)},nm=function(n,e){if(!(null==nu?void 0:nu.current))return!1;var t=i(null==nu?void 0:nu.current).add(e,n);return!(i(t).isBefore(R)||i(t).isAfter(H))},nv=function(n,e){$(!0),J({type:n,value:e})},np=function(){$(!1),J(null)},nf=function(n,e){n.preventDefault();var t=n.deltaY,r=window.scrollX,a=window.scrollY;window.scrollTo({top:r,left:a}),nd(e,t<0?-1:1)},ny=function(n,e){n.preventDefault(),(null==ns?void 0:ns.current)&&(clearInterval(null==ns?void 0:ns.current),ns.current=null);var t=n.timeStamp,r=n.changedTouches[0].pageY;V(r),nt(t),nn(e),window.addEventListener("touchend",function(n){return nh(n,r,t,e)},{once:!0})},nh=function(n,e,t,r){var a=n.timeStamp,o=n.changedTouches[0].pageY;Math.abs(e-o)/(a-t)>.65?nb({startY:e,pageY:o,timeStamp:a,startTime:t,touchType:r}):nn(null),V(null)},nb=function(n){var e=n.startY,t=n.pageY,r=n.timeStamp,a=n.startTime,o=n.touchType,l=r-a,i=Math.ceil(Math.abs(e-t)/l),c=Math.ceil(i/2*l/S*i),u=1;ns.current=setInterval(function(){nm(o,e-t<0?-1:1,q)&&u<=c?nd(o,e-t<0?-1:1):(nn(null),clearInterval(null==ns?void 0:ns.current),ns.current=null),++u},I)},n_=function(n,e){for(var t=[],r=(w-1)/2;r>=-((w-1)/2*1);--r)t.push(i(q).subtract(r,n).format(e));return t};a(function(){i(q.format("L")).isBefore(R.format("L"))&&z(R),i(q.format("L")).isAfter(H.format("L"))&&z(H)},[]),a(function(){return document.addEventListener("mouseup",np),function(){document.removeEventListener("mouseup",np)}},[]),a(function(){D(q),nu.current=q,i(q.format("L")).isSame(R.format("L"))&&A(R),i(q.format("L")).isSame(H.format("L"))&&U(H)},[q]),a(function(){if(null==nl?void 0:nl.current){var n,e;null==nl||null==(n=nl.current)||n.addEventListener("mousewheel",function(n){return nf(n,"months")},{passive:!1}),null==nl||null==(e=nl.current)||e.addEventListener("touchstart",function(n){return ny(n,"months")},{passive:!1})}return function(){var n,e;null==nl||null==(n=nl.current)||n.clearEventListeners("mousewheel"),null==nl||null==(e=nl.current)||e.clearEventListeners("touchstart")}},[nl]),a(function(){if(null==ni?void 0:ni.current){var n,e;null==ni||null==(n=ni.current)||n.addEventListener("mousewheel",function(n){return nf(n,"days")},{passive:!1}),null==ni||null==(e=ni.current)||e.addEventListener("touchstart",function(n){return ny(n,"days")},{passive:!1})}return function(){var n,e;null==ni||null==(n=ni.current)||n.clearEventListeners("mousewheel"),null==ni||null==(e=ni.current)||e.clearEventListeners("touchstart")}},[ni]),a(function(){if(null==nc?void 0:nc.current){var n,e;null==nc||null==(n=nc.current)||n.addEventListener("mousewheel",function(n){return nf(n,"years")},{passive:!1}),null==nc||null==(e=nc.current)||e.addEventListener("touchstart",function(n){return ny(n,"years")},{passive:!1})}return function(){var n,e;null==nc||null==(n=nc.current)||n.clearEventListeners("mousewheel"),null==nc||null==(e=nc.current)||e.clearEventListeners("touchstart")}},[nc]);return r("div",{className:"mobile-calendar_wrapper ".concat(null==Y?void 0:Y.wrapper),onTouchMove:function(n){if(Q&&Z){var e=n.timeStamp,t=n.changedTouches[0].pageY,r=Q-t;if(!(Math.abs(r)<S)){var a=r<0?-1:1;no(a),nd(Z,a),V(t),nt(e)}}},children:[t("div",{className:"mobile-calendar_wrapper_label ".concat(null==Y?void 0:Y.label),children:void 0===L?"":L}),void 0!==E&&E&&t("div",{className:"mobile-calendar_wrapper_label ".concat(null==Y?void 0:Y.label),children:i(q).format("LL")}),r("div",{className:"mobile-calendar_wrapper_body ".concat(null==Y?void 0:Y.body),children:[r("div",{className:"mobile-calendar_wrapper_body_months ".concat(null==Y?void 0:Y.monthsBlock),children:[t("div",{className:"mobile-calendar_wrapper_body_months--prev ".concat(null==Y?void 0:Y.prevItem),children:t(u,{onClick:function(){return nd("months",-1)},onMouseDown:function(){return nv("months",-1)},onMouseUp:np})}),r("div",{className:"mobile-calendar_wrapper_body_months-list ".concat(null==Y?void 0:Y.monthsList),ref:nl,children:[(s=(w-1)/2,n_("months","MMMM").map(function(n,e){return t("div",{className:"mobile-calendar_wrapper_body_months-list--item ".concat(e===s?"active":""," ").concat(0===e||e===w-1?"transparent":""," ").concat(null==Y?void 0:Y.monthsListItem," ").concat(e===s?null==Y?void 0:Y.activeItem:""),onClick:Q?null:function(){return e-s==0?{}:nd("months",e-s)},"attr-scroll-direction":"months"===Z?na:0,"attr-is-scrolling":+("months"===Z),children:n},"month-".concat(n))})),g&&t("div",{className:"mobile-calendar_wrapper_body_months-list_touch-zone"})]}),t("div",{className:"mobile-calendar_wrapper_body_months--next ".concat(null==Y?void 0:Y.nextItem),children:t(c,{onClick:function(){return nd("months",1)},onMouseDown:function(){return nv("months",1)},onMouseUp:np})})]}),r("div",{className:"mobile-calendar_wrapper_body_days ".concat(null==Y?void 0:Y.daysBlock),children:[t("div",{className:"mobile-calendar_wrapper_body_days--prev ".concat(null==Y?void 0:Y.prevItem),children:t(u,{onClick:function(){return nd("days",-1)},onMouseDown:function(){return nv("days",-1)},onMouseUp:np})}),r("div",{className:"mobile-calendar_wrapper_body_days-list ".concat(null==Y?void 0:Y.daysList),ref:ni,children:[(d=(w-1)/2,n_("days","D").map(function(n,e){return t("div",{className:"mobile-calendar_wrapper_body_days-list--item ".concat(e===d?"active":""," ").concat(0===e||e===w-1?"transparent":""," ").concat(null==Y?void 0:Y.daysListItem," ").concat(e===d?null==Y?void 0:Y.activeItem:""),onClick:function(){return e-d==0?{}:nd("days",e-d)},"attr-scroll-direction":"days"===Z?na:0,"attr-is-scrolling":+("days"===Z),children:n},"day-".concat(n))})),g&&t("div",{className:"mobile-calendar_wrapper_body_days-list_touch-zone"})]}),t("div",{className:"mobile-calendar_wrapper_body_days--next ".concat(null==Y?void 0:Y.nextItem),children:t(c,{onClick:function(){return nd("days",1)},onMouseDown:function(){return nv("days",1)},onMouseUp:np})})]}),r("div",{className:"mobile-calendar_wrapper_body_years ".concat(null==Y?void 0:Y.yearsBlock),children:[t("div",{className:"mobile-calendar_wrapper_body_years--prev ".concat(null==Y?void 0:Y.prevItem),children:t(u,{onClick:function(){return nd("years",-1)},onMouseDown:function(){return nv("years",-1)},onMouseUp:np})}),r("div",{className:"mobile-calendar_wrapper_body_years-list ".concat(null==Y?void 0:Y.yearsList),ref:nc,children:[(m=(w-1)/2,n_("years","YYYY").map(function(n,e){return t("div",{className:"mobile-calendar_wrapper_body_years-list--item ".concat(e===m?"active":""," ").concat(0===e||e===w-1?"transparent":""," ").concat(null==Y?void 0:Y.yearsListItem," ").concat(e===m?null==Y?void 0:Y.activeItem:""),onClick:function(){return e-m==0?{}:nd("years",e-m)},"attr-scroll-direction":"years"===Z?na:0,"attr-is-scrolling":+("years"===Z),children:n},"year-".concat(n))})),g&&t("div",{className:"mobile-calendar_wrapper_body_years-list_touch-zone"})]}),t("div",{className:"mobile-calendar_wrapper_body_years--next ".concat(null==Y?void 0:Y.nextItem),children:t(c,{onClick:function(){return nd("years",1)},onMouseDown:function(){return nv("years",1)},onMouseUp:np})})]})]})]})}
1
+ import React, { useEffect, useRef, useState } from "react";
2
+
3
+ import moment from "moment";
4
+ import { ChevronDown, ChevronUp } from "react-feather";
5
+
6
+ import "./MobileCalendar.scss";
7
+
8
+ require("../../../Functions/customEventListener");
9
+
10
+ const MobileCalendar = ({
11
+ min = moment().subtract("10", "years"),
12
+ max = moment().add("10", "years"),
13
+ value = moment(),
14
+ rows = 5,
15
+ label = "",
16
+ timeout = 75,
17
+ isMobile = true,
18
+ showSelectedDate = false,
19
+ listItemHeight = 32,
20
+
21
+ classes = {
22
+ wrapper: "",
23
+ label: "",
24
+ body: "",
25
+
26
+ yearsBlock: "",
27
+ yearsList: "",
28
+ yearsListItem: "",
29
+
30
+ monthsBlock: "",
31
+ monthsList: "",
32
+ monthsListItem: "",
33
+
34
+ daysBlock: "",
35
+ daysList: "",
36
+ daysListItem: "",
37
+
38
+ prevItem: "",
39
+ nextItem: "",
40
+ activeItem: "",
41
+ },
42
+ onChange = () => {},
43
+ onMinDateReached = () => {},
44
+ onMaxDateReached = () => {},
45
+ }) => {
46
+ const Body = document.querySelector("body");
47
+ const listItem = document.querySelector(
48
+ ".mobile-calendar_wrapper_body_months-list--item",
49
+ );
50
+
51
+ const [date, setDate] = useState(value ? moment(value) : moment());
52
+ const [minDate, setMinDate] = useState(moment(min));
53
+ const [maxDate, setMaxDate] = useState(moment(max));
54
+
55
+ const [isMouseDown, setIsMouseDown] = useState(false);
56
+ const [mouseDownOn, setMouseDownOn] = useState(null);
57
+ const [changeInterval, setChangeInterval] = useState(null);
58
+
59
+ const [touchY, setTouchY] = useState(null);
60
+ const [touchType, setTouchType] = useState(null);
61
+ const [touchTimestamp, setTouchTimestamp] = useState(null);
62
+
63
+ const [scrollDirection, setScrollDirection] = useState(0);
64
+
65
+ const monthsListRef = useRef(null);
66
+ const daysListRef = useRef(null);
67
+ const yearsListRef = useRef(null);
68
+
69
+ const dateRef = useRef(null);
70
+ const intervalRef = useRef(null);
71
+
72
+ //--HANDLERS--//
73
+ const changeItem = (type, value) => {
74
+ setScrollDirection(value);
75
+ setDate((date) => {
76
+ const newDate = moment(date).add(value, type);
77
+
78
+ if (moment(newDate).isBefore(minDate)) return minDate;
79
+ if (moment(newDate).isAfter(maxDate)) return maxDate;
80
+
81
+ return newDate;
82
+ });
83
+ setTimeout(() => {
84
+ setScrollDirection(0);
85
+ }, 50);
86
+ };
87
+
88
+ const checkAvailability = (type, value) => {
89
+ if (!dateRef?.current) return false;
90
+
91
+ const newDate = moment(dateRef?.current).add(value, type);
92
+
93
+ if (moment(newDate).isBefore(minDate)) return false;
94
+ if (moment(newDate).isAfter(maxDate)) return false;
95
+
96
+ return true;
97
+ };
98
+ const onArrowMouseDown = (type, value) => {
99
+ setIsMouseDown(true);
100
+ setMouseDownOn({ type, value });
101
+ };
102
+ const onArrowMouseUp = () => {
103
+ setIsMouseDown(false);
104
+ setMouseDownOn(null);
105
+ };
106
+ const onWheel = (e, type) => {
107
+ e.preventDefault();
108
+
109
+ const { deltaY } = e;
110
+ const top = window.scrollX;
111
+ const left = window.scrollY;
112
+
113
+ window.scrollTo({ top, left });
114
+
115
+ changeItem(type, deltaY < 0 ? -1 : 1);
116
+ };
117
+ const onTouchStart = (e, type) => {
118
+ e.preventDefault();
119
+
120
+ if (intervalRef?.current) {
121
+ clearInterval(intervalRef?.current);
122
+ intervalRef.current = null;
123
+ }
124
+
125
+ const { timeStamp, changedTouches } = e;
126
+ const { pageY } = changedTouches[0];
127
+
128
+ setTouchY(pageY);
129
+ setTouchTimestamp(timeStamp);
130
+ setTouchType(type);
131
+
132
+ window.addEventListener(
133
+ "touchend",
134
+ (e) => onTouchEnd(e, pageY, timeStamp, type),
135
+ { once: true },
136
+ );
137
+ };
138
+ const onTouchMove = (e) => {
139
+ if (!touchY || !touchType) return;
140
+
141
+ const { timeStamp, changedTouches } = e;
142
+ const { pageY } = changedTouches[0];
143
+
144
+ const deltaY = touchY - pageY;
145
+
146
+ if (Math.abs(deltaY) < listItemHeight) return;
147
+
148
+ const direction = deltaY < 0 ? -1 : 1;
149
+
150
+ setScrollDirection(direction);
151
+
152
+ changeItem(touchType, direction);
153
+ setTouchY(pageY);
154
+ setTouchTimestamp(timeStamp);
155
+ };
156
+ const onTouchEnd = (e, startY, startTime, touchType) => {
157
+ const { timeStamp, changedTouches } = e;
158
+ const { pageY } = changedTouches[0];
159
+
160
+ const path = Math.abs(startY - pageY); //in px
161
+ const time = timeStamp - startTime; //ms
162
+ const pxPerMs = path / time;
163
+
164
+ if (pxPerMs > 0.65)
165
+ innertionScroll({ startY, pageY, timeStamp, startTime, touchType });
166
+ else setTouchType(null);
167
+
168
+ setTouchY(null);
169
+ };
170
+ const innertionScroll = ({
171
+ startY,
172
+ pageY,
173
+ timeStamp,
174
+ startTime,
175
+ touchType,
176
+ }) => {
177
+ const path = Math.abs(startY - pageY); //in px
178
+ const time = timeStamp - startTime; //ms
179
+ const pxPerMs = Math.ceil(path / time); //speed
180
+
181
+ const S = (pxPerMs / 2) * time;
182
+ const blocks = Math.ceil((S / listItemHeight) * pxPerMs);
183
+
184
+ let i = 1;
185
+
186
+ intervalRef.current = setInterval(() => {
187
+ if (
188
+ checkAvailability(touchType, startY - pageY < 0 ? -1 : 1, date) &&
189
+ i <= blocks
190
+ ) {
191
+ changeItem(touchType, startY - pageY < 0 ? -1 : 1);
192
+ } else {
193
+ setTouchType(null);
194
+ clearInterval(intervalRef?.current);
195
+ intervalRef.current = null;
196
+ }
197
+
198
+ ++i;
199
+ }, timeout);
200
+
201
+ // for(let i = 1; i <= blocks; ++i){
202
+ // // timeout = i*pxPerMs+Math.pow(i,2)*10;
203
+ // timeout += 80;
204
+ // if(checkAvailability(touchType, startY-pageY < 0 ? -1 : 1, date)){
205
+ // setTimeout(() => {
206
+ // console.log({timeout})
207
+ // changeItem(touchType, startY-pageY < 0 ? -1 : 1);
208
+ // }, timeout)
209
+ // }
210
+
211
+ // }
212
+ };
213
+
214
+ //--FUNCTIONS--//
215
+ const intervalWorker = () => {
216
+ if (!mouseDownOn) return;
217
+
218
+ const { type, value } = mouseDownOn;
219
+ changeItem(type, value);
220
+ };
221
+ const getList = (type, format) => {
222
+ const list = [];
223
+
224
+ const renderRows = rows;
225
+
226
+ for (let i = (renderRows - 1) / 2; i >= ((renderRows - 1) / 2) * -1; --i) {
227
+ list.push(moment(date).subtract(i, type).format(format));
228
+ }
229
+
230
+ return list;
231
+ };
232
+ const getMonthList = () => getList("months", "MMMM");
233
+ const getDaysList = () => getList("days", "D");
234
+ const getYearsList = () => getList("years", "YYYY");
235
+
236
+ //--OBSERVERS--//
237
+ useEffect(() => {
238
+ if (moment(date.format("L")).isBefore(minDate.format("L")))
239
+ setDate(minDate);
240
+ if (moment(date.format("L")).isAfter(maxDate.format("L"))) setDate(maxDate);
241
+ }, []);
242
+
243
+ //Events Observer
244
+ useEffect(() => {
245
+ document.addEventListener("mouseup", onArrowMouseUp);
246
+ return () => {
247
+ document.removeEventListener("mouseup", onArrowMouseUp);
248
+ };
249
+ }, []);
250
+
251
+ useEffect(() => {
252
+ onChange(date);
253
+ dateRef.current = date;
254
+
255
+ if (moment(date.format("L")).isSame(minDate.format("L")))
256
+ onMinDateReached(minDate);
257
+ if (moment(date.format("L")).isSame(maxDate.format("L")))
258
+ onMaxDateReached(maxDate);
259
+ }, [date]);
260
+
261
+ //monthList Events
262
+ useEffect(() => {
263
+ if (monthsListRef?.current) {
264
+ monthsListRef?.current?.addEventListener(
265
+ "mousewheel",
266
+ (e) => onWheel(e, "months"),
267
+ { passive: false },
268
+ );
269
+ monthsListRef?.current?.addEventListener(
270
+ "touchstart",
271
+ (e) => onTouchStart(e, "months"),
272
+ { passive: false },
273
+ );
274
+ }
275
+
276
+ return () => {
277
+ monthsListRef?.current?.clearEventListeners("mousewheel");
278
+ monthsListRef?.current?.clearEventListeners("touchstart");
279
+ };
280
+ }, [monthsListRef]);
281
+
282
+ //daysList Events
283
+ useEffect(() => {
284
+ if (daysListRef?.current) {
285
+ daysListRef?.current?.addEventListener(
286
+ "mousewheel",
287
+ (e) => onWheel(e, "days"),
288
+ { passive: false },
289
+ );
290
+ daysListRef?.current?.addEventListener(
291
+ "touchstart",
292
+ (e) => onTouchStart(e, "days"),
293
+ { passive: false },
294
+ );
295
+ }
296
+
297
+ return () => {
298
+ daysListRef?.current?.clearEventListeners("mousewheel");
299
+ daysListRef?.current?.clearEventListeners("touchstart");
300
+ };
301
+ }, [daysListRef]);
302
+
303
+ //yearsList Events
304
+ useEffect(() => {
305
+ if (yearsListRef?.current) {
306
+ yearsListRef?.current?.addEventListener(
307
+ "mousewheel",
308
+ (e) => onWheel(e, "years"),
309
+ { passive: false },
310
+ );
311
+ yearsListRef?.current?.addEventListener(
312
+ "touchstart",
313
+ (e) => onTouchStart(e, "years"),
314
+ { passive: false },
315
+ );
316
+ }
317
+
318
+ return () => {
319
+ yearsListRef?.current?.clearEventListeners("mousewheel");
320
+ yearsListRef?.current?.clearEventListeners("touchstart");
321
+ };
322
+ }, [yearsListRef]);
323
+
324
+ //--RENDER--//
325
+ const renderMonthsList = () => {
326
+ const half = (rows - 1) / 2;
327
+ return getMonthList().map((month, i) => (
328
+ <div
329
+ className={`mobile-calendar_wrapper_body_months-list--item ${i === half ? "active" : ""} ${
330
+ i === 0 || i === rows - 1 ? "transparent" : ""
331
+ } ${classes?.monthsListItem} ${i === half ? classes?.activeItem : ""}`}
332
+ key={`month-${month}`}
333
+ onClick={
334
+ touchY
335
+ ? null
336
+ : () => (i - half === 0 ? {} : changeItem("months", i - half))
337
+ }
338
+ attr-scroll-direction={touchType === "months" ? scrollDirection : 0}
339
+ attr-is-scrolling={touchType === "months" ? 1 : 0}
340
+ >
341
+ {month}
342
+ </div>
343
+ ));
344
+ };
345
+ const renderDaysList = () => {
346
+ const half = (rows - 1) / 2;
347
+ return getDaysList().map((day, i) => (
348
+ <div
349
+ className={`mobile-calendar_wrapper_body_days-list--item ${i === half ? "active" : ""} ${
350
+ i === 0 || i === rows - 1 ? "transparent" : ""
351
+ } ${classes?.daysListItem} ${i === half ? classes?.activeItem : ""}`}
352
+ key={`day-${day}`}
353
+ onClick={() => (i - half === 0 ? {} : changeItem("days", i - half))}
354
+ attr-scroll-direction={touchType === "days" ? scrollDirection : 0}
355
+ attr-is-scrolling={touchType === "days" ? 1 : 0}
356
+ >
357
+ {day}
358
+ </div>
359
+ ));
360
+ };
361
+ const renderYearsList = () => {
362
+ const half = (rows - 1) / 2;
363
+ return getYearsList().map((year, i) => (
364
+ <div
365
+ className={`mobile-calendar_wrapper_body_years-list--item ${i === half ? "active" : ""} ${
366
+ i === 0 || i === rows - 1 ? "transparent" : ""
367
+ } ${classes?.yearsListItem} ${i === half ? classes?.activeItem : ""}`}
368
+ key={`year-${year}`}
369
+ onClick={() => (i - half === 0 ? {} : changeItem("years", i - half))}
370
+ attr-scroll-direction={touchType === "years" ? scrollDirection : 0}
371
+ attr-is-scrolling={touchType === "years" ? 1 : 0}
372
+ >
373
+ {year}
374
+ </div>
375
+ ));
376
+ };
377
+
378
+ const renderMonthsBlock = () => {
379
+ return (
380
+ <div
381
+ className={`mobile-calendar_wrapper_body_months ${classes?.monthsBlock}`}
382
+ >
383
+ <div
384
+ className={`mobile-calendar_wrapper_body_months--prev ${classes?.prevItem}`}
385
+ >
386
+ <ChevronUp
387
+ onClick={() => changeItem("months", -1)}
388
+ onMouseDown={() => onArrowMouseDown("months", -1)}
389
+ onMouseUp={onArrowMouseUp}
390
+ />
391
+ </div>
392
+ <div
393
+ className={`mobile-calendar_wrapper_body_months-list ${classes?.monthsList}`}
394
+ ref={monthsListRef}
395
+ >
396
+ {renderMonthsList()}
397
+ {isMobile && (
398
+ <div className="mobile-calendar_wrapper_body_months-list_touch-zone"></div>
399
+ )}
400
+ </div>
401
+ <div
402
+ className={`mobile-calendar_wrapper_body_months--next ${classes?.nextItem}`}
403
+ >
404
+ <ChevronDown
405
+ onClick={() => changeItem("months", 1)}
406
+ onMouseDown={() => onArrowMouseDown("months", 1)}
407
+ onMouseUp={onArrowMouseUp}
408
+ />
409
+ </div>
410
+ </div>
411
+ );
412
+ };
413
+ const renderDaysBlock = () => {
414
+ return (
415
+ <div
416
+ className={`mobile-calendar_wrapper_body_days ${classes?.daysBlock}`}
417
+ >
418
+ <div
419
+ className={`mobile-calendar_wrapper_body_days--prev ${classes?.prevItem}`}
420
+ >
421
+ <ChevronUp
422
+ onClick={() => changeItem("days", -1)}
423
+ onMouseDown={() => onArrowMouseDown("days", -1)}
424
+ onMouseUp={onArrowMouseUp}
425
+ />
426
+ </div>
427
+ <div
428
+ className={`mobile-calendar_wrapper_body_days-list ${classes?.daysList}`}
429
+ ref={daysListRef}
430
+ >
431
+ {renderDaysList()}
432
+ {isMobile && (
433
+ <div className="mobile-calendar_wrapper_body_days-list_touch-zone"></div>
434
+ )}
435
+ </div>
436
+ <div
437
+ className={`mobile-calendar_wrapper_body_days--next ${classes?.nextItem}`}
438
+ >
439
+ <ChevronDown
440
+ onClick={() => changeItem("days", 1)}
441
+ onMouseDown={() => onArrowMouseDown("days", 1)}
442
+ onMouseUp={onArrowMouseUp}
443
+ />
444
+ </div>
445
+ </div>
446
+ );
447
+ };
448
+ const renderYearsBlock = () => {
449
+ return (
450
+ <div
451
+ className={`mobile-calendar_wrapper_body_years ${classes?.yearsBlock}`}
452
+ >
453
+ <div
454
+ className={`mobile-calendar_wrapper_body_years--prev ${classes?.prevItem}`}
455
+ >
456
+ <ChevronUp
457
+ onClick={() => changeItem("years", -1)}
458
+ onMouseDown={() => onArrowMouseDown("years", -1)}
459
+ onMouseUp={onArrowMouseUp}
460
+ />
461
+ </div>
462
+ <div
463
+ className={`mobile-calendar_wrapper_body_years-list ${classes?.yearsList}`}
464
+ ref={yearsListRef}
465
+ >
466
+ {renderYearsList()}
467
+ {isMobile && (
468
+ <div className="mobile-calendar_wrapper_body_years-list_touch-zone"></div>
469
+ )}
470
+ </div>
471
+ <div
472
+ className={`mobile-calendar_wrapper_body_years--next ${classes?.nextItem}`}
473
+ >
474
+ <ChevronDown
475
+ onClick={() => changeItem("years", 1)}
476
+ onMouseDown={() => onArrowMouseDown("years", 1)}
477
+ onMouseUp={onArrowMouseUp}
478
+ />
479
+ </div>
480
+ </div>
481
+ );
482
+ };
483
+
484
+ return (
485
+ <div
486
+ className={`mobile-calendar_wrapper ${classes?.wrapper}`}
487
+ onTouchMove={onTouchMove}
488
+ >
489
+ <div className={`mobile-calendar_wrapper_label ${classes?.label}`}>
490
+ {label}
491
+ </div>
492
+ {showSelectedDate && (
493
+ <div className={`mobile-calendar_wrapper_label ${classes?.label}`}>
494
+ {moment(date).format("LL")}
495
+ </div>
496
+ )}
497
+ <div className={`mobile-calendar_wrapper_body ${classes?.body}`}>
498
+ {renderMonthsBlock()}
499
+ {renderDaysBlock()}
500
+ {renderYearsBlock()}
501
+ </div>
502
+ </div>
503
+ );
504
+ };
505
+
506
+ export default MobileCalendar;
@@ -1 +1,45 @@
1
- function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function r(r,e){if(r){if("string"==typeof r)return t(r,e);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(r,e)}}import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useState as o}from"react";import a from"../CheckboxInput/CheckboxInput";import i from"../Input/Input";import"./MultiSelect.scss";export default function(l){var u,c=l.options,s=l.chosenOptions,f=l.onChange,m=(u=o(""),function(t){if(Array.isArray(t))return t}(u)||function(t,r){var e,n,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(t);!(i=(e=o.next()).done)&&(a.push(e.value),a.length!==r);i=!0);}catch(t){l=!0,n=t}finally{try{i||null==o.return||o.return()}finally{if(l)throw n}}return a}}(u,2)||r(u,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=m[0],y=m[1],d=function(e,n){if(e)f(((function(r){if(Array.isArray(r))return t(r)})(s)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(s)||r(s)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([n]));else f(s.filter(function(t){return t!==n}))},h=c.filter(function(t){return t.label.toLowerCase().includes(p.toLowerCase())});return n("div",{className:"multiselect",children:[e(i,{value:p,onChange:function(t){return y(t)},placeholder:"Search"}),e("div",{className:"multiselect__list",children:h.map(function(t){var r=t.label,n=t.value,o=t.id;return e(a,{value:s.includes(n),label:r,onChange:function(t){return d(t,n)},className:"multiselect__item"},o)})})]})}
1
+ import React, { useState } from "react";
2
+
3
+ import CheckboxInput from "../CheckboxInput/CheckboxInput";
4
+ import Input from "../Input/Input";
5
+
6
+ import "./MultiSelect.scss";
7
+
8
+ const MultiSelect = ({ options, chosenOptions, onChange }) => {
9
+ const [searchValue, setSearchValue] = useState("");
10
+
11
+ const checkHandler = (state, value) => {
12
+ if (state) {
13
+ onChange([...chosenOptions, value]);
14
+ } else {
15
+ onChange(chosenOptions.filter((item) => item !== value));
16
+ }
17
+ };
18
+
19
+ const filteredOptions = options.filter(({ label }) =>
20
+ label.toLowerCase().includes(searchValue.toLowerCase()),
21
+ );
22
+
23
+ return (
24
+ <div className="multiselect">
25
+ <Input
26
+ value={searchValue}
27
+ onChange={(value) => setSearchValue(value)}
28
+ placeholder="Search"
29
+ />
30
+ <div className="multiselect__list">
31
+ {filteredOptions.map(({ label, value, id }) => (
32
+ <CheckboxInput
33
+ key={id}
34
+ value={chosenOptions.includes(value)}
35
+ label={label}
36
+ onChange={(state) => checkHandler(state, value)}
37
+ className="multiselect__item"
38
+ />
39
+ ))}
40
+ </div>
41
+ </div>
42
+ );
43
+ };
44
+
45
+ export default MultiSelect;