intelicoreact 1.6.20 → 1.6.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 (272) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +1 -102
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +1 -89
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +1 -232
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +1 -3
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +1 -101
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +1 -70
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +1 -350
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +1 -3
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +1 -177
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +1 -3
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +1 -561
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -20
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +1 -405
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +1 -94
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -105
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +1 -67
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -247
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +1 -160
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -193
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +1 -135
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -116
  22. package/dist/Atomic/FormElements/Input/Input.js +1 -467
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +1 -161
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +1 -64
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +1 -166
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +1 -354
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +1 -71
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +1 -693
  29. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +1 -254
  30. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -32
  31. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -200
  32. package/dist/Atomic/FormElements/InputLink/InputLink.js +1 -99
  33. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +1 -37
  34. package/dist/Atomic/FormElements/InputMask/InputMask.js +1 -1214
  35. package/dist/Atomic/FormElements/InputMask/config.js +1 -15
  36. package/dist/Atomic/FormElements/InputMask/functions.js +1 -58
  37. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +1 -674
  38. package/dist/Atomic/FormElements/InputMask2/config.js +1 -15
  39. package/dist/Atomic/FormElements/InputMask2/functions.js +1 -58
  40. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +1 -766
  41. package/dist/Atomic/FormElements/InputMask3/config.js +1 -15
  42. package/dist/Atomic/FormElements/InputMask3/functions.js +1 -58
  43. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +1 -114
  44. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +1 -140
  45. package/dist/Atomic/FormElements/Label/Label.js +1 -82
  46. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -506
  47. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -45
  48. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -331
  49. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -66
  50. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -80
  51. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +1 -64
  52. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -54
  53. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -183
  54. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -209
  55. package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -175
  56. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -43
  57. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -443
  58. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -858
  59. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -39
  60. package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -59
  61. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -50
  62. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +1 -47
  63. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +1 -96
  64. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +1 -40
  65. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -64
  66. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -170
  67. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +1 -202
  68. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -67
  69. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -115
  70. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -826
  71. package/dist/Atomic/FormElements/Text/Text.js +1 -125
  72. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +1 -45
  73. package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -80
  74. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -176
  75. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -62
  76. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -127
  77. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +1 -220
  78. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -83
  79. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -82
  80. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -101
  81. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -29
  82. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -113
  83. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -30
  84. package/dist/Atomic/Layout/Header/Header.js +1 -85
  85. package/dist/Atomic/Layout/Spinner/Spinner.js +1 -39
  86. package/dist/Atomic/UI/Accordion/Accordion.js +1 -118
  87. package/dist/Atomic/UI/Accordion/AccordionItem.js +1 -181
  88. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -238
  89. package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -69
  90. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +1 -207
  91. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +1 -56
  92. package/dist/Atomic/UI/Alert/Alert.js +1 -72
  93. package/dist/Atomic/UI/Arrow/Arrow.js +1 -132
  94. package/dist/Atomic/UI/Box/Box.js +1 -52
  95. package/dist/Atomic/UI/Button/Button.js +1 -89
  96. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +1 -72
  97. package/dist/Atomic/UI/Chart/Chart.js +1 -172
  98. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +1 -95
  99. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -80
  100. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +1 -188
  101. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -335
  102. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +1 -43
  103. package/dist/Atomic/UI/Chart/partial/utils.js +1 -60
  104. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -109
  105. package/dist/Atomic/UI/DateTime/DateTime.js +1 -57
  106. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -44
  107. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -15
  108. package/dist/Atomic/UI/DoubleString/DoubleString.js +1 -102
  109. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +1 -226
  110. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -221
  111. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +1 -106
  112. package/dist/Atomic/UI/Hint/Hint.js +1 -193
  113. package/dist/Atomic/UI/Hint/partials/_utils.js +1 -51
  114. package/dist/Atomic/UI/Modal/Modal.js +1 -188
  115. package/dist/Atomic/UI/Modal/ModalHOC.js +1 -72
  116. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +1 -46
  117. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +1 -83
  118. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +1 -200
  119. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -75
  120. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -80
  121. package/dist/Atomic/UI/NavLine/NavLine.js +1 -293
  122. package/dist/Atomic/UI/PageTitle/PageTitle.js +1 -75
  123. package/dist/Atomic/UI/PieChart/PieChart.js +1 -42
  124. package/dist/Atomic/UI/Price/Price.js +1 -22
  125. package/dist/Atomic/UI/PriceRange/PriceRange.js +1 -36
  126. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +1 -71
  127. package/dist/Atomic/UI/Status/Status.js +1 -59
  128. package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -87
  129. package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -38
  130. package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -99
  131. package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -52
  132. package/dist/Atomic/UI/Table/Table.js +1 -63
  133. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -80
  134. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -28
  135. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -13
  136. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -53
  137. package/dist/Atomic/UI/Tag/Tag.js +1 -160
  138. package/dist/Atomic/UI/TagList/TagList.js +1 -251
  139. package/dist/Atomic/UI/UserBox/UserBox.js +1 -73
  140. package/dist/Atomic/UI/WizardStepper/constructor.js +1 -84
  141. package/dist/Atomic/UI/WizardStepper/index.js +1 -3
  142. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +1 -37
  143. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -3
  144. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +1 -61
  145. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -3
  146. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +1 -39
  147. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -3
  148. package/dist/Atomic/UI/WizardStepper/ui/icons.js +1 -49
  149. package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -3
  150. package/dist/Classes/AbortableFetch.js +1 -454
  151. package/dist/Classes/AnimatedHandler.js +1 -47
  152. package/dist/Classes/RESTAPI/index.js +1 -228
  153. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -457
  154. package/dist/Classes/RESTAPI/partials/ApiBase.js +1 -48
  155. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +1 -112
  156. package/dist/Classes/RESTAPI/partials/ApiUtils.js +1 -189
  157. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -252
  158. package/dist/Classes/RESTAPI/partials/Utils.js +1 -92
  159. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +1 -3
  160. package/dist/Classes/RESTAPI/partials/_utils.js +1 -197
  161. package/dist/Constants/index.constants.js +1 -78
  162. package/dist/Functions/Portal.js +1 -22
  163. package/dist/Functions/customEventListener.js +1 -96
  164. package/dist/Functions/dateTime.js +1 -149
  165. package/dist/Functions/fieldValueFormatters.js +1 -405
  166. package/dist/Functions/guards/assertions.js +1 -66
  167. package/dist/Functions/guards/safeValue.js +1 -30
  168. package/dist/Functions/guards/typeGuards.js +1 -116
  169. package/dist/Functions/hooks/useFormFieldsChangesManager.js +1 -95
  170. package/dist/Functions/locale/createTranslator.js +1 -32
  171. package/dist/Functions/operations.js +1 -130
  172. package/dist/Functions/presets/inputMaskPresets.js +1 -170
  173. package/dist/Functions/presets/inputPresets.js +1 -60
  174. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +1 -45
  175. package/dist/Functions/schemas.js +1 -31
  176. package/dist/Functions/useBodyScrollLock.js +1 -17
  177. package/dist/Functions/useClickOutside.js +1 -15
  178. package/dist/Functions/useDebounce.js +1 -17
  179. package/dist/Functions/useFieldFocus.js +1 -84
  180. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +1 -39
  181. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +1 -159
  182. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +1 -78
  183. package/dist/Functions/useFormTools/functions/General.js +1 -134
  184. package/dist/Functions/useFormTools/functions/RenderFields.js +1 -111
  185. package/dist/Functions/useFormTools/functions/usePrevious.js +1 -12
  186. package/dist/Functions/useFormTools/index.js +1 -778
  187. package/dist/Functions/useInputHighlightError.js +1 -67
  188. package/dist/Functions/useIsMobile/useIsMobile.js +1 -53
  189. package/dist/Functions/useKeyPress/useHandleKeyPress.js +1 -21
  190. package/dist/Functions/useKeyPress/useKeyPress.js +1 -75
  191. package/dist/Functions/useLocalStorage.js +1 -34
  192. package/dist/Functions/useLocationParams.js +1 -27
  193. package/dist/Functions/useMediaQuery.js +1 -17
  194. package/dist/Functions/useMetaInfo.js +1 -43
  195. package/dist/Functions/useMouseUpOutside.js +1 -16
  196. package/dist/Functions/useOnlineStatus.js +1 -29
  197. package/dist/Functions/usePasswordChecker.js +1 -110
  198. package/dist/Functions/usePrevious.js +1 -12
  199. package/dist/Functions/useResize.js +1 -31
  200. package/dist/Functions/useScrollTo.js +1 -17
  201. package/dist/Functions/useToggle.js +1 -17
  202. package/dist/Functions/utils.js +1 -522
  203. package/dist/Langs.js +1 -168
  204. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -21
  205. package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -23
  206. package/dist/Molecular/CustomIcons/components/AppStore.js +1 -29
  207. package/dist/Molecular/CustomIcons/components/Arrow.js +1 -32
  208. package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -17
  209. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -22
  210. package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -22
  211. package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -17
  212. package/dist/Molecular/CustomIcons/components/Bell.js +1 -15
  213. package/dist/Molecular/CustomIcons/components/Button.js +1 -12
  214. package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -16
  215. package/dist/Molecular/CustomIcons/components/Check.js +1 -14
  216. package/dist/Molecular/CustomIcons/components/Check2.js +1 -12
  217. package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -12
  218. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -11
  219. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -11
  220. package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -11
  221. package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -11
  222. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -27
  223. package/dist/Molecular/CustomIcons/components/Close.js +1 -14
  224. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -17
  225. package/dist/Molecular/CustomIcons/components/Delete.js +1 -16
  226. package/dist/Molecular/CustomIcons/components/Edit.js +1 -15
  227. package/dist/Molecular/CustomIcons/components/Email.js +1 -31
  228. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -18
  229. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -35
  230. package/dist/Molecular/CustomIcons/components/Flows.js +1 -15
  231. package/dist/Molecular/CustomIcons/components/Gift.js +1 -25
  232. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -29
  233. package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -29
  234. package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -19
  235. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -20
  236. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -19
  237. package/dist/Molecular/CustomIcons/components/Home.js +1 -16
  238. package/dist/Molecular/CustomIcons/components/Home2.js +1 -22
  239. package/dist/Molecular/CustomIcons/components/Key.js +1 -23
  240. package/dist/Molecular/CustomIcons/components/Landers.js +1 -20
  241. package/dist/Molecular/CustomIcons/components/Lock.js +1 -15
  242. package/dist/Molecular/CustomIcons/components/Mail.js +1 -26
  243. package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -73
  244. package/dist/Molecular/CustomIcons/components/Minus.js +1 -25
  245. package/dist/Molecular/CustomIcons/components/Offers.js +1 -16
  246. package/dist/Molecular/CustomIcons/components/Pause.js +1 -28
  247. package/dist/Molecular/CustomIcons/components/PayPal.js +1 -41
  248. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -28
  249. package/dist/Molecular/CustomIcons/components/Phone.js +1 -30
  250. package/dist/Molecular/CustomIcons/components/Play.js +1 -25
  251. package/dist/Molecular/CustomIcons/components/Plus.js +1 -25
  252. package/dist/Molecular/CustomIcons/components/Profile.js +1 -16
  253. package/dist/Molecular/CustomIcons/components/QRCode.js +1 -29
  254. package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -12
  255. package/dist/Molecular/CustomIcons/components/Revert.js +1 -13
  256. package/dist/Molecular/CustomIcons/components/Star.js +1 -14
  257. package/dist/Molecular/CustomIcons/components/Star2.js +1 -16
  258. package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -14
  259. package/dist/Molecular/CustomIcons/components/Trash.js +1 -15
  260. package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -15
  261. package/dist/Molecular/CustomIcons/components/Triggers.js +1 -15
  262. package/dist/Molecular/CustomIcons/components/User.js +1 -25
  263. package/dist/Molecular/CustomIcons/components/Visa.js +1 -31
  264. package/dist/Molecular/CustomIcons/components/X.js +1 -12
  265. package/dist/Molecular/CustomIcons/index.js +1 -61
  266. package/dist/Molecular/FormElement/FormElement.js +1 -54
  267. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -184
  268. package/dist/Molecular/FormWithDependOn/partials/_utils.js +1 -53
  269. package/dist/Molecular/InputAddress/InputAddress.js +1 -620
  270. package/dist/Molecular/InputPassword/InputPassword.js +1 -48
  271. package/dist/index.js +1 -1
  272. package/package.json +1 -1
