intelicoreact 2.0.20 → 2.0.21

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 (210) hide show
  1. package/dist/es/Atomic/FormElements/ActionAlert/ActionAlert.js.map +1 -1
  2. package/dist/es/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js.map +1 -1
  3. package/dist/es/Atomic/FormElements/Calendar/Calendar.js +2 -1
  4. package/dist/es/Atomic/FormElements/Calendar/Calendar.js.map +1 -1
  5. package/dist/es/Atomic/FormElements/CheckboxInput/CheckboxInput.js.map +1 -1
  6. package/dist/es/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js.map +1 -1
  7. package/dist/es/Atomic/FormElements/Datepicker/Datepicker.js +5 -4
  8. package/dist/es/Atomic/FormElements/Datepicker/Datepicker.js.map +1 -1
  9. package/dist/es/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +2 -1
  10. package/dist/es/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js.map +1 -1
  11. package/dist/es/Atomic/FormElements/Dropdown/Dropdown.js +35 -26
  12. package/dist/es/Atomic/FormElements/Dropdown/Dropdown.js.map +1 -1
  13. package/dist/es/Atomic/FormElements/Dropdown/_utils.js +14 -9
  14. package/dist/es/Atomic/FormElements/Dropdown/_utils.js.map +1 -1
  15. package/dist/es/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js.map +1 -1
  16. package/dist/es/Atomic/FormElements/FileLoader/FileLoader.js.map +1 -1
  17. package/dist/es/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -1
  18. package/dist/es/Atomic/FormElements/FileLoader/partial/LoadZone.js.map +1 -1
  19. package/dist/es/Atomic/FormElements/FileLoader/partial/LoadedContent.js +15 -13
  20. package/dist/es/Atomic/FormElements/FileLoader/partial/LoadedContent.js.map +1 -1
  21. package/dist/es/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -1
  22. package/dist/es/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js.map +1 -1
  23. package/dist/es/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +23 -19
  24. package/dist/es/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js.map +1 -1
  25. package/dist/es/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -1
  26. package/dist/es/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js.map +1 -1
  27. package/dist/es/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js.map +1 -1
  28. package/dist/es/Atomic/FormElements/Input/Input.js.map +1 -1
  29. package/dist/es/Atomic/FormElements/Input/hooks/useInputValueProcessing.js +0 -1
  30. package/dist/es/Atomic/FormElements/Input/hooks/useInputValueProcessing.js.map +1 -1
  31. package/dist/es/Atomic/FormElements/InputCalendar/InputCalendar.js.map +1 -1
  32. package/dist/es/Atomic/FormElements/InputColor/InputColor.js.map +1 -1
  33. package/dist/es/Atomic/FormElements/InputCurrency/InputCurrency.js +28 -25
  34. package/dist/es/Atomic/FormElements/InputCurrency/InputCurrency.js.map +1 -1
  35. package/dist/es/Atomic/FormElements/InputDateRange/InputDateRange.js +2 -1
  36. package/dist/es/Atomic/FormElements/InputDateRange/InputDateRange.js.map +1 -1
  37. package/dist/es/Atomic/FormElements/InputDateRange/components/DateInput.js.map +1 -1
  38. package/dist/es/Atomic/FormElements/InputDateRange/components/Datepicker.js.map +1 -1
  39. package/dist/es/Atomic/FormElements/InputDateRange/components/OpenedPart.js.map +1 -1
  40. package/dist/es/Atomic/FormElements/InputDateRange/components/SelectItem.js.map +1 -1
  41. package/dist/es/Atomic/FormElements/InputLink/InputLink.js.map +1 -1
  42. package/dist/es/Atomic/FormElements/InputMask3/InputMask3.js +16 -14
  43. package/dist/es/Atomic/FormElements/InputMask3/InputMask3.js.map +1 -1
  44. package/dist/es/Atomic/FormElements/InputWithAction/InputWithAction.js.map +1 -1
  45. package/dist/es/Atomic/FormElements/InputsRow/InputsRow.js +3 -2
  46. package/dist/es/Atomic/FormElements/InputsRow/InputsRow.js.map +1 -1
  47. package/dist/es/Atomic/FormElements/Label/Label.js.map +1 -1
  48. package/dist/es/Atomic/FormElements/MobileCalendar/MobileCalendar.js.map +1 -1
  49. package/dist/es/Atomic/FormElements/MultiSelect/MultiSelect.js.map +1 -1
  50. package/dist/es/Atomic/FormElements/RadioGroup/RadioGroup.js.map +1 -1
  51. package/dist/es/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js.map +1 -1
  52. package/dist/es/Atomic/FormElements/RadioInput/RadioInput.js.map +1 -1
  53. package/dist/es/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js.map +1 -1
  54. package/dist/es/Atomic/FormElements/RangeCalendar/RangeCalendar.js +2 -1
  55. package/dist/es/Atomic/FormElements/RangeCalendar/RangeCalendar.js.map +1 -1
  56. package/dist/es/Atomic/FormElements/RangeInputs/RangeInputs.js.map +1 -1
  57. package/dist/es/Atomic/FormElements/RangeList/RangeList.js.map +1 -1
  58. package/dist/es/Atomic/FormElements/RangeList/partial/RangeListRow.js.map +1 -1
  59. package/dist/es/Atomic/FormElements/RangeSlider/RangeSlider.js +9 -6
  60. package/dist/es/Atomic/FormElements/RangeSlider/RangeSlider.js.map +1 -1
  61. package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.js +4 -2
  62. package/dist/es/Atomic/FormElements/RangeSlider2/RangeSlider2.js.map +1 -1
  63. package/dist/es/Atomic/FormElements/SwitchableRow/SwitchableRow.js.map +1 -1
  64. package/dist/es/Atomic/FormElements/Switcher/Switcher.js.map +1 -1
  65. package/dist/es/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js.map +1 -1
  66. package/dist/es/Atomic/FormElements/SwitcherHide/SwitcherHide.js.map +1 -1
  67. package/dist/es/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js.map +1 -1
  68. package/dist/es/Atomic/FormElements/SwitcherRange/SwitcherRange.js.map +1 -1
  69. package/dist/es/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js.map +1 -1
  70. package/dist/es/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js.map +1 -1
  71. package/dist/es/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js.map +1 -1
  72. package/dist/es/Atomic/FormElements/TagsDropdown/TagsDropdown.js.map +1 -1
  73. package/dist/es/Atomic/FormElements/Text/Text.js.map +1 -1
  74. package/dist/es/Atomic/FormElements/TextSwitcher/TextSwitcher.js.map +1 -1
  75. package/dist/es/Atomic/FormElements/Textarea/Textarea.js.map +1 -1
  76. package/dist/es/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +4 -2
  77. package/dist/es/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js.map +1 -1
  78. package/dist/es/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js.map +1 -1
  79. package/dist/es/Atomic/FormElements/TimeRange/TimeRange.js.map +1 -1
  80. package/dist/es/Atomic/FormElements/UserContacts/UserContacts.js.map +1 -1
  81. package/dist/es/Atomic/Layout/Header/Header.js.map +1 -1
  82. package/dist/es/Atomic/Layout/MainMenu/MainMenu.js.map +1 -1
  83. package/dist/es/Atomic/Layout/Spinner/Spinner.js.map +1 -1
  84. package/dist/es/Atomic/UI/Accordion/Accordion.js.map +1 -1
  85. package/dist/es/Atomic/UI/Accordion/AccordionItem.js.map +1 -1
  86. package/dist/es/Atomic/UI/AdvancedTag/AdvTag.js +2 -1
  87. package/dist/es/Atomic/UI/AdvancedTag/AdvTag.js.map +1 -1
  88. package/dist/es/Atomic/UI/AdvancedTag/AdvancedTags.js.map +1 -1
  89. package/dist/es/Atomic/UI/Alert/Alert.js.map +1 -1
  90. package/dist/es/Atomic/UI/Arrow/Arrow.js.map +1 -1
  91. package/dist/es/Atomic/UI/Button/Button.js.map +1 -1
  92. package/dist/es/Atomic/UI/ButtonsBar/ButtonsBar.js.map +1 -1
  93. package/dist/es/Atomic/UI/Chart/Chart.js +2 -1
  94. package/dist/es/Atomic/UI/Chart/Chart.js.map +1 -1
  95. package/dist/es/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js.map +1 -1
  96. package/dist/es/Atomic/UI/Chart/partial/utils.js +2 -1
  97. package/dist/es/Atomic/UI/Chart/partial/utils.js.map +1 -1
  98. package/dist/es/Atomic/UI/DateTime/DateTime.js.map +1 -1
  99. package/dist/es/Atomic/UI/DebugContainer/DebugContainer.js.map +1 -1
  100. package/dist/es/Atomic/UI/DoubleString/DoubleString.js.map +1 -1
  101. package/dist/es/Atomic/UI/Hint/Hint.js +4 -6
  102. package/dist/es/Atomic/UI/Hint/Hint.js.map +1 -1
  103. package/dist/es/Atomic/UI/Hint/partials/_utils.js.map +1 -1
  104. package/dist/es/Atomic/UI/Modal/Modal.js.map +1 -1
  105. package/dist/es/Atomic/UI/Modal/ModalHOC.js.map +1 -1
  106. package/dist/es/Atomic/UI/Modal/partials/ModalTitle.js.map +1 -1
  107. package/dist/es/Atomic/UI/Modal/partials/_constants.js.map +1 -1
  108. package/dist/es/Atomic/UI/Modal/partials/_utils.js +1 -4
  109. package/dist/es/Atomic/UI/Modal/partials/_utils.js.map +1 -1
  110. package/dist/es/Atomic/UI/Modal/partials/useMobileModal.js +8 -6
  111. package/dist/es/Atomic/UI/Modal/partials/useMobileModal.js.map +1 -1
  112. package/dist/es/Atomic/UI/NavLine/NavLine.js.map +1 -1
  113. package/dist/es/Atomic/UI/PageTitle/PageTitle.js.map +1 -1
  114. package/dist/es/Atomic/UI/Price/Price.js.map +1 -1
  115. package/dist/es/Atomic/UI/PriceRange/PriceRange.js.map +1 -1
  116. package/dist/es/Atomic/UI/ProgressLine/ProgressLine.js.map +1 -1
  117. package/dist/es/Atomic/UI/Status/Status.js.map +1 -1
  118. package/dist/es/Atomic/UI/Tag/Tag.js.map +1 -1
  119. package/dist/es/Atomic/UI/TagList/TagList.js.map +1 -1
  120. package/dist/es/Atomic/UI/UserBox/UserBox.js.map +1 -1
  121. package/dist/es/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js.map +1 -1
  122. package/dist/es/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js.map +1 -1
  123. package/dist/es/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js.map +1 -1
  124. package/dist/es/Atomic/UI/WizardStepper/ui/icons.js.map +1 -1
  125. package/dist/es/Classes/RESTAPI/partials/CredentialsProcessing.js +4 -2
  126. package/dist/es/Classes/RESTAPI/partials/CredentialsProcessing.js.map +1 -1
  127. package/dist/es/Classes/RESTAPI/partials/sse.js +4 -7
  128. package/dist/es/Classes/RESTAPI/partials/sse.js.map +1 -1
  129. package/dist/es/Functions/fieldValueFormatters.js +1 -3
  130. package/dist/es/Functions/fieldValueFormatters.js.map +1 -1
  131. package/dist/es/Functions/operations.js +22 -20
  132. package/dist/es/Functions/operations.js.map +1 -1
  133. package/dist/es/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +8 -6
  134. package/dist/es/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js.map +1 -1
  135. package/dist/es/Functions/useFormTools/functions/General.js +8 -6
  136. package/dist/es/Functions/useFormTools/functions/General.js.map +1 -1
  137. package/dist/es/Functions/useFormTools/functions/RenderFields.js +6 -5
  138. package/dist/es/Functions/useFormTools/functions/RenderFields.js.map +1 -1
  139. package/dist/es/Functions/useFormTools/index.js +1 -4
  140. package/dist/es/Functions/useFormTools/index.js.map +1 -1
  141. package/dist/es/Functions/utils.js +2 -1
  142. package/dist/es/Functions/utils.js.map +1 -1
  143. package/dist/es/Molecular/CustomIcons/components/AffiliateNetworks.js.map +1 -1
  144. package/dist/es/Molecular/CustomIcons/components/AlertCircle.js.map +1 -1
  145. package/dist/es/Molecular/CustomIcons/components/AppStore.js.map +1 -1
  146. package/dist/es/Molecular/CustomIcons/components/Arrow.js.map +1 -1
  147. package/dist/es/Molecular/CustomIcons/components/ArrowDown.js.map +1 -1
  148. package/dist/es/Molecular/CustomIcons/components/ArrowLeft.js.map +1 -1
  149. package/dist/es/Molecular/CustomIcons/components/ArrowRight.js.map +1 -1
  150. package/dist/es/Molecular/CustomIcons/components/ArrowUp.js.map +1 -1
  151. package/dist/es/Molecular/CustomIcons/components/Bell.js.map +1 -1
  152. package/dist/es/Molecular/CustomIcons/components/Button.js.map +1 -1
  153. package/dist/es/Molecular/CustomIcons/components/Campaigns.js.map +1 -1
  154. package/dist/es/Molecular/CustomIcons/components/Check.js.map +1 -1
  155. package/dist/es/Molecular/CustomIcons/components/Check2.js.map +1 -1
  156. package/dist/es/Molecular/CustomIcons/components/ChevronDown.js.map +1 -1
  157. package/dist/es/Molecular/CustomIcons/components/ChevronDownDisabled.js.map +1 -1
  158. package/dist/es/Molecular/CustomIcons/components/ChevronLeft.js.map +1 -1
  159. package/dist/es/Molecular/CustomIcons/components/ChevronRight.js.map +1 -1
  160. package/dist/es/Molecular/CustomIcons/components/ChevronUp.js.map +1 -1
  161. package/dist/es/Molecular/CustomIcons/components/ChevronUpDown.js.map +1 -1
  162. package/dist/es/Molecular/CustomIcons/components/Close.js.map +1 -1
  163. package/dist/es/Molecular/CustomIcons/components/ColumnsOrder.js.map +1 -1
  164. package/dist/es/Molecular/CustomIcons/components/Delete.js.map +1 -1
  165. package/dist/es/Molecular/CustomIcons/components/Edit.js.map +1 -1
  166. package/dist/es/Molecular/CustomIcons/components/Email.js.map +1 -1
  167. package/dist/es/Molecular/CustomIcons/components/FinturfLogo.js.map +1 -1
  168. package/dist/es/Molecular/CustomIcons/components/FinturfLogo2.js.map +1 -1
  169. package/dist/es/Molecular/CustomIcons/components/Flows.js.map +1 -1
  170. package/dist/es/Molecular/CustomIcons/components/Gift.js.map +1 -1
  171. package/dist/es/Molecular/CustomIcons/components/GoogleAuth.js.map +1 -1
  172. package/dist/es/Molecular/CustomIcons/components/GooglePlay.js.map +1 -1
  173. package/dist/es/Molecular/CustomIcons/components/HelpCircle.js.map +1 -1
  174. package/dist/es/Molecular/CustomIcons/components/HelpCircle2.js.map +1 -1
  175. package/dist/es/Molecular/CustomIcons/components/HelpCircleFilled.js.map +1 -1
  176. package/dist/es/Molecular/CustomIcons/components/Home.js.map +1 -1
  177. package/dist/es/Molecular/CustomIcons/components/Home2.js.map +1 -1
  178. package/dist/es/Molecular/CustomIcons/components/Key.js.map +1 -1
  179. package/dist/es/Molecular/CustomIcons/components/Landers.js.map +1 -1
  180. package/dist/es/Molecular/CustomIcons/components/Lock.js.map +1 -1
  181. package/dist/es/Molecular/CustomIcons/components/Mail.js.map +1 -1
  182. package/dist/es/Molecular/CustomIcons/components/Mastercard.js.map +1 -1
  183. package/dist/es/Molecular/CustomIcons/components/Minus.js.map +1 -1
  184. package/dist/es/Molecular/CustomIcons/components/Offers.js.map +1 -1
  185. package/dist/es/Molecular/CustomIcons/components/Pause.js.map +1 -1
  186. package/dist/es/Molecular/CustomIcons/components/PayPal.js.map +1 -1
  187. package/dist/es/Molecular/CustomIcons/components/PayPalLightLarge.js.map +1 -1
  188. package/dist/es/Molecular/CustomIcons/components/Phone.js.map +1 -1
  189. package/dist/es/Molecular/CustomIcons/components/Play.js.map +1 -1
  190. package/dist/es/Molecular/CustomIcons/components/Plus.js.map +1 -1
  191. package/dist/es/Molecular/CustomIcons/components/Profile.js.map +1 -1
  192. package/dist/es/Molecular/CustomIcons/components/QRCode.js.map +1 -1
  193. package/dist/es/Molecular/CustomIcons/components/Rectangle.js.map +1 -1
  194. package/dist/es/Molecular/CustomIcons/components/Revert.js.map +1 -1
  195. package/dist/es/Molecular/CustomIcons/components/Star.js.map +1 -1
  196. package/dist/es/Molecular/CustomIcons/components/Star2.js.map +1 -1
  197. package/dist/es/Molecular/CustomIcons/components/TrafficSources.js.map +1 -1
  198. package/dist/es/Molecular/CustomIcons/components/Trash.js.map +1 -1
  199. package/dist/es/Molecular/CustomIcons/components/TrashRed.js.map +1 -1
  200. package/dist/es/Molecular/CustomIcons/components/Triggers.js.map +1 -1
  201. package/dist/es/Molecular/CustomIcons/components/User.js.map +1 -1
  202. package/dist/es/Molecular/CustomIcons/components/Visa.js.map +1 -1
  203. package/dist/es/Molecular/CustomIcons/components/X.js.map +1 -1
  204. package/dist/es/Molecular/FormElement/FormElement.js.map +1 -1
  205. package/dist/es/Molecular/InputAddress/InputAddress.js +24 -19
  206. package/dist/es/Molecular/InputAddress/InputAddress.js.map +1 -1
  207. package/dist/es/Molecular/InputCustomFetch/InputCustomFetch.js +17 -11
  208. package/dist/es/Molecular/InputCustomFetch/InputCustomFetch.js.map +1 -1
  209. package/dist/es/Molecular/InputPassword/InputPassword.js.map +1 -1
  210. package/package.json +1 -1
