intelicoreact 1.8.3 → 1.8.5

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 (264) hide show
  1. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.jsx +18 -0
  2. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.jsx +121 -0
  3. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.jsx +507 -0
  4. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.jsx +46 -0
  5. package/dist/Atomic/FormElements/NumericInput/NumericInput.jsx +337 -0
  6. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.jsx +66 -0
  7. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.jsx +78 -0
  8. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.jsx +54 -0
  9. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.jsx +183 -0
  10. package/dist/Atomic/FormElements/RangeList/RangeList.jsx +181 -0
  11. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.jsx +41 -0
  12. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.jsx +449 -0
  13. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.jsx +865 -0
  14. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.jsx +37 -0
  15. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.jsx +48 -0
  16. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.jsx +62 -0
  17. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.jsx +175 -0
  18. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.jsx +65 -0
  19. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.jsx +118 -0
  20. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.ts +2 -0
  21. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -1
  22. package/dist/Atomic/FormElements/Text/Text.jsx +126 -0
  23. package/dist/Atomic/FormElements/Textarea/Textarea.jsx +61 -0
  24. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.jsx +181 -0
  25. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.jsx +60 -0
  26. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.jsx +83 -0
  27. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.jsx +80 -0
  28. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.jsx +103 -0
  29. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.jsx +115 -0
  30. package/dist/Atomic/Layout/Header/Header.jsx +86 -0
  31. package/dist/Atomic/UI/AccordionTable/AccordionTable.jsx +250 -0
  32. package/dist/Atomic/UI/AccordionText/AccordionText.jsx +68 -0
  33. package/dist/Atomic/UI/Arrow/Arrow.jsx +134 -0
  34. package/dist/Atomic/UI/Box/Box.jsx +53 -0
  35. package/dist/Atomic/UI/Chart/Chart.jsx +178 -0
  36. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.jsx +78 -0
  37. package/dist/Atomic/UI/Chart/partial/optionsConstructor.jsx +334 -0
  38. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.jsx +111 -0
  39. package/dist/Atomic/UI/DateTime/DateTime.jsx +57 -0
  40. package/dist/Atomic/UI/DebugContainer/DebugContainer.jsx +44 -0
  41. package/dist/Atomic/UI/DebugContainer/useDebugContainer.jsx +15 -0
  42. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.jsx +223 -0
  43. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.jsx +75 -0
  44. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.jsx +86 -0
  45. package/dist/Atomic/UI/PieChart/PieChart.jsx +41 -0
  46. package/dist/Atomic/UI/Table/Partials/TdCell.jsx +87 -0
  47. package/dist/Atomic/UI/Table/Partials/TdHeader.jsx +36 -0
  48. package/dist/Atomic/UI/Table/Partials/TdRow.jsx +103 -0
  49. package/dist/Atomic/UI/Table/Partials/TdTitle.jsx +55 -0
  50. package/dist/Atomic/UI/Table/Table.jsx +63 -0
  51. package/dist/Atomic/UI/Table/TdTypes/TdActions.jsx +80 -0
  52. package/dist/Atomic/UI/Table/TdTypes/TdPriority.jsx +26 -0
  53. package/dist/Atomic/UI/Table/TdTypes/TdRange.jsx +13 -0
  54. package/dist/Atomic/UI/Table/TdTypes/TdWeight.jsx +56 -0
  55. package/dist/Atomic/UI/Tag/Tag.interface.ts +1 -0
  56. package/dist/Atomic/UI/Tag/Tag.js +1 -1
  57. package/dist/Atomic/UI/TagList/TagList.jsx +256 -0
  58. package/dist/Atomic/UI/WizardStepper/constructor.jsx +86 -0
  59. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.jsx +254 -0
  60. package/dist/Functions/customEventListener.jsx +96 -0
  61. package/dist/Functions/operations.jsx +138 -0
  62. package/dist/Functions/useFormTools/functions/RenderFields.jsx +108 -0
  63. package/dist/Functions/useFormTools/index.jsx +777 -0
  64. package/dist/Functions/usePasswordChecker.jsx +128 -0
  65. package/dist/Functions/utils.jsx +492 -0
  66. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.jsx +22 -0
  67. package/dist/Molecular/CustomIcons/components/AlertCircle.jsx +24 -0
  68. package/dist/Molecular/CustomIcons/components/AppStore.jsx +30 -0
  69. package/dist/Molecular/CustomIcons/components/Arrow.jsx +33 -0
  70. package/dist/Molecular/CustomIcons/components/ArrowDown.jsx +18 -0
  71. package/dist/Molecular/CustomIcons/components/ArrowLeft.jsx +23 -0
  72. package/dist/Molecular/CustomIcons/components/ArrowRight.jsx +23 -0
  73. package/dist/Molecular/CustomIcons/components/ArrowUp.jsx +18 -0
  74. package/dist/Molecular/CustomIcons/components/Bell.jsx +16 -0
  75. package/dist/Molecular/CustomIcons/components/Button.jsx +13 -0
  76. package/dist/Molecular/CustomIcons/components/Campaigns.jsx +17 -0
  77. package/dist/Molecular/CustomIcons/components/Check.jsx +15 -0
  78. package/dist/Molecular/CustomIcons/components/Check2.jsx +13 -0
  79. package/dist/Molecular/CustomIcons/components/ChevronDown.jsx +13 -0
  80. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.jsx +12 -0
  81. package/dist/Molecular/CustomIcons/components/ChevronLeft.jsx +12 -0
  82. package/dist/Molecular/CustomIcons/components/ChevronRight.jsx +12 -0
  83. package/dist/Molecular/CustomIcons/components/ChevronUp.jsx +12 -0
  84. package/dist/Molecular/CustomIcons/components/ChevronUpDown.jsx +28 -0
  85. package/dist/Molecular/CustomIcons/components/Close.jsx +15 -0
  86. package/dist/Molecular/CustomIcons/components/ColumnsOrder.jsx +18 -0
  87. package/dist/Molecular/CustomIcons/components/Delete.jsx +17 -0
  88. package/dist/Molecular/CustomIcons/components/Edit.jsx +16 -0
  89. package/dist/Molecular/CustomIcons/components/Email.jsx +32 -0
  90. package/dist/Molecular/CustomIcons/components/FinturfLogo.jsx +19 -0
  91. package/dist/Molecular/CustomIcons/components/FinturfLogo2.jsx +36 -0
  92. package/dist/Molecular/CustomIcons/components/Flows.jsx +16 -0
  93. package/dist/Molecular/CustomIcons/components/Gift.jsx +26 -0
  94. package/dist/Molecular/CustomIcons/components/GoogleAuth.jsx +30 -0
  95. package/dist/Molecular/CustomIcons/components/GooglePlay.jsx +30 -0
  96. package/dist/Molecular/CustomIcons/components/HelpCircle.jsx +20 -0
  97. package/dist/Molecular/CustomIcons/components/HelpCircle2.jsx +21 -0
  98. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.jsx +20 -0
  99. package/dist/Molecular/CustomIcons/components/Home.jsx +17 -0
  100. package/dist/Molecular/CustomIcons/components/Home2.jsx +23 -0
  101. package/dist/Molecular/CustomIcons/components/Key.jsx +24 -0
  102. package/dist/Molecular/CustomIcons/components/Landers.jsx +21 -0
  103. package/dist/Molecular/CustomIcons/components/Lock.jsx +16 -0
  104. package/dist/Molecular/CustomIcons/components/Mail.jsx +27 -0
  105. package/dist/Molecular/CustomIcons/components/Mastercard.jsx +74 -0
  106. package/dist/Molecular/CustomIcons/components/Minus.jsx +26 -0
  107. package/dist/Molecular/CustomIcons/components/Offers.jsx +17 -0
  108. package/dist/Molecular/CustomIcons/components/Pause.jsx +29 -0
  109. package/dist/Molecular/CustomIcons/components/PayPal.jsx +42 -0
  110. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.jsx +29 -0
  111. package/dist/Molecular/CustomIcons/components/Phone.jsx +31 -0
  112. package/dist/Molecular/CustomIcons/components/Play.jsx +26 -0
  113. package/dist/Molecular/CustomIcons/components/Plus.jsx +26 -0
  114. package/dist/Molecular/CustomIcons/components/Profile.jsx +17 -0
  115. package/dist/Molecular/CustomIcons/components/QRCode.jsx +30 -0
  116. package/dist/Molecular/CustomIcons/components/Rectangle.jsx +13 -0
  117. package/dist/Molecular/CustomIcons/components/Revert.jsx +14 -0
  118. package/dist/Molecular/CustomIcons/components/Star.jsx +15 -0
  119. package/dist/Molecular/CustomIcons/components/Star2.jsx +17 -0
  120. package/dist/Molecular/CustomIcons/components/TrafficSources.jsx +15 -0
  121. package/dist/Molecular/CustomIcons/components/Trash.jsx +16 -0
  122. package/dist/Molecular/CustomIcons/components/TrashRed.jsx +16 -0
  123. package/dist/Molecular/CustomIcons/components/Triggers.jsx +16 -0
  124. package/dist/Molecular/CustomIcons/components/User.jsx +26 -0
  125. package/dist/Molecular/CustomIcons/components/Visa.jsx +32 -0
  126. package/dist/Molecular/CustomIcons/components/X.jsx +13 -0
  127. package/dist/Molecular/FormElement/FormElement.jsx +52 -0
  128. package/dist/Molecular/FormWithDependOn/FormWithDependOn.jsx +161 -0
  129. package/dist/Molecular/InputAddress/InputAddress.jsx +641 -0
  130. package/dist/Molecular/InputPassword/InputPassword.jsx +50 -0
  131. package/package.json +13 -6
  132. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -1
  133. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +0 -1
  134. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -1
  135. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -1
  136. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +0 -1
  137. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +0 -1
  138. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +0 -1
  139. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +0 -1
  140. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -1
  141. package/dist/Atomic/FormElements/RangeList/RangeList.js +0 -1
  142. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +0 -1
  143. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +0 -1
  144. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +0 -1
  145. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +0 -1
  146. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +0 -1
  147. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +0 -1
  148. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.d.ts +0 -16
  149. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +0 -1
  150. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +0 -1
  151. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.d.ts +0 -9
  152. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +0 -1
  153. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.d.ts +0 -5
  154. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.d.ts +0 -79
  155. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.js +0 -1
  156. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.interface.js.map +0 -1
  157. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js.map +0 -1
  158. package/dist/Atomic/FormElements/Text/Text.js +0 -1
  159. package/dist/Atomic/FormElements/Textarea/Textarea.js +0 -1
  160. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -1
  161. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +0 -1
  162. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +0 -1
  163. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +0 -1
  164. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +0 -1
  165. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +0 -1
  166. package/dist/Atomic/Layout/Header/Header.js +0 -1
  167. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +0 -1
  168. package/dist/Atomic/UI/AccordionText/AccordionText.js +0 -1
  169. package/dist/Atomic/UI/Arrow/Arrow.js +0 -1
  170. package/dist/Atomic/UI/Box/Box.js +0 -1
  171. package/dist/Atomic/UI/Chart/Chart.js +0 -1
  172. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +0 -1
  173. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +0 -1
  174. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +0 -1
  175. package/dist/Atomic/UI/DateTime/DateTime.js +0 -1
  176. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +0 -1
  177. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +0 -1
  178. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +0 -1
  179. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +0 -1
  180. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +0 -1
  181. package/dist/Atomic/UI/PieChart/PieChart.js +0 -1
  182. package/dist/Atomic/UI/Table/Partials/TdCell.js +0 -1
  183. package/dist/Atomic/UI/Table/Partials/TdHeader.js +0 -1
  184. package/dist/Atomic/UI/Table/Partials/TdRow.js +0 -1
  185. package/dist/Atomic/UI/Table/Partials/TdTitle.js +0 -1
  186. package/dist/Atomic/UI/Table/Table.js +0 -1
  187. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +0 -1
  188. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +0 -1
  189. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +0 -1
  190. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +0 -1
  191. package/dist/Atomic/UI/TagList/TagList.js +0 -1
  192. package/dist/Atomic/UI/WizardStepper/constructor.js +0 -1
  193. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +0 -1
  194. package/dist/Functions/customEventListener.js +0 -1
  195. package/dist/Functions/operations.js +0 -1
  196. package/dist/Functions/useFormTools/functions/RenderFields.js +0 -1
  197. package/dist/Functions/useFormTools/index.js +0 -1
  198. package/dist/Functions/usePasswordChecker.js +0 -1
  199. package/dist/Functions/utils.js +0 -1
  200. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +0 -1
  201. package/dist/Molecular/CustomIcons/components/AlertCircle.js +0 -1
  202. package/dist/Molecular/CustomIcons/components/AppStore.js +0 -1
  203. package/dist/Molecular/CustomIcons/components/Arrow.js +0 -1
  204. package/dist/Molecular/CustomIcons/components/ArrowDown.js +0 -1
  205. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +0 -1
  206. package/dist/Molecular/CustomIcons/components/ArrowRight.js +0 -1
  207. package/dist/Molecular/CustomIcons/components/ArrowUp.js +0 -1
  208. package/dist/Molecular/CustomIcons/components/Bell.js +0 -1
  209. package/dist/Molecular/CustomIcons/components/Button.js +0 -1
  210. package/dist/Molecular/CustomIcons/components/Campaigns.js +0 -1
  211. package/dist/Molecular/CustomIcons/components/Check.js +0 -1
  212. package/dist/Molecular/CustomIcons/components/Check2.js +0 -1
  213. package/dist/Molecular/CustomIcons/components/ChevronDown.js +0 -1
  214. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +0 -1
  215. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +0 -1
  216. package/dist/Molecular/CustomIcons/components/ChevronRight.js +0 -1
  217. package/dist/Molecular/CustomIcons/components/ChevronUp.js +0 -1
  218. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +0 -1
  219. package/dist/Molecular/CustomIcons/components/Close.js +0 -1
  220. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +0 -1
  221. package/dist/Molecular/CustomIcons/components/Delete.js +0 -1
  222. package/dist/Molecular/CustomIcons/components/Edit.js +0 -1
  223. package/dist/Molecular/CustomIcons/components/Email.js +0 -1
  224. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +0 -1
  225. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +0 -1
  226. package/dist/Molecular/CustomIcons/components/Flows.js +0 -1
  227. package/dist/Molecular/CustomIcons/components/Gift.js +0 -1
  228. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +0 -1
  229. package/dist/Molecular/CustomIcons/components/GooglePlay.js +0 -1
  230. package/dist/Molecular/CustomIcons/components/HelpCircle.js +0 -1
  231. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +0 -1
  232. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +0 -1
  233. package/dist/Molecular/CustomIcons/components/Home.js +0 -1
  234. package/dist/Molecular/CustomIcons/components/Home2.js +0 -1
  235. package/dist/Molecular/CustomIcons/components/Key.js +0 -1
  236. package/dist/Molecular/CustomIcons/components/Landers.js +0 -1
  237. package/dist/Molecular/CustomIcons/components/Lock.js +0 -1
  238. package/dist/Molecular/CustomIcons/components/Mail.js +0 -1
  239. package/dist/Molecular/CustomIcons/components/Mastercard.js +0 -1
  240. package/dist/Molecular/CustomIcons/components/Minus.js +0 -1
  241. package/dist/Molecular/CustomIcons/components/Offers.js +0 -1
  242. package/dist/Molecular/CustomIcons/components/Pause.js +0 -1
  243. package/dist/Molecular/CustomIcons/components/PayPal.js +0 -1
  244. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +0 -1
  245. package/dist/Molecular/CustomIcons/components/Phone.js +0 -1
  246. package/dist/Molecular/CustomIcons/components/Play.js +0 -1
  247. package/dist/Molecular/CustomIcons/components/Plus.js +0 -1
  248. package/dist/Molecular/CustomIcons/components/Profile.js +0 -1
  249. package/dist/Molecular/CustomIcons/components/QRCode.js +0 -1
  250. package/dist/Molecular/CustomIcons/components/Rectangle.js +0 -1
  251. package/dist/Molecular/CustomIcons/components/Revert.js +0 -1
  252. package/dist/Molecular/CustomIcons/components/Star.js +0 -1
  253. package/dist/Molecular/CustomIcons/components/Star2.js +0 -1
  254. package/dist/Molecular/CustomIcons/components/TrafficSources.js +0 -1
  255. package/dist/Molecular/CustomIcons/components/Trash.js +0 -1
  256. package/dist/Molecular/CustomIcons/components/TrashRed.js +0 -1
  257. package/dist/Molecular/CustomIcons/components/Triggers.js +0 -1
  258. package/dist/Molecular/CustomIcons/components/User.js +0 -1
  259. package/dist/Molecular/CustomIcons/components/Visa.js +0 -1
  260. package/dist/Molecular/CustomIcons/components/X.js +0 -1
  261. package/dist/Molecular/FormElement/FormElement.js +0 -1
  262. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +0 -1
  263. package/dist/Molecular/InputAddress/InputAddress.js +0 -1
  264. package/dist/Molecular/InputPassword/InputPassword.js +0 -1
