intelicoreact 1.4.76 → 1.4.78

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