intelicoreact 1.5.38 → 1.5.41

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 (519) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +44 -93
  2. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.scss +13 -23
  3. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +38 -43
  4. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.scss +10 -20
  5. package/dist/Atomic/FormElements/Calendar/Calendar.js +164 -243
  6. package/dist/Atomic/FormElements/Calendar/Calendar.scss +0 -1
  7. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +51 -60
  8. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +15 -25
  9. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +39 -47
  10. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.scss +2 -5
  11. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +308 -410
  12. package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +109 -169
  13. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +527 -680
  14. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +59 -61
  15. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +15 -28
  16. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +378 -498
  17. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.scss +32 -36
  18. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +70 -103
  19. package/dist/Atomic/FormElements/FileLoader/FileLoader.scss +2 -0
  20. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +91 -138
  21. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +55 -109
  22. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +193 -254
  23. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.scss +16 -19
  24. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +140 -156
  25. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.scss +4 -8
  26. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +156 -222
  27. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +114 -158
  28. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +92 -151
  29. package/dist/Atomic/FormElements/Input/Input.js +330 -340
  30. package/dist/Atomic/FormElements/Input/Input.scss +1 -1
  31. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +110 -156
  32. package/dist/Atomic/FormElements/InputColor/InputColor.js +58 -57
  33. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +145 -188
  34. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +228 -294
  35. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.scss +2 -1
  36. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +56 -55
  37. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +536 -645
  38. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +190 -220
  39. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +31 -33
  40. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +169 -247
  41. package/dist/Atomic/FormElements/InputLink/InputLink.js +71 -118
  42. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +38 -47
  43. package/dist/Atomic/FormElements/InputMask/InputMask.js +1053 -938
  44. package/dist/Atomic/FormElements/InputMask/config.js +15 -16
  45. package/dist/Atomic/FormElements/InputMask/functions.js +51 -77
  46. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +592 -569
  47. package/dist/Atomic/FormElements/InputMask2/config.js +15 -16
  48. package/dist/Atomic/FormElements/InputMask2/functions.js +51 -77
  49. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +679 -651
  50. package/dist/Atomic/FormElements/InputMask3/config.js +15 -16
  51. package/dist/Atomic/FormElements/InputMask3/functions.js +51 -77
  52. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +88 -127
  53. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.scss +1 -1
  54. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +111 -182
  55. package/dist/Atomic/FormElements/Label/Label.js +55 -82
  56. package/dist/Atomic/FormElements/Label/Label.scss +8 -18
  57. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +382 -437
  58. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +3 -3
  59. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +50 -88
  60. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +264 -314
  61. package/dist/Atomic/FormElements/NumericInput/NumericInput.scss +1 -1
  62. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +51 -93
  63. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +55 -69
  64. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +45 -51
  65. package/dist/Atomic/FormElements/RadioInput/RadioInput.scss +4 -4
  66. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +40 -53
  67. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +120 -169
  68. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +141 -195
  69. package/dist/Atomic/FormElements/RangeList/RangeList.js +140 -199
  70. package/dist/Atomic/FormElements/RangeList/RangeList.scss +2 -2
  71. package/dist/Atomic/FormElements/RangeList/partial/AnyOuterClass.scss +4 -1
  72. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +44 -57
  73. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +377 -463
  74. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.scss +1 -1
  75. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +759 -760
  76. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.scss +9 -9
  77. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +31 -36
  78. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.scss +2 -0
  79. package/dist/Atomic/FormElements/SwitchableRow/partial/AnyOuterClass.scss +1 -1
  80. package/dist/Atomic/FormElements/Switcher/Switcher.js +44 -52
  81. package/dist/Atomic/FormElements/Switcher/Switcher.scss +3 -3
  82. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +44 -43
  83. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.scss +2 -0
  84. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +36 -37
  85. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.scss +2 -0
  86. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +56 -93
  87. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.scss +2 -0
  88. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +53 -86
  89. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.scss +2 -0
  90. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +54 -46
  91. package/dist/Atomic/FormElements/SwitcherRangeList/partial/AnyOuterClass.scss +1 -1
  92. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +102 -172
  93. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.scss +6 -4
  94. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +154 -209
  95. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +56 -59
  96. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.scss +2 -2
  97. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +112 -140
  98. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +919 -1035
  99. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +119 -155
  100. package/dist/Atomic/FormElements/Text/Text.js +97 -88
  101. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +35 -44
  102. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +8 -8
  103. package/dist/Atomic/FormElements/Textarea/Textarea.js +64 -102
  104. package/dist/Atomic/FormElements/Textarea/Textarea.scss +8 -4
  105. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +133 -172
  106. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +49 -48
  107. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +63 -114
  108. package/dist/Atomic/FormElements/TimeRange/TimeRange.scss +3 -9
  109. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +122 -179
  110. package/dist/Atomic/FormElements/UserContacts/UserContacts.scss +5 -10
  111. package/dist/Atomic/FormElements/UserContacts/partial/AnyOuterClass.scss +1 -1
  112. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +65 -101
  113. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.scss +12 -4
  114. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +71 -80
  115. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +64 -79
  116. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.scss +3 -1
  117. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/AnyOuterClass.scss +1 -1
  118. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +34 -42
  119. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +83 -102
  120. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.scss +3 -1
  121. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/AnyOuterClass.scss +1 -1
  122. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +35 -42
  123. package/dist/Atomic/Layout/Header/Header.js +80 -148
  124. package/dist/Atomic/Layout/Header/Header.scss +1 -1
  125. package/dist/Atomic/Layout/MainMenu/MainMenu.js +133 -213
  126. package/dist/Atomic/Layout/MainMenu/MainMenu.scss +9 -9
  127. package/dist/Atomic/Layout/Spinner/Spinner.js +22 -39
  128. package/dist/Atomic/Layout/Spinner/Spinner.scss +16 -32
  129. package/dist/Atomic/UI/Accordion/Accordion.js +52 -102
  130. package/dist/Atomic/UI/Accordion/Accordion.scss +14 -25
  131. package/dist/Atomic/UI/Accordion/AccordionItem.js +102 -170
  132. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +167 -251
  133. package/dist/Atomic/UI/AccordionText/AccordionText.js +54 -105
  134. package/dist/Atomic/UI/AccordionText/AccordionText.scss +9 -22
  135. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +135 -207
  136. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +46 -100
  137. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.scss +2 -2
  138. package/dist/Atomic/UI/Alert/Alert.js +63 -116
  139. package/dist/Atomic/UI/Alert/Alert.scss +2 -2
  140. package/dist/Atomic/UI/Arrow/Arrow.js +110 -163
  141. package/dist/Atomic/UI/Box/Box.js +37 -37
  142. package/dist/Atomic/UI/Box/Box.scss +11 -11
  143. package/dist/Atomic/UI/Button/Button.js +41 -43
  144. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +67 -61
  145. package/dist/Atomic/UI/Chart/Chart.js +96 -170
  146. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +74 -142
  147. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +77 -91
  148. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +117 -120
  149. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +292 -314
  150. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +39 -54
  151. package/dist/Atomic/UI/Chart/partial/utils.js +33 -56
  152. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +88 -145
  153. package/dist/Atomic/UI/DateTime/DateTime.js +37 -89
  154. package/dist/Atomic/UI/DateTime/DateTime.scss +2 -2
  155. package/dist/Atomic/UI/DateTime/partial/AnyOuterClass.scss +1 -1
  156. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +31 -93
  157. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +18 -66
  158. package/dist/Atomic/UI/DoubleString/DoubleString.js +77 -134
  159. package/dist/Atomic/UI/DoubleString/DoubleString.scss +4 -6
  160. package/dist/Atomic/UI/DoubleString/partial/AnyOuterClass.scss +1 -1
  161. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +22 -65
  162. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +170 -251
  163. package/dist/Atomic/UI/ExampleChartIntegration/partial/AnyOuterClass.scss +1 -1
  164. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +84 -109
  165. package/dist/Atomic/UI/Hint/Hint.js +202 -243
  166. package/dist/Atomic/UI/Hint/Hint.scss +3 -5
  167. package/dist/Atomic/UI/Hint/partials/_utils.js +42 -54
  168. package/dist/Atomic/UI/Modal/Modal.js +172 -171
  169. package/dist/Atomic/UI/Modal/Modal.scss +69 -91
  170. package/dist/Atomic/UI/Modal/ModalHOC.js +38 -92
  171. package/dist/Atomic/UI/Modal/ModalMobile.scss +14 -24
  172. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +18 -68
  173. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +38 -107
  174. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +153 -130
  175. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +62 -118
  176. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.scss +25 -163
  177. package/dist/Atomic/UI/NavLine/NavLine.js +273 -306
  178. package/dist/Atomic/UI/NavLine/NavLine.scss +155 -195
  179. package/dist/Atomic/UI/NavLine/Tabs.js +115 -0
  180. package/dist/Atomic/UI/PageTitle/PageTitle.js +52 -73
  181. package/dist/Atomic/UI/PageTitle/PageTitle.scss +14 -52
  182. package/dist/Atomic/UI/PieChart/PieChart.js +42 -105
  183. package/dist/Atomic/UI/PieChart/PieChart.scss +11 -86
  184. package/dist/Atomic/UI/Price/Price.js +20 -27
  185. package/dist/Atomic/UI/PriceRange/PriceRange.js +18 -40
  186. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +73 -92
  187. package/dist/Atomic/UI/ProgressLine/ProgressLine.scss +71 -85
  188. package/dist/Atomic/UI/Status/Status.js +51 -62
  189. package/dist/Atomic/UI/Status/Status.scss +29 -48
  190. package/dist/Atomic/UI/Table/Partials/TdCell.js +88 -126
  191. package/dist/Atomic/UI/Table/Partials/TdHeader.js +39 -58
  192. package/dist/Atomic/UI/Table/Partials/TdRow.js +73 -124
  193. package/dist/Atomic/UI/Table/Partials/TdTitle.js +45 -113
  194. package/dist/Atomic/UI/Table/Table.js +43 -61
  195. package/dist/Atomic/UI/Table/Table.scss +3 -0
  196. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +64 -108
  197. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +31 -44
  198. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +10 -24
  199. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +48 -59
  200. package/dist/Atomic/UI/Tag/Tag.js +113 -157
  201. package/dist/Atomic/UI/Tag/Tag.scss +48 -102
  202. package/dist/Atomic/UI/TagList/TagList.js +179 -223
  203. package/dist/Atomic/UI/TagList/TagList.scss +9 -13
  204. package/dist/Atomic/UI/UserBox/UserBox.js +56 -80
  205. package/dist/Atomic/UI/UserBox/UserBox.scss +21 -45
  206. package/dist/Atomic/UI/WizardStepper/constructor.js +89 -127
  207. package/dist/Atomic/UI/WizardStepper/index.js +6 -14
  208. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +51 -53
  209. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.scss +7 -11
  210. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +5 -9
  211. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +67 -84
  212. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.scss +7 -13
  213. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +6 -14
  214. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +45 -50
  215. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.scss +18 -24
  216. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +6 -14
  217. package/dist/Atomic/UI/WizardStepper/ui/icons.js +106 -138
  218. package/dist/Atomic/UI/WizardStepper/ui/index.js +6 -14
  219. package/dist/Classes/AbortableFetch.js +326 -394
  220. package/dist/Classes/AnimatedHandler.js +44 -31
  221. package/dist/Classes/RESTAPI/index.js +173 -131
  222. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +334 -399
  223. package/dist/Classes/RESTAPI/partials/ApiBase.js +30 -30
  224. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +88 -107
  225. package/dist/Classes/RESTAPI/partials/ApiUtils.js +166 -144
  226. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +204 -180
  227. package/dist/Classes/RESTAPI/partials/Utils.js +83 -80
  228. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +8 -16
  229. package/dist/Classes/RESTAPI/partials/_utils.js +125 -139
  230. package/dist/Constants/index.constants.js +22 -102
  231. package/dist/Functions/Portal.js +23 -67
  232. package/dist/Functions/animatingFunctions/getAnimatedHandler.js +1 -1
  233. package/dist/Functions/customEventListener.js +50 -48
  234. package/dist/Functions/dateTime.js +177 -130
  235. package/dist/Functions/fieldValueFormatters.js +346 -275
  236. package/dist/Functions/hooks/useFormFieldsChangesManager.js +96 -125
  237. package/dist/Functions/locale/createTranslator.js +27 -29
  238. package/dist/Functions/operations.js +102 -129
  239. package/dist/Functions/presets/inputMaskPresets.js +99 -88
  240. package/dist/Functions/presets/inputPresets.js +35 -41
  241. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +49 -30
  242. package/dist/Functions/schemas.js +20 -78
  243. package/dist/Functions/useBodyScrollLock.js +15 -21
  244. package/dist/Functions/useClickOutside.js +16 -21
  245. package/dist/Functions/useDebounce.js +21 -62
  246. package/dist/Functions/useFieldFocus.js +79 -83
  247. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +46 -39
  248. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +137 -132
  249. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +73 -63
  250. package/dist/Functions/useFormTools/functions/General.js +129 -117
  251. package/dist/Functions/useFormTools/functions/RenderFields.js +85 -75
  252. package/dist/Functions/useFormTools/functions/usePrevious.js +10 -16
  253. package/dist/Functions/useFormTools/index.js +709 -647
  254. package/dist/Functions/useInputHighlightError.js +53 -104
  255. package/dist/Functions/useIsMobile.js +26 -0
  256. package/dist/Functions/useKeyPress/useHandleKeyPress.js +33 -40
  257. package/dist/Functions/useKeyPress/useKeyPress.js +39 -48
  258. package/dist/Functions/useLocalStorage.js +31 -38
  259. package/dist/Functions/useLocationParams.js +24 -31
  260. package/dist/Functions/useMediaQuery.js +10 -14
  261. package/dist/Functions/useMetaInfo.js +35 -45
  262. package/dist/Functions/useMouseUpOutside.js +15 -21
  263. package/dist/Functions/useOnlineStatus.js +21 -25
  264. package/dist/Functions/usePasswordChecker.js +111 -183
  265. package/dist/Functions/usePrevious.js +10 -16
  266. package/dist/Functions/useResize.js +28 -32
  267. package/dist/Functions/useScrollTo.js +16 -26
  268. package/dist/Functions/useToggle.js +16 -20
  269. package/dist/Functions/utils.js +469 -493
  270. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +28 -75
  271. package/dist/Molecular/CustomIcons/components/AlertCircle.js +28 -77
  272. package/dist/Molecular/CustomIcons/components/AppStore.js +32 -84
  273. package/dist/Molecular/CustomIcons/components/Arrow.js +38 -93
  274. package/dist/Molecular/CustomIcons/components/ArrowDown.js +20 -63
  275. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +23 -71
  276. package/dist/Molecular/CustomIcons/components/ArrowRight.js +23 -71
  277. package/dist/Molecular/CustomIcons/components/ArrowUp.js +20 -63
  278. package/dist/Molecular/CustomIcons/components/Bell.js +18 -61
  279. package/dist/Molecular/CustomIcons/components/Button.js +18 -61
  280. package/dist/Molecular/CustomIcons/components/Campaigns.js +19 -62
  281. package/dist/Molecular/CustomIcons/components/Check.js +19 -62
  282. package/dist/Molecular/CustomIcons/components/Check2.js +18 -61
  283. package/dist/Molecular/CustomIcons/components/ChevronDown.js +18 -61
  284. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +18 -61
  285. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +18 -61
  286. package/dist/Molecular/CustomIcons/components/ChevronRight.js +18 -61
  287. package/dist/Molecular/CustomIcons/components/ChevronUp.js +18 -61
  288. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +33 -81
  289. package/dist/Molecular/CustomIcons/components/Close.js +20 -64
  290. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +45 -95
  291. package/dist/Molecular/CustomIcons/components/Delete.js +19 -62
  292. package/dist/Molecular/CustomIcons/components/Edit.js +18 -61
  293. package/dist/Molecular/CustomIcons/components/Email.js +36 -87
  294. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +26 -82
  295. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +34 -83
  296. package/dist/Molecular/CustomIcons/components/Flows.js +18 -61
  297. package/dist/Molecular/CustomIcons/components/Gift.js +23 -71
  298. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +32 -84
  299. package/dist/Molecular/CustomIcons/components/GooglePlay.js +32 -84
  300. package/dist/Molecular/CustomIcons/components/HelpCircle.js +21 -67
  301. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +22 -68
  302. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +21 -67
  303. package/dist/Molecular/CustomIcons/components/Home.js +21 -67
  304. package/dist/Molecular/CustomIcons/components/Home2.js +24 -70
  305. package/dist/Molecular/CustomIcons/components/Key.js +26 -69
  306. package/dist/Molecular/CustomIcons/components/Landers.js +22 -68
  307. package/dist/Molecular/CustomIcons/components/Lock.js +18 -61
  308. package/dist/Molecular/CustomIcons/components/Mail.js +26 -75
  309. package/dist/Molecular/CustomIcons/components/Mastercard.js +68 -128
  310. package/dist/Molecular/CustomIcons/components/Minus.js +31 -79
  311. package/dist/Molecular/CustomIcons/components/Offers.js +19 -62
  312. package/dist/Molecular/CustomIcons/components/Pause.js +31 -79
  313. package/dist/Molecular/CustomIcons/components/PayPal.js +45 -96
  314. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +32 -81
  315. package/dist/Molecular/CustomIcons/components/Phone.js +33 -81
  316. package/dist/Molecular/CustomIcons/components/Play.js +31 -79
  317. package/dist/Molecular/CustomIcons/components/Plus.js +31 -79
  318. package/dist/Molecular/CustomIcons/components/Profile.js +23 -69
  319. package/dist/Molecular/CustomIcons/components/QRCode.js +33 -85
  320. package/dist/Molecular/CustomIcons/components/Rectangle.js +18 -61
  321. package/dist/Molecular/CustomIcons/components/Revert.js +21 -67
  322. package/dist/Molecular/CustomIcons/components/Star.js +17 -60
  323. package/dist/Molecular/CustomIcons/components/Star2.js +19 -62
  324. package/dist/Molecular/CustomIcons/components/TrafficSources.js +21 -68
  325. package/dist/Molecular/CustomIcons/components/Trash.js +18 -61
  326. package/dist/Molecular/CustomIcons/components/TrashRed.js +18 -61
  327. package/dist/Molecular/CustomIcons/components/Triggers.js +18 -61
  328. package/dist/Molecular/CustomIcons/components/User.js +23 -71
  329. package/dist/Molecular/CustomIcons/components/Visa.js +34 -88
  330. package/dist/Molecular/CustomIcons/components/X.js +18 -61
  331. package/dist/Molecular/CustomIcons/index.js +674 -76
  332. package/dist/Molecular/FormElement/FormElement.js +41 -44
  333. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +161 -179
  334. package/dist/Molecular/FormWithDependOn/partials/_utils.js +56 -49
  335. package/dist/Molecular/InputAddress/InputAddress.js +421 -496
  336. package/dist/Molecular/InputAddress/InputAddress.scss +16 -14
  337. package/dist/Molecular/InputPassword/InputPassword.js +47 -99
  338. package/dist/index.js +8 -11
  339. package/dist/scss/_fonts.scss +60 -48
  340. package/dist/scss/_mixins.scss +2 -2
  341. package/dist/scss/_vars.scss +5 -4
  342. package/dist/scss/main.scss +4 -5
  343. package/package.json +21 -18
  344. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.interface.js +0 -4
  345. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.stories.js +0 -89
  346. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.test.js +0 -130
  347. package/dist/Atomic/FormElements/ActionAlert/index.js +0 -17
  348. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.interface.js +0 -4
  349. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.stories.js +0 -81
  350. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.test.js +0 -104
  351. package/dist/Atomic/FormElements/AdvancedStatus/index.js +0 -17
  352. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +0 -4
  353. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +0 -108
  354. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.interface.js +0 -4
  355. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -100
  356. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.test.js +0 -143
  357. package/dist/Atomic/FormElements/CheckboxInput/index.js +0 -17
  358. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.interface.js +0 -4
  359. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.stories.js +0 -94
  360. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.test.js +0 -177
  361. package/dist/Atomic/FormElements/CheckboxesLine/index.js +0 -17
  362. package/dist/Atomic/FormElements/Datepicker/Datepicker.stories.js +0 -51
  363. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -596
  364. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.stories.js +0 -272
  365. package/dist/Atomic/FormElements/FileLoader/FileLoader.stories.js +0 -182
  366. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.stories.js +0 -327
  367. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.stories.js +0 -186
  368. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.stories.js +0 -84
  369. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.stories.js +0 -107
  370. package/dist/Atomic/FormElements/Input/Input.stories.js +0 -251
  371. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -115
  372. package/dist/Atomic/FormElements/InputColor/InputColor.stories.js +0 -119
  373. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.interface.js +0 -4
  374. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.stories.js +0 -178
  375. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.test.js +0 -129
  376. package/dist/Atomic/FormElements/InputCurrency/index.js +0 -16
  377. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -123
  378. package/dist/Atomic/FormElements/InputLink/InputLink.stories.js +0 -140
  379. package/dist/Atomic/FormElements/InputMask/InputMask.stories.js +0 -303
  380. package/dist/Atomic/FormElements/InputMask2/InputMask2.stories.js +0 -314
  381. package/dist/Atomic/FormElements/InputMask3/InputMask3.stories.js +0 -335
  382. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.stories.js +0 -276
  383. package/dist/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -56
  384. package/dist/Atomic/FormElements/Label/Label.interface.js +0 -4
  385. package/dist/Atomic/FormElements/Label/Label.stories.js +0 -47
  386. package/dist/Atomic/FormElements/Label/Label.test.js +0 -167
  387. package/dist/Atomic/FormElements/Label/index.js +0 -17
  388. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -172
  389. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -121
  390. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -184
  391. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.stories.js +0 -79
  392. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.stories.js +0 -151
  393. package/dist/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -67
  394. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.stories.js +0 -116
  395. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -107
  396. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -92
  397. package/dist/Atomic/FormElements/RangeList/RangeList.stories.js +0 -169
  398. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.stories.js +0 -401
  399. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.stories.js +0 -314
  400. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.stories.js +0 -137
  401. package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +0 -91
  402. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.stories.js +0 -104
  403. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.stories.js +0 -96
  404. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.stories.js +0 -140
  405. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.stories.js +0 -112
  406. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.stories.js +0 -145
  407. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.stories.js +0 -158
  408. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.stories.js +0 -101
  409. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.stories.js +0 -131
  410. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -357
  411. package/dist/Atomic/FormElements/Text/Text.stories.js +0 -80
  412. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -106
  413. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.test.js +0 -93
  414. package/dist/Atomic/FormElements/Textarea/Textarea.stories.js +0 -103
  415. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -174
  416. package/dist/Atomic/FormElements/TimeRange/TimeRange.interface.js +0 -4
  417. package/dist/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -40
  418. package/dist/Atomic/FormElements/TimeRange/TimeRange.test.js +0 -163
  419. package/dist/Atomic/FormElements/TimeRange/index.js +0 -17
  420. package/dist/Atomic/FormElements/UserContacts/UserContact.test.js +0 -381
  421. package/dist/Atomic/FormElements/UserContacts/UserContacts.interface.js +0 -4
  422. package/dist/Atomic/FormElements/UserContacts/UserContacts.stories.js +0 -74
  423. package/dist/Atomic/FormElements/UserContacts/index.js +0 -17
  424. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.stories.js +0 -193
  425. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.stories.js +0 -147
  426. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.stories.js +0 -151
  427. package/dist/Atomic/Layout/Header/Header.stories.js +0 -71
  428. package/dist/Atomic/Layout/MainMenu/MainMenu.stories.js +0 -115
  429. package/dist/Atomic/Layout/Spinner/Spinner.interface.js +0 -4
  430. package/dist/Atomic/Layout/Spinner/Spinner.stories.js +0 -46
  431. package/dist/Atomic/Layout/Spinner/Spinner.test.js +0 -54
  432. package/dist/Atomic/Layout/Spinner/index.js +0 -17
  433. package/dist/Atomic/UI/Accordion/Accordion.interface.js +0 -4
  434. package/dist/Atomic/UI/Accordion/Accordion.stories.js +0 -168
  435. package/dist/Atomic/UI/Accordion/Accordion.test.js +0 -54
  436. package/dist/Atomic/UI/Accordion/AccordionItem.test.js +0 -50
  437. package/dist/Atomic/UI/Accordion/index.js +0 -17
  438. package/dist/Atomic/UI/AccordionTable/AccordionTable.stories.js +0 -268
  439. package/dist/Atomic/UI/AccordionText/AccordionText.stories.js +0 -125
  440. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -115
  441. package/dist/Atomic/UI/Alert/Alert.stories.js +0 -81
  442. package/dist/Atomic/UI/Arrow/Arrow.stories.js +0 -62
  443. package/dist/Atomic/UI/Box/Box.stories.js +0 -114
  444. package/dist/Atomic/UI/Button/Button.stories.js +0 -105
  445. package/dist/Atomic/UI/Button/Button.test.js +0 -147
  446. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.stories.js +0 -129
  447. package/dist/Atomic/UI/Chart/Chart.stories.js +0 -93
  448. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.stories.js +0 -85
  449. package/dist/Atomic/UI/DateTime/DateTime.stories.js +0 -50
  450. package/dist/Atomic/UI/DoubleString/DoubleString.stories.js +0 -79
  451. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.interface.js +0 -4
  452. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.stories.js +0 -98
  453. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.test.js +0 -51
  454. package/dist/Atomic/UI/DynamicIcon/index.js +0 -17
  455. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.stories.js +0 -98
  456. package/dist/Atomic/UI/Hint/Hint.stories.js +0 -101
  457. package/dist/Atomic/UI/Hint/index.js +0 -16
  458. package/dist/Atomic/UI/Modal/Modal.interface.js +0 -4
  459. package/dist/Atomic/UI/Modal/Modal.stories.js +0 -370
  460. package/dist/Atomic/UI/Modal/ModalHOC.stories.js +0 -191
  461. package/dist/Atomic/UI/Modal/ModalHOC.test.js +0 -187
  462. package/dist/Atomic/UI/Modal/index.js +0 -26
  463. package/dist/Atomic/UI/Modal/partials/ModalFooter.test.js +0 -118
  464. package/dist/Atomic/UI/Modal/partials/ModalTitle.test.js +0 -126
  465. package/dist/Atomic/UI/Modal/partials/useMobileModal.test.js +0 -133
  466. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.interface.js +0 -4
  467. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.stories.js +0 -513
  468. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.test.js +0 -84
  469. package/dist/Atomic/UI/MonoAccordion/index.js +0 -17
  470. package/dist/Atomic/UI/NavLine/NavLine.interface.js +0 -4
  471. package/dist/Atomic/UI/NavLine/NavLine.stories.js +0 -434
  472. package/dist/Atomic/UI/NavLine/NavLine.test.js +0 -311
  473. package/dist/Atomic/UI/NavLine/index.js +0 -17
  474. package/dist/Atomic/UI/PageTitle/PageTitle.interface.js +0 -4
  475. package/dist/Atomic/UI/PageTitle/PageTitle.stories.js +0 -62
  476. package/dist/Atomic/UI/PageTitle/PageTitle.test.js +0 -181
  477. package/dist/Atomic/UI/PageTitle/index.js +0 -17
  478. package/dist/Atomic/UI/PieChart/PieChar.interface.js +0 -4
  479. package/dist/Atomic/UI/PieChart/PieChart.stories.js +0 -82
  480. package/dist/Atomic/UI/PieChart/PieChart.test.js +0 -142
  481. package/dist/Atomic/UI/PieChart/index.js +0 -26
  482. package/dist/Atomic/UI/Price/Price.interface.js +0 -4
  483. package/dist/Atomic/UI/Price/Price.stories.js +0 -52
  484. package/dist/Atomic/UI/Price/Price.test.js +0 -83
  485. package/dist/Atomic/UI/Price/index.js +0 -17
  486. package/dist/Atomic/UI/PriceRange/PriceRange.interface.js +0 -4
  487. package/dist/Atomic/UI/PriceRange/PriceRange.stories.js +0 -51
  488. package/dist/Atomic/UI/PriceRange/PriceRange.test.js +0 -72
  489. package/dist/Atomic/UI/PriceRange/index.js +0 -17
  490. package/dist/Atomic/UI/ProgressLine/ProgressLine.interface.js +0 -4
  491. package/dist/Atomic/UI/ProgressLine/ProgressLine.stories.js +0 -163
  492. package/dist/Atomic/UI/ProgressLine/ProgressLine.test.js +0 -60
  493. package/dist/Atomic/UI/ProgressLine/index.js +0 -17
  494. package/dist/Atomic/UI/Status/Status.interface.js +0 -4
  495. package/dist/Atomic/UI/Status/Status.stories.js +0 -79
  496. package/dist/Atomic/UI/Status/Status.test.js +0 -103
  497. package/dist/Atomic/UI/Status/index.js +0 -17
  498. package/dist/Atomic/UI/Table/Table.stories.js +0 -250
  499. package/dist/Atomic/UI/Tag/Tag.interface.js +0 -4
  500. package/dist/Atomic/UI/Tag/Tag.stories.js +0 -108
  501. package/dist/Atomic/UI/Tag/Tag.test.js +0 -75
  502. package/dist/Atomic/UI/Tag/index.js +0 -17
  503. package/dist/Atomic/UI/TagList/TagList.stories.js +0 -169
  504. package/dist/Atomic/UI/UserBox/UserBox.interface.js +0 -4
  505. package/dist/Atomic/UI/UserBox/UserBox.stories.js +0 -57
  506. package/dist/Atomic/UI/UserBox/UserBox.test.js +0 -136
  507. package/dist/Atomic/UI/UserBox/index.js +0 -17
  508. package/dist/Atomic/UI/WizardStepper/WizardStepper.stories.js +0 -70
  509. package/dist/Functions/useIsMobile/index.js +0 -17
  510. package/dist/Functions/useIsMobile/useIsMobile.js +0 -33
  511. package/dist/Functions/useIsMobile/useIsMobile.test.js +0 -104
  512. package/dist/Functions/useKeyPress/useHandleKeyPress.test.js +0 -96
  513. package/dist/Functions/useKeyPress/useKeyPress.test.js +0 -87
  514. package/dist/Molecular/FormElement/FormElement.stories.js +0 -92
  515. package/dist/Molecular/FormWithDependOn/FormWithDependOn.stories.js +0 -301
  516. package/dist/Molecular/InputAddress/InputAddress.stories.js +0 -541
  517. package/dist/Molecular/InputPassword/InputPassword.stories.js +0 -86
  518. package/dist/types/base.interface.js +0 -4
  519. package/dist/types/base.types.js +0 -4
