intelicoreact 1.6.22 → 1.6.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +98 -1
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +48 -1
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +249 -1
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +4 -1
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +65 -1
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +52 -1
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +424 -1
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +4 -1
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +173 -1
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +4 -1
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +735 -1
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +20 -1
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +529 -1
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +94 -1
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +105 -1
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +67 -1
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +247 -1
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +160 -1
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +193 -1
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +135 -1
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +116 -1
  22. package/dist/Atomic/FormElements/Input/Input.js +467 -1
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +161 -1
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +64 -1
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +200 -1
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +354 -1
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +71 -1
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +693 -1
  29. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +254 -1
  30. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +32 -1
  31. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +200 -1
  32. package/dist/Atomic/FormElements/InputLink/InputLink.js +99 -1
  33. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +37 -1
  34. package/dist/Atomic/FormElements/InputMask/InputMask.js +1214 -1
  35. package/dist/Atomic/FormElements/InputMask/config.js +15 -1
  36. package/dist/Atomic/FormElements/InputMask/functions.js +58 -1
  37. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +674 -1
  38. package/dist/Atomic/FormElements/InputMask2/config.js +15 -1
  39. package/dist/Atomic/FormElements/InputMask2/functions.js +58 -1
  40. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +766 -1
  41. package/dist/Atomic/FormElements/InputMask3/config.js +15 -1
  42. package/dist/Atomic/FormElements/InputMask3/functions.js +58 -1
  43. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +114 -1
  44. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +140 -1
  45. package/dist/Atomic/FormElements/Label/Label.js +87 -1
  46. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +506 -1
  47. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +45 -1
  48. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +331 -1
  49. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +66 -1
  50. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +80 -1
  51. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +57 -1
  52. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +54 -1
  53. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +183 -1
  54. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +222 -1
  55. package/dist/Atomic/FormElements/RangeList/RangeList.js +175 -1
  56. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +43 -1
  57. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +443 -1
  58. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +858 -1
  59. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +39 -1
  60. package/dist/Atomic/FormElements/Switcher/Switcher.js +59 -1
  61. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +50 -1
  62. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +44 -1
  63. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +100 -1
  64. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +52 -1
  65. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +64 -1
  66. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +170 -1
  67. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +202 -1
  68. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +67 -1
  69. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +115 -1
  70. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.ts +2 -2
  71. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1110 -1
  72. package/dist/Atomic/FormElements/Text/Text.js +125 -1
  73. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +49 -1
  74. package/dist/Atomic/FormElements/Textarea/Textarea.js +80 -1
  75. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +176 -1
  76. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +62 -1
  77. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +119 -1
  78. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +188 -1
  79. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +83 -1
  80. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +82 -1
  81. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +101 -1
  82. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +29 -1
  83. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +113 -1
  84. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +30 -1
  85. package/dist/Atomic/Layout/Header/Header.js +85 -1
  86. package/dist/Atomic/Layout/Spinner/Spinner.js +44 -1
  87. package/dist/Atomic/UI/Accordion/Accordion.js +108 -1
  88. package/dist/Atomic/UI/Accordion/AccordionItem.js +176 -1
  89. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +238 -1
  90. package/dist/Atomic/UI/AccordionText/AccordionText.js +69 -1
  91. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +207 -1
  92. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +56 -1
  93. package/dist/Atomic/UI/Alert/Alert.js +72 -1
  94. package/dist/Atomic/UI/Arrow/Arrow.js +132 -1
  95. package/dist/Atomic/UI/Box/Box.js +52 -1
  96. package/dist/Atomic/UI/Button/Button.js +47 -1
  97. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +72 -1
  98. package/dist/Atomic/UI/Chart/Chart.js +172 -1
  99. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +95 -1
  100. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +80 -1
  101. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +188 -1
  102. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +335 -1
  103. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +43 -1
  104. package/dist/Atomic/UI/Chart/partial/utils.js +60 -1
  105. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +109 -1
  106. package/dist/Atomic/UI/DateTime/DateTime.js +57 -1
  107. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +44 -1
  108. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +15 -1
  109. package/dist/Atomic/UI/DoubleString/DoubleString.js +102 -1
  110. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +70 -1
  111. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +221 -1
  112. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +106 -1
  113. package/dist/Atomic/UI/Hint/Hint.js +256 -1
  114. package/dist/Atomic/UI/Hint/partials/_utils.js +64 -1
  115. package/dist/Atomic/UI/Modal/Modal.js +179 -1
  116. package/dist/Atomic/UI/Modal/ModalHOC.js +97 -1
  117. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +71 -1
  118. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +110 -1
  119. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +192 -1
  120. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +75 -1
  121. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +80 -1
  122. package/dist/Atomic/UI/NavLine/NavLine.js +317 -1
  123. package/dist/Atomic/UI/PageTitle/PageTitle.js +77 -1
  124. package/dist/Atomic/UI/PieChart/PieChart.js +42 -1
  125. package/dist/Atomic/UI/Price/Price.js +31 -1
  126. package/dist/Atomic/UI/PriceRange/PriceRange.js +44 -1
  127. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +98 -1
  128. package/dist/Atomic/UI/Status/Status.js +67 -1
  129. package/dist/Atomic/UI/Table/Partials/TdCell.js +87 -1
  130. package/dist/Atomic/UI/Table/Partials/TdHeader.js +38 -1
  131. package/dist/Atomic/UI/Table/Partials/TdRow.js +99 -1
  132. package/dist/Atomic/UI/Table/Partials/TdTitle.js +52 -1
  133. package/dist/Atomic/UI/Table/Table.js +63 -1
  134. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +80 -1
  135. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +28 -1
  136. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +13 -1
  137. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +53 -1
  138. package/dist/Atomic/UI/Tag/Tag.js +167 -1
  139. package/dist/Atomic/UI/TagList/TagList.js +251 -1
  140. package/dist/Atomic/UI/UserBox/UserBox.js +86 -1
  141. package/dist/Atomic/UI/WizardStepper/constructor.js +84 -1
  142. package/dist/Atomic/UI/WizardStepper/index.js +3 -1
  143. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +37 -1
  144. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +3 -1
  145. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +61 -1
  146. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +3 -1
  147. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +39 -1
  148. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +3 -1
  149. package/dist/Atomic/UI/WizardStepper/ui/icons.js +49 -1
  150. package/dist/Atomic/UI/WizardStepper/ui/index.js +3 -1
  151. package/dist/Classes/AbortableFetch.js +454 -1
  152. package/dist/Classes/AnimatedHandler.js +47 -1
  153. package/dist/Classes/RESTAPI/index.js +228 -1
  154. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +457 -1
  155. package/dist/Classes/RESTAPI/partials/ApiBase.js +48 -1
  156. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +112 -1
  157. package/dist/Classes/RESTAPI/partials/ApiUtils.js +189 -1
  158. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +252 -1
  159. package/dist/Classes/RESTAPI/partials/Utils.js +92 -1
  160. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +3 -1
  161. package/dist/Classes/RESTAPI/partials/_utils.js +197 -1
  162. package/dist/Constants/index.constants.js +78 -1
  163. package/dist/Functions/Portal.js +22 -1
  164. package/dist/Functions/customEventListener.js +96 -1
  165. package/dist/Functions/dateTime.js +149 -1
  166. package/dist/Functions/fieldValueFormatters.js +405 -1
  167. package/dist/Functions/guards/assertions.js +294 -1
  168. package/dist/Functions/guards/safeValue.js +75 -1
  169. package/dist/Functions/guards/typeGuards.js +373 -1
  170. package/dist/Functions/hooks/useFormFieldsChangesManager.js +95 -1
  171. package/dist/Functions/locale/createTranslator.js +32 -1
  172. package/dist/Functions/operations.js +130 -1
  173. package/dist/Functions/presets/inputMaskPresets.js +170 -1
  174. package/dist/Functions/presets/inputPresets.js +60 -1
  175. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +45 -1
  176. package/dist/Functions/schemas.js +31 -1
  177. package/dist/Functions/useBodyScrollLock.js +17 -1
  178. package/dist/Functions/useClickOutside.js +15 -1
  179. package/dist/Functions/useDebounce.js +17 -1
  180. package/dist/Functions/useFieldFocus.js +84 -1
  181. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +39 -1
  182. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +159 -1
  183. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +78 -1
  184. package/dist/Functions/useFormTools/functions/General.js +134 -1
  185. package/dist/Functions/useFormTools/functions/RenderFields.js +111 -1
  186. package/dist/Functions/useFormTools/functions/usePrevious.js +12 -1
  187. package/dist/Functions/useFormTools/index.js +778 -1
  188. package/dist/Functions/useInputHighlightError.js +67 -1
  189. package/dist/Functions/useIsMobile/useIsMobile.js +33 -1
  190. package/dist/Functions/useKeyPress/useHandleKeyPress.js +52 -1
  191. package/dist/Functions/useKeyPress/useKeyPress.js +52 -1
  192. package/dist/Functions/useLocalStorage.js +34 -1
  193. package/dist/Functions/useLocationParams.js +27 -1
  194. package/dist/Functions/useMediaQuery.js +17 -1
  195. package/dist/Functions/useMetaInfo.js +43 -1
  196. package/dist/Functions/useMouseUpOutside.js +16 -1
  197. package/dist/Functions/useOnlineStatus.js +29 -1
  198. package/dist/Functions/usePasswordChecker.js +110 -1
  199. package/dist/Functions/usePrevious.js +12 -1
  200. package/dist/Functions/useResize.js +31 -1
  201. package/dist/Functions/useScrollTo.js +17 -1
  202. package/dist/Functions/useToggle.js +17 -1
  203. package/dist/Functions/utils.js +522 -1
  204. package/dist/Langs.js +168 -1
  205. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +21 -1
  206. package/dist/Molecular/CustomIcons/components/AlertCircle.js +23 -1
  207. package/dist/Molecular/CustomIcons/components/AppStore.js +29 -1
  208. package/dist/Molecular/CustomIcons/components/Arrow.js +32 -1
  209. package/dist/Molecular/CustomIcons/components/ArrowDown.js +17 -1
  210. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +22 -1
  211. package/dist/Molecular/CustomIcons/components/ArrowRight.js +22 -1
  212. package/dist/Molecular/CustomIcons/components/ArrowUp.js +17 -1
  213. package/dist/Molecular/CustomIcons/components/Bell.js +15 -1
  214. package/dist/Molecular/CustomIcons/components/Button.js +12 -1
  215. package/dist/Molecular/CustomIcons/components/Campaigns.js +16 -1
  216. package/dist/Molecular/CustomIcons/components/Check.js +14 -1
  217. package/dist/Molecular/CustomIcons/components/Check2.js +12 -1
  218. package/dist/Molecular/CustomIcons/components/ChevronDown.js +12 -1
  219. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +11 -1
  220. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +11 -1
  221. package/dist/Molecular/CustomIcons/components/ChevronRight.js +11 -1
  222. package/dist/Molecular/CustomIcons/components/ChevronUp.js +11 -1
  223. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +27 -1
  224. package/dist/Molecular/CustomIcons/components/Close.js +14 -1
  225. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +17 -1
  226. package/dist/Molecular/CustomIcons/components/Delete.js +16 -1
  227. package/dist/Molecular/CustomIcons/components/Edit.js +15 -1
  228. package/dist/Molecular/CustomIcons/components/Email.js +31 -1
  229. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +18 -1
  230. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +35 -1
  231. package/dist/Molecular/CustomIcons/components/Flows.js +15 -1
  232. package/dist/Molecular/CustomIcons/components/Gift.js +25 -1
  233. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +29 -1
  234. package/dist/Molecular/CustomIcons/components/GooglePlay.js +29 -1
  235. package/dist/Molecular/CustomIcons/components/HelpCircle.js +19 -1
  236. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +20 -1
  237. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +19 -1
  238. package/dist/Molecular/CustomIcons/components/Home.js +16 -1
  239. package/dist/Molecular/CustomIcons/components/Home2.js +22 -1
  240. package/dist/Molecular/CustomIcons/components/Key.js +23 -1
  241. package/dist/Molecular/CustomIcons/components/Landers.js +20 -1
  242. package/dist/Molecular/CustomIcons/components/Lock.js +15 -1
  243. package/dist/Molecular/CustomIcons/components/Mail.js +26 -1
  244. package/dist/Molecular/CustomIcons/components/Mastercard.js +73 -1
  245. package/dist/Molecular/CustomIcons/components/Minus.js +25 -1
  246. package/dist/Molecular/CustomIcons/components/Offers.js +16 -1
  247. package/dist/Molecular/CustomIcons/components/Pause.js +28 -1
  248. package/dist/Molecular/CustomIcons/components/PayPal.js +41 -1
  249. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +28 -1
  250. package/dist/Molecular/CustomIcons/components/Phone.js +30 -1
  251. package/dist/Molecular/CustomIcons/components/Play.js +25 -1
  252. package/dist/Molecular/CustomIcons/components/Plus.js +25 -1
  253. package/dist/Molecular/CustomIcons/components/Profile.js +16 -1
  254. package/dist/Molecular/CustomIcons/components/QRCode.js +29 -1
  255. package/dist/Molecular/CustomIcons/components/Rectangle.js +12 -1
  256. package/dist/Molecular/CustomIcons/components/Revert.js +13 -1
  257. package/dist/Molecular/CustomIcons/components/Star.js +14 -1
  258. package/dist/Molecular/CustomIcons/components/Star2.js +16 -1
  259. package/dist/Molecular/CustomIcons/components/TrafficSources.js +14 -1
  260. package/dist/Molecular/CustomIcons/components/Trash.js +15 -1
  261. package/dist/Molecular/CustomIcons/components/TrashRed.js +15 -1
  262. package/dist/Molecular/CustomIcons/components/Triggers.js +15 -1
  263. package/dist/Molecular/CustomIcons/components/User.js +25 -1
  264. package/dist/Molecular/CustomIcons/components/Visa.js +31 -1
  265. package/dist/Molecular/CustomIcons/components/X.js +12 -1
  266. package/dist/Molecular/CustomIcons/index.js +61 -1
  267. package/dist/Molecular/FormElement/FormElement.js +54 -1
  268. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +184 -1
  269. package/dist/Molecular/FormWithDependOn/partials/_utils.js +53 -1
  270. package/dist/Molecular/InputAddress/InputAddress.js +626 -1
  271. package/dist/Molecular/InputPassword/InputPassword.js +48 -1
  272. package/dist/index.js +104 -1
  273. package/package.json +1 -1
  274. package/dist/Molecular/InputAddress/InputAddress.d.ts +0 -26
  275. package/dist/Molecular/InputAddress/InputAddress.js.map +0 -1
