@consta/uikit 4.27.0 → 4.28.0

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 (104) hide show
  1. package/ChipsCanary/index.d.ts +1 -0
  2. package/ChipsCanary/index.js +1 -0
  3. package/__internal__/src/components/BadgeGroup/BadgeGroup.js +1 -1
  4. package/__internal__/src/components/BadgeGroup/BadgeGroup.js.map +1 -1
  5. package/__internal__/src/components/BadgeGroup/helper.d.ts +0 -1
  6. package/__internal__/src/components/BadgeGroup/helper.js +1 -1
  7. package/__internal__/src/components/BadgeGroup/helper.js.map +1 -1
  8. package/__internal__/src/components/Button/Button.css +1 -1
  9. package/__internal__/src/components/CheckboxGroup/CheckboxGroup.js +1 -1
  10. package/__internal__/src/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  11. package/__internal__/src/components/CheckboxGroup/helper.d.ts +3 -1
  12. package/__internal__/src/components/CheckboxGroup/helper.js +1 -1
  13. package/__internal__/src/components/CheckboxGroup/helper.js.map +1 -1
  14. package/__internal__/src/components/CheckboxGroup/types.d.ts +9 -1
  15. package/__internal__/src/components/CheckboxGroup/types.js.map +1 -1
  16. package/__internal__/src/components/ChipsCanary/Chips.css +1 -0
  17. package/__internal__/src/components/ChipsCanary/ChipsCanary.d.ts +3 -0
  18. package/__internal__/src/components/ChipsCanary/ChipsCanary.js +2 -0
  19. package/__internal__/src/components/ChipsCanary/ChipsCanary.js.map +1 -0
  20. package/__internal__/src/components/ChipsCanary/ChipsChoice/ChipsChoice.d.ts +4 -0
  21. package/__internal__/src/components/ChipsCanary/ChipsChoice/ChipsChoice.js +2 -0
  22. package/__internal__/src/components/ChipsCanary/ChipsChoice/ChipsChoice.js.map +1 -0
  23. package/__internal__/src/components/ChipsCanary/ChipsChoice/index.d.ts +2 -0
  24. package/__internal__/src/components/ChipsCanary/ChipsChoice/index.js +2 -0
  25. package/__internal__/src/components/ChipsCanary/ChipsChoice/index.js.map +1 -0
  26. package/__internal__/src/components/ChipsCanary/ChipsChoice/types.d.ts +29 -0
  27. package/__internal__/src/components/ChipsCanary/ChipsChoice/types.js +2 -0
  28. package/__internal__/src/components/ChipsCanary/ChipsChoice/types.js.map +1 -0
  29. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.css +3 -0
  30. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.d.ts +3 -0
  31. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.js +2 -0
  32. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.js.map +1 -0
  33. package/__internal__/src/components/ChipsCanary/ChipsItem/index.d.ts +1 -0
  34. package/__internal__/src/components/ChipsCanary/ChipsItem/index.js +2 -0
  35. package/__internal__/src/components/ChipsCanary/ChipsItem/index.js.map +1 -0
  36. package/__internal__/src/components/ChipsCanary/helpers.d.ts +39 -0
  37. package/__internal__/src/components/ChipsCanary/helpers.js +2 -0
  38. package/__internal__/src/components/ChipsCanary/helpers.js.map +1 -0
  39. package/__internal__/src/components/ChipsCanary/index.d.ts +4 -0
  40. package/__internal__/src/components/ChipsCanary/index.js +2 -0
  41. package/__internal__/src/components/ChipsCanary/index.js.map +1 -0
  42. package/__internal__/src/components/ChipsCanary/types.d.ts +62 -0
  43. package/__internal__/src/components/ChipsCanary/types.js +2 -0
  44. package/__internal__/src/components/ChipsCanary/types.js.map +1 -0
  45. package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js +1 -1
  46. package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js.map +1 -1
  47. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.d.ts +7 -9
  48. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js +1 -1
  49. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js.map +1 -1
  50. package/__internal__/src/components/ChoiceGroup/helper.d.ts +3 -1
  51. package/__internal__/src/components/ChoiceGroup/helper.js +1 -1
  52. package/__internal__/src/components/ChoiceGroup/helper.js.map +1 -1
  53. package/__internal__/src/components/ChoiceGroup/types.d.ts +7 -1
  54. package/__internal__/src/components/ChoiceGroup/types.js.map +1 -1
  55. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +1 -1
  56. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -1
  57. package/__internal__/src/components/ComboboxCanary/helpers.d.ts +4 -0
  58. package/__internal__/src/components/ComboboxCanary/helpers.js.map +1 -1
  59. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
  60. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
  61. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
  62. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
  63. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
  64. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
  65. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
  66. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
  67. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
  68. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
  69. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
  70. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
  71. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
  72. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
  73. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
  74. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
  75. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
  76. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
  77. package/__internal__/src/components/DatePicker/useCalendarVisible.js +1 -1
  78. package/__internal__/src/components/DatePicker/useCalendarVisible.js.map +1 -1
  79. package/__internal__/src/components/EventInterceptor/propsHandlers/useTextFieldEventsHandler.d.ts +1 -54
  80. package/__internal__/src/components/SelectComponentsCanary/Select.css +1 -1
  81. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.d.ts +1 -0
  82. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js +1 -1
  83. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js.map +1 -1
  84. package/__internal__/src/components/TextField/types.d.ts +2 -2
  85. package/__internal__/src/components/TextField/types.js.map +1 -1
  86. package/__internal__/src/hooks/useChoiceGroup/useChoiceGroup.d.ts +2 -2
  87. package/__internal__/src/hooks/useChoiceGroup/useChoiceGroup.js.map +1 -1
  88. package/__internal__/src/hooks/useGlobalKeys/useGlobalKeys.d.ts +1 -1
  89. package/__internal__/src/hooks/useGlobalKeys/useGlobalKeys.js.map +1 -1
  90. package/__internal__/src/hooks/useKeysCanary/index.d.ts +1 -0
  91. package/__internal__/src/hooks/useKeysCanary/index.js +2 -0
  92. package/__internal__/src/hooks/useKeysCanary/index.js.map +1 -0
  93. package/__internal__/src/hooks/useKeysCanary/useKeysCanary.d.ts +12 -0
  94. package/__internal__/src/hooks/useKeysCanary/useKeysCanary.js +2 -0
  95. package/__internal__/src/hooks/useKeysCanary/useKeysCanary.js.map +1 -0
  96. package/__internal__/src/hooks/useKeysRef/useKeysRef.d.ts +2 -1
  97. package/__internal__/src/hooks/useKeysRef/useKeysRef.js +1 -1
  98. package/__internal__/src/hooks/useKeysRef/useKeysRef.js.map +1 -1
  99. package/__internal__/src/utils/stand.d.ts +1 -0
  100. package/__internal__/src/utils/stand.js +2 -0
  101. package/__internal__/src/utils/stand.js.map +1 -0
  102. package/package.json +1 -1
  103. package/useKeysCanary/index.d.ts +1 -0
  104. package/useKeysCanary/index.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerTypeYear.js","names":["addYears","startOfDecade","React","forwardRef","useEffect","useRef","useClickOutside","setRef","DatePickerDropdown","DatePickerFieldTypeYear","getDropdownZIndex","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeYear","props","ref","onChange","events","dateTimeView","locale","dropdownForm","dropdownClassName","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","onDropdownOpen","dropdownOpen","disabled","ignoreOutsideClicksRefs","otherProps","fieldRef","calendarRef","inputRef","startRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","setCurrentVisibleDate","current","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","date","on","params","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.tsx"],"sourcesContent":["import { addYears, startOfDecade } from 'date-fns';\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';\nimport { setRef } from '../../../utils/setRef';\nimport { DatePickerDropdown } from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeYear } from '../DatePickerFieldTypeYear/DatePickerFieldTypeYear';\nimport { getDropdownZIndex } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeYear: DatePickerTypeComponent<'year'> = forwardRef(\n (props, ref) => {\n const {\n onChange,\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownForm,\n dropdownClassName,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n onDropdownOpen,\n dropdownOpen,\n disabled,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = props;\n\n const fieldRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n startRef: inputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfDecade,\n onChangeCurrentVisibleDate,\n calendarVisible,\n });\n\n useEffect(() => {\n if (ref) {\n setRef(ref, fieldRef.current);\n }\n }, [ref, fieldRef]);\n\n useEffect(() => {\n if (props.value && dateTimeView === 'classic' && currentVisibleDate) {\n const newVisibleDate = startOfDecade(props.value);\n if (newVisibleDate.getTime() !== currentVisibleDate.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value && dateTimeView !== 'classic' && currentVisibleDate) {\n const newVisibleDate = startOfDecade(props.value);\n if (\n newVisibleDate.getTime() !== currentVisibleDate.getTime() &&\n newVisibleDate.getTime() !==\n addYears(currentVisibleDate, 10).getTime()\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n fieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: setCalendarVisible.off,\n });\n\n return (\n <>\n <DatePickerFieldTypeYear\n {...otherProps}\n ref={fieldRef}\n inputRef={inputRef}\n disabled={disabled}\n onChange={(date) => {\n onChange?.(date);\n setCalendarVisible.on();\n }}\n onClick={setCalendarVisible.on}\n />\n <DatePickerDropdown\n ref={calendarRef}\n anchorRef={fieldRef}\n className={dropdownClassName}\n isOpen={calendarVisible}\n value={props.value || undefined}\n type=\"year\"\n view={dateTimeView}\n events={events}\n locale={locale}\n minDate={props.minDate}\n maxDate={props.maxDate}\n currentVisibleDate={currentVisibleDate}\n form={dropdownForm}\n onChange={(params) => {\n props.onChange?.(params);\n setCalendarVisible.off();\n }}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n />\n </>\n );\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerTypeYear.js","names":["addYears","startOfDecade","React","forwardRef","useEffect","useRef","useClickOutside","setRef","DatePickerDropdown","DatePickerFieldTypeYear","getDropdownZIndex","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeYear","props","ref","events","dateTimeView","locale","dropdownForm","dropdownClassName","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","onDropdownOpen","dropdownOpen","disabled","ignoreOutsideClicksRefs","otherProps","fieldRef","calendarRef","inputRef","startRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","setCurrentVisibleDate","current","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","on","params","onChange","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.tsx"],"sourcesContent":["import { addYears, startOfDecade } from 'date-fns';\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';\nimport { setRef } from '../../../utils/setRef';\nimport { DatePickerDropdown } from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeYear } from '../DatePickerFieldTypeYear/DatePickerFieldTypeYear';\nimport { getDropdownZIndex } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeYear: DatePickerTypeComponent<'year'> = forwardRef(\n (props, ref) => {\n const {\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownForm,\n dropdownClassName,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n onDropdownOpen,\n dropdownOpen,\n disabled,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = props;\n\n const fieldRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n startRef: inputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfDecade,\n onChangeCurrentVisibleDate,\n calendarVisible,\n });\n\n useEffect(() => {\n if (ref) {\n setRef(ref, fieldRef.current);\n }\n }, [ref, fieldRef]);\n\n useEffect(() => {\n if (props.value && dateTimeView === 'classic' && currentVisibleDate) {\n const newVisibleDate = startOfDecade(props.value);\n if (newVisibleDate.getTime() !== currentVisibleDate.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value && dateTimeView !== 'classic' && currentVisibleDate) {\n const newVisibleDate = startOfDecade(props.value);\n if (\n newVisibleDate.getTime() !== currentVisibleDate.getTime() &&\n newVisibleDate.getTime() !==\n addYears(currentVisibleDate, 10).getTime()\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n fieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: setCalendarVisible.off,\n });\n\n return (\n <>\n <DatePickerFieldTypeYear\n {...otherProps}\n ref={fieldRef}\n inputRef={inputRef}\n disabled={disabled}\n onClick={setCalendarVisible.on}\n />\n <DatePickerDropdown\n ref={calendarRef}\n anchorRef={fieldRef}\n className={dropdownClassName}\n isOpen={calendarVisible}\n value={props.value || undefined}\n type=\"year\"\n view={dateTimeView}\n events={events}\n locale={locale}\n minDate={props.minDate}\n maxDate={props.maxDate}\n currentVisibleDate={currentVisibleDate}\n form={dropdownForm}\n onChange={(params) => {\n props.onChange?.(params);\n setCalendarVisible.off();\n }}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n />\n </>\n );\n },\n);\n"],"mappings":"qcAAA,OAASA,QAAT,CAAmBC,aAAnB,KAAwC,UAAxC,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,SAA5B,CAAuCC,MAAvC,KAAqD,OAArD,CAEA,OAASC,eAAT,sDACA,OAASC,MAAT,6BACA,OAASC,kBAAT,gDACA,OAASC,uBAAT,0DACA,OAASC,iBAAT,kBACA,OACEC,iCADF,gBAIA,OAASC,kBAAT,6BACA,OAASC,qBAAT,gCAEA,MAAO,IAAMC,mBAAmD,CAAGX,UAAU,CAC3E,SAACY,CAAD,CAAQC,CAAR,CAAgB,IAEZC,EAFY,CAeVF,CAfU,CAEZE,MAFY,GAeVF,CAfU,CAGZG,YAHY,CAGZA,CAHY,YAGGP,iCAHH,GAIZQ,CAJY,CAeVJ,CAfU,CAIZI,MAJY,CAKZC,CALY,CAeVL,CAfU,CAKZK,YALY,CAMZC,CANY,CAeVN,CAfU,CAMZM,iBANY,CAOQC,CAPR,CAeVP,CAfU,CAOZQ,kBAPY,CAQZC,CARY,CAeVT,CAfU,CAQZS,0BARY,CASZC,CATY,CAeVV,CAfU,CASZU,wBATY,CAUZC,CAVY,CAeVX,CAfU,CAUZW,cAVY,CAWZC,CAXY,CAeVZ,CAfU,CAWZY,YAXY,CAYZC,CAZY,CAeVb,CAfU,CAYZa,QAZY,CAaZC,CAbY,CAeVd,CAfU,CAaZc,uBAbY,CAcTC,CAdS,0BAeVf,CAfU,YAiBRgB,CAAQ,CAAG1B,MAAM,CAAiB,IAAjB,CAjBT,CAkBR2B,CAAW,CAAG3B,MAAM,CAAiB,IAAjB,CAlBZ,CAmBR4B,CAAQ,CAAG5B,MAAM,CAAmB,IAAnB,CAnBT,GAqBgCO,kBAAkB,CAAC,CAC/De,YAAY,CAAZA,CAD+D,CAE/DD,cAAc,CAAdA,CAF+D,CAG/DQ,QAAQ,CAAED,CAHqD,CAAD,CArBlD,uBAqBPE,CArBO,MAqBUC,CArBV,QA2BsCvB,qBAAqB,CAAC,CACxEU,kBAAkB,CAAED,CADoD,CAExEe,OAAO,CAAEtB,CAAK,CAACsB,OAFyD,CAGxEC,OAAO,CAAEvB,CAAK,CAACuB,OAHyD,CAIxEC,KAAK,CAAExB,CAAK,CAACwB,KAJ2D,CAKxEC,WAAW,CAAEvC,aAL2D,CAMxEuB,0BAA0B,CAA1BA,CANwE,CAOxEW,eAAe,CAAfA,CAPwE,CAAD,CA3B3D,uBA2BPZ,CA3BO,MA2BakB,CA3Bb,MAyEd,MApCArC,UAAS,CAAC,UAAM,CACVY,CADU,EAEZT,MAAM,CAACS,CAAD,CAAMe,CAAQ,CAACW,OAAf,CAET,CAJQ,CAIN,CAAC1B,CAAD,CAAMe,CAAN,CAJM,CAoCT,CA9BA3B,SAAS,CAAC,UAAM,CACd,GAAIW,CAAK,CAACwB,KAAN,EAAgC,SAAjB,GAAArB,CAAf,EAA6CK,CAAjD,CAAqE,CACnE,GAAMoB,EAAc,CAAG1C,aAAa,CAACc,CAAK,CAACwB,KAAP,CAApC,CAIA,YAHII,CAAc,CAACC,OAAf,KAA6BrB,CAAkB,CAACqB,OAAnB,EAGjC,EAFEH,CAAqB,CAACE,CAAD,CAEvB,CACD,CACD,GAAI5B,CAAK,CAACwB,KAAN,EAAgC,SAAjB,GAAArB,CAAf,EAA6CK,CAAjD,CAAqE,CACnE,GAAMoB,EAAc,CAAG1C,aAAa,CAACc,CAAK,CAACwB,KAAP,CAApC,CAEEI,CAAc,CAACC,OAAf,KAA6BrB,CAAkB,CAACqB,OAAnB,EAA7B,EACAD,CAAc,CAACC,OAAf,KACE5C,QAAQ,CAACuB,CAAD,CAAqB,EAArB,CAAR,CAAiCqB,OAAjC,EAL+D,EAOjEH,CAAqB,CAACE,CAAD,CAExB,CACF,CAlBQ,CAkBN,CAAC5B,CAAK,CAACwB,KAAP,CAlBM,CA8BT,CAVAjC,eAAe,CAAC,CACduC,QAAQ,CAAEV,CADI,CAEdW,sBAAsB,EACpBf,CADoB,CAEpBC,CAFoB,mCAGhBH,CAHgB,WAGhBA,CAHgB,CAGhBA,CAHgB,CAGW,EAHX,EAFR,CAOdkB,OAAO,CAAEX,CAAkB,CAACY,GAPd,CAAD,CAUf,CACE,wCACE,oBAAC,uBAAD,kBACMlB,CADN,EAEE,GAAG,CAAEC,CAFP,CAGE,QAAQ,CAAEE,CAHZ,CAIE,QAAQ,CAAEL,CAJZ,CAKE,OAAO,CAAEQ,CAAkB,CAACa,EAL9B,GADF,CAQE,oBAAC,kBAAD,EACE,GAAG,CAAEjB,CADP,CAEE,SAAS,CAAED,CAFb,CAGE,SAAS,CAAEV,CAHb,CAIE,MAAM,CAAEc,CAJV,CAKE,KAAK,CAAEpB,CAAK,CAACwB,KAAN,QALT,CAME,IAAI,CAAC,MANP,CAOE,IAAI,CAAErB,CAPR,CAQE,MAAM,CAAED,CARV,CASE,MAAM,CAAEE,CATV,CAUE,OAAO,CAAEJ,CAAK,CAACuB,OAVjB,CAWE,OAAO,CAAEvB,CAAK,CAACsB,OAXjB,CAYE,kBAAkB,CAAEd,CAZtB,CAaE,IAAI,CAAEH,CAbR,CAcE,QAAQ,CAAE,kBAAC8B,CAAD,CAAY,iBACpBnC,CAAK,CAACoC,QADc,qBACpB,OAAApC,CAAK,CAAYmC,CAAZ,CADe,CAEpBd,CAAkB,CAACY,GAAnB,EACD,CAjBH,CAkBE,wBAAwB,CAAEvB,CAlB5B,CAmBE,MAAM,CAAEf,iBAAiB,CAACK,CAAK,CAACqC,KAAP,CAnB3B,CAoBE,0BAA0B,CAAEX,CApB9B,EARF,CAgCH,CA3G0E,CAAtE"}
@@ -1,2 +1,2 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["onChange","events","dateTimeView","locale","dropdownForm","onFocus","onBlur","dropdownClassName","leftSide","rightSide","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","name","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs"];import{addYears,startOfDecade}from"date-fns";import React,{forwardRef,useEffect,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside/useClickOutside";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{DatePickerDropdown}from"../DatePickerDropdown/DatePickerDropdown";import{DatePickerFieldTypeYearRange}from"../DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange";import{getDropdownZIndex,normalizeRangeValue}from"../helpers";import{datePickerPropDateTimeViewDefault}from"../types";import{useCalendarVisible}from"../useCalendarVisible";import{useCurrentVisibleDate}from"../useCurrentVisibleDate";export var DatePickerTypeYearRange=forwardRef(function(a,b){var c,d,e,f,g=a.onChange,h=a.events,i=a.dateTimeView,j=void 0===i?datePickerPropDateTimeViewDefault:i,k=a.locale,l=a.dropdownForm,m=a.onFocus,n=a.onBlur,o=a.dropdownClassName,p=a.leftSide,q=a.rightSide,r=a.currentVisibleDate,s=a.onChangeCurrentVisibleDate,t=a.renderAdditionalControls,u=a.inputRef,v=a.name,w=a.onDropdownOpen,x=a.dropdownOpen,y=a.ignoreOutsideClicksRefs,z=_objectWithoutProperties(a,_excluded),A=useRef(null),B=useRef(null),C=useRef(null),D=useRef(null),E=useRef(null),F=useState(!1),G=_slicedToArray(F,2),H=G[0],I=G[1],J="start"===H,K="end"===H,L=useCalendarVisible({dropdownOpen:x,onDropdownOpen:w,startRef:C,endRef:D}),M=_slicedToArray(L,2),N=M[0],O=M[1],P=useCurrentVisibleDate({currentVisibleDate:r,maxDate:a.maxDate,minDate:a.minDate,value:a.value,startOfUnit:startOfDecade,onChangeCurrentVisibleDate:s,calendarVisible:N}),Q=_slicedToArray(P,2),R=Q[0],S=Q[1];return useEffect(function(){var b,c;if(null!==(b=a.value)&&void 0!==b&&b[0]&&"classic"===j&&J){var d=startOfDecade(a.value[0]);return void(d.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&S(d))}if(null!==(c=a.value)&&void 0!==c&&c[0]&&"classic"!==j&&J){var e=startOfDecade(a.value[0]);e.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&e.getTime()!==(R&&addYears(R,10).getTime())&&S(e)}},[null===(c=a.value)||void 0===c||null===(d=c[0])||void 0===d?void 0:d.getTime(),N,J]),useEffect(function(){var b,c;if(null!==(b=a.value)&&void 0!==b&&b[1]&&"classic"===j&&K){var d=startOfDecade(a.value[1]);return void(d.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&S(d))}if(null!==(c=a.value)&&void 0!==c&&c[1]&&"classic"!==j&&K){var e=startOfDecade(a.value[1]);e.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&e.getTime()!==(R&&addYears(R,10).getTime())&&S(addYears(e,-10))}},[null===(e=a.value)||void 0===e||null===(f=e[1])||void 0===f?void 0:f.getTime(),N,K]),useClickOutside({isActive:N,ignoreClicksInsideRefs:[A,B,E].concat(_toConsumableArray(null!==y&&void 0!==y?y:[])),handler:function handler(){I(!1),O.off()}}),React.createElement(React.Fragment,null,React.createElement(DatePickerFieldTypeYearRange,Object.assign({},z,{ref:b,startFieldRef:A,endFieldRef:B,onChange:function onChange(a){null===g||void 0===g?void 0:g(a),O.on()},startFieldInputRef:useForkRef([C,null===u||void 0===u?void 0:u[0]]),endFieldInputRef:useForkRef([D,null===u||void 0===u?void 0:u[1]]),startFieldOnFocus:function startFieldOnFocusHandler(a){var b;I("start"),Array.isArray(m)?null===(b=m[0])||void 0===b?void 0:b.call(m,a):null===m||void 0===m?void 0:m(a)},endFieldOnFocus:function endFieldOnFocusHandler(a){var b;I("end"),Array.isArray(m)?null===(b=m[1])||void 0===b?void 0:b.call(m,a):null===m||void 0===m?void 0:m(a)},startFieldLeftSide:Array.isArray(p)?null===p||void 0===p?void 0:p[0]:p,startFieldRightSide:Array.isArray(q)?null===q||void 0===q?void 0:q[0]:void 0,endFieldLeftSide:Array.isArray(p)?null===p||void 0===p?void 0:p[1]:void 0,endFieldRightSide:Array.isArray(q)?null===q||void 0===q?void 0:q[1]:q,startFieldOnBlur:function startFieldOnBlurHandler(a){var b;return Array.isArray(n)?null===(b=n[0])||void 0===b?void 0:b.call(n,a):null===n||void 0===n?void 0:n(a)},endFieldOnBlur:function endFieldOnBlurHandler(a){var b;return Array.isArray(n)?null===(b=n[1])||void 0===b?void 0:b.call(n,a):null===n||void 0===n?void 0:n(a)},startFocused:J,endFocused:K,startFieldOnClick:O.on,endFieldOnClick:O.on,startFieldName:Array.isArray(v)?v[0]:"".concat(v,"_start"),endFieldName:Array.isArray(v)?v[1]:"".concat(v,"_end")})),React.createElement(DatePickerDropdown,{type:"year",ref:E,anchorRef:A,isOpen:N,onChangeCurrentVisibleDate:S,currentVisibleDate:R,value:a.value||void 0,view:j,events:h,locale:k,className:o,minDate:a.minDate,maxDate:a.maxDate,form:l,onChange:function hadleChange(b){var c=b.e,d=b.value;if(J){var e,f;null===(e=a.onChange)||void 0===e?void 0:e.call(a,{e:c,value:normalizeRangeValue([d,null===a||void 0===a||null===(f=a.value)||void 0===f?void 0:f[1]])})}if(K){var g,h;null===(g=a.onChange)||void 0===g?void 0:g.call(a,{e:c,value:normalizeRangeValue([null===a||void 0===a||null===(h=a.value)||void 0===h?void 0:h[0],d])})}},renderAdditionalControls:t,zIndex:getDropdownZIndex(a.style)}))});
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["events","dateTimeView","locale","dropdownForm","onFocus","onBlur","dropdownClassName","leftSide","rightSide","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","name","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs"];import{addYears,startOfDecade}from"date-fns";import React,{forwardRef,useEffect,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside/useClickOutside";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{DatePickerDropdown}from"../DatePickerDropdown/DatePickerDropdown";import{DatePickerFieldTypeYearRange}from"../DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange";import{getDropdownZIndex,normalizeRangeValue}from"../helpers";import{datePickerPropDateTimeViewDefault}from"../types";import{useCalendarVisible}from"../useCalendarVisible";import{useCurrentVisibleDate}from"../useCurrentVisibleDate";export var DatePickerTypeYearRange=forwardRef(function(a,b){var c,d,e,f,g=a.events,h=a.dateTimeView,i=void 0===h?datePickerPropDateTimeViewDefault:h,j=a.locale,k=a.dropdownForm,l=a.onFocus,m=a.onBlur,n=a.dropdownClassName,o=a.leftSide,p=a.rightSide,q=a.currentVisibleDate,r=a.onChangeCurrentVisibleDate,s=a.renderAdditionalControls,t=a.inputRef,u=a.name,v=a.onDropdownOpen,w=a.dropdownOpen,x=a.ignoreOutsideClicksRefs,y=_objectWithoutProperties(a,_excluded),z=useRef(null),A=useRef(null),B=useRef(null),C=useRef(null),D=useRef(null),E=useState(!1),F=_slicedToArray(E,2),G=F[0],H=F[1],I="start"===G,J="end"===G,K=useCalendarVisible({dropdownOpen:w,onDropdownOpen:v,startRef:B,endRef:C}),L=_slicedToArray(K,2),M=L[0],N=L[1],O=useCurrentVisibleDate({currentVisibleDate:q,maxDate:a.maxDate,minDate:a.minDate,value:a.value,startOfUnit:startOfDecade,onChangeCurrentVisibleDate:r,calendarVisible:M}),P=_slicedToArray(O,2),Q=P[0],R=P[1];return useEffect(function(){var b,c;if(null!==(b=a.value)&&void 0!==b&&b[0]&&"classic"===i&&I){var d=startOfDecade(a.value[0]);return void(d.getTime()!==(null===Q||void 0===Q?void 0:Q.getTime())&&R(d))}if(null!==(c=a.value)&&void 0!==c&&c[0]&&"classic"!==i&&I){var e=startOfDecade(a.value[0]);e.getTime()!==(null===Q||void 0===Q?void 0:Q.getTime())&&e.getTime()!==(Q&&addYears(Q,10).getTime())&&R(e)}},[null===(c=a.value)||void 0===c||null===(d=c[0])||void 0===d?void 0:d.getTime(),M,I]),useEffect(function(){var b,c;if(null!==(b=a.value)&&void 0!==b&&b[1]&&"classic"===i&&J){var d=startOfDecade(a.value[1]);return void(d.getTime()!==(null===Q||void 0===Q?void 0:Q.getTime())&&R(d))}if(null!==(c=a.value)&&void 0!==c&&c[1]&&"classic"!==i&&J){var e=startOfDecade(a.value[1]);e.getTime()!==(null===Q||void 0===Q?void 0:Q.getTime())&&e.getTime()!==(Q&&addYears(Q,10).getTime())&&R(addYears(e,-10))}},[null===(e=a.value)||void 0===e||null===(f=e[1])||void 0===f?void 0:f.getTime(),M,J]),useClickOutside({isActive:M,ignoreClicksInsideRefs:[z,A,D].concat(_toConsumableArray(null!==x&&void 0!==x?x:[])),handler:function handler(){H(!1),N.off()}}),React.createElement(React.Fragment,null,React.createElement(DatePickerFieldTypeYearRange,Object.assign({},y,{ref:b,startFieldRef:z,endFieldRef:A,startFieldInputRef:useForkRef([B,null===t||void 0===t?void 0:t[0]]),endFieldInputRef:useForkRef([C,null===t||void 0===t?void 0:t[1]]),startFieldOnFocus:function startFieldOnFocusHandler(a){var b;H("start"),Array.isArray(l)?null===(b=l[0])||void 0===b?void 0:b.call(l,a):null===l||void 0===l?void 0:l(a)},endFieldOnFocus:function endFieldOnFocusHandler(a){var b;H("end"),Array.isArray(l)?null===(b=l[1])||void 0===b?void 0:b.call(l,a):null===l||void 0===l?void 0:l(a)},startFieldLeftSide:Array.isArray(o)?null===o||void 0===o?void 0:o[0]:o,startFieldRightSide:Array.isArray(p)?null===p||void 0===p?void 0:p[0]:void 0,endFieldLeftSide:Array.isArray(o)?null===o||void 0===o?void 0:o[1]:void 0,endFieldRightSide:Array.isArray(p)?null===p||void 0===p?void 0:p[1]:p,startFieldOnBlur:function startFieldOnBlurHandler(a){var b;return Array.isArray(m)?null===(b=m[0])||void 0===b?void 0:b.call(m,a):null===m||void 0===m?void 0:m(a)},endFieldOnBlur:function endFieldOnBlurHandler(a){var b;return Array.isArray(m)?null===(b=m[1])||void 0===b?void 0:b.call(m,a):null===m||void 0===m?void 0:m(a)},startFocused:I,endFocused:J,startFieldOnClick:N.on,endFieldOnClick:N.on,startFieldName:Array.isArray(u)?u[0]:"".concat(u,"_start"),endFieldName:Array.isArray(u)?u[1]:"".concat(u,"_end")})),React.createElement(DatePickerDropdown,{type:"year",ref:D,anchorRef:z,isOpen:M,onChangeCurrentVisibleDate:R,currentVisibleDate:Q,value:a.value||void 0,view:i,events:g,locale:j,className:n,minDate:a.minDate,maxDate:a.maxDate,form:k,onChange:function hadleChange(b){var c=b.e,d=b.value;if(I){var e,f;null===(e=a.onChange)||void 0===e?void 0:e.call(a,{e:c,value:normalizeRangeValue([d,null===a||void 0===a||null===(f=a.value)||void 0===f?void 0:f[1]])})}if(J){var g,h;null===(g=a.onChange)||void 0===g?void 0:g.call(a,{e:c,value:normalizeRangeValue([null===a||void 0===a||null===(h=a.value)||void 0===h?void 0:h[0],d])})}},renderAdditionalControls:s,zIndex:getDropdownZIndex(a.style)}))});
2
2
  //# sourceMappingURL=DatePickerTypeYearRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerTypeYearRange.js","names":["addYears","startOfDecade","React","forwardRef","useEffect","useRef","useState","useClickOutside","useForkRef","DatePickerDropdown","DatePickerFieldTypeYearRange","getDropdownZIndex","normalizeRangeValue","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeYearRange","props","ref","onChange","events","dateTimeView","locale","dropdownForm","onFocus","onBlur","dropdownClassName","leftSide","rightSide","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","name","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","fieldProps","startFieldRef","endFieldRef","startFieldInputRef","endFieldInputRef","calendarRef","fieldFocused","setFieldFocused","startFocused","endFocused","startRef","endRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","setCurrentVisibleDate","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","date","on","startFieldOnFocusHandler","e","Array","isArray","endFieldOnFocusHandler","startFieldOnBlurHandler","endFieldOnBlurHandler","hadleChange","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.tsx"],"sourcesContent":["import { addYears, startOfDecade } from 'date-fns';\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport {\n DatePickerDropdown,\n DatePickerDropdownPropOnChange,\n} from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeYearRange } from '../DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange';\nimport { getDropdownZIndex, normalizeRangeValue } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeYearRange: DatePickerTypeComponent<'date-range'> =\n forwardRef((props, ref) => {\n const {\n onChange,\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownForm,\n onFocus,\n onBlur,\n dropdownClassName,\n leftSide,\n rightSide,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n inputRef,\n name,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...fieldProps\n } = props;\n\n const startFieldRef = useRef<HTMLDivElement>(null);\n const endFieldRef = useRef<HTMLDivElement>(null);\n const startFieldInputRef = useRef<HTMLInputElement>(null);\n const endFieldInputRef = useRef<HTMLInputElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [fieldFocused, setFieldFocused] = useState<'start' | 'end' | false>(\n false,\n );\n\n const startFocused = fieldFocused === 'start';\n const endFocused = fieldFocused === 'end';\n\n const hadleChange: DatePickerDropdownPropOnChange = ({ e, value }) => {\n if (startFocused) {\n props.onChange?.({\n e,\n value: normalizeRangeValue([value, props?.value?.[1]]),\n });\n }\n if (endFocused) {\n props.onChange?.({\n e,\n value: normalizeRangeValue([props?.value?.[0], value]),\n });\n }\n };\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n startRef: startFieldInputRef,\n endRef: endFieldInputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfDecade,\n onChangeCurrentVisibleDate,\n calendarVisible,\n });\n\n const startFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[0]?.(e) : onBlur?.(e);\n\n const endFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[1]?.(e) : onBlur?.(e);\n\n const startFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused('start');\n Array.isArray(onFocus) ? onFocus[0]?.(e) : onFocus?.(e);\n };\n\n const endFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused('end');\n Array.isArray(onFocus) ? onFocus[1]?.(e) : onFocus?.(e);\n };\n\n // эффект для того чтобы календарь переключался при вводе с клавиатуры\n useEffect(() => {\n if (props.value?.[0] && dateTimeView === 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[0] && dateTimeView !== 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value?.[0]?.getTime(), calendarVisible, startFocused]);\n\n useEffect(() => {\n if (props.value?.[1] && dateTimeView === 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[1] && dateTimeView !== 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(addYears(newVisibleDate, -10));\n }\n }\n }, [props.value?.[1]?.getTime(), calendarVisible, endFocused]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n startFieldRef,\n endFieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: () => {\n setFieldFocused(false);\n setCalendarVisible.off();\n },\n });\n\n return (\n <>\n <DatePickerFieldTypeYearRange\n {...fieldProps}\n ref={ref}\n startFieldRef={startFieldRef}\n endFieldRef={endFieldRef}\n onChange={(date) => {\n onChange?.(date);\n setCalendarVisible.on();\n }}\n startFieldInputRef={useForkRef([startFieldInputRef, inputRef?.[0]])}\n endFieldInputRef={useForkRef([endFieldInputRef, inputRef?.[1]])}\n startFieldOnFocus={startFieldOnFocusHandler}\n endFieldOnFocus={endFieldOnFocusHandler}\n startFieldLeftSide={\n Array.isArray(leftSide) ? leftSide?.[0] : leftSide\n }\n startFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[0] : undefined\n }\n endFieldLeftSide={Array.isArray(leftSide) ? leftSide?.[1] : undefined}\n endFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[1] : rightSide\n }\n startFieldOnBlur={startFieldOnBlurHandler}\n endFieldOnBlur={endFieldOnBlurHandler}\n startFocused={startFocused}\n endFocused={endFocused}\n startFieldOnClick={setCalendarVisible.on}\n endFieldOnClick={setCalendarVisible.on}\n startFieldName={Array.isArray(name) ? name[0] : `${name}_start`}\n endFieldName={Array.isArray(name) ? name[1] : `${name}_end`}\n />\n <DatePickerDropdown\n type=\"year\"\n ref={calendarRef}\n anchorRef={startFieldRef}\n isOpen={calendarVisible}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n currentVisibleDate={currentVisibleDate}\n value={props.value || undefined}\n view={dateTimeView}\n events={events}\n locale={locale}\n className={dropdownClassName}\n minDate={props.minDate}\n maxDate={props.maxDate}\n form={dropdownForm}\n onChange={hadleChange}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n />\n </>\n );\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerTypeYearRange.js","names":["addYears","startOfDecade","React","forwardRef","useEffect","useRef","useState","useClickOutside","useForkRef","DatePickerDropdown","DatePickerFieldTypeYearRange","getDropdownZIndex","normalizeRangeValue","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeYearRange","props","ref","events","dateTimeView","locale","dropdownForm","onFocus","onBlur","dropdownClassName","leftSide","rightSide","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","name","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","fieldProps","startFieldRef","endFieldRef","startFieldInputRef","endFieldInputRef","calendarRef","fieldFocused","setFieldFocused","startFocused","endFocused","startRef","endRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","setCurrentVisibleDate","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","startFieldOnFocusHandler","e","Array","isArray","endFieldOnFocusHandler","startFieldOnBlurHandler","endFieldOnBlurHandler","on","hadleChange","onChange","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.tsx"],"sourcesContent":["import { addYears, startOfDecade } from 'date-fns';\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport {\n DatePickerDropdown,\n DatePickerDropdownPropOnChange,\n} from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeYearRange } from '../DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange';\nimport { getDropdownZIndex, normalizeRangeValue } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeYearRange: DatePickerTypeComponent<'date-range'> =\n forwardRef((props, ref) => {\n const {\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownForm,\n onFocus,\n onBlur,\n dropdownClassName,\n leftSide,\n rightSide,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n inputRef,\n name,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...fieldProps\n } = props;\n\n const startFieldRef = useRef<HTMLDivElement>(null);\n const endFieldRef = useRef<HTMLDivElement>(null);\n const startFieldInputRef = useRef<HTMLInputElement>(null);\n const endFieldInputRef = useRef<HTMLInputElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [fieldFocused, setFieldFocused] = useState<'start' | 'end' | false>(\n false,\n );\n\n const startFocused = fieldFocused === 'start';\n const endFocused = fieldFocused === 'end';\n\n const hadleChange: DatePickerDropdownPropOnChange = ({ e, value }) => {\n if (startFocused) {\n props.onChange?.({\n e,\n value: normalizeRangeValue([value, props?.value?.[1]]),\n });\n }\n if (endFocused) {\n props.onChange?.({\n e,\n value: normalizeRangeValue([props?.value?.[0], value]),\n });\n }\n };\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n startRef: startFieldInputRef,\n endRef: endFieldInputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfDecade,\n onChangeCurrentVisibleDate,\n calendarVisible,\n });\n\n const startFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[0]?.(e) : onBlur?.(e);\n\n const endFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[1]?.(e) : onBlur?.(e);\n\n const startFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused('start');\n Array.isArray(onFocus) ? onFocus[0]?.(e) : onFocus?.(e);\n };\n\n const endFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused('end');\n Array.isArray(onFocus) ? onFocus[1]?.(e) : onFocus?.(e);\n };\n\n // эффект для того чтобы календарь переключался при вводе с клавиатуры\n useEffect(() => {\n if (props.value?.[0] && dateTimeView === 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[0] && dateTimeView !== 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value?.[0]?.getTime(), calendarVisible, startFocused]);\n\n useEffect(() => {\n if (props.value?.[1] && dateTimeView === 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[1] && dateTimeView !== 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(addYears(newVisibleDate, -10));\n }\n }\n }, [props.value?.[1]?.getTime(), calendarVisible, endFocused]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n startFieldRef,\n endFieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: () => {\n setFieldFocused(false);\n setCalendarVisible.off();\n },\n });\n\n return (\n <>\n <DatePickerFieldTypeYearRange\n {...fieldProps}\n ref={ref}\n startFieldRef={startFieldRef}\n endFieldRef={endFieldRef}\n startFieldInputRef={useForkRef([startFieldInputRef, inputRef?.[0]])}\n endFieldInputRef={useForkRef([endFieldInputRef, inputRef?.[1]])}\n startFieldOnFocus={startFieldOnFocusHandler}\n endFieldOnFocus={endFieldOnFocusHandler}\n startFieldLeftSide={\n Array.isArray(leftSide) ? leftSide?.[0] : leftSide\n }\n startFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[0] : undefined\n }\n endFieldLeftSide={Array.isArray(leftSide) ? leftSide?.[1] : undefined}\n endFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[1] : rightSide\n }\n startFieldOnBlur={startFieldOnBlurHandler}\n endFieldOnBlur={endFieldOnBlurHandler}\n startFocused={startFocused}\n endFocused={endFocused}\n startFieldOnClick={setCalendarVisible.on}\n endFieldOnClick={setCalendarVisible.on}\n startFieldName={Array.isArray(name) ? name[0] : `${name}_start`}\n endFieldName={Array.isArray(name) ? name[1] : `${name}_end`}\n />\n <DatePickerDropdown\n type=\"year\"\n ref={calendarRef}\n anchorRef={startFieldRef}\n isOpen={calendarVisible}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n currentVisibleDate={currentVisibleDate}\n value={props.value || undefined}\n view={dateTimeView}\n events={events}\n locale={locale}\n className={dropdownClassName}\n minDate={props.minDate}\n maxDate={props.maxDate}\n form={dropdownForm}\n onChange={hadleChange}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n />\n </>\n );\n });\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useEffect}from"react";import{useFlag}from"../../hooks/useFlag";import{useKeysRef}from"../../hooks/useKeysRef";export var useCalendarVisible=function(a){var b=a.onDropdownOpen,c=a.dropdownOpen,d=a.disabled,e=a.startRef,f=a.endRef,g=useFlag(!1),h=_slicedToArray(g,2),i=h[0],j=h[1],k=function(a){a.preventDefault(),j.on()},l={ArrowUp:k,ArrowDown:k,PageUp:k,PageDown:k,Home:k,End:k,Enter:function Enter(){d||j.on()},Escape:function Escape(){j.off()},Tab:function Tab(a){i&&(a.preventDefault(),j.off())}};return useKeysRef({ref:e,keys:l,isActive:!d}),useKeysRef({ref:f,keys:l,isActive:!d}),useEffect(function(){d||(null===b||void 0===b?void 0:b(i))},[i]),useEffect(function(){d||j.set(null!==c&&void 0!==c&&c)},[c]),useEffect(function(){d&&j.off()},[d]),[i,j]};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useEffect}from"react";import{useFlag}from"../../hooks/useFlag";import{useKeysRef}from"../../hooks/useKeysRef";export var useCalendarVisible=function(a){var b=a.onDropdownOpen,c=a.dropdownOpen,d=a.disabled,e=a.startRef,f=a.endRef,g=useFlag(!1),h=_slicedToArray(g,2),i=h[0],j=h[1],k=function(a){a.preventDefault(),j.on()},l={ArrowUp:k,ArrowDown:k,PageUp:k,PageDown:k,Home:k,End:k,Enter:function Enter(){d||j.on()},Escape:function Escape(){j.off()},Tab:function Tab(a){i&&(a.preventDefault(),j.off())}},m=function(a){var b=a.key;"Tab"!==b&&"Escape"!==b&&j.on()};return useKeysRef({ref:e,keys:l,eventHandler:m,isActive:!d}),useKeysRef({ref:f,keys:l,eventHandler:m,isActive:!d}),useEffect(function(){d||(null===b||void 0===b?void 0:b(i))},[i]),useEffect(function(){d||j.set(null!==c&&void 0!==c&&c)},[c]),useEffect(function(){d&&j.off()},[d]),[i,j]};
2
2
  //# sourceMappingURL=useCalendarVisible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendarVisible.js","names":["useEffect","useFlag","useKeysRef","useCalendarVisible","params","onDropdownOpen","dropdownOpen","disabled","startRef","endRef","calendarVisible","setCalendarVisible","ArrowHandler","e","preventDefault","on","keys","ArrowUp","ArrowDown","PageUp","PageDown","Home","End","Enter","Escape","off","Tab","ref","isActive","set"],"sources":["../../../../../src/components/DatePicker/useCalendarVisible.ts"],"sourcesContent":["import React, { useEffect } from 'react';\n\nimport { useFlag } from '##/hooks/useFlag';\nimport { KeyHandlers, useKeysRef } from '##/hooks/useKeysRef';\n\ntype UseCalendarVisibleParams = {\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n disabled?: boolean;\n startRef: React.RefObject<HTMLInputElement>;\n endRef?: React.RefObject<HTMLInputElement>;\n};\ntype UseFlagReturn = ReturnType<typeof useFlag>;\ntype Return = [UseFlagReturn[0], UseFlagReturn[1]];\n\nexport const useCalendarVisible = (\n params: UseCalendarVisibleParams,\n): Return => {\n const { onDropdownOpen, dropdownOpen, disabled, startRef, endRef } = params;\n\n const [calendarVisible, setCalendarVisible] = useFlag(false);\n\n const ArrowHandler = (e: KeyboardEvent) => {\n e.preventDefault();\n setCalendarVisible.on();\n };\n\n const Escape = () => {\n setCalendarVisible.off();\n };\n\n const Enter = () => {\n !disabled && setCalendarVisible.on();\n };\n\n const Tab = (e: KeyboardEvent) => {\n if (calendarVisible) {\n e.preventDefault();\n setCalendarVisible.off();\n }\n };\n\n const keys: KeyHandlers = {\n ArrowUp: ArrowHandler,\n ArrowDown: ArrowHandler,\n PageUp: ArrowHandler,\n PageDown: ArrowHandler,\n Home: ArrowHandler,\n End: ArrowHandler,\n Enter,\n Escape,\n Tab,\n };\n\n useKeysRef({ ref: startRef, keys, isActive: !disabled });\n useKeysRef({ ref: endRef, keys, isActive: !disabled });\n\n useEffect(() => {\n !disabled && onDropdownOpen?.(calendarVisible);\n }, [calendarVisible]);\n\n useEffect(() => {\n !disabled && setCalendarVisible.set(dropdownOpen ?? false);\n }, [dropdownOpen]);\n\n useEffect(() => {\n disabled && setCalendarVisible.off();\n }, [disabled]);\n\n return [calendarVisible, setCalendarVisible];\n};\n"],"mappings":"iEAAA,OAAgBA,SAAhB,KAAiC,OAAjC,CAEA,OAASC,OAAT,2BACA,OAAsBC,UAAtB,8BAYA,MAAO,IAAMC,mBAAkB,CAAG,SAChCC,CADgC,CAErB,IACHC,EADG,CAC0DD,CAD1D,CACHC,cADG,CACaC,CADb,CAC0DF,CAD1D,CACaE,YADb,CAC2BC,CAD3B,CAC0DH,CAD1D,CAC2BG,QAD3B,CACqCC,CADrC,CAC0DJ,CAD1D,CACqCI,QADrC,CAC+CC,CAD/C,CAC0DL,CAD1D,CAC+CK,MAD/C,GAGmCR,OAAO,IAH1C,uBAGJS,CAHI,MAGaC,CAHb,MAKLC,CAAY,CAAG,SAACC,CAAD,CAAsB,CACzCA,CAAC,CAACC,cAAF,EADyC,CAEzCH,CAAkB,CAACI,EAAnB,EACD,CARU,CAyBLC,CAAiB,CAAG,CACxBC,OAAO,CAAEL,CADe,CAExBM,SAAS,CAAEN,CAFa,CAGxBO,MAAM,CAAEP,CAHgB,CAIxBQ,QAAQ,CAAER,CAJc,CAKxBS,IAAI,CAAET,CALkB,CAMxBU,GAAG,CAAEV,CANmB,CAOxBW,KAAK,CAlBO,QAARA,MAAQ,EAAM,CACjBhB,CAAD,EAAaI,CAAkB,CAACI,EAAnB,EACd,CASyB,CAQxBS,MAAM,CAvBO,QAATA,OAAS,EAAM,CACnBb,CAAkB,CAACc,GAAnB,EACD,CAayB,CASxBC,GAAG,CAhBO,QAANA,IAAM,CAACb,CAAD,CAAsB,CAC5BH,CAD4B,GAE9BG,CAAC,CAACC,cAAF,EAF8B,CAG9BH,CAAkB,CAACc,GAAnB,EAH8B,CAKjC,CAEyB,CAzBf,CAoDX,MAfAvB,WAAU,CAAC,CAAEyB,GAAG,CAAEnB,CAAP,CAAiBQ,IAAI,CAAJA,CAAjB,CAAuBY,QAAQ,CAAE,CAACrB,CAAlC,CAAD,CAeV,CAdAL,UAAU,CAAC,CAAEyB,GAAG,CAAElB,CAAP,CAAeO,IAAI,CAAJA,CAAf,CAAqBY,QAAQ,CAAE,CAACrB,CAAhC,CAAD,CAcV,CAZAP,SAAS,CAAC,UAAM,CACbO,CAAD,UAAaF,CAAb,WAAaA,CAAb,QAAaA,CAAc,CAAGK,CAAH,CAA3B,CACD,CAFQ,CAEN,CAACA,CAAD,CAFM,CAYT,CARAV,SAAS,CAAC,UAAM,CACbO,CAAD,EAAaI,CAAkB,CAACkB,GAAnB,QAAuBvB,CAAvB,WAAuBA,CAAvB,EAAuBA,CAAvB,CACd,CAFQ,CAEN,CAACA,CAAD,CAFM,CAQT,CAJAN,SAAS,CAAC,UAAM,CACdO,CAAQ,EAAII,CAAkB,CAACc,GAAnB,EACb,CAFQ,CAEN,CAAClB,CAAD,CAFM,CAIT,CAAO,CAACG,CAAD,CAAkBC,CAAlB,CACR,CAvDM"}
1
+ {"version":3,"file":"useCalendarVisible.js","names":["useEffect","useFlag","useKeysRef","useCalendarVisible","params","onDropdownOpen","dropdownOpen","disabled","startRef","endRef","calendarVisible","setCalendarVisible","ArrowHandler","e","preventDefault","on","keys","ArrowUp","ArrowDown","PageUp","PageDown","Home","End","Enter","Escape","off","Tab","eventHandler","key","ref","isActive","set"],"sources":["../../../../../src/components/DatePicker/useCalendarVisible.ts"],"sourcesContent":["import React, { useEffect } from 'react';\n\nimport { useFlag } from '##/hooks/useFlag';\nimport { KeyHandlers, useKeysRef } from '##/hooks/useKeysRef';\n\ntype UseCalendarVisibleParams = {\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n disabled?: boolean;\n startRef: React.RefObject<HTMLInputElement>;\n endRef?: React.RefObject<HTMLInputElement>;\n};\ntype UseFlagReturn = ReturnType<typeof useFlag>;\ntype Return = [UseFlagReturn[0], UseFlagReturn[1]];\n\nexport const useCalendarVisible = (\n params: UseCalendarVisibleParams,\n): Return => {\n const { onDropdownOpen, dropdownOpen, disabled, startRef, endRef } = params;\n\n const [calendarVisible, setCalendarVisible] = useFlag(false);\n\n const ArrowHandler = (e: KeyboardEvent) => {\n e.preventDefault();\n setCalendarVisible.on();\n };\n\n const Escape = () => {\n setCalendarVisible.off();\n };\n\n const Enter = () => {\n !disabled && setCalendarVisible.on();\n };\n\n const Tab = (e: KeyboardEvent) => {\n if (calendarVisible) {\n e.preventDefault();\n setCalendarVisible.off();\n }\n };\n\n const keys: KeyHandlers = {\n ArrowUp: ArrowHandler,\n ArrowDown: ArrowHandler,\n PageUp: ArrowHandler,\n PageDown: ArrowHandler,\n Home: ArrowHandler,\n End: ArrowHandler,\n Enter,\n Escape,\n Tab,\n };\n\n const eventHandler = (e: KeyboardEvent) => {\n const { key } = e;\n if (key !== 'Tab' && key !== 'Escape') {\n setCalendarVisible.on();\n }\n };\n\n useKeysRef({ ref: startRef, keys, eventHandler, isActive: !disabled });\n useKeysRef({ ref: endRef, keys, eventHandler, isActive: !disabled });\n\n useEffect(() => {\n !disabled && onDropdownOpen?.(calendarVisible);\n }, [calendarVisible]);\n\n useEffect(() => {\n !disabled && setCalendarVisible.set(dropdownOpen ?? false);\n }, [dropdownOpen]);\n\n useEffect(() => {\n disabled && setCalendarVisible.off();\n }, [disabled]);\n\n return [calendarVisible, setCalendarVisible];\n};\n"],"mappings":"iEAAA,OAAgBA,SAAhB,KAAiC,OAAjC,CAEA,OAASC,OAAT,2BACA,OAAsBC,UAAtB,8BAYA,MAAO,IAAMC,mBAAkB,CAAG,SAChCC,CADgC,CAErB,IACHC,EADG,CAC0DD,CAD1D,CACHC,cADG,CACaC,CADb,CAC0DF,CAD1D,CACaE,YADb,CAC2BC,CAD3B,CAC0DH,CAD1D,CAC2BG,QAD3B,CACqCC,CADrC,CAC0DJ,CAD1D,CACqCI,QADrC,CAC+CC,CAD/C,CAC0DL,CAD1D,CAC+CK,MAD/C,GAGmCR,OAAO,IAH1C,uBAGJS,CAHI,MAGaC,CAHb,MAKLC,CAAY,CAAG,SAACC,CAAD,CAAsB,CACzCA,CAAC,CAACC,cAAF,EADyC,CAEzCH,CAAkB,CAACI,EAAnB,EACD,CARU,CAyBLC,CAAiB,CAAG,CACxBC,OAAO,CAAEL,CADe,CAExBM,SAAS,CAAEN,CAFa,CAGxBO,MAAM,CAAEP,CAHgB,CAIxBQ,QAAQ,CAAER,CAJc,CAKxBS,IAAI,CAAET,CALkB,CAMxBU,GAAG,CAAEV,CANmB,CAOxBW,KAAK,CAlBO,QAARA,MAAQ,EAAM,CACjBhB,CAAD,EAAaI,CAAkB,CAACI,EAAnB,EACd,CASyB,CAQxBS,MAAM,CAvBO,QAATA,OAAS,EAAM,CACnBb,CAAkB,CAACc,GAAnB,EACD,CAayB,CASxBC,GAAG,CAhBO,QAANA,IAAM,CAACb,CAAD,CAAsB,CAC5BH,CAD4B,GAE9BG,CAAC,CAACC,cAAF,EAF8B,CAG9BH,CAAkB,CAACc,GAAnB,EAH8B,CAKjC,CAEyB,CAzBf,CAqCLE,CAAY,CAAG,SAACd,CAAD,CAAsB,CACzC,GAAQe,EAAR,CAAgBf,CAAhB,CAAQe,GAAR,CACY,KAAR,GAAAA,CAAG,EAAsB,QAAR,GAAAA,CAFoB,EAGvCjB,CAAkB,CAACI,EAAnB,EAEH,CA1CU,CA2DX,MAfAb,WAAU,CAAC,CAAE2B,GAAG,CAAErB,CAAP,CAAiBQ,IAAI,CAAJA,CAAjB,CAAuBW,YAAY,CAAZA,CAAvB,CAAqCG,QAAQ,CAAE,CAACvB,CAAhD,CAAD,CAeV,CAdAL,UAAU,CAAC,CAAE2B,GAAG,CAAEpB,CAAP,CAAeO,IAAI,CAAJA,CAAf,CAAqBW,YAAY,CAAZA,CAArB,CAAmCG,QAAQ,CAAE,CAACvB,CAA9C,CAAD,CAcV,CAZAP,SAAS,CAAC,UAAM,CACbO,CAAD,UAAaF,CAAb,WAAaA,CAAb,QAAaA,CAAc,CAAGK,CAAH,CAA3B,CACD,CAFQ,CAEN,CAACA,CAAD,CAFM,CAYT,CARAV,SAAS,CAAC,UAAM,CACbO,CAAD,EAAaI,CAAkB,CAACoB,GAAnB,QAAuBzB,CAAvB,WAAuBA,CAAvB,EAAuBA,CAAvB,CACd,CAFQ,CAEN,CAACA,CAAD,CAFM,CAQT,CAJAN,SAAS,CAAC,UAAM,CACdO,CAAQ,EAAII,CAAkB,CAACc,GAAnB,EACb,CAFQ,CAEN,CAAClB,CAAD,CAFM,CAIT,CAAO,CAACG,CAAD,CAAkBC,CAAlB,CACR,CA9DM"}
@@ -36,57 +36,4 @@ export declare type Props = {
36
36
  iconSize?: IconPropSize;
37
37
  children?: never;
38
38
  };
39
- export declare const useTextFieldEventsHandler: <P extends {
40
- className?: string | undefined;
41
- value?: TextFieldPropValue | undefined;
42
- cols?: number | undefined;
43
- onChange?: TextFieldPropOnChange | undefined;
44
- id?: TextFieldPropId | undefined;
45
- name?: string | undefined;
46
- type?: string | undefined;
47
- disabled?: boolean | undefined;
48
- maxLength?: number | undefined;
49
- size?: "m" | "s" | "xs" | "l" | undefined;
50
- view?: "default" | "clear" | undefined;
51
- form?: "default" | "round" | "defaultClear" | "defaultBrick" | "brick" | "brickDefault" | "brickClear" | "brickRound" | "roundClear" | "roundBrick" | "clearRound" | "clearDefault" | "clearBrick" | "clearClear" | undefined;
52
- state?: "alert" | "warning" | "success" | undefined;
53
- status?: "alert" | "warning" | "success" | undefined;
54
- width?: "default" | "full" | undefined;
55
- onFocus?: React.FocusEventHandler<HTMLElement> | undefined;
56
- onBlur?: React.FocusEventHandler<HTMLElement> | undefined;
57
- incrementButtons?: boolean | undefined;
58
- autoFocus?: boolean | undefined;
59
- placeholder?: string | undefined;
60
- leftSide?: string | IconComponent<"span"> | undefined;
61
- rightSide?: string | IconComponent<"span"> | undefined;
62
- withClearButton?: boolean | undefined;
63
- autoComplete?: AutoCompete | undefined;
64
- max?: string | number | undefined;
65
- min?: string | number | undefined;
66
- readOnly?: boolean | undefined;
67
- required?: boolean | undefined;
68
- step?: string | number | number[] | undefined;
69
- tabIndex?: number | undefined;
70
- inputContainerRef?: React.Ref<HTMLDivElement> | undefined;
71
- inputRef?: React.Ref<HTMLInputElement | HTMLTextAreaElement> | undefined;
72
- ariaLabel?: string | undefined;
73
- iconSize?: "m" | "s" | "xs" | "l" | undefined;
74
- children?: undefined;
75
- label?: string | undefined;
76
- labelIcon?: IconComponent<"span"> | undefined;
77
- caption?: string | undefined;
78
- labelPosition?: "left" | "top" | undefined;
79
- focused?: boolean | undefined;
80
- onKeyDownCapture?: React.KeyboardEventHandler<Element> | undefined;
81
- onKeyPress?: React.KeyboardEventHandler<Element> | undefined;
82
- onKeyPressCapture?: React.KeyboardEventHandler<Element> | undefined;
83
- onKeyUp?: React.KeyboardEventHandler<Element> | undefined;
84
- onKeyUpCapture?: React.KeyboardEventHandler<Element> | undefined;
85
- onKeyDown?: React.KeyboardEventHandler<Element> | undefined;
86
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "className" | "id" | "placeholder" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "size" | "caption" | "form" | "label" | "view" | "status" | "step" | "max" | "min" | "name" | "type" | "width" | "autoFocus" | "disabled" | "value" | "autoComplete" | "maxLength" | "readOnly" | "required" | "cols" | "inputRef" | "state" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "incrementButtons" | "leftSide" | "rightSide" | "withClearButton" | "inputContainerRef" | "iconSize"> & {
87
- rows?: undefined;
88
- minRows?: undefined;
89
- maxRows?: undefined;
90
- } & {
91
- rightSide?: string | IconComponent<"span"> | undefined;
92
- } & React.RefAttributes<HTMLElement>>(props: P, handler: EventInterceptorHandler, ref: React.RefObject<HTMLDivElement>) => P;
39
+ export declare const useTextFieldEventsHandler: <P extends import("../../TextField/types").TextFieldProps<string>>(props: P, handler: EventInterceptorHandler, ref: React.RefObject<HTMLDivElement>) => P;
@@ -1 +1 @@
1
- .canary--Select{--caption-margin-left:calc(var(--input-space) + var(--control-border-width));align-items:flex-start;display:flex;justify-content:flex-start;position:relative;width:100%}.canary--Select_type_userselect.canary--Select_size_s{--select-element-height:var(--space-xl)}.canary--Select_type_userselect.canary--Select_size_m{--select-element-height:calc(var(--space-2xl) - var(--space-3xs))}.canary--Select_type_userselect.canary--Select_size_l{--select-element-height:calc(var(--space-3xl) - var(--space-2xs))}.canary--Select_type_combobox.canary--Select_size_xs{--select-element-height:calc(var(--space-m) + var(--space-3xs))}.canary--Select_type_combobox.canary--Select_size_s{--select-element-height:var(--space-xl)}.canary--Select_type_combobox.canary--Select_size_m{--select-element-height:calc(var(--space-2xl) - var(--space-2xs))}.canary--Select_type_combobox.canary--Select_size_l{--select-element-height:var(--space-2xl)}.canary--Select_type_select.canary--Select_size_xs{--select-element-height:calc(var(--space-m) + var(--space-3xs))}.canary--Select_type_select.canary--Select_size_s{--select-element-height:var(--space-xl)}.canary--Select_type_select.canary--Select_size_m{--select-element-height:calc(var(--space-2xl) - var(--space-2xs))}.canary--Select_type_select.canary--Select_size_l{--select-element-height:var(--space-2xl)}.canary--Select_size_xs{--label-offset:var(--space-2xs);--caption-offset:var(--space-2xs);--round-offset:calc(var(--space-3xs) + var(--space-2xs));--input-height:var(--control-height-xs);--input-space:calc(var(--control-space-xs)*0.5);--input-font-size:var(--control-text-size-xs);--tag-space:calc((var(--space-xs) - 1px)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--select-element-height)*4.5)}.canary--Select_size_s{--label-offset:var(--space-2xs);--caption-offset:var(--space-2xs);--round-offset:calc(var(--space-2xs));--input-height:var(--control-height-s);--input-space:calc(var(--control-space-s)*0.5);--input-font-size:var(--control-text-size-s);--tag-space:calc(var(--space-xs)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--select-element-height)*4.5)}.canary--Select_size_m{--label-offset:var(--space-xs);--caption-offset:var(--space-xs);--round-offset:calc(var(--space-3xs) + var(--space-2xs));--input-height:var(--control-height-m);--input-space:calc(var(--control-space-m)*0.5);--input-font-size:var(--control-text-size-m);--tag-space:calc(var(--space-s)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--space-2xl)*4.5 - var(--space-2xs)*4.5)}.canary--Select_size_l{--label-offset:var(--space-xs);--caption-offset:var(--space-xs);--round-offset:calc(var(--space-xs));--input-height:var(--control-height-l);--input-space:calc(var(--control-space-l)*0.5);--input-font-size:var(--control-text-size-l);--tag-space:calc(var(--space-m)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--space-2xl)*4.5)}.canary--Select_labelPosition_top{flex-direction:column}.canary--Select_labelPosition_top>:not(:last-child){margin-bottom:var(--label-offset)}.canary--Select_labelPosition_left{flex-direction:row}.canary--Select_labelPosition_left .canary--Select-Label{align-items:center;display:inline-flex;height:var(--input-height)}.canary--Select_labelPosition_left>:not(:last-child){margin-right:var(--space-s)}.canary--Select-Body{display:inline-flex;flex-direction:column;width:100%}.canary--Select-Body .canary--Select-Caption{margin-left:var(--caption-margin-left);margin-top:var(--caption-offset)}.canary--Select-SelectContainer{--container-border-color:var(--color-control-bg-border-default);display:flex;position:relative;width:100%}.canary--Select-SelectContainer_status_alert{--container-border-color:var(--color-bg-alert)}.canary--Select-SelectContainer_status_success{--container-border-color:var(--color-bg-success)}.canary--Select-SelectContainer_status_warning{--container-border-color:var(--color-bg-warning)}.canary--Select-SelectContainer_view_default .canary--Select-Control{background:var(--color-control-bg-default);border:var(--control-border-width) solid var(--container-border-color);border-radius:var(--control-radius);color:var(--color-control-typo-default);padding:0}.canary--Select-SelectContainer_view_default .canary--Select-Control:hover{border-color:var(--color-control-bg-border-default-hover)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_focused .canary--Select-Control{border-color:var(--color-control-bg-border-focus);outline:none}.canary--Select-SelectContainer_multiple .canary--Select-Control{height:auto;min-height:var(--input-height)}.canary--Select-SelectContainer_form_round .canary--Select-Control{border-radius:calc(var(--input-height)/2);padding-left:var(--round-offset)}.canary--Select-SelectContainer_form_brick .canary--Select-Control{border-radius:0}.canary--Select-SelectContainer_form_clear .canary--Select-Control{border-width:0;border-bottom-width:var(--control-border-width);border-radius:0}.canary--Select-SelectContainer_form_defaultClear .canary--Select-Control{border-radius:var(--control-radius) 0 0 var(--control-radius);border-right-width:0}.canary--Select-SelectContainer_form_clearDefault .canary--Select-Control{border-left-width:0;border-radius:0 var(--control-radius) var(--control-radius) 0}.canary--Select-SelectContainer_form_defaultBrick .canary--Select-Control{border-radius:var(--control-radius) 0 0 var(--control-radius)}.canary--Select-SelectContainer_form_brickDefault .canary--Select-Control{border-radius:0 var(--control-radius) var(--control-radius) 0}.canary--Select-SelectContainer_form_roundBrick .canary--Select-Control{border-radius:calc(var(--input-height)/2) 0 0 calc(var(--input-height)/2);padding-left:var(--round-offset)}.canary--Select-SelectContainer_form_brickRound .canary--Select-Control{border-radius:0 calc(var(--input-height)/2) calc(var(--input-height)/2) 0}.canary--Select-SelectContainer_form_brickClear .canary--Select-Control{border-radius:0;border-right-width:0}.canary--Select-SelectContainer_form_clearBrick .canary--Select-Control{border-left-width:0;border-radius:0}.canary--Select-SelectContainer_form_clearRound .canary--Select-Control{border-left-width:0;border-radius:0 calc(var(--input-height)/2) calc(var(--input-height)/2) 0}.canary--Select-SelectContainer_form_roundClear .canary--Select-Control{border-radius:calc(var(--input-height)/2) 0 0 calc(var(--input-height)/2);border-right-width:0;padding-left:var(--round-offset)}.canary--Select-SelectContainer_form_clearClear .canary--Select-Control{border-width:0;border-bottom-width:var(--control-border-width);border-radius:0;border-top-width:var(--control-border-width)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clear.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearClear.canary--Select-SelectContainer_focused .canary--Select-Control{box-shadow:var(--control-border-width) 0 var(--color-control-bg-border-focus),calc(var(--control-border-width)*-1) 0 var(--color-control-bg-border-focus)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_brickClear.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_defaultClear.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_roundClear.canary--Select-SelectContainer_focused .canary--Select-Control{box-shadow:var(--control-border-width) 0 var(--color-control-bg-border-focus)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearBrick.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearDefault.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearRound.canary--Select-SelectContainer_focused .canary--Select-Control{box-shadow:calc(var(--control-border-width)*-1) 0 var(--color-control-bg-border-focus)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_disabled .canary--Select-Control{background:var(--color-control-bg-disable);border-color:var(--color-control-bg-border-disable);color:var(--color-control-typo-disable);pointer-events:none}.canary--Select-SelectContainer_view_clear .canary--Select-Control,.canary--Select-SelectContainer_view_clear .canary--Select-Control:focus,.canary--Select-SelectContainer_view_clear .canary--Select-Control:hover{color:var(--color-control-typo-default);padding:0}.canary--Select-SelectContainer_view_clear .canary--Select-Control.canary--Select-SelectContainer_disabled,.canary--Select-SelectContainer_view_clear .canary--Select-Control:focus.canary--Select-SelectContainer_disabled,.canary--Select-SelectContainer_view_clear .canary--Select-Control:hover.canary--Select-SelectContainer_disabled{pointer-events:none}.canary--Select-SelectContainer_view_clear .canary--Select-Control.canary--Select-SelectContainer_disabled .canary--Select-Control,.canary--Select-SelectContainer_view_clear .canary--Select-Control:focus.canary--Select-SelectContainer_disabled .canary--Select-Control,.canary--Select-SelectContainer_view_clear .canary--Select-Control:hover.canary--Select-SelectContainer_disabled .canary--Select-Control{color:var(--color-control-typo-disable)}.canary--Select-SelectContainer_view_clear.canary--Select-SelectContainer_disabled .canary--Select-Control{pointer-events:none}.canary--Select-SelectContainer_view_default .canary--Select-ControlValueContainer{padding:0 0 0 var(--input-space)}.canary--Select-SelectContainer_form_round .canary--Select-SelectContainer-IndicatorsDropdown{border-radius:0 calc(var(--input-height)/2) calc(var(--input-height)/2) 0}.canary--Select-SelectContainer_multiple .canary--Select-ControlValueContainer{box-sizing:border-box;display:flex;line-height:1;padding-bottom:0;padding-top:0;position:relative}.canary--Select-SelectContainer_multiple .canary--Select-ControlValue{-ms-overflow-style:none;max-height:calc(var(--tag-space)*4 + var(--select-element-height)*4.5);overflow-x:visible;overflow-y:auto;padding-top:calc(var(--tag-space) - var(--control-border-width));scrollbar-width:none;white-space:normal}.canary--Select-SelectContainer_multiple .canary--Select-ControlValue::-webkit-scrollbar{display:none}.canary--Select-SelectContainer_multiple .canary--Select-ControlValue_isUserSelect{display:flex;flex-wrap:wrap;padding-top:calc(var(--space-s)/4)}.canary--Select_view_clear{--caption-margin-left:0}.canary--Select-Delimiter{background-color:var(--color-control-bg-border-default);width:1px}.canary--Select-Control{background:transparent;border:none;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-flex;font-family:var(--font-primary);font-weight:var(--font-weight-text-regular);height:var(--input-height);line-height:calc(var(--input-height) - var(--control-border-width));outline:none;padding:0;transition:border-color .15s,box-shadow .15s,background-color .15s;width:100%}.canary--Select-Control:focus{outline:none}.canary--Select-Indicators{display:flex;height:100%}.canary--Select-IndicatorsDropdown{background-color:transparent;border:none;color:var(--color-control-typo-placeholder);cursor:pointer;display:block;margin:0;padding:0;text-align:center;width:var(--input-height)}.canary--Select-IndicatorsDropdown:focus{outline:none}.canary--Select-ControlInner{position:relative;width:100%}.canary--Select-ControlValueContainer{background-color:transparent;border:none;bottom:0;color:inherit;font-size:var(--input-font-size);left:0;line-height:calc(var(--input-height) - 2px);margin:0;min-height:calc(var(--input-height) - 2px);padding:0;position:absolute;right:0;text-align:left;top:0}.canary--Select-ControlValueContainer:focus{outline:none}.canary--Select-Control[aria-expanded=true] .canary--Select-IndicatorsDropdown{transform:rotate(180deg)}.canary--Select-ControlValue,.canary--Select-Placeholder{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canary--Select-Placeholder{color:var(--color-control-typo-placeholder);font-size:var(--input-font-size);padding-right:var(--input-space);pointer-events:none;text-align:left}.canary--Select-Placeholder_isHidden{opacity:0;visibility:hidden}.canary--Select-Control_hasInput .canary--Select-Placeholder{background-color:transparent;line-height:calc(var(--input-height) - 2px);position:absolute;top:0;width:calc(100% - var(--input-space))}.canary--Select-DropdownIndicatorIcon{position:relative;top:1px}.canary--Select-ClearIndicator{background-color:transparent;border:none;color:var(--color-control-typo-clear);cursor:pointer;margin:0;padding:0 var(--space-xs)}.canary--Select-ClearIndicatorIcon{position:relative;top:1px}.canary--Select-Input{background-color:transparent;border:none;color:inherit;font-family:inherit;font-size:inherit;line-height:calc(var(--input-height) - 2px);margin:0;outline:none;padding:0;position:relative;width:100%}.canary--Select-Input_hide{bottom:0;left:0;opacity:0;position:absolute;top:0;width:100%}.canary--Select-Input_multiple{display:inline-flex;height:calc(var(--input-height) - var(--control-border-width)*2);line-height:1;line-height:calc(var(--input-height) - var(--control-border-width)*2);margin-top:calc(var(--tag-space)*-1);min-width:10px}.canary--Select-Input_multiple.canary--Select-Input_isUserSelect{margin-top:calc(var(--space-s)/4*-1)}.canary--Select-FakeField{bottom:0;left:0;opacity:0;position:absolute;top:0;width:100%}.canary--Select-HelperInputFakeElement{display:inline-block;font-size:var(--input-font-size);height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap}
1
+ .canary--Select{--caption-margin-left:calc(var(--input-space) + var(--control-border-width));align-items:flex-start;display:flex;justify-content:flex-start;position:relative;width:100%}.canary--Select_type_userselect.canary--Select_size_s{--select-element-height:var(--space-xl)}.canary--Select_type_userselect.canary--Select_size_m{--select-element-height:calc(var(--space-2xl) - var(--space-3xs))}.canary--Select_type_userselect.canary--Select_size_l{--select-element-height:calc(var(--space-3xl) - var(--space-2xs))}.canary--Select_type_combobox.canary--Select_size_xs{--select-element-height:calc(var(--space-m) + var(--space-3xs))}.canary--Select_type_combobox.canary--Select_size_s{--select-element-height:var(--space-xl)}.canary--Select_type_combobox.canary--Select_size_m{--select-element-height:calc(var(--space-2xl) - var(--space-2xs))}.canary--Select_type_combobox.canary--Select_size_l{--select-element-height:var(--space-2xl)}.canary--Select_type_select.canary--Select_size_xs{--select-element-height:calc(var(--space-m) + var(--space-3xs))}.canary--Select_type_select.canary--Select_size_s{--select-element-height:var(--space-xl)}.canary--Select_type_select.canary--Select_size_m{--select-element-height:calc(var(--space-2xl) - var(--space-2xs))}.canary--Select_type_select.canary--Select_size_l{--select-element-height:var(--space-2xl)}.canary--Select_size_xs{--label-offset:var(--space-2xs);--caption-offset:var(--space-2xs);--round-offset:calc(var(--space-3xs) + var(--space-2xs));--input-height:var(--control-height-xs);--input-space:calc(var(--control-space-xs)*0.5);--input-font-size:var(--control-text-size-xs);--tag-space:calc((var(--space-xs) - 1px)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--select-element-height)*4.5)}.canary--Select_size_s{--label-offset:var(--space-2xs);--caption-offset:var(--space-2xs);--round-offset:calc(var(--space-2xs));--input-height:var(--control-height-s);--input-space:calc(var(--control-space-s)*0.5);--input-font-size:var(--control-text-size-s);--tag-space:calc(var(--space-xs)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--select-element-height)*4.5)}.canary--Select_size_m{--label-offset:var(--space-xs);--caption-offset:var(--space-xs);--round-offset:calc(var(--space-3xs) + var(--space-2xs));--input-height:var(--control-height-m);--input-space:calc(var(--control-space-m)*0.5);--input-font-size:var(--control-text-size-m);--tag-space:calc(var(--space-s)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--space-2xl)*4.5 - var(--space-2xs)*4.5)}.canary--Select_size_l{--label-offset:var(--space-xs);--caption-offset:var(--space-xs);--round-offset:calc(var(--space-xs));--input-height:var(--control-height-l);--input-space:calc(var(--control-space-l)*0.5);--input-font-size:var(--control-text-size-l);--tag-space:calc(var(--space-m)/2 - var(--control-border-width));--input-max-height:calc(var(--tag-space)*4 + var(--space-2xl)*4.5)}.canary--Select_labelPosition_top{flex-direction:column}.canary--Select_labelPosition_top>:not(:last-child){margin-bottom:var(--label-offset)}.canary--Select_labelPosition_left{flex-direction:row}.canary--Select_labelPosition_left .canary--Select-Label{align-items:center;display:inline-flex;height:var(--input-height)}.canary--Select_labelPosition_left>:not(:last-child){margin-right:var(--space-s)}.canary--Select-Body{display:inline-flex;flex-direction:column;width:100%}.canary--Select-Body .canary--Select-Caption{margin-left:var(--caption-margin-left);margin-top:var(--caption-offset)}.canary--Select-SelectContainer{--container-border-color:var(--color-control-bg-border-default);display:flex;position:relative;width:100%}.canary--Select-SelectContainer_status_alert{--container-border-color:var(--color-bg-alert)}.canary--Select-SelectContainer_status_success{--container-border-color:var(--color-bg-success)}.canary--Select-SelectContainer_status_warning{--container-border-color:var(--color-bg-warning)}.canary--Select-SelectContainer_view_default .canary--Select-Control{background:var(--color-control-bg-default);border:var(--control-border-width) solid var(--container-border-color);border-radius:var(--control-radius);color:var(--color-control-typo-default);padding:0}.canary--Select-SelectContainer_view_default .canary--Select-Control:hover{border-color:var(--color-control-bg-border-default-hover)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_focused .canary--Select-Control{border-color:var(--color-control-bg-border-focus);outline:none}.canary--Select-SelectContainer_multiple .canary--Select-Control{height:auto;min-height:var(--input-height)}.canary--Select-SelectContainer_form_round .canary--Select-Control{border-radius:calc(var(--input-height)/2);padding-left:var(--round-offset)}.canary--Select-SelectContainer_form_brick .canary--Select-Control{border-radius:0}.canary--Select-SelectContainer_form_clear .canary--Select-Control{border-width:0;border-bottom-width:var(--control-border-width);border-radius:0}.canary--Select-SelectContainer_form_defaultClear .canary--Select-Control{border-radius:var(--control-radius) 0 0 var(--control-radius);border-right-width:0}.canary--Select-SelectContainer_form_clearDefault .canary--Select-Control{border-left-width:0;border-radius:0 var(--control-radius) var(--control-radius) 0}.canary--Select-SelectContainer_form_defaultBrick .canary--Select-Control{border-radius:var(--control-radius) 0 0 var(--control-radius)}.canary--Select-SelectContainer_form_brickDefault .canary--Select-Control{border-radius:0 var(--control-radius) var(--control-radius) 0}.canary--Select-SelectContainer_form_roundBrick .canary--Select-Control{border-radius:calc(var(--input-height)/2) 0 0 calc(var(--input-height)/2);padding-left:var(--round-offset)}.canary--Select-SelectContainer_form_brickRound .canary--Select-Control{border-radius:0 calc(var(--input-height)/2) calc(var(--input-height)/2) 0}.canary--Select-SelectContainer_form_brickClear .canary--Select-Control{border-radius:0;border-right-width:0}.canary--Select-SelectContainer_form_clearBrick .canary--Select-Control{border-left-width:0;border-radius:0}.canary--Select-SelectContainer_form_clearRound .canary--Select-Control{border-left-width:0;border-radius:0 calc(var(--input-height)/2) calc(var(--input-height)/2) 0}.canary--Select-SelectContainer_form_roundClear .canary--Select-Control{border-radius:calc(var(--input-height)/2) 0 0 calc(var(--input-height)/2);border-right-width:0;padding-left:var(--round-offset)}.canary--Select-SelectContainer_form_clearClear .canary--Select-Control{border-width:0;border-bottom-width:var(--control-border-width);border-radius:0;border-top-width:var(--control-border-width)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clear.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearClear.canary--Select-SelectContainer_focused .canary--Select-Control{box-shadow:var(--control-border-width) 0 var(--color-control-bg-border-focus),calc(var(--control-border-width)*-1) 0 var(--color-control-bg-border-focus)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_brickClear.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_defaultClear.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_roundClear.canary--Select-SelectContainer_focused .canary--Select-Control{box-shadow:var(--control-border-width) 0 var(--color-control-bg-border-focus)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearBrick.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearDefault.canary--Select-SelectContainer_focused .canary--Select-Control,.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_form_clearRound.canary--Select-SelectContainer_focused .canary--Select-Control{box-shadow:calc(var(--control-border-width)*-1) 0 var(--color-control-bg-border-focus)}.canary--Select-SelectContainer_view_default.canary--Select-SelectContainer_disabled .canary--Select-Control{background:var(--color-control-bg-disable);border-color:var(--color-control-bg-border-disable);color:var(--color-control-typo-disable);pointer-events:none}.canary--Select-SelectContainer_view_clear .canary--Select-Control,.canary--Select-SelectContainer_view_clear .canary--Select-Control:focus,.canary--Select-SelectContainer_view_clear .canary--Select-Control:hover{color:var(--color-control-typo-default);padding:0}.canary--Select-SelectContainer_view_clear .canary--Select-Control.canary--Select-SelectContainer_disabled,.canary--Select-SelectContainer_view_clear .canary--Select-Control:focus.canary--Select-SelectContainer_disabled,.canary--Select-SelectContainer_view_clear .canary--Select-Control:hover.canary--Select-SelectContainer_disabled{pointer-events:none}.canary--Select-SelectContainer_view_clear .canary--Select-Control.canary--Select-SelectContainer_disabled .canary--Select-Control,.canary--Select-SelectContainer_view_clear .canary--Select-Control:focus.canary--Select-SelectContainer_disabled .canary--Select-Control,.canary--Select-SelectContainer_view_clear .canary--Select-Control:hover.canary--Select-SelectContainer_disabled .canary--Select-Control{color:var(--color-control-typo-disable)}.canary--Select-SelectContainer_view_clear.canary--Select-SelectContainer_disabled .canary--Select-Control{pointer-events:none}.canary--Select-SelectContainer_view_default .canary--Select-ControlValueContainer{padding:0 0 0 var(--input-space)}.canary--Select-SelectContainer_form_round .canary--Select-SelectContainer-IndicatorsDropdown{border-radius:0 calc(var(--input-height)/2) calc(var(--input-height)/2) 0}.canary--Select-SelectContainer_multiple .canary--Select-ControlValueContainer{box-sizing:border-box;display:flex;line-height:1;padding-bottom:0;padding-top:0;position:relative}.canary--Select-SelectContainer_multiple .canary--Select-ControlValue{-ms-overflow-style:none;max-height:calc(var(--tag-space)*4 + var(--select-element-height)*4.5);overflow-x:visible;overflow-y:auto;padding-top:calc(var(--tag-space) - var(--control-border-width));scrollbar-width:none;white-space:normal}.canary--Select-SelectContainer_multiple .canary--Select-ControlValue::-webkit-scrollbar{display:none}.canary--Select-SelectContainer_multiple .canary--Select-ControlValue_isUserSelect{display:flex;flex-wrap:wrap;padding-top:calc(var(--space-s)/4)}.canary--Select_view_clear{--caption-margin-left:0}.canary--Select-Delimiter{background-color:var(--color-control-bg-border-default);width:1px}.canary--Select-Control{background:transparent;border:none;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-flex;font-family:var(--font-primary);font-weight:var(--font-weight-text-regular);height:var(--input-height);line-height:calc(var(--input-height) - var(--control-border-width));outline:none;padding:0;transition:border-color .15s,box-shadow .15s,background-color .15s;width:100%}.canary--Select-Control:focus{outline:none}.canary--Select-SelectAll.Text{line-height:calc(var(--input-height) - var(--space-3xs))}.canary--Select-Indicators{display:flex;height:100%}.canary--Select-IndicatorsDropdown{background-color:transparent;border:none;color:var(--color-control-typo-placeholder);cursor:pointer;display:block;margin:0;padding:0;text-align:center;width:var(--input-height)}.canary--Select-IndicatorsDropdown:focus{outline:none}.canary--Select-ControlInner{position:relative;width:100%}.canary--Select-ControlValueContainer{background-color:transparent;border:none;bottom:0;color:inherit;font-size:var(--input-font-size);left:0;line-height:calc(var(--input-height) - 2px);margin:0;min-height:calc(var(--input-height) - 2px);padding:0;position:absolute;right:0;text-align:left;top:0}.canary--Select-ControlValueContainer:focus{outline:none}.canary--Select-Control[aria-expanded=true] .canary--Select-IndicatorsDropdown{transform:rotate(180deg)}.canary--Select-ControlValue,.canary--Select-Placeholder{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canary--Select-Placeholder{color:var(--color-control-typo-placeholder);font-size:var(--input-font-size);padding-right:var(--input-space);pointer-events:none;text-align:left}.canary--Select-Placeholder_isHidden{opacity:0;visibility:hidden}.canary--Select-Control_hasInput .canary--Select-Placeholder{background-color:transparent;line-height:calc(var(--input-height) - 2px);position:absolute;top:0;width:calc(100% - var(--input-space))}.canary--Select-DropdownIndicatorIcon{position:relative;top:1px}.canary--Select-ClearIndicator{background-color:transparent;border:none;color:var(--color-control-typo-clear);cursor:pointer;margin:0;padding:0 var(--space-xs)}.canary--Select-ClearIndicatorIcon{position:relative;top:1px}.canary--Select-Input{background-color:transparent;border:none;color:inherit;font-family:inherit;font-size:inherit;line-height:calc(var(--input-height) - 2px);margin:0;outline:none;padding:0;position:relative;width:100%}.canary--Select-Input_hide{bottom:0;left:0;opacity:0;position:absolute;top:0;width:100%}.canary--Select-Input_multiple{display:inline-flex;height:calc(var(--input-height) - var(--control-border-width)*2);line-height:1;line-height:calc(var(--input-height) - var(--control-border-width)*2);margin-top:calc(var(--tag-space)*-1);min-width:10px}.canary--Select-Input_multiple.canary--Select-Input_isUserSelect{margin-top:calc(var(--space-s)/4*-1)}.canary--Select-FakeField{bottom:0;left:0;opacity:0;position:absolute;top:0;width:100%}.canary--Select-HelperInputFakeElement{display:inline-block;font-size:var(--input-font-size);height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap}
@@ -79,6 +79,7 @@ export declare function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(params:
79
79
  getHandleRemoveValue: (item: ITEM) => (e: React.SyntheticEvent) => void;
80
80
  notFound: boolean;
81
81
  hasItems: boolean;
82
+ allItemsSelected: boolean;
82
83
  optionsRefs: React.RefObject<HTMLDivElement>[];
83
84
  };
84
85
  export {};
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useDebounce}from"../../../hooks/useDebounce";import{useKeys}from"../../../hooks/useKeys";import{useMutableRef}from"../../../hooks/useMutableRef";import{usePrevious}from"../../../hooks/usePrevious";import{useRefs}from"../../../hooks/useRefs";import{getCountedGroups,getGroups}from"../../../utils/getGroups";import{scrollToIndex,useHoistedState}from"./helpers";var isMultipleParams=function(a){return a.multiple},isNotMultipleParams=function(a){return!a.multiple},actions={setOpen:"setOpen",setSearch:"setSearch",highlightIndex:"highlightIndex"},initialState={searchValue:"",resolvedSearchValue:"",isOpen:!1,highlightedIndex:0,scrollToHighlighted:!1};export var isOptionForCreate=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionForCreate")};export var isNotOptionForCreate=function(a){return a&&!Object.prototype.hasOwnProperty.call(a,"__optionForCreate")};export var isOptionForSelectAll=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionSelctAll")};export function useSelect(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.multiple,h=void 0!==g&&g,i=a.getItemLabel,j=a.getItemKey,k=a.searchFunction,l=a.getItemGroupKey,m=a.groups,n=a.selectAll,o=void 0!==n&&n,p=a.getGroupKey,q=a.sortGroups,r=a.getItemDisabled,s=a.onFocus,t=a.onBlur,u=a.searchValue,v=a.onDropdownOpen,w=a.onSearchValueChange,x=a.dropdownOpen,y=a.ignoreOutsideClicksRefs,z=useRef(null),A=useState(!1),B=_slicedToArray(A,2),C=B[0],D=B[1],E=useMemo(function(){return a.value&&(Array.isArray(a.value)?a.value:[a.value])||[]},[a.value]),F=useHoistedState(initialState),G=_slicedToArray(F,2),H=G[0],I=H.searchValue,J=H.isOpen,K=H.highlightedIndex,L=H.resolvedSearchValue,M=H.scrollToHighlighted,N=G[1],O=useMutableRef(w),P=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},Q=useMemo(function(){if(L&&""!==L){var c=b.filter(function(a){return k?k(a,L):P(a,L)});return[c,a.onCreate&&!c.length?{label:I,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,L]),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useMemo(function(){var b=getCountedGroups(getGroups(S,null!==m&&void 0!==m&&m.length?l:void 0,m,p,q),isMultipleParams(a)?a.value:[],o,j,r);return T?[T].concat(_toConsumableArray(b)):b},[E,o,S,m,l,r,p,q,T]),V=S.length+(T?1:0)+(o?U.length:0),W=useRefs(V,[J]),X=useMemo(function(){var b=!1;return 0<I.length&&(b=0===U.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[U]),Y=0!==b.length,Z=function(){var a=0;if(0<E.length){var b,c=_createForOfIteratorHelper(U);try{for(c.s();!(b=c.n()).done;){var f=b.value;if(isOptionForCreate(f)){a++;continue}var d,e=_createForOfIteratorHelper(f.items);try{for(e.s();!(d=e.n()).done;){var g=d.value;if(isOptionForSelectAll(g))return a;if(j(g)===j(E[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},$=useCallback(function(a){N(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[N]),_=useDebounce(function(a){N(function(b){return b.resolvedSearchValue===a?b:_objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),aa=useCallback(function(a){N(function(b){return b.searchValue===a?b:_objectSpread(_objectSpread({},b),{},{searchValue:a||""})},actions.setSearch),_(a||"")},[N,_]),ba=usePrevious(J),ca=useCallback(function(a,b){N(function(c){var d=Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),V-1);return c.highlightedIndex===d?c:_objectSpread(_objectSpread({},c),{},{highlightedIndex:d,scrollToHighlighted:b})},actions.highlightIndex)},[S,N,T]);useLayoutEffect(function(){if(null!==E&&!ba&&J){var a=Z();0<S.length&&scrollToIndex(a,c,W,function(){return ca(0,!1)})}});var da=function(b,c){if(b.stopPropagation(),isMultipleParams(a)){var d,e=null===(d=a.value)||void 0===d?void 0:d.filter(function(a){return j(a)!==j(c)});a.onChange(null!==e&&void 0!==e&&e.length?e:null,{e:b})}},ea=function(b,c){if(!(r&&r(c))){if(isMultipleParams(a)){var d=E.some(function(a){return j(a)===j(c)})?E.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(E),[c]);a.onChange(d.length?d:null,{e:b})}isNotMultipleParams(a)&&(a.onChange(c,{e:b}),$(!1),aa(""))}},fa=function(b){var c=b.e,d=b.items;if(isMultipleParams(a)){var e=r?d.filter(function(a){return!r(a)}):d,f=[],g=[];E.forEach(function(a){e.find(function(b){return j(a)===j(b)})?f.push(a):g.push(a)}),f.length===e.length?a.onChange(g,{e:c}):a.onChange([].concat(g,_toConsumableArray(e)),{e:c})}},ga=function(b,c){a.onCreate&&a.onCreate(c,{e:b}),$(!1),aa("")},ha=function(b){if(isMultipleParams(a)){var c=null===E||void 0===E?void 0:E.filter(function(a){return null===r||void 0===r?void 0:r(a)});a.onChange(c&&0<c.length?c:null,{e:b})}isNotMultipleParams(a)&&a.onChange(null,{e:b}),aa("")},ia=function(a,b){b.preventDefault(),f||$(!0),ca(function(a){return a-1},!0)},ja=function(a,b){b.preventDefault(),f||$(!0),ca(function(a){return a+1},!0)},ka=useKeys({ArrowUp:ia,ArrowDown:ja,PageUp:ia,PageDown:ja,Home:ia,End:ja,Enter:function Enter(a,b){if(J){(I||S[K])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(U);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(isOptionForCreate(e))return c++,[void 0,e];if(e.items.length+c>a)return[e,e.items[a-c]];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}return[void 0,void 0]},d=c(K),e=_slicedToArray(d,2),f=e[0],g=e[1];if(isOptionForCreate(g))return void ga(b,g.label);if(isOptionForSelectAll(g)){var h;return void fa({e:b,items:null!==(h=null===f||void 0===f?void 0:f.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==h?h:[]})}g&&ea(b,g)}else $(!0)},Escape:function Escape(){$(!1)},Tab:function Tab(a,b){J&&(b.preventDefault(),$(!1))},Backspace:function Backspace(a,b){I||(h?da(b,E[E.length-1]):ha(b))}});useClickOutside({isActive:J,ignoreClicksInsideRefs:[c,d].concat(_toConsumableArray(y||[])),handler:function handler(){$(!1)}}),useEffect(function(){f&&$(!1)},[f]),useEffect(function(){var a=Z();ca(a,!0)},[ca]),useEffect(function(){0<S.length&&M&&scrollToIndex(K,c,W,function(){return ca(0,!1)})},[K]);return useEffect(function(){aa(u)},[u]),useEffect(function(){var a;null===(a=c.current)||void 0===a?void 0:a.scrollTo({top:0})},[L]),useEffect(function(){null===v||void 0===v?void 0:v(J)},[J]),useEffect(function(){var a;null===(a=O.current)||void 0===a?void 0:a.call(O,I)},[I]),useEffect(function(){$(x||!1)},[x]),{isOpen:J,isFocused:C,highlightedIndex:K,visibleItems:U,highlightIndex:ca,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=a.keyPrefix;if(isOptionForCreate(c))return{onClick:function onClick(a){ga(a,c.label)},onMouseEnter:function onMouseEnter(){ca(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForCreate")};if(isOptionForSelectAll(c)){var f=function(){var a,b=_createForOfIteratorHelper(U);try{for(b.s();!(a=b.n()).done;){var e=a.value;if(isOptionForCreate(e))break;if(e.key===c.groupKey){var d;return null!==(d=null===e||void 0===e?void 0:e.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==d?d:[]}}}catch(a){b.e(a)}finally{b.f()}return[]};return{onClick:function onClick(a){fa({e:a,items:f()})},onMouseEnter:function onMouseEnter(){ca(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForSelectAll")}}var e=j(c);return{onClick:function onClick(a){ea(a,c)},onMouseEnter:function onMouseEnter(){ca(b,!1)},active:!!E.find(function(a){return j(a)===e}),hovered:b===K,key:"".concat(d).concat(e)}},handleInputFocus:function handleInputFocus(a){f||(!C&&D(!0),"function"==typeof s&&s(a))},handleInputBlur:function handleInputBlur(a){if(J){var b;return void(null===(b=z.current)||void 0===b?void 0:b.focus())}C&&D(!1),"function"==typeof t&&t(a)},handleToggleDropdown:function handleToggleDropdown(){if(J)$(!1),D(!1);else{var a;$(!0),D(!0),null===(a=z.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||$(!J),h){var a;null===(a=z.current)||void 0===a?void 0:a.focus()}},inputRef:z,getKeyProps:ka,handleInputChange:function handleInputChange(a){f||!h&&0<E.length||(aa(a.target.value),$(!0))},searchValue:I,clearValue:ha,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return da(b,a)}},notFound:X,hasItems:Y,optionsRefs:W}}
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useDebounce}from"../../../hooks/useDebounce";import{useKeys}from"../../../hooks/useKeys";import{useMutableRef}from"../../../hooks/useMutableRef";import{usePrevious}from"../../../hooks/usePrevious";import{useRefs}from"../../../hooks/useRefs";import{getCountedGroups,getGroups}from"../../../utils/getGroups";import{scrollToIndex,useHoistedState}from"./helpers";var isMultipleParams=function(a){return a.multiple},isNotMultipleParams=function(a){return!a.multiple},actions={setOpen:"setOpen",setSearch:"setSearch",highlightIndex:"highlightIndex"},initialState={searchValue:"",resolvedSearchValue:"",isOpen:!1,highlightedIndex:0,scrollToHighlighted:!1};export var isOptionForCreate=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionForCreate")};export var isNotOptionForCreate=function(a){return a&&!Object.prototype.hasOwnProperty.call(a,"__optionForCreate")};export var isOptionForSelectAll=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionSelctAll")};export function useSelect(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.multiple,h=void 0!==g&&g,i=a.getItemLabel,j=a.getItemKey,k=a.searchFunction,l=a.getItemGroupKey,m=a.groups,n=a.selectAll,o=void 0!==n&&n,p=a.getGroupKey,q=a.sortGroups,r=a.getItemDisabled,s=a.onFocus,t=a.onBlur,u=a.searchValue,v=a.onDropdownOpen,w=a.onSearchValueChange,x=a.dropdownOpen,y=a.ignoreOutsideClicksRefs,z=useRef(null),A=useState(!1),B=_slicedToArray(A,2),C=B[0],D=B[1],E=useMemo(function(){return a.value&&(Array.isArray(a.value)?a.value:[a.value])||[]},[a.value]),F=useHoistedState(initialState),G=_slicedToArray(F,2),H=G[0],I=H.searchValue,J=H.isOpen,K=H.highlightedIndex,L=H.resolvedSearchValue,M=H.scrollToHighlighted,N=G[1],O=useMutableRef(w),P=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},Q=useMemo(function(){if(L&&""!==L){var c=b.filter(function(a){return k?k(a,L):P(a,L)});return[c,a.onCreate&&!c.length?{label:I,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,L]),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useMemo(function(){var b=getCountedGroups(getGroups(S,null!==m&&void 0!==m&&m.length?l:void 0,m,p,q),isMultipleParams(a)?a.value:[],o,j,r);return T?[T].concat(_toConsumableArray(b)):b},[E,o,S,m,l,r,p,q,T]),V=S.length+(T?1:0)+(o?U.length:0),W=useRefs(V,[J]),X=useMemo(function(){var b=!1;return 0<I.length&&(b=0===U.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[U]),Y=0!==b.length,Z=useMemo(function(){return!isNotMultipleParams(a)&&!!o&&b.filter(function(a){return E.find(function(b){return j(b)===j(a)})}).length===b.length},[o,h,E,b]),$=function(){var a=0;if(0<E.length){var b,c=_createForOfIteratorHelper(U);try{for(c.s();!(b=c.n()).done;){var f=b.value;if(isOptionForCreate(f)){a++;continue}var d,e=_createForOfIteratorHelper(f.items);try{for(e.s();!(d=e.n()).done;){var g=d.value;if(isOptionForSelectAll(g))return a;if(j(g)===j(E[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},aa=useCallback(function(a){N(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[N]),ba=useDebounce(function(a){N(function(b){return b.resolvedSearchValue===a?b:_objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),ca=useCallback(function(a){N(function(b){return b.searchValue===a?b:_objectSpread(_objectSpread({},b),{},{searchValue:a||""})},actions.setSearch),ba(a||"")},[N,ba]),da=usePrevious(J),ea=useCallback(function(a,b){N(function(c){var d=Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),V-1);return c.highlightedIndex===d?c:_objectSpread(_objectSpread({},c),{},{highlightedIndex:d,scrollToHighlighted:b})},actions.highlightIndex)},[S,N,T]);useLayoutEffect(function(){if(null!==E&&!da&&J){var a=$();0<S.length&&scrollToIndex(a,c,W,function(){return ea(0,!1)})}});var fa=function(b,c){if(b.stopPropagation(),isMultipleParams(a)){var d,e=null===(d=a.value)||void 0===d?void 0:d.filter(function(a){return j(a)!==j(c)});a.onChange(null!==e&&void 0!==e&&e.length?e:null,{e:b})}},ga=function(b,c){if(!(r&&r(c))){if(isMultipleParams(a)){var d=E.some(function(a){return j(a)===j(c)})?E.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(E),[c]);a.onChange(d.length?d:null,{e:b})}isNotMultipleParams(a)&&(a.onChange(c,{e:b}),aa(!1),ca(""))}},ha=function(b){var c=b.e,d=b.items;if(isMultipleParams(a)){var e=r?d.filter(function(a){return!r(a)}):d,f=[],g=[];E.forEach(function(a){e.find(function(b){return j(a)===j(b)})?f.push(a):g.push(a)}),f.length===e.length?a.onChange(g,{e:c}):a.onChange([].concat(g,_toConsumableArray(e)),{e:c})}},ia=function(b,c){a.onCreate&&a.onCreate(c,{e:b}),aa(!1),ca("")},ja=function(b){if(isMultipleParams(a)){var c=null===E||void 0===E?void 0:E.filter(function(a){return null===r||void 0===r?void 0:r(a)});a.onChange(c&&0<c.length?c:null,{e:b})}isNotMultipleParams(a)&&a.onChange(null,{e:b}),ca("")},ka=function(a,b){b.preventDefault(),f||aa(!0),ea(function(a){return a-1},!0)},la=function(a,b){b.preventDefault(),f||aa(!0),ea(function(a){return a+1},!0)},ma=useKeys({ArrowUp:ka,ArrowDown:la,PageUp:ka,PageDown:la,Home:ka,End:la,Enter:function Enter(a,b){if(J){(I||S[K])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(U);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(isOptionForCreate(e))return c++,[void 0,e];if(e.items.length+c>a)return[e,e.items[a-c]];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}return[void 0,void 0]},d=c(K),e=_slicedToArray(d,2),f=e[0],g=e[1];if(isOptionForCreate(g))return void ia(b,g.label);if(isOptionForSelectAll(g)){var h;return void ha({e:b,items:null!==(h=null===f||void 0===f?void 0:f.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==h?h:[]})}g&&ga(b,g)}else aa(!0)},Escape:function Escape(){aa(!1)},Tab:function Tab(a,b){J&&(b.preventDefault(),aa(!1))},Backspace:function Backspace(a,b){I||(h?fa(b,E[E.length-1]):ja(b))}});useClickOutside({isActive:J,ignoreClicksInsideRefs:[c,d].concat(_toConsumableArray(y||[])),handler:function handler(){aa(!1)}}),useEffect(function(){f&&aa(!1)},[f]),useEffect(function(){var a=$();ea(a,!0)},[ea]),useEffect(function(){0<S.length&&M&&scrollToIndex(K,c,W,function(){return ea(0,!1)})},[K]);return useEffect(function(){ca(u)},[u]),useEffect(function(){var a;null===(a=c.current)||void 0===a?void 0:a.scrollTo({top:0})},[L]),useEffect(function(){null===v||void 0===v?void 0:v(J)},[J]),useEffect(function(){var a;null===(a=O.current)||void 0===a?void 0:a.call(O,I)},[I]),useEffect(function(){aa(x||!1)},[x]),{isOpen:J,isFocused:C,highlightedIndex:K,visibleItems:U,highlightIndex:ea,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=a.keyPrefix;if(isOptionForCreate(c))return{onClick:function onClick(a){ia(a,c.label)},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForCreate")};if(isOptionForSelectAll(c)){var f=function(){var a,b=_createForOfIteratorHelper(U);try{for(b.s();!(a=b.n()).done;){var e=a.value;if(isOptionForCreate(e))break;if(e.key===c.groupKey){var d;return null!==(d=null===e||void 0===e?void 0:e.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==d?d:[]}}}catch(a){b.e(a)}finally{b.f()}return[]};return{onClick:function onClick(a){ha({e:a,items:f()})},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForSelectAll")}}var e=j(c);return{onClick:function onClick(a){ga(a,c)},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!!E.find(function(a){return j(a)===e}),hovered:b===K,key:"".concat(d).concat(e)}},handleInputFocus:function handleInputFocus(a){f||(!C&&D(!0),"function"==typeof s&&s(a))},handleInputBlur:function handleInputBlur(a){if(J){var b;return void(null===(b=z.current)||void 0===b?void 0:b.focus())}C&&D(!1),"function"==typeof t&&t(a)},handleToggleDropdown:function handleToggleDropdown(){if(J)aa(!1),D(!1);else{var a;aa(!0),D(!0),null===(a=z.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||aa(!J),h){var a;null===(a=z.current)||void 0===a?void 0:a.focus()}},inputRef:z,getKeyProps:ma,handleInputChange:function handleInputChange(a){f||!h&&0<E.length||(ca(a.target.value),aa(!0))},searchValue:I,clearValue:ja,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return fa(b,a)}},notFound:X,hasItems:Y,allItemsSelected:Z,optionsRefs:W}}
2
2
  //# sourceMappingURL=useSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.js","names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useClickOutside","useDebounce","useKeys","useMutableRef","usePrevious","useRefs","getCountedGroups","getGroups","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","onSearchValueChangeRef","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","onCreate","length","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","maxHighlightIndex","optionsRefs","notFound","flag","group","hasItems","getSelectedOptionIndex","index","newIsOpen","old","setResolvedSearch","prevIsOpen","indexForHighlight","newIndex","Math","min","max","currentHighlightIndex","removeValue","e","valueItem","stopPropagation","newValue","onChange","some","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","el","find","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","current","scrollTo","top","getOptionProps","keyPrefix","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","handleInputFocus","handleInputBlur","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../../src/components/SelectComponentsCanary/useSelect/useSelect.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { KeyHandler, useKeys } from '##/hooks/useKeys';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { usePrevious } from '##/hooks/usePrevious';\nimport { useRefs } from '##/hooks/useRefs';\nimport {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} from '##/utils/getGroups';\n\nimport { scrollToIndex, useHoistedState } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\ntype SortGroups<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\ntype OnChangeProp<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\n\ntype ValueProp<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type SelectProps<ITEM, GROUP, MULTIPLE extends boolean> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n sortGroups?: SortGroups<ITEM, GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n selectAll?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n getItemDisabled?: (item: ITEM) => boolean | undefined;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onCreate?: (label: string, props: { e: React.SyntheticEvent }) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n onSearchValueChange?: (value: string) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | SelectAllItem;\n keyPrefix: number;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nconst isMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, true> => {\n return params.multiple;\n};\n\nconst isNotMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nconst actions = {\n setOpen: 'setOpen',\n setSearch: 'setSearch',\n highlightIndex: 'highlightIndex',\n};\n\nconst initialState = {\n searchValue: '',\n resolvedSearchValue: '',\n isOpen: false,\n highlightedIndex: 0,\n scrollToHighlighted: false,\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM>(\n params: SelectAllItem | ITEM,\n): params is SelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelctAll')\n );\n};\n\nexport function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(\n params: SelectProps<ITEM, GROUP, MULTIPLE>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n multiple = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n selectAll = false,\n getGroupKey,\n sortGroups,\n getItemDisabled,\n onFocus,\n onBlur,\n searchValue: searchValueProp,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [isFocused, setIsFocused] = useState(false);\n\n const value = useMemo(\n () =>\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [],\n [params.value],\n );\n\n const [\n {\n searchValue,\n isOpen,\n highlightedIndex,\n resolvedSearchValue,\n scrollToHighlighted,\n },\n setState,\n ] = useHoistedState(initialState);\n\n const onSearchValueChangeRef = useMutableRef(onSearchValueChange);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = useMemo(() => {\n if (resolvedSearchValue && resolvedSearchValue !== '') {\n const fiteredOptions = items.filter((item) =>\n searchFunction\n ? searchFunction(item, resolvedSearchValue)\n : searchFunctionDefault(item, resolvedSearchValue),\n );\n\n const optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !fiteredOptions.length ? optionForCreate : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue]);\n\n const visibleItems = useMemo(() => {\n const resultGroups = getCountedGroups(\n getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n ),\n isMultipleParams(params) ? params.value : [],\n selectAll,\n getItemKey,\n getItemDisabled,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n value,\n selectAll,\n filteredOptions,\n groups,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n sortGroups,\n optionForCreate,\n ]);\n\n const maxHighlightIndex =\n // колличество опций\n filteredOptions.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0);\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, [isOpen]);\n\n const notFound = useMemo(() => {\n let flag = false;\n if (searchValue.length > 0) {\n flag =\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) || group.items.length > 0 || group.group,\n ).length === 0 && !params.onCreate;\n }\n return flag;\n }, [visibleItems]);\n\n const hasItems = items.length !== 0;\n\n const getSelectedOptionIndex = (): number => {\n let index = 0;\n if (value.length > 0) {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n index++;\n // eslint-disable-next-line no-continue\n continue;\n }\n for (const item of group.items) {\n if (isOptionForSelectAll(item)) {\n return index;\n }\n if (getItemKey(item) === getItemKey(value[0])) {\n return index;\n }\n index++;\n }\n }\n }\n\n return 0;\n };\n\n // Actions\n\n const setOpen = useCallback(\n (newIsOpen: boolean) => {\n setState(\n (old) => ({\n ...old,\n isOpen: newIsOpen,\n }),\n actions.setOpen,\n );\n },\n [setState],\n );\n\n const setResolvedSearch = useDebounce((value: string) => {\n setState((old) => {\n if (old.resolvedSearchValue === value) {\n return old;\n }\n return {\n ...old,\n resolvedSearchValue: value,\n };\n }, actions.setSearch);\n }, 300);\n\n const setSearch = useCallback(\n (value: string | undefined) => {\n setState((old) => {\n if (old.searchValue === value) {\n return old;\n }\n return {\n ...old,\n searchValue: value || '',\n };\n }, actions.setSearch);\n setResolvedSearch(value || '');\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n maxHighlightIndex - 1,\n );\n\n if (old.highlightedIndex === newIndex) {\n return old;\n }\n\n return {\n ...old,\n highlightedIndex: newIndex,\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }\n });\n\n const removeValue = (e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n if (isMultipleParams(params)) {\n const newValue = params.value?.filter(\n (item) => getItemKey(item) !== getItemKey(valueItem),\n );\n params.onChange(newValue?.length ? newValue : null, {\n e,\n });\n }\n };\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (getItemDisabled && getItemDisabled(item)) {\n return;\n }\n if (isMultipleParams(params)) {\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n params.onChange(newValue.length ? newValue : null, { e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(item, { e });\n setOpen(false);\n setSearch('');\n }\n };\n\n const onChangeAll = (parametrs: {\n e: React.SyntheticEvent;\n items: ITEM[];\n }) => {\n const { e, items } = parametrs;\n if (isMultipleParams(params)) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n params.onChange(withoutGroupValues, { e });\n } else {\n params.onChange([...withoutGroupValues, ...nonDisabledItems], {\n e,\n });\n }\n }\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate(label, { e });\n setOpen(false);\n setSearch('');\n };\n\n // Handlers\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled && !(!multiple && value.length > 0)) {\n setSearch(e.target.value);\n setOpen(true);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n };\n\n const clearValue = (e: React.SyntheticEvent) => {\n if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n params.onChange(results && results.length > 0 ? results : null, {\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(null, { e });\n }\n setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n SelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return [undefined, group];\n }\n if (group.items.length + couter > index) {\n return [group, group.items[index - couter]];\n }\n couter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll({\n e,\n items:\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? [],\n });\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n } else {\n setOpen(true);\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setOpen(false);\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setOpen(false);\n }\n };\n\n const Backspace: KeyHandler = (_, e): void => {\n if (searchValue) {\n return;\n }\n if (multiple) {\n removeValue(e, value[value.length - 1]);\n } else {\n clearValue(e);\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n Backspace,\n });\n\n const getOptionProps = ({\n index,\n item,\n keyPrefix,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e: React.SyntheticEvent) => {\n onCreate(e, item.label);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForCreate`,\n };\n }\n if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n break;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll({ e, items: getItems() });\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForSelectAll`,\n };\n }\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: Boolean(value.find((item) => getItemKey(item) === key)),\n hovered: index === highlightedIndex,\n key: `${keyPrefix}${key}`,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: () => {\n setOpen(false);\n },\n });\n\n useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }, [highlightedIndex]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isFocused) {\n setIsFocused(true);\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (isFocused) {\n setIsFocused(false);\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n const handleToggleDropdown = (): void => {\n if (isOpen) {\n setOpen(false);\n setIsFocused(false);\n } else {\n setOpen(true);\n setIsFocused(true);\n inputRef.current?.focus();\n }\n };\n\n useEffect(() => {\n setSearch(searchValueProp);\n }, [searchValueProp]);\n\n useEffect(() => {\n dropdownRef.current?.scrollTo({ top: 0 });\n }, [resolvedSearchValue]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n onSearchValueChangeRef.current?.(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n setOpen(dropdownOpen || false);\n }, [dropdownOpen]);\n\n return {\n isOpen,\n isFocused,\n highlightedIndex,\n visibleItems,\n highlightIndex,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n handleInputClick,\n inputRef,\n getKeyProps,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSelect.js","names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useClickOutside","useDebounce","useKeys","useMutableRef","usePrevious","useRefs","getCountedGroups","getGroups","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","onSearchValueChangeRef","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","onCreate","length","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","maxHighlightIndex","optionsRefs","notFound","flag","group","hasItems","allItemsSelected","el","find","getSelectedOptionIndex","index","newIsOpen","old","setResolvedSearch","prevIsOpen","indexForHighlight","newIndex","Math","min","max","currentHighlightIndex","removeValue","e","valueItem","stopPropagation","newValue","onChange","some","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","current","scrollTo","top","getOptionProps","keyPrefix","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","handleInputFocus","handleInputBlur","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../../src/components/SelectComponentsCanary/useSelect/useSelect.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { KeyHandler, useKeys } from '##/hooks/useKeys';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { usePrevious } from '##/hooks/usePrevious';\nimport { useRefs } from '##/hooks/useRefs';\nimport {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} from '##/utils/getGroups';\n\nimport { scrollToIndex, useHoistedState } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\ntype SortGroups<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\ntype OnChangeProp<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\n\ntype ValueProp<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type SelectProps<ITEM, GROUP, MULTIPLE extends boolean> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n sortGroups?: SortGroups<ITEM, GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n selectAll?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n getItemDisabled?: (item: ITEM) => boolean | undefined;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onCreate?: (label: string, props: { e: React.SyntheticEvent }) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n onSearchValueChange?: (value: string) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | SelectAllItem;\n keyPrefix: number;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nconst isMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, true> => {\n return params.multiple;\n};\n\nconst isNotMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nconst actions = {\n setOpen: 'setOpen',\n setSearch: 'setSearch',\n highlightIndex: 'highlightIndex',\n};\n\nconst initialState = {\n searchValue: '',\n resolvedSearchValue: '',\n isOpen: false,\n highlightedIndex: 0,\n scrollToHighlighted: false,\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM>(\n params: SelectAllItem | ITEM,\n): params is SelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelctAll')\n );\n};\n\nexport function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(\n params: SelectProps<ITEM, GROUP, MULTIPLE>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n multiple = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n selectAll = false,\n getGroupKey,\n sortGroups,\n getItemDisabled,\n onFocus,\n onBlur,\n searchValue: searchValueProp,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [isFocused, setIsFocused] = useState(false);\n\n const value = useMemo(\n () =>\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [],\n [params.value],\n );\n\n const [\n {\n searchValue,\n isOpen,\n highlightedIndex,\n resolvedSearchValue,\n scrollToHighlighted,\n },\n setState,\n ] = useHoistedState(initialState);\n\n const onSearchValueChangeRef = useMutableRef(onSearchValueChange);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = useMemo(() => {\n if (resolvedSearchValue && resolvedSearchValue !== '') {\n const fiteredOptions = items.filter((item) =>\n searchFunction\n ? searchFunction(item, resolvedSearchValue)\n : searchFunctionDefault(item, resolvedSearchValue),\n );\n\n const optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !fiteredOptions.length ? optionForCreate : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue]);\n\n const visibleItems = useMemo(() => {\n const resultGroups = getCountedGroups(\n getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n ),\n isMultipleParams(params) ? params.value : [],\n selectAll,\n getItemKey,\n getItemDisabled,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n value,\n selectAll,\n filteredOptions,\n groups,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n sortGroups,\n optionForCreate,\n ]);\n\n const maxHighlightIndex =\n // колличество опций\n filteredOptions.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0);\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, [isOpen]);\n\n const notFound = useMemo(() => {\n let flag = false;\n if (searchValue.length > 0) {\n flag =\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) || group.items.length > 0 || group.group,\n ).length === 0 && !params.onCreate;\n }\n return flag;\n }, [visibleItems]);\n\n const hasItems = items.length !== 0;\n\n const allItemsSelected = useMemo(() => {\n if (isNotMultipleParams(params)) {\n return false;\n }\n if (selectAll) {\n return (\n items.filter((el) =>\n value.find((item) => getItemKey(item) === getItemKey(el)),\n ).length === items.length\n );\n }\n\n return false;\n }, [selectAll, multiple, value, items]);\n\n const getSelectedOptionIndex = (): number => {\n let index = 0;\n if (value.length > 0) {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n index++;\n // eslint-disable-next-line no-continue\n continue;\n }\n for (const item of group.items) {\n if (isOptionForSelectAll(item)) {\n return index;\n }\n if (getItemKey(item) === getItemKey(value[0])) {\n return index;\n }\n index++;\n }\n }\n }\n\n return 0;\n };\n\n // Actions\n\n const setOpen = useCallback(\n (newIsOpen: boolean) => {\n setState(\n (old) => ({\n ...old,\n isOpen: newIsOpen,\n }),\n actions.setOpen,\n );\n },\n [setState],\n );\n\n const setResolvedSearch = useDebounce((value: string) => {\n setState((old) => {\n if (old.resolvedSearchValue === value) {\n return old;\n }\n return {\n ...old,\n resolvedSearchValue: value,\n };\n }, actions.setSearch);\n }, 300);\n\n const setSearch = useCallback(\n (value: string | undefined) => {\n setState((old) => {\n if (old.searchValue === value) {\n return old;\n }\n return {\n ...old,\n searchValue: value || '',\n };\n }, actions.setSearch);\n setResolvedSearch(value || '');\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n maxHighlightIndex - 1,\n );\n\n if (old.highlightedIndex === newIndex) {\n return old;\n }\n\n return {\n ...old,\n highlightedIndex: newIndex,\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }\n });\n\n const removeValue = (e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n if (isMultipleParams(params)) {\n const newValue = params.value?.filter(\n (item) => getItemKey(item) !== getItemKey(valueItem),\n );\n params.onChange(newValue?.length ? newValue : null, {\n e,\n });\n }\n };\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (getItemDisabled && getItemDisabled(item)) {\n return;\n }\n if (isMultipleParams(params)) {\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n params.onChange(newValue.length ? newValue : null, { e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(item, { e });\n setOpen(false);\n setSearch('');\n }\n };\n\n const onChangeAll = (parametrs: {\n e: React.SyntheticEvent;\n items: ITEM[];\n }) => {\n const { e, items } = parametrs;\n if (isMultipleParams(params)) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n params.onChange(withoutGroupValues, { e });\n } else {\n params.onChange([...withoutGroupValues, ...nonDisabledItems], {\n e,\n });\n }\n }\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate(label, { e });\n setOpen(false);\n setSearch('');\n };\n\n // Handlers\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled && !(!multiple && value.length > 0)) {\n setSearch(e.target.value);\n setOpen(true);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n };\n\n const clearValue = (e: React.SyntheticEvent) => {\n if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n params.onChange(results && results.length > 0 ? results : null, {\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(null, { e });\n }\n setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n SelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return [undefined, group];\n }\n if (group.items.length + couter > index) {\n return [group, group.items[index - couter]];\n }\n couter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll({\n e,\n items:\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? [],\n });\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n } else {\n setOpen(true);\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setOpen(false);\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setOpen(false);\n }\n };\n\n const Backspace: KeyHandler = (_, e): void => {\n if (searchValue) {\n return;\n }\n if (multiple) {\n removeValue(e, value[value.length - 1]);\n } else {\n clearValue(e);\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n Backspace,\n });\n\n const getOptionProps = ({\n index,\n item,\n keyPrefix,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e: React.SyntheticEvent) => {\n onCreate(e, item.label);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForCreate`,\n };\n }\n if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n break;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll({ e, items: getItems() });\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForSelectAll`,\n };\n }\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: Boolean(value.find((item) => getItemKey(item) === key)),\n hovered: index === highlightedIndex,\n key: `${keyPrefix}${key}`,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: () => {\n setOpen(false);\n },\n });\n\n useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }, [highlightedIndex]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isFocused) {\n setIsFocused(true);\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (isFocused) {\n setIsFocused(false);\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n const handleToggleDropdown = (): void => {\n if (isOpen) {\n setOpen(false);\n setIsFocused(false);\n } else {\n setOpen(true);\n setIsFocused(true);\n inputRef.current?.focus();\n }\n };\n\n useEffect(() => {\n setSearch(searchValueProp);\n }, [searchValueProp]);\n\n useEffect(() => {\n dropdownRef.current?.scrollTo({ top: 0 });\n }, [resolvedSearchValue]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n onSearchValueChangeRef.current?.(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n setOpen(dropdownOpen || false);\n }, [dropdownOpen]);\n\n return {\n isOpen,\n isFocused,\n highlightedIndex,\n visibleItems,\n highlightIndex,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n handleInputClick,\n inputRef,\n getKeyProps,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n allItemsSelected,\n optionsRefs,\n };\n}\n"],"mappings":"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"}