@@ -1,661 +1,723 @@
1
- // eslint-disable-next-line no-unused-vars
2
1
  "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return useFormTools;
10
- }
5
+ value: true
11
6
  });
12
- const _react = require("react");
13
- const _ArrayWithObjects = /*#__PURE__*/ _interop_require_default(require("./form-drivers/ArrayWithObjects"));
14
- const _ObjectWithIterableObjects = /*#__PURE__*/ _interop_require_default(require("./form-drivers/ObjectWithIterableObjects"));
15
- const _ObjectWithNamedKeyObjects = /*#__PURE__*/ _interop_require_default(require("./form-drivers/ObjectWithNamedKeyObjects"));
16
- const _General = /*#__PURE__*/ _interop_require_default(require("./functions/General"));
17
- const _RenderFields = /*#__PURE__*/ _interop_require_default(require("./functions/RenderFields"));
18
- function _interop_require_default(obj) {
19
- return obj && obj.__esModule ? obj : {
20
- default: obj
21
- };
22
- }
7
+ exports.default = useFormTools;
8
+ var _react = require("react");
9
+ var _ArrayWithObjects = _interopRequireDefault(require("./form-drivers/ArrayWithObjects"));
10
+ var _ObjectWithIterableObjects = _interopRequireDefault(require("./form-drivers/ObjectWithIterableObjects"));
11
+ var _ObjectWithNamedKeyObjects = _interopRequireDefault(require("./form-drivers/ObjectWithNamedKeyObjects"));
12
+ var _General = _interopRequireDefault(require("./functions/General"));
13
+ var _RenderFields = _interopRequireDefault(require("./functions/RenderFields"));
14
+ // eslint-disable-next-line no-unused-vars
15
+
23
16
  const DefaultFocusControllerProps = {
24
- setAutoFocus: true,
25
- onlyEmptyFieldAutoFocus: false
17
+ setAutoFocus: true,
18
+ onlyEmptyFieldAutoFocus: false
26
19
  };