@@ -1 +1,373 @@
1
- function n(n,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](n):n instanceof e}function e(n){return n&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n}Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return o}});var t=function(n){return Array.isArray(n)};function r(n){return(void 0===n?"undefined":e(n))==="object"&&null!==n&&!t(n)}var i=function(n){return"function"==typeof n};function u(n){return r(n)&&"type"in n&&"props"in n&&"$$typeof"in n}var o={isArray:t,isObject:r,isNumber:function(n){return"number"==typeof n},isString:function(n){return"string"==typeof n},isBoolean:function(n){return"boolean"==typeof n},isFunction:i,isInstanceOf:function(e,t){return n(e,t)},isEnumValue:function(n,e){return Object.values(n).includes(e)},isNullOrUndefined:function(n){return null==n},isTruthy:function(n){return!!n},isEmptyObject:function(n){return r(n)&&0===Object.keys(n).length},isEmptyArray:function(n){return Array.isArray(n)&&0===n.length},isTypedArray:function(e,r){return t(e)&&e.every(function(e){return n(e,r)})},isArrayWithLength:function(n,e){return t(n)&&n.length===e},isTypeOrNull:function(e,t){return null===e||n(e,t)},nonNullable:function(n){return null!=n},isDate:function(e){return n(e,Date)},isPromise:function(e){return n(e,Promise)},isRegExp:function(e){return n(e,RegExp)},isPrimitive:function(n){return null==n||"string"==typeof n||"number"==typeof n||"boolean"==typeof n},isError:function(e){return n(e,Error)},isSymbol:function(n){return(void 0===n?"undefined":e(n))==="symbol"},isMap:function(e){return n(e,Map)},isSet:function(e){return n(e,Set)},isReactElement:u,isReactComponent:function(n){return i(n)||r(n)&&"render"in n},isComponentType:function(n,e){return u(n)&&n.type===e},isReactEvent:function(n){return r(n)&&"nativeEvent"in n&&"currentTarget"in n&&"target"in n},isRef:function(n){return r(n)&&"current"in n},isContext:function(n){return r(n)&&"Provider"in n&&"Consumer"in n},isType:function(n){var t=void 0===n?"undefined":e(n);return"string"===t||"number"===t||"boolean"===t||"object"===t||"function"===t||"undefined"===t||"symbol"===t||"bigint"===t}};
1
+ /**
2
+ * @name isArray
3
+ * @description Функция isArray принимает значение и возвращает true, если переданное значение является массивом.
4
+ * @example
5
+ * const result = isArray([]);
6
+ * console.log(result); // true
7
+ * @example
8
+ * const result = isArray({});
9
+ * console.log(result); // false
10
+ */ "use strict";
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ Object.defineProperty(exports, "default", {
15
+ enumerable: true,
16
+ get: function() {
17
+ return _default;
18
+ }
19
+ });
20
+ const isArray = (value)=>Array.isArray(value);
21
+ /**
22
+ * @name isObject
23
+ * @description Функция isObject принимает значение и возвращает true, если переданное значение является объектом.
24
+ * @param value - значение для проверки
25
+ * @example
26
+ * const result = isObject({});
27
+ * console.log(result); // true
28
+ * @example
29
+ * const result = isObject([]);
30
+ * console.log(result); // false
31
+ */ function isObject(value) {
32
+ return typeof value === 'object' && value !== null && !isArray(value);
33
+ }
34
+ /**
35
+ * @name isNumber
36
+ * @description Функция isNumber принимает значение и возвращает true, если переданное значение является числом.
37
+ * @param value - значение для проверки
38
+ * @example
39
+ * const result = isNumber(1);
40
+ * console.log(result); // true
41
+ */ const isNumber = (value)=>typeof value === 'number';
42
+ /**
43
+ * @name isString
44
+ * @description Функция isString принимает значение и возвращает true, если переданное значение является строкой.
45
+ * @param value - значение для проверки
46
+ * @example
47
+ * const result = isString('string');
48
+ * console.log(result); // true
49
+ */ const isString = (value)=>typeof value === 'string';
50
+ /**
51
+ * @name isBoolean
52
+ * @description Функция isBoolean принимает значение и возвращает true, если переданное значение является булевым.
53
+ * @param value - значение для проверки
54
+ * @example
55
+ * const result = isBoolean(true);
56
+ * console.log(result); // true
57
+ */ const isBoolean = (value)=>typeof value === 'boolean';
58
+ /**
59
+ * @name isFunction
60
+ * @description Функция isFunction принимает значение и возвращает true, если переданное значение является функцией.
61
+ * @param value - значение для проверки
62
+ * @example
63
+ * const result = isFunction(() => {});
64
+ * console.log(result); // true
65
+ * @example
66
+ * const result = isFunction('string');
67
+ * console.log(result); // false
68
+ * @example
69
+ * const result = isFunction(1);
70
+ * console.log(result); // false
71
+ */ const isFunction = (value)=>typeof value === 'function';
72
+ /**
73
+ * @name isInstanceOf
74
+ * @description Функция isInstanceOf принимает значение и возвращает true, если переданное значение является экземпляром класса.
75
+ * @param value - значение для проверки
76
+ * @param classType - класс для проверки
77
+ * @example
78
+ * class TestClass {}
79
+ * const result = isInstanceOf(new TestClass(), TestClass);
80
+ * console.log(result); // true
81
+ */ const isInstanceOf = (value, classType)=>value instanceof classType;
82
+ /**
83
+ * @name isEnumValue
84
+ * @description Функция isEnumValue принимает значение и возвращает true, если переданное значение является значением enum.
85
+ * @param enumObject - enum для проверки
86
+ * @param value - значение для проверки
87
+ * @example
88
+ * enum Colors {
89
+ * Red = 'red',
90
+ * Green = 'green',
91
+ * Blue = 'blue',
92
+ * }
93
+ * const result = isEnumValue(Colors, 'red');
94
+ * console.log(result); // true
95
+ * @returns true - если значение является значением enum, false - если значение не является значением enum
96
+ */ function isEnumValue(enumObject, value) {
97
+ return Object.values(enumObject).includes(value);
98
+ }
99
+ /**
100
+ * @name isNullOrUndefined
101
+ * @description Функция isNullOrUndefined принимает значение и возвращает true, если переданное значение является null или undefined.
102
+ * @param value - значение для проверки
103
+ * @example
104
+ * isNullOrUndefined(null) // true
105
+ * isNullOrUndefined(undefined) // true
106
+ * isNullOrUndefined(1) // false
107
+ */ function isNullOrUndefined(value) {
108
+ return value === null || value === undefined;
109
+ }
110
+ /**
111
+ * @name isTruthy
112
+ * @description Функция isTruthy принимает значение и возвращает true, если переданное значение является true.
113
+ * @param value - значение для проверки
114
+ * @example
115
+ * isTruthy(true) // true
116
+ * isTruthy(1) // true
117
+ * isTruthy(Infinity) // true
118
+ * isTruthy(-Infinity) // true
119
+ * isTruthy(Symbol()) // true
120
+ * isTruthy('some string') // true
121
+ * isTruthy({}) // true
122
+ * isTruthy([]) // true
123
+ * isTruthy(Symbol('some description')) // true
124
+ * isTruthy(() => {}) // true
125
+ * isTruthy(function() {}) // true
126
+ * isTruthy(class {}) // true
127
+ * isTruthy(0) // false
128
+ * isTruthy('') // false
129
+ * isTruthy(null) // false
130
+ * isTruthy(undefined) // false
131
+ * isTruthy(NaN) // false
132
+ * isTruthy(false) // false
133
+ */ const isTruthy = (value)=>!!value;
134
+ /**
135
+ * @name isEmptyObject
136
+ * @description Функция isEmptyObject принимает значение и возвращает true, если переданное значение является пустым объектом.
137
+ * @param value - значение для проверки
138
+ * @example
139
+ * isEmptyObject({}) // true
140
+ * isEmptyObject({ a: 1 }) // false
141
+ */ const isEmptyObject = (value)=>isObject(value) && Object.keys(value).length === 0;
142
+ /**
143
+ * @name isTypedArray
144
+ * @description Функция isTypedArray принимает значение и возвращает true, если переданное значение является массивом определенного типа.
145
+ * @param value - значение для проверки
146
+ * @param type - тип для проверки
147
+ * @example
148
+ * isTypedArray([1, 2, 3], Number) // true
149
+ * isTypedArray([1, 2, 3], String) // false
150
+ */ function isTypedArray(value, type) {
151
+ return isArray(value) && value.every((item)=>item instanceof type);
152
+ }
153
+ /**
154
+ * @name isArrayWithLength
155
+ * @description Функция isArrayWithLength принимает значение и возвращает true, если переданное значение является массивом определенной длины.
156
+ * @param value - значение для проверки
157
+ * @param length - длина массива
158
+ * @example
159
+ * isArrayWithLength([1, 2, 3], 3) // true
160
+ * isArrayWithLength([1, 2, 3], 2) // false
161
+ */ function isArrayWithLength(value, length) {
162
+ return isArray(value) && value.length === length;
163
+ }
164
+ /**
165
+ * @name isEmptyArray
166
+ * @description Функция isEmptyArray принимает значение и возвращает true, если переданное значение является пустым массивом.
167
+ * @param value - значение для проверки
168
+ * @example
169
+ * isEmptyArray([]) // true
170
+ * isEmptyArray([1]) // false
171
+ */ const isEmptyArray = (value)=>Array.isArray(value) && value.length === 0;
172
+ /**
173
+ * @name isTypeOrNull
174
+ * @description Функция isTypeOrNull принимает значение и возвращает true, если переданное значение является экземпляром класса или null.
175
+ * @param value - значение для проверки
176
+ * @param type - класс для проверки
177
+ * @example
178
+ * isTypeOrNull(null, SomeClass) // true
179
+ * isTypeOrNull(new SomeClass(), SomeClass) // true
180
+ */ function isTypeOrNull(value, type) {
181
+ return value === null || value instanceof type;
182
+ }
183
+ const nonNullable = (value)=>value !== null && value !== undefined;
184
+ /**
185
+ * @name isDate
186
+ * @description Функция isDate принимает значение и возвращает true, если переданное значение является объектом Date.
187
+ * @param value - значение для проверки
188
+ * @example
189
+ * isDate(new Date()) // true
190
+ * isDate('2023-01-01') // false
191
+ */ const isDate = (value)=>value instanceof Date;
192
+ /**
193
+ * @name isPromise
194
+ * @description Функция isPromise принимает значение и возвращает true, если переданное значение является Promise.
195
+ * @param value - значение для проверки
196
+ * @example
197
+ * isPromise(Promise.resolve()) // true
198
+ * isPromise({ then: () => {} }) // false
199
+ */ const isPromise = (value)=>value instanceof Promise;
200
+ /**
201
+ * @name isRegExp
202
+ * @description Функция isRegExp принимает значение и возвращает true, если переданное значение является регулярным выражением.
203
+ * @param value - значение для проверки
204
+ * @example
205
+ * isRegExp(/test/) // true
206
+ * isRegExp('test') // false
207
+ */ const isRegExp = (value)=>value instanceof RegExp;
208
+ /**
209
+ * @name isPrimitive
210
+ * @description Функция isPrimitive принимает значение и возвращает true, если переданное значение является примитивом.
211
+ * @param value - значение для проверки
212
+ * @example
213
+ * isPrimitive(42) // true
214
+ * isPrimitive('test') // true
215
+ * isPrimitive(true) // true
216
+ * isPrimitive(null) // true
217
+ * isPrimitive(undefined) // true
218
+ * isPrimitive({}) // false
219
+ */ function isPrimitive(value) {
220
+ return value === null || value === undefined || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
221
+ }
222
+ /**
223
+ * @name isError
224
+ * @description Функция isError принимает значение и возвращает true, если переданное значение является объектом ошибки.
225
+ * @param value - значение для проверки
226
+ * @example
227
+ * isError(new Error()) // true
228
+ * isError({ message: 'error' }) // false
229
+ */ const isError = (value)=>value instanceof Error;
230
+ /**
231
+ * @name isSymbol
232
+ * @description Функция isSymbol принимает значение и возвращает true, если переданное значение является символом.
233
+ * @param value - значение для проверки
234
+ * @example
235
+ * isSymbol(Symbol()) // true
236
+ * isSymbol('symbol') // false
237
+ */ const isSymbol = (value)=>typeof value === 'symbol';
238
+ /**
239
+ * @name isMap
240
+ * @description Функция isMap принимает значение и возвращает true, если переданное значение является объектом Map.
241
+ * @param value - значение для проверки
242
+ * @example
243
+ * isMap(new Map()) // true
244
+ * isMap({}) // false
245
+ */ const isMap = (value)=>value instanceof Map;
246
+ /**
247
+ * @name isSet
248
+ * @description Функция isSet принимает значение и возвращает true, если переданное значение является объектом Set.
249
+ * @param value - значение для проверки
250
+ * @example
251
+ * isSet(new Set()) // true
252
+ * isSet([]) // false
253
+ */ const isSet = (value)=>value instanceof Set;
254
+ /**
255
+ * @name isReactElement
256
+ * @description Функция isReactElement принимает значение и возвращает true, если переданное значение является React элементом.
257
+ * @param value - значение для проверки
258
+ * @example
259
+ * isReactElement(<div>Test</div>) // true
260
+ * isReactElement('div') // false
261
+ */ function isReactElement(value) {
262
+ return isObject(value) && 'type' in value && 'props' in value && '$$typeof' in value;
263
+ }
264
+ /**
265
+ * @name isReactComponent
266
+ * @description Функция isReactComponent принимает значение и возвращает true, если переданное значение является React компонентом.
267
+ * @param value - значение для проверки
268
+ * @example
269
+ * const MyComponent = () => <div>Test</div>;
270
+ * isReactComponent(MyComponent) // true
271
+ * isReactComponent('div') // false
272
+ */ function isReactComponent(value) {
273
+ return isFunction(value) || isObject(value) && 'render' in value;
274
+ }
275
+ /**
276
+ * @name isComponentType
277
+ * @description Функция isComponentType принимает значение и тип компонента, возвращает true, если переданное значение является компонентом указанного типа.
278
+ * @param value - значение для проверки
279
+ * @param componentType - тип компонента для проверки
280
+ * @example
281
+ * const MyComponent = () => <div>Test</div>;
282
+ * isComponentType(<MyComponent />, MyComponent) // true
283
+ */ function isComponentType(value, componentType) {
284
+ return isReactElement(value) && value.type === componentType;
285
+ }
286
+ /**
287
+ * @name isReactEvent
288
+ * @description Функция isReactEvent принимает значение и возвращает true, если переданное значение является React событием.
289
+ * @param value - значение для проверки
290
+ * @example
291
+ * const handleClick = (e) => {
292
+ * if (isReactEvent(e)) {
293
+ * e.preventDefault();
294
+ * }
295
+ * };
296
+ */ function isReactEvent(value) {
297
+ return isObject(value) && 'nativeEvent' in value && 'currentTarget' in value && 'target' in value;
298
+ }
299
+ /**
300
+ * @name isRef
301
+ * @description Функция isRef принимает значение и возвращает true, если переданное значение является React рефом.
302
+ * @param value - значение для проверки
303
+ * @example
304
+ * const ref = useRef(null);
305
+ * isRef(ref) // true
306
+ */ function isRef(value) {
307
+ return isObject(value) && 'current' in value;
308
+ }
309
+ /**
310
+ * @name isContext
311
+ * @description Функция isContext принимает значение и возвращает true, если переданное значение является React контекстом.
312
+ * @param value - значение для проверки
313
+ * @example
314
+ * const MyContext = React.createContext(null);
315
+ * isContext(MyContext) // true
316
+ */ function isContext(value) {
317
+ return isObject(value) && 'Provider' in value && 'Consumer' in value;
318
+ }
319
+ /**
320
+ * @name isType
321
+ * @description Функция isType принимает значение и тип, возвращает true, если переданное значение соответствует указанному типу.
322
+ * @param value - значение для проверки
323
+ * @param type - тип для проверки
324
+ * @example
325
+ * interface User {
326
+ * name: string;
327
+ * age: number;
328
+ * }
329
+ *
330
+ * const user = { name: "John", age: 30 };
331
+ * const isUser = isType<User>(user,);
332
+ * console.log(isUser); // true
333
+ *
334
+ * const notUser = "John";
335
+ * console.log(isType<User>(notUser)); // false
336
+ */ function isType(value) {
337
+ const type = typeof value;
338
+ return type === 'string' || type === 'number' || type === 'boolean' || type === 'object' || type === 'function' || type === 'undefined' || type === 'symbol' || type === 'bigint';
339
+ }
340
+ const typesGuards = {
341
+ isArray,
342
+ isObject,
343
+ isNumber,
344
+ isString,
345
+ isBoolean,
346
+ isFunction,
347
+ isInstanceOf,
348
+ isEnumValue,
349
+ isNullOrUndefined,
350
+ isTruthy,
351
+ isEmptyObject,
352
+ isEmptyArray,
353
+ isTypedArray,
354
+ isArrayWithLength,
355
+ isTypeOrNull,
356
+ nonNullable,
357
+ isDate,
358
+ isPromise,
359
+ isRegExp,
360
+ isPrimitive,
361
+ isError,
362
+ isSymbol,
363
+ isMap,
364
+ isSet,
365
+ isReactElement,
366
+ isReactComponent,
367
+ isComponentType,
368
+ isReactEvent,
369
+ isRef,
370
+ isContext,
371
+ isType
372
+ };
373
+ const _default = typesGuards;
@@ -1 +1,95 @@
1
- function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function e(t,e,r,n,o,a,i){try{var u=t[a](i),l=u.value}catch(t){r(t);return}u.done?e(l):Promise.resolve(l).then(n,o)}function r(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){var n;n=r[e],e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n})}return t}function n(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(e,r)}}import{useEffect as o,useState as a}from"react";var i={timeoutId:null},u=[];export default function(l){var c,f,s,y=l.form,p=l.setForm,b=l.callback,d=l.validateField,m=l.settings||{},h=m.isNotSetForm,v=m.isUseValidation,g=void 0!==v&&v,O=(c=a(!1),function(t){if(Array.isArray(t))return t}(c)||function(t,e){var r,n,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a=[],i=!0,u=!1;try{for(o=o.call(t);!(i=(r=o.next()).done)&&(a.push(r.value),a.length!==e);i=!0);}catch(t){u=!0,n=t}finally{try{i||null==o.return||o.return()}finally{if(u)throw n}}return a}}(c,2)||n(c,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=O[0],j=O[1],S=(f=function(){var t,e,n,o;return function(t,e){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=u(0),i.throw=u(1),i.return=u(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=e.call(t,a)}catch(t){c=[6,t],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:if(e={},n=u.reduce(function(t,n){var o=n.data,a=n.key,i=(o||{}).error;return t.find(function(t){return t.key===a})&&(t=t.map(function(t){return t.key===a?r({},t,o):t}),(i||void 0!==i)&&(e[a]=i)),t},y),o=g&&"function"==typeof d?n.map(function(t){var o,a,i,u;return i=r({},t),u=u={error:(null==(a=d(r({},t),n))||null==(o=a.field)?void 0:o.error)||e[t.key]||""},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):(function(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r.push.apply(r,n)}return r})(Object(u)).forEach(function(t){Object.defineProperty(i,t,Object.getOwnPropertyDescriptor(u,t))}),i}):n,!(b&&"function"==typeof b))return[3,2];return[4,b(o)];case 1:t=a.sent(),a.label=2;case 2:if(h)return[3,4];return[4,p(null!=t?t:o)];case 3:a.sent(),a.label=4;case 4:return u.length=0,j(!1),[2]}})},s=function(){var t=this,r=arguments;return new Promise(function(n,o){var a=f.apply(t,r);function i(t){e(a,n,o,i,u,"next",t)}function u(t){e(a,n,o,i,u,"throw",t)}i(void 0)})},function(){return s.apply(this,arguments)});return o(function(){w&&S()},[w]),{assignChangesToField:function(t,e){return clearTimeout(i.timeoutId),u.push({key:e,data:t}),j(!1),i.timeoutId=setTimeout(function(){return j(!0)},1),u},isFormMustBeChanget:w,setIsFormMustBeChanget:j,changesArray:function(e){if(Array.isArray(e))return t(e)}(u)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(u)||n(u)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}}
1
+ import React, { useEffect, useState } from "react";
2
+
3
+ const timeouts = { timeoutId: null };
4
+ const formChanges = [];
5
+
6
+ // ? validateField - должен возвращать структуру { field, isValid }
7
+ const useFormFieldsChangesManager = ({
8
+ form,
9
+ setForm,
10
+ callback,
11
+ validateField,
12
+ settings,
13
+ }) => {
14
+ const { isNotSetForm, isUseValidation = false } = settings || {};
15
+
16
+ //? Пробовал ставить просто useEffect по formChangesRef.current,
17
+ //? но по какой-то причине после изменении рефки не заходило в useEffect.
18
+ //? Однако если срабатывал useEffect по какой-нибудь другой переменной,
19
+ //? то и в useEffect по formChangesRef.current тоже заходило.
20
+ //? Поэтому тут нужен этот стейт,
21
+ //? хотя по итогу в конечной реализации с ним даже неплохо получилось (но вообще очень странная ерунда...)
22
+ const [isFormMustBeChanget, setIsFormMustBeChanget] = useState(false);
23
+
24
+ //? Ф-я является ф-ей - постановщиком изменений формы в очередь.
25
+ //? Ф-я получается самовызывающимся геттером.
26
+ //? Cуть ф-ии:
27
+ //? Для того чтоб не спамить изменениями, если их назначается много в рамках одной итерации,
28
+ //? ипользую прием с переназначением setTimeout
29
+
30
+ //? Чтобы преждевременно не спровацировать сработку useEffect
31
+ //? по стейту фиксирующему "отмашку" к началу изменений (isFormMustBeChanget)
32
+ //? откладываю переназначение этого стейта до приостановки непрерывных вызовов assignChangesToField,
33
+ //? но при этом при каждом ее вызове продолжаю добавлять изменения в массив
34
+ const assignChangesToField = (() => {
35
+ return (data, key) => {
36
+ clearTimeout(timeouts.timeoutId);
37
+ formChanges.push({ key, data });
38
+ setIsFormMustBeChanget(false);
39
+ timeouts.timeoutId = setTimeout(() => setIsFormMustBeChanget(true), 1);
40
+ return formChanges;
41
+ };
42
+ })();
43
+
44
+ //? Ф-я применяет "накопленные" изменения
45
+ const changeForm = async () => {
46
+ let modifiedFormFromOutside;
47
+ const errorsFromChanges = {};
48
+
49
+ const newForm = formChanges.reduce((acc, change) => {
50
+ const { data, key } = change;
51
+ const { error } = data || {};
52
+ const field = acc.find((field) => field.key === key);
53
+
54
+ if (field) {
55
+ acc = acc.map((field) =>
56
+ field.key === key ? { ...field, ...data } : field,
57
+ );
58
+ if (error || error !== undefined) errorsFromChanges[key] = error;
59
+ }
60
+ return acc;
61
+ }, form);
62
+
63
+ // ToDo - порефакторить, не прогонять валидацию всех полей, а только измененных
64
+ const validatedForm =
65
+ isUseValidation && typeof validateField === "function"
66
+ ? newForm.map((field) => ({
67
+ ...field,
68
+ error:
69
+ validateField({ ...field }, newForm)?.field?.error ||
70
+ errorsFromChanges[field.key] ||
71
+ "",
72
+ }))
73
+ : newForm;
74
+
75
+ if (callback && typeof callback === "function")
76
+ modifiedFormFromOutside = await callback(validatedForm);
77
+ if (!isNotSetForm) await setForm(modifiedFormFromOutside ?? validatedForm);
78
+
79
+ formChanges.length = 0;
80
+ setIsFormMustBeChanget(false);
81
+ };
82
+
83
+ useEffect(() => {
84
+ if (isFormMustBeChanget) changeForm();
85
+ }, [isFormMustBeChanget]);
86
+
87
+ return {
88
+ assignChangesToField,
89
+ isFormMustBeChanget,
90
+ setIsFormMustBeChanget,
91
+ changesArray: [...formChanges],
92
+ };
93
+ };
94
+
95
+ export default useFormFieldsChangesManager;
@@ -1 +1,32 @@
1
- function r(){return(r=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}import{getSafelyValue as e}from"./../fieldValueFormatters";export default function n(n){var t=function(r){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable}))),t.forEach(function(e){var t;t=n[e],e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t})}return r}({},r({},function(r){if(null==r)throw TypeError("Cannot destructure "+r);return r}(n))),o=window.localStorage.getItem("lng");return o||(o=window.navigator?window.navigator.language.split("-")[0]:"en"),t[o]||(o="en"),function(r,n){var a,l,i=null!=n?n:{},u=e(r),c=t[o]&&t[o][u]?t[o][u]:u;if(null==(l=Object)||null==(a=l.keys(i))?void 0:a.length)for(var f in n){var g=RegExp("%".concat(f,"%"),"g");c=null==c?void 0:c.replace(g,n[f])}return c}}
1
+ import { getSafelyValue } from "./../fieldValueFormatters";
2
+
3
+ const DEFAULT_CODE = "en";
4
+
5
+ export default function createTranslator({ ...langCatalogs }) {
6
+ const loc = {
7
+ ...langCatalogs,
8
+ };
9
+
10
+ let code = window.localStorage.getItem("lng");
11
+ if (!code)
12
+ code = window.navigator
13
+ ? window.navigator.language.split("-")[0]
14
+ : DEFAULT_CODE;
15
+ if (!loc[code]) code = DEFAULT_CODE;
16
+
17
+ return function (text, values) {
18
+ const safelyValues = values ?? {};
19
+ const safelyText = getSafelyValue(text);
20
+ let translatedText =
21
+ loc[code] && loc[code][safelyText] ? loc[code][safelyText] : safelyText;
22
+
23
+ if (Object?.keys(safelyValues)?.length) {
24
+ for (const key in values) {
25
+ const regex = new RegExp(`%${key}%`, "g");
26
+ translatedText = translatedText?.replace(regex, values[key]);
27
+ }
28
+ }
29
+
30
+ return translatedText;
31
+ };
32
+ }
@@ -1 +1,130 @@
1
- function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,n=Array(r);o<r;o++)n[o]=t[o];return n}function r(r){return function(r){if(Array.isArray(r))return t(r)}(r)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(r,o){if(r){if("string"==typeof r)return t(r,void 0);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(r,o)}}(r)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,r,o){return void 0===o||0===Number(o)?Math[t](r):(r=Number(r),o=Number(o),isNaN(r)||"number"!=typeof o||o%1!=0)?NaN:Number((r=(r=Math[t](Number((r=r.toString().split("e"))[0]+"e"+(r[1]?Number(r[1])-o:-o)))).toString().split("e"))[0]+"e"+(r[1]?Number(r[1])+o:o))}Math.round10||(Math.round10=function(t,r){return o("round",t,r)}),Math.floor10||(Math.floor10=function(t,r){return o("floor",t,r)}),Math.ceil10||(Math.ceil10=function(t,r){return o("ceil",t,r)});export var addRangeDefault=function(t,o,n,e){if(!(null==n?void 0:n.length))return[{from:t,to:o}];var u=e?Math.pow(10,-1*e):1,f=n.reduce(function(t,o){var n=!!t.from&&o.from<t.from&&o.to>=t.from,f=!!t.to&&o.from<=t.to&&o.to>t.to,l=!!t.from&&!!t.to&&t.from<=o.from&&t.to>=o.to,a=function(){var n=t.result[t.result.length-1];t.to<o.from?(n.to=t.to,t.to=null,t.result=r(t.result).concat([o])):f?(n.to=t.to,t.result=r(t.result).concat([{from:Math.round10(t.to+u,-1*e),to:o.to}]),t.to=null):t.to===o.to&&(n.to=t.to,t.to=null)};return t.from||t.to?!t.from&&t.to?a():t.from&&t.to&&(t.from<=o.from?(t.result=r(t.result).concat([{from:t.from}]),t.from=null,a()):n?(t.result=r(t.result).concat([{from:o.from,to:Math.round10(t.from-u,-1*e)},{from:t.from}]),t.from=null,a()):t.result=r(t.result).concat(r(l?[]:[o]),[{from:Math.round10(t.from,-1*e),to:Math.round10(t.to,-1*e)}])):t.result=r(t.result).concat([o]),t},{from:t,to:o,result:[]}).result;return f[f.length-1].to||(f[f.length-1].to=o),f};
1
+ // Взято из https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Math/round
2
+ // При импорте любой ф-и из этого файла отработает самовызывающаяся ф-я и расширит
3
+ // объект Math 3-мя ф-ми: round10, floor10, ceil10
4
+ (function () {
5
+ /**
6
+ * Корректировка округления десятичных дробей.
7
+ *
8
+ * @param {String} type Тип корректировки.
9
+ * @param {Number} value Число.
10
+ * @param {Integer} exp Показатель степени (десятичный логарифм основания корректировки).
11
+ * @returns {Number} Скорректированное значение.
12
+ */
13
+ function decimalAdjust(type, value, exp) {
14
+ // Если степень не определена, либо равна нулю...
15
+ if (typeof exp === "undefined" || Number(exp) === 0) {
16
+ return Math[type](value);
17
+ }
18
+ value = Number(value);
19
+ exp = Number(exp);
20
+ // Если значение не является числом, либо степень не является целым числом...
21
+ if (isNaN(value) || !(typeof exp === "number" && exp % 1 === 0)) {
22
+ return NaN;
23
+ }
24
+ // Сдвиг разрядов
25
+ value = value.toString().split("e");
26
+ value = Math[type](
27
+ Number(value[0] + "e" + (value[1] ? Number(value[1]) - exp : -exp)),
28
+ );
29
+ // Обратный сдвиг
30
+ value = value.toString().split("e");
31
+ return Number(value[0] + "e" + (value[1] ? Number(value[1]) + exp : exp));
32
+ }
33
+
34
+ // Десятичное округление к ближайшему
35
+ if (!Math.round10) {
36
+ Math.round10 = function (value, exp) {
37
+ return decimalAdjust("round", value, exp);
38
+ };
39
+ }
40
+ // Десятичное округление вниз
41
+ if (!Math.floor10) {
42
+ Math.floor10 = function (value, exp) {
43
+ return decimalAdjust("floor", value, exp);
44
+ };
45
+ }
46
+ // Десятичное округление вверх
47
+ if (!Math.ceil10) {
48
+ Math.ceil10 = function (value, exp) {
49
+ return decimalAdjust("ceil", value, exp);
50
+ };
51
+ }
52
+ })();
53
+
54
+ export const addRangeDefault = (from, to, currentValues, decimalPlaces) => {
55
+ if (!currentValues?.length) return [{ from, to }];
56
+ const step = decimalPlaces ? Math.pow(10, -1 * decimalPlaces) : 1;
57
+
58
+ const resultOfProcessAddingRange = currentValues.reduce(
59
+ (acc, range) => {
60
+ const isIncludesFrom =
61
+ Boolean(acc.from) && range.from < acc.from && range.to >= acc.from;
62
+ const isIncludesTo =
63
+ Boolean(acc.to) && range.from <= acc.to && range.to > acc.to;
64
+ const isRangeMustBeIncludet =
65
+ Boolean(acc.from) &&
66
+ Boolean(acc.to) &&
67
+ acc.from <= range.from &&
68
+ acc.to >= range.to;
69
+
70
+ const processTo = () => {
71
+ const lastAccRange = acc.result[acc.result.length - 1];
72
+
73
+ if (acc.to < range.from) {
74
+ lastAccRange.to = acc.to;
75
+ acc.to = null;
76
+ acc.result = [...acc.result, range];
77
+ } else if (isIncludesTo) {
78
+ lastAccRange.to = acc.to;
79
+ acc.result = [
80
+ ...acc.result,
81
+ {
82
+ from: Math.round10(acc.to + step, -1 * decimalPlaces),
83
+ to: range.to,
84
+ },
85
+ ];
86
+ acc.to = null;
87
+ } else if (acc.to === range.to) {
88
+ lastAccRange.to = acc.to;
89
+ acc.to = null;
90
+ }
91
+ };
92
+
93
+ if (!acc.from && !acc.to) acc.result = [...acc.result, range];
94
+ else if (!acc.from && acc.to) processTo();
95
+ else if (acc.from && acc.to) {
96
+ if (acc.from <= range.from) {
97
+ acc.result = [...acc.result, { from: acc.from }];
98
+ acc.from = null;
99
+ processTo();
100
+ } else if (isIncludesFrom) {
101
+ acc.result = [
102
+ ...acc.result,
103
+ {
104
+ from: range.from,
105
+ to: Math.round10(acc.from - step, -1 * decimalPlaces),
106
+ },
107
+ { from: acc.from },
108
+ ];
109
+ acc.from = null;
110
+ processTo();
111
+ } else {
112
+ acc.result = [
113
+ ...acc.result,
114
+ ...(!isRangeMustBeIncludet ? [range] : []),
115
+ {
116
+ from: Math.round10(acc.from, -1 * decimalPlaces),
117
+ to: Math.round10(acc.to, -1 * decimalPlaces),
118
+ },
119
+ ];
120
+ }
121
+ }
122
+ return acc;
123
+ },
124
+ { from, to, result: [] },
125
+ );
126
+
127
+ const result = resultOfProcessAddingRange.result;
128
+ if (!result[result.length - 1].to) result[result.length - 1].to = to;
129
+ return result;
130
+ };