@jenesei-software/jenesei-kit-react 2.0.0 → 2.0.1

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 (185) hide show
  1. package/build/{AnimatePresence-BByJ67dn.js → AnimatePresence-19yP-TCg.js} +2 -2
  2. package/build/{AnimatePresence-BByJ67dn.js.map → AnimatePresence-19yP-TCg.js.map} +1 -1
  3. package/build/{AnimatePresence-BtUPiqYm.cjs → AnimatePresence-BdBJCJuf.cjs} +2 -2
  4. package/build/{AnimatePresence-BtUPiqYm.cjs.map → AnimatePresence-BdBJCJuf.cjs.map} +1 -1
  5. package/build/area-outside.cjs.js +1 -1
  6. package/build/area-outside.es.js +1 -1
  7. package/build/area-preview.cjs.js +1 -1
  8. package/build/area-preview.es.js +1 -1
  9. package/build/area-skeleton.cjs.js +1 -1
  10. package/build/area-skeleton.es.js +1 -1
  11. package/build/build-info.txt +3 -3
  12. package/build/{button-D8zdhI-0.js → button-BbGiFvok.js} +2 -2
  13. package/build/{button-D8zdhI-0.js.map → button-BbGiFvok.js.map} +1 -1
  14. package/build/{button-C5PgNYns.cjs → button-BuPpgfL_.cjs} +2 -2
  15. package/build/{button-C5PgNYns.cjs.map → button-BuPpgfL_.cjs.map} +1 -1
  16. package/build/{checkbox-Ba0-4wxk.js → checkbox-CXxWDklX.js} +3 -3
  17. package/build/{checkbox-Ba0-4wxk.js.map → checkbox-CXxWDklX.js.map} +1 -1
  18. package/build/{checkbox-BtkbSjHq.cjs → checkbox-qgc_Ntc3.cjs} +2 -2
  19. package/build/{checkbox-BtkbSjHq.cjs.map → checkbox-qgc_Ntc3.cjs.map} +1 -1
  20. package/build/chunk-Dd8m0Ver.cjs +1 -0
  21. package/build/{chunk-D1xtDmiO.js → chunk-cI0lbGMq.js} +7 -7
  22. package/build/{component-6HgOL-7c.js → component-BHyXT2-h.js} +2 -2
  23. package/build/{component-6HgOL-7c.js.map → component-BHyXT2-h.js.map} +1 -1
  24. package/build/component-button.cjs.js +1 -1
  25. package/build/component-button.es.js +1 -1
  26. package/build/component-checkbox.cjs.js +1 -1
  27. package/build/component-checkbox.es.js +1 -1
  28. package/build/component-date-picker.cjs.js +1 -1
  29. package/build/component-date-picker.es.js +1 -1
  30. package/build/component-icon.cjs.js +1 -1
  31. package/build/component-icon.es.js +1 -1
  32. package/build/component-input-otp.cjs.js +1 -1
  33. package/build/component-input-otp.es.js +1 -1
  34. package/build/component-input.cjs.js +1 -1
  35. package/build/component-input.es.js +1 -1
  36. package/build/{component-BjdeqpEq.cjs → component-jsn2T8Hu.cjs} +2 -2
  37. package/build/{component-BjdeqpEq.cjs.map → component-jsn2T8Hu.cjs.map} +1 -1
  38. package/build/component-pagination.cjs.js +1 -1
  39. package/build/component-pagination.es.js +1 -1
  40. package/build/component-popover.cjs.js +1 -1
  41. package/build/component-select.cjs.js +1 -1
  42. package/build/component-select.es.js +1 -1
  43. package/build/component-separator.cjs.js +1 -1
  44. package/build/component-stack.cjs.js +1 -1
  45. package/build/component-stack.es.js +1 -1
  46. package/build/component-textarea.cjs.js +1 -1
  47. package/build/component-textarea.es.js +1 -1
  48. package/build/component-toggle.cjs.js +1 -1
  49. package/build/component-toggle.es.js +1 -1
  50. package/build/component-tooltip.cjs.js +1 -1
  51. package/build/component-typography.cjs.js +1 -1
  52. package/build/components-error.cjs.js +1 -1
  53. package/build/components-error.es.js +1 -1
  54. package/build/{context-app-4_kY3Qcd.js → context-app-CMK9g6MI.js} +4 -4
  55. package/build/{context-app-4_kY3Qcd.js.map → context-app-CMK9g6MI.js.map} +1 -1
  56. package/build/{context-app-DKsS6_WR.cjs → context-app-HhFcx1wY.cjs} +2 -2
  57. package/build/{context-app-DKsS6_WR.cjs.map → context-app-HhFcx1wY.cjs.map} +1 -1
  58. package/build/context-app.cjs.js +1 -1
  59. package/build/context-app.es.js +1 -1
  60. package/build/{context-browser-theme-CPhqqRUP.js → context-browser-theme-Cb6siWO0.js} +2 -2
  61. package/build/{context-browser-theme-CPhqqRUP.js.map → context-browser-theme-Cb6siWO0.js.map} +1 -1
  62. package/build/{context-browser-theme-o9geUlSH.cjs → context-browser-theme-Cso_rAT5.cjs} +2 -2
  63. package/build/{context-browser-theme-o9geUlSH.cjs.map → context-browser-theme-Cso_rAT5.cjs.map} +1 -1
  64. package/build/context-browser-theme.cjs.js +1 -1
  65. package/build/context-browser-theme.es.js +1 -1
  66. package/build/{context-cookie-CvTU44MD.cjs → context-cookie-Btkd2aXy.cjs} +2 -2
  67. package/build/{context-cookie-CvTU44MD.cjs.map → context-cookie-Btkd2aXy.cjs.map} +1 -1
  68. package/build/context-cookie.cjs.js +1 -1
  69. package/build/{context-dialog-CCnhd1EY.cjs → context-dialog-B67-_jMH.cjs} +2 -2
  70. package/build/{context-dialog-CCnhd1EY.cjs.map → context-dialog-B67-_jMH.cjs.map} +1 -1
  71. package/build/{context-dialog-HLeQ5WNn.js → context-dialog-CxGGmBqC.js} +5 -5
  72. package/build/{context-dialog-HLeQ5WNn.js.map → context-dialog-CxGGmBqC.js.map} +1 -1
  73. package/build/context-dialog.cjs.js +1 -1
  74. package/build/context-dialog.es.js +1 -1
  75. package/build/{context-geolocation-ffFFV4kn.cjs → context-geolocation-CV4hV0NX.cjs} +2 -2
  76. package/build/{context-geolocation-ffFFV4kn.cjs.map → context-geolocation-CV4hV0NX.cjs.map} +1 -1
  77. package/build/context-geolocation.cjs.js +1 -1
  78. package/build/{context-local-storage-kmxWNK_4.cjs → context-local-storage-DUKHVPAA.cjs} +2 -2
  79. package/build/{context-local-storage-kmxWNK_4.cjs.map → context-local-storage-DUKHVPAA.cjs.map} +1 -1
  80. package/build/context-local-storage.cjs.js +1 -1
  81. package/build/{context-permission-K3tWOiAx.cjs → context-permission-DrcIwK9y.cjs} +2 -2
  82. package/build/{context-permission-K3tWOiAx.cjs.map → context-permission-DrcIwK9y.cjs.map} +1 -1
  83. package/build/context-permission.cjs.js +1 -1
  84. package/build/{context-screen-width-CEsyIyg6.js → context-screen-width-CFexCIzV.js} +2 -2
  85. package/build/{context-screen-width-CEsyIyg6.js.map → context-screen-width-CFexCIzV.js.map} +1 -1
  86. package/build/{context-screen-width-ind6z7Ny.cjs → context-screen-width-hcRkxzy7.cjs} +2 -2
  87. package/build/{context-screen-width-ind6z7Ny.cjs.map → context-screen-width-hcRkxzy7.cjs.map} +1 -1
  88. package/build/context-screen-width.cjs.js +1 -1
  89. package/build/context-screen-width.es.js +1 -1
  90. package/build/{context-sonner-L0OMEvZE.cjs → context-sonner-4gBa1F7G.cjs} +2 -2
  91. package/build/{context-sonner-L0OMEvZE.cjs.map → context-sonner-4gBa1F7G.cjs.map} +1 -1
  92. package/build/{context-sonner-Bniiz914.js → context-sonner-qDPLFpD5.js} +6 -6
  93. package/build/{context-sonner-Bniiz914.js.map → context-sonner-qDPLFpD5.js.map} +1 -1
  94. package/build/context-sonner.cjs.js +1 -1
  95. package/build/context-sonner.es.js +1 -1
  96. package/build/{date-picker-CQUe3ZXt.cjs → date-picker-CPNNIEa-.cjs} +2 -2
  97. package/build/{date-picker-CQUe3ZXt.cjs.map → date-picker-CPNNIEa-.cjs.map} +1 -1
  98. package/build/{date-picker-z3LcE7Ab.js → date-picker-Uuce_InW.js} +5 -5
  99. package/build/{date-picker-z3LcE7Ab.js.map → date-picker-Uuce_InW.js.map} +1 -1
  100. package/build/{dist-Dq_YJa2q.js → dist-BV0C3tLK.js} +2 -2
  101. package/build/{dist-Dq_YJa2q.js.map → dist-BV0C3tLK.js.map} +1 -1
  102. package/build/{dist-C8r_OdG1.cjs → dist-DswBAjW1.cjs} +2 -2
  103. package/build/{dist-C8r_OdG1.cjs.map → dist-DswBAjW1.cjs.map} +1 -1
  104. package/build/{error--kiPVmoi.cjs → error-DzkkNL2H.cjs} +2 -2
  105. package/build/{error--kiPVmoi.cjs.map → error-DzkkNL2H.cjs.map} +1 -1
  106. package/build/{error-D1UNY-0f.js → error-L2fvWcNv.js} +2 -2
  107. package/build/{error-D1UNY-0f.js.map → error-L2fvWcNv.js.map} +1 -1
  108. package/build/hooks-use-debounced-callback.cjs.js +1 -1
  109. package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
  110. package/build/hooks-use-deep-compare-memoize.es.js +2 -2
  111. package/build/hooks-use-deep-memo.cjs.js +1 -1
  112. package/build/hooks-use-deep-memo.es.js +2 -2
  113. package/build/hooks-use-merge-refs.cjs.js +1 -1
  114. package/build/hooks-use-overflowing-advanced.cjs.js +1 -1
  115. package/build/hooks-use-overflowing-in-container.cjs.js +1 -1
  116. package/build/hooks-use-overflowing.cjs.js +1 -1
  117. package/build/hooks-use-responsive-layout.cjs.js +1 -1
  118. package/build/hooks-use-responsive-layout.es.js +1 -1
  119. package/build/hooks-use-typography-styles.cjs.js +1 -1
  120. package/build/{icon-CreblPsB.cjs → icon-CoIQwke4.cjs} +2 -2
  121. package/build/{icon-CreblPsB.cjs.map → icon-CoIQwke4.cjs.map} +1 -1
  122. package/build/{icon-BG6R5Lfa.js → icon-DzAWOQJg.js} +2 -2
  123. package/build/{icon-BG6R5Lfa.js.map → icon-DzAWOQJg.js.map} +1 -1
  124. package/build/index.cjs.js +1 -1
  125. package/build/index.es.js +21 -21
  126. package/build/{input-DqMLnOz5.js → input-CV02F03L.js} +2 -2
  127. package/build/{input-DqMLnOz5.js.map → input-CV02F03L.js.map} +1 -1
  128. package/build/{input-otp-DPp3qmvI.js → input-otp-B9cYxJ7X.js} +3 -3
  129. package/build/{input-otp-DPp3qmvI.js.map → input-otp-B9cYxJ7X.js.map} +1 -1
  130. package/build/{input-otp-Z_wz6o6L.cjs → input-otp-BVRCfoRK.cjs} +2 -2
  131. package/build/{input-otp-Z_wz6o6L.cjs.map → input-otp-BVRCfoRK.cjs.map} +1 -1
  132. package/build/{input-CWcWWMCp.cjs → input-zXF5f99Z.cjs} +2 -2
  133. package/build/{input-CWcWWMCp.cjs.map → input-zXF5f99Z.cjs.map} +1 -1
  134. package/build/isEqual-DeC2HFe5.cjs +3 -0
  135. package/build/{isEqual-wc3RBuBi.cjs.map → isEqual-DeC2HFe5.cjs.map} +1 -1
  136. package/build/{isEqual-VCZu3vai.js → isEqual-Qb81B2zH.js} +4 -3
  137. package/build/{isEqual-VCZu3vai.js.map → isEqual-Qb81B2zH.js.map} +1 -1
  138. package/build/{motion-BeQRGZxW.cjs → motion-CAPq8wSn.cjs} +2 -2
  139. package/build/{motion-BeQRGZxW.cjs.map → motion-CAPq8wSn.cjs.map} +1 -1
  140. package/build/{motion-Ot_yGWVJ.js → motion-Dt6TyEjN.js} +3 -3
  141. package/build/{motion-Ot_yGWVJ.js.map → motion-Dt6TyEjN.js.map} +1 -1
  142. package/build/{outside-DJ1B9sBT.cjs → outside-B3nRnDGb.cjs} +2 -2
  143. package/build/{outside-DJ1B9sBT.cjs.map → outside-B3nRnDGb.cjs.map} +1 -1
  144. package/build/{outside-BtjOuCPD.js → outside-DpK1pI8b.js} +2 -2
  145. package/build/{outside-BtjOuCPD.js.map → outside-DpK1pI8b.js.map} +1 -1
  146. package/build/{pagination-BnvQ1aha.cjs → pagination-Dbs4Lrpt.cjs} +2 -2
  147. package/build/{pagination-BnvQ1aha.cjs.map → pagination-Dbs4Lrpt.cjs.map} +1 -1
  148. package/build/{pagination-CpaP3Svg.js → pagination-YXSjZsMZ.js} +5 -5
  149. package/build/{pagination-CpaP3Svg.js.map → pagination-YXSjZsMZ.js.map} +1 -1
  150. package/build/{popover-fte_EMYr.cjs → popover-CgwGn-55.cjs} +2 -2
  151. package/build/{popover-fte_EMYr.cjs.map → popover-CgwGn-55.cjs.map} +1 -1
  152. package/build/{preview-BvJN6QoV.js → preview-C_yFxoFH.js} +4 -4
  153. package/build/{preview-BvJN6QoV.js.map → preview-C_yFxoFH.js.map} +1 -1
  154. package/build/{preview-CG76AiC9.cjs → preview-dT7fmxcc.cjs} +2 -2
  155. package/build/{preview-CG76AiC9.cjs.map → preview-dT7fmxcc.cjs.map} +1 -1
  156. package/build/{proxy-D2Z8K6jr.cjs → proxy-_gZenxVU.cjs} +2 -2
  157. package/build/{proxy-D2Z8K6jr.cjs.map → proxy-_gZenxVU.cjs.map} +1 -1
  158. package/build/{proxy-DTLy-pV-.js → proxy-wCWa57J3.js} +2 -2
  159. package/build/{proxy-DTLy-pV-.js.map → proxy-wCWa57J3.js.map} +1 -1
  160. package/build/{select-BQtWzaxE.cjs → select-B0adRX2_.cjs} +4 -4
  161. package/build/{select-BQtWzaxE.cjs.map → select-B0adRX2_.cjs.map} +1 -1
  162. package/build/{select-B4JeEvIF.js → select-D7EyxR2l.js} +10 -10
  163. package/build/{select-B4JeEvIF.js.map → select-D7EyxR2l.js.map} +1 -1
  164. package/build/{separator-BXoT44nC.cjs → separator-CbeH8Lug.cjs} +2 -2
  165. package/build/{separator-BXoT44nC.cjs.map → separator-CbeH8Lug.cjs.map} +1 -1
  166. package/build/{skeleton-BOfnrUaI.cjs → skeleton-BoVFwt7y.cjs} +2 -2
  167. package/build/{skeleton-BOfnrUaI.cjs.map → skeleton-BoVFwt7y.cjs.map} +1 -1
  168. package/build/{skeleton-Bzr92XmL.js → skeleton-DNwTI6w0.js} +2 -2
  169. package/build/{skeleton-Bzr92XmL.js.map → skeleton-DNwTI6w0.js.map} +1 -1
  170. package/build/style-motion.cjs.js +1 -1
  171. package/build/style-motion.es.js +1 -1
  172. package/build/style-utils.cjs.js +1 -1
  173. package/build/{textarea-BRzorAFw.cjs → textarea-CbZSeqGR.cjs} +2 -2
  174. package/build/{textarea-BRzorAFw.cjs.map → textarea-CbZSeqGR.cjs.map} +1 -1
  175. package/build/{textarea-BssfjUe3.js → textarea-ChkjV_Ha.js} +2 -2
  176. package/build/{textarea-BssfjUe3.js.map → textarea-ChkjV_Ha.js.map} +1 -1
  177. package/build/{toggle-CCfZoBpW.js → toggle-I6YvEX4w.js} +2 -2
  178. package/build/{toggle-CCfZoBpW.js.map → toggle-I6YvEX4w.js.map} +1 -1
  179. package/build/{toggle-BFp9Nmas.cjs → toggle-gYw5FUp-.cjs} +2 -2
  180. package/build/{toggle-BFp9Nmas.cjs.map → toggle-gYw5FUp-.cjs.map} +1 -1
  181. package/build/{typography-whjfut7N.cjs → typography-DcxhX_9e.cjs} +2 -2
  182. package/build/{typography-whjfut7N.cjs.map → typography-DcxhX_9e.cjs.map} +1 -1
  183. package/package.json +1 -5
  184. package/build/chunk-CW3en5xf.cjs +0 -1
  185. package/build/isEqual-wc3RBuBi.cjs +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker-z3LcE7Ab.js","names":[],"sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { IErrorMessage } from '@local/components/error';\nimport { ISelectMonth } from '@local/components/select';\nimport { ITypography } from '@local/styles/utils';\nimport { IThemeControl, IThemeGenreDatePicker, IThemeSize } from '@local/styles/utils/types';\n\nimport { CSSProperties, HTMLInputAutoCompleteAttribute } from 'react';\n\nexport type IDatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type IDatePickerType = 'manual' | 'select' | 'manualAndSelect';\n\nexport type IDatePickerCommon = {\n className?: string;\n style?: CSSProperties;\n\n classNamePopover?: string;\n stylePopover?: CSSProperties;\n\n sxTypography?: ITypography;\n control?: IThemeControl;\n error?: IErrorMessage;\n\n genre: IThemeGenreDatePicker;\n\n id?: string;\n\n isNiceNumber?: boolean;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n isShowClearButton?: boolean;\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: ISelectMonth['monthsLocale'];\n weeks: IDatePickerTranslateWeek[];\n inputs: IDatePickerTranslateInput;\n };\n\n notValidDate?: Omit<IErrorMessage, 'size' | 'isError'>;\n\n mode?: IDatePickerMode;\n\n type?: IDatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n};\n\ntype IDatePickerControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype IDatePickerUncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type IDatePicker = IDatePickerCommon & (IDatePickerControlledValue | IDatePickerUncontrolledValue);\n\nexport interface IDatePickerDay {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isChoice: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type IDatePickerTranslateMonth = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type IDatePickerTranslateWeek = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type IDatePickerTranslateInput = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\nimport { Button } from '@local/components/button';\nimport { ErrorMessage } from '@local/components/error';\nimport { Popover, usePopover } from '@local/components/popover';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport moment, { Moment } from 'moment';\nimport {\n ChangeEvent,\n Fragment,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n DatePickerVariant,\n IDatePicker,\n IDatePickerDay,\n IDatePickerMode,\n IDatePickerTranslateWeek,\n IDatePickerType,\n} from './component.types';\n\nconst weekOrder: IDatePickerTranslateWeek['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nexport const DatePicker = (props: IDatePicker) => {\n const { onChange } = props;\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: IDatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n }\n\n return props.mode;\n }, [props.mode]);\n\n const type: IDatePickerType = useMemo(() => {\n if (!props.type) {\n return 'manualAndSelect';\n }\n\n return props.type;\n }, [props.type]);\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment, mode),\n segmentPrev: getPrevSegment(segment, mode),\n onNextSegment: () => setActiveSegment(getNextSegment(segment, mode)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment, mode)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, mode, input]);\n\n const daysInWeek = useMemo(() => {\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: IDatePickerDay[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: IDatePickerDay[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isChoice: dateCurrent.valueOf() === valueMoment?.valueOf(),\n isDisabled: !!(\n (dateMin && dateCurrent.isBefore(dateMin, 'day')) ||\n (dateMax && dateCurrent.isAfter(dateMax, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const sizeRadius = useMemo(() => CSS_VARS.sizeValue[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => CSS_VARS.sizeValue[props.size].padding, [props.size]);\n\n // const height = useMemo(() => 40 + rows * 28 + (rows - 1) * 6 + sizePadding * 2, [sizePadding, rows]);\n\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n isFocusTrap: true,\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n getDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }, [activeSegment, type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }, [isOpen, props.onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n\n const result = getParseDateString(value);\n\n if (result) {\n setInput({\n DD: String(result.day).padStart(2, '0'),\n MM: String(result.month).padStart(2, '0'),\n YYYY: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n\n const { className: classNameTypographyDay, style: styleTypographyDay } = useTypographyStyles({\n sx: {\n variant: EXTRA_VALUE.sizeToController.small,\n weight: '500',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n size: 16,\n weight: props.isBold ? '700' : '400',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameWrapper, style: styleWrapper } = useMemo(() => {\n const className = setClasses([CSS_CLASS.component.datePicker.wrapper, props.className]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.padding] = CSS_VARS.size[props.size].padding;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBackground] = CSS_VARS.genre.select[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.inputBackgroundHover] = CSS_VARS.genre.input[props.genre].background;\n vars[CSS_VARS_RAW.component.datePicker.inputSegmentBackgroundActive] = CSS_VARS.palette.fillQuaternaryLight;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColor] = CSS_VARS.genre.input[props.genre].border;\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColorHover] = CSS_VARS.genre.input[props.genre].border;\n\n vars[CSS_VARS_RAW.component.datePicker.inputColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputColorHover] = CSS_VARS.genre.input[props.genre].color;\n\n vars[CSS_VARS_RAW.component.datePicker.inputPadding] = isShowPlaceholder\n ? `0px ${CSS_VARS.size[props.size].padding}`\n : `0px ${CSS_VARS.size[props.size].padding} 0px ${CSS_VARS.sizeValue[props.size].padding - 2}px`;\n vars[CSS_VARS_RAW.component.datePicker.inputHeight] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.datePicker.inputRadius] = CSS_VARS.size[props.size].radius;\n\n vars[CSS_VARS_RAW.component.datePicker.inputValueColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputPlaceholderColor] = CSS_VARS.genre.input[props.genre].placeholder;\n vars[CSS_VARS_RAW.component.datePicker.buttonToggleRight] = `${CSS_VARS.size[props.size].padding}`;\n vars[CSS_VARS_RAW.component.datePicker.buttonClearRight] =\n `${CSS_VARS.sizeValue[props.size].padding * 2 + CSS_VARS.sizeValue[props.size].height}px`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [props.className, props.style, isShowPlaceholder, props.genre, props.size]);\n\n const { className: classNamePopover, style: stylePopover } = useMemo(() => {\n const className = setClasses([props.classNamePopover]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.dayRadius] = `${sizeRadius}px`;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundRest] = CSS_VARS.genre.datepicker[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundHover] =\n CSS_VARS.genre.datepicker[props.genre].background.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundWeekend] =\n CSS_VARS.genre.datepicker[props.genre].background.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundToday] =\n CSS_VARS.genre.datepicker[props.genre].background.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundChoice] =\n CSS_VARS.genre.datepicker[props.genre].background.choice;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBorderRest] = CSS_VARS.genre.datepicker[props.genre].border.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderWeekend] = CSS_VARS.genre.datepicker[props.genre].border.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderToday] = CSS_VARS.genre.datepicker[props.genre].border.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderChoice] = CSS_VARS.genre.datepicker[props.genre].border.choice;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderHover] = CSS_VARS.genre.datepicker[props.genre].border.hover;\n\n vars[CSS_VARS_RAW.component.datePicker.dayColorRest] = CSS_VARS.genre.datepicker[props.genre].color.index;\n vars[CSS_VARS_RAW.component.datePicker.dayColorHover] = CSS_VARS.genre.datepicker[props.genre].color.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayColorWeekend] = CSS_VARS.genre.datepicker[props.genre].color.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayColorToday] = CSS_VARS.genre.datepicker[props.genre].color.today;\n vars[CSS_VARS_RAW.component.datePicker.dayColorChoice] = CSS_VARS.genre.datepicker[props.genre].color.choice;\n\n const style = setStyles([\n Object.keys(vars).length ? vars : undefined,\n {\n background: CSS_VARS.genre.popover[props.genre].background,\n border: `solid 1px ${CSS_VARS.genre.input[props.genre].border}`,\n },\n props.stylePopover,\n ]);\n\n return { className, style };\n }, [props.classNamePopover, props.stylePopover, props.genre, sizeRadius]);\n\n const isShowButtonList = useMemo(() => {\n return (\n type !== 'manual' ||\n (props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly)\n );\n }, [type, isHasInput, isHasValue, props.isShowClearButton, props?.isDisabled, props?.isReadOnly]);\n return (\n <>\n <div className={classNameWrapper} style={styleWrapper} tabIndex={-1}>\n <div\n ref={refReference as RefObject<HTMLDivElement | null>}\n tabIndex={-1}\n onClick={() => {\n if (type === 'select') {\n toggle();\n return;\n }\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n className={setClasses([\n CSS_CLASS.component.datePicker.inputWrapper,\n CSS_CLASS.transition.color,\n CSS_CLASS.control[\n props.isDisabled\n ? 'none'\n : (props.control ?? (isOpen || activeSegment ? 'boxShadowSelect' : 'boxShadowOnlyHover'))\n ],\n ])}\n >\n {type !== 'select' ? (\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n ) : null}\n {isShowPlaceholder ? (\n <Typography\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n style={{\n color: CSS_VARS.genre.input[props.genre].placeholder,\n }}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.inputSegment,\n CSS_CLASS.transition.color,\n classNameTypography,\n !!date.value && CSS_CLASS.component.datePicker.inputSegmentHasValue,\n activeSegment === date.type && CSS_CLASS.component.datePicker.inputSegmentIsActive,\n ])}\n style={styleTypography}\n onClick={(e) => {\n if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </div>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n {isShowButtonList ? (\n <div className={setClasses([CSS_CLASS.component.datePicker.listButton])}>\n {props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n tabIndex={0}\n icons={[{ name: 'Close', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(null);\n onClearInput();\n setIsError(false);\n }}\n />\n ) : null}\n {type !== 'manual' ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n tabIndex={0}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n <Popover\n style={stylePopover}\n className={classNamePopover}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n floatingStyles={floatingStyles}\n ref={refFloating}\n control='boxShadowSelect'\n isDisabledBoxShadow\n >\n <div className={setClasses([CSS_CLASS.component.datePicker.dropdownList])}>\n <Stack\n style={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n type='button'\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => onPrevMonth()}\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack style={{ gap: '8px' }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => onNextMonth()}\n isWidthAsHeight\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <div\n className={setClasses([CSS_CLASS.component.datePicker.dropdownListDays])}\n style={setStyles([\n {\n [CSS_VARS_RAW.component.datePicker.rows]: rows,\n },\n ])}\n >\n {daysInWeek.map((e, index) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.dayOfWeek,\n classNameTypographyDay,\n CSS_CLASS.transition.color,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: daysInMonth[0]?.weekOfMonth - 1,\n [CSS_VARS_RAW.component.datePicker.column]: index + 1,\n },\n ])}\n tabIndex={-1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </div>\n ))}\n {daysInMonth.map((day) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.day,\n classNameTypographyDay,\n CSS_CLASS.control[day.isDisabled || day.isChoice ? 'none' : 'boxShadow'],\n CSS_CLASS.transition.color,\n day.isDisabled && CSS_CLASS.component.datePicker.dayIsHidden,\n day.isToday && CSS_CLASS.component.datePicker.dayIsToday,\n day.isWeekend && CSS_CLASS.component.datePicker.dayIsWeekend,\n day.isChoice && CSS_CLASS.component.datePicker.dayIsChoice,\n !day.isCurrentMonth && CSS_CLASS.component.datePicker.dayIsNotCurrentMonth,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: day?.weekOfMonth + 1,\n [CSS_VARS_RAW.component.datePicker.column]: day.dayOfWeek,\n },\n ])}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n >\n {day.labelNumber}\n </div>\n ))}\n </div>\n </div>\n </Popover>\n {(props?.error?.isError || isError) && (\n <ErrorMessage\n size={props?.error?.size ?? props.size}\n sxTypography={{ size: 16, weight: '400', ...props?.error?.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nfunction getParseDateString(value: string) {\n // 1. ISO формат (YYYY-MM-DD)\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n // 2. Локализованный формат (M/D/YYYY или D/M/YYYY)\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const [_, p1, p2, p3] = match;\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n // Определяем порядок\n // Если num1 > 12 → значит это день (D/M/YYYY)\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n // По умолчанию считаем M/D/YYYY\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"date-picker-Uuce_InW.js","names":[],"sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { IErrorMessage } from '@local/components/error';\nimport { ISelectMonth } from '@local/components/select';\nimport { ITypography } from '@local/styles/utils';\nimport { IThemeControl, IThemeGenreDatePicker, IThemeSize } from '@local/styles/utils/types';\n\nimport { CSSProperties, HTMLInputAutoCompleteAttribute } from 'react';\n\nexport type IDatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type IDatePickerType = 'manual' | 'select' | 'manualAndSelect';\n\nexport type IDatePickerCommon = {\n className?: string;\n style?: CSSProperties;\n\n classNamePopover?: string;\n stylePopover?: CSSProperties;\n\n sxTypography?: ITypography;\n control?: IThemeControl;\n error?: IErrorMessage;\n\n genre: IThemeGenreDatePicker;\n\n id?: string;\n\n isNiceNumber?: boolean;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n isShowClearButton?: boolean;\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: ISelectMonth['monthsLocale'];\n weeks: IDatePickerTranslateWeek[];\n inputs: IDatePickerTranslateInput;\n };\n\n notValidDate?: Omit<IErrorMessage, 'size' | 'isError'>;\n\n mode?: IDatePickerMode;\n\n type?: IDatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n};\n\ntype IDatePickerControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype IDatePickerUncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type IDatePicker = IDatePickerCommon & (IDatePickerControlledValue | IDatePickerUncontrolledValue);\n\nexport interface IDatePickerDay {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isChoice: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type IDatePickerTranslateMonth = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type IDatePickerTranslateWeek = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type IDatePickerTranslateInput = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\nimport { Button } from '@local/components/button';\nimport { ErrorMessage } from '@local/components/error';\nimport { Popover, usePopover } from '@local/components/popover';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport moment, { Moment } from 'moment';\nimport {\n ChangeEvent,\n Fragment,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n DatePickerVariant,\n IDatePicker,\n IDatePickerDay,\n IDatePickerMode,\n IDatePickerTranslateWeek,\n IDatePickerType,\n} from './component.types';\n\nconst weekOrder: IDatePickerTranslateWeek['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nexport const DatePicker = (props: IDatePicker) => {\n const { onChange } = props;\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: IDatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n }\n\n return props.mode;\n }, [props.mode]);\n\n const type: IDatePickerType = useMemo(() => {\n if (!props.type) {\n return 'manualAndSelect';\n }\n\n return props.type;\n }, [props.type]);\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment, mode),\n segmentPrev: getPrevSegment(segment, mode),\n onNextSegment: () => setActiveSegment(getNextSegment(segment, mode)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment, mode)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, mode, input]);\n\n const daysInWeek = useMemo(() => {\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: IDatePickerDay[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: IDatePickerDay[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isChoice: dateCurrent.valueOf() === valueMoment?.valueOf(),\n isDisabled: !!(\n (dateMin && dateCurrent.isBefore(dateMin, 'day')) ||\n (dateMax && dateCurrent.isAfter(dateMax, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const sizeRadius = useMemo(() => CSS_VARS.sizeValue[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => CSS_VARS.sizeValue[props.size].padding, [props.size]);\n\n // const height = useMemo(() => 40 + rows * 28 + (rows - 1) * 6 + sizePadding * 2, [sizePadding, rows]);\n\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n isFocusTrap: true,\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n getDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }, [activeSegment, type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }, [isOpen, props.onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n\n const result = getParseDateString(value);\n\n if (result) {\n setInput({\n DD: String(result.day).padStart(2, '0'),\n MM: String(result.month).padStart(2, '0'),\n YYYY: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n\n const { className: classNameTypographyDay, style: styleTypographyDay } = useTypographyStyles({\n sx: {\n variant: EXTRA_VALUE.sizeToController.small,\n weight: '500',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n size: 16,\n weight: props.isBold ? '700' : '400',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameWrapper, style: styleWrapper } = useMemo(() => {\n const className = setClasses([CSS_CLASS.component.datePicker.wrapper, props.className]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.padding] = CSS_VARS.size[props.size].padding;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBackground] = CSS_VARS.genre.select[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.inputBackgroundHover] = CSS_VARS.genre.input[props.genre].background;\n vars[CSS_VARS_RAW.component.datePicker.inputSegmentBackgroundActive] = CSS_VARS.palette.fillQuaternaryLight;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColor] = CSS_VARS.genre.input[props.genre].border;\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColorHover] = CSS_VARS.genre.input[props.genre].border;\n\n vars[CSS_VARS_RAW.component.datePicker.inputColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputColorHover] = CSS_VARS.genre.input[props.genre].color;\n\n vars[CSS_VARS_RAW.component.datePicker.inputPadding] = isShowPlaceholder\n ? `0px ${CSS_VARS.size[props.size].padding}`\n : `0px ${CSS_VARS.size[props.size].padding} 0px ${CSS_VARS.sizeValue[props.size].padding - 2}px`;\n vars[CSS_VARS_RAW.component.datePicker.inputHeight] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.datePicker.inputRadius] = CSS_VARS.size[props.size].radius;\n\n vars[CSS_VARS_RAW.component.datePicker.inputValueColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputPlaceholderColor] = CSS_VARS.genre.input[props.genre].placeholder;\n vars[CSS_VARS_RAW.component.datePicker.buttonToggleRight] = `${CSS_VARS.size[props.size].padding}`;\n vars[CSS_VARS_RAW.component.datePicker.buttonClearRight] =\n `${CSS_VARS.sizeValue[props.size].padding * 2 + CSS_VARS.sizeValue[props.size].height}px`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [props.className, props.style, isShowPlaceholder, props.genre, props.size]);\n\n const { className: classNamePopover, style: stylePopover } = useMemo(() => {\n const className = setClasses([props.classNamePopover]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.dayRadius] = `${sizeRadius}px`;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundRest] = CSS_VARS.genre.datepicker[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundHover] =\n CSS_VARS.genre.datepicker[props.genre].background.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundWeekend] =\n CSS_VARS.genre.datepicker[props.genre].background.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundToday] =\n CSS_VARS.genre.datepicker[props.genre].background.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundChoice] =\n CSS_VARS.genre.datepicker[props.genre].background.choice;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBorderRest] = CSS_VARS.genre.datepicker[props.genre].border.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderWeekend] = CSS_VARS.genre.datepicker[props.genre].border.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderToday] = CSS_VARS.genre.datepicker[props.genre].border.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderChoice] = CSS_VARS.genre.datepicker[props.genre].border.choice;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderHover] = CSS_VARS.genre.datepicker[props.genre].border.hover;\n\n vars[CSS_VARS_RAW.component.datePicker.dayColorRest] = CSS_VARS.genre.datepicker[props.genre].color.index;\n vars[CSS_VARS_RAW.component.datePicker.dayColorHover] = CSS_VARS.genre.datepicker[props.genre].color.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayColorWeekend] = CSS_VARS.genre.datepicker[props.genre].color.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayColorToday] = CSS_VARS.genre.datepicker[props.genre].color.today;\n vars[CSS_VARS_RAW.component.datePicker.dayColorChoice] = CSS_VARS.genre.datepicker[props.genre].color.choice;\n\n const style = setStyles([\n Object.keys(vars).length ? vars : undefined,\n {\n background: CSS_VARS.genre.popover[props.genre].background,\n border: `solid 1px ${CSS_VARS.genre.input[props.genre].border}`,\n },\n props.stylePopover,\n ]);\n\n return { className, style };\n }, [props.classNamePopover, props.stylePopover, props.genre, sizeRadius]);\n\n const isShowButtonList = useMemo(() => {\n return (\n type !== 'manual' ||\n (props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly)\n );\n }, [type, isHasInput, isHasValue, props.isShowClearButton, props?.isDisabled, props?.isReadOnly]);\n return (\n <>\n <div className={classNameWrapper} style={styleWrapper} tabIndex={-1}>\n <div\n ref={refReference as RefObject<HTMLDivElement | null>}\n tabIndex={-1}\n onClick={() => {\n if (type === 'select') {\n toggle();\n return;\n }\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n className={setClasses([\n CSS_CLASS.component.datePicker.inputWrapper,\n CSS_CLASS.transition.color,\n CSS_CLASS.control[\n props.isDisabled\n ? 'none'\n : (props.control ?? (isOpen || activeSegment ? 'boxShadowSelect' : 'boxShadowOnlyHover'))\n ],\n ])}\n >\n {type !== 'select' ? (\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n ) : null}\n {isShowPlaceholder ? (\n <Typography\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n style={{\n color: CSS_VARS.genre.input[props.genre].placeholder,\n }}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.inputSegment,\n CSS_CLASS.transition.color,\n classNameTypography,\n !!date.value && CSS_CLASS.component.datePicker.inputSegmentHasValue,\n activeSegment === date.type && CSS_CLASS.component.datePicker.inputSegmentIsActive,\n ])}\n style={styleTypography}\n onClick={(e) => {\n if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </div>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n {isShowButtonList ? (\n <div className={setClasses([CSS_CLASS.component.datePicker.listButton])}>\n {props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n tabIndex={0}\n icons={[{ name: 'Close', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(null);\n onClearInput();\n setIsError(false);\n }}\n />\n ) : null}\n {type !== 'manual' ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n tabIndex={0}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n <Popover\n style={stylePopover}\n className={classNamePopover}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n floatingStyles={floatingStyles}\n ref={refFloating}\n control='boxShadowSelect'\n isDisabledBoxShadow\n >\n <div className={setClasses([CSS_CLASS.component.datePicker.dropdownList])}>\n <Stack\n style={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n type='button'\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => onPrevMonth()}\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack style={{ gap: '8px' }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => onNextMonth()}\n isWidthAsHeight\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <div\n className={setClasses([CSS_CLASS.component.datePicker.dropdownListDays])}\n style={setStyles([\n {\n [CSS_VARS_RAW.component.datePicker.rows]: rows,\n },\n ])}\n >\n {daysInWeek.map((e, index) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.dayOfWeek,\n classNameTypographyDay,\n CSS_CLASS.transition.color,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: daysInMonth[0]?.weekOfMonth - 1,\n [CSS_VARS_RAW.component.datePicker.column]: index + 1,\n },\n ])}\n tabIndex={-1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </div>\n ))}\n {daysInMonth.map((day) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.day,\n classNameTypographyDay,\n CSS_CLASS.control[day.isDisabled || day.isChoice ? 'none' : 'boxShadow'],\n CSS_CLASS.transition.color,\n day.isDisabled && CSS_CLASS.component.datePicker.dayIsHidden,\n day.isToday && CSS_CLASS.component.datePicker.dayIsToday,\n day.isWeekend && CSS_CLASS.component.datePicker.dayIsWeekend,\n day.isChoice && CSS_CLASS.component.datePicker.dayIsChoice,\n !day.isCurrentMonth && CSS_CLASS.component.datePicker.dayIsNotCurrentMonth,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: day?.weekOfMonth + 1,\n [CSS_VARS_RAW.component.datePicker.column]: day.dayOfWeek,\n },\n ])}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n >\n {day.labelNumber}\n </div>\n ))}\n </div>\n </div>\n </Popover>\n {(props?.error?.isError || isError) && (\n <ErrorMessage\n size={props?.error?.size ?? props.size}\n sxTypography={{ size: 16, weight: '400', ...props?.error?.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nfunction getParseDateString(value: string) {\n // 1. ISO формат (YYYY-MM-DD)\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n // 2. Локализованный формат (M/D/YYYY или D/M/YYYY)\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const [_, p1, p2, p3] = match;\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n // Определяем порядок\n // Если num1 > 12 → значит это день (D/M/YYYY)\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n // По умолчанию считаем M/D/YYYY\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as W } from "./chunk-D1xtDmiO.js";
1
+ import { t as W } from "./chunk-cI0lbGMq.js";
2
2
  import { createContext as X, createElement as $, useContext as z, useEffect as Z, useLayoutEffect as h, useReducer as p, useRef as Q, useState as x } from "react";
3
3
  var ee = /* @__PURE__ */ W(((r) => {
4
4
  function i(e, t) {
@@ -480,4 +480,4 @@ export {
480
480
  ie as t
481
481
  };
482
482
 
483
- //# sourceMappingURL=dist-Dq_YJa2q.js.map
483
+ //# sourceMappingURL=dist-BV0C3tLK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dist-Dq_YJa2q.js","names":["runWithPriority","NormalPriority","createContext","createContextOrig","useContextOrig"],"sources":["../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/cjs/scheduler.development.js","../node_modules/scheduler/index.js","../node_modules/use-context-selector/dist/index.js"],"sourcesContent":["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","/**\n * @license React\n * scheduler.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime &&\n shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n }\n function push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node),\n (heap[index] = parent),\n (index = parentIndex);\n else break a;\n }\n }\n function peek(heap) {\n return 0 === heap.length ? null : heap[0];\n }\n function pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex);\n else break a;\n }\n }\n return first;\n }\n function compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n }\n function advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n }\n function handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n }\n }\n function shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n }\n function requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n exports.unstable_now = void 0;\n if (\n \"object\" === typeof performance &&\n \"function\" === typeof performance.now\n ) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n }\n var taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout =\n \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate =\n \"undefined\" !== typeof setImmediate ? setImmediate : null,\n isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\n if (\"function\" === typeof localSetImmediate)\n var schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\n else if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n } else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\n exports.unstable_IdlePriority = 5;\n exports.unstable_ImmediatePriority = 1;\n exports.unstable_LowPriority = 4;\n exports.unstable_NormalPriority = 3;\n exports.unstable_Profiling = null;\n exports.unstable_UserBlockingPriority = 2;\n exports.unstable_cancelCallback = function (task) {\n task.callback = null;\n };\n exports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n };\n exports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n };\n exports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_requestPaint = function () {\n needsPaint = !0;\n };\n exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n ) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0),\n schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n };\n exports.unstable_shouldYield = shouldYieldToHost;\n exports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n };\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import { createElement, createContext as createContextOrig, useContext as useContextOrig, useEffect, useLayoutEffect, useReducer, useRef, useState, } from 'react';\nimport { unstable_NormalPriority as NormalPriority, unstable_runWithPriority as runWithPriority, } from 'scheduler';\nconst CONTEXT_VALUE = Symbol();\nconst ORIGINAL_PROVIDER = Symbol();\nconst isSSR = typeof window === 'undefined' ||\n /ServerSideRendering/.test(window.navigator && window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\n// for preact that doesn't have runWithPriority\nconst runWithNormalPriority = runWithPriority\n ? (fn) => {\n try {\n runWithPriority(NormalPriority, fn);\n }\n catch (e) {\n if (e.message === 'Not implemented.') {\n fn();\n }\n else {\n throw e;\n }\n }\n }\n : (fn) => fn();\nconst createProvider = (ProviderOrig) => {\n const ContextProvider = ({ value, children, }) => {\n const valueRef = useRef(value);\n const versionRef = useRef(0);\n const [resolve, setResolve] = useState(null);\n if (resolve) {\n resolve(value);\n setResolve(null);\n }\n const contextValue = useRef();\n if (!contextValue.current) {\n const listeners = new Set();\n const update = (fn, options) => {\n versionRef.current += 1;\n const action = {\n n: versionRef.current,\n };\n if (options === null || options === void 0 ? void 0 : options.suspense) {\n action.n *= -1; // this is intentional to make it temporary version\n action.p = new Promise((r) => {\n setResolve(() => (v) => {\n action.v = v;\n delete action.p;\n r(v);\n });\n });\n }\n listeners.forEach((listener) => listener(action));\n fn();\n };\n contextValue.current = {\n [CONTEXT_VALUE]: {\n /* \"v\"alue */ v: valueRef,\n /* versio\"n\" */ n: versionRef,\n /* \"l\"isteners */ l: listeners,\n /* \"u\"pdate */ u: update,\n },\n };\n }\n useIsomorphicLayoutEffect(() => {\n valueRef.current = value;\n versionRef.current += 1;\n runWithNormalPriority(() => {\n contextValue.current[CONTEXT_VALUE].l.forEach((listener) => {\n listener({ n: versionRef.current, v: value });\n });\n });\n }, [value]);\n return createElement(ProviderOrig, { value: contextValue.current }, children);\n };\n return ContextProvider;\n};\nconst identity = (x) => x;\n/**\n * This creates a special context for `useContextSelector`.\n *\n * @example\n * import { createContext } from 'use-context-selector';\n *\n * const PersonContext = createContext({ firstName: '', familyName: '' });\n */\nexport function createContext(defaultValue) {\n const context = createContextOrig({\n [CONTEXT_VALUE]: {\n /* \"v\"alue */ v: { current: defaultValue },\n /* versio\"n\" */ n: { current: -1 },\n /* \"l\"isteners */ l: new Set(),\n /* \"u\"pdate */ u: (f) => f(),\n },\n });\n context[ORIGINAL_PROVIDER] = context.Provider;\n context.Provider = createProvider(context.Provider);\n delete context.Consumer; // no support for Consumer\n return context;\n}\n/**\n * This hook returns context selected value by selector.\n *\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n *\n * The selector should return referentially equal result for same input for better performance.\n *\n * @example\n * import { useContextSelector } from 'use-context-selector';\n *\n * const firstName = useContextSelector(PersonContext, (state) => state.firstName);\n */\nexport function useContextSelector(context, selector) {\n const contextValue = useContextOrig(context)[CONTEXT_VALUE];\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!contextValue) {\n throw new Error('useContextSelector requires special context');\n }\n }\n const { \n /* \"v\"alue */ v: { current: value }, \n /* versio\"n\" */ n: { current: version }, \n /* \"l\"isteners */ l: listeners, } = contextValue;\n const selected = selector(value);\n const [state, dispatch] = useReducer((prev, action) => {\n if (!action) {\n // case for `dispatch()` below\n return [value, selected];\n }\n if ('p' in action) {\n throw action.p;\n }\n if (action.n === version) {\n if (Object.is(prev[1], selected)) {\n return prev; // bail out\n }\n return [value, selected];\n }\n try {\n if ('v' in action) {\n if (Object.is(prev[0], action.v)) {\n return prev; // do not update\n }\n const nextSelected = selector(action.v);\n if (Object.is(prev[1], nextSelected)) {\n return prev; // do not update\n }\n return [action.v, nextSelected];\n }\n }\n catch (_e) {\n // ignored (stale props or some other reason)\n }\n return [...prev]; // schedule update\n }, [value, selected]);\n if (!Object.is(state[1], selected)) {\n // schedule re-render\n // this is safe because it's self contained\n dispatch();\n }\n useIsomorphicLayoutEffect(() => {\n listeners.add(dispatch);\n return () => {\n listeners.delete(dispatch);\n };\n }, [listeners]);\n return state[1];\n}\n/**\n * This hook returns the entire context value.\n * Use this instead of React.useContext for consistent behavior.\n *\n * @example\n * import { useContext } from 'use-context-selector';\n *\n * const person = useContext(PersonContext);\n */\nexport function useContext(context) {\n return useContextSelector(context, identity);\n}\n/**\n * This hook returns an update function to wrap an updating function\n *\n * Use this for a function that will change a value in\n * concurrent rendering in React 18.\n * Otherwise, there's no need to use this hook.\n *\n * @example\n * import { useContextUpdate } from 'use-context-selector';\n *\n * const update = useContextUpdate();\n *\n * // Wrap set state function\n * update(() => setState(...));\n *\n * // Experimental suspense mode\n * update(() => setState(...), { suspense: true });\n */\nexport function useContextUpdate(context) {\n const contextValue = useContextOrig(context)[CONTEXT_VALUE];\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!contextValue) {\n throw new Error('useContextUpdate requires special context');\n }\n }\n const { u: update } = contextValue;\n return update;\n}\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This is a Provider component for bridging multiple react roots\n *\n * @example\n * const valueToBridge = useBridgeValue(PersonContext);\n * return (\n * <Renderer>\n * <BridgeProvider context={PersonContext} value={valueToBridge}>\n * {children}\n * </BridgeProvider>\n * </Renderer>\n * );\n */\nexport const BridgeProvider = ({ context, value, children, }) => {\n const { [ORIGINAL_PROVIDER]: ProviderOrig } = context;\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!ProviderOrig) {\n throw new Error('BridgeProvider requires special context');\n }\n }\n return createElement(ProviderOrig, { value }, children);\n};\n/**\n * This hook return a value for BridgeProvider\n */\nexport const useBridgeValue = (context) => {\n const bridgeValue = useContextOrig(context);\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!bridgeValue[CONTEXT_VALUE]) {\n throw new Error('useBridgeValue requires special context');\n }\n }\n return bridgeValue;\n};\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"dist-BV0C3tLK.js","names":["runWithPriority","NormalPriority","createContext","createContextOrig","useContextOrig"],"sources":["../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/cjs/scheduler.development.js","../node_modules/scheduler/index.js","../node_modules/use-context-selector/dist/index.js"],"sourcesContent":["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","/**\n * @license React\n * scheduler.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime &&\n shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n }\n function push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node),\n (heap[index] = parent),\n (index = parentIndex);\n else break a;\n }\n }\n function peek(heap) {\n return 0 === heap.length ? null : heap[0];\n }\n function pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex);\n else break a;\n }\n }\n return first;\n }\n function compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n }\n function advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n }\n function handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n }\n }\n function shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n }\n function requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n exports.unstable_now = void 0;\n if (\n \"object\" === typeof performance &&\n \"function\" === typeof performance.now\n ) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n }\n var taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout =\n \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate =\n \"undefined\" !== typeof setImmediate ? setImmediate : null,\n isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\n if (\"function\" === typeof localSetImmediate)\n var schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\n else if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n } else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\n exports.unstable_IdlePriority = 5;\n exports.unstable_ImmediatePriority = 1;\n exports.unstable_LowPriority = 4;\n exports.unstable_NormalPriority = 3;\n exports.unstable_Profiling = null;\n exports.unstable_UserBlockingPriority = 2;\n exports.unstable_cancelCallback = function (task) {\n task.callback = null;\n };\n exports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n };\n exports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n };\n exports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_requestPaint = function () {\n needsPaint = !0;\n };\n exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n ) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0),\n schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n };\n exports.unstable_shouldYield = shouldYieldToHost;\n exports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n };\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import { createElement, createContext as createContextOrig, useContext as useContextOrig, useEffect, useLayoutEffect, useReducer, useRef, useState, } from 'react';\nimport { unstable_NormalPriority as NormalPriority, unstable_runWithPriority as runWithPriority, } from 'scheduler';\nconst CONTEXT_VALUE = Symbol();\nconst ORIGINAL_PROVIDER = Symbol();\nconst isSSR = typeof window === 'undefined' ||\n /ServerSideRendering/.test(window.navigator && window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\n// for preact that doesn't have runWithPriority\nconst runWithNormalPriority = runWithPriority\n ? (fn) => {\n try {\n runWithPriority(NormalPriority, fn);\n }\n catch (e) {\n if (e.message === 'Not implemented.') {\n fn();\n }\n else {\n throw e;\n }\n }\n }\n : (fn) => fn();\nconst createProvider = (ProviderOrig) => {\n const ContextProvider = ({ value, children, }) => {\n const valueRef = useRef(value);\n const versionRef = useRef(0);\n const [resolve, setResolve] = useState(null);\n if (resolve) {\n resolve(value);\n setResolve(null);\n }\n const contextValue = useRef();\n if (!contextValue.current) {\n const listeners = new Set();\n const update = (fn, options) => {\n versionRef.current += 1;\n const action = {\n n: versionRef.current,\n };\n if (options === null || options === void 0 ? void 0 : options.suspense) {\n action.n *= -1; // this is intentional to make it temporary version\n action.p = new Promise((r) => {\n setResolve(() => (v) => {\n action.v = v;\n delete action.p;\n r(v);\n });\n });\n }\n listeners.forEach((listener) => listener(action));\n fn();\n };\n contextValue.current = {\n [CONTEXT_VALUE]: {\n /* \"v\"alue */ v: valueRef,\n /* versio\"n\" */ n: versionRef,\n /* \"l\"isteners */ l: listeners,\n /* \"u\"pdate */ u: update,\n },\n };\n }\n useIsomorphicLayoutEffect(() => {\n valueRef.current = value;\n versionRef.current += 1;\n runWithNormalPriority(() => {\n contextValue.current[CONTEXT_VALUE].l.forEach((listener) => {\n listener({ n: versionRef.current, v: value });\n });\n });\n }, [value]);\n return createElement(ProviderOrig, { value: contextValue.current }, children);\n };\n return ContextProvider;\n};\nconst identity = (x) => x;\n/**\n * This creates a special context for `useContextSelector`.\n *\n * @example\n * import { createContext } from 'use-context-selector';\n *\n * const PersonContext = createContext({ firstName: '', familyName: '' });\n */\nexport function createContext(defaultValue) {\n const context = createContextOrig({\n [CONTEXT_VALUE]: {\n /* \"v\"alue */ v: { current: defaultValue },\n /* versio\"n\" */ n: { current: -1 },\n /* \"l\"isteners */ l: new Set(),\n /* \"u\"pdate */ u: (f) => f(),\n },\n });\n context[ORIGINAL_PROVIDER] = context.Provider;\n context.Provider = createProvider(context.Provider);\n delete context.Consumer; // no support for Consumer\n return context;\n}\n/**\n * This hook returns context selected value by selector.\n *\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n *\n * The selector should return referentially equal result for same input for better performance.\n *\n * @example\n * import { useContextSelector } from 'use-context-selector';\n *\n * const firstName = useContextSelector(PersonContext, (state) => state.firstName);\n */\nexport function useContextSelector(context, selector) {\n const contextValue = useContextOrig(context)[CONTEXT_VALUE];\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!contextValue) {\n throw new Error('useContextSelector requires special context');\n }\n }\n const { \n /* \"v\"alue */ v: { current: value }, \n /* versio\"n\" */ n: { current: version }, \n /* \"l\"isteners */ l: listeners, } = contextValue;\n const selected = selector(value);\n const [state, dispatch] = useReducer((prev, action) => {\n if (!action) {\n // case for `dispatch()` below\n return [value, selected];\n }\n if ('p' in action) {\n throw action.p;\n }\n if (action.n === version) {\n if (Object.is(prev[1], selected)) {\n return prev; // bail out\n }\n return [value, selected];\n }\n try {\n if ('v' in action) {\n if (Object.is(prev[0], action.v)) {\n return prev; // do not update\n }\n const nextSelected = selector(action.v);\n if (Object.is(prev[1], nextSelected)) {\n return prev; // do not update\n }\n return [action.v, nextSelected];\n }\n }\n catch (_e) {\n // ignored (stale props or some other reason)\n }\n return [...prev]; // schedule update\n }, [value, selected]);\n if (!Object.is(state[1], selected)) {\n // schedule re-render\n // this is safe because it's self contained\n dispatch();\n }\n useIsomorphicLayoutEffect(() => {\n listeners.add(dispatch);\n return () => {\n listeners.delete(dispatch);\n };\n }, [listeners]);\n return state[1];\n}\n/**\n * This hook returns the entire context value.\n * Use this instead of React.useContext for consistent behavior.\n *\n * @example\n * import { useContext } from 'use-context-selector';\n *\n * const person = useContext(PersonContext);\n */\nexport function useContext(context) {\n return useContextSelector(context, identity);\n}\n/**\n * This hook returns an update function to wrap an updating function\n *\n * Use this for a function that will change a value in\n * concurrent rendering in React 18.\n * Otherwise, there's no need to use this hook.\n *\n * @example\n * import { useContextUpdate } from 'use-context-selector';\n *\n * const update = useContextUpdate();\n *\n * // Wrap set state function\n * update(() => setState(...));\n *\n * // Experimental suspense mode\n * update(() => setState(...), { suspense: true });\n */\nexport function useContextUpdate(context) {\n const contextValue = useContextOrig(context)[CONTEXT_VALUE];\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!contextValue) {\n throw new Error('useContextUpdate requires special context');\n }\n }\n const { u: update } = contextValue;\n return update;\n}\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This is a Provider component for bridging multiple react roots\n *\n * @example\n * const valueToBridge = useBridgeValue(PersonContext);\n * return (\n * <Renderer>\n * <BridgeProvider context={PersonContext} value={valueToBridge}>\n * {children}\n * </BridgeProvider>\n * </Renderer>\n * );\n */\nexport const BridgeProvider = ({ context, value, children, }) => {\n const { [ORIGINAL_PROVIDER]: ProviderOrig } = context;\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!ProviderOrig) {\n throw new Error('BridgeProvider requires special context');\n }\n }\n return createElement(ProviderOrig, { value }, children);\n};\n/**\n * This hook return a value for BridgeProvider\n */\nexport const useBridgeValue = (context) => {\n const bridgeValue = useContextOrig(context);\n if (typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n if (!bridgeValue[CONTEXT_VALUE]) {\n throw new Error('useBridgeValue requires special context');\n }\n }\n return bridgeValue;\n};\n"],"x_google_ignoreList":[0,1,2,3],"mappings":";;;AAWA,WAAS,EAAK,GAAM,GAAM;AACxB,QAAI,IAAQ,EAAK;AACjB,IAAA,EAAK,KAAK,CAAA;AACV,IAAA,EAAG,QAAO,IAAI,KAAS;AACrB,UAAI,IAAe,IAAQ,MAAO,GAChC,IAAS,EAAK,CAAA;AAChB,UAAI,IAAI,EAAQ,GAAQ,CAAA,EACrB,CAAA,EAAK,CAAA,IAAe,GAAQ,EAAK,CAAA,IAAS,GAAU,IAAQ;AAAA,UAC1D,OAAM;AAAA;;AAGf,WAAS,EAAK,GAAM;AAClB,WAAa,EAAK,WAAX,IAAoB,OAAO,EAAK,CAAA;AAAA;AAEzC,WAAS,EAAI,GAAM;AACjB,QAAU,EAAK,WAAX,EAAmB,QAAO;AAC9B,QAAI,IAAQ,EAAK,CAAA,GACf,IAAO,EAAK,IAAA;AACd,QAAI,MAAS,GAAO;AAClB,MAAA,EAAK,CAAA,IAAK;AACV,MAAA,EAAG,UACG,IAAQ,GAAG,IAAS,EAAK,QAAQ,IAAa,MAAW,GAC7D,IAAQ,KAER;AACA,YAAI,IAAY,KAAK,IAAQ,KAAK,GAChC,IAAO,EAAK,CAAA,GACZ,IAAa,IAAY,GACzB,IAAQ,EAAK,CAAA;AACf,YAAI,IAAI,EAAQ,GAAM,CAAA,EACpB,CAAA,IAAa,KAAU,IAAI,EAAQ,GAAO,CAAA,KACpC,EAAK,CAAA,IAAS,GACf,EAAK,CAAA,IAAc,GACnB,IAAQ,MACP,EAAK,CAAA,IAAS,GACf,EAAK,CAAA,IAAa,GAClB,IAAQ;AAAA,iBACN,IAAa,KAAU,IAAI,EAAQ,GAAO,CAAA,EAChD,CAAA,EAAK,CAAA,IAAS,GAAS,EAAK,CAAA,IAAc,GAAQ,IAAQ;AAAA,YACxD,OAAM;AAAA;;AAGf,WAAO;AAAA;AAET,WAAS,EAAQ,GAAG,GAAG;AACrB,QAAI,IAAO,EAAE,YAAY,EAAE;AAC3B,WAAa,MAAN,IAAa,IAAO,EAAE,KAAK,EAAE;AAAA;AAGtC,MADA,EAAQ,eAAe,QACN,OAAO,eAApB,YAAkD,OAAO,YAAY,OAAlC,YAAuC;AAC5E,QAAI,IAAmB;AACvB,IAAA,EAAQ,eAAe,WAAY;AACjC,aAAO,EAAiB,IAAA;AAAA;SAErB;AACL,QAAI,IAAY,MACd,IAAc,EAAU,IAAA;AAC1B,IAAA,EAAQ,eAAe,WAAY;AACjC,aAAO,EAAU,IAAA,IAAQ;AAAA;;AAG7B,MAAI,IAAY,CAAA,GACd,IAAa,CAAA,GACb,IAAgB,GAChB,IAAc,MACd,IAAuB,GACvB,IAAmB,IACnB,IAA0B,IAC1B,IAAyB,IACzB,IAAa,IACb,IAAiC,OAAO,cAAtB,aAAmC,aAAa,MAClE,IAAmC,OAAO,gBAAtB,aAAqC,eAAe,MACxE,IAAoC,OAAO,eAAvB,MAAsC,eAAe;AAC3E,WAAS,EAAc,GAAa;AAClC,aAAS,IAAQ,EAAK,CAAA,GAAsB,MAAT,QAAkB;AACnD,UAAa,EAAM,aAAf,KAAyB,CAAA,EAAI,CAAA;AAAA,eACxB,EAAM,aAAa,EAC1B,CAAA,EAAI,CAAA,GACD,EAAM,YAAY,EAAM,gBACzB,EAAK,GAAW,CAAA;AAAA,UACf;AACL,MAAA,IAAQ,EAAK,CAAA;AAAA;;AAGjB,WAAS,EAAc,GAAa;AAGlC,QAFA,IAAyB,IACzB,EAAc,CAAA,GACV,CAAC,EACH,KAAa,EAAK,CAAA,MAAd,KACD,CAAA,IAA0B,IACzB,MACI,IAAuB,IAAK,EAAA;AAAA,SAC/B;AACH,UAAI,IAAa,EAAK,CAAA;AACtB,MAAS,MAAT,QACE,EAAmB,GAAe,EAAW,YAAY,CAAA;AAAA;;AAGjE,MAAI,IAAuB,IACzB,IAAgB,IAChB,IAAgB,GAChB,IAAY;AACd,WAAS,IAAoB;AAC3B,WAAO,IACH,KACA,EAAA,EAAQ,aAAA,IAAiB,IAAY;AAAA;AAI3C,WAAS,IAA2B;AAElC,QADA,IAAa,IACT,GAAsB;AACxB,UAAI,IAAc,EAAQ,aAAA;AAC1B,MAAA,IAAY;AACZ,UAAI,IAAc;AAClB,UAAI;AACF,QAAA,GAAG;AACD,UAAA,IAA0B,IAC1B,MACI,IAAyB,IAC3B,EAAkB,CAAA,GACjB,IAAgB,KACnB,IAAmB;AACnB,cAAI,IAAwB;AAC5B,cAAI;AACF,YAAA,GAAG;AAED,mBADA,EAAc,CAAA,GAEZ,IAAc,EAAK,CAAA,GACV,MAAT,QACA,EACE,EAAY,iBAAiB,KAAe,EAAA,MAG9C;AACA,oBAAI,IAAW,EAAY;AAC3B,oBAAmB,OAAO,KAAtB,YAAgC;AAClC,kBAAA,EAAY,WAAW,MACvB,IAAuB,EAAY;AACnC,sBAAI,IAAuB,EACzB,EAAY,kBAAkB,CAAA;AAGhC,sBADA,IAAc,EAAQ,aAAA,GACH,OAAO,KAAtB,YAA4C;AAC9C,oBAAA,EAAY,WAAW,GACvB,EAAc,CAAA,GACd,IAAc;AACd,0BAAM;AAAA;AAER,kBAAA,MAAgB,EAAK,CAAA,KAAc,EAAI,CAAA,GACvC,EAAc,CAAA;AAAA,sBACT,CAAA,EAAI,CAAA;AACX,gBAAA,IAAc,EAAK,CAAA;AAAA;AAErB,kBAAa,MAAT,KAAsB,CAAA,IAAc;AAAA,mBACnC;AACH,oBAAI,IAAa,EAAK,CAAA;AACtB,gBAAS,MAAT,QACE,EACE,GACA,EAAW,YAAY,CAAA,GAE3B,IAAc;AAAA;;AAGlB,kBAAM;AAAA;AAEL,YAAA,IAAc,MACZ,IAAuB,GACvB,IAAmB;AAAA;AAExB,UAAA,IAAc;AAAA;;AAGhB,QAAA,IACI,EAAA,IACC,IAAuB;AAAA;;;AAIlC,MAAI;AACJ,MAAmB,OAAO,KAAtB,WACF,CAAA,IAAmC,WAAY;AAC7C,IAAA,EAAkB,CAAA;AAAA;WAEG,OAAO,iBAAvB,KAAuC;AAC9C,QAAI,IAAU,IAAI,eAAA,GAChB,IAAO,EAAQ;AACjB,IAAA,EAAQ,MAAM,YAAY,GAC1B,IAAmC,WAAY;AAC7C,MAAA,EAAK,YAAY,IAAA;AAAA;QAGnB,CAAA,IAAmC,WAAY;AAC7C,IAAA,EAAgB,GAA0B,CAAA;AAAA;AAE9C,WAAS,EAAmB,GAAU,GAAI;AACxC,IAAA,IAAgB,EAAgB,WAAY;AAC1C,MAAA,EAAS,EAAQ,aAAA,CAAc;AAAA,OAC9B,CAAA;AAAA;AAEL,EAAA,EAAQ,wBAAwB,GAChC,EAAQ,6BAA6B,GACrC,EAAQ,uBAAuB,GAC/B,EAAQ,0BAA0B,GAClC,EAAQ,qBAAqB,MAC7B,EAAQ,gCAAgC,GACxC,EAAQ,0BAA0B,SAAU,GAAM;AAChD,IAAA,EAAK,WAAW;AAAA,KAElB,EAAQ,0BAA0B,SAAU,GAAK;AAC/C,QAAI,KAAO,MAAM,IACb,QAAQ,MACN,iHAAA,IAED,IAAgB,IAAI,IAAM,KAAK,MAAM,MAAM,CAAA,IAAO;AAAA,KAEzD,EAAQ,mCAAmC,WAAY;AACrD,WAAO;AAAA,KAET,EAAQ,gBAAgB,SAAU,GAAc;AAC9C,YAAQ,GAAR;AAAA,MACE,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,YAAI,IAAgB;AACpB;AAAA,MACF;AACE,QAAA,IAAgB;AAAA;AAEpB,QAAI,IAAwB;AAC5B,IAAA,IAAuB;AACvB,QAAI;AACF,aAAO,EAAA;AAAA;AAEP,MAAA,IAAuB;AAAA;KAG3B,EAAQ,wBAAwB,WAAY;AAC1C,IAAA,IAAa;AAAA,KAEf,EAAQ,2BAA2B,SAAU,GAAe,GAAc;AACxE,YAAQ,GAAR;AAAA,MACE,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH;AAAA,MACF;AACE,QAAA,IAAgB;AAAA;AAEpB,QAAI,IAAwB;AAC5B,IAAA,IAAuB;AACvB,QAAI;AACF,aAAO,EAAA;AAAA;AAEP,MAAA,IAAuB;AAAA;KAG3B,EAAQ,4BAA4B,SAClC,GACA,GACA,GACA;AACA,QAAI,IAAc,EAAQ,aAAA;AAQ1B,YAPa,OAAO,KAApB,YAAwC,MAAT,QACzB,IAAU,EAAQ,OACnB,IACc,OAAO,KAApB,YAA+B,IAAI,IAC/B,IAAc,IACd,KACL,IAAU,GACP,GAAR;AAAA,MACE,KAAK;AACH,YAAI,IAAU;AACd;AAAA,MACF,KAAK;AACH,QAAA,IAAU;AACV;AAAA,MACF,KAAK;AACH,QAAA,IAAU;AACV;AAAA,MACF,KAAK;AACH,QAAA,IAAU;AACV;AAAA,MACF;AACE,QAAA,IAAU;AAAA;AAEd,WAAA,IAAU,IAAU,GACpB,IAAgB;AAAA,MACd,IAAI;AAAA,MACM,UAAA;AAAA,MACK,eAAA;AAAA,MACf,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,WAAW;AAAA,OAEb,IAAU,KACJ,EAAc,YAAY,GAC5B,EAAK,GAAY,CAAA,GACR,EAAK,CAAA,MAAd,QACE,MAAkB,EAAK,CAAA,MACtB,KACI,EAAkB,CAAA,GAAiB,IAAgB,MACnD,IAAyB,IAC9B,EAAmB,GAAe,IAAU,CAAA,OAC5C,EAAc,YAAY,GAC5B,EAAK,GAAW,CAAA,GAChB,KACE,MACE,IAA0B,IAC5B,MACI,IAAuB,IAAK,EAAA,MAC/B;AAAA,KAET,EAAQ,uBAAuB,GAC/B,EAAQ,wBAAwB,SAAU,GAAU;AAClD,QAAI,IAAsB;AAC1B,WAAO,WAAY;AACjB,UAAI,IAAwB;AAC5B,MAAA,IAAuB;AACvB,UAAI;AACF,eAAO,EAAS,MAAM,MAAM,SAAA;AAAA;AAE5B,QAAA,IAAuB;AAAA;;;;ACrU7B,EAAA,QAAA,IAAA,aAAA,iBACG,WAAY;AACX,aAAS,IAA2B;AAElC,UADA,IAAa,IACT,GAAsB;AACxB,YAAI,IAAc,EAAQ,aAAA;AAC1B,QAAA,IAAY;AACZ,YAAI,IAAc;AAClB,YAAI;AACF,UAAA,GAAG;AACD,YAAA,IAA0B,IAC1B,MACI,IAAyB,IAC3B,EAAkB,CAAA,GACjB,IAAgB,KACnB,IAAmB;AACnB,gBAAI,IAAwB;AAC5B,gBAAI;AACF,cAAA,GAAG;AAED,qBADA,EAAc,CAAA,GAEZ,IAAc,EAAK,CAAA,GACV,MAAT,QACA,EACE,EAAY,iBAAiB,KAC7B,EAAA,MAGF;AACA,sBAAI,IAAW,EAAY;AAC3B,sBAAmB,OAAO,KAAtB,YAAgC;AAClC,oBAAA,EAAY,WAAW,MACvB,IAAuB,EAAY;AACnC,wBAAI,IAAuB,EACzB,EAAY,kBAAkB,CAAA;AAGhC,wBADA,IAAc,EAAQ,aAAA,GACH,OAAO,KAAtB,YAA4C;AAC9C,sBAAA,EAAY,WAAW,GACvB,EAAc,CAAA,GACd,IAAc;AACd,4BAAM;AAAA;AAER,oBAAA,MAAgB,EAAK,CAAA,KAAc,EAAI,CAAA,GACvC,EAAc,CAAA;AAAA,wBACT,CAAA,EAAI,CAAA;AACX,kBAAA,IAAc,EAAK,CAAA;AAAA;AAErB,oBAAa,MAAT,KAAsB,CAAA,IAAc;AAAA,qBACnC;AACH,sBAAI,IAAa,EAAK,CAAA;AACtB,kBAAS,MAAT,QACE,EACE,GACA,EAAW,YAAY,CAAA,GAE3B,IAAc;AAAA;;AAGlB,oBAAM;AAAA;AAEL,cAAA,IAAc,MACZ,IAAuB,GACvB,IAAmB;AAAA;AAExB,YAAA,IAAc;AAAA;;AAGhB,UAAA,IACI,EAAA,IACC,IAAuB;AAAA;;;AAIlC,aAAS,EAAK,GAAM,GAAM;AACxB,UAAI,IAAQ,EAAK;AACjB,MAAA,EAAK,KAAK,CAAA;AACV,MAAA,EAAG,QAAO,IAAI,KAAS;AACrB,YAAI,IAAe,IAAQ,MAAO,GAChC,IAAS,EAAK,CAAA;AAChB,YAAI,IAAI,EAAQ,GAAQ,CAAA,EACrB,CAAA,EAAK,CAAA,IAAe,GAClB,EAAK,CAAA,IAAS,GACd,IAAQ;AAAA,YACR,OAAM;AAAA;;AAGf,aAAS,EAAK,GAAM;AAClB,aAAa,EAAK,WAAX,IAAoB,OAAO,EAAK,CAAA;AAAA;AAEzC,aAAS,EAAI,GAAM;AACjB,UAAU,EAAK,WAAX,EAAmB,QAAO;AAC9B,UAAI,IAAQ,EAAK,CAAA,GACf,IAAO,EAAK,IAAA;AACd,UAAI,MAAS,GAAO;AAClB,QAAA,EAAK,CAAA,IAAK;AACV,QAAA,EAAG,UACG,IAAQ,GAAG,IAAS,EAAK,QAAQ,IAAa,MAAW,GAC7D,IAAQ,KAER;AACA,cAAI,IAAY,KAAK,IAAQ,KAAK,GAChC,IAAO,EAAK,CAAA,GACZ,IAAa,IAAY,GACzB,IAAQ,EAAK,CAAA;AACf,cAAI,IAAI,EAAQ,GAAM,CAAA,EACpB,CAAA,IAAa,KAAU,IAAI,EAAQ,GAAO,CAAA,KACpC,EAAK,CAAA,IAAS,GACf,EAAK,CAAA,IAAc,GACnB,IAAQ,MACP,EAAK,CAAA,IAAS,GACf,EAAK,CAAA,IAAa,GAClB,IAAQ;AAAA,mBACN,IAAa,KAAU,IAAI,EAAQ,GAAO,CAAA,EAChD,CAAA,EAAK,CAAA,IAAS,GACZ,EAAK,CAAA,IAAc,GACnB,IAAQ;AAAA,cACR,OAAM;AAAA;;AAGf,aAAO;AAAA;AAET,aAAS,EAAQ,GAAG,GAAG;AACrB,UAAI,IAAO,EAAE,YAAY,EAAE;AAC3B,aAAa,MAAN,IAAa,IAAO,EAAE,KAAK,EAAE;AAAA;AAEtC,aAAS,EAAc,GAAa;AAClC,eAAS,IAAQ,EAAK,CAAA,GAAsB,MAAT,QAAkB;AACnD,YAAa,EAAM,aAAf,KAAyB,CAAA,EAAI,CAAA;AAAA,iBACxB,EAAM,aAAa,EAC1B,CAAA,EAAI,CAAA,GACD,EAAM,YAAY,EAAM,gBACzB,EAAK,GAAW,CAAA;AAAA,YACf;AACL,QAAA,IAAQ,EAAK,CAAA;AAAA;;AAGjB,aAAS,EAAc,GAAa;AAGlC,UAFA,IAAyB,IACzB,EAAc,CAAA,GACV,CAAC,EACH,KAAa,EAAK,CAAA,MAAd,KACD,CAAA,IAA0B,IACzB,MACI,IAAuB,IAAK,EAAA;AAAA,WAC/B;AACH,YAAI,IAAa,EAAK,CAAA;AACtB,QAAS,MAAT,QACE,EACE,GACA,EAAW,YAAY,CAAA;AAAA;;AAIjC,aAAS,IAAoB;AAC3B,aAAO,IACH,KACA,EAAA,EAAQ,aAAA,IAAiB,IAAY;AAAA;AAI3C,aAAS,EAAmB,GAAU,GAAI;AACxC,MAAA,IAAgB,EAAgB,WAAY;AAC1C,QAAA,EAAS,EAAQ,aAAA,CAAc;AAAA,SAC9B,CAAA;AAAA;AAOL,QALgB,OAAO,iCAAvB,OAEI,OAAO,+BAA+B,+BADxC,cAEA,+BAA+B,4BAA4B,MAAA,CAAO,GACpE,EAAQ,eAAe,QAER,OAAO,eAApB,YACe,OAAO,YAAY,OAAlC,YACA;AACA,UAAI,IAAmB;AACvB,MAAA,EAAQ,eAAe,WAAY;AACjC,eAAO,EAAiB,IAAA;AAAA;WAErB;AACL,UAAI,IAAY,MACd,IAAc,EAAU,IAAA;AAC1B,MAAA,EAAQ,eAAe,WAAY;AACjC,eAAO,EAAU,IAAA,IAAQ;AAAA;;AAG7B,QAAI,IAAY,CAAA,GACd,IAAa,CAAA,GACb,IAAgB,GAChB,IAAc,MACd,IAAuB,GACvB,IAAmB,IACnB,IAA0B,IAC1B,IAAyB,IACzB,IAAa,IACb,IAAiC,OAAO,cAAtB,aAAmC,aAAa,MAClE,IACiB,OAAO,gBAAtB,aAAqC,eAAe,MACtD,IACkB,OAAO,eAAvB,MAAsC,eAAe,MACvD,IAAuB,IACvB,IAAgB,IAChB,IAAgB,GAChB,IAAY;AACd,QAAmB,OAAO,KAAtB,WACF,KAAI,IAAmC,WAAY;AACjD,MAAA,EAAkB,CAAA;AAAA;aAEG,OAAO,iBAAvB,KAAuC;AAC9C,UAAI,IAAU,IAAI,eAAA,GAChB,IAAO,EAAQ;AACjB,MAAA,EAAQ,MAAM,YAAY,GAC1B,IAAmC,WAAY;AAC7C,QAAA,EAAK,YAAY,IAAA;AAAA;UAGnB,CAAA,IAAmC,WAAY;AAC7C,MAAA,EAAgB,GAA0B,CAAA;AAAA;AAE9C,IAAA,EAAQ,wBAAwB,GAChC,EAAQ,6BAA6B,GACrC,EAAQ,uBAAuB,GAC/B,EAAQ,0BAA0B,GAClC,EAAQ,qBAAqB,MAC7B,EAAQ,gCAAgC,GACxC,EAAQ,0BAA0B,SAAU,GAAM;AAChD,MAAA,EAAK,WAAW;AAAA,OAElB,EAAQ,0BAA0B,SAAU,GAAK;AAC/C,UAAI,KAAO,MAAM,IACb,QAAQ,MACN,iHAAA,IAED,IAAgB,IAAI,IAAM,KAAK,MAAM,MAAM,CAAA,IAAO;AAAA,OAEzD,EAAQ,mCAAmC,WAAY;AACrD,aAAO;AAAA,OAET,EAAQ,gBAAgB,SAAU,GAAc;AAC9C,cAAQ,GAAR;AAAA,QACE,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,cAAI,IAAgB;AACpB;AAAA,QACF;AACE,UAAA,IAAgB;AAAA;AAEpB,UAAI,IAAwB;AAC5B,MAAA,IAAuB;AACvB,UAAI;AACF,eAAO,EAAA;AAAA;AAEP,QAAA,IAAuB;AAAA;OAG3B,EAAQ,wBAAwB,WAAY;AAC1C,MAAA,IAAa;AAAA,OAEf,EAAQ,2BAA2B,SAAU,GAAe,GAAc;AACxE,cAAQ,GAAR;AAAA,QACE,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF;AACE,UAAA,IAAgB;AAAA;AAEpB,UAAI,IAAwB;AAC5B,MAAA,IAAuB;AACvB,UAAI;AACF,eAAO,EAAA;AAAA;AAEP,QAAA,IAAuB;AAAA;OAG3B,EAAQ,4BAA4B,SAClC,GACA,GACA,GACA;AACA,UAAI,IAAc,EAAQ,aAAA;AAQ1B,cAPa,OAAO,KAApB,YAAwC,MAAT,QACzB,IAAU,EAAQ,OACnB,IACc,OAAO,KAApB,YAA+B,IAAI,IAC/B,IAAc,IACd,KACL,IAAU,GACP,GAAR;AAAA,QACE,KAAK;AACH,cAAI,IAAU;AACd;AAAA,QACF,KAAK;AACH,UAAA,IAAU;AACV;AAAA,QACF,KAAK;AACH,UAAA,IAAU;AACV;AAAA,QACF,KAAK;AACH,UAAA,IAAU;AACV;AAAA,QACF;AACE,UAAA,IAAU;AAAA;AAEd,aAAA,IAAU,IAAU,GACpB,IAAgB;AAAA,QACd,IAAI;AAAA,QACM,UAAA;AAAA,QACK,eAAA;AAAA,QACf,WAAW;AAAA,QACX,gBAAgB;AAAA,QAChB,WAAW;AAAA,SAEb,IAAU,KACJ,EAAc,YAAY,GAC5B,EAAK,GAAY,CAAA,GACR,EAAK,CAAA,MAAd,QACE,MAAkB,EAAK,CAAA,MACtB,KACI,EAAkB,CAAA,GAAiB,IAAgB,MACnD,IAAyB,IAC9B,EAAmB,GAAe,IAAU,CAAA,OAC5C,EAAc,YAAY,GAC5B,EAAK,GAAW,CAAA,GAChB,KACE,MACE,IAA0B,IAC5B,MACI,IAAuB,IACzB,EAAA,MACD;AAAA,OAET,EAAQ,uBAAuB,GAC/B,EAAQ,wBAAwB,SAAU,GAAU;AAClD,UAAI,IAAsB;AAC1B,aAAO,WAAY;AACjB,YAAI,IAAwB;AAC5B,QAAA,IAAuB;AACvB,YAAI;AACF,iBAAO,EAAS,MAAM,MAAM,SAAA;AAAA;AAE5B,UAAA,IAAuB;AAAA;;OAIb,OAAO,iCAAvB,OAEI,OAAO,+BAA+B,8BADxC,cAEA,+BAA+B,2BAA2B,MAAA,CAAO;AAAA;;ACxWvE,EAAA,QAAA,IAAA,aAA6B,eAC3B,EAAO,UAAA,GAAA,IAEP,EAAO,UAAA,GAAA;eCHH,IAAgB,uBAAA,GAChB,KAAoB,uBAAA,GAGpB,IAFQ,OAAO,SAAW,OAC5B,sBAAsB,KAAK,OAAO,aAAa,OAAO,UAAU,SAAA,IAC1B,IAAY,GAEhD,KAAwBA,EAAAA,2BAAAA,CACvB,MAAO;AACN,MAAI;AACA,QAAA,EAAA,0BAAgBC,EAAAA,yBAAgB,CAAA;AAAA,WAE7B,GAAG;AACN,QAAI,EAAE,YAAY,mBACd,CAAA,EAAA;AAAA,QAGA,OAAM;AAAA;KAIf,MAAO,EAAA,GACR,KAAA,CAAkB,MACd,CAAmB,EAAE,OAAA,GAAO,UAAA,EAAA,MAAgB;AAC9C,QAAM,IAAW,EAAO,CAAA,GAClB,IAAa,EAAO,CAAA,GACpB,CAAC,GAAS,CAAA,IAAc,EAAS,IAAA;AACvC,EAAI,MACA,EAAQ,CAAA,GACR,EAAW,IAAA;AAEf,QAAM,IAAe,EAAA;AACrB,MAAI,CAAC,EAAa,SAAS;AACvB,UAAM,IAAY,oBAAI,IAAA,GAChB,IAAA,CAAU,GAAI,MAAY;AAC5B,MAAA,EAAW,WAAW;AACtB,YAAM,IAAS,EACX,GAAG,EAAW,QAAA;AAElB,MAAsD,GAAQ,aAC1D,EAAO,KAAK,IACZ,EAAO,IAAI,IAAI,QAAA,CAAS,MAAM;AAC1B,QAAA,EAAA,MAAA,CAAkB,MAAM;AACpB,UAAA,EAAO,IAAI,GACX,OAAO,EAAO,GACd,EAAE,CAAA;AAAA;WAId,EAAU,QAAA,CAAS,MAAa,EAAS,CAAA,CAAO,GAChD,EAAA;AAAA;AAEJ,IAAA,EAAa,UAAU,EAAA,CAClB,CAAA,GAAgB;AAAA,MACK,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACxB;AAAA;AAGT,SAAA,EAAA,MAAgC;AAC5B,IAAA,EAAS,UAAU,GACnB,EAAW,WAAW,GACtB,GAAA,MAA4B;AACxB,MAAA,EAAa,QAAQ,CAAA,EAAe,EAAE,QAAA,CAAS,MAAa;AACxD,QAAA,EAAS;AAAA,UAAE,GAAG,EAAW;AAAA,UAAS,GAAG;AAAA,SAAO;AAAA;;KAGrD,CAAC,CAAA,CAAM,GACH,EAAc,GAAc,EAAE,OAAO,EAAa,QAAA,GAAW,CAAA;;AAa5E,SAAgBC,GAAc,GAAc;AACxC,QAAM,IAAUC,EAAkB,EAAA,CAC7B,CAAA,GAAgB;AAAA,IACK,GAAG,EAAE,SAAS,EAAA;AAAA,IACd,GAAG,EAAE,SAAS,GAAA;AAAA,IACd,GAAG,oBAAI,IAAA;AAAA,IACP,GAAA,CAAI,MAAM,EAAA;AAAA,IAC/B,CACJ;AACD,SAAA,EAAQ,EAAA,IAAqB,EAAQ,UACrC,EAAQ,WAAW,GAAe,EAAQ,QAAA,GAC1C,OAAO,EAAQ,UACR;;AAeX,SAAgB,GAAmB,GAAS,GAAU;AAClD,QAAM,IAAeC,EAAe,CAAA,EAAS,CAAA;AAC7C,MAAI,OAAO,WAAY,YAAA,QAAA,IAAA,aAAqC,gBACpD,CAAC;AACD,UAAM,IAAI,MAAM,6CAAA;AAGxB,QAAM,EACY,GAAG,EAAE,SAAS,EAAA,GACd,GAAG,EAAE,SAAS,EAAA,GACd,GAAG,EAAA,IAAe,GAC9B,IAAW,EAAS,CAAA,GACpB,CAAC,GAAO,CAAA,IAAY,EAAA,CAAY,GAAM,MAAW;AACnD,QAAI,CAAC,EAED,QAAO,CAAC,GAAO,CAAA;AAEnB,QAAI,OAAO,EACP,OAAM,EAAO;AAEjB,QAAI,EAAO,MAAM;AACb,aAAI,OAAO,GAAG,EAAK,CAAA,GAAI,CAAA,IACZ,IAEJ,CAAC,GAAO,CAAA;AAEnB,QAAI;AACA,UAAI,OAAO,GAAQ;AACf,YAAI,OAAO,GAAG,EAAK,CAAA,GAAI,EAAO,CAAA,EAC1B,QAAO;AAEX,cAAM,IAAe,EAAS,EAAO,CAAA;AACrC,eAAI,OAAO,GAAG,EAAK,CAAA,GAAI,CAAA,IACZ,IAEJ,CAAC,EAAO,GAAG,CAAA;AAAA;YAGf;AAAA,IAAA;AAGX,WAAO,CAAC,GAAG,CAAA;AAAA,KACZ,CAAC,GAAO,CAAA,CAAS;AACpB,SAAK,OAAO,GAAG,EAAM,CAAA,GAAI,CAAA,KAGrB,EAAA,GAEJ,EAAA,OACI,EAAU,IAAI,CAAA,GACd,MAAa;AACT,IAAA,EAAU,OAAO,CAAA;AAAA,MAEtB,CAAC,CAAA,CAAU,GACP,EAAM,CAAA"}