27
- function useFormTools({ form, setForm, FormType, FormFields, FormDataDriverName = "ArrayWithObjects" || "ObjectWithIterableObjects" || "ObjectWithNamedKeyObjects", FormDataDriver = null, FocusControllerProps = DefaultFocusControllerProps, goToNextFieldOnEnterPressed = true } = {}) {
28
- FocusControllerProps = {
29
- ...DefaultFocusControllerProps,
30
- ...FocusControllerProps
31
- };
32
- const FormDataDrivers = {
33
- ArrayWithObjects: {
34
- handlers: _ArrayWithObjects.default,
35
- default: true
36
- },
37
- ObjectWithIterableObjects: {
38
- handlers: _ObjectWithIterableObjects.default
39
- },
40
- ObjectWithNamedKeyObjects: {
41
- handlers: _ObjectWithNamedKeyObjects.default
42
- }
43
- };
44
- const getFormDataDriver = (name)=>{
45
- var _FormDataDrivers_name, _Object_values_find;
46
- return FormDataDriver || ((_FormDataDrivers_name = FormDataDrivers[name]) === null || _FormDataDrivers_name === void 0 ? void 0 : _FormDataDrivers_name.handlers) || ((_Object_values_find = Object.values(FormDataDrivers).find((df)=>df.default === true)) === null || _Object_values_find === void 0 ? void 0 : _Object_values_find.handlers) || (()=>({}));
47
- };
48
- const getFormDataDriverInstance = (name, ...args)=>{
49
- return getFormDataDriver(name)(...args);
50
- };
51
- const { getFieldClassName, updateFormField } = (0, _General.default)();
52
- const { getFieldData, getFormField, setFormFields, setFormField, getFormFieldsAsArray, getFormFieldsKeys, removeAllFormFields, removeFormField, removeFormFields } = getFormDataDriverInstance(FormDataDriverName, {
53
- form,
54
- setForm,
55
- FormFields
20
+ function useFormTools() {
21
+ let {
22
+ form,
23
+ setForm,
24
+ FormType,
25
+ FormFields,
26
+ FormDataDriverName = "ArrayWithObjects" || "ObjectWithIterableObjects" || "ObjectWithNamedKeyObjects",
27
+ FormDataDriver = null,
28
+ FocusControllerProps = DefaultFocusControllerProps,
29
+ goToNextFieldOnEnterPressed = true
30
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
+ FocusControllerProps = {
32
+ ...DefaultFocusControllerProps,
33
+ ...FocusControllerProps
34
+ };
35
+ const FormDataDrivers = {
36
+ ArrayWithObjects: {
37
+ handlers: _ArrayWithObjects.default,
38
+ default: true
39
+ },
40
+ ObjectWithIterableObjects: {
41
+ handlers: _ObjectWithIterableObjects.default
42
+ },
43
+ ObjectWithNamedKeyObjects: {
44
+ handlers: _ObjectWithNamedKeyObjects.default
45
+ }
46
+ };
47
+ const getFormDataDriver = name => {
48
+ return FormDataDriver || FormDataDrivers[name]?.handlers || Object.values(FormDataDrivers).find(df => df.default === true)?.handlers || (() => ({}));
49
+ };
50
+ const getFormDataDriverInstance = function (name) {
51
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
52
+ args[_key - 1] = arguments[_key];
53
+ }
54
+ return getFormDataDriver(name)(...args);
55
+ };
56
+ const {
57
+ getFieldClassName,
58
+ updateFormField
59
+ } = (0, _General.default)();
60
+ const {
61
+ getFieldData,
62
+ getFormField,
63
+ setFormFields,
64
+ setFormField,
65
+ getFormFieldsAsArray,
66
+ getFormFieldsKeys,
67
+ removeAllFormFields,
68
+ removeFormField,
69
+ removeFormFields
70
+ } = getFormDataDriverInstance(FormDataDriverName, {
71
+ form,
72
+ setForm,
73
+ FormFields
74
+ });
75
+
76
+ ///////////////////////////////////////////////////////////////
77
+ //--- OnChange Observer ---//--- START ---//
78
+ const [onChangeObservers, setOnChangeObservers] = (0, _react.useState)({});
79
+ const addOnChangeObserver = (key, cb) => {
80
+ let observerId = null;
81
+ setOnChangeObservers(state => {
82
+ //Set Default Value
83
+ if (!state[key]) state[key] = {};
84
+ observerId = state[key].length;
85
+ state[key][observerId] = cb;
86
+ return state;
56
87
  });
57
- ///////////////////////////////////////////////////////////////
58
- //--- OnChange Observer ---//--- START ---//
59
- const [onChangeObservers, setOnChangeObservers] = (0, _react.useState)({});
60
- const addOnChangeObserver = (key, cb)=>{
61
- let observerId = null;
62
- setOnChangeObservers((state)=>{
63
- //Set Default Value
64
- if (!state[key]) state[key] = {};
65
- observerId = state[key].length;
66
- state[key][observerId] = cb;
67
- return state;
68
- });
69
- return observerId;
70
- };
71
- const removeOnChangeObserver = (key, id)=>{
72
- setOnChangeObservers((state)=>{
73
- //Set Default Value
74
- if (!state[key]) return state;
75
- state[key] = Object.keys(state).filter((cbId)=>cbId !== id).map((cbId)=>state[key][cbId]);
76
- return state;
77
- });
78
- };
79
- const onChangeObserver = (key, value)=>{
80
- if (!onChangeObservers[key] || typeof onChangeObservers[key] !== "object") return;
81
- const Observers = onChangeObservers[key];
82
- Object.values(Observers).map((cb)=>{
83
- cb({
84
- value,
85
- form
86
- });
87
- return null;
88
- });
89
- };
90
- const onFieldChange = (key, value)=>{
91
- var _getFormField;
92
- if (value === ((_getFormField = getFormField(key)) === null || _getFormField === void 0 ? void 0 : _getFormField.value)) return false;
93
- onChangeObserver(key, value);
94
- setFormField((field)=>({
95
- ...field,
96
- error: "",
97
- value
98
- }), key);
99
- };
100
- //--- OnChange Observer ---//--- END ---//
101
- ///////////////////////////////////////////////////////////////
102
- ///////////////////////////////////////////////////////////////
103
- //--- Form Submit Blocker ---//--- START ---//
104
- const [formSubmitBlockers, setFormSubmitBlockers] = (0, _react.useState)([]);
105
- const toggleFormSubmitBlock = (key, value)=>{
106
- setFormSubmitBlockers((state)=>state.includes(key) || !value ? [
107
- ...state.filter((k)=>k !== key)
108
- ] : [
109
- ...state,
110
- key
111
- ]);
112
- };
113
- const clearFormSubmitBlockers = ()=>setFormSubmitBlockers([]);
114
- //--- Form Submit Blocker ---//--- END ---//
115
- ///////////////////////////////////////////////////////////////
116
- ///////////////////////////////////////////////////////////////
117
- //--- Property Observer Blocker ---//--- START ---//
118
- // const [propertyObservers, setPropertyObservers] = useState({});
119
- // function addPropertyObserver () {
120
- // };
121
- //--- Property Observer Blocker ---//--- END ---//
122
- ///////////////////////////////////////////////////////////////
123
- ///////////////////////////////////////////////////////////////
124
- //--- Render Fields Controller ---//--- START ---//
125
- const [isFormFieldsAdded, setIsFormFieldsAdded] = (0, _react.useState)(false);
126
- const [renderFormFields, setRenderFormFieldsState] = (0, _react.useState)([]);
127
- const setRenderFormFields = (data)=>{
128
- setIsFormFieldsAdded(true);
129
- // eslint-disable-next-line no-use-before-define
130
- removeRenderFields(renderFormFields);
131
- // eslint-disable-next-line no-use-before-define
132
- resetIsInitFocused();
133
- setRenderFormFieldsState(data);
134
- };
135
- const addRenderFields = (fields)=>{
136
- setRenderFormFieldsState((state)=>[
137
- ...state,
138
- ...fields
139
- ]);
140
- };
141
- const removeRenderFields = (fields)=>{
142
- setRenderFormFieldsState((state)=>state.filter((field)=>!fields.includes(field)));
143
- };
144
- const [isFormRendered, setIsFormRendered] = (0, _react.useState)(false);
145
- const submitIsFormRendered = ()=>setIsFormRendered(true);
146
- const resetIsFormRendered = ()=>setIsFormRendered(false);
147
- const onEnterDown = async (e)=>{
148
- if (!goToNextFieldOnEnterPressed) return false;
149
- const focusable = document.querySelectorAll('a, button, input, [tabindex]:not([tabindex="-1"])');
150
- const currentIndex = await new Promise((resolve)=>{
151
- focusable.forEach((node, i)=>{
152
- if (node === e.target) resolve(i);
153
- });
154
- });
155
- if (!currentIndex) return false;
156
- const nextIndex = currentIndex + 1;
157
- if (nextIndex >= focusable.length) return false;
158
- const nextItem = focusable[nextIndex];
159
- nextItem.focus();
160
- };
161
- const onKeyDown = (...args)=>{
162
- const event = args.reduce((e, item)=>{
163
- if ((item === null || item === void 0 ? void 0 : item.nativeEvent) instanceof KeyboardEvent) return item;
164
- return e;
165
- }, null);
166
- if (!event) return false;
167
- const { keyCode } = event;
168
- switch(keyCode){
169
- //OnEnterDown
170
- case 13:
171
- onEnterDown(event);
172
- break;
173
- default:
174
- break;
175
- }
176
- };
177
- //On Type Change
178
- (0, _react.useEffect)(()=>{
179
- resetIsFormRendered();
180
- }, [
181
- FormType
182
- ]);
183
- //On Render Fields Change
184
- (0, _react.useEffect)(()=>{
185
- if (isFormFieldsAdded) resetIsFormRendered(false);
186
- //Add Form Fields
187
- if (renderFormFields.length !== 0) {
188
- setFormFields((fields)=>{
189
- return renderFormFields.reduce((result, key)=>{
190
- var _field_className;
191
- const fieldData = getFieldData(key);
192
- const field = getFormField(key) ? getFormField(key) : fieldData;
193
- if (!(field === null || field === void 0 ? void 0 : field.className) || (field === null || field === void 0 ? void 0 : (_field_className = field.className) === null || _field_className === void 0 ? void 0 : _field_className.indexOf(getFieldClassName(key, FormType))) === -1) {
194
- field.className = `${field === null || field === void 0 ? void 0 : field.className} ${getFieldClassName(key, FormType)}`;
195
- }
196
- if (typeof (fieldData === null || fieldData === void 0 ? void 0 : fieldData.label) === "object") {
197
- field.label = fieldData.label[FormType] || fieldData.label.default;
198
- }
199
- field.ref = /*#__PURE__*/ (0, _react.createRef)();
200
- field.wrapperRef = /*#__PURE__*/ (0, _react.createRef)();
201
- field.isValueChangedByUser = false;
202
- if (goToNextFieldOnEnterPressed) {
203
- const onKeyDownProp = field.onKeyDown || (()=>{});
204
- field.onKeyDown = (...args)=>{
205
- onKeyDown(...args);
206
- onKeyDownProp(...args);
207
- };
208
- }
209
- //Is Field Value Changed By USER
210
- // eslint-disable-next-line no-use-before-define
211
- addOnFieldRenderedObserver(key, ()=>{
212
- var _getFormField_ref_current, _getFormField_ref, _getFormField;
213
- const element = (_getFormField = getFormField(key)) === null || _getFormField === void 0 ? void 0 : (_getFormField_ref = _getFormField.ref) === null || _getFormField_ref === void 0 ? void 0 : (_getFormField_ref_current = _getFormField_ref.current) === null || _getFormField_ref_current === void 0 ? void 0 : _getFormField_ref_current.querySelector((field === null || field === void 0 ? void 0 : field.focusSelector) || "input");
214
- const handler = ()=>setFormField({
215
- isValueChangedByUser: true
216
- }, key);
217
- element === null || element === void 0 ? void 0 : element.addEventListener("paste", handler, {
218
- once: true
219
- });
220
- element === null || element === void 0 ? void 0 : element.addEventListener("keypress", handler, {
221
- once: true
222
- });
223
- }, true);
224
- return updateFormField(result, field, key);
225
- }, fields);
226
- });
227
- }
228
- }, [
229
- renderFormFields
230
- ]);
231
- const [onFormRenderObservers, setOnFormRenderObservers] = (0, _react.useState)([]);
232
- const addOnFormRenderObserver = (cb, { once = false } = {})=>{
233
- setOnFormRenderObservers((state)=>[
234
- ...state,
235
- {
236
- cb,
237
- once,
238
- isWorkedOut: false
239
- }
240
- ]);
241
- };
242
- // eslint-disable-next-line no-unused-vars
243
- const updateOnFormRenderObserver = (key, data)=>{
244
- setOnFormRenderObservers((state)=>{
245
- const copy = [
246
- ...state
247
- ];
248
- copy[key] = {
249
- ...state[key],
250
- ...data
251
- };
252
- return copy;
253
- });
254
- };
255
- const removeOnFormRenderObserver = (key)=>{
256
- setOnFormRenderObservers((state)=>state.slice().filter((v, i)=>i !== key));
257
- };
258
- const onFormRenderWorker = ()=>{
259
- // eslint-disable-next-line default-param-last
260
- onFormRenderObservers.map(({ once, isWorkedOut, cb = ()=>{} } = {}, key)=>{
261
- if (once && isWorkedOut) return null;
262
- cb(form);
263
- if (once) removeOnFormRenderObserver(key);
264
- else updateOnFormRenderObserver(key, {
265
- isWorkedOut: true
266
- });
267
- return null;
268
- });
269
- };
270
- //On Form Rendered
271
- (0, _react.useEffect)(()=>{
272
- if (!isFormRendered && onFormRenderObservers.length) {
273
- const formFieldsKeys = getFormFieldsKeys(form);
274
- const isAllFieldsRendered = renderFormFields.reduce((result, key)=>{
275
- if (!formFieldsKeys.includes(key)) result = false;
276
- return result;
277
- }, true);
278
- if (isAllFieldsRendered) {
279
- submitIsFormRendered(true);
280
- onFormRenderWorker();
281
- }
282
- }
283
- }, [
284
- form,
285
- renderFormFields,
286
- onFormRenderObservers
287
- ]);
288
- //--- Render Fields Controller ---//--- END ---//
289
- ///////////////////////////////////////////////////////////////
290
- ///////////////////////////////////////////////////////////////
291
- //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//
292
- const hightliteErrorLabels = ()=>{
293
- const fields = getFormFieldsAsArray();
294
- const filtered = fields === null || fields === void 0 ? void 0 : fields.reduce((result, field)=>{
295
- if (field === null || field === void 0 ? void 0 : field.errorLabelHightlite) {
296
- // eslint-disable-next-line no-use-before-define
297
- result.push({
298
- ...field,
299
- className: getFieldClassName(field === null || field === void 0 ? void 0 : field.key, FormType)
300
- });
301
- }
302
- return result;
303
- }, []);
304
- filtered === null || filtered === void 0 ? void 0 : filtered.map((field)=>{
305
- const formField = document.querySelector(`.${field === null || field === void 0 ? void 0 : field.className}`);
306
- if (!formField) return null;
307
- formField.classList.remove("errorLabelHightlite");
308
- if (field === null || field === void 0 ? void 0 : field.error) {
309
- formField.classList.add("errorLabelHightlite");
310
- }
311
- return null;
312
- });
313
- };
314
- (0, _react.useEffect)(()=>{
315
- hightliteErrorLabels();
316
- }, [
88
+ return observerId;
89
+ };
90
+ const removeOnChangeObserver = (key, id) => {
91
+ setOnChangeObservers(state => {
92
+ //Set Default Value
93
+ if (!state[key]) return state;
94
+ state[key] = Object.keys(state).filter(cbId => cbId !== id).map(cbId => state[key][cbId]);
95
+ return state;
96
+ });
97
+ };
98
+ const onChangeObserver = (key, value) => {
99
+ if (!onChangeObservers[key] || typeof onChangeObservers[key] !== "object") return;
100
+ const Observers = onChangeObservers[key];
101
+ Object.values(Observers).map(cb => {
102
+ cb({
103
+ value,
317
104
  form
318
- ]);
319
- //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//
320
- ///////////////////////////////////////////////////////////////
321
- ///////////////////////////////////////////////////////////////
322
- //--- Fields Focus Controller ---//--- START ---//
323
- const [isInitFocused, setIsInitFocused] = (0, _react.useState)(false);
324
- const [autoFocusedField, setAutoFocusedField] = (0, _react.useState)(null);
325
- const setFirstFieldInitFocused = ()=>setIsInitFocused(true);
326
- const resetIsInitFocused = ()=>setIsInitFocused(false);
327
- const toggleFieldFocus = ({ key, cb = ()=>{}, form: argForm, field }, action = "focus")=>{
328
- if (!key && !field) return null;
329
- if (!argForm) argForm = form;
330
- const formField = field || getFormField(key, argForm);
331
- if (!formField || !formField.ref) {
332
- return false;
333
- }
334
- if (action === "focus" && FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(formField === null || formField === void 0 ? void 0 : formField.value)) return null;
335
- setTimeout(()=>{
336
- var _formField_ref_current_querySelector, _formField_ref_current;
337
- (_formField_ref_current = formField.ref.current) === null || _formField_ref_current === void 0 ? void 0 : (_formField_ref_current_querySelector = _formField_ref_current.querySelector((formField === null || formField === void 0 ? void 0 : formField.focusSelector) || "input")) === null || _formField_ref_current_querySelector === void 0 ? void 0 : _formField_ref_current_querySelector[action]();
338
- cb();
339
- }, 50);
340
- };
341
- const setFieldFocus = ({ key, cb = ()=>{}, form: argForm, field })=>toggleFieldFocus({
342
- key,
343
- cb,
344
- form: argForm,
345
- field
346
- }, "focus");
347
- const setFieldBlur = ({ key, cb = ()=>{}, form: argForm, field })=>toggleFieldFocus({
348
- key,
349
- cb,
350
- form: argForm,
351
- field
352
- }, "blur");
353
- const setFirstFieldFocus = ()=>{
354
- let field = null;
355
- for(let i = 0; i < renderFormFields.length && !field; ++i){
356
- const key = renderFormFields[i];
357
- const tmpField = getFormField(key);
358
- if (tmpField && !(tmpField === null || tmpField === void 0 ? void 0 : tmpField.disabled)) field = tmpField;
359
- }
360
- if (!field) return false;
361
- if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(field === null || field === void 0 ? void 0 : field.value)) {
362
- setFirstFieldInitFocused();
363
- return false;
364
- }
365
- setAutoFocusedField(field.key);
366
- const callback = ()=>{
367
- setFormField({
368
- value: field.value
369
- }, field.key);
370
- setFirstFieldInitFocused();
371
- };
372
- setTimeout(()=>setFieldFocus({
373
- key: field.key,
374
- cb: callback,
375
- form
376
- }), 50);
377
- };
378
- const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = (0, _react.useState)({});
379
- const addOnFieldFocusCallback = (key, cb)=>{
380
- setOnFieldFocusCallbacks((state)=>{
381
- const stateCopy = {
382
- ...state
105
+ });
106
+ return null;
107
+ });
108
+ };
109
+ const onFieldChange = (key, value) => {
110
+ if (value === getFormField(key)?.value) return false;
111
+ onChangeObserver(key, value);
112
+ setFormField(field => ({
113
+ ...field,
114
+ error: "",
115
+ value
116
+ }), key);
117
+ };
118
+ //--- OnChange Observer ---//--- END ---//
119
+
120
+ ///////////////////////////////////////////////////////////////
121
+ ///////////////////////////////////////////////////////////////
122
+
123
+ //--- Form Submit Blocker ---//--- START ---//
124
+ const [formSubmitBlockers, setFormSubmitBlockers] = (0, _react.useState)([]);
125
+ const toggleFormSubmitBlock = (key, value) => {
126
+ setFormSubmitBlockers(state => state.includes(key) || !value ? [...state.filter(k => k !== key)] : [...state, key]);
127
+ };
128
+ const clearFormSubmitBlockers = () => setFormSubmitBlockers([]);
129
+ //--- Form Submit Blocker ---//--- END ---//
130
+
131
+ ///////////////////////////////////////////////////////////////
132
+ ///////////////////////////////////////////////////////////////
133
+
134
+ //--- Property Observer Blocker ---//--- START ---//
135
+ // const [propertyObservers, setPropertyObservers] = useState({});
136
+ // function addPropertyObserver () {
137
+ // };
138
+ //--- Property Observer Blocker ---//--- END ---//
139
+
140
+ ///////////////////////////////////////////////////////////////
141
+ ///////////////////////////////////////////////////////////////
142
+
143
+ //--- Render Fields Controller ---//--- START ---//
144
+ const [isFormFieldsAdded, setIsFormFieldsAdded] = (0, _react.useState)(false);
145
+ const [renderFormFields, setRenderFormFieldsState] = (0, _react.useState)([]);
146
+ const setRenderFormFields = data => {
147
+ setIsFormFieldsAdded(true);
148
+ // eslint-disable-next-line no-use-before-define
149
+ removeRenderFields(renderFormFields);
150
+ // eslint-disable-next-line no-use-before-define
151
+ resetIsInitFocused();
152
+ setRenderFormFieldsState(data);
153
+ };
154
+ const addRenderFields = fields => {
155
+ setRenderFormFieldsState(state => [...state, ...fields]);
156
+ };
157
+ const removeRenderFields = fields => {
158
+ setRenderFormFieldsState(state => state.filter(field => !fields.includes(field)));
159
+ };
160
+ const [isFormRendered, setIsFormRendered] = (0, _react.useState)(false);
161
+ const submitIsFormRendered = () => setIsFormRendered(true);
162
+ const resetIsFormRendered = () => setIsFormRendered(false);
163
+ const onEnterDown = async e => {
164
+ if (!goToNextFieldOnEnterPressed) return false;
165
+ const focusable = document.querySelectorAll('a, button, input, [tabindex]:not([tabindex="-1"])');
166
+ const currentIndex = await new Promise(resolve => {
167
+ focusable.forEach((node, i) => {
168
+ if (node === e.target) resolve(i);
169
+ });
170
+ });
171
+ if (!currentIndex) return false;
172
+ const nextIndex = currentIndex + 1;
173
+ if (nextIndex >= focusable.length) return false;
174
+ const nextItem = focusable[nextIndex];
175
+ nextItem.focus();
176
+ };
177
+ const onKeyDown = function () {
178
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
179
+ args[_key2] = arguments[_key2];
180
+ }
181
+ const event = args.reduce((e, item) => {
182
+ if (item?.nativeEvent instanceof KeyboardEvent) return item;
183
+ return e;
184
+ }, null);
185
+ if (!event) return false;
186
+ const {
187
+ keyCode
188
+ } = event;
189
+ switch (keyCode) {
190
+ //OnEnterDown
191
+ case 13:
192
+ onEnterDown(event);
193
+ break;
194
+ default:
195
+ break;
196
+ }
197
+ };
198
+
199
+ //On Type Change
200
+ (0, _react.useEffect)(() => {
201
+ resetIsFormRendered();
202
+ }, [FormType]);
203
+
204
+ //On Render Fields Change
205
+ (0, _react.useEffect)(() => {
206
+ if (isFormFieldsAdded) resetIsFormRendered(false);
207
+
208
+ //Add Form Fields
209
+ if (renderFormFields.length !== 0) {
210
+ setFormFields(fields => {
211
+ return renderFormFields.reduce((result, key) => {
212
+ const fieldData = getFieldData(key);
213
+ const field = getFormField(key) ? getFormField(key) : fieldData;
214
+ if (!field?.className || field?.className?.indexOf(getFieldClassName(key, FormType)) === -1) {
215
+ field.className = `${field?.className} ${getFieldClassName(key, FormType)}`;
216
+ }
217
+ if (typeof fieldData?.label === "object") {
218
+ field.label = fieldData.label[FormType] || fieldData.label.default;
219
+ }
220
+ field.ref = /*#__PURE__*/(0, _react.createRef)();
221
+ field.wrapperRef = /*#__PURE__*/(0, _react.createRef)();
222
+ field.isValueChangedByUser = false;
223
+ if (goToNextFieldOnEnterPressed) {
224
+ const onKeyDownProp = field.onKeyDown || (() => {});
225
+ field.onKeyDown = function () {
226
+ onKeyDown(...arguments);
227
+ onKeyDownProp(...arguments);
383
228
  };
384
- if (!state[key]) stateCopy[key] = [];
385
- stateCopy[key].push(cb);
386
- return stateCopy;
387
- });
388
- };
389
- const callOnFieldFocusCallbacks = (key)=>{
390
- var _onFieldFocusCallbacks_key;
391
- if (!Array.isArray(onFieldFocusCallbacks[key])) return null;
392
- (_onFieldFocusCallbacks_key = onFieldFocusCallbacks[key]) === null || _onFieldFocusCallbacks_key === void 0 ? void 0 : _onFieldFocusCallbacks_key.map((cb)=>cb());
393
- };
394
- const [focusOnRenderFields, setFocusOnRenderFields] = (0, _react.useState)([]);
395
- const addFocusFieldOnRender = (key, cb)=>{
396
- setFocusOnRenderFields((state)=>[
397
- ...state,
398
- key
399
- ]);
400
- if (cb) addOnFieldFocusCallback(key, cb);
401
- };
402
- const removeFocusFieldOnRender = (key)=>{
403
- setFocusOnRenderFields((state)=>state.filter((field)=>field !== key));
404
- };
405
- (0, _react.useEffect)(()=>{
406
- if (FocusControllerProps.setAutoFocus && !isInitFocused && !autoFocusedField && isFormRendered) setFirstFieldFocus();
407
- if (focusOnRenderFields.length) {
408
- var _getFormFieldsKeys;
409
- (_getFormFieldsKeys = getFormFieldsKeys(form)) === null || _getFormFieldsKeys === void 0 ? void 0 : _getFormFieldsKeys.map((key)=>{
410
- var _getFormField_value, _getFormField;
411
- if (focusOnRenderFields.includes(key) && ((_getFormField = getFormField(key)) === null || _getFormField === void 0 ? void 0 : (_getFormField_value = _getFormField.value) === null || _getFormField_value === void 0 ? void 0 : _getFormField_value.length) === 0) {
412
- const cb = ()=>{
413
- removeFocusFieldOnRender(key);
414
- callOnFieldFocusCallbacks(key);
415
- };
416
- setFieldFocus({
417
- key,
418
- form,
419
- cb
420
- });
421
- }
422
- return null;
229
+ }
230
+
231
+ //Is Field Value Changed By USER
232
+ // eslint-disable-next-line no-use-before-define
233
+ addOnFieldRenderedObserver(key, () => {
234
+ const element = getFormField(key)?.ref?.current?.querySelector(field?.focusSelector || "input");
235
+ const handler = () => setFormField({
236
+ isValueChangedByUser: true
237
+ }, key);
238
+ element?.addEventListener("paste", handler, {
239
+ once: true
423
240
  });
424
- }
425
- }, [
426
- form,
427
- focusOnRenderFields,
428
- isInitFocused,
429
- isFormRendered
430
- ]);
431
- (0, _react.useEffect)(()=>{
432
- setAutoFocusedField(null);
433
- }, [
434
- isInitFocused
435
- ]);
436
- (0, _react.useEffect)(()=>{
437
- resetIsInitFocused();
438
- }, [
439
- FormType
440
- ]);
441
- //Remove Focus From Autocomplete field !!! TODO
442
- // useEffect(() => {
443
- // if (!autoFocusedField) return null;
444
- // const field = getFormField(autoFocusedField);
445
- // if (field?.value !== '' && !field?.isValueChangedByUser) {
446
- // setFieldBlur({key: autoFocusedField, form});
447
- // }
448
- // }, [autoFocusedField, form]);
449
- //--- Fields Focus Controller ---//--- END ---//
450
- ///////////////////////////////////////////////////////////////
451
- ///////////////////////////////////////////////////////////////
452
- //--- OnFieldRendered Observer ---//--- START ---//
453
- const [onFieldRenderedObservers, setOnFieldRenderedObservers] = (0, _react.useState)({});
454
- const [isFieldObserversReset, setIsFieldObserversReset] = (0, _react.useState)(false);
455
- const resetOnFieldRenderObserversWorkedOut = ()=>{
456
- if (!isFieldObserversReset && renderFormFields.length) {
457
- renderFormFields.map((key)=>{
458
- setFormField({
459
- isOnRenderObserversWorkedOut: false
460
- }, key);
461
- return key;
241
+ element?.addEventListener("keypress", handler, {
242
+ once: true
462
243
  });
463
- setIsFieldObserversReset(true);
464
- }
465
- };
466
- const addOnFieldRenderedObserver = (key, cb, isOnceCallable = true)=>{
467
- let observerId = null;
468
- setOnFieldRenderedObservers((state)=>{
469
- //Set Default Value
470
- if (!state[key]) state[key] = {};
471
- observerId = Object.keys(state[key]).length || 0;
472
- state[key][observerId] = {
473
- f: cb,
474
- isOnceCallable
475
- };
476
- return state;
477
- });
478
- return observerId;
479
- };
480
- const updateOnFieldRenderedObserver = (key, id, data)=>{
481
- setOnFieldRenderedObservers((state)=>{
482
- //Set Default Value
483
- if (!state[key]) return state;
484
- state[key][id] = {
485
- ...state[key][id],
486
- ...data
487
- };
488
- return state;
489
- });
490
- };
491
- const removeOnFieldRenderedObserver = (key, id)=>{
492
- setOnFieldRenderedObservers((state)=>{
493
- //Set Default Value
494
- if (!state[key]) return state;
495
- state[key] = Object.keys(state).filter((cbId)=>cbId !== id).map((cbId)=>state[key][cbId]);
496
- return state;
244
+ }, true);
245
+ return updateFormField(result, field, key);
246
+ }, fields);
247
+ });
248
+ }
249
+ }, [renderFormFields]);
250
+ const [onFormRenderObservers, setOnFormRenderObservers] = (0, _react.useState)([]);
251
+ const addOnFormRenderObserver = function (cb) {
252
+ let {
253
+ once = false
254
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
255
+ setOnFormRenderObservers(state => [...state, {
256
+ cb,
257
+ once,
258
+ isWorkedOut: false
259
+ }]);
260
+ };
261
+ // eslint-disable-next-line no-unused-vars
262
+ const updateOnFormRenderObserver = (key, data) => {
263
+ setOnFormRenderObservers(state => {
264
+ const copy = [...state];
265
+ copy[key] = {
266
+ ...state[key],
267
+ ...data
268
+ };
269
+ return copy;
270
+ });
271
+ };
272
+ const removeOnFormRenderObserver = key => {
273
+ setOnFormRenderObservers(state => state.slice().filter((v, i) => i !== key));
274
+ };
275
+ const onFormRenderWorker = () => {
276
+ // eslint-disable-next-line default-param-last
277
+ onFormRenderObservers.map(function () {
278
+ let {
279
+ once,
280
+ isWorkedOut,
281
+ cb = () => {}
282
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
283
+ let key = arguments.length > 1 ? arguments[1] : undefined;
284
+ if (once && isWorkedOut) return null;
285
+ cb(form);
286
+ if (once) removeOnFormRenderObserver(key);else updateOnFormRenderObserver(key, {
287
+ isWorkedOut: true
288
+ });
289
+ return null;
290
+ });
291
+ };
292
+
293
+ //On Form Rendered
294
+ (0, _react.useEffect)(() => {
295
+ if (!isFormRendered && onFormRenderObservers.length) {
296
+ const formFieldsKeys = getFormFieldsKeys(form);
297
+ const isAllFieldsRendered = renderFormFields.reduce((result, key) => {
298
+ if (!formFieldsKeys.includes(key)) result = false;
299
+ return result;
300
+ }, true);
301
+ if (isAllFieldsRendered) {
302
+ submitIsFormRendered(true);
303
+ onFormRenderWorker();
304
+ }
305
+ }
306
+ }, [form, renderFormFields, onFormRenderObservers]);
307
+ //--- Render Fields Controller ---//--- END ---//
308
+
309
+ ///////////////////////////////////////////////////////////////
310
+ ///////////////////////////////////////////////////////////////
311
+
312
+ //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//
313
+ const hightliteErrorLabels = () => {
314
+ const fields = getFormFieldsAsArray();
315
+ const filtered = fields?.reduce((result, field) => {
316
+ if (field?.errorLabelHightlite) {
317
+ // eslint-disable-next-line no-use-before-define
318
+ result.push({
319
+ ...field,
320
+ className: getFieldClassName(field?.key, FormType)
497
321
  });
498
- };
499
- const onFieldRenderedObserver = (key, data)=>{
500
- if (!onFieldRenderedObservers[key] || typeof onFieldRenderedObservers[key] !== "object") return;
501
- const Observers = onFieldRenderedObservers[key];
502
- const FilteredObservers = Object.values(Observers).filter((observer)=>!(observer === null || observer === void 0 ? void 0 : observer.isObserverWorkedOut));
503
- if (FilteredObservers.length === 0) return null;
322
+ }
323
+ return result;
324
+ }, []);
325
+ filtered?.map(field => {
326
+ const formField = document.querySelector(`.${field?.className}`);
327
+ if (!formField) return null;
328
+ formField.classList.remove("errorLabelHightlite");
329
+ if (field?.error) {
330
+ formField.classList.add("errorLabelHightlite");
331
+ }
332
+ return null;
333
+ });
334
+ };
335
+ (0, _react.useEffect)(() => {
336
+ hightliteErrorLabels();
337
+ }, [form]);
338
+ //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//
339
+
340
+ ///////////////////////////////////////////////////////////////
341
+ ///////////////////////////////////////////////////////////////
342
+
343
+ //--- Fields Focus Controller ---//--- START ---//
344
+ const [isInitFocused, setIsInitFocused] = (0, _react.useState)(false);
345
+ const [autoFocusedField, setAutoFocusedField] = (0, _react.useState)(null);
346
+ const setFirstFieldInitFocused = () => setIsInitFocused(true);
347
+ const resetIsInitFocused = () => setIsInitFocused(false);
348
+ const toggleFieldFocus = function (_ref) {
349
+ let {
350
+ key,
351
+ cb = () => {},
352
+ form: argForm,
353
+ field
354
+ } = _ref;
355
+ let action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "focus";
356
+ if (!key && !field) return null;
357
+ if (!argForm) argForm = form;
358
+ const formField = field || getFormField(key, argForm);
359
+ if (!formField || !formField.ref) {
360
+ return false;
361
+ }
362
+ if (action === "focus" && FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(formField?.value)) return null;
363
+ setTimeout(() => {
364
+ formField.ref.current?.querySelector(formField?.focusSelector || "input")?.[action]();
365
+ cb();
366
+ }, 50);
367
+ };
368
+ const setFieldFocus = _ref2 => {
369
+ let {
370
+ key,
371
+ cb = () => {},
372
+ form: argForm,
373
+ field
374
+ } = _ref2;
375
+ return toggleFieldFocus({
376
+ key,
377
+ cb,
378
+ form: argForm,
379
+ field
380
+ }, "focus");
381
+ };
382
+ const setFieldBlur = _ref3 => {
383
+ let {
384
+ key,
385
+ cb = () => {},
386
+ form: argForm,
387
+ field
388
+ } = _ref3;
389
+ return toggleFieldFocus({
390
+ key,
391
+ cb,
392
+ form: argForm,
393
+ field
394
+ }, "blur");
395
+ };
396
+ const setFirstFieldFocus = () => {
397
+ let field = null;
398
+ for (let i = 0; i < renderFormFields.length && !field; ++i) {
399
+ const key = renderFormFields[i];
400
+ const tmpField = getFormField(key);
401
+ if (tmpField && !tmpField?.disabled) field = tmpField;
402
+ }
403
+ if (!field) return false;
404
+ if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(field?.value)) {
405
+ setFirstFieldInitFocused();
406
+ return false;
407
+ }
408
+ setAutoFocusedField(field.key);
409
+ const callback = () => {
410
+ setFormField({
411
+ value: field.value
412
+ }, field.key);
413
+ setFirstFieldInitFocused();
414
+ };
415
+ setTimeout(() => setFieldFocus({
416
+ key: field.key,
417
+ cb: callback,
418
+ form
419
+ }), 50);
420
+ };
421
+ const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = (0, _react.useState)({});
422
+ const addOnFieldFocusCallback = (key, cb) => {
423
+ setOnFieldFocusCallbacks(state => {
424
+ const stateCopy = {
425
+ ...state
426
+ };
427
+ if (!state[key]) stateCopy[key] = [];
428
+ stateCopy[key].push(cb);
429
+ return stateCopy;
430
+ });
431
+ };
432
+ const callOnFieldFocusCallbacks = key => {
433
+ if (!Array.isArray(onFieldFocusCallbacks[key])) return null;
434
+ onFieldFocusCallbacks[key]?.map(cb => cb());
435
+ };
436
+ const [focusOnRenderFields, setFocusOnRenderFields] = (0, _react.useState)([]);
437
+ const addFocusFieldOnRender = (key, cb) => {
438
+ setFocusOnRenderFields(state => [...state, key]);
439
+ if (cb) addOnFieldFocusCallback(key, cb);
440
+ };
441
+ const removeFocusFieldOnRender = key => {
442
+ setFocusOnRenderFields(state => state.filter(field => field !== key));
443
+ };
444
+ (0, _react.useEffect)(() => {
445
+ if (FocusControllerProps.setAutoFocus && !isInitFocused && !autoFocusedField && isFormRendered) setFirstFieldFocus();
446
+ if (focusOnRenderFields.length) {
447
+ getFormFieldsKeys(form)?.map(key => {
448
+ if (focusOnRenderFields.includes(key) && getFormField(key)?.value?.length === 0) {
449
+ const cb = () => {
450
+ removeFocusFieldOnRender(key);
451
+ callOnFieldFocusCallbacks(key);
452
+ };
453
+ setFieldFocus({
454
+ key,
455
+ form,
456
+ cb
457
+ });
458
+ }
459
+ return null;
460
+ });
461
+ }
462
+ }, [form, focusOnRenderFields, isInitFocused, isFormRendered]);
463
+ (0, _react.useEffect)(() => {
464
+ setAutoFocusedField(null);
465
+ }, [isInitFocused]);
466
+ (0, _react.useEffect)(() => {
467
+ resetIsInitFocused();
468
+ }, [FormType]);
469
+
470
+ //Remove Focus From Autocomplete field !!! TODO
471
+ // useEffect(() => {
472
+ // if (!autoFocusedField) return null;
473
+ // const field = getFormField(autoFocusedField);
474
+
475
+ // if (field?.value !== '' && !field?.isValueChangedByUser) {
476
+ // setFieldBlur({key: autoFocusedField, form});
477
+ // }
478
+ // }, [autoFocusedField, form]);
479
+ //--- Fields Focus Controller ---//--- END ---//
480
+
481
+ ///////////////////////////////////////////////////////////////
482
+ ///////////////////////////////////////////////////////////////
483
+
484
+ //--- OnFieldRendered Observer ---//--- START ---//
485
+ const [onFieldRenderedObservers, setOnFieldRenderedObservers] = (0, _react.useState)({});
486
+ const [isFieldObserversReset, setIsFieldObserversReset] = (0, _react.useState)(false);
487
+ const resetOnFieldRenderObserversWorkedOut = () => {
488
+ if (!isFieldObserversReset && renderFormFields.length) {
489
+ renderFormFields.map(key => {
504
490
  setFormField({
505
- isOnRenderObserversWorkedOut: true
491
+ isOnRenderObserversWorkedOut: false
506
492
  }, key);
507
- FilteredObservers.map(({ f, isOnceCallable }, id)=>{
508
- f(data);
509
- if (isOnceCallable) updateOnFieldRenderedObserver(key, id, {
510
- isObserverWorkedOut: true
511
- });
512
- return null;
513
- });
514
- };
515
- const onRenderObserverWorker = ()=>{
516
- var _getFormFieldsKeys;
517
- return (_getFormFieldsKeys = getFormFieldsKeys(form)) === null || _getFormFieldsKeys === void 0 ? void 0 : _getFormFieldsKeys.map((key)=>{
518
- //OnFieldRendered
519
- const fieldData = getFormField(key);
520
- if (!(fieldData === null || fieldData === void 0 ? void 0 : fieldData.isOnRenderObserversWorkedOut)) {
521
- onFieldRenderedObserver(key, fieldData);
522
- return {
523
- key,
524
- isWorkedOut: true
525
- };
526
- }
527
- return {
528
- key,
529
- isWorkedOut: false
530
- };
531
- });
532
- };
533
- (0, _react.useEffect)(()=>{
534
- resetOnFieldRenderObserversWorkedOut();
535
- onRenderObserverWorker();
536
- }, [
537
- form
538
- ]);
539
- (0, _react.useEffect)(()=>{
540
- setIsFieldObserversReset(false);
541
- }, [
542
- FormType
543
- ]);
544
- //--- OnFieldRendered Observer ---//--- END ---//
545
- ///////////////////////////////////////////////////////////////
546
- ///////////////////////////////////////////////////////////////
547
- //Detect What Changed || TRY TO DO
548
- // const compare = async (prev, current) => {
549
- // if (!prev) return current;
550
- // return new Promise((resolve) => {
551
- // Object.keys(current).reduce((result, key, i, arr) => {
552
- // //If PROPERTY is NOT EXISTS BEFORE
553
- // if ([null, undefined].includes(prev[key])) {
554
- // result[key] = current[key];
555
- // }
556
- // //If PROPERTY is AN OBJECT
557
- // else if (typeof current[key] === 'object') {
558
- // //If PROPERTY is EXISTS BEFORE
559
- // const innerCompare = compare(prev[key], current[key]);
560
- // // //If SOMETHING CHANGED
561
- // if (innerCompare?.length) result[key] = innerCompare;
562
- // }
563
- // //If PROPERTY is AN SIMPLE VALUE and PROPERTY CHANGED
564
- // else if (prev[key] !== current[key]) {
565
- // result[key] = current[key];
566
- // }
567
- // if (i === arr.length-1) {
568
- // resolve(result);
569
- // }
570
- // return result;
571
- // }, {});
572
- // });
573
- // };
574
- ///////////////////////////////////////////////////////////////
575
- ///////////////////////////////////////////////////////////////
576
- //--- WindowScrollController ---//--- START ---//
577
- const scrollToField = ({ key = null, field = null, form: argForm })=>{
578
- var _wrapperRef_current;
579
- if (!key && !field) return false;
580
- if (!argForm) argForm = form;
581
- if (!field) field = getFormField(key, argForm);
582
- const wrapperRef = (field === null || field === void 0 ? void 0 : field.wrapperRef) || (field === null || field === void 0 ? void 0 : field.ref);
583
- // eslint-disable-next-line no-unsafe-optional-chaining
584
- const { top: topOffset } = wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef_current = wrapperRef.current) === null || _wrapperRef_current === void 0 ? void 0 : _wrapperRef_current.getBoundingClientRect();
585
- const scrollTop = Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;
586
- window.scrollTo({
587
- top: scrollTop
588
- });
589
- };
590
- //--- WindowScrollController ---//--- END ---//
591
- ///////////////////////////////////////////////////////////////
592
- ///////////////////////////////////////////////////////////////
593
- const addErrorsToForm = (errors, argForm = form)=>{
594
- if (!argForm) argForm = form;
595
- setFormFields((fields)=>{
596
- return errors.reduce((fields, { message: error, propertyPath: errKey })=>{
597
- return updateFormField(fields, {
598
- error
599
- }, errKey);
600
- }, fields);
601
- });
602
- };
603
- return {
604
- FormDataDrivers,
605
- //OnChangeObserver
606
- addOnChangeObserver,
607
- removeOnChangeObserver,
608
- onChangeObservers,
609
- //OnChangeHandler
493
+ return key;
494
+ });
495
+ setIsFieldObserversReset(true);
496
+ }
497
+ };
498
+ const addOnFieldRenderedObserver = function (key, cb) {
499
+ let isOnceCallable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
500
+ let observerId = null;
501
+ setOnFieldRenderedObservers(state => {
502
+ //Set Default Value
503
+ if (!state[key]) state[key] = {};
504
+ observerId = Object.keys(state[key]).length || 0;
505
+ state[key][observerId] = {
506
+ f: cb,
507
+ isOnceCallable
508
+ };
509
+ return state;
510
+ });
511
+ return observerId;
512
+ };
513
+ const updateOnFieldRenderedObserver = (key, id, data) => {
514
+ setOnFieldRenderedObservers(state => {
515
+ //Set Default Value
516
+ if (!state[key]) return state;
517
+ state[key][id] = {
518
+ ...state[key][id],
519
+ ...data
520
+ };
521
+ return state;
522
+ });
523
+ };
524
+ const removeOnFieldRenderedObserver = (key, id) => {
525
+ setOnFieldRenderedObservers(state => {
526
+ //Set Default Value
527
+ if (!state[key]) return state;
528
+ state[key] = Object.keys(state).filter(cbId => cbId !== id).map(cbId => state[key][cbId]);
529
+ return state;
530
+ });
531
+ };
532
+ const onFieldRenderedObserver = (key, data) => {
533
+ if (!onFieldRenderedObservers[key] || typeof onFieldRenderedObservers[key] !== "object") return;
534
+ const Observers = onFieldRenderedObservers[key];
535
+ const FilteredObservers = Object.values(Observers).filter(observer => !observer?.isObserverWorkedOut);
536
+ if (FilteredObservers.length === 0) return null;
537
+ setFormField({
538
+ isOnRenderObserversWorkedOut: true
539
+ }, key);
540
+ FilteredObservers.map((_ref4, id) => {
541
+ let {
542
+ f,
543
+ isOnceCallable
544
+ } = _ref4;
545
+ f(data);
546
+ if (isOnceCallable) updateOnFieldRenderedObserver(key, id, {
547
+ isObserverWorkedOut: true
548
+ });
549
+ return null;
550
+ });
551
+ };
552
+ const onRenderObserverWorker = () => {
553
+ return getFormFieldsKeys(form)?.map(key => {
554
+ //OnFieldRendered
555
+ const fieldData = getFormField(key);
556
+ if (!fieldData?.isOnRenderObserversWorkedOut) {
557
+ onFieldRenderedObserver(key, fieldData);
558
+ return {
559
+ key,
560
+ isWorkedOut: true
561
+ };
562
+ }
563
+ return {
564
+ key,
565
+ isWorkedOut: false
566
+ };
567
+ });
568
+ };
569
+ (0, _react.useEffect)(() => {
570
+ resetOnFieldRenderObserversWorkedOut();
571
+ onRenderObserverWorker();
572
+ }, [form]);
573
+ (0, _react.useEffect)(() => {
574
+ setIsFieldObserversReset(false);
575
+ }, [FormType]);
576
+ //--- OnFieldRendered Observer ---//--- END ---//
577
+
578
+ ///////////////////////////////////////////////////////////////
579
+ ///////////////////////////////////////////////////////////////
580
+
581
+ //Detect What Changed || TRY TO DO
582
+ // const compare = async (prev, current) => {
583
+ // if (!prev) return current;
584
+
585
+ // return new Promise((resolve) => {
586
+ // Object.keys(current).reduce((result, key, i, arr) => {
587
+ // //If PROPERTY is NOT EXISTS BEFORE
588
+ // if ([null, undefined].includes(prev[key])) {
589
+ // result[key] = current[key];
590
+ // }
591
+ // //If PROPERTY is AN OBJECT
592
+ // else if (typeof current[key] === 'object') {
593
+ // //If PROPERTY is EXISTS BEFORE
594
+ // const innerCompare = compare(prev[key], current[key]);
595
+ // // //If SOMETHING CHANGED
596
+ // if (innerCompare?.length) result[key] = innerCompare;
597
+ // }
598
+ // //If PROPERTY is AN SIMPLE VALUE and PROPERTY CHANGED
599
+ // else if (prev[key] !== current[key]) {
600
+ // result[key] = current[key];
601
+ // }
602
+
603
+ // if (i === arr.length-1) {
604
+ // resolve(result);
605
+ // }
606
+
607
+ // return result;
608
+ // }, {});
609
+ // });
610
+ // };
611
+
612
+ ///////////////////////////////////////////////////////////////
613
+ ///////////////////////////////////////////////////////////////
614
+
615
+ //--- WindowScrollController ---//--- START ---//
616
+ const scrollToField = _ref5 => {
617
+ let {
618
+ key = null,
619
+ field = null,
620
+ form: argForm
621
+ } = _ref5;
622
+ if (!key && !field) return false;
623
+ if (!argForm) argForm = form;
624
+ if (!field) field = getFormField(key, argForm);
625
+ const wrapperRef = field?.wrapperRef || field?.ref;
626
+ // eslint-disable-next-line no-unsafe-optional-chaining
627
+ const {
628
+ top: topOffset
629
+ } = wrapperRef?.current?.getBoundingClientRect();
630
+ const scrollTop = Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;
631
+ window.scrollTo({
632
+ top: scrollTop
633
+ });
634
+ };
635
+
636
+ //--- WindowScrollController ---//--- END ---//
637
+
638
+ ///////////////////////////////////////////////////////////////
639
+ ///////////////////////////////////////////////////////////////
640
+
641
+ const addErrorsToForm = function (errors) {
642
+ let argForm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : form;
643
+ if (!argForm) argForm = form;
644
+ setFormFields(fields => {
645
+ return errors.reduce((fields, _ref6) => {
646
+ let {
647
+ message: error,
648
+ propertyPath: errKey
649
+ } = _ref6;
650
+ return updateFormField(fields, {
651
+ error
652
+ }, errKey);
653
+ }, fields);
654
+ });
655
+ };
656
+ return {
657
+ FormDataDrivers,
658
+ //OnChangeObserver
659
+ addOnChangeObserver,
660
+ removeOnChangeObserver,
661
+ onChangeObservers,
662
+ //OnChangeHandler
663
+ onFieldChange,
664
+ //Form Submit Blocker
665
+ toggleFormSubmitBlock,
666
+ clearFormSubmitBlockers,
667
+ isFormSubmitBlocked: Boolean(formSubmitBlockers.length),
668
+ //Property Observers
669
+ // addPropertyObserver,
670
+
671
+ //Render Fields
672
+ renderFormFields,
673
+ setRenderFormFields,
674
+ addRenderFields,
675
+ removeRenderFields,
676
+ getFieldClassName,
677
+ //Field Focus Controller
678
+ isInitFocused,
679
+ setFirstFieldInitFocused,
680
+ resetIsInitFocused,
681
+ setFieldFocus,
682
+ setFieldBlur,
683
+ setFirstFieldFocus,
684
+ autoFocusedField,
685
+ addFocusFieldOnRender,
686
+ removeFocusFieldOnRender,
687
+ //Field Render Controller
688
+ addOnFieldRenderedObserver,
689
+ removeOnFieldRenderedObserver,
690
+ onFieldRenderedObservers,
691
+ updateFormField,
692
+ addOnFormRenderObserver,
693
+ submitIsFormRendered,
694
+ resetIsFormRendered,
695
+ renderFields: _ref7 => {
696
+ let {
697
+ form: argForm = form,
698
+ fields: argFields = renderFormFields,
699
+ cols: argCols = 1,
700
+ RenderFieldComponent
701
+ } = _ref7;
702
+ return (0, _RenderFields.default)({
703
+ form: argForm,
704
+ fields: argFields,
705
+ cols: argCols,
706
+ RenderFieldComponent,
610
707
  onFieldChange,
611
- //Form Submit Blocker
612
- toggleFormSubmitBlock,
613
- clearFormSubmitBlockers,
614
- isFormSubmitBlocked: Boolean(formSubmitBlockers.length),
615
- //Property Observers
616
- // addPropertyObserver,
617
- //Render Fields
618
- renderFormFields,
619
- setRenderFormFields,
620
- addRenderFields,
621
- removeRenderFields,
622
- getFieldClassName,
623
- //Field Focus Controller
624
- isInitFocused,
625
- setFirstFieldInitFocused,
626
- resetIsInitFocused,
627
- setFieldFocus,
628
- setFieldBlur,
629
- setFirstFieldFocus,
630
- autoFocusedField,
631
- addFocusFieldOnRender,
632
- removeFocusFieldOnRender,
633
- //Field Render Controller
634
- addOnFieldRenderedObserver,
635
- removeOnFieldRenderedObserver,
636
- onFieldRenderedObservers,
637
- updateFormField,
638
- addOnFormRenderObserver,
639
- submitIsFormRendered,
640
- resetIsFormRendered,
641
- renderFields: ({ form: argForm = form, fields: argFields = renderFormFields, cols: argCols = 1, RenderFieldComponent })=>(0, _RenderFields.default)({
642
- form: argForm,
643
- fields: argFields,
644
- cols: argCols,
645
- RenderFieldComponent,
646
- onFieldChange,
647
- FormDataDriver: getFormDataDriver(FormDataDriverName)
648
- }),
649
- scrollToField,
650
- getFieldData,
651
- getFormField,
652
- setFormFields,
653
- setFormField: (data, key)=>setFormField(data, key),
654
- getFormFieldsAsArray,
655
- getFormFieldsKeys,
656
- removeAllFormFields,
657
- removeFormField,
658
- removeFormFields,
659
- addErrorsToForm
660
- };
661
- }
708
+ FormDataDriver: getFormDataDriver(FormDataDriverName)
709
+ });
710
+ },
711
+ scrollToField,
712
+ getFieldData,
713
+ getFormField,
714
+ setFormFields,
715
+ setFormField: (data, key) => setFormField(data, key),
716
+ getFormFieldsAsArray,
717
+ getFormFieldsKeys,
718
+ removeAllFormFields,
719
+ removeFormField,
720
+ removeFormFields,
721
+ addErrorsToForm
722
+ };
723
+ }