@@ -1,67 +1 @@
1
- import React, { useMemo } from "react";
2
-
3
- import cn from "classnames";
4
-
5
- import { downloadFile } from "../../../../Functions/utils";
6
-
7
- import "../FileLoader.scss";
8
-
9
- const LoadedContent = (props) => {
10
- const {
11
- RC,
12
- value,
13
- onDelete,
14
- icon,
15
- isIconAfter,
16
- deleteIcon,
17
- isUseLinkTitle,
18
- isLinkTypeDownload,
19
- } = props;
20
-
21
- const handle = {
22
- download: async (e) => {
23
- e.stopPropagation();
24
- e.preventDefault();
25
- const target =
26
- e.target.tagName === "SPAN" || e.target.tagName === "svg"
27
- ? e.target.parentNode
28
- : e.target;
29
- downloadFile({ url: target.href, name: value.name });
30
- },
31
- };
32
-
33
- const additionalProps = useMemo(
34
- () => ({
35
- ...(isUseLinkTitle
36
- ? { title: isLinkTypeDownload ? `Download ${value.name}` : value.path }
37
- : {}),
38
- ...(isLinkTypeDownload
39
- ? { onClick: handle.download }
40
- : { target: "_blank" }),
41
- key: `LoadedContent-isNotUseLinkTitle-${isUseLinkTitle}-isLinkTypeDownload-${isLinkTypeDownload}`,
42
- }),
43
- [isUseLinkTitle, isLinkTypeDownload],
44
- );
45
-
46
- return (
47
- <>
48
- <a
49
- {...additionalProps}
50
- href={value.path}
51
- rel="noreferrer"
52
- className={cn(`${RC}__value-link`, {
53
- [`${RC}__value-link_icon-after`]: isIconAfter,
54
- })}
55
- >
56
- {!isIconAfter && icon}
57
- <span className={cn(`${RC}__value-name`)}>{value.name}</span>
58
- {isIconAfter && icon}
59
- </a>
60
- <span className={cn(`${RC}__delete-value-button`)} onClick={onDelete}>
61
- {deleteIcon || "X"}
62
- </span>
63
- </>
64
- );
65
- };
66
-
67
- export default LoadedContent;
1
+ function e(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(n){t(e,n,r[n])})}return e}function r(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}import{jsx as o,jsxs as a,Fragment as c}from"react/jsx-runtime";import{useMemo as i}from"react";import l from"classnames";import{downloadFile as u}from"../../../../Functions/utils";import"../FileLoader.scss";export default function(s){var f,p,b=s.RC,y=s.value,m=s.onDelete,d=s.icon,h=s.isIconAfter,v=s.deleteIcon,O=s.isUseLinkTitle,g=s.isLinkTypeDownload,w={download:(f=function(e){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return c.next=i(0),c.throw=i(1),c.return=i(2),"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function i(i){return function(l){var u=[i,l];if(n)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(t){return e.stopPropagation(),e.preventDefault(),u({url:("SPAN"===e.target.tagName||"svg"===e.target.tagName?e.target.parentNode:e.target).href,name:y.name}),[2]})},p=function(){var t=this,n=arguments;return new Promise(function(r,o){var a=f.apply(t,n);function c(t){e(a,r,o,c,i,"next",t)}function i(t){e(a,r,o,c,i,"throw",t)}c(void 0)})},function(e){return p.apply(this,arguments)})},j=i(function(){return r(n({},O?{title:g?"Download ".concat(y.name):y.path}:{},g?{onClick:w.download}:{target:"_blank"}),{key:"LoadedContent-isNotUseLinkTitle-".concat(O,"-isLinkTypeDownload-").concat(g)})},[O,g]);return a(c,{children:[a("a",r(n({},j),{href:y.path,rel:"noreferrer",className:l("".concat(b,"__value-link"),t({},"".concat(b,"__value-link_icon-after"),h)),children:[!h&&d,o("span",{className:l("".concat(b,"__value-name")),children:y.name}),h&&d]})),o("span",{className:l("".concat(b,"__delete-value-button")),onClick:m,children:v||"X"})]})}
@@ -1,247 +1 @@
1
- import React, { useEffect, useMemo, useState } from "react";
2
-
3
- import cn from "classnames";
4
-
5
- import { clone, compare, getBase64, uuid } from "../../../Functions/utils";
6
- import AccordionText from "../../UI/AccordionText/AccordionText";
7
- import FileLoaderLocal from "../FileLoaderLocal/FileLoaderLocal";
8
-
9
- import "./FileLoaderDescription.scss";
10
-
11
- const RC = "file-loader-description";
12
-
13
- const UPLOAD_TRIGGER_KEY = "uploadTrigger";
14
- const MAX_FILE_SIZE = 10 * 1024 * 1024;
15
- const ACCEPT_EXTENSIONS_DEFAULT =
16
- ".jpg, .jpeg, .png, .pdf, .JPG, .JPEG, .PNG, .PDF";
17
-
18
- const uploadTriggerStucture = {
19
- id: UPLOAD_TRIGGER_KEY,
20
- isRequired: true,
21
- value: "",
22
- base64: "",
23
- maxItemSizeBytes: MAX_FILE_SIZE,
24
- error: "",
25
- accept: ACCEPT_EXTENSIONS_DEFAULT,
26
- };
27
-
28
- const getStructure = (data) => ({
29
- //? Расчет на то, что data донесет свой id и перетрёт пустые велью
30
- value: "",
31
- base64: "",
32
- maxItemSizeBytes: MAX_FILE_SIZE,
33
- error: "",
34
- isRequired: false,
35
- accept: ACCEPT_EXTENSIONS_DEFAULT,
36
- ...data,
37
- });
38
-
39
- const accordionData = (accordionTitle, accordionListContent) => {
40
- return (
41
- <div data-testid="accordion">
42
- <div className={`${RC}__accordion-title`}>{accordionTitle}</div>
43
- <div className={`${RC}__list`}>
44
- {accordionListContent?.map((item) => {
45
- return (
46
- <div key={item?.title} className={`${RC}__list-row`}>
47
- <div className={`${RC}__list-bullet`}></div>
48
- <div>
49
- <div className={`${RC}__list-title`}>{item.title}</div>
50
- <div className={`${RC}__list-descr`}>{item.description}</div>
51
- </div>
52
- </div>
53
- );
54
- })}
55
- </div>
56
- </div>
57
- );
58
- };
59
-
60
- const getSafelyInitFiles = (initFiles, maxFilesCount) => {
61
- if (!Array.isArray(initFiles)) return [];
62
-
63
- let output = clone(initFiles);
64
- if (typeof maxFilesCount === 'number' && output.length > maxFilesCount) {
65
- output = output.slice(0, maxFilesCount);
66
- }
67
-
68
- return output.map(getStructure);
69
- };
70
-
71
- const checkOverflow = (files, maxFilesCount, additional) => {
72
- const { error = "", outerError = "" } = additional || {};
73
-
74
- return typeof maxFilesCount === "number" && files.length < maxFilesCount
75
- ? [...files, { ...clone(uploadTriggerStucture), error, outerError }]
76
- : files;
77
- };
78
-
79
- const FileLoaderDescription = ({
80
- //? Для корректности работы стоит пробрасывать какой-то из id
81
- id,
82
- testId = "file-loader-description",
83
- fieldKey,
84
-
85
- files: initFiles,
86
- onChange,
87
-
88
- className,
89
- filesDescription = "Documents must be less than 10MB and must be in PDF, JPG, JPEG or PNG format.",
90
- documentName = "Document name",
91
- accordionTitle = "There is a list of documents that we accept:",
92
- accordionListContent = [],
93
-
94
- maxFilesCount = 10,
95
- isWithoutAccordion,
96
-
97
- error: outerError,
98
-
99
- ...props
100
- }) => {
101
- const uniqueFileLoaderDescriptionId = `${id || testId || fieldKey || `component-${uuid?.()}`}`;
102
- const safelyInitFiles = useMemo(
103
- () => getSafelyInitFiles(initFiles, maxFilesCount),
104
- [initFiles, maxFilesCount],
105
- );
106
-
107
- const [files, setFiles] = useState(
108
- (() => {
109
- if (!safelyInitFiles.length) return [clone(uploadTriggerStucture)];
110
- return checkOverflow(safelyInitFiles, maxFilesCount);
111
- })(),
112
- );
113
-
114
- const generateUniqueFileName = (files, name) => {
115
- let fileName = name;
116
- const [nameWithoutExtension, extension] = name.split(/(?=\.[^.]+$)/);
117
- let count = 1;
118
-
119
- while (files.some((file) => file.value === fileName)) {
120
- fileName = `${nameWithoutExtension}(${count})${extension}`;
121
- count += 1;
122
- }
123
-
124
- return fileName;
125
- };
126
-
127
- const handle = {
128
- applyFields: (newFields) => {
129
- setFiles(checkOverflow(newFields, maxFilesCount));
130
- onChange(newFields);
131
- },
132
-
133
- change: ({ name, id, error = "", file }) => {
134
- //? Работаем с филдами БЕЗ плашки добавления
135
- let output = clone(files)
136
- .filter((item) => item.value && item.base64)
137
- .map((item) => ({ ...item, error: "" }));
138
- const changedField = output.find((item) => id === item.id);
139
-
140
- if (!file) {
141
- //? Нет файла - значит это экшн удаления
142
- handle.applyFields(
143
- output.filter((item) => item.id !== changedField?.id),
144
- );
145
- } else if (error) {
146
- //? Есть ошибка - не должны менять содержание, только назначить ошибку
147
- if (changedField)
148
- output = output.map((item) =>
149
- id.includes(item.id) ? { ...item, error } : item,
150
- );
151
- //? Установка в локальный стейт БЕЗ верхнего onChange (файл по итогу НЕ загрузили, НЕ мутируем верхнее велью)
152
- setFiles(checkOverflow(output, maxFilesCount, { error: !changedField ? error : null }));
153
- } else {
154
- //? Во всех остальных случаях - происходит добавленеи/изменение содержимого
155
- const uniqueFileName = generateUniqueFileName(output, name);
156
- const uniqueId = uuid?.();
157
-
158
- getBase64(file).then((result) => {
159
- const newItem = getStructure({
160
- id: uniqueId,
161
- value: uniqueFileName,
162
- base64: result,
163
- error: "",
164
- });
165
- //? Либо меняем, либо добавляем
166
- output = changedField
167
- ? output.map((item) =>
168
- item.id === changedField.id ? newItem : item,
169
- )
170
- : [...output, newItem];
171
- handle.applyFields(output);
172
- });
173
- }
174
- },
175
- };
176
-
177
- useEffect(() => {
178
- setFiles(checkOverflow(files.filter((item) => item.id !== UPLOAD_TRIGGER_KEY), maxFilesCount, { outerError }));
179
- }, [outerError]);
180
-
181
- //? Обеспечивает чтобы верхний стейт был доминирующим
182
- //? Осознанно и намерянно в зависимости стоит initFiles, но расчеты идут от safelyInitFiles
183
- useEffect(() => {
184
- //? Если изменились верхние филды и они отличаются от локальных (без триггера) - перезаписать
185
- if (
186
- !compare(
187
- safelyInitFiles,
188
- clone(files).filter((item) => item.id !== UPLOAD_TRIGGER_KEY),
189
- )
190
- ) {
191
- setFiles(checkOverflow(safelyInitFiles, maxFilesCount, { outerError }));
192
- }
193
- }, [initFiles, maxFilesCount]);
194
-
195
- return (
196
- <div
197
- id={uniqueFileLoaderDescriptionId}
198
- data-testid={RC}
199
- className={cn(RC, className)}
200
- role="combobox"
201
- >
202
- {!!documentName && (
203
- <span title={documentName} className={`${RC}__title`}>
204
- {documentName}
205
- </span>
206
- )}
207
-
208
-
209
- {!isWithoutAccordion && (
210
- <AccordionText
211
- isForcedAlwaysAccordion
212
- className={cn(`${RC}__accordion`)}
213
- text={accordionData(accordionTitle, accordionListContent)}
214
- />
215
- )}
216
-
217
- {!!filesDescription && (
218
- <span className={`${RC}__file-descr`} title={filesDescription}>
219
- {filesDescription}
220
- </span>
221
- )}
222
-
223
-
224
- {files.map((field, i) => {
225
- return (
226
- <FileLoaderLocal
227
- className={`${RC}__list-item`}
228
- key={`${field.id}-${i}`}
229
- fieldId={field.id}
230
- id={`loader-${uniqueFileLoaderDescriptionId}-field-${field.id}`}
231
- error={field.error}
232
- outerError={field.outerError}
233
- label={"Upload document"}
234
- accept={field.accept}
235
- value={field.value}
236
- maxItemSizeBytes={field.maxItemSizeBytes}
237
- onChange={(value) => handle.change(value)}
238
- isRequired={files.length <= 1}
239
- isNoTrashIcon={false}
240
- />
241
- );
242
- })}
243
- </div>
244
- );
245
- };
246
-
247
- export default FileLoaderDescription;
1
+ function e(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function r(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function t(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function n(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);c=!0);}catch(e){a=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(a)throw n}}return i}}(e,r)||i(e,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||i(r)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(r,t){if(r){if("string"==typeof r)return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}}import{jsx as c,jsxs as a}from"react/jsx-runtime";import{useEffect as l,useMemo as u,useState as s}from"react";import d from"classnames";import{clone as f,compare as m,getBase64 as p,uuid as y}from"../../../Functions/utils";import b from"../../UI/AccordionText/AccordionText";import v from"../FileLoaderLocal/FileLoaderLocal";import"./FileLoaderDescription.scss";var h="file-loader-description",g="uploadTrigger",O=".jpg, .jpeg, .png, .pdf, .JPG, .JPEG, .PNG, .PDF",j={id:g,isRequired:!0,value:"",base64:"",maxItemSizeBytes:0xa00000,error:"",accept:O},P=function(e){return r({value:"",base64:"",maxItemSizeBytes:0xa00000,error:"",isRequired:!1,accept:O},e)},_=function(e,r){if(!Array.isArray(e))return[];var t=f(e);return"number"==typeof r&&t.length>r&&(t=t.slice(0,r)),t.map(P)},x=function(e,n,i){var c=i||{},a=c.error,l=c.outerError;return"number"==typeof n&&e.length<n?o(e).concat([t(r({},f(j)),{error:void 0===a?"":a,outerError:void 0===l?"":l})]):e};export default function(e){var i,O,N=e.id,S=e.testId,w=e.fieldKey,A=e.files,I=e.onChange,E=e.className,F=e.filesDescription,D=void 0===F?"Documents must be less than 10MB and must be in PDF, JPG, JPEG or PNG format.":F,T=e.documentName,C=void 0===T?"Document name":T,L=e.accordionTitle,G=e.accordionListContent,B=e.maxFilesCount,z=void 0===B?10:B,J=e.isWithoutAccordion,k=e.error;!function(e,r){if(null!=e){var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)t=i[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}}}(e,["id","testId","fieldKey","files","onChange","className","filesDescription","documentName","accordionTitle","accordionListContent","maxFilesCount","isWithoutAccordion","error"]);var q="".concat(N||(void 0===S?"file-loader-description":S)||w||"component-".concat(null==y?void 0:y())),R=u(function(){return _(A,z)},[A,z]),U=n(s(R.length?x(R,z):[f(j)]),2),K=U[0],M=U[1],W=function(e,r){for(var t=r,o=n(r.split(/(?=\.[^.]+$)/),2),i=o[0],c=o[1],a=1;e.some(function(e){return e.value===t});)t="".concat(i,"(").concat(a,")").concat(c),a+=1;return t},$={applyFields:function(e){M(x(e,z)),I(e)},change:function(e){var n=e.name,i=e.id,c=e.error,a=void 0===c?"":c,l=e.file,u=f(K).filter(function(e){return e.value&&e.base64}).map(function(e){return t(r({},e),{error:""})}),s=u.find(function(e){return i===e.id});if(l)if(a)s&&(u=u.map(function(e){return i.includes(e.id)?t(r({},e),{error:a}):e})),M(x(u,z,{error:s?null:a}));else{var d=W(u,n),m=null==y?void 0:y();p(l).then(function(e){var r=P({id:m,value:d,base64:e,error:""});u=s?u.map(function(e){return e.id===s.id?r:e}):o(u).concat([r]),$.applyFields(u)})}else $.applyFields(u.filter(function(e){return e.id!==(null==s?void 0:s.id)}))}};return l(function(){M(x(K.filter(function(e){return e.id!==g}),z,{outerError:k}))},[k]),l(function(){m(R,f(K).filter(function(e){return e.id!==g}))||M(x(R,z,{outerError:k}))},[A,z]),a("div",{id:q,"data-testid":h,className:d(h,E),role:"combobox",children:[!!C&&c("span",{title:C,className:"".concat(h,"__title"),children:C}),!J&&c(b,{isForcedAlwaysAccordion:!0,className:d("".concat(h,"__accordion")),text:(i=void 0===L?"There is a list of documents that we accept:":L,O=void 0===G?[]:G,a("div",{"data-testid":"accordion",children:[c("div",{className:"".concat(h,"__accordion-title"),children:i}),c("div",{className:"".concat(h,"__list"),children:null==O?void 0:O.map(function(e){return a("div",{className:"".concat(h,"__list-row"),children:[c("div",{className:"".concat(h,"__list-bullet")}),a("div",{children:[c("div",{className:"".concat(h,"__list-title"),children:e.title}),c("div",{className:"".concat(h,"__list-descr"),children:e.description})]})]},null==e?void 0:e.title)})})]}))}),!!D&&c("span",{className:"".concat(h,"__file-descr"),title:D,children:D}),K.map(function(e,r){return c(v,{className:"".concat(h,"__list-item"),fieldId:e.id,id:"loader-".concat(q,"-field-").concat(e.id),error:e.error,outerError:e.outerError,label:"Upload document",accept:e.accept,value:e.value,maxItemSizeBytes:e.maxItemSizeBytes,onChange:function(e){return $.change(e)},isRequired:K.length<=1,isNoTrashIcon:!1},"".concat(e.id,"-").concat(r))})]})}
@@ -1,160 +1 @@
1
- import React from "react";
2
-
3
- import cn from "classnames";
4
- import { Download, Paperclip, Trash2 } from "react-feather";
5
-
6
- import {
7
- getUniqueFileExtensions,
8
- renderFileSize,
9
- } from "../../../Functions/utils";
10
-
11
- import "./FileLoaderLocal.scss";
12
-
13
- const MAX_FILE_SIZE = 10 * 1024 * 1024;
14
-
15
- const FileLoaderLocal = ({
16
- groupId,
17
- id,
18
- fieldId,
19
- fieldKey,
20
- label,
21
- error,
22
- outerError,
23
- isRequired,
24
- accept,
25
- onChange,
26
- className,
27
- value,
28
- isNoTrashIcon = false,
29
- maxItemSizeBytes,
30
- testId = "file-loader-local",
31
- attributesOfNativeInput = {},
32
- }) => {
33
- const getFileName = (value) => {
34
- const result = value.match(/[^\\]+$/);
35
- return result?.[0];
36
- };
37
-
38
- const renderRequiredLabel = () => {
39
- if (!value) {
40
- if (isRequired)
41
- return <div className="file-loader-local--required">Required</div>;
42
- else return <div className="file-loader-local--optional">Optional</div>;
43
- }
44
- };
45
-
46
- const isFileSizeOutOfLimit = (file) => {
47
- return file.size > maxItemSizeBytes ?? MAX_FILE_SIZE;
48
- };
49
-
50
- const checkExtension = (valueExtension) => {
51
- return accept.includes(valueExtension);
52
- };
53
-
54
- const handle = {
55
- change: (e) => {
56
- const name = getFileName(e.target.value);
57
- const valueExtension = name?.match(/[^\.]+$/)?.[0];
58
- const fileName = name.split(".")?.[0];
59
- const latinRegex = /^[A-Za-z\u00C0-\u00FF0-9!@#\$%\^\&*\)\(+=._-\s]+$/;
60
- const file = e.target?.files?.[0];
61
-
62
- if (isFileSizeOutOfLimit(e.target?.files?.[0])) {
63
- onChange({
64
- id,
65
- name,
66
- valueExtension,
67
- e,
68
- file,
69
- groupId,
70
- error: `Max file size is ${renderFileSize(maxItemSizeBytes)}`,
71
- });
72
- } else if (!checkExtension(valueExtension)) {
73
- const allowedExtensions =
74
- accept?.replace(/\./g, "")?.toUpperCase() || "JPG, PNG, PDF";
75
- const uniqExts = getUniqueFileExtensions(allowedExtensions);
76
-
77
- onChange({
78
- id,
79
- groupId,
80
- name,
81
- valueExtension,
82
- e,
83
- file,
84
- error: `Only ${uniqExts} are allowed`,
85
- });
86
- } else if (!latinRegex.test(fileName)) {
87
- onChange({
88
- id,
89
- groupId,
90
- name,
91
- valueExtension,
92
- e,
93
- file,
94
- error: `File name must be Latin characters only.`,
95
- });
96
- } else onChange({ id, groupId, name, valueExtension, e, file });
97
- },
98
- };
99
-
100
- return (
101
- <div
102
- data-testid={testId}
103
- className={cn("file-loader-local", className, {
104
- ["file-loader-local_outer-error"]: Boolean(outerError),
105
- })}
106
- >
107
- {(fieldId === "uploadTrigger" || !value) && (
108
- <input
109
- key={id}
110
- onChange={handle.change}
111
- className="file-loader-local__file-input"
112
- id={fieldKey || `file-input-${id}${groupId ? `-${groupId}` : ""}`}
113
- type="file"
114
- name={fieldKey || id}
115
- required={isRequired}
116
- accept={accept}
117
- {...attributesOfNativeInput}
118
- />
119
- )}
120
- <label
121
- className={cn("file-loader-local__label-box", {
122
- "file-loader-local__label-box--upload-trigger":
123
- fieldId === "uploadTrigger" || !value,
124
- })}
125
- htmlFor={fieldKey || `file-input-${id}${groupId ? `-${groupId}` : ""}`}
126
- >
127
- {!value && <Download className="file-loader-local__upload-icon" />}
128
- {value && <Paperclip className="file-loader-local__upload-icon" />}
129
- <div
130
- title={value || label}
131
- className="file-loader-local__label-wrapper"
132
- >
133
- <div
134
- className={cn("file-loader-local__label", {
135
- "file-loader-local__label-filled": value,
136
- })}
137
- >
138
- <span className="file-loader-local__label-text">
139
- {value || label}
140
- </span>
141
- {error && <span className="file-loader-local__error">{error}</span>}
142
- {typeof outerError === "string" && (
143
- <span className="file-loader-local__error">{outerError}</span>
144
- )}
145
- </div>
146
- </div>
147
-
148
- {value && !isNoTrashIcon && (
149
- <Trash2
150
- className="file-loader-local__trash-icon"
151
- onClick={() => onChange({ id: fieldId, groupId })}
152
- />
153
- )}
154
- {renderRequiredLabel()}
155
- </label>
156
- </div>
157
- );
158
- };
159
-
160
- export default FileLoaderLocal;
1
+ function e(e,l,a){return l in e?Object.defineProperty(e,l,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[l]=a,e}import{jsx as l,jsxs as a}from"react/jsx-runtime";import"react";import r from"classnames";import{Download as o,Paperclip as i,Trash2 as t}from"react-feather";import{getUniqueFileExtensions as n,renderFileSize as c}from"../../../Functions/utils";import"./FileLoaderLocal.scss";export default function(s){var d=s.groupId,u=s.id,f=s.fieldId,p=s.fieldKey,m=s.label,v=s.error,_=s.outerError,g=s.isRequired,b=s.accept,h=s.onChange,N=s.className,y=s.value,x=s.isNoTrashIcon,I=s.maxItemSizeBytes,O=s.testId,j=s.attributesOfNativeInput,F=function(e){var l=e.match(/[^\\]+$/);return null==l?void 0:l[0]},P=function(e){var l;return l=e.size>I,l};return a("div",{"data-testid":void 0===O?"file-loader-local":O,className:r("file-loader-local",N,e({},"file-loader-local_outer-error",!!_)),children:[("uploadTrigger"===f||!y)&&l("input",function(l){for(var a=1;a<arguments.length;a++){var r=null!=arguments[a]?arguments[a]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(a){e(l,a,r[a])})}return l}({onChange:function(e){var l=F(e.target.value),a=null==l||null==(i=l.match(/[^\.]+$/))?void 0:i[0],r=null==(t=l.split("."))?void 0:t[0],o=null==(f=e.target)||null==(s=f.files)?void 0:s[0];if(P(null==(m=e.target)||null==(p=m.files)?void 0:p[0]))h({id:u,name:l,valueExtension:a,e:e,file:o,groupId:d,error:"Max file size is ".concat(c(I))});else if(b.includes(a))/^[A-Za-z\u00C0-\u00FF0-9!@#\$%\^\&*\)\(+=._-\s]+$/.test(r)?h({id:u,groupId:d,name:l,valueExtension:a,e:e,file:o}):h({id:u,groupId:d,name:l,valueExtension:a,e:e,file:o,error:"File name must be Latin characters only."});else{var i,t,s,f,p,m,v,_=n((null==b||null==(v=b.replace(/\./g,""))?void 0:v.toUpperCase())||"JPG, PNG, PDF");h({id:u,groupId:d,name:l,valueExtension:a,e:e,file:o,error:"Only ".concat(_," are allowed")})}},className:"file-loader-local__file-input",id:p||"file-input-".concat(u).concat(d?"-".concat(d):""),type:"file",name:p||u,required:g,accept:b},void 0===j?{}:j),u),a("label",{className:r("file-loader-local__label-box",{"file-loader-local__label-box--upload-trigger":"uploadTrigger"===f||!y}),htmlFor:p||"file-input-".concat(u).concat(d?"-".concat(d):""),children:[!y&&l(o,{className:"file-loader-local__upload-icon"}),y&&l(i,{className:"file-loader-local__upload-icon"}),l("div",{title:y||m,className:"file-loader-local__label-wrapper",children:a("div",{className:r("file-loader-local__label",{"file-loader-local__label-filled":y}),children:[l("span",{className:"file-loader-local__label-text",children:y||m}),v&&l("span",{className:"file-loader-local__error",children:v}),"string"==typeof _&&l("span",{className:"file-loader-local__error",children:_})]})}),y&&!(void 0!==x&&x)&&l(t,{className:"file-loader-local__trash-icon",onClick:function(){return h({id:f,groupId:d})}}),function(){if(!y)if(g)return l("div",{className:"file-loader-local--required",children:"Required"});else return l("div",{className:"file-loader-local--optional",children:"Optional"})}()]})]})}