@@ -6,9 +6,10 @@ function General({ form, FormFields = [] } = {}) {
6
6
  const template = Array.isArray(mainArg) ? [] : typeof mainArg === "object" ? {} : null;
7
7
  if (!template) return void 0;
8
8
  return args.reduce((result, item) => {
9
- if (MainArgProto === "Array") if (Array.isArray(item)) return [...result, ...item];
10
- else return [...result, item];
11
- else if (MainArgProto === "Object") return {
9
+ if (MainArgProto === "Array") {
10
+ if (Array.isArray(item)) return [...result, ...item];
11
+ else return [...result, item];
12
+ } else if (MainArgProto === "Object") return {
12
13
  ...result,
13
14
  ...item
14
15
  };
@@ -16,9 +17,10 @@ function General({ form, FormFields = [] } = {}) {
16
17
  }, template);
17
18
  };
18
19
  const getFieldData = (key) => {
19
- if (Array.isArray(FormFields)) if (FormFields[key]) return { ...FormFields[key] };
20
- else return { ...FormFields.find((f) => f.key === key) };
21
- else if (typeof FormFields === "object") return { ...FormFields[key] };
20
+ if (Array.isArray(FormFields)) {
21
+ if (FormFields[key]) return { ...FormFields[key] };
22
+ else return { ...FormFields.find((f) => f.key === key) };
23
+ } else if (typeof FormFields === "object") return { ...FormFields[key] };
22
24
  else return;
23
25
  };
24
26
  const getFormFields = (argForm = form) => {
@@ -1 +1 @@
1
- {"version":3,"file":"General.js","names":["field"],"sources":["../../../../../src/Functions/useFormTools/functions/General.js"],"sourcesContent":["export default function General({ form, FormFields = [] } = {}) {\n const joinData = (...args) => {\n const [mainArg] = args;\n const MainArgProto = Array.isArray(mainArg)\n ? \"Array\"\n : typeof mainArg === \"object\"\n ? \"Object\"\n : undefined;\n const template = Array.isArray(mainArg)\n ? []\n : typeof mainArg === \"object\"\n ? {}\n : null;\n\n if (!template) return undefined;\n\n return args.reduce((result, item) => {\n if (MainArgProto === \"Array\") {\n if (Array.isArray(item)) {\n return [...result, ...item];\n } else {\n return [...result, item];\n }\n } else if (MainArgProto === \"Object\") {\n return { ...result, ...item };\n } else {\n return template;\n }\n }, template);\n };\n const getFieldData = (key) => {\n if (Array.isArray(FormFields)) {\n if (FormFields[key]) {\n return { ...FormFields[key] };\n } else {\n return { ...FormFields.find((f) => f.key === key) };\n }\n } else if (typeof FormFields === \"object\") {\n return (\n { ...FormFields[key] } || {\n ...Object.values(FormFields).find((f) => f.key === key),\n }\n );\n } else {\n return undefined;\n }\n };\n const getFormFields = (argForm = form) => {\n return argForm?.fields || argForm;\n };\n const getFormFieldsAsArray = (fields) => {\n if (Array.isArray(fields)) return fields;\n\n if (typeof fields === \"object\") {\n return Object.values(fields);\n }\n\n return fields;\n };\n const getFormFieldsKeys = (fields = getFormFields()) => {\n if (Array.isArray(fields)) return fields.map(({ key }) => key);\n\n if (typeof fields === \"object\") {\n return Object.values(fields).map(({ key }) => key);\n }\n\n return fields;\n };\n const popFormField = (fields, key) => {\n const result = { item: undefined, itemIndex: undefined };\n\n if (Array.isArray(fields)) {\n result.item = fields?.find((f) => f.key === key);\n result.itemIndex = result.item\n ? fields.findIndex((f) => f.key === key)\n : fields.length;\n } else if (typeof fields === \"object\") {\n result.item =\n fields[key] || Object.values(fields).find((f) => f.key === key);\n result.itemIndex = result.item\n ? fields[key]\n ? key\n : Object.values(fields).findIndex((f) => f.key === key)\n : key;\n }\n\n return result;\n };\n const updateFormField = (fields, data, key) => {\n const isFunction = typeof data === \"function\";\n //KEY is NULLable\n if (!key) {\n return data.key\n ? Object.values(fields).reduce((result, field, i) => {\n const index = fields[field.key] ? field.key : i;\n\n return {\n ...result,\n [index]:\n data.key === field.key\n ? isFunction\n ? data(field)\n : data\n : field,\n };\n }, {})\n : {\n ...fields,\n [fields.length || 0]: isFunction ? data({}) : data,\n };\n }\n\n const { item: field = data, itemIndex } = popFormField(fields, key);\n\n fields[itemIndex] = isFunction ? data(field || {}) : { ...field, ...data };\n\n return fields;\n };\n\n const getFieldClassName = (key, type) => {\n return `form-${type}_field-${key}`;\n };\n\n return {\n joinData,\n getFieldData,\n popFormField,\n updateFormField,\n getFormFields,\n getFormFieldsAsArray,\n getFieldClassName,\n getFormFieldsKeys,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"General.js","names":["field"],"sources":["../../../../../src/Functions/useFormTools/functions/General.js"],"sourcesContent":["export default function General({ form, FormFields = [] } = {}) {\n const joinData = (...args) => {\n const [mainArg] = args;\n const MainArgProto = Array.isArray(mainArg)\n ? \"Array\"\n : typeof mainArg === \"object\"\n ? \"Object\"\n : undefined;\n const template = Array.isArray(mainArg)\n ? []\n : typeof mainArg === \"object\"\n ? {}\n : null;\n\n if (!template) return undefined;\n\n return args.reduce((result, item) => {\n if (MainArgProto === \"Array\") {\n if (Array.isArray(item)) {\n return [...result, ...item];\n } else {\n return [...result, item];\n }\n } else if (MainArgProto === \"Object\") {\n return { ...result, ...item };\n } else {\n return template;\n }\n }, template);\n };\n const getFieldData = (key) => {\n if (Array.isArray(FormFields)) {\n if (FormFields[key]) {\n return { ...FormFields[key] };\n } else {\n return { ...FormFields.find((f) => f.key === key) };\n }\n } else if (typeof FormFields === \"object\") {\n return (\n { ...FormFields[key] } || {\n ...Object.values(FormFields).find((f) => f.key === key),\n }\n );\n } else {\n return undefined;\n }\n };\n const getFormFields = (argForm = form) => {\n return argForm?.fields || argForm;\n };\n const getFormFieldsAsArray = (fields) => {\n if (Array.isArray(fields)) return fields;\n\n if (typeof fields === \"object\") {\n return Object.values(fields);\n }\n\n return fields;\n };\n const getFormFieldsKeys = (fields = getFormFields()) => {\n if (Array.isArray(fields)) return fields.map(({ key }) => key);\n\n if (typeof fields === \"object\") {\n return Object.values(fields).map(({ key }) => key);\n }\n\n return fields;\n };\n const popFormField = (fields, key) => {\n const result = { item: undefined, itemIndex: undefined };\n\n if (Array.isArray(fields)) {\n result.item = fields?.find((f) => f.key === key);\n result.itemIndex = result.item\n ? fields.findIndex((f) => f.key === key)\n : fields.length;\n } else if (typeof fields === \"object\") {\n result.item =\n fields[key] || Object.values(fields).find((f) => f.key === key);\n result.itemIndex = result.item\n ? fields[key]\n ? key\n : Object.values(fields).findIndex((f) => f.key === key)\n : key;\n }\n\n return result;\n };\n const updateFormField = (fields, data, key) => {\n const isFunction = typeof data === \"function\";\n //KEY is NULLable\n if (!key) {\n return data.key\n ? Object.values(fields).reduce((result, field, i) => {\n const index = fields[field.key] ? field.key : i;\n\n return {\n ...result,\n [index]:\n data.key === field.key\n ? isFunction\n ? data(field)\n : data\n : field,\n };\n }, {})\n : {\n ...fields,\n [fields.length || 0]: isFunction ? data({}) : data,\n };\n }\n\n const { item: field = data, itemIndex } = popFormField(fields, key);\n\n fields[itemIndex] = isFunction ? data(field || {}) : { ...field, ...data };\n\n return fields;\n };\n\n const getFieldClassName = (key, type) => {\n return `form-${type}_field-${key}`;\n };\n\n return {\n joinData,\n getFieldData,\n popFormField,\n updateFormField,\n getFormFields,\n getFormFieldsAsArray,\n getFieldClassName,\n getFormFieldsKeys,\n };\n}\n"],"mappings":"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"}
@@ -50,13 +50,14 @@ function RenderFields({ form, fields, cols = 1, FormDataDriver = defaultFormData
50
50
  const fieldsLen = fields?.length || 0;
51
51
  const columnsQty = getColumnsQty() > fieldsLen ? fieldsLen : getColumnsQty();
52
52
  if (!columnsQty) return null;
53
+ const parts = new Array(columnsQty).fill([]).map((v, i) => {
54
+ const startIndex = fieldsLen / columnsQty * i;
55
+ const endIndex = startIndex + fieldsLen / columnsQty;
56
+ return fields.slice(startIndex, endIndex);
57
+ });
53
58
  return /* @__PURE__ */ jsx("div", {
54
59
  className: "row",
55
- children: new Array(columnsQty).fill([]).map((v, i) => {
56
- const startIndex = fieldsLen / columnsQty * i;
57
- const endIndex = startIndex + fieldsLen / columnsQty;
58
- return fields.slice(startIndex, endIndex);
59
- }).map((part, i) => /* @__PURE__ */ jsx("div", {
60
+ children: parts.map((part, i) => /* @__PURE__ */ jsx("div", {
60
61
  className: `col-12 col-lg-${parseInt(maxWidth / columnsQty, 10)}`,
61
62
  children: part.map(renderFormField)
62
63
  }, `render-fields-row-${i}`))
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFields.js","names":[],"sources":["../../../../../src/Functions/useFormTools/functions/RenderFields.js"],"sourcesContent":["const defaultRenderFieldComponent = () => {\n // eslint-disable-next-line no-console\n console.error(\"RenderFields: RenderFieldComponent Property is not recieved!\");\n return null;\n};\n\nconst defaultFormDataDriver = () => {\n // eslint-disable-next-line no-console\n console.error(\"RenderFields: FormDataDriver Property is not recieved!\");\n return null;\n};\n\nconst defaultOnFieldChange = () => {\n // eslint-disable-next-line no-console\n console.warn(\n \"RenderFields: Be careful, onFieldChange handler is not recieved!\",\n );\n return null;\n};\n\nconst defaultOnFieldBlur = () => {\n // eslint-disable-next-line no-console\n console.warn(\n \"RenderFields: Be careful, defaultOnFieldBlur handler is not recieved!\",\n );\n return null;\n};\n\nexport default function RenderFields({\n form,\n fields,\n cols = 1,\n FormDataDriver = defaultFormDataDriver,\n RenderFieldComponent = defaultRenderFieldComponent,\n onFieldChange = defaultOnFieldChange,\n onFieldBlur = defaultOnFieldBlur,\n} = {}) {\n const maxColumns = 6;\n const maxWidth = 12;\n\n const { getFormField } = FormDataDriver({ form });\n\n const getColumnsQty = () => {\n return cols > maxColumns ? maxColumns : cols;\n };\n\n const renderFormField = (key) => {\n try {\n const field = { ...getFormField(key), key };\n const { wrapperRef } = field;\n\n return (\n <div\n key={`render-field-wrapper-${key}`}\n id={`render-field-wrapper-${key}`}\n ref={\n wrapperRef\n ? typeof wrapperRef === \"function\"\n ? (node) => wrapperRef(node, key)\n : wrapperRef\n : null\n }\n >\n <RenderFieldComponent\n key={key}\n field={field}\n onChange={(value) => onFieldChange(key, value)}\n onBlur={(...args) => onFieldBlur(...args)}\n />\n </div>\n );\n } catch (e) {\n return null;\n }\n };\n\n const renderSingleColumn = () => {\n return fields.map(renderFormField);\n };\n const renderSplitColumns = () => {\n const fieldsLen = fields?.length || 0;\n const columnsQty =\n getColumnsQty() > fieldsLen ? fieldsLen : getColumnsQty();\n\n if (!columnsQty) return null;\n\n const parts = new Array(columnsQty).fill([]).map((v, i) => {\n const startIndex = (fieldsLen / columnsQty) * i;\n const endIndex = startIndex + fieldsLen / columnsQty;\n\n return fields.slice(startIndex, endIndex);\n });\n\n return (\n <div className=\"row\">\n {parts.map((part, i) => (\n <div\n key={`render-fields-row-${i}`}\n className={`col-12 col-lg-${parseInt(maxWidth / columnsQty, 10)}`}\n >\n {part.map(renderFormField)}\n </div>\n ))}\n </div>\n );\n };\n\n const render = cols === 1 ? renderSingleColumn : renderSplitColumns;\n\n return render();\n}\n"],"mappings":";;AAAA,IAAM,oCAAoC;CAExC,QAAQ,MAAM,8DAA8D;CAC5E,OAAO;AACT;AAEA,IAAM,8BAA8B;CAElC,QAAQ,MAAM,wDAAwD;CACtE,OAAO;AACT;AAEA,IAAM,6BAA6B;CAEjC,QAAQ,KACN,kEACF;CACA,OAAO;AACT;AAEA,IAAM,2BAA2B;CAE/B,QAAQ,KACN,uEACF;CACA,OAAO;AACT;AAEA,SAAwB,aAAa,EACnC,MACA,QACA,OAAO,GACP,iBAAiB,uBACjB,uBAAuB,6BACvB,gBAAgB,sBAChB,cAAc,uBACZ,CAAC,GAAG;CACN,MAAM,aAAa;CACnB,MAAM,WAAW;CAEjB,MAAM,EAAE,iBAAiB,eAAe,EAAE,KAAK,CAAC;CAEhD,MAAM,sBAAsB;EAC1B,OAAO,OAAO,aAAa,aAAa;CAC1C;CAEA,MAAM,mBAAmB,QAAQ;EAC/B,IAAI;GACF,MAAM,QAAQ;IAAE,GAAG,aAAa,GAAG;IAAG;GAAI;GAC1C,MAAM,EAAE,eAAe;GAEvB,OACE,oBAAC,OAAA;IAEC,IAAI,wBAAwB;IAC5B,KACE,aACI,OAAO,eAAe,cACnB,SAAS,WAAW,MAAM,GAAG,IAC9B,aACF;IAGN,UAAA,oBAAC,sBAAA;KAEC;KACA,WAAW,UAAU,cAAc,KAAK,KAAK;KAC7C,SAAQ,GAAI,SAAS,YAAY,GAAG,IAAI;IAAA,GAHnC,GAIP;GAAA,GAfK,wBAAwB,KAgB/B;EAEJ,SAAS,GAAG;GACV,OAAO;EACT;CACF;CAEA,MAAM,2BAA2B;EAC/B,OAAO,OAAO,IAAI,eAAe;CACnC;CACA,MAAM,2BAA2B;EAC/B,MAAM,YAAY,QAAQ,UAAU;EACpC,MAAM,aACJ,cAAc,IAAI,YAAY,YAAY,cAAc;EAE1D,IAAI,CAAC,YAAY,OAAO;EASxB,OACE,oBAAC,OAAA;GAAI,WAAU;GACZ,UATS,IAAI,MAAM,UAAU,CAAA,CAAE,KAAK,CAAC,CAAC,CAAA,CAAE,KAAK,GAAG,MAAM;IACzD,MAAM,aAAc,YAAY,aAAc;IAC9C,MAAM,WAAW,aAAa,YAAY;IAE1C,OAAO,OAAO,MAAM,YAAY,QAAQ;GAC1C,CAIK,CAAA,CAAM,KAAK,MAAM,MAChB,oBAAC,OAAA;IAEC,WAAW,iBAAiB,SAAS,WAAW,YAAY,EAAE;IAE7D,UAAA,KAAK,IAAI,eAAe;GAAA,GAHpB,qBAAqB,GAI5B,CACD;EAAA,CACH;CAEJ;CAIA,QAFe,SAAS,IAAI,qBAAqB,mBAAA,CAEnC;AAChB"}
1
+ {"version":3,"file":"RenderFields.js","names":[],"sources":["../../../../../src/Functions/useFormTools/functions/RenderFields.js"],"sourcesContent":["const defaultRenderFieldComponent = () => {\n // eslint-disable-next-line no-console\n console.error(\"RenderFields: RenderFieldComponent Property is not recieved!\");\n return null;\n};\n\nconst defaultFormDataDriver = () => {\n // eslint-disable-next-line no-console\n console.error(\"RenderFields: FormDataDriver Property is not recieved!\");\n return null;\n};\n\nconst defaultOnFieldChange = () => {\n // eslint-disable-next-line no-console\n console.warn(\n \"RenderFields: Be careful, onFieldChange handler is not recieved!\",\n );\n return null;\n};\n\nconst defaultOnFieldBlur = () => {\n // eslint-disable-next-line no-console\n console.warn(\n \"RenderFields: Be careful, defaultOnFieldBlur handler is not recieved!\",\n );\n return null;\n};\n\nexport default function RenderFields({\n form,\n fields,\n cols = 1,\n FormDataDriver = defaultFormDataDriver,\n RenderFieldComponent = defaultRenderFieldComponent,\n onFieldChange = defaultOnFieldChange,\n onFieldBlur = defaultOnFieldBlur,\n} = {}) {\n const maxColumns = 6;\n const maxWidth = 12;\n\n const { getFormField } = FormDataDriver({ form });\n\n const getColumnsQty = () => {\n return cols > maxColumns ? maxColumns : cols;\n };\n\n const renderFormField = (key) => {\n try {\n const field = { ...getFormField(key), key };\n const { wrapperRef } = field;\n\n return (\n <div\n key={`render-field-wrapper-${key}`}\n id={`render-field-wrapper-${key}`}\n ref={\n wrapperRef\n ? typeof wrapperRef === \"function\"\n ? (node) => wrapperRef(node, key)\n : wrapperRef\n : null\n }\n >\n <RenderFieldComponent\n key={key}\n field={field}\n onChange={(value) => onFieldChange(key, value)}\n onBlur={(...args) => onFieldBlur(...args)}\n />\n </div>\n );\n } catch (e) {\n return null;\n }\n };\n\n const renderSingleColumn = () => {\n return fields.map(renderFormField);\n };\n const renderSplitColumns = () => {\n const fieldsLen = fields?.length || 0;\n const columnsQty =\n getColumnsQty() > fieldsLen ? fieldsLen : getColumnsQty();\n\n if (!columnsQty) return null;\n\n const parts = new Array(columnsQty).fill([]).map((v, i) => {\n const startIndex = (fieldsLen / columnsQty) * i;\n const endIndex = startIndex + fieldsLen / columnsQty;\n\n return fields.slice(startIndex, endIndex);\n });\n\n return (\n <div className=\"row\">\n {parts.map((part, i) => (\n <div\n key={`render-fields-row-${i}`}\n className={`col-12 col-lg-${parseInt(maxWidth / columnsQty, 10)}`}\n >\n {part.map(renderFormField)}\n </div>\n ))}\n </div>\n );\n };\n\n const render = cols === 1 ? renderSingleColumn : renderSplitColumns;\n\n return render();\n}\n"],"mappings":";;AAAA,IAAM,oCAAoC;CAExC,QAAQ,MAAM,8DAA8D;CAC5E,OAAO;AACT;AAEA,IAAM,8BAA8B;CAElC,QAAQ,MAAM,wDAAwD;CACtE,OAAO;AACT;AAEA,IAAM,6BAA6B;CAEjC,QAAQ,KACN,kEACF;CACA,OAAO;AACT;AAEA,IAAM,2BAA2B;CAE/B,QAAQ,KACN,uEACF;CACA,OAAO;AACT;AAEA,SAAwB,aAAa,EACnC,MACA,QACA,OAAO,GACP,iBAAiB,uBACjB,uBAAuB,6BACvB,gBAAgB,sBAChB,cAAc,uBACZ,CAAC,GAAG;CACN,MAAM,aAAa;CACnB,MAAM,WAAW;CAEjB,MAAM,EAAE,iBAAiB,eAAe,EAAE,KAAK,CAAC;CAEhD,MAAM,sBAAsB;EAC1B,OAAO,OAAO,aAAa,aAAa;CAC1C;CAEA,MAAM,mBAAmB,QAAQ;EAC/B,IAAI;GACF,MAAM,QAAQ;IAAE,GAAG,aAAa,GAAG;IAAG;GAAI;GAC1C,MAAM,EAAE,eAAe;GAEvB,OACE,oBAAC,OAAA;IAEC,IAAI,wBAAwB;IAC5B,KACE,aACI,OAAO,eAAe,cACnB,SAAS,WAAW,MAAM,GAAG,IAC9B,aACF;IAGN,UAAA,oBAAC,sBAAA;KAEC;KACA,WAAW,UAAU,cAAc,KAAK,KAAK;KAC7C,SAAQ,GAAI,SAAS,YAAY,GAAG,IAAI;IAAA,GAHnC,GAIP;GAAA,GAfK,wBAAwB,KAgB/B;EAEJ,SAAS,GAAG;GACV,OAAO;EACT;CACF;CAEA,MAAM,2BAA2B;EAC/B,OAAO,OAAO,IAAI,eAAe;CACnC;CACA,MAAM,2BAA2B;EAC/B,MAAM,YAAY,QAAQ,UAAU;EACpC,MAAM,aACJ,cAAc,IAAI,YAAY,YAAY,cAAc;EAE1D,IAAI,CAAC,YAAY,OAAO;EAExB,MAAM,QAAQ,IAAI,MAAM,UAAU,CAAA,CAAE,KAAK,CAAC,CAAC,CAAA,CAAE,KAAK,GAAG,MAAM;GACzD,MAAM,aAAc,YAAY,aAAc;GAC9C,MAAM,WAAW,aAAa,YAAY;GAE1C,OAAO,OAAO,MAAM,YAAY,QAAQ;EAC1C,CAAC;EAED,OACE,oBAAC,OAAA;GAAI,WAAU;GACZ,UAAA,MAAM,KAAK,MAAM,MAChB,oBAAC,OAAA;IAEC,WAAW,iBAAiB,SAAS,WAAW,YAAY,EAAE;IAE7D,UAAA,KAAK,IAAI,eAAe;GAAA,GAHpB,qBAAqB,GAI5B,CACD;EAAA,CACH;CAEJ;CAIA,QAFe,SAAS,IAAI,qBAAqB,mBAAA,CAEnC;AAChB"}
@@ -115,10 +115,7 @@ function useFormTools({ form, setForm, FormType, FormFields, FormDataDriverName
115
115
  if (!event) return false;
116
116
  const { keyCode } = event;
117
117
  switch (keyCode) {
118
- case 13:
119
- onEnterDown(event);
120
- break;
121
- default: break;
118
+ case 13: onEnterDown(event);
122
119
  }
123
120
  };
124
121
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fields"],"sources":["../../../../src/Functions/useFormTools/index.js"],"sourcesContent":["// eslint-disable-next-line no-unused-vars\nimport { createRef, useEffect, useState } from \"react\";\n\nimport ArrayWithObjects from \"./form-drivers/ArrayWithObjects\";\nimport ObjectWithIterableObjects from \"./form-drivers/ObjectWithIterableObjects\";\nimport ObjectWithNamedKeyObjects from \"./form-drivers/ObjectWithNamedKeyObjects\";\nimport General from \"./functions/General\";\nimport RenderFields from \"./functions/RenderFields\";\n\nconst DefaultFocusControllerProps = {\n setAutoFocus: true,\n onlyEmptyFieldAutoFocus: false,\n};\n\nexport default function useFormTools({\n form,\n setForm,\n FormType,\n FormFields,\n FormDataDriverName = \"ArrayWithObjects\" ||\n \"ObjectWithIterableObjects\" ||\n \"ObjectWithNamedKeyObjects\",\n FormDataDriver = null,\n FocusControllerProps = DefaultFocusControllerProps,\n goToNextFieldOnEnterPressed = true,\n} = {}) {\n FocusControllerProps = {\n ...DefaultFocusControllerProps,\n ...FocusControllerProps,\n };\n\n const FormDataDrivers = {\n ArrayWithObjects: {\n handlers: ArrayWithObjects,\n default: true,\n },\n ObjectWithIterableObjects: {\n handlers: ObjectWithIterableObjects,\n },\n ObjectWithNamedKeyObjects: {\n handlers: ObjectWithNamedKeyObjects,\n },\n };\n\n const getFormDataDriver = (name) => {\n return (\n FormDataDriver ||\n FormDataDrivers[name]?.handlers ||\n Object.values(FormDataDrivers).find((df) => df.default === true)\n ?.handlers ||\n (() => ({}))\n );\n };\n const getFormDataDriverInstance = (name, ...args) => {\n return getFormDataDriver(name)(...args);\n };\n\n const { getFieldClassName, updateFormField } = General();\n\n const {\n getFieldData,\n getFormField,\n setFormFields,\n setFormField,\n getFormFieldsAsArray,\n getFormFieldsKeys,\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n } = getFormDataDriverInstance(FormDataDriverName, {\n form,\n setForm,\n FormFields,\n });\n\n ///////////////////////////////////////////////////////////////\n //--- OnChange Observer ---//--- START ---//\n const [onChangeObservers, setOnChangeObservers] = useState({});\n const addOnChangeObserver = (key, cb) => {\n let observerId = null;\n\n setOnChangeObservers((state) => {\n //Set Default Value\n if (!state[key]) state[key] = {};\n\n observerId = state[key].length;\n\n state[key][observerId] = cb;\n\n return state;\n });\n\n return observerId;\n };\n const removeOnChangeObserver = (key, id) => {\n setOnChangeObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key] = Object.keys(state)\n .filter((cbId) => cbId !== id)\n .map((cbId) => state[key][cbId]);\n\n return state;\n });\n };\n const onChangeObserver = (key, value) => {\n if (!onChangeObservers[key] || typeof onChangeObservers[key] !== \"object\")\n return;\n\n const Observers = onChangeObservers[key];\n\n Object.values(Observers).map((cb) => {\n cb({ value, form });\n return null;\n });\n };\n const onFieldChange = (key, value) => {\n if (value === getFormField(key)?.value) return false;\n\n onChangeObserver(key, value);\n setFormField(\n (field) => ({\n ...field,\n error: \"\",\n value,\n }),\n key,\n );\n };\n //--- OnChange Observer ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Form Submit Blocker ---//--- START ---//\n const [formSubmitBlockers, setFormSubmitBlockers] = useState([]);\n const toggleFormSubmitBlock = (key, value) => {\n setFormSubmitBlockers((state) =>\n state.includes(key) || !value\n ? [...state.filter((k) => k !== key)]\n : [...state, key],\n );\n };\n const clearFormSubmitBlockers = () => setFormSubmitBlockers([]);\n //--- Form Submit Blocker ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Property Observer Blocker ---//--- START ---//\n // const [propertyObservers, setPropertyObservers] = useState({});\n // function addPropertyObserver () {\n // };\n //--- Property Observer Blocker ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Render Fields Controller ---//--- START ---//\n const [isFormFieldsAdded, setIsFormFieldsAdded] = useState(false);\n const [renderFormFields, setRenderFormFieldsState] = useState([]);\n const setRenderFormFields = (data) => {\n setIsFormFieldsAdded(true);\n // eslint-disable-next-line no-use-before-define\n removeRenderFields(renderFormFields);\n // eslint-disable-next-line no-use-before-define\n resetIsInitFocused();\n setRenderFormFieldsState(data);\n };\n const addRenderFields = (fields) => {\n setRenderFormFieldsState((state) => [...state, ...fields]);\n };\n const removeRenderFields = (fields) => {\n setRenderFormFieldsState((state) =>\n state.filter((field) => !fields.includes(field)),\n );\n };\n\n const [isFormRendered, setIsFormRendered] = useState(false);\n const submitIsFormRendered = () => setIsFormRendered(true);\n const resetIsFormRendered = () => setIsFormRendered(false);\n\n const onEnterDown = async (e) => {\n if (!goToNextFieldOnEnterPressed) return false;\n\n const focusable = document.querySelectorAll(\n 'a, button, input, [tabindex]:not([tabindex=\"-1\"])',\n );\n const currentIndex = await new Promise((resolve) => {\n focusable.forEach((node, i) => {\n if (node === e.target) resolve(i);\n });\n });\n\n if (!currentIndex) return false;\n\n const nextIndex = currentIndex + 1;\n\n if (nextIndex >= focusable.length) return false;\n\n const nextItem = focusable[nextIndex];\n\n nextItem.focus();\n };\n\n const onKeyDown = (...args) => {\n const event = args.reduce((e, item) => {\n if (item?.nativeEvent instanceof KeyboardEvent) return item;\n return e;\n }, null);\n\n if (!event) return false;\n\n const { keyCode } = event;\n\n switch (keyCode) {\n //OnEnterDown\n case 13:\n onEnterDown(event);\n break;\n\n default:\n break;\n }\n };\n\n //On Type Change\n useEffect(() => {\n resetIsFormRendered();\n }, [FormType]);\n\n //On Render Fields Change\n useEffect(() => {\n if (isFormFieldsAdded) resetIsFormRendered(false);\n\n //Add Form Fields\n if (renderFormFields.length !== 0) {\n setFormFields((fields) => {\n return renderFormFields.reduce((result, key) => {\n const fieldData = getFieldData(key);\n const field = getFormField(key) ? getFormField(key) : fieldData;\n\n if (\n !field?.className ||\n field?.className?.indexOf(getFieldClassName(key, FormType)) === -1\n ) {\n field.className = `${field?.className} ${getFieldClassName(key, FormType)}`;\n }\n\n if (typeof fieldData?.label === \"object\") {\n field.label = fieldData.label[FormType] || fieldData.label.default;\n }\n\n field.ref = createRef();\n field.wrapperRef = createRef();\n\n field.isValueChangedByUser = false;\n\n if (goToNextFieldOnEnterPressed) {\n const onKeyDownProp = field.onKeyDown || (() => {});\n field.onKeyDown = (...args) => {\n onKeyDown(...args);\n onKeyDownProp(...args);\n };\n }\n\n //Is Field Value Changed By USER\n // eslint-disable-next-line no-use-before-define\n addOnFieldRenderedObserver(\n key,\n () => {\n const element = getFormField(key)?.ref?.current?.querySelector(\n field?.focusSelector || \"input\",\n );\n const handler = () =>\n setFormField({ isValueChangedByUser: true }, key);\n\n element?.addEventListener(\"paste\", handler, { once: true });\n element?.addEventListener(\"keypress\", handler, { once: true });\n },\n true,\n );\n\n return updateFormField(result, field, key);\n }, fields);\n });\n }\n }, [renderFormFields]);\n\n const [onFormRenderObservers, setOnFormRenderObservers] = useState([]);\n const addOnFormRenderObserver = (cb, { once = false } = {}) => {\n setOnFormRenderObservers((state) => [\n ...state,\n { cb, once, isWorkedOut: false },\n ]);\n };\n // eslint-disable-next-line no-unused-vars\n const updateOnFormRenderObserver = (key, data) => {\n setOnFormRenderObservers((state) => {\n const copy = [...state];\n copy[key] = { ...state[key], ...data };\n\n return copy;\n });\n };\n const removeOnFormRenderObserver = (key) => {\n setOnFormRenderObservers((state) =>\n state.slice().filter((v, i) => i !== key),\n );\n };\n const onFormRenderWorker = () => {\n // eslint-disable-next-line default-param-last\n onFormRenderObservers.map(\n ({ once, isWorkedOut, cb = () => {} } = {}, key) => {\n if (once && isWorkedOut) return null;\n\n cb(form);\n if (once) removeOnFormRenderObserver(key);\n else updateOnFormRenderObserver(key, { isWorkedOut: true });\n return null;\n },\n );\n };\n\n //On Form Rendered\n useEffect(() => {\n if (!isFormRendered && onFormRenderObservers.length) {\n const formFieldsKeys = getFormFieldsKeys(form);\n const isAllFieldsRendered = renderFormFields.reduce((result, key) => {\n if (!formFieldsKeys.includes(key)) result = false;\n\n return result;\n }, true);\n\n if (isAllFieldsRendered) {\n submitIsFormRendered(true);\n onFormRenderWorker();\n }\n }\n }, [form, renderFormFields, onFormRenderObservers]);\n //--- Render Fields Controller ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//\n const hightliteErrorLabels = () => {\n const fields = getFormFieldsAsArray();\n\n const filtered = fields?.reduce((result, field) => {\n if (field?.errorLabelHightlite) {\n // eslint-disable-next-line no-use-before-define\n result.push({\n ...field,\n className: getFieldClassName(field?.key, FormType),\n });\n }\n\n return result;\n }, []);\n\n filtered?.map((field) => {\n const formField = document.querySelector(`.${field?.className}`);\n\n if (!formField) return null;\n\n formField.classList.remove(\"errorLabelHightlite\");\n\n if (field?.error) {\n formField.classList.add(\"errorLabelHightlite\");\n }\n\n return null;\n });\n };\n useEffect(() => {\n hightliteErrorLabels();\n }, [form]);\n //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Fields Focus Controller ---//--- START ---//\n const [isInitFocused, setIsInitFocused] = useState(false);\n const [autoFocusedField, setAutoFocusedField] = useState(null);\n\n const setFirstFieldInitFocused = () => setIsInitFocused(true);\n const resetIsInitFocused = () => setIsInitFocused(false);\n\n const toggleFieldFocus = (\n { key, cb = () => {}, form: argForm, field },\n action = \"focus\",\n ) => {\n if (!key && !field) return null;\n\n if (!argForm) argForm = form;\n\n const formField = field || getFormField(key, argForm);\n\n if (!formField || !formField.ref) {\n return false;\n }\n\n if (\n action === \"focus\" &&\n FocusControllerProps.onlyEmptyFieldAutoFocus &&\n Boolean(formField?.value)\n )\n return null;\n\n setTimeout(() => {\n formField.ref.current\n ?.querySelector(formField?.focusSelector || \"input\")\n ?.[action]();\n cb();\n }, 50);\n };\n\n const setFieldFocus = ({ key, cb = () => {}, form: argForm, field }) =>\n toggleFieldFocus({ key, cb, form: argForm, field }, \"focus\");\n const setFieldBlur = ({ key, cb = () => {}, form: argForm, field }) =>\n toggleFieldFocus({ key, cb, form: argForm, field }, \"blur\");\n\n const setFirstFieldFocus = () => {\n let field = null;\n\n for (let i = 0; i < renderFormFields.length && !field; ++i) {\n const key = renderFormFields[i];\n const tmpField = getFormField(key);\n if (tmpField && !tmpField?.disabled) field = tmpField;\n }\n\n if (!field) return false;\n\n if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(field?.value)) {\n setFirstFieldInitFocused();\n return false;\n }\n\n setAutoFocusedField(field.key);\n\n const callback = () => {\n setFormField({ value: field.value }, field.key);\n setFirstFieldInitFocused();\n };\n\n setTimeout(() => setFieldFocus({ key: field.key, cb: callback, form }), 50);\n };\n\n const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = useState({});\n const addOnFieldFocusCallback = (key, cb) => {\n setOnFieldFocusCallbacks((state) => {\n const stateCopy = { ...state };\n\n if (!state[key]) stateCopy[key] = [];\n\n stateCopy[key].push(cb);\n\n return stateCopy;\n });\n };\n const callOnFieldFocusCallbacks = (key) => {\n if (!Array.isArray(onFieldFocusCallbacks[key])) return null;\n\n onFieldFocusCallbacks[key]?.map((cb) => cb());\n };\n\n const [focusOnRenderFields, setFocusOnRenderFields] = useState([]);\n const addFocusFieldOnRender = (key, cb) => {\n setFocusOnRenderFields((state) => [...state, key]);\n\n if (cb) addOnFieldFocusCallback(key, cb);\n };\n const removeFocusFieldOnRender = (key) => {\n setFocusOnRenderFields((state) => state.filter((field) => field !== key));\n };\n\n useEffect(() => {\n if (\n FocusControllerProps.setAutoFocus &&\n !isInitFocused &&\n !autoFocusedField &&\n isFormRendered\n )\n setFirstFieldFocus();\n\n if (focusOnRenderFields.length) {\n getFormFieldsKeys(form)?.map((key) => {\n if (\n focusOnRenderFields.includes(key) &&\n getFormField(key)?.value?.length === 0\n ) {\n const cb = () => {\n removeFocusFieldOnRender(key);\n callOnFieldFocusCallbacks(key);\n };\n\n setFieldFocus({ key, form, cb });\n }\n return null;\n });\n }\n }, [form, focusOnRenderFields, isInitFocused, isFormRendered]);\n\n useEffect(() => {\n setAutoFocusedField(null);\n }, [isInitFocused]);\n\n useEffect(() => {\n resetIsInitFocused();\n }, [FormType]);\n\n //Remove Focus From Autocomplete field !!! TODO\n // useEffect(() => {\n // if (!autoFocusedField) return null;\n // const field = getFormField(autoFocusedField);\n\n // if (field?.value !== '' && !field?.isValueChangedByUser) {\n // setFieldBlur({key: autoFocusedField, form});\n // }\n // }, [autoFocusedField, form]);\n //--- Fields Focus Controller ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- OnFieldRendered Observer ---//--- START ---//\n const [onFieldRenderedObservers, setOnFieldRenderedObservers] = useState({});\n const [isFieldObserversReset, setIsFieldObserversReset] = useState(false);\n\n const resetOnFieldRenderObserversWorkedOut = () => {\n if (!isFieldObserversReset && renderFormFields.length) {\n renderFormFields.map((key) => {\n setFormField({ isOnRenderObserversWorkedOut: false }, key);\n return key;\n });\n setIsFieldObserversReset(true);\n }\n };\n const addOnFieldRenderedObserver = (key, cb, isOnceCallable = true) => {\n let observerId = null;\n\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) state[key] = {};\n\n observerId = Object.keys(state[key]).length || 0;\n\n state[key][observerId] = {\n f: cb,\n isOnceCallable,\n };\n\n return state;\n });\n\n return observerId;\n };\n const updateOnFieldRenderedObserver = (key, id, data) => {\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key][id] = {\n ...state[key][id],\n ...data,\n };\n\n return state;\n });\n };\n const removeOnFieldRenderedObserver = (key, id) => {\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key] = Object.keys(state)\n .filter((cbId) => cbId !== id)\n .map((cbId) => state[key][cbId]);\n\n return state;\n });\n };\n const onFieldRenderedObserver = (key, data) => {\n if (\n !onFieldRenderedObservers[key] ||\n typeof onFieldRenderedObservers[key] !== \"object\"\n )\n return;\n\n const Observers = onFieldRenderedObservers[key];\n const FilteredObservers = Object.values(Observers).filter(\n (observer) => !observer?.isObserverWorkedOut,\n );\n\n if (FilteredObservers.length === 0) return null;\n\n setFormField({ isOnRenderObserversWorkedOut: true }, key);\n\n FilteredObservers.map(({ f, isOnceCallable }, id) => {\n f(data);\n if (isOnceCallable)\n updateOnFieldRenderedObserver(key, id, { isObserverWorkedOut: true });\n return null;\n });\n };\n const onRenderObserverWorker = () => {\n return getFormFieldsKeys(form)?.map((key) => {\n //OnFieldRendered\n const fieldData = getFormField(key);\n if (!fieldData?.isOnRenderObserversWorkedOut) {\n onFieldRenderedObserver(key, fieldData);\n return { key, isWorkedOut: true };\n }\n\n return { key, isWorkedOut: false };\n });\n };\n\n useEffect(() => {\n resetOnFieldRenderObserversWorkedOut();\n onRenderObserverWorker();\n }, [form]);\n\n useEffect(() => {\n setIsFieldObserversReset(false);\n }, [FormType]);\n //--- OnFieldRendered Observer ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //Detect What Changed || TRY TO DO\n // const compare = async (prev, current) => {\n // if (!prev) return current;\n\n // return new Promise((resolve) => {\n // Object.keys(current).reduce((result, key, i, arr) => {\n // //If PROPERTY is NOT EXISTS BEFORE\n // if ([null, undefined].includes(prev[key])) {\n // result[key] = current[key];\n // }\n // //If PROPERTY is AN OBJECT\n // else if (typeof current[key] === 'object') {\n // //If PROPERTY is EXISTS BEFORE\n // const innerCompare = compare(prev[key], current[key]);\n // // //If SOMETHING CHANGED\n // if (innerCompare?.length) result[key] = innerCompare;\n // }\n // //If PROPERTY is AN SIMPLE VALUE and PROPERTY CHANGED\n // else if (prev[key] !== current[key]) {\n // result[key] = current[key];\n // }\n\n // if (i === arr.length-1) {\n // resolve(result);\n // }\n\n // return result;\n // }, {});\n // });\n // };\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- WindowScrollController ---//--- START ---//\n const scrollToField = ({ key = null, field = null, form: argForm }) => {\n if (!key && !field) return false;\n if (!argForm) argForm = form;\n\n if (!field) field = getFormField(key, argForm);\n\n const wrapperRef = field?.wrapperRef || field?.ref;\n // eslint-disable-next-line no-unsafe-optional-chaining\n const { top: topOffset } = wrapperRef?.current?.getBoundingClientRect();\n const scrollTop =\n Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;\n window.scrollTo({ top: scrollTop });\n };\n\n //--- WindowScrollController ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n const addErrorsToForm = (errors, argForm = form) => {\n if (!argForm) argForm = form;\n\n setFormFields((fields) => {\n return errors.reduce(\n (fields, { message: error, propertyPath: errKey }) => {\n return updateFormField(fields, { error }, errKey);\n },\n fields,\n );\n });\n };\n\n return {\n FormDataDrivers,\n\n //OnChangeObserver\n addOnChangeObserver,\n removeOnChangeObserver,\n onChangeObservers,\n\n //OnChangeHandler\n onFieldChange,\n\n //Form Submit Blocker\n toggleFormSubmitBlock,\n clearFormSubmitBlockers,\n isFormSubmitBlocked: Boolean(formSubmitBlockers.length),\n\n //Property Observers\n // addPropertyObserver,\n\n //Render Fields\n renderFormFields,\n setRenderFormFields,\n addRenderFields,\n removeRenderFields,\n\n getFieldClassName,\n\n //Field Focus Controller\n isInitFocused,\n setFirstFieldInitFocused,\n resetIsInitFocused,\n setFieldFocus,\n setFieldBlur,\n setFirstFieldFocus,\n autoFocusedField,\n\n addFocusFieldOnRender,\n removeFocusFieldOnRender,\n\n //Field Render Controller\n addOnFieldRenderedObserver,\n removeOnFieldRenderedObserver,\n onFieldRenderedObservers,\n\n updateFormField,\n addOnFormRenderObserver,\n submitIsFormRendered,\n resetIsFormRendered,\n renderFields: ({\n form: argForm = form,\n fields: argFields = renderFormFields,\n cols: argCols = 1,\n RenderFieldComponent,\n }) =>\n RenderFields({\n form: argForm,\n fields: argFields,\n cols: argCols,\n RenderFieldComponent,\n onFieldChange,\n FormDataDriver: getFormDataDriver(FormDataDriverName),\n }),\n\n scrollToField,\n\n getFieldData,\n getFormField,\n setFormFields,\n setFormField: (data, key) => setFormField(data, key),\n getFormFieldsAsArray,\n getFormFieldsKeys,\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n addErrorsToForm,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["fields"],"sources":["../../../../src/Functions/useFormTools/index.js"],"sourcesContent":["// eslint-disable-next-line no-unused-vars\nimport { createRef, useEffect, useState } from \"react\";\n\nimport ArrayWithObjects from \"./form-drivers/ArrayWithObjects\";\nimport ObjectWithIterableObjects from \"./form-drivers/ObjectWithIterableObjects\";\nimport ObjectWithNamedKeyObjects from \"./form-drivers/ObjectWithNamedKeyObjects\";\nimport General from \"./functions/General\";\nimport RenderFields from \"./functions/RenderFields\";\n\nconst DefaultFocusControllerProps = {\n setAutoFocus: true,\n onlyEmptyFieldAutoFocus: false,\n};\n\nexport default function useFormTools({\n form,\n setForm,\n FormType,\n FormFields,\n FormDataDriverName = \"ArrayWithObjects\" ||\n \"ObjectWithIterableObjects\" ||\n \"ObjectWithNamedKeyObjects\",\n FormDataDriver = null,\n FocusControllerProps = DefaultFocusControllerProps,\n goToNextFieldOnEnterPressed = true,\n} = {}) {\n FocusControllerProps = {\n ...DefaultFocusControllerProps,\n ...FocusControllerProps,\n };\n\n const FormDataDrivers = {\n ArrayWithObjects: {\n handlers: ArrayWithObjects,\n default: true,\n },\n ObjectWithIterableObjects: {\n handlers: ObjectWithIterableObjects,\n },\n ObjectWithNamedKeyObjects: {\n handlers: ObjectWithNamedKeyObjects,\n },\n };\n\n const getFormDataDriver = (name) => {\n return (\n FormDataDriver ||\n FormDataDrivers[name]?.handlers ||\n Object.values(FormDataDrivers).find((df) => df.default === true)\n ?.handlers ||\n (() => ({}))\n );\n };\n const getFormDataDriverInstance = (name, ...args) => {\n return getFormDataDriver(name)(...args);\n };\n\n const { getFieldClassName, updateFormField } = General();\n\n const {\n getFieldData,\n getFormField,\n setFormFields,\n setFormField,\n getFormFieldsAsArray,\n getFormFieldsKeys,\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n } = getFormDataDriverInstance(FormDataDriverName, {\n form,\n setForm,\n FormFields,\n });\n\n ///////////////////////////////////////////////////////////////\n //--- OnChange Observer ---//--- START ---//\n const [onChangeObservers, setOnChangeObservers] = useState({});\n const addOnChangeObserver = (key, cb) => {\n let observerId = null;\n\n setOnChangeObservers((state) => {\n //Set Default Value\n if (!state[key]) state[key] = {};\n\n observerId = state[key].length;\n\n state[key][observerId] = cb;\n\n return state;\n });\n\n return observerId;\n };\n const removeOnChangeObserver = (key, id) => {\n setOnChangeObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key] = Object.keys(state)\n .filter((cbId) => cbId !== id)\n .map((cbId) => state[key][cbId]);\n\n return state;\n });\n };\n const onChangeObserver = (key, value) => {\n if (!onChangeObservers[key] || typeof onChangeObservers[key] !== \"object\")\n return;\n\n const Observers = onChangeObservers[key];\n\n Object.values(Observers).map((cb) => {\n cb({ value, form });\n return null;\n });\n };\n const onFieldChange = (key, value) => {\n if (value === getFormField(key)?.value) return false;\n\n onChangeObserver(key, value);\n setFormField(\n (field) => ({\n ...field,\n error: \"\",\n value,\n }),\n key,\n );\n };\n //--- OnChange Observer ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Form Submit Blocker ---//--- START ---//\n const [formSubmitBlockers, setFormSubmitBlockers] = useState([]);\n const toggleFormSubmitBlock = (key, value) => {\n setFormSubmitBlockers((state) =>\n state.includes(key) || !value\n ? [...state.filter((k) => k !== key)]\n : [...state, key],\n );\n };\n const clearFormSubmitBlockers = () => setFormSubmitBlockers([]);\n //--- Form Submit Blocker ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Property Observer Blocker ---//--- START ---//\n // const [propertyObservers, setPropertyObservers] = useState({});\n // function addPropertyObserver () {\n // };\n //--- Property Observer Blocker ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Render Fields Controller ---//--- START ---//\n const [isFormFieldsAdded, setIsFormFieldsAdded] = useState(false);\n const [renderFormFields, setRenderFormFieldsState] = useState([]);\n const setRenderFormFields = (data) => {\n setIsFormFieldsAdded(true);\n // eslint-disable-next-line no-use-before-define\n removeRenderFields(renderFormFields);\n // eslint-disable-next-line no-use-before-define\n resetIsInitFocused();\n setRenderFormFieldsState(data);\n };\n const addRenderFields = (fields) => {\n setRenderFormFieldsState((state) => [...state, ...fields]);\n };\n const removeRenderFields = (fields) => {\n setRenderFormFieldsState((state) =>\n state.filter((field) => !fields.includes(field)),\n );\n };\n\n const [isFormRendered, setIsFormRendered] = useState(false);\n const submitIsFormRendered = () => setIsFormRendered(true);\n const resetIsFormRendered = () => setIsFormRendered(false);\n\n const onEnterDown = async (e) => {\n if (!goToNextFieldOnEnterPressed) return false;\n\n const focusable = document.querySelectorAll(\n 'a, button, input, [tabindex]:not([tabindex=\"-1\"])',\n );\n const currentIndex = await new Promise((resolve) => {\n focusable.forEach((node, i) => {\n if (node === e.target) resolve(i);\n });\n });\n\n if (!currentIndex) return false;\n\n const nextIndex = currentIndex + 1;\n\n if (nextIndex >= focusable.length) return false;\n\n const nextItem = focusable[nextIndex];\n\n nextItem.focus();\n };\n\n const onKeyDown = (...args) => {\n const event = args.reduce((e, item) => {\n if (item?.nativeEvent instanceof KeyboardEvent) return item;\n return e;\n }, null);\n\n if (!event) return false;\n\n const { keyCode } = event;\n\n switch (keyCode) {\n //OnEnterDown\n case 13:\n onEnterDown(event);\n break;\n\n default:\n break;\n }\n };\n\n //On Type Change\n useEffect(() => {\n resetIsFormRendered();\n }, [FormType]);\n\n //On Render Fields Change\n useEffect(() => {\n if (isFormFieldsAdded) resetIsFormRendered(false);\n\n //Add Form Fields\n if (renderFormFields.length !== 0) {\n setFormFields((fields) => {\n return renderFormFields.reduce((result, key) => {\n const fieldData = getFieldData(key);\n const field = getFormField(key) ? getFormField(key) : fieldData;\n\n if (\n !field?.className ||\n field?.className?.indexOf(getFieldClassName(key, FormType)) === -1\n ) {\n field.className = `${field?.className} ${getFieldClassName(key, FormType)}`;\n }\n\n if (typeof fieldData?.label === \"object\") {\n field.label = fieldData.label[FormType] || fieldData.label.default;\n }\n\n field.ref = createRef();\n field.wrapperRef = createRef();\n\n field.isValueChangedByUser = false;\n\n if (goToNextFieldOnEnterPressed) {\n const onKeyDownProp = field.onKeyDown || (() => {});\n field.onKeyDown = (...args) => {\n onKeyDown(...args);\n onKeyDownProp(...args);\n };\n }\n\n //Is Field Value Changed By USER\n // eslint-disable-next-line no-use-before-define\n addOnFieldRenderedObserver(\n key,\n () => {\n const element = getFormField(key)?.ref?.current?.querySelector(\n field?.focusSelector || \"input\",\n );\n const handler = () =>\n setFormField({ isValueChangedByUser: true }, key);\n\n element?.addEventListener(\"paste\", handler, { once: true });\n element?.addEventListener(\"keypress\", handler, { once: true });\n },\n true,\n );\n\n return updateFormField(result, field, key);\n }, fields);\n });\n }\n }, [renderFormFields]);\n\n const [onFormRenderObservers, setOnFormRenderObservers] = useState([]);\n const addOnFormRenderObserver = (cb, { once = false } = {}) => {\n setOnFormRenderObservers((state) => [\n ...state,\n { cb, once, isWorkedOut: false },\n ]);\n };\n // eslint-disable-next-line no-unused-vars\n const updateOnFormRenderObserver = (key, data) => {\n setOnFormRenderObservers((state) => {\n const copy = [...state];\n copy[key] = { ...state[key], ...data };\n\n return copy;\n });\n };\n const removeOnFormRenderObserver = (key) => {\n setOnFormRenderObservers((state) =>\n state.slice().filter((v, i) => i !== key),\n );\n };\n const onFormRenderWorker = () => {\n // eslint-disable-next-line default-param-last\n onFormRenderObservers.map(\n ({ once, isWorkedOut, cb = () => {} } = {}, key) => {\n if (once && isWorkedOut) return null;\n\n cb(form);\n if (once) removeOnFormRenderObserver(key);\n else updateOnFormRenderObserver(key, { isWorkedOut: true });\n return null;\n },\n );\n };\n\n //On Form Rendered\n useEffect(() => {\n if (!isFormRendered && onFormRenderObservers.length) {\n const formFieldsKeys = getFormFieldsKeys(form);\n const isAllFieldsRendered = renderFormFields.reduce((result, key) => {\n if (!formFieldsKeys.includes(key)) result = false;\n\n return result;\n }, true);\n\n if (isAllFieldsRendered) {\n submitIsFormRendered(true);\n onFormRenderWorker();\n }\n }\n }, [form, renderFormFields, onFormRenderObservers]);\n //--- Render Fields Controller ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//\n const hightliteErrorLabels = () => {\n const fields = getFormFieldsAsArray();\n\n const filtered = fields?.reduce((result, field) => {\n if (field?.errorLabelHightlite) {\n // eslint-disable-next-line no-use-before-define\n result.push({\n ...field,\n className: getFieldClassName(field?.key, FormType),\n });\n }\n\n return result;\n }, []);\n\n filtered?.map((field) => {\n const formField = document.querySelector(`.${field?.className}`);\n\n if (!formField) return null;\n\n formField.classList.remove(\"errorLabelHightlite\");\n\n if (field?.error) {\n formField.classList.add(\"errorLabelHightlite\");\n }\n\n return null;\n });\n };\n useEffect(() => {\n hightliteErrorLabels();\n }, [form]);\n //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- Fields Focus Controller ---//--- START ---//\n const [isInitFocused, setIsInitFocused] = useState(false);\n const [autoFocusedField, setAutoFocusedField] = useState(null);\n\n const setFirstFieldInitFocused = () => setIsInitFocused(true);\n const resetIsInitFocused = () => setIsInitFocused(false);\n\n const toggleFieldFocus = (\n { key, cb = () => {}, form: argForm, field },\n action = \"focus\",\n ) => {\n if (!key && !field) return null;\n\n if (!argForm) argForm = form;\n\n const formField = field || getFormField(key, argForm);\n\n if (!formField || !formField.ref) {\n return false;\n }\n\n if (\n action === \"focus\" &&\n FocusControllerProps.onlyEmptyFieldAutoFocus &&\n Boolean(formField?.value)\n )\n return null;\n\n setTimeout(() => {\n formField.ref.current\n ?.querySelector(formField?.focusSelector || \"input\")\n ?.[action]();\n cb();\n }, 50);\n };\n\n const setFieldFocus = ({ key, cb = () => {}, form: argForm, field }) =>\n toggleFieldFocus({ key, cb, form: argForm, field }, \"focus\");\n const setFieldBlur = ({ key, cb = () => {}, form: argForm, field }) =>\n toggleFieldFocus({ key, cb, form: argForm, field }, \"blur\");\n\n const setFirstFieldFocus = () => {\n let field = null;\n\n for (let i = 0; i < renderFormFields.length && !field; ++i) {\n const key = renderFormFields[i];\n const tmpField = getFormField(key);\n if (tmpField && !tmpField?.disabled) field = tmpField;\n }\n\n if (!field) return false;\n\n if (FocusControllerProps.onlyEmptyFieldAutoFocus && Boolean(field?.value)) {\n setFirstFieldInitFocused();\n return false;\n }\n\n setAutoFocusedField(field.key);\n\n const callback = () => {\n setFormField({ value: field.value }, field.key);\n setFirstFieldInitFocused();\n };\n\n setTimeout(() => setFieldFocus({ key: field.key, cb: callback, form }), 50);\n };\n\n const [onFieldFocusCallbacks, setOnFieldFocusCallbacks] = useState({});\n const addOnFieldFocusCallback = (key, cb) => {\n setOnFieldFocusCallbacks((state) => {\n const stateCopy = { ...state };\n\n if (!state[key]) stateCopy[key] = [];\n\n stateCopy[key].push(cb);\n\n return stateCopy;\n });\n };\n const callOnFieldFocusCallbacks = (key) => {\n if (!Array.isArray(onFieldFocusCallbacks[key])) return null;\n\n onFieldFocusCallbacks[key]?.map((cb) => cb());\n };\n\n const [focusOnRenderFields, setFocusOnRenderFields] = useState([]);\n const addFocusFieldOnRender = (key, cb) => {\n setFocusOnRenderFields((state) => [...state, key]);\n\n if (cb) addOnFieldFocusCallback(key, cb);\n };\n const removeFocusFieldOnRender = (key) => {\n setFocusOnRenderFields((state) => state.filter((field) => field !== key));\n };\n\n useEffect(() => {\n if (\n FocusControllerProps.setAutoFocus &&\n !isInitFocused &&\n !autoFocusedField &&\n isFormRendered\n )\n setFirstFieldFocus();\n\n if (focusOnRenderFields.length) {\n getFormFieldsKeys(form)?.map((key) => {\n if (\n focusOnRenderFields.includes(key) &&\n getFormField(key)?.value?.length === 0\n ) {\n const cb = () => {\n removeFocusFieldOnRender(key);\n callOnFieldFocusCallbacks(key);\n };\n\n setFieldFocus({ key, form, cb });\n }\n return null;\n });\n }\n }, [form, focusOnRenderFields, isInitFocused, isFormRendered]);\n\n useEffect(() => {\n setAutoFocusedField(null);\n }, [isInitFocused]);\n\n useEffect(() => {\n resetIsInitFocused();\n }, [FormType]);\n\n //Remove Focus From Autocomplete field !!! TODO\n // useEffect(() => {\n // if (!autoFocusedField) return null;\n // const field = getFormField(autoFocusedField);\n\n // if (field?.value !== '' && !field?.isValueChangedByUser) {\n // setFieldBlur({key: autoFocusedField, form});\n // }\n // }, [autoFocusedField, form]);\n //--- Fields Focus Controller ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- OnFieldRendered Observer ---//--- START ---//\n const [onFieldRenderedObservers, setOnFieldRenderedObservers] = useState({});\n const [isFieldObserversReset, setIsFieldObserversReset] = useState(false);\n\n const resetOnFieldRenderObserversWorkedOut = () => {\n if (!isFieldObserversReset && renderFormFields.length) {\n renderFormFields.map((key) => {\n setFormField({ isOnRenderObserversWorkedOut: false }, key);\n return key;\n });\n setIsFieldObserversReset(true);\n }\n };\n const addOnFieldRenderedObserver = (key, cb, isOnceCallable = true) => {\n let observerId = null;\n\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) state[key] = {};\n\n observerId = Object.keys(state[key]).length || 0;\n\n state[key][observerId] = {\n f: cb,\n isOnceCallable,\n };\n\n return state;\n });\n\n return observerId;\n };\n const updateOnFieldRenderedObserver = (key, id, data) => {\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key][id] = {\n ...state[key][id],\n ...data,\n };\n\n return state;\n });\n };\n const removeOnFieldRenderedObserver = (key, id) => {\n setOnFieldRenderedObservers((state) => {\n //Set Default Value\n if (!state[key]) return state;\n\n state[key] = Object.keys(state)\n .filter((cbId) => cbId !== id)\n .map((cbId) => state[key][cbId]);\n\n return state;\n });\n };\n const onFieldRenderedObserver = (key, data) => {\n if (\n !onFieldRenderedObservers[key] ||\n typeof onFieldRenderedObservers[key] !== \"object\"\n )\n return;\n\n const Observers = onFieldRenderedObservers[key];\n const FilteredObservers = Object.values(Observers).filter(\n (observer) => !observer?.isObserverWorkedOut,\n );\n\n if (FilteredObservers.length === 0) return null;\n\n setFormField({ isOnRenderObserversWorkedOut: true }, key);\n\n FilteredObservers.map(({ f, isOnceCallable }, id) => {\n f(data);\n if (isOnceCallable)\n updateOnFieldRenderedObserver(key, id, { isObserverWorkedOut: true });\n return null;\n });\n };\n const onRenderObserverWorker = () => {\n return getFormFieldsKeys(form)?.map((key) => {\n //OnFieldRendered\n const fieldData = getFormField(key);\n if (!fieldData?.isOnRenderObserversWorkedOut) {\n onFieldRenderedObserver(key, fieldData);\n return { key, isWorkedOut: true };\n }\n\n return { key, isWorkedOut: false };\n });\n };\n\n useEffect(() => {\n resetOnFieldRenderObserversWorkedOut();\n onRenderObserverWorker();\n }, [form]);\n\n useEffect(() => {\n setIsFieldObserversReset(false);\n }, [FormType]);\n //--- OnFieldRendered Observer ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //Detect What Changed || TRY TO DO\n // const compare = async (prev, current) => {\n // if (!prev) return current;\n\n // return new Promise((resolve) => {\n // Object.keys(current).reduce((result, key, i, arr) => {\n // //If PROPERTY is NOT EXISTS BEFORE\n // if ([null, undefined].includes(prev[key])) {\n // result[key] = current[key];\n // }\n // //If PROPERTY is AN OBJECT\n // else if (typeof current[key] === 'object') {\n // //If PROPERTY is EXISTS BEFORE\n // const innerCompare = compare(prev[key], current[key]);\n // // //If SOMETHING CHANGED\n // if (innerCompare?.length) result[key] = innerCompare;\n // }\n // //If PROPERTY is AN SIMPLE VALUE and PROPERTY CHANGED\n // else if (prev[key] !== current[key]) {\n // result[key] = current[key];\n // }\n\n // if (i === arr.length-1) {\n // resolve(result);\n // }\n\n // return result;\n // }, {});\n // });\n // };\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n //--- WindowScrollController ---//--- START ---//\n const scrollToField = ({ key = null, field = null, form: argForm }) => {\n if (!key && !field) return false;\n if (!argForm) argForm = form;\n\n if (!field) field = getFormField(key, argForm);\n\n const wrapperRef = field?.wrapperRef || field?.ref;\n // eslint-disable-next-line no-unsafe-optional-chaining\n const { top: topOffset } = wrapperRef?.current?.getBoundingClientRect();\n const scrollTop =\n Math.abs(Math.abs(topOffset) - Math.abs(window.scrollY)) - 16;\n window.scrollTo({ top: scrollTop });\n };\n\n //--- WindowScrollController ---//--- END ---//\n\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n\n const addErrorsToForm = (errors, argForm = form) => {\n if (!argForm) argForm = form;\n\n setFormFields((fields) => {\n return errors.reduce(\n (fields, { message: error, propertyPath: errKey }) => {\n return updateFormField(fields, { error }, errKey);\n },\n fields,\n );\n });\n };\n\n return {\n FormDataDrivers,\n\n //OnChangeObserver\n addOnChangeObserver,\n removeOnChangeObserver,\n onChangeObservers,\n\n //OnChangeHandler\n onFieldChange,\n\n //Form Submit Blocker\n toggleFormSubmitBlock,\n clearFormSubmitBlockers,\n isFormSubmitBlocked: Boolean(formSubmitBlockers.length),\n\n //Property Observers\n // addPropertyObserver,\n\n //Render Fields\n renderFormFields,\n setRenderFormFields,\n addRenderFields,\n removeRenderFields,\n\n getFieldClassName,\n\n //Field Focus Controller\n isInitFocused,\n setFirstFieldInitFocused,\n resetIsInitFocused,\n setFieldFocus,\n setFieldBlur,\n setFirstFieldFocus,\n autoFocusedField,\n\n addFocusFieldOnRender,\n removeFocusFieldOnRender,\n\n //Field Render Controller\n addOnFieldRenderedObserver,\n removeOnFieldRenderedObserver,\n onFieldRenderedObservers,\n\n updateFormField,\n addOnFormRenderObserver,\n submitIsFormRendered,\n resetIsFormRendered,\n renderFields: ({\n form: argForm = form,\n fields: argFields = renderFormFields,\n cols: argCols = 1,\n RenderFieldComponent,\n }) =>\n RenderFields({\n form: argForm,\n fields: argFields,\n cols: argCols,\n RenderFieldComponent,\n onFieldChange,\n FormDataDriver: getFormDataDriver(FormDataDriverName),\n }),\n\n scrollToField,\n\n getFieldData,\n getFormField,\n setFormFields,\n setFormField: (data, key) => setFormField(data, key),\n getFormFieldsAsArray,\n getFormFieldsKeys,\n removeAllFormFields,\n removeFormField,\n removeFormFields,\n addErrorsToForm,\n };\n}\n"],"mappings":"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"}
@@ -39,7 +39,8 @@ var clone = (input) => {
39
39
  var getResponseClone = async (res) => await (typeof res?.clone === "function" ? res.clone() : clone(res));
40
40
  function transformUTCTimeToLocal(date, format = "YYYY-MM-DD HH:mm:ss") {
41
41
  if (!date) return;
42
- return moment(moment.utc(date).toDate(), format).local().format(format);
42
+ const utcDate = moment.utc(date).toDate();
43
+ return moment(utcDate, format).local().format(format);
43
44
  }
44
45
  function transformLocalTimeToUTC(date, format = "YYYY-MM-DD HH:mm:ss") {
45
46
  if (!date) return;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":[],"sources":["../../../src/Functions/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport moment from \"moment-timezone\";\n\nimport { DEFAULT_COLORS, OS } from \"../Constants/index.constants\";\n\nexport const uuid = () => Date.now().toString(36) + Math.random().toString(36).substring(2);\n\nexport const getIsOnlyAnObject = (input) => {\n return (\n typeof input === \"object\" && // \"отбивает\" примитивы и функции\n input instanceof Object && // \"отбивает\" null\n !Array.isArray(input) && // \"отбивает\" массивы\n !(input instanceof Set) && // \"отбивает\" сеты\n !(input instanceof Map) // \"отбивает\" мапы\n );\n};\n\n/* eslint-disable guard-for-in, no-unused-vars */\nexport const handleObjectChange =\n (updateObject, updateFunction) =>\n (data, prop = \"\", isNumber) => {\n let value;\n if (data?.target) {\n value =\n data.target.type === \"checkbox\"\n ? data.target.checked\n : data.target.value;\n } else value = data;\n\n value = isNumber ? Number(value) : value;\n\n const props = prop.split(\".\");\n const currentObject = props.reduce((res, chapter, index) => {\n if (props.length !== index + 1) res = res[chapter];\n return res;\n }, updateObject);\n\n currentObject[props.pop()] = value;\n updateFunction();\n };\n\nexport const useOutsideToggle = (ref, setOut, open) => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setOut(open);\n }\n }\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleClickOutside);\n return () => {\n // Unbind the event listener on clean up\n document.removeEventListener(\"mouseup\", handleClickOutside);\n };\n }, [ref]);\n};\n\n// export const clone = obj => {\n// const data = obj instanceof Array ? [] : {};\n// for (const i in obj) data[i] = typeof obj[i] === 'object' && obj[i] != null ? clone(obj[i]) : obj[i];\n// return data;\n// };\n// ! Этот правильнее\nexport const clone = (input) => {\n if (input === null || typeof input !== \"object\") return input;\n const data = input instanceof Array ? [] : {};\n for (const i in input) data[i] = clone(input[i]);\n return data;\n};\n\nexport const getResponseClone = async (res) =>\n await (typeof res?.clone === \"function\" ? res.clone() : clone(res));\n\n//TimeUtils\nexport function transformUTCTimeToLocal(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n const utcDate = moment.utc(date).toDate();\n return moment(utcDate, format).local().format(format);\n}\nexport function transformLocalTimeToUTC(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n return moment(date, format).utc().format(format);\n}\nexport function transformUTCHoursToLocal(time, format = \"HH:mm:ss\") {\n if (!time) return;\n const splitedTime = time.split(\":\");\n const offset = moment().utcOffset();\n let HH = Number(splitedTime[0]);\n let mm = Number(splitedTime[1]);\n const ss = splitedTime[2];\n mm = mm + offset;\n while (mm > 59) {\n mm -= 60;\n HH += 1;\n }\n if (HH > 23) HH -= 24;\n while (mm < 0) {\n mm += 60;\n HH -= 1;\n }\n if (HH < 0) HH += 24;\n return `${HH}:${mm}:${ss}`;\n}\n\n//? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн\nexport function transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n const { parseFormat, isReturnAsMomentInstance } = getIsOnlyAnObject(\n additional,\n )\n ? additional\n : {};\n\n if (typeof data !== \"string\" && typeof data !== \"number\") {\n return isReturnAsMomentInstance ? moment(\"error\") : ERROR_MESSGE;\n }\n\n //? Игнорируем parseFormat, если data пришла как timestamp или если parseFormat не строка\n const momentArgs = [\n data,\n ...(!Number.isNaN(Number(data)) || typeof parseFormat === \"string\"\n ? []\n : [parseFormat]),\n ];\n\n //? Задача получить moment-экземпляр, валидный либо невалидный\n const momentInstance = (() => {\n let instance = moment(...momentArgs);\n\n //? Проверяем валидность moment-экземпляр-а путем попытки привести его к выходному формату\n //? Попадем в этот кейс если\n //? - data это timestamp\n //? - data это строка в формате date-time\n //? - data это строка в формате date (в этом случае время выставится 00:00:00)\n if (instance.format(outputFormat) !== ERROR_VALUE) return instance;\n //? Если же приведение не удалось, то предполагаем, что data пришла в формате time\n //? В этом случае создадим объект от текущей даты, распарсим data и установим время\n //? Корректно обработаются паттерны: 'HH*mm', 'HH*mm*ss', 'HH*mm*ss*любое_количество_ms', где * - любой разделитель\n else if (/^\\d\\d.\\d\\d/.test(data)) {\n instance = moment();\n const symbols = data.split(\"\");\n\n const timeArr = symbols\n .reduce(\n (acc, symbol, idx) => {\n if (Number.isNaN(Number(symbol))) {\n if (acc.group) acc.result.push(acc.group);\n acc.group = \"\";\n } else acc.group = `${acc.group}${symbol}`;\n if (idx === symbols.length - 1 && acc.group)\n acc.result.push(acc.group);\n return acc;\n },\n { result: [], group: \"\" },\n )\n //? reverse используется исключительно для того, чтобы после можно было использовать метод pop, а не shift,\n //? т.к. методы добавления/извлечения относительно конца массива работают быстрее,\n //? чем аналогичные относительно начала массива\n .result.reverse();\n\n instance.hours(Number(timeArr.pop()));\n instance.minutes(Number(timeArr.pop()));\n instance.seconds(timeArr.length ? Number(timeArr.pop()) : 0);\n instance.milliseconds(timeArr.length ? Number(timeArr.pop()) : 0);\n } else instance = moment(\"error\"); //? Иначе создаем заведомо невалидный moment-экземпляр\n\n return instance;\n })();\n\n if (isReturnAsMomentInstance) return momentInstance;\n\n const output = momentInstance.format(outputFormat);\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн\nexport function transformDateOrTimeOrTogetherToFormattedLocal(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n\n if (additional && !getIsOnlyAnObject(additional)) {\n throw new Error(\n \"Bad additional [transformDateOrTimeOrTogetherToFormattedLocal]\",\n );\n }\n\n const compositeAdditional = {\n ...(additional || {}),\n isReturnAsMomentInstance: true,\n };\n const date = transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat,\n compositeAdditional,\n );\n\n const dateWithLocale = date.add(moment().utcOffset(), \"minutes\");\n const output = dateWithLocale.format(outputFormat);\n\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//принимает обьект и массив ключей обьекта\n//возвращает обьект с теми полями, которых нет в массиве ключей\nexport const omitKeys = (obj = {}, keys = []) =>\n keys.reduce((acc, key) => {\n const { [key]: omit, ...rest } = acc;\n return rest;\n }, obj);\n\nexport const logout = () => {\n window.localStorage.removeItem(\"accessToken\");\n window.localStorage.removeItem(\"tokenExpires\");\n window.location.reload();\n};\n\nexport const getStyles = (el, prop) => {\n if (!el) return null;\n if (!prop) return window.getComputedStyle(el);\n return window.getComputedStyle(el).getPropertyValue(prop);\n};\n\nexport const getColorById = (id, colors) => {\n if (!id) return \"#FF7D00\";\n\n const idToArr = Array.from(id);\n const colorsArr = colors && colors.length > 0 ? colors : DEFAULT_COLORS;\n\n let number = idToArr.reduce((acc, item) => {\n if (Number(item)) {\n return acc + Number(item);\n }\n return acc;\n }, 0);\n\n while (number >= colorsArr.length) {\n number -= colorsArr.length;\n }\n\n return colorsArr[number];\n};\n\nexport const debounce = (fn, ms) => {\n let id = null;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => {\n clearTimeout(id);\n fn(...args);\n }, ms);\n };\n};\n\nexport const throttle = (fn, ms) => {\n let id = null;\n return (...args) => {\n if (id) return;\n fn(...args);\n id = setTimeout(() => {\n clearTimeout(id);\n id = null;\n }, ms);\n };\n};\n\nexport const addBitDepthPoints = (value, step = 3) => {\n //содержит ли value точку\n const isFraction = value?.includes(\".\");\n\n //взять строку до точки\n const valueBeforeDot = isFraction\n ? value?.slice(0, value?.indexOf(\".\"))\n : value;\n\n //расстановка запятых после каждой 3й цифры с конца\n const intPart = valueBeforeDot\n .split(\"\")\n .reverse()\n .reduce(\n (acc, item, idx) =>\n idx % step === 0 && idx !== 0 ? [...acc, \",\", item] : [...acc, item],\n [],\n )\n .reverse()\n .join(\"\");\n\n return isFraction ? intPart + value?.slice(value?.indexOf(\".\")) : intPart;\n};\n\nexport const changeMeta = (key, items = []) => {\n const defaultMeta = items.find((i) => i.key === \"default\");\n\n if (key) {\n const item = items.find((i) => i.key === key);\n document.title = item?.title ?? defaultMeta?.title;\n document\n .querySelector('meta[name=\"description\"]')\n .setAttribute(\"content\", item?.description ?? defaultMeta?.description);\n }\n};\n\nexport const firstLetterCapital = (str) =>\n typeof str === \"string\"\n ? `${str.charAt(0).toUpperCase()}${str.slice(1)}`\n : str;\nexport const capitalized = firstLetterCapital;\n\nexport const checkedRef = (ref) =>\n ref ? (typeof ref === \"function\" ? (node) => ref(node) : ref) : null;\n\nexport function downloadEmulation(data, filename, type = \"image/*\") {\n const file = new Blob([data], { type });\n if (window.navigator.msSaveOrOpenBlob)\n // IE10+\n window.navigator.msSaveOrOpenBlob(file, filename);\n else {\n // Others\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(() => {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n}\n\nexport const downloadFile = async ({ url, name, type = null }) => {\n const response = await fetch(url).then(async (res) => ({\n data: await res.blob(),\n type: type ?? res.headers.get(\"content-type\"),\n }));\n downloadEmulation(response.data, name, response.type);\n};\n\nexport const compare = (first, second, keys = []) => {\n //? Если типы НЕ равны - не равны априори\n if (typeof first !== typeof second) return false;\n //? Если ответы на вопрос \"массив ли?\" не равны, то не равны и типы, значит тоже не равны априори\n if (Array.isArray(first) !== Array.isArray(second)) return false;\n //? Если прошли if-ку - типы условно равны, можем оценивать тип лишь одного параметра, это будет справедливо и для второго\n\n //? Если примитивы - просто сравниваем. Кейс с null обработан тут.\n if (!(first instanceof Object)) return first === second;\n\n //? Если НЕ приметивы - не важно массив или нет, методы объекта для массива тоже доступны\n\n const getComparationStructure = (data) => {\n if (typeof data === 'function') return data.toString();\n if (!(data instanceof Object)) return data;\n\n return Object.entries(data)\n .sort((a, b) => (a[0]).localeCompare(b[0]))\n .map(([key, value]) => ([key, getComparationStructure(data[key])]));\n };\n\n //? Получаем структуры для сравнения (с учетом глубины) - массивы массивов, сортируем по ключам,\n const structureForComparingOfFirst = getComparationStructure(first);\n const structureForComparingOfSecond = getComparationStructure(second);\n\n return (JSON.stringify(structureForComparingOfFirst) === JSON.stringify(structureForComparingOfSecond));\n};\n\n// Set Carret to the End of Input\nexport const setCarretToEnd = (input) => {\n setTimeout(() => {\n const tmp = input.value;\n input.value = \"\";\n input.value = tmp;\n }, 10);\n};\n\nexport const compareAlphabetical = (a, b, key = \"label\") => {\n let item1 = a?.[key];\n let item2 = b?.[key];\n\n if (typeof item1 !== \"string\" || typeof item2 !== \"string\") return 0;\n\n item1 = item1?.toLowerCase();\n item2 = item2?.toLowerCase();\n\n if (item1 < item2) {\n return -1;\n }\n if (item1 > item2) {\n return 1;\n }\n return 0;\n};\n\nexport const getBase64 = (file) => {\n if (file) {\n return new Promise(function (resolve, reject) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(\"Error: \", error);\n });\n }\n};\n\nexport const renderFileSize = (bytes, decimals = 2) => {\n if (!Number(bytes)) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n};\n\nexport const getUniqueFileExtensions = (extListString) => {\n // Split the extensions list into an array\n const extArray = extListString\n ?.split(\",\")\n .map((ext) => ext.trim().toUpperCase());\n\n // Remove duplicates using a Set\n const uniqueExts = [...new Set(extArray)];\n\n // Join the unique extensions into a string\n return uniqueExts.join(\", \");\n};\n\nexport const getOS = () => {\n let userAgent = window.navigator.userAgent,\n platform =\n window.navigator?.userAgentData?.platform || window.navigator.platform,\n macosPlatforms = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"],\n windowsPlatforms = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"],\n iosPlatforms = [\"iPhone\", \"iPad\", \"iPod\"],\n os = OS.Unknown;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = OS.MacOS;\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = OS.iOS;\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = OS.Windows;\n } else if (/Android/.test(userAgent)) {\n os = OS.Android;\n } else if (/Linux/.test(platform)) {\n os = OS.Linux;\n }\n\n return os;\n};\n\n\nString.prototype.longerThan = function (compareWith) {\n return this?.length > compareWith?.length;\n};\nString.prototype.lastIndexEqualsTo = function (index) {\n return this?.length - 1 === index;\n};\n\nexport const getCorrectTestId = ({ testId = \"\", withTier = true }) =>\n testId && testId !== undefined ? `${withTier ? \"-\" : \"\"}${testId}` : \"\";\n\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../src/Functions/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport moment from \"moment-timezone\";\n\nimport { DEFAULT_COLORS, OS } from \"../Constants/index.constants\";\n\nexport const uuid = () => Date.now().toString(36) + Math.random().toString(36).substring(2);\n\nexport const getIsOnlyAnObject = (input) => {\n return (\n typeof input === \"object\" && // \"отбивает\" примитивы и функции\n input instanceof Object && // \"отбивает\" null\n !Array.isArray(input) && // \"отбивает\" массивы\n !(input instanceof Set) && // \"отбивает\" сеты\n !(input instanceof Map) // \"отбивает\" мапы\n );\n};\n\n/* eslint-disable guard-for-in, no-unused-vars */\nexport const handleObjectChange =\n (updateObject, updateFunction) =>\n (data, prop = \"\", isNumber) => {\n let value;\n if (data?.target) {\n value =\n data.target.type === \"checkbox\"\n ? data.target.checked\n : data.target.value;\n } else value = data;\n\n value = isNumber ? Number(value) : value;\n\n const props = prop.split(\".\");\n const currentObject = props.reduce((res, chapter, index) => {\n if (props.length !== index + 1) res = res[chapter];\n return res;\n }, updateObject);\n\n currentObject[props.pop()] = value;\n updateFunction();\n };\n\nexport const useOutsideToggle = (ref, setOut, open) => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setOut(open);\n }\n }\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleClickOutside);\n return () => {\n // Unbind the event listener on clean up\n document.removeEventListener(\"mouseup\", handleClickOutside);\n };\n }, [ref]);\n};\n\n// export const clone = obj => {\n// const data = obj instanceof Array ? [] : {};\n// for (const i in obj) data[i] = typeof obj[i] === 'object' && obj[i] != null ? clone(obj[i]) : obj[i];\n// return data;\n// };\n// ! Этот правильнее\nexport const clone = (input) => {\n if (input === null || typeof input !== \"object\") return input;\n const data = input instanceof Array ? [] : {};\n for (const i in input) data[i] = clone(input[i]);\n return data;\n};\n\nexport const getResponseClone = async (res) =>\n await (typeof res?.clone === \"function\" ? res.clone() : clone(res));\n\n//TimeUtils\nexport function transformUTCTimeToLocal(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n const utcDate = moment.utc(date).toDate();\n return moment(utcDate, format).local().format(format);\n}\nexport function transformLocalTimeToUTC(date, format = \"YYYY-MM-DD HH:mm:ss\") {\n if (!date) return;\n return moment(date, format).utc().format(format);\n}\nexport function transformUTCHoursToLocal(time, format = \"HH:mm:ss\") {\n if (!time) return;\n const splitedTime = time.split(\":\");\n const offset = moment().utcOffset();\n let HH = Number(splitedTime[0]);\n let mm = Number(splitedTime[1]);\n const ss = splitedTime[2];\n mm = mm + offset;\n while (mm > 59) {\n mm -= 60;\n HH += 1;\n }\n if (HH > 23) HH -= 24;\n while (mm < 0) {\n mm += 60;\n HH -= 1;\n }\n if (HH < 0) HH += 24;\n return `${HH}:${mm}:${ss}`;\n}\n\n//? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн\nexport function transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n const { parseFormat, isReturnAsMomentInstance } = getIsOnlyAnObject(\n additional,\n )\n ? additional\n : {};\n\n if (typeof data !== \"string\" && typeof data !== \"number\") {\n return isReturnAsMomentInstance ? moment(\"error\") : ERROR_MESSGE;\n }\n\n //? Игнорируем parseFormat, если data пришла как timestamp или если parseFormat не строка\n const momentArgs = [\n data,\n ...(!Number.isNaN(Number(data)) || typeof parseFormat === \"string\"\n ? []\n : [parseFormat]),\n ];\n\n //? Задача получить moment-экземпляр, валидный либо невалидный\n const momentInstance = (() => {\n let instance = moment(...momentArgs);\n\n //? Проверяем валидность moment-экземпляр-а путем попытки привести его к выходному формату\n //? Попадем в этот кейс если\n //? - data это timestamp\n //? - data это строка в формате date-time\n //? - data это строка в формате date (в этом случае время выставится 00:00:00)\n if (instance.format(outputFormat) !== ERROR_VALUE) return instance;\n //? Если же приведение не удалось, то предполагаем, что data пришла в формате time\n //? В этом случае создадим объект от текущей даты, распарсим data и установим время\n //? Корректно обработаются паттерны: 'HH*mm', 'HH*mm*ss', 'HH*mm*ss*любое_количество_ms', где * - любой разделитель\n else if (/^\\d\\d.\\d\\d/.test(data)) {\n instance = moment();\n const symbols = data.split(\"\");\n\n const timeArr = symbols\n .reduce(\n (acc, symbol, idx) => {\n if (Number.isNaN(Number(symbol))) {\n if (acc.group) acc.result.push(acc.group);\n acc.group = \"\";\n } else acc.group = `${acc.group}${symbol}`;\n if (idx === symbols.length - 1 && acc.group)\n acc.result.push(acc.group);\n return acc;\n },\n { result: [], group: \"\" },\n )\n //? reverse используется исключительно для того, чтобы после можно было использовать метод pop, а не shift,\n //? т.к. методы добавления/извлечения относительно конца массива работают быстрее,\n //? чем аналогичные относительно начала массива\n .result.reverse();\n\n instance.hours(Number(timeArr.pop()));\n instance.minutes(Number(timeArr.pop()));\n instance.seconds(timeArr.length ? Number(timeArr.pop()) : 0);\n instance.milliseconds(timeArr.length ? Number(timeArr.pop()) : 0);\n } else instance = moment(\"error\"); //? Иначе создаем заведомо невалидный moment-экземпляр\n\n return instance;\n })();\n\n if (isReturnAsMomentInstance) return momentInstance;\n\n const output = momentInstance.format(outputFormat);\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн\nexport function transformDateOrTimeOrTogetherToFormattedLocal(\n data,\n outputFormat = \"HH:mm\",\n additional,\n) {\n const ERROR_VALUE = \"Invalid date\";\n const ERROR_MESSGE = `Invalid input data for ${outputFormat} format`;\n\n if (additional && !getIsOnlyAnObject(additional)) {\n throw new Error(\n \"Bad additional [transformDateOrTimeOrTogetherToFormattedLocal]\",\n );\n }\n\n const compositeAdditional = {\n ...(additional || {}),\n isReturnAsMomentInstance: true,\n };\n const date = transformDateOrTimeOrTogetherToFormat(\n data,\n outputFormat,\n compositeAdditional,\n );\n\n const dateWithLocale = date.add(moment().utcOffset(), \"minutes\");\n const output = dateWithLocale.format(outputFormat);\n\n return output === ERROR_VALUE ? ERROR_MESSGE : output;\n}\n\n//принимает обьект и массив ключей обьекта\n//возвращает обьект с теми полями, которых нет в массиве ключей\nexport const omitKeys = (obj = {}, keys = []) =>\n keys.reduce((acc, key) => {\n const { [key]: omit, ...rest } = acc;\n return rest;\n }, obj);\n\nexport const logout = () => {\n window.localStorage.removeItem(\"accessToken\");\n window.localStorage.removeItem(\"tokenExpires\");\n window.location.reload();\n};\n\nexport const getStyles = (el, prop) => {\n if (!el) return null;\n if (!prop) return window.getComputedStyle(el);\n return window.getComputedStyle(el).getPropertyValue(prop);\n};\n\nexport const getColorById = (id, colors) => {\n if (!id) return \"#FF7D00\";\n\n const idToArr = Array.from(id);\n const colorsArr = colors && colors.length > 0 ? colors : DEFAULT_COLORS;\n\n let number = idToArr.reduce((acc, item) => {\n if (Number(item)) {\n return acc + Number(item);\n }\n return acc;\n }, 0);\n\n while (number >= colorsArr.length) {\n number -= colorsArr.length;\n }\n\n return colorsArr[number];\n};\n\nexport const debounce = (fn, ms) => {\n let id = null;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => {\n clearTimeout(id);\n fn(...args);\n }, ms);\n };\n};\n\nexport const throttle = (fn, ms) => {\n let id = null;\n return (...args) => {\n if (id) return;\n fn(...args);\n id = setTimeout(() => {\n clearTimeout(id);\n id = null;\n }, ms);\n };\n};\n\nexport const addBitDepthPoints = (value, step = 3) => {\n //содержит ли value точку\n const isFraction = value?.includes(\".\");\n\n //взять строку до точки\n const valueBeforeDot = isFraction\n ? value?.slice(0, value?.indexOf(\".\"))\n : value;\n\n //расстановка запятых после каждой 3й цифры с конца\n const intPart = valueBeforeDot\n .split(\"\")\n .reverse()\n .reduce(\n (acc, item, idx) =>\n idx % step === 0 && idx !== 0 ? [...acc, \",\", item] : [...acc, item],\n [],\n )\n .reverse()\n .join(\"\");\n\n return isFraction ? intPart + value?.slice(value?.indexOf(\".\")) : intPart;\n};\n\nexport const changeMeta = (key, items = []) => {\n const defaultMeta = items.find((i) => i.key === \"default\");\n\n if (key) {\n const item = items.find((i) => i.key === key);\n document.title = item?.title ?? defaultMeta?.title;\n document\n .querySelector('meta[name=\"description\"]')\n .setAttribute(\"content\", item?.description ?? defaultMeta?.description);\n }\n};\n\nexport const firstLetterCapital = (str) =>\n typeof str === \"string\"\n ? `${str.charAt(0).toUpperCase()}${str.slice(1)}`\n : str;\nexport const capitalized = firstLetterCapital;\n\nexport const checkedRef = (ref) =>\n ref ? (typeof ref === \"function\" ? (node) => ref(node) : ref) : null;\n\nexport function downloadEmulation(data, filename, type = \"image/*\") {\n const file = new Blob([data], { type });\n if (window.navigator.msSaveOrOpenBlob)\n // IE10+\n window.navigator.msSaveOrOpenBlob(file, filename);\n else {\n // Others\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(() => {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n}\n\nexport const downloadFile = async ({ url, name, type = null }) => {\n const response = await fetch(url).then(async (res) => ({\n data: await res.blob(),\n type: type ?? res.headers.get(\"content-type\"),\n }));\n downloadEmulation(response.data, name, response.type);\n};\n\nexport const compare = (first, second, keys = []) => {\n //? Если типы НЕ равны - не равны априори\n if (typeof first !== typeof second) return false;\n //? Если ответы на вопрос \"массив ли?\" не равны, то не равны и типы, значит тоже не равны априори\n if (Array.isArray(first) !== Array.isArray(second)) return false;\n //? Если прошли if-ку - типы условно равны, можем оценивать тип лишь одного параметра, это будет справедливо и для второго\n\n //? Если примитивы - просто сравниваем. Кейс с null обработан тут.\n if (!(first instanceof Object)) return first === second;\n\n //? Если НЕ приметивы - не важно массив или нет, методы объекта для массива тоже доступны\n\n const getComparationStructure = (data) => {\n if (typeof data === 'function') return data.toString();\n if (!(data instanceof Object)) return data;\n\n return Object.entries(data)\n .sort((a, b) => (a[0]).localeCompare(b[0]))\n .map(([key, value]) => ([key, getComparationStructure(data[key])]));\n };\n\n //? Получаем структуры для сравнения (с учетом глубины) - массивы массивов, сортируем по ключам,\n const structureForComparingOfFirst = getComparationStructure(first);\n const structureForComparingOfSecond = getComparationStructure(second);\n\n return (JSON.stringify(structureForComparingOfFirst) === JSON.stringify(structureForComparingOfSecond));\n};\n\n// Set Carret to the End of Input\nexport const setCarretToEnd = (input) => {\n setTimeout(() => {\n const tmp = input.value;\n input.value = \"\";\n input.value = tmp;\n }, 10);\n};\n\nexport const compareAlphabetical = (a, b, key = \"label\") => {\n let item1 = a?.[key];\n let item2 = b?.[key];\n\n if (typeof item1 !== \"string\" || typeof item2 !== \"string\") return 0;\n\n item1 = item1?.toLowerCase();\n item2 = item2?.toLowerCase();\n\n if (item1 < item2) {\n return -1;\n }\n if (item1 > item2) {\n return 1;\n }\n return 0;\n};\n\nexport const getBase64 = (file) => {\n if (file) {\n return new Promise(function (resolve, reject) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(\"Error: \", error);\n });\n }\n};\n\nexport const renderFileSize = (bytes, decimals = 2) => {\n if (!Number(bytes)) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n};\n\nexport const getUniqueFileExtensions = (extListString) => {\n // Split the extensions list into an array\n const extArray = extListString\n ?.split(\",\")\n .map((ext) => ext.trim().toUpperCase());\n\n // Remove duplicates using a Set\n const uniqueExts = [...new Set(extArray)];\n\n // Join the unique extensions into a string\n return uniqueExts.join(\", \");\n};\n\nexport const getOS = () => {\n let userAgent = window.navigator.userAgent,\n platform =\n window.navigator?.userAgentData?.platform || window.navigator.platform,\n macosPlatforms = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"],\n windowsPlatforms = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"],\n iosPlatforms = [\"iPhone\", \"iPad\", \"iPod\"],\n os = OS.Unknown;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = OS.MacOS;\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = OS.iOS;\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = OS.Windows;\n } else if (/Android/.test(userAgent)) {\n os = OS.Android;\n } else if (/Linux/.test(platform)) {\n os = OS.Linux;\n }\n\n return os;\n};\n\n\nString.prototype.longerThan = function (compareWith) {\n return this?.length > compareWith?.length;\n};\nString.prototype.lastIndexEqualsTo = function (index) {\n return this?.length - 1 === index;\n};\n\nexport const getCorrectTestId = ({ testId = \"\", withTier = true }) =>\n testId && testId !== undefined ? `${withTier ? \"-\" : \"\"}${testId}` : \"\";\n\n\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AffiliateNetworks.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/AffiliateNetworks.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function AffiliateNetworks(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"none\"\n stroke=\"#9AA0B9\"\n d=\"M17 21v-2c0-2.2-1.8-4-4-4H5c-2.2 0-4 1.8-4 4v2\"\n />\n <circle cx={9} cy={7} r={4} fill=\"none\" stroke=\"#9AA0B9\" />\n <path\n fill=\"none\"\n stroke=\"#9AA0B9\"\n d=\"M23 21v-2c0-1.8-1.2-3.4-3-3.9M16 3.1c2.1.5 3.4 2.7 2.9 4.9-.4 1.4-1.5 2.5-2.9 2.9\"\n />\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,kBAAkB,OAA8C;CAC9E,OACE,qBAAC,OAAD;EACE,OAAM;EACN,UAAS;EACT,SAAQ;EACR,GAAI;YAJN;GAME,oBAAC,QAAD;IACE,MAAK;IACL,QAAO;IACP,GAAE;GACH,CAAA;GACD,oBAAC,UAAD;IAAQ,IAAI;IAAG,IAAI;IAAG,GAAG;IAAG,MAAK;IAAO,QAAO;GAAW,CAAA;GAC1D,oBAAC,QAAD;IACE,MAAK;IACL,QAAO;IACP,GAAE;GACH,CAAA;EACE;;AAET"}
1
+ {"version":3,"file":"AffiliateNetworks.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/AffiliateNetworks.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function AffiliateNetworks(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"none\"\n stroke=\"#9AA0B9\"\n d=\"M17 21v-2c0-2.2-1.8-4-4-4H5c-2.2 0-4 1.8-4 4v2\"\n />\n <circle cx={9} cy={7} r={4} fill=\"none\" stroke=\"#9AA0B9\" />\n <path\n fill=\"none\"\n stroke=\"#9AA0B9\"\n d=\"M23 21v-2c0-1.8-1.2-3.4-3-3.9M16 3.1c2.1.5 3.4 2.7 2.9 4.9-.4 1.4-1.5 2.5-2.9 2.9\"\n />\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,kBAAkB,OAA8C;CAC9E,OACE,qBAAC,OAAD;EACE,OAAM;EACN,UAAS;EACT,SAAQ;EACR,GAAI;EAJN,UAAA;GAME,oBAAC,QAAD;IACE,MAAK;IACL,QAAO;IACP,GAAE;GACH,CAAA;GACD,oBAAC,UAAD;IAAQ,IAAI;IAAG,IAAI;IAAG,GAAG;IAAG,MAAK;IAAO,QAAO;GAAW,CAAA;GAC1D,oBAAC,QAAD;IACE,MAAK;IACL,QAAO;IACP,GAAE;GACH,CAAA;EACE;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertCircle.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/AlertCircle.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function AlertCircle(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n id=\"Layer_1\"\n x={0}\n y={0}\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <style>\n {\n '.st0{fill:none;stroke:#f06d8d;strokeWidth:2;strokeLinecap:round;strokeLinejoin:round}'\n }\n </style>\n <circle cx={12} cy={12} r={10} className=\"st0\" />\n <path d=\"M12 8v4M12 16\" className=\"st0\" />\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,YAAY,OAA8C;CACxE,OACE,qBAAC,OAAD;EACE,OAAM;EACN,UAAS;EACT,IAAG;EACH,GAAG;EACH,GAAG;EACH,SAAQ;EACR,GAAI;YAPN;GASE,oBAAC,SAAD,EAAA,UAEI,wFAEG,CAAA;GACP,oBAAC,UAAD;IAAQ,IAAI;IAAI,IAAI;IAAI,GAAG;IAAI,WAAU;GAAO,CAAA;GAChD,oBAAC,QAAD;IAAM,GAAE;IAAgB,WAAU;GAAO,CAAA;EACtC;;AAET"}
1
+ {"version":3,"file":"AlertCircle.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/AlertCircle.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function AlertCircle(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n id=\"Layer_1\"\n x={0}\n y={0}\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <style>\n {\n '.st0{fill:none;stroke:#f06d8d;strokeWidth:2;strokeLinecap:round;strokeLinejoin:round}'\n }\n </style>\n <circle cx={12} cy={12} r={10} className=\"st0\" />\n <path d=\"M12 8v4M12 16\" className=\"st0\" />\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,YAAY,OAA8C;CACxE,OACE,qBAAC,OAAD;EACE,OAAM;EACN,UAAS;EACT,IAAG;EACH,GAAG;EACH,GAAG;EACH,SAAQ;EACR,GAAI;EAPN,UAAA;GASE,oBAAC,SAAD,EAAA,UAEI,wFAEG,CAAA;GACP,oBAAC,UAAD;IAAQ,IAAI;IAAI,IAAI;IAAI,GAAG;IAAI,WAAU;GAAO,CAAA;GAChD,oBAAC,QAAD;IAAM,GAAE;IAAgB,WAAU;GAAO,CAAA;EACtC;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppStore.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/AppStore.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function AppStore(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width={108}\n height={38}\n fill=\"none\"\n {...props}\n >\n <path fill=\"url(#a)\" d=\"M-2 0h110v38H-2z\" />\n <defs>\n <pattern\n id=\"a\"\n width={1}\n height={1}\n patternContentUnits=\"objectBoundingBox\"\n >\n <use xlinkHref=\"#b\" transform=\"matrix(.00385 0 0 .01113 0 -.001)\" />\n </pattern>\n <image\n xlinkHref=\"data:image/png;base64,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\"\n id=\"b\"\n width={260}\n height={90}\n />\n </defs>\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,SAAS,OAA8C;CACrE,OACE,qBAAC,OAAD;EACE,OAAM;EACN,YAAW;EACX,OAAO;EACP,QAAQ;EACR,MAAK;EACL,GAAI;YANN,CAQE,oBAAC,QAAD;GAAM,MAAK;GAAU,GAAE;EAAoB,CAAA,GAC3C,qBAAC,QAAD,EAAA,UAAA,CACE,oBAAC,WAAD;GACE,IAAG;GACH,OAAO;GACP,QAAQ;GACR,qBAAoB;aAEpB,oBAAC,OAAD;IAAK,WAAU;IAAK,WAAU;GAAqC,CAAA;EAC5D,CAAA,GACT,oBAAC,SAAD;GACE,WAAU;GACV,IAAG;GACH,OAAO;GACP,QAAQ;EACT,CAAA,CACG,EAAA,CAAA,CACH;;AAET"}
1
+ {"version":3,"file":"AppStore.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/AppStore.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function AppStore(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width={108}\n height={38}\n fill=\"none\"\n {...props}\n >\n <path fill=\"url(#a)\" d=\"M-2 0h110v38H-2z\" />\n <defs>\n <pattern\n id=\"a\"\n width={1}\n height={1}\n patternContentUnits=\"objectBoundingBox\"\n >\n <use xlinkHref=\"#b\" transform=\"matrix(.00385 0 0 .01113 0 -.001)\" />\n </pattern>\n <image\n xlinkHref=\"data:image/png;base64,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\"\n id=\"b\"\n width={260}\n height={90}\n />\n </defs>\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,SAAS,OAA8C;CACrE,OACE,qBAAC,OAAD;EACE,OAAM;EACN,YAAW;EACX,OAAO;EACP,QAAQ;EACR,MAAK;EACL,GAAI;EANN,UAAA,CAQE,oBAAC,QAAD;GAAM,MAAK;GAAU,GAAE;EAAoB,CAAA,GAC3C,qBAAC,QAAD,EAAA,UAAA,CACE,oBAAC,WAAD;GACE,IAAG;GACH,OAAO;GACP,QAAQ;GACR,qBAAoB;GAEpB,UAAA,oBAAC,OAAD;IAAK,WAAU;IAAK,WAAU;GAAqC,CAAA;EAC5D,CAAA,GACT,oBAAC,SAAD;GACE,WAAU;GACV,IAAG;GACH,OAAO;GACP,QAAQ;EACT,CAAA,CACG,EAAA,CAAA,CACH;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"Arrow.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/Arrow.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function Arrow(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#a)\">\n <mask\n id=\"b\"\n width={16}\n height={16}\n x={0}\n y={0}\n mask-type=\"alpha\"\n maskUnits=\"userSpaceOnUse\"\n >\n <path stroke=\"#000\" d=\"m4 6 4 4 4-4\" />\n </mask>\n <g mask=\"url(#b)\">\n <path fill=\"#1E1E2D\" d=\"M0 0h16v16H0z\" />\n </g>\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M-533-86H491v424H-533z\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,MAAM,OAA8C;CAClE,OACE,qBAAC,OAAD;EACE,OAAM;EACN,OAAO;EACP,QAAQ;EACR,MAAK;EACL,GAAI;YALN,CAOE,qBAAC,KAAD;GAAG,UAAS;aAAZ,CACE,oBAAC,QAAD;IACE,IAAG;IACH,OAAO;IACP,QAAQ;IACR,GAAG;IACH,GAAG;IACH,aAAU;IACV,WAAU;cAEV,oBAAC,QAAD;KAAM,QAAO;KAAO,GAAE;IAAgB,CAAA;GAClC,CAAA,GACN,oBAAC,KAAD;IAAG,MAAK;cACN,oBAAC,QAAD;KAAM,MAAK;KAAU,GAAE;IAAiB,CAAA;GACvC,CAAA,CACF;MACH,oBAAC,QAAD,EAAA,UACE,oBAAC,YAAD;GAAU,IAAG;aACX,oBAAC,QAAD;IAAM,MAAK;IAAO,GAAE;GAA0B,CAAA;EACtC,CAAA,EACN,CAAA,CACH;;AAET"}
1
+ {"version":3,"file":"Arrow.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/Arrow.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function Arrow(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#a)\">\n <mask\n id=\"b\"\n width={16}\n height={16}\n x={0}\n y={0}\n mask-type=\"alpha\"\n maskUnits=\"userSpaceOnUse\"\n >\n <path stroke=\"#000\" d=\"m4 6 4 4 4-4\" />\n </mask>\n <g mask=\"url(#b)\">\n <path fill=\"#1E1E2D\" d=\"M0 0h16v16H0z\" />\n </g>\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M-533-86H491v424H-533z\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,MAAM,OAA8C;CAClE,OACE,qBAAC,OAAD;EACE,OAAM;EACN,OAAO;EACP,QAAQ;EACR,MAAK;EACL,GAAI;EALN,UAAA,CAOE,qBAAC,KAAD;GAAG,UAAS;GAAZ,UAAA,CACE,oBAAC,QAAD;IACE,IAAG;IACH,OAAO;IACP,QAAQ;IACR,GAAG;IACH,GAAG;IACH,aAAU;IACV,WAAU;IAEV,UAAA,oBAAC,QAAD;KAAM,QAAO;KAAO,GAAE;IAAgB,CAAA;GAClC,CAAA,GACN,oBAAC,KAAD;IAAG,MAAK;IACN,UAAA,oBAAC,QAAD;KAAM,MAAK;KAAU,GAAE;IAAiB,CAAA;GACvC,CAAA,CACF;EACH,CAAA,GAAA,oBAAC,QAAD,EAAA,UACE,oBAAC,YAAD;GAAU,IAAG;GACX,UAAA,oBAAC,QAAD;IAAM,MAAK;IAAO,GAAE;GAA0B,CAAA;EACtC,CAAA,EACN,CAAA,CACH;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowDown.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/ArrowDown.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function ArrowDown(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={6}\n height={7}\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"#F06D8D\"\n fillRule=\"evenodd\"\n d=\"M3.598 0h-2v3.5H0L2.598 7l2.598-3.5H3.598V0Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,UAAU,OAA8C;CACtE,OACE,oBAAC,OAAD;EACE,OAAM;EACN,OAAO;EACP,QAAQ;EACR,MAAK;EACL,GAAI;YAEJ,oBAAC,QAAD;GACE,MAAK;GACL,UAAS;GACT,GAAE;GACF,UAAS;EACV,CAAA;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"ArrowDown.js","names":[],"sources":["../../../../../src/Molecular/CustomIcons/components/ArrowDown.tsx"],"sourcesContent":["import type { ReactElement, SVGProps } from 'react';\n\nexport function ArrowDown(props: SVGProps<SVGSVGElement>): ReactElement {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={6}\n height={7}\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"#F06D8D\"\n fillRule=\"evenodd\"\n d=\"M3.598 0h-2v3.5H0L2.598 7l2.598-3.5H3.598V0Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n )\n}\n"],"mappings":";;AAEA,SAAgB,UAAU,OAA8C;CACtE,OACE,oBAAC,OAAD;EACE,OAAM;EACN,OAAO;EACP,QAAQ;EACR,MAAK;EACL,GAAI;EAEJ,UAAA,oBAAC,QAAD;GACE,MAAK;GACL,UAAS;GACT,GAAE;GACF,UAAS;EACV,CAAA;CACE,CAAA;AAET"}