@@ -0,0 +1,57 @@
1
+ import cn from 'classnames';
2
+
3
+ import moment from 'moment-timezone';
4
+ import { useMemo } from 'react';
5
+
6
+ import './DateTime.scss';
7
+
8
+ const RC = 'date-time';
9
+
10
+ const DEFAULT_DATE_FORMAT = 'DD.MM.YYYY';
11
+ const DEFAULT_TIME_FORMAT = 'HH:mm:ss';
12
+
13
+ function DateTime({
14
+ className,
15
+ value,
16
+ valueFormat,
17
+ dateFormat: inputDateFormat,
18
+ timeFormat: inputTimeFormat,
19
+ isNoDate,
20
+ isNoTime,
21
+ testId = 'date-time',
22
+ }) {
23
+ const dateFormat = inputDateFormat || DEFAULT_DATE_FORMAT;
24
+ const timeFormat = inputTimeFormat || DEFAULT_TIME_FORMAT;
25
+
26
+ const date = useMemo(
27
+ () =>
28
+ (valueFormat ? moment(value, valueFormat) : moment(value)).format(
29
+ dateFormat,
30
+ ),
31
+ [value, valueFormat, dateFormat],
32
+ );
33
+ const time = useMemo(
34
+ () =>
35
+ (valueFormat ? moment(value, valueFormat) : moment(value)).format(
36
+ timeFormat,
37
+ ),
38
+ [value, valueFormat, timeFormat],
39
+ );
40
+
41
+ return (
42
+ <div data-testid={testId} className={cn(RC, className)}>
43
+ {!isNoDate && (
44
+ <span data-testid={`${testId}-date`} className={cn(`${RC}__date`)}>
45
+ {date}
46
+ </span>
47
+ )}
48
+ {!isNoTime && (
49
+ <span data-testid={`${testId}-time`} className={cn(`${RC}__time`, { [`${RC}_color--pause`]: !isNoDate })}>
50
+ {time}
51
+ </span>
52
+ )}
53
+ </div>
54
+ );
55
+ }
56
+
57
+ export default DateTime;
@@ -0,0 +1,44 @@
1
+ import { useState } from 'react';
2
+
3
+ import { ChevronDown, ChevronUp } from 'react-feather';
4
+
5
+ import './DebugContainer.scss';
6
+
7
+ function DebugContainer({ data, children }) {
8
+ const [isVisible, setIsVisible] = useState(true);
9
+ const renderData = () => {
10
+ return (
11
+ <pre>
12
+ {'{\n'}
13
+ {Object.keys(data)?.map((key) => {
14
+ return ` ${key}: ${data?.[key]},\n`;
15
+ })}
16
+ {'}'}
17
+ </pre>
18
+ );
19
+ };
20
+
21
+ return (
22
+ <div className="debug-container">
23
+ {isVisible && (
24
+ <div className="debug-container__body">
25
+ <h5>Debug:</h5>
26
+ {data && Boolean(Object?.keys(data)?.length) && (
27
+ <div className="debug-container__body-row">{renderData()}</div>
28
+ )}
29
+ {children && (
30
+ <div className="debug-container__body-row">{children}</div>
31
+ )}
32
+ </div>
33
+ )}
34
+ <div
35
+ className="debug-container__toggler"
36
+ onClick={() => setIsVisible(v => !v)}
37
+ >
38
+ {isVisible ? <ChevronUp /> : <ChevronDown />}
39
+ </div>
40
+ </div>
41
+ );
42
+ }
43
+
44
+ export default DebugContainer;
@@ -0,0 +1,15 @@
1
+ import { useState } from 'react';
2
+
3
+ import DebugContainer from './DebugContainer';
4
+
5
+ function useDebugContainer() {
6
+ const [data, setData] = useState({});
7
+
8
+ return {
9
+ debugData: data,
10
+ setDebugData: setData,
11
+ renderDebugContainer: <DebugContainer data={data} />,
12
+ };
13
+ }
14
+
15
+ export default useDebugContainer;
@@ -0,0 +1,223 @@
1
+ import cn from 'classnames';
2
+
3
+ import { useLayoutEffect, useMemo, useState } from 'react';
4
+
5
+ import { formatToPriceWithUSD } from '../../../Functions/fieldValueFormatters';
6
+ import { clone } from '../../../Functions/utils';
7
+ import InputDateRange from '../../FormElements/InputDateRange/InputDateRange';
8
+ import Chart from '../Chart/Chart';
9
+
10
+ import {
11
+ getLabels,
12
+ getMockValue,
13
+ getSafelyDateRange,
14
+ getTab,
15
+ } from './partial/utils';
16
+
17
+ import './partial/AnyOuterClass.scss';
18
+
19
+ function ExampleChartIntegration(props) {
20
+ const { inputDateRangeProps, chartProps } = props || {};
21
+ const { value: outerDateRange, onChange: changeDateRange }
22
+ = inputDateRangeProps || {};
23
+ const { initialChartType } = chartProps || {};
24
+ const dateRange = useMemo(
25
+ () => getSafelyDateRange(outerDateRange),
26
+ [outerDateRange],
27
+ );
28
+
29
+ const [chartType, setChartType] = useState(initialChartType || 'Bar');
30
+ const [tab, setTab] = useState('tab1');
31
+ const [initialModel, setInitialModel] = useState(
32
+ chartType === 'Bar' ? 'finturfLoadingModeBar' : 'finturfLoadingModeLine',
33
+ );
34
+
35
+ const [tab1, setTab1] = useState(null);
36
+ const [tab2, setTab2] = useState(null);
37
+ const [tab3, setTab3] = useState(null);
38
+ const [tab4, setTab4] = useState(null);
39
+
40
+ const [dataForRender, setDataForRender] = useState(null);
41
+
42
+ const getMockData = () => {
43
+ const labels = getLabels(dateRange);
44
+ const mock = () => labels.map(label => getMockValue());
45
+ return {
46
+ labels,
47
+ datasets: [
48
+ {
49
+ data: mock(),
50
+ },
51
+ ],
52
+ };
53
+ };
54
+
55
+ const getTabData = (tabId) => {
56
+ switch (tabId) {
57
+ case 'tab1':
58
+ return !tab1 ? null : clone(tab1);
59
+ case 'tab2':
60
+ return !tab2 ? null : clone(tab2);
61
+ case 'tab3':
62
+ return !tab3 ? null : clone(tab3);
63
+ case 'tab4':
64
+ return !tab4 ? null : clone(tab4);
65
+ default:
66
+ return null;
67
+ }
68
+ };
69
+
70
+ const getDescription = (tabId) => {
71
+ switch (tabId) {
72
+ case 'tab1':
73
+ return 'Tab 1';
74
+ case 'tab2':
75
+ return 'Tab 2';
76
+ case 'tab3':
77
+ return 'Tab 3';
78
+ case 'tab4':
79
+ return 'Tab 4';
80
+ default:
81
+ return null;
82
+ }
83
+ };
84
+
85
+ const selectData = () => (getTabData(tab) ? getTabData(tab) : getMockData());
86
+
87
+ const modelsForSwitch = useMemo(
88
+ () =>
89
+ getTabData(tab)
90
+ ? ['finturfChartBar', 'finturfChartLine']
91
+ : ['finturfLoadingModeBar', 'finturfLoadingModeLine'],
92
+ [Boolean(getTabData(tab))],
93
+ );
94
+
95
+ const handleChangeChartType = (model) => {
96
+ setChartType(model.includes('Line') ? 'Line' : 'Bar');
97
+ setInitialModel(model);
98
+ };
99
+
100
+ const getModel = () => {
101
+ if (!getTabData(tab)) {
102
+ return chartType === 'Bar'
103
+ ? 'finturfLoadingModeBar'
104
+ : 'finturfLoadingModeLine';
105
+ }
106
+ else {
107
+ return chartType === 'Bar' ? 'finturfChartBar' : 'finturfChartLine';
108
+ }
109
+ };
110
+
111
+ const processResponse = (res, tabId) => {
112
+ switch (tabId) {
113
+ case 'tab1':
114
+ setTab1(res);
115
+ break;
116
+ case 'tab2':
117
+ setTab2(res);
118
+ break;
119
+ case 'tab3':
120
+ setTab3(res);
121
+ break;
122
+ case 'tab4':
123
+ setTab4(res);
124
+ break;
125
+ default:
126
+ break;
127
+ }
128
+ return res;
129
+ };
130
+
131
+ useLayoutEffect(() => {
132
+ setTab1(null);
133
+ setTab2(null);
134
+ setTab3(null);
135
+ setTab4(null);
136
+
137
+ // эмуляция запросов
138
+ // вся логика происходит в самих входящих промисах
139
+ // Promise.all добавлен для расширения на случай надобности описания эффектов по завершении всех запросов
140
+ Promise.all([
141
+ getTab('tab1', dateRange, processResponse),
142
+ getTab('tab2', dateRange, processResponse),
143
+ getTab('tab3', dateRange, processResponse),
144
+ getTab('tab4', dateRange, processResponse),
145
+ ]);
146
+ }, [dateRange]);
147
+
148
+ useLayoutEffect(() => {
149
+ setInitialModel(getModel());
150
+ setDataForRender(selectData());
151
+ }, [Boolean(getTabData(tab)), tab, chartType]);
152
+
153
+ return (
154
+ <div className="example-wrapper">
155
+ <InputDateRange
156
+ {...inputDateRangeProps}
157
+ value={outerDateRange}
158
+ onChange={changeDateRange}
159
+ />
160
+
161
+ <div className="buttons-block">
162
+ <button
163
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab1' })}
164
+ onClick={() => setTab('tab1')}
165
+ >
166
+ Tab 1
167
+ </button>
168
+ <button
169
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab2' })}
170
+ onClick={() => setTab('tab2')}
171
+ >
172
+ Tab 2
173
+ </button>
174
+ <button
175
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab3' })}
176
+ onClick={() => setTab('tab3')}
177
+ >
178
+ Tab 3
179
+ </button>
180
+ <button
181
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab4' })}
182
+ onClick={() => setTab('tab4')}
183
+ >
184
+ Tab 4
185
+ </button>
186
+ </div>
187
+
188
+ <Chart
189
+ {...chartProps}
190
+ key={JSON.stringify(dataForRender)}
191
+ data={dataForRender}
192
+ setModelExternalValue={handleChangeChartType}
193
+ initialModel={initialModel}
194
+ modelsForSwitch={modelsForSwitch}
195
+ description={{ label: getDescription(tab) }}
196
+ addToDatasets={{ id: tab }}
197
+ modifyOptions={options => ({
198
+ ...options,
199
+ options: {
200
+ ...options?.options,
201
+ plugins: {
202
+ ...options?.options?.plugins,
203
+ tooltip: {
204
+ ...options?.options?.plugins?.tooltip,
205
+ callbacks: {
206
+ ...options?.options?.plugins?.tooltip?.callbacks,
207
+ label: (context) => {
208
+ return context.dataset.id === 'tab3'
209
+ || context.dataset.id === 'tab4'
210
+ ? formatToPriceWithUSD(context.raw || '0')
211
+ : context.raw || '0';
212
+ },
213
+ },
214
+ },
215
+ },
216
+ },
217
+ })}
218
+ />
219
+ </div>
220
+ );
221
+ }
222
+
223
+ export default ExampleChartIntegration;
@@ -0,0 +1,75 @@
1
+ import { fireEvent, render, screen } from '@testing-library/react';
2
+
3
+ import MonoAccordion from './MonoAccordion';
4
+
5
+ describe('monoAccordion', () => {
6
+ const defaultProps = {
7
+ titleJSX: <div>Accordion Title</div>,
8
+ icon: <span>▼</span>,
9
+ isOpen: false,
10
+ onClick: jest.fn(),
11
+ testId: 'test-accordion',
12
+ };
13
+
14
+ it('renders correctly with default props', () => {
15
+ render(
16
+ <MonoAccordion {...defaultProps}>
17
+ <div>Accordion Content</div>
18
+ </MonoAccordion>,
19
+ );
20
+
21
+ expect(screen.getByTestId('test-accordion')).toBeInTheDocument();
22
+ expect(screen.getByText('Accordion Title')).toBeInTheDocument();
23
+ });
24
+
25
+ it('handles click events correctly', () => {
26
+ render(
27
+ <MonoAccordion {...defaultProps}>
28
+ <div>Accordion Content</div>
29
+ </MonoAccordion>,
30
+ );
31
+
32
+ fireEvent.click(screen.getByRole('button'));
33
+ expect(defaultProps.onClick).toHaveBeenCalled();
34
+ });
35
+
36
+ it('applies correct classes when open', () => {
37
+ render(
38
+ <MonoAccordion {...defaultProps} isOpen={true}>
39
+ <div>Accordion Content</div>
40
+ </MonoAccordion>,
41
+ );
42
+
43
+ expect(screen.getByTestId('test-accordion')).toHaveClass('mono-accordion--is-open');
44
+ });
45
+
46
+ it('applies disabled state correctly', () => {
47
+ render(
48
+ <MonoAccordion {...defaultProps} disabled={true}>
49
+ <div>Accordion Content</div>
50
+ </MonoAccordion>,
51
+ );
52
+
53
+ const button = screen.getByRole('button');
54
+ expect(button).toBeDisabled();
55
+ expect(screen.getByTestId('test-accordion')).toHaveClass('mono-accordion--disabled');
56
+ });
57
+
58
+ it('handles aria attributes correctly', () => {
59
+ const { rerender } = render(
60
+ <MonoAccordion {...defaultProps}>
61
+ <div>Accordion Content</div>
62
+ </MonoAccordion>,
63
+ );
64
+
65
+ expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'false');
66
+
67
+ rerender(
68
+ <MonoAccordion {...defaultProps} isOpen={true}>
69
+ <div>Accordion Content</div>
70
+ </MonoAccordion>,
71
+ );
72
+
73
+ expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'true');
74
+ });
75
+ });
@@ -0,0 +1,86 @@
1
+ import cn from 'classnames';
2
+
3
+ import { useEffect, useRef, useState } from 'react';
4
+
5
+ import './MonoAccordion.scss';
6
+
7
+ const RC = 'mono-accordion';
8
+
9
+ function MonoAccordion({
10
+ titleJSX,
11
+ icon,
12
+ children,
13
+ isOpen,
14
+ onClick,
15
+ className,
16
+ disabled,
17
+ testId = 'mono-accordion',
18
+ datasetProp = {},
19
+ }) {
20
+ const [maxHeight, setMaxHeight] = useState();
21
+ const titleRef = useRef();
22
+ const containerRef = useRef();
23
+
24
+ const setHeight = (value) => {
25
+ if (value !== undefined) {
26
+ setMaxHeight(state => `${value}px`);
27
+ }
28
+ else {
29
+ setMaxHeight(
30
+ state =>
31
+ `${Array.from(containerRef.current?.childNodes)?.reduce?.((acc, el) => acc + el.offsetHeight, 0)}px`,
32
+ );
33
+ }
34
+ };
35
+
36
+ const handleClick = (e) => {
37
+ if (
38
+ !Array.from(titleRef.current.childNodes).some(el =>
39
+ el.contains(e.target),
40
+ )
41
+ ) {
42
+ onClick(e);
43
+ e?.preventDefault();
44
+ e?.stopPropagation();
45
+ }
46
+ else {
47
+ return e;
48
+ }
49
+ };
50
+
51
+ useEffect(() => {
52
+ if (!isOpen) setHeight(0);
53
+ else setHeight();
54
+ }, [isOpen, children]);
55
+
56
+ return (
57
+ <div
58
+ {...datasetProp}
59
+ data-testid={testId}
60
+ className={cn(RC, className, {
61
+ [`${RC}_is-open`]: isOpen,
62
+ [`${RC}_disabled`]: disabled,
63
+ })}
64
+ >
65
+ <div
66
+ className={`${RC}__head`}
67
+ onClick={handleClick}
68
+ >
69
+ <div ref={titleRef} className={`${RC}__tile-container`}>
70
+ {titleJSX}
71
+ </div>
72
+ <span className={`${RC}__icon-container`}>{icon}</span>
73
+ </div>
74
+
75
+ <div
76
+ ref={containerRef}
77
+ style={{ maxHeight }}
78
+ className={cn(`${RC}__container`)}
79
+ >
80
+ <div className={`${RC}__content-wrapper`}>{children}</div>
81
+ </div>
82
+ </div>
83
+ );
84
+ }
85
+
86
+ export default MonoAccordion;
@@ -0,0 +1,41 @@
1
+ import { ArcElement, Chart as ChartJS, Tooltip } from 'chart.js';
2
+ import { Pie } from 'react-chartjs-2';
3
+
4
+ import './PieChart.scss';
5
+
6
+ ChartJS.register(ArcElement, Tooltip);
7
+
8
+ function PieChart({
9
+ data,
10
+ cutout = '80%',
11
+ resultLabel,
12
+ resultValue = 0,
13
+ withLegend = false,
14
+ }) {
15
+ const options = {
16
+ cutout,
17
+ plugins: {
18
+ legend: {
19
+ display: withLegend,
20
+ },
21
+ },
22
+ };
23
+
24
+ return (
25
+ <div className="pie-chart-box" style={{ maxWidth: `320px` }}>
26
+ <Pie data={data} options={options} />
27
+ {Boolean(resultLabel) && (
28
+ <div className="pie-chart__result">
29
+ <div className="pie-chart__result-value">
30
+ {resultValue}
31
+ <span className="pie-chart__result-percent">%</span>
32
+ {' '}
33
+ </div>
34
+ <div className="pie-chart__result-label">{resultLabel}</div>
35
+ </div>
36
+ )}
37
+ </div>
38
+ );
39
+ }
40
+
41
+ export default PieChart;
@@ -0,0 +1,87 @@
1
+ import { useState } from 'react';
2
+
3
+ import AccordionItem from '../../Accordion/AccordionItem';
4
+ import AdvancedTags from '../../AdvancedTag/AdvancedTags';
5
+ import Status from '../../Status/Status';
6
+ import Tag from '../../Tag/Tag';
7
+ import Table from '../Table';
8
+ import { TdActions } from '../TdTypes/TdActions';
9
+ import TdPriority from '../TdTypes/TdPriority';
10
+ import TdWeight from '../TdTypes/TdWeight';
11
+
12
+ import '../Table.scss';
13
+
14
+ function TdCell({
15
+ type,
16
+ item,
17
+ rowIndex,
18
+ onChange,
19
+ cardLength,
20
+ changePriority,
21
+ getAdviceWeight,
22
+ onActionClick,
23
+ rowItem,
24
+ isDeleted,
25
+ }) {
26
+ const [isAccordionOpen, setIsAccordionOpen] = useState(item.isOpen);
27
+
28
+ const percent
29
+ = item.type === 'weight' && getAdviceWeight(isDeleted ? 0 : item.value);
30
+
31
+ switch (type) {
32
+ case 'accordion':
33
+ return (
34
+ <AccordionItem
35
+ className={item.itemClassName}
36
+ item={item}
37
+ isOpen={isAccordionOpen}
38
+ onClick={e => setIsAccordionOpen(e)}
39
+ >
40
+ <Table rows={item.rows} className="accordion--table" />
41
+ </AccordionItem>
42
+ );
43
+ case 'actions':
44
+ return (
45
+ <TdActions
46
+ rowItem={rowItem}
47
+ actions={item}
48
+ onChange={onChange}
49
+ onActionClick={onActionClick}
50
+ />
51
+ );
52
+ case 'advancedTags':
53
+ return <AdvancedTags items={item} />;
54
+ case 'link':
55
+ return <a href={item.link}>{item.label}</a>;
56
+ case 'priority':
57
+ return (
58
+ <TdPriority
59
+ rowIndex={rowIndex}
60
+ cardLength={cardLength}
61
+ onClick={changePriority}
62
+ />
63
+ );
64
+ case 'status':
65
+ return (
66
+ <Status
67
+ className={item.className}
68
+ label={item.label}
69
+ status={item.status}
70
+ />
71
+ );
72
+ case 'tags':
73
+ return item.map((tag, index) => <Tag key={index} label={tag.label} />);
74
+ case 'weight':
75
+ return (
76
+ <TdWeight
77
+ value={item.value}
78
+ percent={percent}
79
+ onChange={value => onChange({ ...item, value })}
80
+ />
81
+ );
82
+ default:
83
+ return <span className={item.className}>{item.value}</span>;
84
+ }
85
+ }
86
+
87
+ export default TdCell;
@@ -0,0 +1,36 @@
1
+ import cn from 'classnames';
2
+
3
+ import Langs from '../../../../Langs';
4
+
5
+ import '../Table.scss';
6
+
7
+ function TdHeader({ item, testId = 'td-header' }) {
8
+ const txt = Langs[globalThis.lng];
9
+
10
+ switch (item.type) {
11
+ case 'double':
12
+ return (
13
+ <th data-testid={testId}>
14
+ <div className="j46">
15
+ <div className="">{txt.labels[item.left] || item.left}</div>
16
+ <div className="">{txt.labels[item.right] || item.right}</div>
17
+ </div>
18
+ </th>
19
+ );
20
+ default:
21
+ return (
22
+ <th data-testid={testId} className={cn(item.className)}>
23
+ <div className={cn({ df: item.button })}>
24
+ <div className="mr5">{txt.labels[item.label] || item.label}</div>
25
+ {item.button && (
26
+ <div className="cards-table__btn">
27
+ {txt.buttons[item.button] || item.button}
28
+ </div>
29
+ )}
30
+ </div>
31
+ </th>
32
+ );
33
+ }
34
+ }
35
+
36
+ export default TdHeader;