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
@@ -1 +1 @@
1
- {"version":3,"file":"ActionAlert.js","names":[],"sources":["../../../../../src/Atomic/FormElements/ActionAlert/ActionAlert.tsx"],"sourcesContent":["import type { IActionAlertProps } from './ActionAlert.interface';\n\nimport cn from 'classnames';\nimport React from 'react';\n\nimport Button from '../../UI/Button/Button';\n\nimport './ActionAlert.scss';\n\nconst ActionAlert: React.FC<IActionAlertProps> = ({\n message,\n className,\n buttonsClassName,\n date,\n noButtons,\n children,\n variant = 'default',\n testId = 'alert',\n buttons,\n}) => {\n return (\n <div role=\"alert\" data-testid={testId} className={cn(`action-alert action-alert--${variant}`, className)}>\n <div className=\"action-alert__message-box\">\n {date && <div className=\"action-alert__time\">{date}</div>}\n <div className=\"action-alert__message\">{message || children}</div>\n </div>\n\n <div className={buttonsClassName}>\n {typeof buttons !== 'undefined'\n && buttons?.length > 0\n && !noButtons\n && buttons.map((item) => {\n const { buttonColor, buttonLabel, ...buttonProps } = item;\n return (\n <Button\n style={{\n backgroundColor: buttonColor,\n borderColor: buttonColor,\n }}\n className=\"ml5\"\n label={buttonLabel}\n {...buttonProps}\n onClick={item.onClick}\n key={item.key}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default ActionAlert;\n"],"mappings":";;;;;;AASA,IAAM,eAA4C,EAChD,SACA,WACA,kBACA,MACA,WACA,UACA,UAAU,WACV,SAAS,SACT,cACI;CACJ,OACE,qBAAC,OAAD;EAAK,MAAK;EAAQ,eAAa;EAAQ,WAAW,GAAG,8BAA8B,WAAW,SAAS;YAAvG,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,QAAQ,oBAAC,OAAD;IAAK,WAAU;cAAsB;GAAU,CAAA,GACxD,oBAAC,OAAD;IAAK,WAAU;cAAyB,WAAW;GAAc,CAAA,CAC9D;MAEL,oBAAC,OAAD;GAAK,WAAW;aACb,OAAO,YAAY,eACf,SAAS,SAAS,KAClB,CAAC,aACD,QAAQ,KAAK,SAAS;IACvB,MAAM,EAAE,aAAa,aAAa,GAAG,gBAAgB;IACrD,OACE,8BAAC,QAAD;KACE,OAAO;MACL,iBAAiB;MACjB,aAAa;KACf;KACA,WAAU;KACV,OAAO;KACP,GAAI;KACJ,SAAS,KAAK;KACd,KAAK,KAAK;IACX,CAAA;GAEL,CAAC;EACA,CAAA,CACF;;AAET"}
1
+ {"version":3,"file":"ActionAlert.js","names":[],"sources":["../../../../../src/Atomic/FormElements/ActionAlert/ActionAlert.tsx"],"sourcesContent":["import type { IActionAlertProps } from './ActionAlert.interface';\n\nimport cn from 'classnames';\nimport React from 'react';\n\nimport Button from '../../UI/Button/Button';\n\nimport './ActionAlert.scss';\n\nconst ActionAlert: React.FC<IActionAlertProps> = ({\n message,\n className,\n buttonsClassName,\n date,\n noButtons,\n children,\n variant = 'default',\n testId = 'alert',\n buttons,\n}) => {\n return (\n <div role=\"alert\" data-testid={testId} className={cn(`action-alert action-alert--${variant}`, className)}>\n <div className=\"action-alert__message-box\">\n {date && <div className=\"action-alert__time\">{date}</div>}\n <div className=\"action-alert__message\">{message || children}</div>\n </div>\n\n <div className={buttonsClassName}>\n {typeof buttons !== 'undefined'\n && buttons?.length > 0\n && !noButtons\n && buttons.map((item) => {\n const { buttonColor, buttonLabel, ...buttonProps } = item;\n return (\n <Button\n style={{\n backgroundColor: buttonColor,\n borderColor: buttonColor,\n }}\n className=\"ml5\"\n label={buttonLabel}\n {...buttonProps}\n onClick={item.onClick}\n key={item.key}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default ActionAlert;\n"],"mappings":";;;;;;AASA,IAAM,eAA4C,EAChD,SACA,WACA,kBACA,MACA,WACA,UACA,UAAU,WACV,SAAS,SACT,cACI;CACJ,OACE,qBAAC,OAAD;EAAK,MAAK;EAAQ,eAAa;EAAQ,WAAW,GAAG,8BAA8B,WAAW,SAAS;EAAvG,UAAA,CACE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACG,QAAQ,oBAAC,OAAD;IAAK,WAAU;IAAsB,UAAA;GAAU,CAAA,GACxD,oBAAC,OAAD;IAAK,WAAU;IAAyB,UAAA,WAAW;GAAc,CAAA,CAC9D;EAEL,CAAA,GAAA,oBAAC,OAAD;GAAK,WAAW;GACb,UAAA,OAAO,YAAY,eACf,SAAS,SAAS,KAClB,CAAC,aACD,QAAQ,KAAK,SAAS;IACvB,MAAM,EAAE,aAAa,aAAa,GAAG,gBAAgB;IACrD,OACE,8BAAC,QAAD;KACE,OAAO;MACL,iBAAiB;MACjB,aAAa;KACf;KACA,WAAU;KACV,OAAO;KACP,GAAI;KACJ,SAAS,KAAK;KACd,KAAK,KAAK;IACX,CAAA;GAEL,CAAC;EACA,CAAA,CACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedStatus.js","names":[],"sources":["../../../../../src/Atomic/FormElements/AdvancedStatus/AdvancedStatus.tsx"],"sourcesContent":["import type { IAdvancedStatusProps } from './AdvancedStatus.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\nimport Status from '../../UI/Status/Status';\n\nimport TextSwitcher from '../TextSwitcher/TextSwitcher';\n\nimport './AdvancedStatus.scss';\n\nconst RC = 'advanced-status';\n\nconst AdvancedStatus: React.FC<IAdvancedStatusProps> = ({\n onChange,\n inactiveText,\n activeText,\n value,\n disabled = false,\n isPrimary = false,\n primaryStatusText,\n className,\n testId = RC,\n ...props\n}) => {\n const isUndefined = value === undefined || value === null;\n\n return (\n <div\n {...props}\n data-testid={testId}\n className={cn(\n RC,\n {\n 'advanced-status_undefined': isUndefined,\n 'advanced-status_disabled': disabled,\n },\n className,\n )}\n >\n <TextSwitcher\n onChange={onChange}\n isActive={value || false}\n inactiveText={inactiveText}\n activeText={activeText}\n className=\"advanced-status__switcher\"\n />\n {isPrimary && (\n <Status className=\"advanced-status__status\" status=\"warning\">\n {primaryStatusText}\n </Status>\n )}\n </div>\n );\n};\n\nexport default AdvancedStatus;\n"],"mappings":";;;;;;;AAUA,IAAM,KAAK;AAEX,IAAM,kBAAkD,EACtD,UACA,cACA,YACA,OACA,WAAW,OACX,YAAY,OACZ,mBACA,WACA,SAAS,IACT,GAAG,YACC;CACJ,MAAM,cAAc,UAAU,KAAA,KAAa,UAAU;CAErD,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,eAAa;EACb,WAAW,GACT,IACA;GACE,6BAA6B;GAC7B,4BAA4B;EAC9B,GACA,SACF;YAVF,CAYE,oBAAC,cAAD;GACY;GACV,UAAU,SAAS;GACL;GACF;GACZ,WAAU;EACX,CAAA,GACA,aACC,oBAAC,QAAD;GAAQ,WAAU;GAA0B,QAAO;aAChD;EACK,CAAA,CAEP;;AAET"}
1
+ {"version":3,"file":"AdvancedStatus.js","names":[],"sources":["../../../../../src/Atomic/FormElements/AdvancedStatus/AdvancedStatus.tsx"],"sourcesContent":["import type { IAdvancedStatusProps } from './AdvancedStatus.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\nimport Status from '../../UI/Status/Status';\n\nimport TextSwitcher from '../TextSwitcher/TextSwitcher';\n\nimport './AdvancedStatus.scss';\n\nconst RC = 'advanced-status';\n\nconst AdvancedStatus: React.FC<IAdvancedStatusProps> = ({\n onChange,\n inactiveText,\n activeText,\n value,\n disabled = false,\n isPrimary = false,\n primaryStatusText,\n className,\n testId = RC,\n ...props\n}) => {\n const isUndefined = value === undefined || value === null;\n\n return (\n <div\n {...props}\n data-testid={testId}\n className={cn(\n RC,\n {\n 'advanced-status_undefined': isUndefined,\n 'advanced-status_disabled': disabled,\n },\n className,\n )}\n >\n <TextSwitcher\n onChange={onChange}\n isActive={value || false}\n inactiveText={inactiveText}\n activeText={activeText}\n className=\"advanced-status__switcher\"\n />\n {isPrimary && (\n <Status className=\"advanced-status__status\" status=\"warning\">\n {primaryStatusText}\n </Status>\n )}\n </div>\n );\n};\n\nexport default AdvancedStatus;\n"],"mappings":";;;;;;;AAUA,IAAM,KAAK;AAEX,IAAM,kBAAkD,EACtD,UACA,cACA,YACA,OACA,WAAW,OACX,YAAY,OACZ,mBACA,WACA,SAAS,IACT,GAAG,YACC;CACJ,MAAM,cAAc,UAAU,KAAA,KAAa,UAAU;CAErD,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,eAAa;EACb,WAAW,GACT,IACA;GACE,6BAA6B;GAC7B,4BAA4B;EAC9B,GACA,SACF;EAVF,UAAA,CAYE,oBAAC,cAAD;GACY;GACV,UAAU,SAAS;GACL;GACF;GACZ,WAAU;EACX,CAAA,GACA,aACC,oBAAC,QAAD;GAAQ,WAAU;GAA0B,QAAO;GAChD,UAAA;EACK,CAAA,CAEP;;AAET"}
@@ -43,8 +43,9 @@ var Calendar = ({ date = dateDefault, setDate, setIsOpened, className, isListTop
43
43
  if (!day) return /* @__PURE__ */ jsx("div", { className: "calendar__day" });
44
44
  const isFutureDay = day && !isDontLimitFuture && maxDate ? moment(day.date).isAfter(momentMaxDate || moment().add(1, "days"), "day") : moment(day.date).isAfter(moment(), "day");
45
45
  const isBeforeDay = day && moment(day.date).isBefore(momentMinDate || "", "day");
46
+ const classNames = cn("calendar__day", { "calendar__day--clickable": day }, { "calendar__day--disabled": !isDontLimitFuture && isFutureDay }, { "calendar__day--disabled": isBeforeDay }, { "calendar__day--selected": moment(date).format() === moment(day.date).format() });
46
47
  return /* @__PURE__ */ jsx("div", {
47
- className: cn("calendar__day", { "calendar__day--clickable": day }, { "calendar__day--disabled": !isDontLimitFuture && isFutureDay }, { "calendar__day--disabled": isBeforeDay }, { "calendar__day--selected": moment(date).format() === moment(day.date).format() }),
48
+ className: classNames,
48
49
  onClick: day && (isDontLimitFuture || !isFutureDay) ? () => {
49
50
  setDate(moment(day.date).format("L"));
50
51
  setIsOpened(false);
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","names":[],"sources":["../../../../../src/Atomic/FormElements/Calendar/Calendar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { CalendarProps, Days } from './Calendar.props';\nimport cn from 'classnames';\nimport moment from 'moment';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { ChevronLeft, ChevronRight } from 'react-feather';\n\nimport InputMask from 'react-input-mask';\n\nimport './Calendar.scss';\n\nconst CN = 'calendar';\n\nconst paramsDefault = {} as CalendarProps['params'];\nconst dateDefault = moment().format('L');\n\nconst Calendar: React.FC<CalendarProps> = ({\n date = dateDefault,\n setDate,\n setIsOpened,\n className,\n isListTop,\n allowPrev = true,\n allowNext = true,\n params = paramsDefault,\n testId = CN,\n}) => {\n if (!setDate || !setIsOpened) {\n throw new Error('Required props setDate and setIsOpened must be provided to Calendar component');\n }\n\n const { minDate, maxDate, momentMinDate, momentMaxDate, isDontLimitFuture } = params ?? {};\n\n const [days, setDays] = useState<Days>({});\n const [showDate, setShowDate] = useState<string>(date);\n const [isChangeYear, setIsChangeYear] = useState<boolean>(false);\n const [inputYearValue, setInputYearValue] = useState<string>(moment(showDate, 'L', true).format('YYYY'));\n\n const yearInputRef = useRef<HTMLDivElement>(null);\n const selectedDay = moment(showDate, 'L', true);\n const isError = 'Invalid date';\n\n const showMonth = useMemo(() => moment(showDate, 'L', true).format('MMM'), [showDate]);\n\n const showYear = useMemo(() => moment(showDate, 'L', true).format('YYYY'), [showDate]);\n\n const isShovPrevArrow\n = allowPrev && !(minDate && moment(showDate, 'L', true).startOf('month').isSameOrBefore(momentMinDate, 'months'));\n\n const isShovNextArrow\n = allowNext\n && (isDontLimitFuture\n || !moment(showDate, 'L', true)\n .startOf('month')\n .isSameOrAfter(maxDate ? momentMaxDate : moment().add(1, 'day').startOf('day'), 'months'));\n\n useEffect(() => {\n const result: Days = {};\n const day = selectedDay.startOf('month');\n const daysInMonth = day.daysInMonth();\n\n for (let d = 0; d < daysInMonth; d += 1) {\n let week = day.week();\n if (day.month() === 11 && week === 1) week = 53;\n if (day.month() === 0 && week === 53) week = 0;\n\n if (!Object.prototype.hasOwnProperty.call(result, week)) {\n result[week] = {};\n }\n\n result[week][day.weekday()] = { date: day.toDate() };\n day.add(1, 'd');\n }\n\n setDays(result);\n }, [showDate]);\n\n const renderDay = (week: number, dayOfWeek: number): ReactNode => {\n const day = days[week]?.[dayOfWeek];\n if (!day) return <div className=\"calendar__day\" />;\n\n const isFutureDay\n = day && !isDontLimitFuture && maxDate\n ? moment(day.date).isAfter(momentMaxDate || moment().add(1, 'days'), 'day')\n : moment(day.date).isAfter(moment(), 'day');\n\n const isBeforeDay = day && moment(day.date).isBefore(momentMinDate || '', 'day');\n\n const classNames = cn(\n 'calendar__day',\n { 'calendar__day--clickable': day },\n { 'calendar__day--disabled': !isDontLimitFuture && isFutureDay },\n { 'calendar__day--disabled': isBeforeDay },\n {\n 'calendar__day--selected': moment(date).format() === moment(day.date).format(),\n },\n );\n\n return (\n <div\n key={`${week}_${dayOfWeek}`}\n className={classNames}\n onClick={\n day && (isDontLimitFuture || !isFutureDay)\n ? () => {\n setDate(moment(day.date).format('L'));\n setIsOpened(false);\n }\n : undefined\n }\n >\n {day && day.date.getDate()}\n </div>\n );\n };\n\n const handlePrev = (): void => {\n setShowDate(moment(showDate, 'L', true).subtract(1, 'month').format('L'));\n };\n\n const handleNext = (): void => {\n setShowDate(moment(showDate, 'L', true).add(1, 'month').format('L'));\n };\n\n const closeYearInput = (): void => {\n const newDate = (() => {\n const dateArr = showDate.split('/');\n dateArr[2] = inputYearValue;\n return moment(dateArr.join('/'), 'L', true).format('MM/DD/YYYY') === isError\n ? showDate\n : moment(dateArr.join('/'), 'L', true).format('MM/DD/YYYY');\n })();\n\n let resultDate = newDate;\n if (minDate && moment(minDate) > moment(newDate, 'MM/DD/YYYY', true)) resultDate = moment(showDate, 'L', true).format('MM/DD/YYYY');\n else if (maxDate && moment(maxDate) < moment(newDate, 'MM/DD/YYYY', true)) resultDate = moment(showDate, 'L', true).format('MM/DD/YYYY');\n\n setIsChangeYear(false);\n setShowDate(resultDate);\n setInputYearValue(resultDate);\n };\n\n useEffect(() => {\n let timeoutId: NodeJS.Timeout;\n if (isChangeYear && yearInputRef.current) {\n const input = yearInputRef.current.querySelector('input');\n if (input) {\n setInputYearValue(showYear);\n timeoutId = setTimeout(() => {\n input.focus();\n input.select();\n }, 0);\n }\n }\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [isChangeYear, showYear]);\n\n return (\n <div\n data-testid={testId}\n className={cn(CN, className, {\n 'calendar_list-top': isListTop,\n })}\n >\n <div className=\"calendar-header\">\n <div className=\"calendar-header__prev\" data-testid={`${testId}-prev-arrow`}>\n {isShovPrevArrow && (\n <div onClick={handlePrev}>\n <ChevronLeft />\n </div>\n )}\n </div>\n <div className={cn('calendar-header__title')} ref={yearInputRef}>\n <span className=\"calendar-header__title-month\">{`${showMonth} `}</span>\n <span\n className={cn('calendar-header__title-year', {\n 'calendar-header__title-year_change-mode': isChangeYear,\n })}\n onClick={() => setIsChangeYear(true)}\n >\n {isChangeYear\n ? (\n <InputMask\n className=\"calendar-header__title-year-change-input\"\n value={inputYearValue}\n mask=\"9999\"\n onBlur={closeYearInput}\n onKeyUp={(e: React.KeyboardEvent) => {\n if (e.key === 'Escape') setIsChangeYear(false);\n if (e.key === 'Enter') closeYearInput();\n }}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => setInputYearValue(e.target.value)}\n />\n )\n : (\n showYear\n )}\n </span>\n </div>\n <div data-testid={`${testId}-next-arrow`} className=\"calendar-header__next\">\n {isShovNextArrow && (\n <div onClick={handleNext}>\n <ChevronRight />\n </div>\n )}\n </div>\n </div>\n <div className=\"calendar__week\">\n {[...Array.from({ length: 7 }).keys()].map(dayOfWeek => (\n <div key={`day-of-week_${dayOfWeek}`} className=\"calendar__day calendar__day--title\">\n {moment().weekday(dayOfWeek).format('dd')}\n </div>\n ))}\n </div>\n {Object.keys(days).map((week, index) => (\n <div key={`week_${index}`} className=\"calendar__week\">\n {[...Array.from({ length: 7 }).keys()].map(dayOfWeek => (\n <React.Fragment key={`calendar-day--${dayOfWeek}`}>\n {renderDay(Number(week), dayOfWeek)}\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Calendar;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.js","names":[],"sources":["../../../../../src/Atomic/FormElements/Calendar/Calendar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { CalendarProps, Days } from './Calendar.props';\nimport cn from 'classnames';\nimport moment from 'moment';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { ChevronLeft, ChevronRight } from 'react-feather';\n\nimport InputMask from 'react-input-mask';\n\nimport './Calendar.scss';\n\nconst CN = 'calendar';\n\nconst paramsDefault = {} as CalendarProps['params'];\nconst dateDefault = moment().format('L');\n\nconst Calendar: React.FC<CalendarProps> = ({\n date = dateDefault,\n setDate,\n setIsOpened,\n className,\n isListTop,\n allowPrev = true,\n allowNext = true,\n params = paramsDefault,\n testId = CN,\n}) => {\n if (!setDate || !setIsOpened) {\n throw new Error('Required props setDate and setIsOpened must be provided to Calendar component');\n }\n\n const { minDate, maxDate, momentMinDate, momentMaxDate, isDontLimitFuture } = params ?? {};\n\n const [days, setDays] = useState<Days>({});\n const [showDate, setShowDate] = useState<string>(date);\n const [isChangeYear, setIsChangeYear] = useState<boolean>(false);\n const [inputYearValue, setInputYearValue] = useState<string>(moment(showDate, 'L', true).format('YYYY'));\n\n const yearInputRef = useRef<HTMLDivElement>(null);\n const selectedDay = moment(showDate, 'L', true);\n const isError = 'Invalid date';\n\n const showMonth = useMemo(() => moment(showDate, 'L', true).format('MMM'), [showDate]);\n\n const showYear = useMemo(() => moment(showDate, 'L', true).format('YYYY'), [showDate]);\n\n const isShovPrevArrow\n = allowPrev && !(minDate && moment(showDate, 'L', true).startOf('month').isSameOrBefore(momentMinDate, 'months'));\n\n const isShovNextArrow\n = allowNext\n && (isDontLimitFuture\n || !moment(showDate, 'L', true)\n .startOf('month')\n .isSameOrAfter(maxDate ? momentMaxDate : moment().add(1, 'day').startOf('day'), 'months'));\n\n useEffect(() => {\n const result: Days = {};\n const day = selectedDay.startOf('month');\n const daysInMonth = day.daysInMonth();\n\n for (let d = 0; d < daysInMonth; d += 1) {\n let week = day.week();\n if (day.month() === 11 && week === 1) week = 53;\n if (day.month() === 0 && week === 53) week = 0;\n\n if (!Object.prototype.hasOwnProperty.call(result, week)) {\n result[week] = {};\n }\n\n result[week][day.weekday()] = { date: day.toDate() };\n day.add(1, 'd');\n }\n\n setDays(result);\n }, [showDate]);\n\n const renderDay = (week: number, dayOfWeek: number): ReactNode => {\n const day = days[week]?.[dayOfWeek];\n if (!day) return <div className=\"calendar__day\" />;\n\n const isFutureDay\n = day && !isDontLimitFuture && maxDate\n ? moment(day.date).isAfter(momentMaxDate || moment().add(1, 'days'), 'day')\n : moment(day.date).isAfter(moment(), 'day');\n\n const isBeforeDay = day && moment(day.date).isBefore(momentMinDate || '', 'day');\n\n const classNames = cn(\n 'calendar__day',\n { 'calendar__day--clickable': day },\n { 'calendar__day--disabled': !isDontLimitFuture && isFutureDay },\n { 'calendar__day--disabled': isBeforeDay },\n {\n 'calendar__day--selected': moment(date).format() === moment(day.date).format(),\n },\n );\n\n return (\n <div\n key={`${week}_${dayOfWeek}`}\n className={classNames}\n onClick={\n day && (isDontLimitFuture || !isFutureDay)\n ? () => {\n setDate(moment(day.date).format('L'));\n setIsOpened(false);\n }\n : undefined\n }\n >\n {day && day.date.getDate()}\n </div>\n );\n };\n\n const handlePrev = (): void => {\n setShowDate(moment(showDate, 'L', true).subtract(1, 'month').format('L'));\n };\n\n const handleNext = (): void => {\n setShowDate(moment(showDate, 'L', true).add(1, 'month').format('L'));\n };\n\n const closeYearInput = (): void => {\n const newDate = (() => {\n const dateArr = showDate.split('/');\n dateArr[2] = inputYearValue;\n return moment(dateArr.join('/'), 'L', true).format('MM/DD/YYYY') === isError\n ? showDate\n : moment(dateArr.join('/'), 'L', true).format('MM/DD/YYYY');\n })();\n\n let resultDate = newDate;\n if (minDate && moment(minDate) > moment(newDate, 'MM/DD/YYYY', true)) resultDate = moment(showDate, 'L', true).format('MM/DD/YYYY');\n else if (maxDate && moment(maxDate) < moment(newDate, 'MM/DD/YYYY', true)) resultDate = moment(showDate, 'L', true).format('MM/DD/YYYY');\n\n setIsChangeYear(false);\n setShowDate(resultDate);\n setInputYearValue(resultDate);\n };\n\n useEffect(() => {\n let timeoutId: NodeJS.Timeout;\n if (isChangeYear && yearInputRef.current) {\n const input = yearInputRef.current.querySelector('input');\n if (input) {\n setInputYearValue(showYear);\n timeoutId = setTimeout(() => {\n input.focus();\n input.select();\n }, 0);\n }\n }\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [isChangeYear, showYear]);\n\n return (\n <div\n data-testid={testId}\n className={cn(CN, className, {\n 'calendar_list-top': isListTop,\n })}\n >\n <div className=\"calendar-header\">\n <div className=\"calendar-header__prev\" data-testid={`${testId}-prev-arrow`}>\n {isShovPrevArrow && (\n <div onClick={handlePrev}>\n <ChevronLeft />\n </div>\n )}\n </div>\n <div className={cn('calendar-header__title')} ref={yearInputRef}>\n <span className=\"calendar-header__title-month\">{`${showMonth} `}</span>\n <span\n className={cn('calendar-header__title-year', {\n 'calendar-header__title-year_change-mode': isChangeYear,\n })}\n onClick={() => setIsChangeYear(true)}\n >\n {isChangeYear\n ? (\n <InputMask\n className=\"calendar-header__title-year-change-input\"\n value={inputYearValue}\n mask=\"9999\"\n onBlur={closeYearInput}\n onKeyUp={(e: React.KeyboardEvent) => {\n if (e.key === 'Escape') setIsChangeYear(false);\n if (e.key === 'Enter') closeYearInput();\n }}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => setInputYearValue(e.target.value)}\n />\n )\n : (\n showYear\n )}\n </span>\n </div>\n <div data-testid={`${testId}-next-arrow`} className=\"calendar-header__next\">\n {isShovNextArrow && (\n <div onClick={handleNext}>\n <ChevronRight />\n </div>\n )}\n </div>\n </div>\n <div className=\"calendar__week\">\n {[...Array.from({ length: 7 }).keys()].map(dayOfWeek => (\n <div key={`day-of-week_${dayOfWeek}`} className=\"calendar__day calendar__day--title\">\n {moment().weekday(dayOfWeek).format('dd')}\n </div>\n ))}\n </div>\n {Object.keys(days).map((week, index) => (\n <div key={`week_${index}`} className=\"calendar__week\">\n {[...Array.from({ length: 7 }).keys()].map(dayOfWeek => (\n <React.Fragment key={`calendar-day--${dayOfWeek}`}>\n {renderDay(Number(week), dayOfWeek)}\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Calendar;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.js","names":[],"sources":["../../../../../src/Atomic/FormElements/CheckboxInput/CheckboxInput.tsx"],"sourcesContent":["import type { ICheckboxInputProps } from './CheckboxInput.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport './CheckboxInput.scss';\n\nconst RC = 'checkbox-input';\n\nconst attrsOfNativeInputDefault = {}\nconst CheckboxInput: React.FC<ICheckboxInputProps> = ({\n label,\n id,\n value,\n onChange,\n disabled,\n className,\n isStark,\n testId = RC,\n attributesOfNativeInput = attrsOfNativeInputDefault,\n ...props\n}) => {\n return (\n <label\n data-testid={testId}\n className={cn(RC, className, {\n [`checkbox-input_disabled`]: disabled,\n })}\n htmlFor={id?.toString()}\n >\n <div\n className={cn(`checkbox-input__input`, {\n [`checkbox-input__input_checked`]: value,\n [`checkbox-input__input_indeterminate`]: isStark,\n })}\n >\n <input\n {...(id ? { 'id': id.toString(), 'data-id': id } : {})}\n type=\"checkbox\"\n className=\"checkbox-input__checkbox\"\n onChange={e => onChange?.(!value, e)}\n checked={value ?? false}\n disabled={disabled}\n ref={(elem) => {\n if (elem) elem.indeterminate = !!isStark;\n }}\n data-testid={`${testId}-input`}\n {...attributesOfNativeInput}\n {...props}\n />\n <span className=\"checkbox-input__mark\" />\n </div>\n {label && <div className=\"checkbox-input__label\">{label}</div>}\n </label>\n );\n};\n\nexport default CheckboxInput;\n"],"mappings":";;;;;AAOA,IAAM,KAAK;AAEX,IAAM,4BAA4B,CAAC;AACnC,IAAM,iBAAgD,EACpD,OACA,IACA,OACA,UACA,UACA,WACA,SACA,SAAS,IACT,0BAA0B,2BAC1B,GAAG,YACC;CACJ,OACE,qBAAC,SAAD;EACE,eAAa;EACb,WAAW,GAAG,IAAI,WAAW,GAC1B,4BAA4B,SAC/B,CAAC;EACD,SAAS,IAAI,SAAS;YALxB,CAOE,qBAAC,OAAD;GACE,WAAW,GAAG,yBAAyB;KACpC,kCAAkC;KAClC,wCAAwC;GAC3C,CAAC;aAJH,CAME,oBAAC,SAAD;IACE,GAAK,KAAK;KAAE,MAAM,GAAG,SAAS;KAAG,WAAW;IAAG,IAAI,CAAC;IACpD,MAAK;IACL,WAAU;IACV,WAAU,MAAK,WAAW,CAAC,OAAO,CAAC;IACnC,SAAS,SAAS;IACR;IACV,MAAM,SAAS;KACb,IAAI,MAAM,KAAK,gBAAgB,CAAC,CAAC;IACnC;IACA,eAAa,GAAG,OAAO;IACvB,GAAI;IACJ,GAAI;GACL,CAAA,GACD,oBAAC,QAAD,EAAM,WAAU,uBAAwB,CAAA,CACrC;MACJ,SAAS,oBAAC,OAAD;GAAK,WAAU;aAAyB;EAAW,CAAA,CACxD;;AAEX"}
1
+ {"version":3,"file":"CheckboxInput.js","names":[],"sources":["../../../../../src/Atomic/FormElements/CheckboxInput/CheckboxInput.tsx"],"sourcesContent":["import type { ICheckboxInputProps } from './CheckboxInput.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport './CheckboxInput.scss';\n\nconst RC = 'checkbox-input';\n\nconst attrsOfNativeInputDefault = {}\nconst CheckboxInput: React.FC<ICheckboxInputProps> = ({\n label,\n id,\n value,\n onChange,\n disabled,\n className,\n isStark,\n testId = RC,\n attributesOfNativeInput = attrsOfNativeInputDefault,\n ...props\n}) => {\n return (\n <label\n data-testid={testId}\n className={cn(RC, className, {\n [`checkbox-input_disabled`]: disabled,\n })}\n htmlFor={id?.toString()}\n >\n <div\n className={cn(`checkbox-input__input`, {\n [`checkbox-input__input_checked`]: value,\n [`checkbox-input__input_indeterminate`]: isStark,\n })}\n >\n <input\n {...(id ? { 'id': id.toString(), 'data-id': id } : {})}\n type=\"checkbox\"\n className=\"checkbox-input__checkbox\"\n onChange={e => onChange?.(!value, e)}\n checked={value ?? false}\n disabled={disabled}\n ref={(elem) => {\n if (elem) elem.indeterminate = !!isStark;\n }}\n data-testid={`${testId}-input`}\n {...attributesOfNativeInput}\n {...props}\n />\n <span className=\"checkbox-input__mark\" />\n </div>\n {label && <div className=\"checkbox-input__label\">{label}</div>}\n </label>\n );\n};\n\nexport default CheckboxInput;\n"],"mappings":";;;;;AAOA,IAAM,KAAK;AAEX,IAAM,4BAA4B,CAAC;AACnC,IAAM,iBAAgD,EACpD,OACA,IACA,OACA,UACA,UACA,WACA,SACA,SAAS,IACT,0BAA0B,2BAC1B,GAAG,YACC;CACJ,OACE,qBAAC,SAAD;EACE,eAAa;EACb,WAAW,GAAG,IAAI,WAAW,GAC1B,4BAA4B,SAC/B,CAAC;EACD,SAAS,IAAI,SAAS;EALxB,UAAA,CAOE,qBAAC,OAAD;GACE,WAAW,GAAG,yBAAyB;KACpC,kCAAkC;KAClC,wCAAwC;GAC3C,CAAC;GAJH,UAAA,CAME,oBAAC,SAAD;IACE,GAAK,KAAK;KAAE,MAAM,GAAG,SAAS;KAAG,WAAW;IAAG,IAAI,CAAC;IACpD,MAAK;IACL,WAAU;IACV,WAAU,MAAK,WAAW,CAAC,OAAO,CAAC;IACnC,SAAS,SAAS;IACR;IACV,MAAM,SAAS;KACb,IAAI,MAAM,KAAK,gBAAgB,CAAC,CAAC;IACnC;IACA,eAAa,GAAG,OAAO;IACvB,GAAI;IACJ,GAAI;GACL,CAAA,GACD,oBAAC,QAAD,EAAM,WAAU,uBAAwB,CAAA,CACrC;EACJ,CAAA,GAAA,SAAS,oBAAC,OAAD;GAAK,WAAU;GAAyB,UAAA;EAAW,CAAA,CACxD;;AAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxesLine.js","names":[],"sources":["../../../../../src/Atomic/FormElements/CheckboxesLine/CheckboxesLine.tsx"],"sourcesContent":["import type { ICheckboxLineProps } from './CheckboxesLine.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport Checkbox from '../CheckboxInput/CheckboxInput';\n\nimport './CheckboxesLine.scss';\n\nconst RC = 'checkboxes-line';\n\nconst CheckboxesLine: React.FC<ICheckboxLineProps> = (props) => {\n const { field, onChange } = props;\n const { items, value, disabled, isPositionColumn, className, testId = RC } = field ?? (props || {});\n\n const handleChange = (val: boolean, id: string | number): void => {\n onChange(val ? [...(value || []), id] : [...(value?.filter(el => el !== id) || [])]);\n };\n\n return (\n <div data-testid={RC} className={cn(RC, { [`${RC}_column`]: isPositionColumn }, className)}>\n {items?.map(item => (\n <Checkbox\n testId={item?.testId || testId}\n id={item.id}\n className={`${RC}__checkbox-input`}\n key={item.label}\n label={item.label || ''}\n value={value?.includes?.(item.id) || false}\n onChange={val => handleChange(val, item.id)}\n disabled={disabled || item.disabled}\n />\n )) || null}\n </div>\n );\n};\n\nexport default CheckboxesLine;\n"],"mappings":";;;;;;AASA,IAAM,KAAK;AAEX,IAAM,kBAAgD,UAAU;CAC9D,MAAM,EAAE,OAAO,aAAa;CAC5B,MAAM,EAAE,OAAO,OAAO,UAAU,kBAAkB,WAAW,SAAS,OAAO,UAAU,SAAS,CAAC;CAEjG,MAAM,gBAAgB,KAAc,OAA8B;EAChE,SAAS,MAAM,CAAC,GAAI,SAAS,CAAC,GAAI,EAAE,IAAI,CAAC,GAAI,OAAO,QAAO,OAAM,OAAO,EAAE,KAAK,CAAC,CAAE,CAAC;CACrF;CAEA,OACE,oBAAC,OAAD;EAAK,eAAa;EAAI,WAAW,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,iBAAiB,GAAG,SAAS;YACtF,OAAO,KAAI,SACV,oBAAC,eAAD;GACE,QAAQ,MAAM,UAAU;GACxB,IAAI,KAAK;GACT,WAAW,GAAG,GAAG;GAEjB,OAAO,KAAK,SAAS;GACrB,OAAO,OAAO,WAAW,KAAK,EAAE,KAAK;GACrC,WAAU,QAAO,aAAa,KAAK,KAAK,EAAE;GAC1C,UAAU,YAAY,KAAK;EAC5B,GALM,KAAK,KAKX,CACF,KAAK;CACH,CAAA;AAET"}
1
+ {"version":3,"file":"CheckboxesLine.js","names":[],"sources":["../../../../../src/Atomic/FormElements/CheckboxesLine/CheckboxesLine.tsx"],"sourcesContent":["import type { ICheckboxLineProps } from './CheckboxesLine.interface';\nimport cn from 'classnames';\n\nimport React from 'react';\n\nimport Checkbox from '../CheckboxInput/CheckboxInput';\n\nimport './CheckboxesLine.scss';\n\nconst RC = 'checkboxes-line';\n\nconst CheckboxesLine: React.FC<ICheckboxLineProps> = (props) => {\n const { field, onChange } = props;\n const { items, value, disabled, isPositionColumn, className, testId = RC } = field ?? (props || {});\n\n const handleChange = (val: boolean, id: string | number): void => {\n onChange(val ? [...(value || []), id] : [...(value?.filter(el => el !== id) || [])]);\n };\n\n return (\n <div data-testid={RC} className={cn(RC, { [`${RC}_column`]: isPositionColumn }, className)}>\n {items?.map(item => (\n <Checkbox\n testId={item?.testId || testId}\n id={item.id}\n className={`${RC}__checkbox-input`}\n key={item.label}\n label={item.label || ''}\n value={value?.includes?.(item.id) || false}\n onChange={val => handleChange(val, item.id)}\n disabled={disabled || item.disabled}\n />\n )) || null}\n </div>\n );\n};\n\nexport default CheckboxesLine;\n"],"mappings":";;;;;;AASA,IAAM,KAAK;AAEX,IAAM,kBAAgD,UAAU;CAC9D,MAAM,EAAE,OAAO,aAAa;CAC5B,MAAM,EAAE,OAAO,OAAO,UAAU,kBAAkB,WAAW,SAAS,OAAO,UAAU,SAAS,CAAC;CAEjG,MAAM,gBAAgB,KAAc,OAA8B;EAChE,SAAS,MAAM,CAAC,GAAI,SAAS,CAAC,GAAI,EAAE,IAAI,CAAC,GAAI,OAAO,QAAO,OAAM,OAAO,EAAE,KAAK,CAAC,CAAE,CAAC;CACrF;CAEA,OACE,oBAAC,OAAD;EAAK,eAAa;EAAI,WAAW,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,iBAAiB,GAAG,SAAS;EACtF,UAAA,OAAO,KAAI,SACV,oBAAC,eAAD;GACE,QAAQ,MAAM,UAAU;GACxB,IAAI,KAAK;GACT,WAAW,GAAG,GAAG;GAEjB,OAAO,KAAK,SAAS;GACrB,OAAO,OAAO,WAAW,KAAK,EAAE,KAAK;GACrC,WAAU,QAAO,aAAa,KAAK,KAAK,EAAE;GAC1C,UAAU,YAAY,KAAK;EAC5B,GALM,KAAK,KAKX,CACF,KAAK;CACH,CAAA;AAET"}
@@ -124,10 +124,11 @@ var Datepicker = ({ isCompareHidden, limitRange, onChange, values, onChangeCompa
124
124
  return;
125
125
  }
126
126
  if (timerId) clearTimeout(timerId);
127
- if (startDate && endDate && moment(startDate).add(1, "d").isSame(endDate, "day") && endHour === 0) if (moment(date).isAfter(moment(startDate), "day")) setHoverStatus("end");
128
- else if (moment(date).isBefore(moment(startDate), "day")) setHoverStatus("start");
129
- else setHoverStatus(null);
130
- else setHoverStatus("start");
127
+ if (startDate && endDate && moment(startDate).add(1, "d").isSame(endDate, "day") && endHour === 0) {
128
+ if (moment(date).isAfter(moment(startDate), "day")) setHoverStatus("end");
129
+ else if (moment(date).isBefore(moment(startDate), "day")) setHoverStatus("start");
130
+ else setHoverStatus(null);
131
+ } else setHoverStatus("start");
131
132
  };
132
133
  const handleChangeStartHour = (value) => {
133
134
  const val = Number(value);
@@ -1 +1 @@
1
- {"version":3,"file":"Datepicker.js","names":[],"sources":["../../../../../src/Atomic/FormElements/Datepicker/Datepicker.tsx"],"sourcesContent":["import type { KeyboardEvent } from 'react';\nimport type { DatepickerProps, DateRange } from './Datepicker.props';\n\nimport cn from 'classnames';\nimport moment from 'moment';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport Langs from '../../../Langs';\nimport Button from '../../UI/Button/Button';\nimport Dropdown from '../Dropdown/Dropdown';\nimport Input from '../Input/Input';\nimport Switcher from '../Switcher/Switcher';\nimport DatepickerCalendar from './components/DatepickerCalendar';\n\nimport './Datepicker.scss';\n\nfunction padTime(time: number): string {\n return `${time.toString().padStart(2, '0')}:00`;\n}\n\nconst Datepicker: React.FC<DatepickerProps> = ({\n isCompareHidden,\n limitRange,\n onChange,\n values,\n onChangeCompare,\n onCancel,\n getSelectedMode,\n onChangeInterval,\n}) => {\n const { start = null, end = null, compare = false } = values as DateRange;\n // @ts-ignore\n const txt = Langs[globalThis.lng as keyof typeof Langs];\n\n const startDateInputRef = useRef<HTMLInputElement>(null);\n const endDateInputRef = useRef<HTMLInputElement>(null);\n\n const [startDate, setStartDate] = useState<Date | null>(start);\n const [endDate, setEndDate] = useState<Date | null>(end);\n const [startDateInput, setStartDateInput] = useState<string | Date | null>(start);\n const [endDateInput, setEndDateInput] = useState<string | Date | null>(end);\n const [startHour, setStartHour] = useState<number>(start ? moment(start).hour() : 0);\n const [endHour, setEndHour] = useState<number>(end ? moment(end).hour() : 0);\n const [isCompare, setIsCompare] = useState<boolean>(compare);\n const [date1, setDate1] = useState<Date>(\n start ? moment(start).toDate() : moment().subtract(1, 'month').toDate(),\n );\n const [date2, setDate2] = useState<Date>(\n end ? moment(end).toDate() : moment().toDate(),\n );\n const [isStartFocused, setIsStartFocused] = useState(false);\n const [isEndFocused, setIsEndFocused] = useState(false);\n const [hoverStatus, setHoverStatus] = useState<'start' | 'end' | null>(null);\n\n const dateInterval = getSelectedMode?.({ start: startDate, end: endDate });\n\n const isNearby = useMemo(\n () => moment(date2).subtract(1, 'month').isSame(moment(date1), 'month'),\n [date1, date2],\n );\n\n const isPreviousPeriodShowed = useMemo(\n () => isCompare && !isCompareHidden && startDate && endDate,\n [startDate, endDate, isCompare],\n );\n\n const prevEndHour = useRef<number>(endHour);\n\n const getStartHourItems = (): { label: string; value: number; disabled: boolean }[] =>\n Array.from({ length: 24 }, (_, hour) => ({\n label: padTime(hour),\n value: hour,\n disabled: !!(\n startDate\n && endDate\n && moment(startDate).isSame(endDate, 'day')\n && endHour <= hour\n ),\n }));\n\n const getEndHourItems = (): { label: string; value: number; disabled: boolean }[] =>\n Array.from({ length: 24 }, (_, hour) => ({\n label: padTime(hour + 1),\n value: hour === 23 ? 0 : hour + 1,\n disabled: !!(\n startDate\n && endDate\n && (moment(startDate).isSame(endDate, 'day')\n || (moment(startDate).isSame(moment(endDate).subtract(1, 'days'), 'day')\n && endHour === 0))\n && hour < startHour\n ),\n }));\n\n const startPrevDate = useMemo(() => {\n if (isPreviousPeriodShowed && startDate && endDate) {\n const intervalHours = moment(endDate).diff(startDate, 'hours');\n return moment(startDate).subtract(intervalHours, 'hours').toDate();\n }\n return null;\n }, [startDate, endDate, isCompare]);\n\n const endPrevDate = useMemo(() => {\n return isPreviousPeriodShowed && startDate ? startDate : null;\n }, [startDate, isCompare]);\n\n const title = useMemo(() => {\n if (isCompare && !isCompareHidden && startPrevDate && endPrevDate) {\n return `${moment(startPrevDate).format('ll')} (${moment(startPrevDate).format('HH:mm')}) - ${moment(\n endPrevDate,\n ).format('ll')} (${moment(endPrevDate).format('HH:mm')})`;\n }\n return '';\n }, [startPrevDate, endPrevDate, isCompare]);\n\n const subtractDay = (date: Date): moment.Moment => (endHour === 0 ? moment(date).subtract(1, 'days') : moment(date));\n const addDay = (date: Date): moment.Moment => (endHour === 0 ? moment(date).add(1, 'days') : moment(date));\n\n useEffect(() => {\n if (startDate && endDate && moment(startDate).isSameOrAfter(endDate)) {\n const newStart = moment(endDate).subtract(1, 'd').toDate();\n setStartDate(newStart);\n setDate1(newStart);\n }\n }, [startDate]);\n\n useEffect(() => {\n if (startDate && endDate && moment(endDate).isSameOrBefore(startDate)) {\n const newEnd = moment(startDate).add(1, 'd').toDate();\n setEndDate(newEnd);\n setDate2(newEnd);\n }\n }, [endDate]);\n\n useEffect(() => {\n setStartDateInput(startDate);\n setEndDateInput(endDate);\n if (startDate && endDate && moment(startDate).isBefore(moment(endDate), 'month')) {\n setDate1(startDate);\n setDate2(endDate);\n }\n }, [startDate, endDate]);\n\n useEffect(() => {\n if (moment(date1).isSameOrAfter(moment(date2), 'month')) {\n setDate1(moment(date2).subtract(1, 'month').toDate());\n }\n }, [date1, date2]);\n\n useEffect(() => {\n if (dateInterval) onChangeInterval?.(dateInterval);\n }, [dateInterval]);\n\n const handleClick = (date: Date): void => {\n prevEndHour.current = 0;\n if (\n !startDate\n || (startDate\n && endDate\n && !(\n moment(startDate).add(1, 'd').isSame(endDate, 'day')\n && endHour === 0\n ))\n ) {\n setStartDate(moment(date).startOf('day').toDate());\n setEndDate(moment(date).add(1, 'd').startOf('day').toDate());\n setStartHour(0);\n setEndHour(0);\n }\n else if (moment(date).isBefore(moment(startDate), 'day')) {\n setEndDate(moment(startDate).add(1, 'd').startOf('day').toDate());\n setStartDate(moment(date).set('hour', startHour).toDate());\n }\n else if (moment(date).isAfter(moment(startDate), 'day')) {\n setEndDate(moment(date).add(1, 'd').startOf('day').toDate());\n }\n setHoverStatus(null);\n };\n\n let timerId: ReturnType<typeof setTimeout>;\n\n const handleHover = (date: Date | null): void => {\n if (!date) {\n timerId = setTimeout(() => setHoverStatus(null), 400);\n return;\n }\n if (timerId) clearTimeout(timerId);\n if (startDate && endDate && moment(startDate).add(1, 'd').isSame(endDate, 'day') && endHour === 0) {\n if (moment(date).isAfter(moment(startDate), 'day')) setHoverStatus('end');\n else if (moment(date).isBefore(moment(startDate), 'day')) setHoverStatus('start');\n else setHoverStatus(null);\n }\n else {\n setHoverStatus('start');\n }\n };\n\n const handleChangeStartHour = (value: string | number): void => {\n const val = Number(value);\n setStartHour(val);\n if (startDate) setStartDate(moment(startDate).set('hour', val).toDate());\n };\n\n const handleChangeEndHour = (value: string | number): void => {\n const newHour = Number(value);\n setEndHour(newHour);\n if (!endDate) return;\n\n let newEndDate: Date | moment.Moment;\n if (prevEndHour.current === 0 && newHour !== 0) {\n newEndDate = moment(endDate).subtract(1, 'days');\n }\n else if (prevEndHour.current !== 0 && newHour === 0) {\n newEndDate = moment(endDate).add(1, 'days');\n }\n else {\n newEndDate = moment(endDate);\n }\n prevEndHour.current = newHour;\n setEndDate(moment(newEndDate).set('hour', newHour).toDate());\n };\n\n const handleStartDateFocus = (): void => {\n setIsStartFocused(true);\n if (startDate) setStartDateInput(moment(startDate).format('L'));\n };\n\n const handleEndDateFocus = (): void => {\n setIsEndFocused(true);\n if (endDate) setEndDateInput(moment(subtractDay(endDate)).format('L'));\n };\n\n const handleStartDateBlur = (): void => {\n if (typeof startDateInput === 'string' && moment(startDateInput).isValid()) {\n const newDate = moment(startDateInput).set('hour', startHour).toDate();\n setStartDate(newDate);\n setDate1(\n moment(newDate).isSameOrAfter(moment(date2), 'month')\n ? moment(date2).subtract(1, 'month').toDate()\n : newDate,\n );\n }\n else {\n setStartDateInput(startDate);\n }\n setIsStartFocused(false);\n startDateInputRef.current?.blur();\n };\n\n const handleEndDateBlur = (): void => {\n if (typeof endDateInput === 'string' && moment(endDateInput).isValid()) {\n const newDate = moment(endDateInput).set('hour', endHour).toDate();\n const finalDate = addDay(newDate).toDate();\n setEndDate(finalDate);\n setDate2(finalDate);\n }\n else {\n setEndDateInput(endDate);\n }\n setIsEndFocused(false);\n endDateInputRef.current?.blur();\n };\n\n const handleKeyPressed = (e: KeyboardEvent<HTMLInputElement>, callback: () => void): void => {\n if (e.key === 'Enter') callback();\n };\n\n const renderButtons = (): React.ReactNode => (\n <>\n <Button className=\"plr15 mr5\" onClick={onCancel}>\n {txt.buttons.cancel}\n </Button>\n <Button\n className=\"plr20\"\n // variant=\"filled\"\n disabled={!startDate || !endDate}\n onClick={() => {\n if (!startDate || !endDate) return;\n onChange?.({\n start: startDate,\n end: endDate,\n startPrevDate,\n endPrevDate,\n compare: isCompare,\n });\n }}\n >\n {txt.buttons.apply}\n </Button>\n </>\n );\n\n const renderPreviousPeriod = (): React.ReactNode => (\n <>\n {/* @ts-ignore */}\n {txt.labels.previousPeriod}\n :\n {' '}\n <span className=\"date-picker__previous-period-interval\">{title}</span>\n </>\n );\n\n return (\n <div className=\"date-picker\">\n <div className=\"date-picker__header\">\n <Input\n testId=\"datepicker_start-date-input\"\n className={cn('mr5', {\n 'date-picker-text-input--active': hoverStatus === 'start',\n })}\n value={\n isStartFocused ? String(startDateInput) : moment(startDate).format('ll')\n }\n disabled={!startDate}\n onChange={value => setStartDateInput(value)}\n onFocus={handleStartDateFocus}\n onBlur={handleStartDateBlur}\n onKeyDown={(_keyCode: string | number, e: KeyboardEvent<HTMLInputElement>) => handleKeyPressed(e, handleStartDateBlur)}\n ref={startDateInputRef}\n />\n <Dropdown\n testId=\"datepicker_start-hour-select-input\"\n onChange={handleChangeStartHour}\n value={startHour}\n options={getStartHourItems()}\n disabled={!startDate}\n />\n <div className=\"pl5 pr5 date-picker__header--gray\">—</div>\n <Input\n testId=\"datepicker_end-date-input\"\n className={cn('mr5', {\n 'date-picker-text-input--active': hoverStatus === 'end',\n })}\n value={\n isEndFocused\n ? String(endDateInput)\n : endDate\n ? moment(subtractDay(endDate)).format('ll')\n : ''\n }\n disabled={!endDate}\n onChange={(value: string) => setEndDateInput(value)}\n onFocus={handleEndDateFocus}\n onBlur={handleEndDateBlur}\n onKeyDown={(_keyCode, e: KeyboardEvent<HTMLInputElement>) => handleKeyPressed(e, handleEndDateBlur)}\n ref={endDateInputRef}\n />\n <Dropdown\n testId=\"datepicker_end-hour-select-input\"\n onChange={handleChangeEndHour}\n value={endHour}\n options={getEndHourItems()}\n disabled={!endDate}\n />\n </div>\n <div className=\"date-picker__previous-period\">\n {isCompare\n && !isCompareHidden\n && startDate\n && endDate\n && renderPreviousPeriod()}\n </div>\n <div className=\"date-picker__calendars\">\n <DatepickerCalendar\n date={date1}\n setDate={setDate1}\n allowNext={!isNearby}\n startDate={startDate}\n endDate={endDate}\n startPrevDate={startPrevDate}\n endPrevDate={endPrevDate}\n onClick={handleClick}\n onHover={handleHover}\n limitRange={limitRange}\n />\n <DatepickerCalendar\n date={date2}\n setDate={setDate2}\n allowPrev={!isNearby}\n startDate={startDate}\n endDate={endDate}\n startPrevDate={startPrevDate}\n endPrevDate={endPrevDate}\n onClick={handleClick}\n onHover={handleHover}\n />\n </div>\n <div className=\"date-picker__footer j46\">\n {!isCompareHidden && (\n <div className=\"j4\">\n <div className=\"mr5\">\n <Switcher\n testId=\"datepicker_compare\"\n // @ts-ignore\n label={txt.labels.compare}\n isActive={isCompare}\n onChange={() => {\n onChangeCompare?.(!isCompare);\n setIsCompare(state => !state);\n }}\n />\n </div>\n </div>\n )}\n <div>{renderButtons()}</div>\n </div>\n </div>\n );\n};\n\nexport default Datepicker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Datepicker.js","names":[],"sources":["../../../../../src/Atomic/FormElements/Datepicker/Datepicker.tsx"],"sourcesContent":["import type { KeyboardEvent } from 'react';\nimport type { DatepickerProps, DateRange } from './Datepicker.props';\n\nimport cn from 'classnames';\nimport moment from 'moment';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport Langs from '../../../Langs';\nimport Button from '../../UI/Button/Button';\nimport Dropdown from '../Dropdown/Dropdown';\nimport Input from '../Input/Input';\nimport Switcher from '../Switcher/Switcher';\nimport DatepickerCalendar from './components/DatepickerCalendar';\n\nimport './Datepicker.scss';\n\nfunction padTime(time: number): string {\n return `${time.toString().padStart(2, '0')}:00`;\n}\n\nconst Datepicker: React.FC<DatepickerProps> = ({\n isCompareHidden,\n limitRange,\n onChange,\n values,\n onChangeCompare,\n onCancel,\n getSelectedMode,\n onChangeInterval,\n}) => {\n const { start = null, end = null, compare = false } = values as DateRange;\n // @ts-ignore\n const txt = Langs[globalThis.lng as keyof typeof Langs];\n\n const startDateInputRef = useRef<HTMLInputElement>(null);\n const endDateInputRef = useRef<HTMLInputElement>(null);\n\n const [startDate, setStartDate] = useState<Date | null>(start);\n const [endDate, setEndDate] = useState<Date | null>(end);\n const [startDateInput, setStartDateInput] = useState<string | Date | null>(start);\n const [endDateInput, setEndDateInput] = useState<string | Date | null>(end);\n const [startHour, setStartHour] = useState<number>(start ? moment(start).hour() : 0);\n const [endHour, setEndHour] = useState<number>(end ? moment(end).hour() : 0);\n const [isCompare, setIsCompare] = useState<boolean>(compare);\n const [date1, setDate1] = useState<Date>(\n start ? moment(start).toDate() : moment().subtract(1, 'month').toDate(),\n );\n const [date2, setDate2] = useState<Date>(\n end ? moment(end).toDate() : moment().toDate(),\n );\n const [isStartFocused, setIsStartFocused] = useState(false);\n const [isEndFocused, setIsEndFocused] = useState(false);\n const [hoverStatus, setHoverStatus] = useState<'start' | 'end' | null>(null);\n\n const dateInterval = getSelectedMode?.({ start: startDate, end: endDate });\n\n const isNearby = useMemo(\n () => moment(date2).subtract(1, 'month').isSame(moment(date1), 'month'),\n [date1, date2],\n );\n\n const isPreviousPeriodShowed = useMemo(\n () => isCompare && !isCompareHidden && startDate && endDate,\n [startDate, endDate, isCompare],\n );\n\n const prevEndHour = useRef<number>(endHour);\n\n const getStartHourItems = (): { label: string; value: number; disabled: boolean }[] =>\n Array.from({ length: 24 }, (_, hour) => ({\n label: padTime(hour),\n value: hour,\n disabled: !!(\n startDate\n && endDate\n && moment(startDate).isSame(endDate, 'day')\n && endHour <= hour\n ),\n }));\n\n const getEndHourItems = (): { label: string; value: number; disabled: boolean }[] =>\n Array.from({ length: 24 }, (_, hour) => ({\n label: padTime(hour + 1),\n value: hour === 23 ? 0 : hour + 1,\n disabled: !!(\n startDate\n && endDate\n && (moment(startDate).isSame(endDate, 'day')\n || (moment(startDate).isSame(moment(endDate).subtract(1, 'days'), 'day')\n && endHour === 0))\n && hour < startHour\n ),\n }));\n\n const startPrevDate = useMemo(() => {\n if (isPreviousPeriodShowed && startDate && endDate) {\n const intervalHours = moment(endDate).diff(startDate, 'hours');\n return moment(startDate).subtract(intervalHours, 'hours').toDate();\n }\n return null;\n }, [startDate, endDate, isCompare]);\n\n const endPrevDate = useMemo(() => {\n return isPreviousPeriodShowed && startDate ? startDate : null;\n }, [startDate, isCompare]);\n\n const title = useMemo(() => {\n if (isCompare && !isCompareHidden && startPrevDate && endPrevDate) {\n return `${moment(startPrevDate).format('ll')} (${moment(startPrevDate).format('HH:mm')}) - ${moment(\n endPrevDate,\n ).format('ll')} (${moment(endPrevDate).format('HH:mm')})`;\n }\n return '';\n }, [startPrevDate, endPrevDate, isCompare]);\n\n const subtractDay = (date: Date): moment.Moment => (endHour === 0 ? moment(date).subtract(1, 'days') : moment(date));\n const addDay = (date: Date): moment.Moment => (endHour === 0 ? moment(date).add(1, 'days') : moment(date));\n\n useEffect(() => {\n if (startDate && endDate && moment(startDate).isSameOrAfter(endDate)) {\n const newStart = moment(endDate).subtract(1, 'd').toDate();\n setStartDate(newStart);\n setDate1(newStart);\n }\n }, [startDate]);\n\n useEffect(() => {\n if (startDate && endDate && moment(endDate).isSameOrBefore(startDate)) {\n const newEnd = moment(startDate).add(1, 'd').toDate();\n setEndDate(newEnd);\n setDate2(newEnd);\n }\n }, [endDate]);\n\n useEffect(() => {\n setStartDateInput(startDate);\n setEndDateInput(endDate);\n if (startDate && endDate && moment(startDate).isBefore(moment(endDate), 'month')) {\n setDate1(startDate);\n setDate2(endDate);\n }\n }, [startDate, endDate]);\n\n useEffect(() => {\n if (moment(date1).isSameOrAfter(moment(date2), 'month')) {\n setDate1(moment(date2).subtract(1, 'month').toDate());\n }\n }, [date1, date2]);\n\n useEffect(() => {\n if (dateInterval) onChangeInterval?.(dateInterval);\n }, [dateInterval]);\n\n const handleClick = (date: Date): void => {\n prevEndHour.current = 0;\n if (\n !startDate\n || (startDate\n && endDate\n && !(\n moment(startDate).add(1, 'd').isSame(endDate, 'day')\n && endHour === 0\n ))\n ) {\n setStartDate(moment(date).startOf('day').toDate());\n setEndDate(moment(date).add(1, 'd').startOf('day').toDate());\n setStartHour(0);\n setEndHour(0);\n }\n else if (moment(date).isBefore(moment(startDate), 'day')) {\n setEndDate(moment(startDate).add(1, 'd').startOf('day').toDate());\n setStartDate(moment(date).set('hour', startHour).toDate());\n }\n else if (moment(date).isAfter(moment(startDate), 'day')) {\n setEndDate(moment(date).add(1, 'd').startOf('day').toDate());\n }\n setHoverStatus(null);\n };\n\n let timerId: ReturnType<typeof setTimeout>;\n\n const handleHover = (date: Date | null): void => {\n if (!date) {\n timerId = setTimeout(() => setHoverStatus(null), 400);\n return;\n }\n if (timerId) clearTimeout(timerId);\n if (startDate && endDate && moment(startDate).add(1, 'd').isSame(endDate, 'day') && endHour === 0) {\n if (moment(date).isAfter(moment(startDate), 'day')) setHoverStatus('end');\n else if (moment(date).isBefore(moment(startDate), 'day')) setHoverStatus('start');\n else setHoverStatus(null);\n }\n else {\n setHoverStatus('start');\n }\n };\n\n const handleChangeStartHour = (value: string | number): void => {\n const val = Number(value);\n setStartHour(val);\n if (startDate) setStartDate(moment(startDate).set('hour', val).toDate());\n };\n\n const handleChangeEndHour = (value: string | number): void => {\n const newHour = Number(value);\n setEndHour(newHour);\n if (!endDate) return;\n\n let newEndDate: Date | moment.Moment;\n if (prevEndHour.current === 0 && newHour !== 0) {\n newEndDate = moment(endDate).subtract(1, 'days');\n }\n else if (prevEndHour.current !== 0 && newHour === 0) {\n newEndDate = moment(endDate).add(1, 'days');\n }\n else {\n newEndDate = moment(endDate);\n }\n prevEndHour.current = newHour;\n setEndDate(moment(newEndDate).set('hour', newHour).toDate());\n };\n\n const handleStartDateFocus = (): void => {\n setIsStartFocused(true);\n if (startDate) setStartDateInput(moment(startDate).format('L'));\n };\n\n const handleEndDateFocus = (): void => {\n setIsEndFocused(true);\n if (endDate) setEndDateInput(moment(subtractDay(endDate)).format('L'));\n };\n\n const handleStartDateBlur = (): void => {\n if (typeof startDateInput === 'string' && moment(startDateInput).isValid()) {\n const newDate = moment(startDateInput).set('hour', startHour).toDate();\n setStartDate(newDate);\n setDate1(\n moment(newDate).isSameOrAfter(moment(date2), 'month')\n ? moment(date2).subtract(1, 'month').toDate()\n : newDate,\n );\n }\n else {\n setStartDateInput(startDate);\n }\n setIsStartFocused(false);\n startDateInputRef.current?.blur();\n };\n\n const handleEndDateBlur = (): void => {\n if (typeof endDateInput === 'string' && moment(endDateInput).isValid()) {\n const newDate = moment(endDateInput).set('hour', endHour).toDate();\n const finalDate = addDay(newDate).toDate();\n setEndDate(finalDate);\n setDate2(finalDate);\n }\n else {\n setEndDateInput(endDate);\n }\n setIsEndFocused(false);\n endDateInputRef.current?.blur();\n };\n\n const handleKeyPressed = (e: KeyboardEvent<HTMLInputElement>, callback: () => void): void => {\n if (e.key === 'Enter') callback();\n };\n\n const renderButtons = (): React.ReactNode => (\n <>\n <Button className=\"plr15 mr5\" onClick={onCancel}>\n {txt.buttons.cancel}\n </Button>\n <Button\n className=\"plr20\"\n // variant=\"filled\"\n disabled={!startDate || !endDate}\n onClick={() => {\n if (!startDate || !endDate) return;\n onChange?.({\n start: startDate,\n end: endDate,\n startPrevDate,\n endPrevDate,\n compare: isCompare,\n });\n }}\n >\n {txt.buttons.apply}\n </Button>\n </>\n );\n\n const renderPreviousPeriod = (): React.ReactNode => (\n <>\n {/* @ts-ignore */}\n {txt.labels.previousPeriod}\n :\n {' '}\n <span className=\"date-picker__previous-period-interval\">{title}</span>\n </>\n );\n\n return (\n <div className=\"date-picker\">\n <div className=\"date-picker__header\">\n <Input\n testId=\"datepicker_start-date-input\"\n className={cn('mr5', {\n 'date-picker-text-input--active': hoverStatus === 'start',\n })}\n value={\n isStartFocused ? String(startDateInput) : moment(startDate).format('ll')\n }\n disabled={!startDate}\n onChange={value => setStartDateInput(value)}\n onFocus={handleStartDateFocus}\n onBlur={handleStartDateBlur}\n onKeyDown={(_keyCode: string | number, e: KeyboardEvent<HTMLInputElement>) => handleKeyPressed(e, handleStartDateBlur)}\n ref={startDateInputRef}\n />\n <Dropdown\n testId=\"datepicker_start-hour-select-input\"\n onChange={handleChangeStartHour}\n value={startHour}\n options={getStartHourItems()}\n disabled={!startDate}\n />\n <div className=\"pl5 pr5 date-picker__header--gray\">—</div>\n <Input\n testId=\"datepicker_end-date-input\"\n className={cn('mr5', {\n 'date-picker-text-input--active': hoverStatus === 'end',\n })}\n value={\n isEndFocused\n ? String(endDateInput)\n : endDate\n ? moment(subtractDay(endDate)).format('ll')\n : ''\n }\n disabled={!endDate}\n onChange={(value: string) => setEndDateInput(value)}\n onFocus={handleEndDateFocus}\n onBlur={handleEndDateBlur}\n onKeyDown={(_keyCode, e: KeyboardEvent<HTMLInputElement>) => handleKeyPressed(e, handleEndDateBlur)}\n ref={endDateInputRef}\n />\n <Dropdown\n testId=\"datepicker_end-hour-select-input\"\n onChange={handleChangeEndHour}\n value={endHour}\n options={getEndHourItems()}\n disabled={!endDate}\n />\n </div>\n <div className=\"date-picker__previous-period\">\n {isCompare\n && !isCompareHidden\n && startDate\n && endDate\n && renderPreviousPeriod()}\n </div>\n <div className=\"date-picker__calendars\">\n <DatepickerCalendar\n date={date1}\n setDate={setDate1}\n allowNext={!isNearby}\n startDate={startDate}\n endDate={endDate}\n startPrevDate={startPrevDate}\n endPrevDate={endPrevDate}\n onClick={handleClick}\n onHover={handleHover}\n limitRange={limitRange}\n />\n <DatepickerCalendar\n date={date2}\n setDate={setDate2}\n allowPrev={!isNearby}\n startDate={startDate}\n endDate={endDate}\n startPrevDate={startPrevDate}\n endPrevDate={endPrevDate}\n onClick={handleClick}\n onHover={handleHover}\n />\n </div>\n <div className=\"date-picker__footer j46\">\n {!isCompareHidden && (\n <div className=\"j4\">\n <div className=\"mr5\">\n <Switcher\n testId=\"datepicker_compare\"\n // @ts-ignore\n label={txt.labels.compare}\n isActive={isCompare}\n onChange={() => {\n onChangeCompare?.(!isCompare);\n setIsCompare(state => !state);\n }}\n />\n </div>\n </div>\n )}\n <div>{renderButtons()}</div>\n </div>\n </div>\n );\n};\n\nexport default Datepicker;\n"],"mappings":"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"}
@@ -29,8 +29,9 @@ var DatepickerCalendar = ({ date, setDate, startDate, endDate, allowPrev = true,
29
29
  const isRangeInside = day && startDate && endDate && moment(day.date).isAfter(startDate, "day") && moment(day.date).isBefore(moment(endDate).subtract(1, "hour"), "day");
30
30
  const isPrevRangeEnd = day && (moment(day.date).isSame(startPrevDate, "day") || moment(day.date).isSame(moment(endPrevDate).subtract(1, "day"), "day"));
31
31
  const isPrevRangeInside = day && startPrevDate && endPrevDate && moment(day.date).isAfter(startPrevDate, "day") && moment(day.date).isBefore(moment(endPrevDate).subtract(1, "day"), "day");
32
+ const classNames = cn("calendar__day", { "calendar__day--clickable": day }, { "calendar__day--disabled": isFutureDay || isPastDay }, { "calendar__day--range-end": isRangeEnd }, { "calendar__day--range-inside": isRangeInside }, { "calendar__day--prev-range-end": isPrevRangeEnd }, { "calendar__day--prev-range-inside": isPrevRangeInside });
32
33
  return /* @__PURE__ */ jsx("div", {
33
- className: cn("calendar__day", { "calendar__day--clickable": day }, { "calendar__day--disabled": isFutureDay || isPastDay }, { "calendar__day--range-end": isRangeEnd }, { "calendar__day--range-inside": isRangeInside }, { "calendar__day--prev-range-end": isPrevRangeEnd }, { "calendar__day--prev-range-inside": isPrevRangeInside }),
34
+ className: classNames,
34
35
  onClick: day && !isFutureDay ? () => onClick(day.date) : void 0,
35
36
  onMouseOver: day && !isFutureDay ? () => onHover(day.date) : void 0,
36
37
  onMouseLeave: () => onHover(null),
@@ -1 +1 @@
1
- {"version":3,"file":"DatepickerCalendar.js","names":[],"sources":["../../../../../../src/Atomic/FormElements/Datepicker/components/DatepickerCalendar.tsx"],"sourcesContent":["import type { DatepickerCalendarProps, DaysByWeek } from './DatepickerCalendar.props';\n\nimport cn from 'classnames';\nimport moment from 'moment';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport * as Icon from 'react-feather';\n\nconst DatepickerCalendar: React.FC<DatepickerCalendarProps> = ({\n date,\n setDate,\n startDate,\n endDate,\n allowPrev = true,\n allowNext = true,\n onClick,\n onHover,\n startPrevDate,\n endPrevDate,\n limitRange,\n}) => {\n const [days, setDays] = useState<DaysByWeek>({});\n\n const title = useMemo(() => `${moment(date).format('MMM')} ${moment(date).format('YYYY')}`, [date]);\n\n useEffect(() => {\n const result: DaysByWeek = {};\n const day = moment(date).startOf('month');\n const daysInMonth = day.daysInMonth();\n for (let d = 0; d < daysInMonth; d++) {\n let week = day.week();\n if (day.month() === 11 && week === 1) week = 53;\n if (day.month() === 0 && week === 53) week = 0;\n if (!result[week]) result[week] = {};\n result[week][day.weekday()] = { date: day.toDate() };\n day.add(1, 'd');\n }\n setDays(result);\n }, [date]);\n\n const renderDay = (week: string | number, dayOfWeek: number): React.ReactNode => {\n const day = days[+week]?.[dayOfWeek];\n const isFutureDay = day && moment(day.date).isAfter(moment(), 'day');\n const isPastDay = limitRange\n ? day\n && moment(day.date).isBefore(moment().subtract(limitRange, 'days'), 'day')\n : null;\n const isRangeEnd\n = day\n && (moment(day.date).isSame(startDate, 'day')\n || moment(day.date).isSame(moment(endDate).subtract(1, 'hour'), 'day'));\n const isRangeInside\n = day\n && startDate\n && endDate\n && moment(day.date).isAfter(startDate, 'day')\n && moment(day.date).isBefore(moment(endDate).subtract(1, 'hour'), 'day');\n const isPrevRangeEnd\n = day\n && (moment(day.date).isSame(startPrevDate, 'day')\n || moment(day.date).isSame(moment(endPrevDate).subtract(1, 'day'), 'day'));\n const isPrevRangeInside\n = day\n && startPrevDate\n && endPrevDate\n && moment(day.date).isAfter(startPrevDate, 'day')\n && moment(day.date).isBefore(moment(endPrevDate).subtract(1, 'day'), 'day');\n\n const classNames = cn(\n 'calendar__day',\n { 'calendar__day--clickable': day },\n { 'calendar__day--disabled': isFutureDay || isPastDay },\n { 'calendar__day--range-end': isRangeEnd },\n { 'calendar__day--range-inside': isRangeInside },\n { 'calendar__day--prev-range-end': isPrevRangeEnd },\n { 'calendar__day--prev-range-inside': isPrevRangeInside },\n );\n\n return (\n <div\n key={`${week}_${dayOfWeek}`}\n className={classNames}\n onClick={day && !isFutureDay ? () => onClick(day.date) : undefined}\n onMouseOver={day && !isFutureDay ? () => onHover(day.date) : undefined}\n onMouseLeave={() => onHover(null)}\n >\n {day && day.date.getDate()}\n </div>\n );\n };\n\n const handlePrev = (): void => {\n setDate(moment(date).subtract(1, 'month').toDate());\n };\n\n const handleNext = (): void => {\n setDate(moment(date).add(1, 'month').toDate());\n };\n\n return (\n <div className=\"calendar\">\n <div className=\"calendar-header\">\n <div className=\"calendar-header__prev\">\n {allowPrev && (\n <button type=\"button\" data-testid=\"datepicker-calendar-prev\" onClick={handlePrev} aria-label=\"Previous month\">\n <Icon.ChevronLeft size={16} />\n </button>\n )}\n </div>\n <div className=\"calendar-header__title\">{title}</div>\n <div className=\"calendar-header__next\">\n {allowNext && (\n <button type=\"button\" data-testid=\"datepicker-calendar-next\" onClick={handleNext} aria-label=\"Next month\">\n <Icon.ChevronRight size={16} />\n </button>\n )}\n </div>\n </div>\n <div className=\"calendar__week\">\n {Array.from({ length: 7 }, (_, dayOfWeek) => (\n <div\n key={`day-of-week_${dayOfWeek}`}\n className=\"calendar__day calendar__day--title\"\n >\n {moment().weekday(dayOfWeek).format('dd').charAt(0)}\n </div>\n ))}\n </div>\n {Object.keys(days).map((week, index) => (\n <div key={`week_${index}`} className=\"calendar__week\">\n {Array.from({ length: 7 }, (_, dayOfWeek) => renderDay(week, dayOfWeek))}\n </div>\n ))}\n </div>\n );\n};\n\nexport default DatepickerCalendar;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatepickerCalendar.js","names":[],"sources":["../../../../../../src/Atomic/FormElements/Datepicker/components/DatepickerCalendar.tsx"],"sourcesContent":["import type { DatepickerCalendarProps, DaysByWeek } from './DatepickerCalendar.props';\n\nimport cn from 'classnames';\nimport moment from 'moment';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport * as Icon from 'react-feather';\n\nconst DatepickerCalendar: React.FC<DatepickerCalendarProps> = ({\n date,\n setDate,\n startDate,\n endDate,\n allowPrev = true,\n allowNext = true,\n onClick,\n onHover,\n startPrevDate,\n endPrevDate,\n limitRange,\n}) => {\n const [days, setDays] = useState<DaysByWeek>({});\n\n const title = useMemo(() => `${moment(date).format('MMM')} ${moment(date).format('YYYY')}`, [date]);\n\n useEffect(() => {\n const result: DaysByWeek = {};\n const day = moment(date).startOf('month');\n const daysInMonth = day.daysInMonth();\n for (let d = 0; d < daysInMonth; d++) {\n let week = day.week();\n if (day.month() === 11 && week === 1) week = 53;\n if (day.month() === 0 && week === 53) week = 0;\n if (!result[week]) result[week] = {};\n result[week][day.weekday()] = { date: day.toDate() };\n day.add(1, 'd');\n }\n setDays(result);\n }, [date]);\n\n const renderDay = (week: string | number, dayOfWeek: number): React.ReactNode => {\n const day = days[+week]?.[dayOfWeek];\n const isFutureDay = day && moment(day.date).isAfter(moment(), 'day');\n const isPastDay = limitRange\n ? day\n && moment(day.date).isBefore(moment().subtract(limitRange, 'days'), 'day')\n : null;\n const isRangeEnd\n = day\n && (moment(day.date).isSame(startDate, 'day')\n || moment(day.date).isSame(moment(endDate).subtract(1, 'hour'), 'day'));\n const isRangeInside\n = day\n && startDate\n && endDate\n && moment(day.date).isAfter(startDate, 'day')\n && moment(day.date).isBefore(moment(endDate).subtract(1, 'hour'), 'day');\n const isPrevRangeEnd\n = day\n && (moment(day.date).isSame(startPrevDate, 'day')\n || moment(day.date).isSame(moment(endPrevDate).subtract(1, 'day'), 'day'));\n const isPrevRangeInside\n = day\n && startPrevDate\n && endPrevDate\n && moment(day.date).isAfter(startPrevDate, 'day')\n && moment(day.date).isBefore(moment(endPrevDate).subtract(1, 'day'), 'day');\n\n const classNames = cn(\n 'calendar__day',\n { 'calendar__day--clickable': day },\n { 'calendar__day--disabled': isFutureDay || isPastDay },\n { 'calendar__day--range-end': isRangeEnd },\n { 'calendar__day--range-inside': isRangeInside },\n { 'calendar__day--prev-range-end': isPrevRangeEnd },\n { 'calendar__day--prev-range-inside': isPrevRangeInside },\n );\n\n return (\n <div\n key={`${week}_${dayOfWeek}`}\n className={classNames}\n onClick={day && !isFutureDay ? () => onClick(day.date) : undefined}\n onMouseOver={day && !isFutureDay ? () => onHover(day.date) : undefined}\n onMouseLeave={() => onHover(null)}\n >\n {day && day.date.getDate()}\n </div>\n );\n };\n\n const handlePrev = (): void => {\n setDate(moment(date).subtract(1, 'month').toDate());\n };\n\n const handleNext = (): void => {\n setDate(moment(date).add(1, 'month').toDate());\n };\n\n return (\n <div className=\"calendar\">\n <div className=\"calendar-header\">\n <div className=\"calendar-header__prev\">\n {allowPrev && (\n <button type=\"button\" data-testid=\"datepicker-calendar-prev\" onClick={handlePrev} aria-label=\"Previous month\">\n <Icon.ChevronLeft size={16} />\n </button>\n )}\n </div>\n <div className=\"calendar-header__title\">{title}</div>\n <div className=\"calendar-header__next\">\n {allowNext && (\n <button type=\"button\" data-testid=\"datepicker-calendar-next\" onClick={handleNext} aria-label=\"Next month\">\n <Icon.ChevronRight size={16} />\n </button>\n )}\n </div>\n </div>\n <div className=\"calendar__week\">\n {Array.from({ length: 7 }, (_, dayOfWeek) => (\n <div\n key={`day-of-week_${dayOfWeek}`}\n className=\"calendar__day calendar__day--title\"\n >\n {moment().weekday(dayOfWeek).format('dd').charAt(0)}\n </div>\n ))}\n </div>\n {Object.keys(days).map((week, index) => (\n <div key={`week_${index}`} className=\"calendar__week\">\n {Array.from({ length: 7 }, (_, dayOfWeek) => renderDay(week, dayOfWeek))}\n </div>\n ))}\n </div>\n );\n};\n\nexport default DatepickerCalendar;\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import DropdownLoader from "./components/DropdownLoader.js";
6
6
  import useDropdown from "./useDropdown.js";
7
7
  import './Dropdown.styles.css';/* empty css */
8
8
  import cn from "classnames";
9
- import { useCallback, useEffect, useLayoutEffect, useMemo } from "react";
9
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from "react";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
11
  import { Check, ChevronDown, ChevronUp, Code, X } from "react-feather";
12
12
  import { createPortal } from "react-dom";
@@ -24,22 +24,30 @@ function Dropdown({ label, options, value, error, disabled, onChange, placeholde
24
24
  minItemsForShowMobileSearch,
25
25
  isDoNotPullOutListOfMainContainer
26
26
  });
27
- const onCancelClick = () => {
27
+ const onChangeRef = useRef(onChange);
28
+ const onActionConfirmClickRef = useRef(onActionConfirmClick);
29
+ const onActionCancelClickRef = useRef(onActionCancelClick);
30
+ const scrollReactionObjRef = useRef(scrollReactionObj);
31
+ onChangeRef.current = onChange;
32
+ onActionConfirmClickRef.current = onActionConfirmClick;
33
+ onActionCancelClickRef.current = onActionCancelClick;
34
+ scrollReactionObjRef.current = scrollReactionObj;
35
+ const onCancelClick = useCallback(() => {
28
36
  setIsOpen(false);
29
37
  setValueToApply?.(null);
30
- onActionCancelClick?.();
31
- };
32
- const onApplyClick = () => {
38
+ onActionCancelClickRef.current?.();
39
+ }, []);
40
+ const onApplyClick = useCallback(() => {
33
41
  if (valueToApplyRef?.current !== null && valueToApplyRef?.current !== void 0) {
34
- onChange?.(valueToApplyRef.current);
35
- setTimeout(() => onActionConfirmClick?.(), 1);
42
+ onChangeRef.current?.(valueToApplyRef.current);
43
+ setTimeout(() => onActionConfirmClickRef.current?.(), 1);
36
44
  }
37
45
  onCancelClick?.();
38
- };
46
+ }, [onCancelClick]);
39
47
  const onChangeHandler = (item) => {
40
48
  if (isMobile ? closeOnSelectMobile : closeOnSelect) setIsOpen(false);
41
49
  if (withApplyLogic && applyButtonRef?.current) setValueToApply?.(item.value);
42
- else onChange?.(item.value);
50
+ else onChangeRef.current?.(item.value);
43
51
  };
44
52
  const onKeyDown = (e) => {
45
53
  if (![9, 13].includes(e.keyCode)) return false;
@@ -71,13 +79,13 @@ function Dropdown({ label, options, value, error, disabled, onChange, placeholde
71
79
  if (!getListContainer()?.contains(event?.target) && dropdownRef?.current !== null && !dropdownRef?.current.contains(event?.target)) onCancelClick();
72
80
  };
73
81
  const doScrollCallback = useCallback((e) => {
74
- const { callback, isWithAnyScrolling, scrollingInaccuracy = 0 } = scrollReactionObj || {};
82
+ const { callback, isWithAnyScrolling, scrollingInaccuracy = 0 } = scrollReactionObjRef.current || {};
75
83
  const target = e?.target;
76
84
  if (callback && typeof callback === "function") {
77
85
  if (isWithAnyScrolling) callback(e);
78
86
  else if (Math.round(target.clientHeight + target.scrollTop + scrollingInaccuracy) >= target.scrollHeight) callback(e);
79
87
  }
80
- }, [filteredOptions]);
88
+ }, []);
81
89
  const initListContainer = () => {
82
90
  const dropdownList = document.createElement("div");
83
91
  dropdownList.setAttribute("id", dropdownId);
@@ -132,7 +140,7 @@ function Dropdown({ label, options, value, error, disabled, onChange, placeholde
132
140
  const closeList = isOpen ? handleClickOutside : () => {};
133
141
  const getDepends = (getDependsTrigger) => {
134
142
  const newOnChange = (e) => {
135
- if (e.value === "open_modal") onChange?.("open_modal");
143
+ if (e.value === "open_modal") onChangeRef.current?.("open_modal");
136
144
  else onChangeHandler(e);
137
145
  };
138
146
  const newOptions = [{
@@ -147,8 +155,7 @@ function Dropdown({ label, options, value, error, disabled, onChange, placeholde
147
155
  options: getDependsTrigger ? newOptions : options
148
156
  };
149
157
  };
150
- const modalBtnTrigger = useMemo(() => entity && entity !== "" && typeof entity === "string", [entity]);
151
- const depend = useMemo(() => getDepends(modalBtnTrigger), [modalBtnTrigger, filteredOptions]);
158
+ const depend = getDepends(useMemo(() => entity && entity !== "" && typeof entity === "string", [entity]));
152
159
  const getMarkupForElement = (item, _index, optTestId) => {
153
160
  return /* @__PURE__ */ jsxs("button", {
154
161
  type: "button",
@@ -236,16 +243,17 @@ function Dropdown({ label, options, value, error, disabled, onChange, placeholde
236
243
  ref: dropdownListRef,
237
244
  children: [
238
245
  depend.options && getSortedOptions(depend.options)?.map((option, index) => {
239
- if (option?.items?.length) if (!isSearchable || !isSearchChanged) return filteredOptionList(option);
240
- else {
241
- const items = option.items?.slice().filter((el) => el?.label?.toLowerCase().includes(searchValue?.toLowerCase() || "") || !el?.value || el?.value === "");
242
- if (items?.length) return filteredOptionList({
243
- ...option,
244
- items
245
- });
246
- return null;
247
- }
248
- else if (!isSearchable || !isSearchChanged || option?.label?.toLowerCase().includes(searchValue?.toLowerCase() || "") || !option?.value || option?.value === "") return getMarkupForElement(option, index, (option?.testId || index)?.toString());
246
+ if (option?.items?.length) {
247
+ if (!isSearchable || !isSearchChanged) return filteredOptionList(option);
248
+ else {
249
+ const items = option.items?.slice().filter((el) => el?.label?.toLowerCase().includes(searchValue?.toLowerCase() || "") || !el?.value || el?.value === "");
250
+ if (items?.length) return filteredOptionList({
251
+ ...option,
252
+ items
253
+ });
254
+ return null;
255
+ }
256
+ } else if (!isSearchable || !isSearchChanged || option?.label?.toLowerCase().includes(searchValue?.toLowerCase() || "") || !option?.value || option?.value === "") return getMarkupForElement(option, index, (option?.testId || index)?.toString());
249
257
  return null;
250
258
  }),
251
259
  !filteredItems?.length && !filteredGroups?.length && /* @__PURE__ */ jsx("div", {
@@ -325,9 +333,10 @@ function Dropdown({ label, options, value, error, disabled, onChange, placeholde
325
333
  setIsSearchChanged(false);
326
334
  if (!isMobile) setMaxListContainerHeight(0);
327
335
  }
328
- if (scrollReactionObj && typeof scrollReactionObj === "object" && isOpen && dropdownListRef && dropdownListRef.current) dropdownListRef.current.addEventListener("scroll", doScrollCallback);
336
+ const scrollListElement = dropdownListRef?.current;
337
+ if (scrollReactionObj && typeof scrollReactionObj === "object" && isOpen && scrollListElement) scrollListElement.addEventListener("scroll", doScrollCallback);
329
338
  return () => {
330
- if (scrollReactionObj && typeof scrollReactionObj === "object") removeEventListener("scroll", doScrollCallback);
339
+ scrollListElement?.removeEventListener("scroll", doScrollCallback);
331
340
  };
332
341
  }, [isOpen, dropdownListRef]);
333
342
  useEffect(() => {