@consta/uikit 4.26.1 → 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 (158) hide show
  1. package/ChipsCanary/index.d.ts +1 -0
  2. package/ChipsCanary/index.js +1 -0
  3. package/LoaderCanary/index.d.ts +1 -0
  4. package/LoaderCanary/index.js +1 -0
  5. package/__internal__/src/components/Badge/Badge.css +1 -1
  6. package/__internal__/src/components/Badge/Badge.d.ts +1 -1
  7. package/__internal__/src/components/Badge/Badge.js +1 -1
  8. package/__internal__/src/components/Badge/Badge.js.map +1 -1
  9. package/__internal__/src/components/BadgeGroup/BadgeGroup.js +1 -1
  10. package/__internal__/src/components/BadgeGroup/BadgeGroup.js.map +1 -1
  11. package/__internal__/src/components/BadgeGroup/helper.d.ts +0 -1
  12. package/__internal__/src/components/BadgeGroup/helper.js +1 -1
  13. package/__internal__/src/components/BadgeGroup/helper.js.map +1 -1
  14. package/__internal__/src/components/Button/Button.css +1 -1
  15. package/__internal__/src/components/CheckboxGroup/CheckboxGroup.js +1 -1
  16. package/__internal__/src/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  17. package/__internal__/src/components/CheckboxGroup/helper.d.ts +3 -1
  18. package/__internal__/src/components/CheckboxGroup/helper.js +1 -1
  19. package/__internal__/src/components/CheckboxGroup/helper.js.map +1 -1
  20. package/__internal__/src/components/CheckboxGroup/types.d.ts +9 -1
  21. package/__internal__/src/components/CheckboxGroup/types.js.map +1 -1
  22. package/__internal__/src/components/ChipsCanary/Chips.css +1 -0
  23. package/__internal__/src/components/ChipsCanary/ChipsCanary.d.ts +3 -0
  24. package/__internal__/src/components/ChipsCanary/ChipsCanary.js +2 -0
  25. package/__internal__/src/components/ChipsCanary/ChipsCanary.js.map +1 -0
  26. package/__internal__/src/components/ChipsCanary/ChipsChoice/ChipsChoice.d.ts +4 -0
  27. package/__internal__/src/components/ChipsCanary/ChipsChoice/ChipsChoice.js +2 -0
  28. package/__internal__/src/components/ChipsCanary/ChipsChoice/ChipsChoice.js.map +1 -0
  29. package/__internal__/src/components/ChipsCanary/ChipsChoice/index.d.ts +2 -0
  30. package/__internal__/src/components/ChipsCanary/ChipsChoice/index.js +2 -0
  31. package/__internal__/src/components/ChipsCanary/ChipsChoice/index.js.map +1 -0
  32. package/__internal__/src/components/ChipsCanary/ChipsChoice/types.d.ts +29 -0
  33. package/__internal__/src/components/ChipsCanary/ChipsChoice/types.js +2 -0
  34. package/__internal__/src/components/ChipsCanary/ChipsChoice/types.js.map +1 -0
  35. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.css +3 -0
  36. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.d.ts +3 -0
  37. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.js +2 -0
  38. package/__internal__/src/components/ChipsCanary/ChipsItem/ChipsItem.js.map +1 -0
  39. package/__internal__/src/components/ChipsCanary/ChipsItem/index.d.ts +1 -0
  40. package/__internal__/src/components/ChipsCanary/ChipsItem/index.js +2 -0
  41. package/__internal__/src/components/ChipsCanary/ChipsItem/index.js.map +1 -0
  42. package/__internal__/src/components/ChipsCanary/helpers.d.ts +39 -0
  43. package/__internal__/src/components/ChipsCanary/helpers.js +2 -0
  44. package/__internal__/src/components/ChipsCanary/helpers.js.map +1 -0
  45. package/__internal__/src/components/ChipsCanary/index.d.ts +4 -0
  46. package/__internal__/src/components/ChipsCanary/index.js +2 -0
  47. package/__internal__/src/components/ChipsCanary/index.js.map +1 -0
  48. package/__internal__/src/components/ChipsCanary/types.d.ts +62 -0
  49. package/__internal__/src/components/ChipsCanary/types.js +2 -0
  50. package/__internal__/src/components/ChipsCanary/types.js.map +1 -0
  51. package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js +1 -1
  52. package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js.map +1 -1
  53. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.d.ts +7 -9
  54. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js +1 -1
  55. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js.map +1 -1
  56. package/__internal__/src/components/ChoiceGroup/helper.d.ts +3 -1
  57. package/__internal__/src/components/ChoiceGroup/helper.js +1 -1
  58. package/__internal__/src/components/ChoiceGroup/helper.js.map +1 -1
  59. package/__internal__/src/components/ChoiceGroup/types.d.ts +7 -1
  60. package/__internal__/src/components/ChoiceGroup/types.js.map +1 -1
  61. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +1 -1
  62. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -1
  63. package/__internal__/src/components/ComboboxCanary/helpers.d.ts +4 -0
  64. package/__internal__/src/components/ComboboxCanary/helpers.js.map +1 -1
  65. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +2 -0
  66. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +1 -1
  67. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js.map +1 -1
  68. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/helpers.d.ts +3 -1
  69. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/helpers.js.map +1 -1
  70. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +2 -0
  71. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +1 -1
  72. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js.map +1 -1
  73. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/helpers.d.ts +2 -0
  74. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/helpers.js.map +1 -1
  75. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.d.ts +2 -0
  76. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js +1 -1
  77. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js.map +1 -1
  78. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/helpers.d.ts +2 -0
  79. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/helpers.js.map +1 -1
  80. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.d.ts +2 -0
  81. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js +1 -1
  82. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js.map +1 -1
  83. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/helpers.d.ts +2 -0
  84. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/helpers.js.map +1 -1
  85. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
  86. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
  87. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
  88. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
  89. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
  90. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
  91. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
  92. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
  93. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
  94. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
  95. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
  96. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
  97. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
  98. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
  99. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
  100. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
  101. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
  102. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
  103. package/__internal__/src/components/DatePicker/types.d.ts +3 -0
  104. package/__internal__/src/components/DatePicker/types.js.map +1 -1
  105. package/__internal__/src/components/DatePicker/useCalendarVisible.d.ts +13 -0
  106. package/__internal__/src/components/DatePicker/useCalendarVisible.js +2 -0
  107. package/__internal__/src/components/DatePicker/useCalendarVisible.js.map +1 -0
  108. package/__internal__/src/components/EventInterceptor/propsHandlers/useTextFieldEventsHandler.d.ts +1 -54
  109. package/__internal__/src/components/LoaderCanary/Loader.css +3 -0
  110. package/__internal__/src/components/LoaderCanary/LoaderCanary.d.ts +10 -0
  111. package/__internal__/src/components/LoaderCanary/LoaderCanary.js +2 -0
  112. package/__internal__/src/components/LoaderCanary/LoaderCanary.js.map +1 -0
  113. package/__internal__/src/components/LoaderCanary/index.d.ts +1 -0
  114. package/__internal__/src/components/LoaderCanary/index.js +2 -0
  115. package/__internal__/src/components/LoaderCanary/index.js.map +1 -0
  116. package/__internal__/src/components/LoaderCanary/types.d.ts +10 -0
  117. package/__internal__/src/components/LoaderCanary/types.js +2 -0
  118. package/__internal__/src/components/LoaderCanary/types.js.map +1 -0
  119. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js +1 -1
  120. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js.map +1 -1
  121. package/__internal__/src/components/ProgressStepBar/helpers.js +1 -1
  122. package/__internal__/src/components/ProgressStepBar/helpers.js.map +1 -1
  123. package/__internal__/src/components/SelectComponentsCanary/Select.css +1 -1
  124. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.d.ts +1 -0
  125. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js +1 -1
  126. package/__internal__/src/components/SelectComponentsCanary/useSelect/useSelect.js.map +1 -1
  127. package/__internal__/src/components/Slider/Slider.js +1 -1
  128. package/__internal__/src/components/Slider/Slider.js.map +1 -1
  129. package/__internal__/src/components/Slider/SliderPoint/SliderPoint.js +1 -1
  130. package/__internal__/src/components/Slider/SliderPoint/SliderPoint.js.map +1 -1
  131. package/__internal__/src/components/Slider/helper.d.ts +5 -0
  132. package/__internal__/src/components/Slider/helper.js.map +1 -1
  133. package/__internal__/src/components/TextField/types.d.ts +2 -2
  134. package/__internal__/src/components/TextField/types.js.map +1 -1
  135. package/__internal__/src/hooks/useChoiceGroup/useChoiceGroup.d.ts +2 -2
  136. package/__internal__/src/hooks/useChoiceGroup/useChoiceGroup.js.map +1 -1
  137. package/__internal__/src/hooks/useGlobalKeys/useGlobalKeys.d.ts +1 -1
  138. package/__internal__/src/hooks/useGlobalKeys/useGlobalKeys.js.map +1 -1
  139. package/__internal__/src/hooks/useKeysCanary/index.d.ts +1 -0
  140. package/__internal__/src/hooks/useKeysCanary/index.js +2 -0
  141. package/__internal__/src/hooks/useKeysCanary/index.js.map +1 -0
  142. package/__internal__/src/hooks/useKeysCanary/useKeysCanary.d.ts +12 -0
  143. package/__internal__/src/hooks/useKeysCanary/useKeysCanary.js +2 -0
  144. package/__internal__/src/hooks/useKeysCanary/useKeysCanary.js.map +1 -0
  145. package/__internal__/src/hooks/useKeysRef/index.d.ts +1 -0
  146. package/__internal__/src/hooks/useKeysRef/index.js +2 -0
  147. package/__internal__/src/hooks/useKeysRef/index.js.map +1 -0
  148. package/__internal__/src/hooks/useKeysRef/useKeysRef.d.ts +14 -0
  149. package/__internal__/src/hooks/useKeysRef/useKeysRef.js +2 -0
  150. package/__internal__/src/hooks/useKeysRef/useKeysRef.js.map +1 -0
  151. package/__internal__/src/utils/stand.d.ts +1 -0
  152. package/__internal__/src/utils/stand.js +2 -0
  153. package/__internal__/src/utils/stand.js.map +1 -0
  154. package/package.json +1 -1
  155. package/useKeysCanary/index.d.ts +1 -0
  156. package/useKeysCanary/index.js +1 -0
  157. package/useKeysRef/index.d.ts +1 -0
  158. package/useKeysRef/index.js +1 -0
@@ -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":"4pEAAA,OACEA,WADF,CAEEC,SAFF,CAGEC,eAHF,CAIEC,OAJF,CAKEC,MALF,CAMEC,QANF,KAOO,OAPP,CASA,OAASC,eAAT,sCACA,OAASC,WAAT,kCACA,OAAqBC,OAArB,8BACA,OAASC,aAAT,oCACA,OAASC,WAAT,kCACA,OAASC,OAAT,8BACA,OAEEC,gBAFF,CAGEC,SAHF,gCAOA,OAASC,aAAT,CAAwBC,eAAxB,iB,GA0EMC,iBAAgB,CAAG,SACvBC,CADuB,CAEsB,CAC7C,MAAOA,EAAM,CAACC,QACf,C,CAEKC,mBAAmB,CAAG,SAC1BF,CAD0B,CAEoB,CAC9C,MAAO,CAACA,CAAM,CAACC,QAChB,C,CAEKE,OAAO,CAAG,CACdC,OAAO,CAAE,SADK,CAEdC,SAAS,CAAE,WAFG,CAGdC,cAAc,CAAE,gBAHF,C,CAMVC,YAAY,CAAG,CACnBC,WAAW,CAAE,EADM,CAEnBC,mBAAmB,CAAE,EAFF,CAGnBC,MAAM,GAHa,CAInBC,gBAAgB,CAAE,CAJC,CAKnBC,mBAAmB,GALA,C,CAQrB,MAAO,IAAMC,kBAAiB,CAAG,SAC/Bb,CAD+B,CAED,CAC9B,MACEA,EAAM,EAAIc,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCjB,CAArC,CAA6C,mBAA7C,CAEb,CANM,CAQP,MAAO,IAAMkB,qBAAoB,CAAG,SAClClB,CADkC,CAED,CACjC,MACEA,EAAM,EAAI,CAACc,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCjB,CAArC,CAA6C,mBAA7C,CAEd,CANM,CAQP,MAAO,IAAMmB,qBAAoB,CAAG,SAClCnB,CADkC,CAEN,CAC5B,MACEA,EAAM,EAAIc,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCjB,CAArC,CAA6C,kBAA7C,CAEb,CANM,CAQP,MAAO,SAASoB,UAAT,CACLpB,CADK,CAEL,IAEEqB,EAFF,CAuBIrB,CAvBJ,CAEEqB,KAFF,CAGEC,CAHF,CAuBItB,CAvBJ,CAGEsB,WAHF,CAIEC,CAJF,CAuBIvB,CAvBJ,CAIEuB,UAJF,GAuBIvB,CAvBJ,CAKEwB,QALF,CAKEA,CALF,iBAuBIxB,CAvBJ,CAMEC,QANF,CAMEA,CANF,eAOEwB,CAPF,CAuBIzB,CAvBJ,CAOEyB,YAPF,CAQEC,CARF,CAuBI1B,CAvBJ,CAQE0B,UARF,CASEC,CATF,CAuBI3B,CAvBJ,CASE2B,cATF,CAUEC,CAVF,CAuBI5B,CAvBJ,CAUE4B,eAVF,CAWEC,CAXF,CAuBI7B,CAvBJ,CAWE6B,MAXF,GAuBI7B,CAvBJ,CAYE8B,SAZF,CAYEA,CAZF,eAaEC,CAbF,CAuBI/B,CAvBJ,CAaE+B,WAbF,CAcEC,CAdF,CAuBIhC,CAvBJ,CAcEgC,UAdF,CAeEC,CAfF,CAuBIjC,CAvBJ,CAeEiC,eAfF,CAgBEC,CAhBF,CAuBIlC,CAvBJ,CAgBEkC,OAhBF,CAiBEC,CAjBF,CAuBInC,CAvBJ,CAiBEmC,MAjBF,CAkBeC,CAlBf,CAuBIpC,CAvBJ,CAkBEQ,WAlBF,CAmBE6B,CAnBF,CAuBIrC,CAvBJ,CAmBEqC,cAnBF,CAoBEC,CApBF,CAuBItC,CAvBJ,CAoBEsC,mBApBF,CAqBEC,CArBF,CAuBIvC,CAvBJ,CAqBEuC,YArBF,CAsBEC,CAtBF,CAuBIxC,CAvBJ,CAsBEwC,uBAtBF,CAyBMC,CAAQ,CAAGtD,MAAM,CAAmB,IAAnB,CAzBvB,GA2BkCC,QAAQ,IA3B1C,uBA2BOsD,CA3BP,MA2BkBC,CA3BlB,MA6BMC,CAAK,CAAG1D,OAAO,CACnB,iBACGc,EAAM,CAAC4C,KAAP,GACEC,KAAK,CAACC,OAAN,CAAc9C,CAAM,CAAC4C,KAArB,EAA8B5C,CAAM,CAAC4C,KAArC,CAA6C,CAAC5C,CAAM,CAAC4C,KAAR,CAD/C,CAAD,EAEA,EAHF,CADmB,CAKnB,CAAC5C,CAAM,CAAC4C,KAAR,CALmB,CA7BrB,GA8CI9C,eAAe,CAACS,YAAD,CA9CnB,8BAuCIC,CAvCJ,GAuCIA,WAvCJ,CAwCIE,CAxCJ,GAwCIA,MAxCJ,CAyCIC,CAzCJ,GAyCIA,gBAzCJ,CA0CIF,CA1CJ,GA0CIA,mBA1CJ,CA2CIG,CA3CJ,GA2CIA,mBA3CJ,CA6CEmC,CA7CF,MAgDMC,CAAsB,CAAGxD,aAAa,CAAC8C,CAAD,CAhD5C,CAkDMW,CAAqB,CAAG,SAACC,CAAD,CAAa1C,CAAb,QAGoB,CAAC,CAFjD,GAAAiB,CAAY,CAACyB,CAAD,CAAZ,CACGC,iBADH,GAEGC,OAFH,CAEW5C,CAAW,CAAC2C,iBAAZ,EAFX,CAD4B,CAlD9B,GAuD2CjE,OAAO,CAAC,UAAM,CACvD,GAAIuB,CAAmB,EAA4B,EAAxB,GAAAA,CAA3B,CAAuD,IAC/C4C,EAAc,CAAGhC,CAAK,CAACiC,MAAN,CAAa,SAACJ,CAAD,QAClCvB,EAAc,CACVA,CAAc,CAACuB,CAAD,CAAOzC,CAAP,CADJ,CAEVwC,CAAqB,CAACC,CAAD,CAAOzC,CAAP,CAHS,CAAb,CAD8B,CAYrD,MAAO,CACL4C,CADK,CAELrD,CAAM,CAACuD,QAAP,EAAmB,CAACF,CAAc,CAACG,MAAnC,CAPuC,CACvCC,KAAK,CAAEjD,CADgC,CAEvCkD,iBAAiB,GAFsB,CAOvC,OAFK,CAIR,CACD,MAAO,CAACrC,CAAD,QACR,CAnBiD,CAmB/C,CAACA,CAAD,CAAQZ,CAAR,CAnB+C,CAvDlD,uBAuDOkD,CAvDP,MAuDwBC,CAvDxB,MA4EMC,CAAY,CAAG3E,OAAO,CAAC,UAAM,CACjC,GAAM4E,EAAY,CAAGnE,gBAAgB,CACnCC,SAAS,CACP+D,CADO,CAEP,OAAA9B,CAAM,WAANA,CAAA,EAAAA,CAAM,CAAE2B,MAAR,CAAiB5B,CAAjB,OAFO,CAGPC,CAHO,CAIPE,CAJO,CAKPC,CALO,CAD0B,CAQnCjC,gBAAgB,CAACC,CAAD,CAAhB,CAA2BA,CAAM,CAAC4C,KAAlC,CAA0C,EARP,CASnCd,CATmC,CAUnCJ,CAVmC,CAWnCO,CAXmC,CAArC,CAcA,MAAO2B,EAAe,EAAIA,CAAJ,4BAAwBE,CAAxB,GAAwCA,CAC/D,CAhB2B,CAgBzB,CACDlB,CADC,CAEDd,CAFC,CAGD6B,CAHC,CAID9B,CAJC,CAKDD,CALC,CAMDK,CANC,CAODF,CAPC,CAQDC,CARC,CASD4B,CATC,CAhByB,CA5E5B,CAwGMG,CAAiB,CAErBJ,CAAe,CAACH,MAAhB,EAECI,CAAe,CAAG,CAAH,CAAO,CAFvB,GAIC9B,CAAS,CAAG+B,CAAY,CAACL,MAAhB,CAAyB,CAJnC,CA1GF,CAgHMQ,CAAW,CAAGtE,OAAO,CAAiBqE,CAAjB,CAAoC,CAACrD,CAAD,CAApC,CAhH3B,CAkHMuD,CAAQ,CAAG/E,OAAO,CAAC,UAAM,CAC7B,GAAIgF,EAAI,GAAR,CAQA,MAPyB,EAArB,CAAA1D,CAAW,CAACgD,MAOhB,GANEU,CAAI,CAIW,CAHb,GAAAL,CAAY,CAACP,MAAb,CACE,SAACa,CAAD,QACEtD,kBAAiB,CAACsD,CAAD,CAAjB,EAAiD,CAArB,CAAAA,CAAK,CAAC9C,KAAN,CAAYmC,MAAxC,EAAsDW,CAAK,CAACA,KAD9D,CADF,EAGEX,MAHF,EAGkB,CAACxD,CAAM,CAACuD,QAE9B,EAAOW,CACR,CAVuB,CAUrB,CAACL,CAAD,CAVqB,CAlHxB,CA8HMO,CAAQ,CAAoB,CAAjB,GAAA/C,CAAK,CAACmC,MA9HvB,CAgIMa,CAAgB,CAAGnF,OAAO,CAAC,UAAM,QACjCgB,mBAAmB,CAACF,CAAD,CADc,IAIjC8B,CAJiC,EAMjCT,CAAK,CAACiC,MAAN,CAAa,SAACgB,CAAD,QACX1B,EAAK,CAAC2B,IAAN,CAAW,SAACrB,CAAD,QAAUxB,EAAU,CAACwB,CAAD,CAAV,GAAqBxB,CAAU,CAAC4C,CAAD,CAAzC,CAAX,CADW,CAAb,EAEEd,MAFF,GAEanC,CAAK,CAACmC,MAKxB,CAb+B,CAa7B,CAAC1B,CAAD,CAAY7B,CAAZ,CAAsB2C,CAAtB,CAA6BvB,CAA7B,CAb6B,CAhIhC,CA+IMmD,CAAsB,CAAG,UAAc,CAC3C,GAAIC,EAAK,CAAG,CAAZ,CACA,GAAmB,CAAf,CAAA7B,CAAK,CAACY,MAAV,CAAsB,oCACAK,CADA,MACpB,2BAAkC,IAAvBM,EAAuB,SAChC,GAAItD,iBAAiB,CAACsD,CAAD,CAArB,CAA8B,CAC5BM,CAAK,EADuB,CAG5B,QACD,CAL+B,mCAMbN,CAAK,CAAC9C,KANO,MAMhC,2BAAgC,IAArB6B,EAAqB,SAC9B,GAAI/B,oBAAoB,CAAC+B,CAAD,CAAxB,CACE,MAAOuB,EAAP,CAEF,GAAI/C,CAAU,CAACwB,CAAD,CAAV,GAAqBxB,CAAU,CAACkB,CAAK,CAAC,CAAD,CAAN,CAAnC,CACE,MAAO6B,EAAP,CAEFA,CAAK,EACN,CAd+B,+BAejC,CAhBmB,+BAiBrB,CAED,MAAO,EACR,CArKD,CAyKMrE,EAAO,CAAGrB,WAAW,CACzB,SAAC2F,CAAD,CAAwB,CACtB3B,CAAQ,CACN,SAAC4B,CAAD,wCACKA,CADL,MAEEjE,MAAM,CAAEgE,CAFV,GADM,CAKNvE,OAAO,CAACC,OALF,CAOT,CATwB,CAUzB,CAAC2C,CAAD,CAVyB,CAzK3B,CAsLM6B,EAAiB,CAAGtF,WAAW,CAAC,SAACsD,CAAD,CAAmB,CACvDG,CAAQ,CAAC,SAAC4B,CAAD,CAAS,OACZA,EAAG,CAAClE,mBAAJ,GAA4BmC,CADhB,CAEP+B,CAFO,gCAKXA,CALW,MAMdlE,mBAAmB,CAAEmC,CANP,EAQjB,CARO,CAQLzC,OAAO,CAACE,SARH,CAST,CAVoC,CAUlC,GAVkC,CAtLrC,CAkMMA,EAAS,CAAGtB,WAAW,CAC3B,SAAC6D,CAAD,CAA+B,CAC7BG,CAAQ,CAAC,SAAC4B,CAAD,CAAS,OACZA,EAAG,CAACnE,WAAJ,GAAoBoC,CADR,CAEP+B,CAFO,gCAKXA,CALW,MAMdnE,WAAW,CAAEoC,CAAK,EAAI,EANR,EAQjB,CARO,CAQLzC,OAAO,CAACE,SARH,CADqB,CAU7BuE,EAAiB,CAAChC,CAAK,EAAI,EAAV,CAClB,CAZ0B,CAa3B,CAACG,CAAD,CAAW6B,EAAX,CAb2B,CAlM7B,CAkNMC,EAAU,CAAGpF,WAAW,CAACiB,CAAD,CAlN9B,CAoNMJ,EAAc,CAAGvB,WAAW,CAChC,SAAC+F,CAAD,CAAuClE,CAAvC,CAAwE,CACtEmC,CAAQ,CAAC,SAAC4B,CAAD,CAAS,CAChB,GAAMI,EAAQ,CAAGC,IAAI,CAACC,GAAL,CACfD,IAAI,CAACE,GAAL,CACE,CADF,CAE+B,UAA7B,QAAOJ,EAAP,CACIA,CAAiB,CAACH,CAAG,CAAChE,gBAAL,CADrB,CAEImE,CAJN,CADe,CAOff,CAAiB,CAAG,CAPL,CAAjB,CADgB,MAWZY,EAAG,CAAChE,gBAAJ,GAAyBoE,CAXb,CAYPJ,CAZO,gCAgBXA,CAhBW,MAiBdhE,gBAAgB,CAAEoE,CAjBJ,CAkBdnE,mBAAmB,CAAnBA,CAlBc,EAoBjB,CApBO,CAoBLT,OAAO,CAACG,cApBH,CAqBT,CAvB+B,CAwBhC,CAACqD,CAAD,CAAkBZ,CAAlB,CAA4Ba,CAA5B,CAxBgC,CApNlC,CA+OA3E,eAAe,CAAC,UAAM,CACpB,GAAc,IAAV,GAAA2D,CAAK,EAAa,CAACiC,EAAnB,EAAiCnE,CAArC,CAA6C,CAC3C,GAAMyE,EAAqB,CAAGX,CAAsB,EAApD,CAC6B,CAAzB,CAAAb,CAAe,CAACH,MAFuB,EAGzC3D,aAAa,CAACsF,CAAD,CAAwB7D,CAAxB,CAAqC0C,CAArC,CAAkD,iBAC7D1D,GAAc,CAAC,CAAD,IAD+C,CAAlD,CAIhB,CACF,CATc,CA/Of,IA0PM8E,GAAW,CAAG,SAACC,CAAD,CAA0BC,CAA1B,CAA8C,CAEhE,GADAD,CAAC,CAACE,eAAF,EACA,CAAIxF,gBAAgB,CAACC,CAAD,CAApB,CAA8B,OACtBwF,CAAQ,WAAGxF,CAAM,CAAC4C,KAAV,qBAAG,EAAcU,MAAd,CACf,SAACJ,CAAD,QAAUxB,EAAU,CAACwB,CAAD,CAAV,GAAqBxB,CAAU,CAAC4D,CAAD,CAAzC,CADe,CADW,CAI5BtF,CAAM,CAACyF,QAAP,CAAgB,OAAAD,CAAQ,WAARA,CAAA,EAAAA,CAAQ,CAAEhC,MAAV,CAAmBgC,CAAnB,CAA8B,IAA9C,CAAoD,CAClDH,CAAC,CAADA,CADkD,CAApD,CAGD,CACF,CApQD,CAsQMI,EAAQ,CAAG,SAACJ,CAAD,CAA0BnC,CAA1B,CAAyC,CACxD,KAAIjB,CAAe,EAAIA,CAAe,CAACiB,CAAD,CAAtC,GAGA,GAAInD,gBAAgB,CAACC,CAAD,CAApB,CAA8B,CAC5B,GAAMwF,EAAQ,CAAG5C,CAAK,CAAC8C,IAAN,CACf,SAAC9C,CAAD,QAAWlB,EAAU,CAACkB,CAAD,CAAV,GAAsBlB,CAAU,CAACwB,CAAD,CAA3C,CADe,EAGbN,CAAK,CAACU,MAAN,CAAa,SAACV,CAAD,QAAWlB,EAAU,CAACkB,CAAD,CAAV,GAAsBlB,CAAU,CAACwB,CAAD,CAA3C,CAAb,CAHa,8BAITN,CAJS,GAIFM,CAJE,EAAjB,CAKAlD,CAAM,CAACyF,QAAP,CAAgBD,CAAQ,CAAChC,MAAT,CAAkBgC,CAAlB,CAA6B,IAA7C,CAAmD,CAAEH,CAAC,CAADA,CAAF,CAAnD,CACD,CACGnF,mBAAmB,CAACF,CAAD,CAXvB,GAYEA,CAAM,CAACyF,QAAP,CAAgBvC,CAAhB,CAAsB,CAAEmC,CAAC,CAADA,CAAF,CAAtB,CAZF,CAaEjF,EAAO,IAbT,CAcEC,EAAS,CAAC,EAAD,CAdX,EAgBD,CAvRD,CAyRMsF,EAAW,CAAG,SAACC,CAAD,CAGd,CACJ,GAAQP,EAAR,CAAqBO,CAArB,CAAQP,CAAR,CAAWhE,CAAX,CAAqBuE,CAArB,CAAWvE,KAAX,CACA,GAAItB,gBAAgB,CAACC,CAAD,CAApB,CAA8B,IACtB6F,EAAgB,CAAG5D,CAAe,CACpCZ,CAAK,CAACiC,MAAN,CAAa,SAACJ,CAAD,QAAU,CAACjB,CAAe,CAACiB,CAAD,CAA1B,CAAb,CADoC,CAEpC7B,CAHwB,CAKtByE,CAA0B,CAAG,EALP,CAMtBC,CAA0B,CAAG,EANP,CAO5BnD,CAAK,CAACoD,OAAN,CAAc,SAAC1B,CAAD,CAAQ,CAElBuB,CAAgB,CAACtB,IAAjB,CAAsB,SAACrB,CAAD,QAAUxB,EAAU,CAAC4C,CAAD,CAAV,GAAmB5C,CAAU,CAACwB,CAAD,CAAvC,CAAtB,CAFkB,CAIlB4C,CAAkB,CAACG,IAAnB,CAAwB3B,CAAxB,CAJkB,CAMlByB,CAAkB,CAACE,IAAnB,CAAwB3B,CAAxB,CAEH,CARD,CAP4B,CAgBxBwB,CAAkB,CAACtC,MAAnB,GAA8BqC,CAAgB,CAACrC,MAhBvB,CAiB1BxD,CAAM,CAACyF,QAAP,CAAgBM,CAAhB,CAAoC,CAAEV,CAAC,CAADA,CAAF,CAApC,CAjB0B,CAmB1BrF,CAAM,CAACyF,QAAP,WAAoBM,CAApB,oBAA2CF,CAA3C,GAA8D,CAC5DR,CAAC,CAADA,CAD4D,CAA9D,CAIH,CACF,CAtTD,CAwTM9B,EAAQ,CAAG,SAAC8B,CAAD,CAA0B5B,CAA1B,CAA4C,CAC3DzD,CAAM,CAACuD,QAAP,EAAmBvD,CAAM,CAACuD,QAAP,CAAgBE,CAAhB,CAAuB,CAAE4B,CAAC,CAADA,CAAF,CAAvB,CADwC,CAE3DjF,EAAO,IAFoD,CAG3DC,EAAS,CAAC,EAAD,CACV,CA5TD,CA+UM6F,EAAU,CAAG,SAACb,CAAD,CAA6B,CAC9C,GAAItF,gBAAgB,CAACC,CAAD,CAApB,CAA8B,CAC5B,GAAMmG,EAAO,QAAGvD,CAAH,WAAGA,CAAH,QAAGA,CAAK,CAAEU,MAAP,CAAc,SAACJ,CAAD,gBAAUjB,CAAV,WAAUA,CAAV,QAAUA,CAAe,CAAGiB,CAAH,CAAzB,CAAd,CAAhB,CACAlD,CAAM,CAACyF,QAAP,CAAgBU,CAAO,EAAqB,CAAjB,CAAAA,CAAO,CAAC3C,MAAnB,CAAgC2C,CAAhC,CAA0C,IAA1D,CAAgE,CAC9Dd,CAAC,CAADA,CAD8D,CAAhE,CAGD,CACGnF,mBAAmB,CAACF,CAAD,CAPuB,EAQ5CA,CAAM,CAACyF,QAAP,CAAgB,IAAhB,CAAsB,CAAEJ,CAAC,CAADA,CAAF,CAAtB,CAR4C,CAU9ChF,EAAS,CAAC,EAAD,CACV,CA1VD,CAiWM+F,EAAmB,CAAG,SAACC,CAAD,CAAIhB,CAAJ,CAAgB,CAC1CA,CAAC,CAACiB,cAAF,EAD0C,CAEzC9E,CAAD,EAAapB,EAAO,IAFsB,CAG1CE,EAAc,CAAC,SAACqE,CAAD,QAASA,EAAG,CAAG,CAAf,CAAD,IACf,CArWD,CAuWM4B,EAAqB,CAAG,SAACF,CAAD,CAAIhB,CAAJ,CAAgB,CAC5CA,CAAC,CAACiB,cAAF,EAD4C,CAE3C9E,CAAD,EAAapB,EAAO,IAFwB,CAG5CE,EAAc,CAAC,SAACqE,CAAD,QAASA,EAAG,CAAG,CAAf,CAAD,IACf,CA3WD,CAubM6B,EAAW,CAAGjH,OAAO,CAAC,CAC1B6G,OAAO,CAAPA,EAD0B,CAE1BG,SAAS,CAATA,EAF0B,CAG1BE,MAAM,CAAEL,EAHkB,CAI1BM,QAAQ,CAAEH,EAJgB,CAK1BI,IAAI,CAAEP,EALoB,CAM1BQ,GAAG,CAAEL,EANqB,CAO1BM,KAAK,CAjFmB,QAApBA,MAAoB,CAACR,CAAD,CAAIhB,CAAJ,CAAgB,CACxC,GAAI3E,CAAJ,CAAY,EACNF,CAAW,EAAImD,CAAe,CAAChD,CAAD,CADxB,GAER0E,CAAC,CAACiB,cAAF,EAFQ,IAKJQ,EAAO,CAAG,SACdrC,CADc,CAKX,OACCsC,CAAM,CAAG,CADV,8BAEiBlD,CAFjB,MAEH,2BAAkC,IAAvBM,EAAuB,SAChC,GAAItD,iBAAiB,CAACsD,CAAD,CAArB,CAEE,MADA4C,EAAM,EACN,CAAO,QAAY5C,CAAZ,CAAP,CAEF,GAAIA,CAAK,CAAC9C,KAAN,CAAYmC,MAAZ,CAAqBuD,CAArB,CAA8BtC,CAAlC,CACE,MAAO,CAACN,CAAD,CAAQA,CAAK,CAAC9C,KAAN,CAAYoD,CAAK,CAAGsC,CAApB,CAAR,CAAP,CAEFA,CAAM,EAAI5C,CAAK,CAAC9C,KAAN,CAAYmC,MACvB,CAXE,+BAYH,MAAO,eACR,CAvBS,GAyBYsD,CAAO,CAACnG,CAAD,CAzBnB,uBAyBHwD,CAzBG,MAyBIjB,CAzBJ,MA2BV,GAAIrC,iBAAiB,CAACqC,CAAD,CAArB,CAEE,WADAK,GAAQ,CAAC8B,CAAD,CAAInC,CAAI,CAACO,KAAT,CACR,CAGF,GAAItC,oBAAoB,CAAC+B,CAAD,CAAxB,CAAgC,OAQ9B,WAPAyC,GAAW,CAAC,CACVN,CAAC,CAADA,CADU,CAEVhE,KAAK,kBACF8C,CADE,WACFA,CADE,QACFA,CAAK,CAAE9C,KAAP,CAAaiC,MAAb,CACC,SAACgB,CAAD,QAAQ,CAACnD,oBAAoB,CAACmD,CAAD,CAA7B,CADD,CADE,gBAGa,EALR,CAAD,CAQZ,CAEGpB,CA3CM,EA4CRuC,EAAQ,CAACJ,CAAD,CAAInC,CAAJ,CAEX,CA9CD,IA+CE9C,GAAO,IAEV,CAwB2B,CAQ1B4G,MAAM,CA9BmB,QAArBA,OAAqB,EAAY,CACrC5G,EAAO,IACR,CAoB2B,CAS1B6G,GAAG,CA3BmB,QAAlBA,IAAkB,CAACZ,CAAD,CAAIhB,CAAJ,CAAgB,CAClC3E,CADkC,GAEpC2E,CAAC,CAACiB,cAAF,EAFoC,CAGpClG,EAAO,IAH6B,CAKvC,CAa2B,CAU1B8G,SAAS,CArBmB,QAAxBA,UAAwB,CAACb,CAAD,CAAIhB,CAAJ,CAAgB,CACxC7E,CADwC,GAIxCP,CAJwC,CAK1CmF,EAAW,CAACC,CAAD,CAAIzC,CAAK,CAACA,CAAK,CAACY,MAAN,CAAe,CAAhB,CAAT,CAL+B,CAO1C0C,EAAU,CAACb,CAAD,CAPgC,CAS7C,CAE2B,CAAD,CAvb3B,CAggBAhG,eAAe,CAAC,CACd8H,QAAQ,CAAEzG,CADI,CAEd0G,sBAAsB,EACpB9F,CADoB,CAEpBC,CAFoB,4BAGhBiB,CAAuB,EAAI,EAHX,EAFR,CAOd6E,OAAO,CAAE,kBAAM,CACbjH,EAAO,IACR,CATa,CAAD,CAhgBf,CA4gBApB,SAAS,CAAC,UAAM,CACVwC,CADU,EAEZpB,EAAO,IAEV,CAJQ,CAIN,CAACoB,CAAD,CAJM,CA5gBT,CAkhBAxC,SAAS,CAAC,UAAM,CACd,GAAMmG,EAAqB,CAAGX,CAAsB,EAApD,CACAlE,EAAc,CAAC6E,CAAD,IACf,CAHQ,CAGN,CAAC7E,EAAD,CAHM,CAlhBT,CAuhBAtB,SAAS,CAAC,UAAM,CACe,CAAzB,CAAA2E,CAAe,CAACH,MAAhB,EAA8B5C,CADpB,EAEZf,aAAa,CAACc,CAAD,CAAmBW,CAAnB,CAAgC0C,CAAhC,CAA6C,iBACxD1D,GAAc,CAAC,CAAD,IAD0C,CAA7C,CAIhB,CANQ,CAMN,CAACK,CAAD,CANM,CAvhBT,CAwlBA,MApBA3B,UAAS,CAAC,UAAM,CACdqB,EAAS,CAAC+B,CAAD,CACV,CAFQ,CAEN,CAACA,CAAD,CAFM,CAoBT,CAhBApD,SAAS,CAAC,UAAM,iBACdsC,CAAW,CAACgG,OADE,qBACd,EAAqBC,QAArB,CAA8B,CAAEC,GAAG,CAAE,CAAP,CAA9B,CACD,CAFQ,CAEN,CAAC/G,CAAD,CAFM,CAgBT,CAZAzB,SAAS,CAAC,UAAM,QACdqD,CADc,WACdA,CADc,QACdA,CAAc,CAAG3B,CAAH,CACf,CAFQ,CAEN,CAACA,CAAD,CAFM,CAYT,CARA1B,SAAS,CAAC,UAAM,iBACdgE,CAAsB,CAACsE,OADT,qBACd,OAAAtE,CAAsB,CAAWxC,CAAX,CACvB,CAFQ,CAEN,CAACA,CAAD,CAFM,CAQT,CAJAxB,SAAS,CAAC,UAAM,CACdoB,EAAO,CAACmC,CAAY,IAAb,CACR,CAFQ,CAEN,CAACA,CAAD,CAFM,CAIT,CAAO,CACL7B,MAAM,CAANA,CADK,CAELgC,SAAS,CAATA,CAFK,CAGL/B,gBAAgB,CAAhBA,CAHK,CAILkD,YAAY,CAAZA,CAJK,CAKLvD,cAAc,CAAdA,EALK,CAMLmH,cAAc,CA1JO,QAAjBA,eAAiB,GAIwB,IAH7ChD,EAG6C,GAH7CA,KAG6C,CAF7CvB,CAE6C,GAF7CA,IAE6C,CAD7CwE,CAC6C,GAD7CA,SAC6C,CAC7C,GAAI7G,iBAAiB,CAACqC,CAAD,CAArB,CACE,MAAO,CACLyE,OAAO,CAAE,iBAACtC,CAAD,CAA6B,CACpC9B,EAAQ,CAAC8B,CAAD,CAAInC,CAAI,CAACO,KAAT,CACT,CAHI,CAILmE,YAAY,CAAE,uBAAM,CAClBtH,EAAc,CAACmE,CAAD,IACf,CANI,CAOLoD,MAAM,GAPD,CAQLC,OAAO,CAAErD,CAAK,GAAK9D,CARd,CASLoH,GAAG,WAAKL,CAAL,qBATE,CAAP,CAYF,GAAIvG,oBAAoB,CAAC+B,CAAD,CAAxB,CAAgC,CAC9B,GAAM8E,EAAQ,CAAG,UAAc,oCACTnE,CADS,MAC7B,2BAAkC,IAAvBM,EAAuB,SAChC,GAAItD,iBAAiB,CAACsD,CAAD,CAArB,CACE,MAEF,GAAIA,CAAK,CAAC4D,GAAN,GAAc7E,CAAI,CAAC+E,QAAvB,CAAiC,OAC/B,wBACG9D,CADH,WACGA,CADH,QACGA,CAAK,CAAE9C,KAAP,CAAaiC,MAAb,CACC,SAACgB,CAAD,QAAQ,CAACnD,oBAAoB,CAACmD,CAAD,CAA7B,CADD,CADH,gBAGkB,EAEnB,CACF,CAZ4B,+BAa7B,MAAO,EACR,CAdD,CAeA,MAAO,CACLqD,OAAO,CAAE,iBAACtC,CAAD,CAA6B,CACpCM,EAAW,CAAC,CAAEN,CAAC,CAADA,CAAF,CAAKhE,KAAK,CAAE2G,CAAQ,EAApB,CAAD,CACZ,CAHI,CAILJ,YAAY,CAAE,uBAAM,CAClBtH,EAAc,CAACmE,CAAD,IACf,CANI,CAOLoD,MAAM,GAPD,CAQLC,OAAO,CAAErD,CAAK,GAAK9D,CARd,CASLoH,GAAG,WAAKL,CAAL,wBATE,CAWR,CACD,GAAMK,EAAG,CAAGrG,CAAU,CAACwB,CAAD,CAAtB,CACA,MAAO,CACLyE,OAAO,CAAE,iBAACtC,CAAD,CAA6B,CACpCI,EAAQ,CAACJ,CAAD,CAAInC,CAAJ,CACT,CAHI,CAIL0E,YAAY,CAAE,uBAAM,CAClBtH,EAAc,CAACmE,CAAD,IACf,CANI,CAOLoD,MAAM,GAAUjF,CAAK,CAAC2B,IAAN,CAAW,SAACrB,CAAD,QAAUxB,EAAU,CAACwB,CAAD,CAAV,GAAqB6E,CAA/B,CAAX,CAPX,CAQLD,OAAO,CAAErD,CAAK,GAAK9D,CARd,CASLoH,GAAG,WAAKL,CAAL,SAAiBK,CAAjB,CATE,CAWR,CA0FM,CAOLG,gBAAgB,CAhEO,QAAnBA,iBAAmB,CAAC7C,CAAD,CAAiD,CACnE7D,CADmE,GAElE,CAACkB,CAFiE,EAGpEC,CAAY,IAHwD,CAK/C,UAAnB,QAAOT,EAL2D,EAMpEA,CAAO,CAACmD,CAAD,CAN6D,CASzE,CAgDM,CAQL8C,eAAe,CAtDO,QAAlBA,gBAAkB,CAAC9C,CAAD,CAAiD,CACvE,GAAI3E,CAAJ,CAAY,OAEV,sBADA+B,CAAQ,CAAC6E,OACT,qBADA,EAAkBc,KAAlB,EACA,CACD,CAEG1F,CANmE,EAOrEC,CAAY,IAPyD,CAUjD,UAAlB,QAAOR,EAV4D,EAWrEA,CAAM,CAACkD,CAAD,CAET,CAiCM,CASLgD,oBAAoB,CAxCO,QAAvBA,qBAAuB,EAAY,CACvC,GAAI3H,CAAJ,CACEN,EAAO,IADT,CAEEuC,CAAY,IAFd,KAGO,OACLvC,EAAO,IADF,CAELuC,CAAY,IAFP,WAGLF,CAAQ,CAAC6E,OAHJ,qBAGL,EAAkBc,KAAlB,EACD,CACF,CAsBM,CAULE,gBAAgB,CA3RO,QAAnBA,iBAAmB,EAAY,CAGnC,GAFC9G,CAAD,EAAapB,EAAO,CAAC,CAACM,CAAF,CAEpB,CAAIT,CAAJ,CAAc,iBACZwC,CAAQ,CAAC6E,OADG,qBACZ,EAAkBc,KAAlB,EACD,CACF,CA2QM,CAWL3F,QAAQ,CAARA,CAXK,CAYL+D,WAAW,CAAXA,EAZK,CAaL+B,iBAAiB,CArSO,QAApBA,kBAAoB,CAAClD,CAAD,CAAkD,CACrE7D,CAAD,EAAe,CAACvB,CAAD,EAA4B,CAAf,CAAA2C,CAAK,CAACY,MADoC,GAExEnD,EAAS,CAACgF,CAAC,CAACmD,MAAF,CAAS5F,KAAV,CAF+D,CAGxExC,EAAO,IAHiE,CAK3E,CAmRM,CAcLI,WAAW,CAAXA,CAdK,CAeL0F,UAAU,CAAVA,EAfK,CAgBLuC,oBAAoB,CA5QO,QAAvBA,qBAAuB,CAACvF,CAAD,QAAgB,UAACmC,CAAD,QAC3CD,GAAW,CAACC,CAAD,CAAInC,CAAJ,CADgC,CAAhB,CA4PtB,CAiBLe,QAAQ,CAARA,CAjBK,CAkBLG,QAAQ,CAARA,CAlBK,CAmBLC,gBAAgB,CAAhBA,CAnBK,CAoBLL,WAAW,CAAXA,CApBK,CAsBR"}
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["min","max","onChange","onAfterChange","value","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","labelIcon","status","caption","tooltipFormatter","className","style"];import"./Slider.css";import React,{forwardRef,useRef,useState}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption";import{FieldLabel}from"../FieldLabel";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useSortSteps}from"../../hooks/useSortSteps";import{cn}from"../../utils/bem";import{defaultPropSize,defaultTooltipFormatter,getIcon,getMaxForStartField,getMinForEndField,getOnChandgeForInput,getValidStep,getValueForInput,isRangeParams}from"./helper";import{SliderInput}from"./SliderInput/SliderInput";import{SliderLine}from"./SliderLine/SliderLine";import{SliderPoint}from"./SliderPoint/SliderPoint";import{useSlider}from"./useSlider/useSlider";import{useSliderStationing}from"./useSliderStationing";var cnSlider=cn("Slider"),sizeMap={xs:"xs",s:"s",m:"m",l:"m"};export var COMPONENT_NAME="Slider";var SliderRender=function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.min,f=void 0===e?0:e,g=d.max,h=void 0===g?100:g,i=d.onChange,j=d.onAfterChange,k=d.value,l=d.step,m=d.disabled,n=void 0!==m&&m,o=d.size,p=void 0===o?defaultPropSize:o,q=d.view,r=void 0===q?"default":q,s=d.leftSide,t=d.rightSide,u=d.withTooltip,v=d.range,w=void 0!==v&&v,x=d.label,y=d.labelIcon,z=d.status,A=d.caption,B=d.tooltipFormatter,C=void 0===B?defaultTooltipFormatter:B,D=d.className,E=d.style,F=_objectWithoutProperties(d,_excluded),G=useState(),H=_slicedToArray(G,2),I=H[0],J=H[1],K=useFlag(!1),L=_slicedToArray(K,2),M=L[0],N=L[1],O=N.on,P=N.off,Q=useRef(null),R=useRef(null),S=useRef(null),T=useSortSteps({step:getValidStep(f,h,l),min:f,max:h}),U=l?T:Math.abs((h-f)/100),V=getIcon(t),W=getIcon(s),X=sizeMap[p],Y=useSlider({disabled:n,range:w,value:k,min:f,max:h,step:U,onChange:i,onAfterChange:j,sliderRef:c,containerRef:Q,buttonRefs:[R,S]}),Z=Y.onKeyPress,$=Y.onFocus,_=Y.handlePress,aa=Y.onSliderClick,ba=Y.popoverPosition,ca=Y.activeButton,da=Y.currentValue,ea=useSliderStationing(1===da.length?da[0]:da,f,h,r,w,U,[R,S],c),fa=ea.lineSizes,ga=ea.buttonPositions,ha={role:"button",tabIndex:0,className:cnSlider("Control"),ref:c,onClick:aa},ia=function(a){a?O():P()};return React.createElement("div",Object.assign({ref:useForkRef([b,Q]),className:cnSlider({size:p},[D]),style:E},F),x&&React.createElement(FieldLabel,{icon:y,className:cnSlider("Label"),size:p},x),React.createElement("div",{className:cnSlider("Container")},("input"===s||W)&&React.createElement("div",{className:cnSlider("Side",{position:"left"})},"input"===s&&React.createElement(SliderInput,{value:getValueForInput(a,0),onFocus:function(){return J(0)},onBlur:function onBlur(){return J(void 0)},onChange:getOnChandgeForInput(a,0),size:p,min:f,inputMode:"numeric",max:getMaxForStartField(a),status:z,step:U,disabled:n}),W&&React.createElement(W,{size:null!==X&&void 0!==X?X:void 0,view:"secondary"})),React.createElement("div",ha,React.createElement(SliderLine,{hovered:M||"number"==typeof ca,onHover:ia,lines:fa,disabled:n,view:r}),da.map(function(a,b){var c=1<da.length&&da[0]===da[1]&&a===h&&0===b;return React.createElement(SliderPoint,{hovered:M||"number"==typeof ca,buttonRef:R,popoverPosition:ba[b],onKeyPress:Z,onFocus:$,handlePress:_,disabled:n,active:c,position:ga[b],focused:ca===b||I===b,buttonLabel:b,withTooltip:u,onHover:ia,tooltipFormatter:C,value:a,role:"slider","aria-valuemin":f,"aria-valuemax":h,"aria-valuenow":a,tooltipZIndex:"number"==typeof(null===E||void 0===E?void 0:E.zIndex)?E.zIndex+1:void 0,key:cnSlider("Point",{index:b})})})),("input"===t||V)&&React.createElement("div",{className:cnSlider("Side",{position:"right"})},"input"===t&&React.createElement(SliderInput,{value:getValueForInput(a,1),onChange:getOnChandgeForInput(a,1),onBlur:function onBlur(){return J(void 0)},size:p,min:getMinForEndField(a),max:h,onFocus:function(){return J(isRangeParams(a)?1:0)},inputMode:"numeric",status:z,step:U,disabled:n}),V&&React.createElement(V,{size:X,view:"secondary"}))),A&&React.createElement(FieldCaption,{className:cnSlider("Caption"),status:z},A))};export var Slider=forwardRef(SliderRender);
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["min","max","onChange","onAfterChange","value","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style"];import"./Slider.css";import React,{forwardRef,useRef,useState}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption";import{FieldLabel}from"../FieldLabel";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useSortSteps}from"../../hooks/useSortSteps";import{cn}from"../../utils/bem";import{defaultPropSize,defaultTooltipFormatter,getIcon,getMaxForStartField,getMinForEndField,getOnChandgeForInput,getValidStep,getValueForInput,isRangeParams}from"./helper";import{SliderInput}from"./SliderInput/SliderInput";import{SliderLine}from"./SliderLine/SliderLine";import{SliderPoint}from"./SliderPoint/SliderPoint";import{useSlider}from"./useSlider/useSlider";import{useSliderStationing}from"./useSliderStationing";var cnSlider=cn("Slider"),sizeMap={xs:"xs",s:"s",m:"m",l:"m"};export var COMPONENT_NAME="Slider";var SliderRender=function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.min,f=void 0===e?0:e,g=d.max,h=void 0===g?100:g,i=d.onChange,j=d.onAfterChange,k=d.value,l=d.step,m=d.disabled,n=void 0!==m&&m,o=d.size,p=void 0===o?defaultPropSize:o,q=d.view,r=void 0===q?"default":q,s=d.leftSide,t=d.rightSide,u=d.withTooltip,v=d.range,w=void 0!==v&&v,x=d.label,y=d.tooltipDirection,z=d.tooltipPossibleDirections,A=d.labelIcon,B=d.status,C=d.caption,D=d.tooltipFormatter,E=void 0===D?defaultTooltipFormatter:D,F=d.className,G=d.style,H=_objectWithoutProperties(d,_excluded),I=useState(),J=_slicedToArray(I,2),K=J[0],L=J[1],M=useFlag(!1),N=_slicedToArray(M,2),O=N[0],P=N[1],Q=P.on,R=P.off,S=useRef(null),T=useRef(null),U=useRef(null),V=useSortSteps({step:getValidStep(f,h,l),min:f,max:h}),W=l?V:Math.abs((h-f)/100),X=getIcon(t),Y=getIcon(s),Z=sizeMap[p],$=useSlider({disabled:n,range:w,value:k,min:f,max:h,step:W,onChange:i,onAfterChange:j,sliderRef:c,containerRef:S,buttonRefs:[T,U]}),_=$.onKeyPress,aa=$.onFocus,ba=$.handlePress,ca=$.onSliderClick,da=$.popoverPosition,ea=$.activeButton,fa=$.currentValue,ga=useSliderStationing(1===fa.length?fa[0]:fa,f,h,r,w,W,[T,U],c),ha=ga.lineSizes,ia=ga.buttonPositions,ja={role:"button",tabIndex:0,className:cnSlider("Control"),ref:c,onClick:ca},ka=function(a){a?Q():R()};return React.createElement("div",Object.assign({ref:useForkRef([b,S]),className:cnSlider({size:p},[F]),style:G},H),x&&React.createElement(FieldLabel,{icon:A,className:cnSlider("Label"),size:p},x),React.createElement("div",{className:cnSlider("Container")},("input"===s||Y)&&React.createElement("div",{className:cnSlider("Side",{position:"left"})},"input"===s&&React.createElement(SliderInput,{value:getValueForInput(a,0),onFocus:function(){return L(0)},onBlur:function onBlur(){return L(void 0)},onChange:getOnChandgeForInput(a,0),size:p,min:f,inputMode:"numeric",max:getMaxForStartField(a),status:B,step:W,disabled:n}),Y&&React.createElement(Y,{size:null!==Z&&void 0!==Z?Z:void 0,view:"secondary"})),React.createElement("div",ja,React.createElement(SliderLine,{hovered:O||"number"==typeof ea,onHover:ka,lines:ha,disabled:n,view:r}),fa.map(function(a,b){var c=1<fa.length&&fa[0]===fa[1]&&a===h&&0===b;return React.createElement(SliderPoint,{hovered:O||"number"==typeof ea,buttonRef:T,popoverPosition:da[b],onKeyPress:_,onFocus:aa,tooltipDirection:y,tooltipPossibleDirections:z,handlePress:ba,disabled:n,active:c,position:ia[b],focused:ea===b||K===b,buttonLabel:b,withTooltip:u,onHover:ka,tooltipFormatter:E,value:a,role:"slider","aria-valuemin":f,"aria-valuemax":h,"aria-valuenow":a,tooltipZIndex:"number"==typeof(null===G||void 0===G?void 0:G.zIndex)?G.zIndex+1:void 0,key:cnSlider("Point",{index:b})})})),("input"===t||X)&&React.createElement("div",{className:cnSlider("Side",{position:"right"})},"input"===t&&React.createElement(SliderInput,{value:getValueForInput(a,1),onChange:getOnChandgeForInput(a,1),onBlur:function onBlur(){return L(void 0)},size:p,min:getMinForEndField(a),max:h,onFocus:function(){return L(isRangeParams(a)?1:0)},inputMode:"numeric",status:B,step:W,disabled:n}),X&&React.createElement(X,{size:Z,view:"secondary"}))),C&&React.createElement(FieldCaption,{className:cnSlider("Caption"),status:B},C))};export var Slider=forwardRef(SliderRender);
2
2
  //# sourceMappingURL=Slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","names":["React","forwardRef","useRef","useState","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useSortSteps","cn","defaultPropSize","defaultTooltipFormatter","getIcon","getMaxForStartField","getMinForEndField","getOnChandgeForInput","getValidStep","getValueForInput","isRangeParams","SliderInput","SliderLine","SliderPoint","useSlider","useSliderStationing","cnSlider","sizeMap","xs","s","m","l","COMPONENT_NAME","SliderRender","props","ref","sliderRef","min","max","onChange","onAfterChange","value","stepProp","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","labelIcon","status","caption","tooltipFormatter","className","style","otherProps","focusIndex","setFocusIndex","isHovered","on","off","containerRef","leftButtonRef","rightButtonRef","sortedSteps","Math","abs","IconRight","IconLeft","iconSize","buttonRefs","onKeyPress","onFocus","handlePress","onSliderClick","popoverPosition","activeButton","currentValue","length","lineSizes","buttonPositions","containerProps","role","tabIndex","onClick","changeHovered","position","map","val","index","topLayer","zIndex","Slider"],"sources":["../../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import './Slider.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useSortSteps } from '##/hooks/useSortSteps';\nimport { cn } from '##/utils/bem';\n\nimport {\n defaultPropSize,\n defaultTooltipFormatter,\n getIcon,\n getMaxForStartField,\n getMinForEndField,\n getOnChandgeForInput,\n getValidStep,\n getValueForInput,\n isRangeParams,\n PropSize,\n SliderComponent,\n SliderProps,\n} from './helper';\nimport { SliderInput } from './SliderInput/SliderInput';\nimport { SliderLine } from './SliderLine/SliderLine';\nimport { SliderPoint } from './SliderPoint/SliderPoint';\nimport { ActiveButton } from './useSlider/helper';\nimport { useSlider } from './useSlider/useSlider';\nimport { useSliderStationing } from './useSliderStationing';\n\nconst cnSlider = cn('Slider');\n\nconst sizeMap: Record<PropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n\nexport const COMPONENT_NAME = 'Slider' as const;\n\nconst SliderRender = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const sliderRef = useRef<HTMLDivElement>(null);\n\n const {\n min = 0,\n max = 100,\n onChange,\n onAfterChange,\n value,\n step: stepProp,\n disabled = false,\n size = defaultPropSize,\n view = 'default',\n leftSide,\n rightSide,\n withTooltip,\n range = false,\n label,\n labelIcon,\n status,\n caption,\n tooltipFormatter = defaultTooltipFormatter,\n className,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, sliderRef);\n\n const [focusIndex, setFocusIndex] = useState<number | undefined>();\n const [isHovered, { on, off }] = useFlag(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const leftButtonRef = useRef<HTMLButtonElement>(null);\n const rightButtonRef = useRef<HTMLButtonElement>(null);\n const sortedSteps = useSortSteps({\n step: getValidStep(min, max, stepProp),\n min,\n max,\n });\n const step = stepProp ? sortedSteps : Math.abs((max - min) / 100);\n const IconRight = getIcon(rightSide);\n const IconLeft = getIcon(leftSide);\n const iconSize = sizeMap[size];\n\n const {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n popoverPosition,\n activeButton,\n currentValue,\n } = useSlider({\n disabled,\n range,\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs: [leftButtonRef, rightButtonRef],\n });\n\n const { lineSizes, buttonPositions } = useSliderStationing(\n currentValue.length === 1 ? currentValue[0] : currentValue,\n min,\n max,\n view,\n range,\n step,\n [leftButtonRef, rightButtonRef],\n sliderRef,\n );\n\n const containerProps = {\n role: 'button',\n tabIndex: 0,\n className: cnSlider('Control'),\n ref: sliderRef,\n onClick: onSliderClick,\n };\n\n const changeHovered = (status: boolean) => {\n if (status) on();\n else off();\n };\n\n return (\n <div\n ref={useForkRef([ref, containerRef])}\n className={cnSlider({ size }, [className])}\n style={style}\n {...otherProps}\n >\n {label && (\n <FieldLabel icon={labelIcon} className={cnSlider('Label')} size={size}>\n {label}\n </FieldLabel>\n )}\n <div className={cnSlider('Container')}>\n {(leftSide === 'input' || IconLeft) && (\n <div className={cnSlider('Side', { position: 'left' })}>\n {leftSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 0)}\n onFocus={() => setFocusIndex(0)}\n onBlur={() => setFocusIndex(undefined)}\n onChange={getOnChandgeForInput(props, 0)}\n size={size}\n min={min}\n inputMode=\"numeric\"\n max={getMaxForStartField(props)}\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconLeft && (\n <IconLeft size={iconSize ?? undefined} view=\"secondary\" />\n )}\n </div>\n )}\n <div {...containerProps}>\n <SliderLine\n hovered={isHovered || typeof activeButton === 'number'}\n onHover={changeHovered}\n lines={lineSizes}\n disabled={disabled}\n view={view}\n />\n {currentValue.map((val, index) => {\n // let isActive = true;\n // if (\n // currentValue.length > 1 &&\n // currentValue[0] === currentValue[1]\n // ) {\n // if (index === 0 && val === min) {\n // isActive = false;\n // }\n // if (index === 1 && val === max) {\n // isActive = false;\n // }\n // }\n const topLayer =\n currentValue.length > 1 &&\n currentValue[0] === currentValue[1] &&\n val === max &&\n index === 0;\n return (\n <SliderPoint\n hovered={isHovered || typeof activeButton === 'number'}\n buttonRef={leftButtonRef}\n popoverPosition={popoverPosition[index]}\n onKeyPress={onKeyPress}\n onFocus={onFocus}\n handlePress={handlePress}\n disabled={disabled}\n active={topLayer}\n position={buttonPositions[index]}\n focused={activeButton === index || focusIndex === index}\n buttonLabel={index as ActiveButton}\n withTooltip={withTooltip}\n onHover={changeHovered}\n tooltipFormatter={tooltipFormatter}\n value={val}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n tooltipZIndex={\n typeof style?.zIndex === 'number'\n ? style.zIndex + 1\n : undefined\n }\n key={cnSlider('Point', { index })}\n />\n );\n })}\n </div>\n {(rightSide === 'input' || IconRight) && (\n <div className={cnSlider('Side', { position: 'right' })}>\n {rightSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 1)}\n onChange={getOnChandgeForInput(props, 1)}\n onBlur={() => setFocusIndex(undefined)}\n size={size}\n min={getMinForEndField(props)}\n max={max}\n onFocus={() => setFocusIndex(isRangeParams(props) ? 1 : 0)}\n inputMode=\"numeric\"\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconRight && <IconRight size={iconSize} view=\"secondary\" />}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption className={cnSlider('Caption')} status={status}>\n {caption}\n </FieldCaption>\n )}\n </div>\n );\n};\n\nexport const Slider = forwardRef(SliderRender) as SliderComponent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","names":["React","forwardRef","useRef","useState","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useSortSteps","cn","defaultPropSize","defaultTooltipFormatter","getIcon","getMaxForStartField","getMinForEndField","getOnChandgeForInput","getValidStep","getValueForInput","isRangeParams","SliderInput","SliderLine","SliderPoint","useSlider","useSliderStationing","cnSlider","sizeMap","xs","s","m","l","COMPONENT_NAME","SliderRender","props","ref","sliderRef","min","max","onChange","onAfterChange","value","stepProp","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style","otherProps","focusIndex","setFocusIndex","isHovered","on","off","containerRef","leftButtonRef","rightButtonRef","sortedSteps","Math","abs","IconRight","IconLeft","iconSize","buttonRefs","onKeyPress","onFocus","handlePress","onSliderClick","popoverPosition","activeButton","currentValue","length","lineSizes","buttonPositions","containerProps","role","tabIndex","onClick","changeHovered","position","map","val","index","topLayer","zIndex","Slider"],"sources":["../../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import './Slider.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useSortSteps } from '##/hooks/useSortSteps';\nimport { cn } from '##/utils/bem';\n\nimport {\n defaultPropSize,\n defaultTooltipFormatter,\n getIcon,\n getMaxForStartField,\n getMinForEndField,\n getOnChandgeForInput,\n getValidStep,\n getValueForInput,\n isRangeParams,\n PropSize,\n SliderComponent,\n SliderProps,\n} from './helper';\nimport { SliderInput } from './SliderInput/SliderInput';\nimport { SliderLine } from './SliderLine/SliderLine';\nimport { SliderPoint } from './SliderPoint/SliderPoint';\nimport { ActiveButton } from './useSlider/helper';\nimport { useSlider } from './useSlider/useSlider';\nimport { useSliderStationing } from './useSliderStationing';\n\nconst cnSlider = cn('Slider');\n\nconst sizeMap: Record<PropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n\nexport const COMPONENT_NAME = 'Slider' as const;\n\nconst SliderRender = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const sliderRef = useRef<HTMLDivElement>(null);\n\n const {\n min = 0,\n max = 100,\n onChange,\n onAfterChange,\n value,\n step: stepProp,\n disabled = false,\n size = defaultPropSize,\n view = 'default',\n leftSide,\n rightSide,\n withTooltip,\n range = false,\n label,\n tooltipDirection,\n tooltipPossibleDirections,\n labelIcon,\n status,\n caption,\n tooltipFormatter = defaultTooltipFormatter,\n className,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, sliderRef);\n\n const [focusIndex, setFocusIndex] = useState<number | undefined>();\n const [isHovered, { on, off }] = useFlag(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const leftButtonRef = useRef<HTMLButtonElement>(null);\n const rightButtonRef = useRef<HTMLButtonElement>(null);\n const sortedSteps = useSortSteps({\n step: getValidStep(min, max, stepProp),\n min,\n max,\n });\n const step = stepProp ? sortedSteps : Math.abs((max - min) / 100);\n const IconRight = getIcon(rightSide);\n const IconLeft = getIcon(leftSide);\n const iconSize = sizeMap[size];\n\n const {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n popoverPosition,\n activeButton,\n currentValue,\n } = useSlider({\n disabled,\n range,\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs: [leftButtonRef, rightButtonRef],\n });\n\n const { lineSizes, buttonPositions } = useSliderStationing(\n currentValue.length === 1 ? currentValue[0] : currentValue,\n min,\n max,\n view,\n range,\n step,\n [leftButtonRef, rightButtonRef],\n sliderRef,\n );\n\n const containerProps = {\n role: 'button',\n tabIndex: 0,\n className: cnSlider('Control'),\n ref: sliderRef,\n onClick: onSliderClick,\n };\n\n const changeHovered = (status: boolean) => {\n if (status) on();\n else off();\n };\n\n return (\n <div\n ref={useForkRef([ref, containerRef])}\n className={cnSlider({ size }, [className])}\n style={style}\n {...otherProps}\n >\n {label && (\n <FieldLabel icon={labelIcon} className={cnSlider('Label')} size={size}>\n {label}\n </FieldLabel>\n )}\n <div className={cnSlider('Container')}>\n {(leftSide === 'input' || IconLeft) && (\n <div className={cnSlider('Side', { position: 'left' })}>\n {leftSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 0)}\n onFocus={() => setFocusIndex(0)}\n onBlur={() => setFocusIndex(undefined)}\n onChange={getOnChandgeForInput(props, 0)}\n size={size}\n min={min}\n inputMode=\"numeric\"\n max={getMaxForStartField(props)}\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconLeft && (\n <IconLeft size={iconSize ?? undefined} view=\"secondary\" />\n )}\n </div>\n )}\n <div {...containerProps}>\n <SliderLine\n hovered={isHovered || typeof activeButton === 'number'}\n onHover={changeHovered}\n lines={lineSizes}\n disabled={disabled}\n view={view}\n />\n {currentValue.map((val, index) => {\n const topLayer =\n currentValue.length > 1 &&\n currentValue[0] === currentValue[1] &&\n val === max &&\n index === 0;\n return (\n <SliderPoint\n hovered={isHovered || typeof activeButton === 'number'}\n buttonRef={leftButtonRef}\n popoverPosition={popoverPosition[index]}\n onKeyPress={onKeyPress}\n onFocus={onFocus}\n tooltipDirection={tooltipDirection}\n tooltipPossibleDirections={tooltipPossibleDirections}\n handlePress={handlePress}\n disabled={disabled}\n active={topLayer}\n position={buttonPositions[index]}\n focused={activeButton === index || focusIndex === index}\n buttonLabel={index as ActiveButton}\n withTooltip={withTooltip}\n onHover={changeHovered}\n tooltipFormatter={tooltipFormatter}\n value={val}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n tooltipZIndex={\n typeof style?.zIndex === 'number'\n ? style.zIndex + 1\n : undefined\n }\n key={cnSlider('Point', { index })}\n />\n );\n })}\n </div>\n {(rightSide === 'input' || IconRight) && (\n <div className={cnSlider('Side', { position: 'right' })}>\n {rightSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 1)}\n onChange={getOnChandgeForInput(props, 1)}\n onBlur={() => setFocusIndex(undefined)}\n size={size}\n min={getMinForEndField(props)}\n max={max}\n onFocus={() => setFocusIndex(isRangeParams(props) ? 1 : 0)}\n inputMode=\"numeric\"\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconRight && <IconRight size={iconSize} view=\"secondary\" />}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption className={cnSlider('Caption')} status={status}>\n {caption}\n </FieldCaption>\n )}\n </div>\n );\n};\n\nexport const Slider = forwardRef(SliderRender) as SliderComponent;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["hovered","onHover","value","position","disabled","withTooltip","focused","popoverPosition","buttonRef","active","handlePress","onKeyPress","tooltipFormatter","buttonLabel","onFocus","tooltipZIndex"];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}import"./SliderPoint.css";import React,{useEffect,useRef}from"react";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{cnMixFocus}from"../../../mixs/MixFocus/MixFocus";import{cn}from"../../../utils/bem";import{generateThemeClassNames,ThemeContext,useTheme}from"../../Theme/Theme";import{Tooltip}from"../../Tooltip/Tooltip";var cnSliderPoint=cn("SliderPoint"),getTooltipPosition=function(a,b){if(a&&b&&b.current){var c=b.current.getBoundingClientRect(),d=c.y,e=c.height;return{x:Math.round(a.x),y:Math.round(d+e/2)}}return{x:0,y:0}};export var SliderPoint=function(a){var b=a.hovered,c=a.onHover,d=a.value,e=a.position,f=a.disabled,g=a.withTooltip,h=a.focused,i=a.popoverPosition,j=a.buttonRef,k=a.active,l=a.handlePress,m=a.onKeyPress,n=a.tooltipFormatter,o=a.buttonLabel,p=a.onFocus,q=a.tooltipZIndex,r=_objectWithoutProperties(a,_excluded),s=useFlag(!1),t=_slicedToArray(s,2),u=t[0],v=t[1],w=useTheme(),x=w.theme,y=_objectSpread(_objectSpread({},x),{},{color:{primary:x.color.invert,accent:x.color.accent,invert:x.color.primary}}),z=generateThemeClassNames(y),A=function(a){f||(null===p||void 0===p?void 0:p(a,o),v.on())},B=function(a){f||(null===c||void 0===c?void 0:c(a),a&&v.on(),a&&v.on(),!a&&!h&&v.off())},C=useRef(null),D=getTooltipPosition(i,j||C);return useEffect(function(){h?v.on():v.off()},[h]),React.createElement(React.Fragment,null,React.createElement("button",Object.assign({type:"button","aria-label":"".concat(o,"-button"),className:cnSliderPoint({hovered:b,disabled:f,active:k},[f?"":cnMixFocus()]),onMouseOver:function onMouseOver(){return B(!0)},onMouseOut:function onMouseOut(){return B(!1)},onMouseDown:function onMouseDown(){return null===l||void 0===l?void 0:l(o)},onTouchStart:function onTouchStart(){return null===l||void 0===l?void 0:l(o)},onKeyDown:function onKeyDown(a){return null===m||void 0===m?void 0:m(a,o)},onFocus:A,onBlur:function handleBlur(a){f||(null===p||void 0===p?void 0:p(a,null),v.off())},onClick:A,ref:useForkRef([j,C]),tabIndex:0,style:_defineProperty({},"--slider-button-left","".concat(e,"%"))},r)),u&&g&&i&&React.createElement(ThemeContext.Provider,{value:{theme:y,themeClassNames:z}},React.createElement(Tooltip,{position:D,className:cnSliderPoint("Tooltip"),direction:"downCenter",possibleDirections:["leftCenter","rightCenter","downCenter","leftDown","rightDown","upCenter"],style:{zIndex:q},offset:10},n?n(d):d)))};
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["hovered","onHover","value","position","disabled","withTooltip","focused","popoverPosition","buttonRef","active","handlePress","onKeyPress","tooltipFormatter","buttonLabel","onFocus","tooltipDirection","tooltipPossibleDirections","tooltipZIndex"];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}import"./SliderPoint.css";import React,{useEffect,useRef}from"react";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{cnMixFocus}from"../../../mixs/MixFocus/MixFocus";import{cn}from"../../../utils/bem";import{generateThemeClassNames,ThemeContext,useTheme}from"../../Theme/Theme";import{Tooltip}from"../../Tooltip/Tooltip";var cnSliderPoint=cn("SliderPoint"),getTooltipPosition=function(a,b){if(a&&b&&b.current){var c=b.current.getBoundingClientRect(),d=c.y,e=c.height;return{x:Math.round(a.x),y:Math.round(d+e/2)}}return{x:0,y:0}},defaultPossibleDirections=["leftCenter","rightCenter","downCenter","leftDown","rightDown","upCenter"];export var SliderPoint=function(a){var b=a.hovered,c=a.onHover,d=a.value,e=a.position,f=a.disabled,g=a.withTooltip,h=a.focused,i=a.popoverPosition,j=a.buttonRef,k=a.active,l=a.handlePress,m=a.onKeyPress,n=a.tooltipFormatter,o=a.buttonLabel,p=a.onFocus,q=a.tooltipDirection,r=void 0===q?"downCenter":q,s=a.tooltipPossibleDirections,t=void 0===s?defaultPossibleDirections:s,u=a.tooltipZIndex,v=_objectWithoutProperties(a,_excluded),w=useFlag(!1),x=_slicedToArray(w,2),y=x[0],z=x[1],A=useTheme(),B=A.theme,C=_objectSpread(_objectSpread({},B),{},{color:{primary:B.color.invert,accent:B.color.accent,invert:B.color.primary}}),D=generateThemeClassNames(C),E=function(a){f||(null===p||void 0===p?void 0:p(a,o),z.on())},F=function(a){f||(null===c||void 0===c?void 0:c(a),a&&z.on(),a&&z.on(),!a&&!h&&z.off())},G=useRef(null),H=getTooltipPosition(i,j||G);return useEffect(function(){h?z.on():z.off()},[h]),React.createElement(React.Fragment,null,React.createElement("button",Object.assign({type:"button","aria-label":"".concat(o,"-button"),className:cnSliderPoint({hovered:b,disabled:f,active:k},[f?"":cnMixFocus()]),onMouseOver:function onMouseOver(){return F(!0)},onMouseOut:function onMouseOut(){return F(!1)},onMouseDown:function onMouseDown(){return null===l||void 0===l?void 0:l(o)},onTouchStart:function onTouchStart(){return null===l||void 0===l?void 0:l(o)},onKeyDown:function onKeyDown(a){return null===m||void 0===m?void 0:m(a,o)},onFocus:E,onBlur:function handleBlur(a){f||(null===p||void 0===p?void 0:p(a,null),z.off())},onClick:E,ref:useForkRef([j,G]),tabIndex:0,style:_defineProperty({},"--slider-button-left","".concat(e,"%"))},v)),y&&g&&i&&React.createElement(ThemeContext.Provider,{value:{theme:C,themeClassNames:D}},React.createElement(Tooltip,{position:H,className:cnSliderPoint("Tooltip"),direction:r,possibleDirections:t,style:{zIndex:u},offset:10},n?n(d):d)))};
2
2
  //# sourceMappingURL=SliderPoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderPoint.js","names":["React","useEffect","useRef","useFlag","useForkRef","cnMixFocus","cn","generateThemeClassNames","ThemeContext","useTheme","Tooltip","cnSliderPoint","getTooltipPosition","popoverPosition","buttonRef","current","getBoundingClientRect","y","height","x","Math","round","SliderPoint","props","hovered","onHover","value","position","disabled","withTooltip","focused","active","handlePress","onKeyPress","tooltipFormatter","buttonLabel","onFocus","tooltipZIndex","otherProps","tooltipVisible","setTooltipVisible","theme","tooltipTheme","color","primary","invert","accent","tooltipThemeClassNames","handleFocus","e","on","handleMouseAction","enter","off","pointRef","tooltipPosition","handleBlur","themeClassNames","zIndex"],"sources":["../../../../../../src/components/Slider/SliderPoint/SliderPoint.tsx"],"sourcesContent":["import './SliderPoint.css';\n\nimport React, { useEffect, useRef } from 'react';\n\nimport { useFlag } from '../../../hooks/useFlag/useFlag';\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { cnMixFocus } from '../../../mixs/MixFocus/MixFocus';\nimport { cn } from '../../../utils/bem';\nimport {\n generateThemeClassNames,\n ThemeContext,\n useTheme,\n} from '../../Theme/Theme';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { SliderPointProps, TrackPosition } from '../helper';\n\nconst cnSliderPoint = cn('SliderPoint');\n\nconst getTooltipPosition = (\n popoverPosition?: TrackPosition,\n buttonRef?: React.RefObject<HTMLButtonElement>,\n) => {\n if (popoverPosition && buttonRef && buttonRef.current) {\n const { y, height } = buttonRef.current.getBoundingClientRect();\n return {\n x: Math.round(popoverPosition.x),\n y: Math.round(y + height / 2),\n };\n }\n\n return { x: 0, y: 0 };\n};\nexport const SliderPoint = (props: SliderPointProps) => {\n const {\n hovered,\n onHover,\n value,\n position,\n disabled,\n withTooltip,\n focused,\n popoverPosition,\n buttonRef,\n active,\n handlePress,\n onKeyPress,\n tooltipFormatter,\n buttonLabel,\n onFocus,\n tooltipZIndex,\n ...otherProps\n } = props;\n\n const [tooltipVisible, setTooltipVisible] = useFlag(false);\n\n const { theme } = useTheme();\n\n const tooltipTheme = {\n ...theme,\n color: {\n primary: theme.color.invert,\n accent: theme.color.accent,\n invert: theme.color.primary,\n },\n };\n\n const tooltipThemeClassNames = generateThemeClassNames(tooltipTheme);\n\n const handleFocus = (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n ) => {\n if (!disabled) {\n onFocus?.(e, buttonLabel);\n setTooltipVisible.on();\n }\n };\n\n const handleMouseAction = (enter: boolean) => {\n if (!disabled) {\n onHover?.(enter);\n enter && setTooltipVisible.on();\n if (enter) setTooltipVisible.on();\n if (!enter && !focused) setTooltipVisible.off();\n }\n };\n\n const handleBlur = (\n e:\n | React.FocusEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLButtonElement>,\n ) => {\n if (!disabled) {\n onFocus?.(e, null);\n setTooltipVisible.off();\n }\n };\n\n const pointRef = useRef<HTMLButtonElement>(null);\n\n const tooltipPosition = getTooltipPosition(\n popoverPosition,\n buttonRef || pointRef,\n );\n\n useEffect(() => {\n focused ? setTooltipVisible.on() : setTooltipVisible.off();\n }, [focused]);\n\n return (\n <>\n <button\n type=\"button\"\n aria-label={`${buttonLabel}-button`}\n className={cnSliderPoint({ hovered, disabled, active }, [\n !disabled ? cnMixFocus() : '',\n ])}\n onMouseOver={() => handleMouseAction(true)}\n onMouseOut={() => handleMouseAction(false)}\n onMouseDown={() => handlePress?.(buttonLabel)}\n onTouchStart={() => handlePress?.(buttonLabel)}\n onKeyDown={(e) => onKeyPress?.(e, buttonLabel)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClick={handleFocus}\n ref={useForkRef([buttonRef, pointRef])}\n tabIndex={0}\n style={{\n ['--slider-button-left' as string]: `${position}%`,\n }}\n {...otherProps}\n />\n {tooltipVisible && withTooltip && popoverPosition && (\n <ThemeContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n theme: tooltipTheme,\n themeClassNames: tooltipThemeClassNames,\n }}\n >\n <Tooltip\n position={tooltipPosition}\n className={cnSliderPoint('Tooltip')}\n direction=\"downCenter\"\n possibleDirections={[\n 'leftCenter',\n 'rightCenter',\n 'downCenter',\n 'leftDown',\n 'rightDown',\n 'upCenter',\n ]}\n style={{ zIndex: tooltipZIndex }}\n offset={10}\n >\n {tooltipFormatter ? tooltipFormatter(value) : value}\n </Tooltip>\n </ThemeContext.Provider>\n )}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"SliderPoint.js","names":["React","useEffect","useRef","useFlag","useForkRef","cnMixFocus","cn","generateThemeClassNames","ThemeContext","useTheme","Tooltip","cnSliderPoint","getTooltipPosition","popoverPosition","buttonRef","current","getBoundingClientRect","y","height","x","Math","round","defaultPossibleDirections","SliderPoint","props","hovered","onHover","value","position","disabled","withTooltip","focused","active","handlePress","onKeyPress","tooltipFormatter","buttonLabel","onFocus","tooltipDirection","tooltipPossibleDirections","tooltipZIndex","otherProps","tooltipVisible","setTooltipVisible","theme","tooltipTheme","color","primary","invert","accent","tooltipThemeClassNames","handleFocus","e","on","handleMouseAction","enter","off","pointRef","tooltipPosition","handleBlur","themeClassNames","zIndex"],"sources":["../../../../../../src/components/Slider/SliderPoint/SliderPoint.tsx"],"sourcesContent":["import './SliderPoint.css';\n\nimport React, { useEffect, useRef } from 'react';\n\nimport { Direction } from '##/components/Popover';\n\nimport { useFlag } from '../../../hooks/useFlag/useFlag';\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { cnMixFocus } from '../../../mixs/MixFocus/MixFocus';\nimport { cn } from '../../../utils/bem';\nimport {\n generateThemeClassNames,\n ThemeContext,\n useTheme,\n} from '../../Theme/Theme';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { SliderPointProps, TrackPosition } from '../helper';\n\nconst cnSliderPoint = cn('SliderPoint');\n\nconst getTooltipPosition = (\n popoverPosition?: TrackPosition,\n buttonRef?: React.RefObject<HTMLButtonElement>,\n) => {\n if (popoverPosition && buttonRef && buttonRef.current) {\n const { y, height } = buttonRef.current.getBoundingClientRect();\n return {\n x: Math.round(popoverPosition.x),\n y: Math.round(y + height / 2),\n };\n }\n\n return { x: 0, y: 0 };\n};\n\nconst defaultPossibleDirections: Direction[] = [\n 'leftCenter',\n 'rightCenter',\n 'downCenter',\n 'leftDown',\n 'rightDown',\n 'upCenter',\n];\n\nexport const SliderPoint = (props: SliderPointProps) => {\n const {\n hovered,\n onHover,\n value,\n position,\n disabled,\n withTooltip,\n focused,\n popoverPosition,\n buttonRef,\n active,\n handlePress,\n onKeyPress,\n tooltipFormatter,\n buttonLabel,\n onFocus,\n tooltipDirection = 'downCenter',\n tooltipPossibleDirections = defaultPossibleDirections,\n tooltipZIndex,\n ...otherProps\n } = props;\n\n const [tooltipVisible, setTooltipVisible] = useFlag(false);\n\n const { theme } = useTheme();\n\n const tooltipTheme = {\n ...theme,\n color: {\n primary: theme.color.invert,\n accent: theme.color.accent,\n invert: theme.color.primary,\n },\n };\n\n const tooltipThemeClassNames = generateThemeClassNames(tooltipTheme);\n\n const handleFocus = (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n ) => {\n if (!disabled) {\n onFocus?.(e, buttonLabel);\n setTooltipVisible.on();\n }\n };\n\n const handleMouseAction = (enter: boolean) => {\n if (!disabled) {\n onHover?.(enter);\n enter && setTooltipVisible.on();\n if (enter) setTooltipVisible.on();\n if (!enter && !focused) setTooltipVisible.off();\n }\n };\n\n const handleBlur = (\n e:\n | React.FocusEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLButtonElement>,\n ) => {\n if (!disabled) {\n onFocus?.(e, null);\n setTooltipVisible.off();\n }\n };\n\n const pointRef = useRef<HTMLButtonElement>(null);\n\n const tooltipPosition = getTooltipPosition(\n popoverPosition,\n buttonRef || pointRef,\n );\n\n useEffect(() => {\n focused ? setTooltipVisible.on() : setTooltipVisible.off();\n }, [focused]);\n\n return (\n <>\n <button\n type=\"button\"\n aria-label={`${buttonLabel}-button`}\n className={cnSliderPoint({ hovered, disabled, active }, [\n !disabled ? cnMixFocus() : '',\n ])}\n onMouseOver={() => handleMouseAction(true)}\n onMouseOut={() => handleMouseAction(false)}\n onMouseDown={() => handlePress?.(buttonLabel)}\n onTouchStart={() => handlePress?.(buttonLabel)}\n onKeyDown={(e) => onKeyPress?.(e, buttonLabel)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClick={handleFocus}\n ref={useForkRef([buttonRef, pointRef])}\n tabIndex={0}\n style={{\n ['--slider-button-left' as string]: `${position}%`,\n }}\n {...otherProps}\n />\n {tooltipVisible && withTooltip && popoverPosition && (\n <ThemeContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n theme: tooltipTheme,\n themeClassNames: tooltipThemeClassNames,\n }}\n >\n <Tooltip\n position={tooltipPosition}\n className={cnSliderPoint('Tooltip')}\n direction={tooltipDirection}\n possibleDirections={tooltipPossibleDirections}\n style={{ zIndex: tooltipZIndex }}\n offset={10}\n >\n {tooltipFormatter ? tooltipFormatter(value) : value}\n </Tooltip>\n </ThemeContext.Provider>\n )}\n </>\n );\n};\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { IconComponent } from '@consta/icons/Icon';
2
2
  import React from 'react';
3
3
  import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
4
+ import { Direction } from '../Popover';
4
5
  import { ActiveButton } from './useSlider/helper';
5
6
  export declare const propStatus: readonly ["alert", "warning", "success"];
6
7
  export declare type PropStatus = typeof propStatus[number];
@@ -36,6 +37,8 @@ declare type Props<RANGE extends boolean = false> = {
36
37
  leftSide?: Side;
37
38
  tooltipFormatter?: PropToolipFormatter;
38
39
  rightSide?: Side;
40
+ tooltipDirection?: Direction;
41
+ tooltipPossibleDirections?: Direction[];
39
42
  };
40
43
  export declare type Line = {
41
44
  width: number;
@@ -66,6 +69,8 @@ export declare type SliderPointProps = PropsWithHTMLAttributes<{
66
69
  position: number;
67
70
  active?: boolean;
68
71
  tooltipZIndex?: number;
72
+ tooltipDirection?: Direction;
73
+ tooltipPossibleDirections?: Direction[];
69
74
  }, HTMLButtonElement>;
70
75
  export declare type SliderProps<RANGE extends boolean> = PropsWithHTMLAttributes<Props<RANGE>, HTMLDivElement>;
71
76
  export declare type SliderComponent = <RANGE extends boolean = false>(props: SliderProps<RANGE>) => React.ReactElement | null;
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","names":["propStatus","defaultPropStatus","propSize","defaultPropSize","isRangeParams","params","range","isNotRangeParams","defaultTooltipFormatter","value","toString","getValueForInput","props","field","getOnChandgeForInput","e","onChange","getIcon","side","getMaxForStartField","max","getMinForEndField","min","getValidStep","step","Array","isArray","Math","abs"],"sources":["../../../../../src/components/Slider/helper.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';\nimport { ActiveButton } from './useSlider/helper';\n\nexport const propStatus = ['alert', 'warning', 'success'] as const;\nexport type PropStatus = typeof propStatus[number];\nexport const defaultPropStatus = propStatus[0];\n\nexport type PropView = 'default' | 'division';\n\nexport const propSize = ['s', 'xs', 'm', 'l'] as const;\nexport type PropSize = typeof propSize[number];\nexport const defaultPropSize: PropSize = propSize[0];\n\nexport type SliderValue<RANGE> = RANGE extends true ? [number, number] : number;\n\nexport type PropOnChange<RANGE> = (prop: {\n e?:\n | Event\n | React.TouchEvent\n | React.MouseEvent\n | React.KeyboardEvent\n | React.ChangeEvent;\n value: SliderValue<RANGE>;\n}) => void;\n\ntype PropToolipFormatter = (value: number | undefined) => string;\n\ntype Side = IconComponent | 'input';\n\ntype Props<RANGE extends boolean = false> = {\n className?: string;\n step?: number | number[];\n view?: PropView;\n disabled?: boolean;\n range?: RANGE;\n withTooltip?: boolean;\n value: SliderValue<RANGE>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n status?: PropStatus;\n min?: number;\n size?: PropSize;\n max?: number;\n onChange?: PropOnChange<RANGE>;\n onAfterChange?: PropOnChange<RANGE>;\n leftSide?: Side;\n tooltipFormatter?: PropToolipFormatter;\n rightSide?: Side;\n};\n\nexport type Line = {\n width: number;\n active: boolean;\n size?: number[];\n};\n\nexport type SliderLineProps = {\n view?: PropView;\n lines: Line[];\n disabled?: boolean;\n hovered?: boolean;\n onHover?: (hovered: boolean) => void;\n};\n\nexport type SliderPointProps = PropsWithHTMLAttributes<\n {\n value?: number;\n disabled?: boolean;\n focused?: boolean;\n hovered?: boolean;\n withTooltip?: boolean;\n handlePress?: (typeButton: ActiveButton) => void;\n buttonLabel?: ActiveButton;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n popoverPosition?: TrackPosition;\n tooltipFormatter?: PropToolipFormatter;\n onFocus?: (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n button: ActiveButton,\n ) => void;\n onKeyPress?: (e: React.KeyboardEvent, typeButton?: ActiveButton) => void;\n onHover?: (hovered: boolean) => void;\n position: number;\n active?: boolean;\n tooltipZIndex?: number;\n },\n HTMLButtonElement\n>;\n\nexport type SliderProps<RANGE extends boolean> = PropsWithHTMLAttributes<\n Props<RANGE>,\n HTMLDivElement\n>;\n\nexport type SliderComponent = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n) => React.ReactElement | null;\n\nexport const isRangeParams = (\n params: Props<boolean>,\n): params is Props<true> => {\n return !!params.range;\n};\n\nexport const isNotRangeParams = (\n params: Props<boolean>,\n): params is Props<false> => {\n return !params.range;\n};\n\nexport const defaultTooltipFormatter: PropToolipFormatter = (value) =>\n value?.toString() || '';\n\nexport type TrackPosition = {\n x: number;\n y: number;\n} | null;\n\nexport const getValueForInput = (\n props: SliderProps<boolean>,\n field: 0 | 1,\n): number => {\n if (isRangeParams(props)) {\n return props.value[field];\n }\n return props.value as number;\n};\n\ntype GetOnChandgeForInputReturned = (props: {\n e?: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;\n value: number;\n}) => void;\n\nexport const getOnChandgeForInput =\n (props: SliderProps<boolean>, field: 0 | 1): GetOnChandgeForInputReturned =>\n ({ e, value }) => {\n if (!props.onChange) {\n return;\n }\n if (isNotRangeParams(props)) {\n props.onChange({ e, value });\n }\n if (isRangeParams(props)) {\n props.onChange({\n e,\n value: field ? [props.value[0], value] : [value, props.value[1]],\n });\n }\n };\n\nexport const getIcon = (side?: Side) => {\n if (side !== 'input') {\n return side;\n }\n};\n\nexport const getMaxForStartField = (props: SliderProps<boolean>) => {\n if (isNotRangeParams(props)) {\n return props.max;\n }\n if (isRangeParams(props)) {\n return props.value[1];\n }\n};\n\nexport const getMinForEndField = (props: SliderProps<boolean>) => {\n if (isNotRangeParams(props)) {\n return props.min;\n }\n if (isRangeParams(props)) {\n return props.value[0];\n }\n};\n\nexport const getValidStep = (\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (step) {\n if (Array.isArray(step)) {\n return step;\n }\n if (step <= 0) {\n return 1;\n }\n return step;\n }\n return Math.abs((max - min) / 100);\n};\n"],"mappings":"AAMA,MAAO,IAAMA,WAAU,CAAG,CAAC,OAAD,CAAU,SAAV,CAAqB,SAArB,CAAnB,CAEP,MAAO,IAAMC,kBAAiB,CAAGD,UAAU,CAAC,CAAD,CAApC,CAIP,MAAO,IAAME,SAAQ,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAAjB,CAEP,MAAO,IAAMC,gBAAyB,CAAGD,QAAQ,CAAC,CAAD,CAA1C,CAwFP,MAAO,IAAME,cAAa,CAAG,SAC3BC,CAD2B,CAED,CAC1B,MAAO,CAAC,CAACA,CAAM,CAACC,KACjB,CAJM,CAMP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BF,CAD8B,CAEH,CAC3B,MAAO,CAACA,CAAM,CAACC,KAChB,CAJM,CAMP,MAAO,IAAME,wBAA4C,CAAG,SAACC,CAAD,QAC1D,QAAAA,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEC,QAAP,KAAqB,EADqC,CAArD,CAQP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BC,CAD8B,CAE9BC,CAF8B,CAGnB,OACPT,cAAa,CAACQ,CAAD,CADN,CAEFA,CAAK,CAACH,KAAN,CAAYI,CAAZ,CAFE,CAIJD,CAAK,CAACH,KACd,CARM,CAeP,MAAO,IAAMK,qBAAoB,CAC/B,SAACF,CAAD,CAA8BC,CAA9B,QACA,YAAkB,IAAfE,EAAe,GAAfA,CAAe,CAAZN,CAAY,GAAZA,KAAY,CACXG,CAAK,CAACI,QADK,GAIZT,gBAAgB,CAACK,CAAD,CAJJ,EAKdA,CAAK,CAACI,QAAN,CAAe,CAAED,CAAC,CAADA,CAAF,CAAKN,KAAK,CAALA,CAAL,CAAf,CALc,CAOZL,aAAa,CAACQ,CAAD,CAPD,EAQdA,CAAK,CAACI,QAAN,CAAe,CACbD,CAAC,CAADA,CADa,CAEbN,KAAK,CAAEI,CAAK,CAAG,CAACD,CAAK,CAACH,KAAN,CAAY,CAAZ,CAAD,CAAiBA,CAAjB,CAAH,CAA6B,CAACA,CAAD,CAAQG,CAAK,CAACH,KAAN,CAAY,CAAZ,CAAR,CAF5B,CAAf,CARc,CAajB,CAdD,CADK,CAiBP,MAAO,IAAMQ,QAAO,CAAG,SAACC,CAAD,CAAiB,CACtC,GAAa,OAAT,GAAAA,CAAJ,CACE,MAAOA,EAEV,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SAACP,CAAD,CAAiC,OAC9DL,iBAAgB,CAACK,CAAD,CAD8C,CAEzDA,CAAK,CAACQ,GAFmD,CAI9DhB,aAAa,CAACQ,CAAD,CAJiD,CAKzDA,CAAK,CAACH,KAAN,CAAY,CAAZ,CALyD,OAOnE,CAPM,CASP,MAAO,IAAMY,kBAAiB,CAAG,SAACT,CAAD,CAAiC,OAC5DL,iBAAgB,CAACK,CAAD,CAD4C,CAEvDA,CAAK,CAACU,GAFiD,CAI5DlB,aAAa,CAACQ,CAAD,CAJ+C,CAKvDA,CAAK,CAACH,KAAN,CAAY,CAAZ,CALuD,OAOjE,CAPM,CASP,MAAO,IAAMc,aAAY,CAAG,SAC1BD,CAD0B,CAE1BF,CAF0B,CAG1BI,CAH0B,CAIvB,OACCA,EADD,CAEGC,KAAK,CAACC,OAAN,CAAcF,CAAd,CAFH,CAGQA,CAHR,CAKW,CAAR,EAAAA,CALH,CAMQ,CANR,CAQMA,CARN,CAUIG,IAAI,CAACC,GAAL,CAAS,CAACR,CAAG,CAAGE,CAAP,EAAc,GAAvB,CACR,CAfM"}
1
+ {"version":3,"file":"helper.js","names":["propStatus","defaultPropStatus","propSize","defaultPropSize","isRangeParams","params","range","isNotRangeParams","defaultTooltipFormatter","value","toString","getValueForInput","props","field","getOnChandgeForInput","e","onChange","getIcon","side","getMaxForStartField","max","getMinForEndField","min","getValidStep","step","Array","isArray","Math","abs"],"sources":["../../../../../src/components/Slider/helper.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';\nimport { Direction } from '../Popover';\nimport { ActiveButton } from './useSlider/helper';\n\nexport const propStatus = ['alert', 'warning', 'success'] as const;\nexport type PropStatus = typeof propStatus[number];\nexport const defaultPropStatus = propStatus[0];\n\nexport type PropView = 'default' | 'division';\n\nexport const propSize = ['s', 'xs', 'm', 'l'] as const;\nexport type PropSize = typeof propSize[number];\nexport const defaultPropSize: PropSize = propSize[0];\n\nexport type SliderValue<RANGE> = RANGE extends true ? [number, number] : number;\n\nexport type PropOnChange<RANGE> = (prop: {\n e?:\n | Event\n | React.TouchEvent\n | React.MouseEvent\n | React.KeyboardEvent\n | React.ChangeEvent;\n value: SliderValue<RANGE>;\n}) => void;\n\ntype PropToolipFormatter = (value: number | undefined) => string;\n\ntype Side = IconComponent | 'input';\n\ntype Props<RANGE extends boolean = false> = {\n className?: string;\n step?: number | number[];\n view?: PropView;\n disabled?: boolean;\n range?: RANGE;\n withTooltip?: boolean;\n value: SliderValue<RANGE>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n status?: PropStatus;\n min?: number;\n size?: PropSize;\n max?: number;\n onChange?: PropOnChange<RANGE>;\n onAfterChange?: PropOnChange<RANGE>;\n leftSide?: Side;\n tooltipFormatter?: PropToolipFormatter;\n rightSide?: Side;\n tooltipDirection?: Direction;\n tooltipPossibleDirections?: Direction[];\n};\n\nexport type Line = {\n width: number;\n active: boolean;\n size?: number[];\n};\n\nexport type SliderLineProps = {\n view?: PropView;\n lines: Line[];\n disabled?: boolean;\n hovered?: boolean;\n onHover?: (hovered: boolean) => void;\n};\n\nexport type SliderPointProps = PropsWithHTMLAttributes<\n {\n value?: number;\n disabled?: boolean;\n focused?: boolean;\n hovered?: boolean;\n withTooltip?: boolean;\n handlePress?: (typeButton: ActiveButton) => void;\n buttonLabel?: ActiveButton;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n popoverPosition?: TrackPosition;\n tooltipFormatter?: PropToolipFormatter;\n onFocus?: (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n button: ActiveButton,\n ) => void;\n onKeyPress?: (e: React.KeyboardEvent, typeButton?: ActiveButton) => void;\n onHover?: (hovered: boolean) => void;\n position: number;\n active?: boolean;\n tooltipZIndex?: number;\n tooltipDirection?: Direction;\n tooltipPossibleDirections?: Direction[];\n },\n HTMLButtonElement\n>;\n\nexport type SliderProps<RANGE extends boolean> = PropsWithHTMLAttributes<\n Props<RANGE>,\n HTMLDivElement\n>;\n\nexport type SliderComponent = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n) => React.ReactElement | null;\n\nexport const isRangeParams = (\n params: Props<boolean>,\n): params is Props<true> => {\n return !!params.range;\n};\n\nexport const isNotRangeParams = (\n params: Props<boolean>,\n): params is Props<false> => {\n return !params.range;\n};\n\nexport const defaultTooltipFormatter: PropToolipFormatter = (value) =>\n value?.toString() || '';\n\nexport type TrackPosition = {\n x: number;\n y: number;\n} | null;\n\nexport const getValueForInput = (\n props: SliderProps<boolean>,\n field: 0 | 1,\n): number => {\n if (isRangeParams(props)) {\n return props.value[field];\n }\n return props.value as number;\n};\n\ntype GetOnChandgeForInputReturned = (props: {\n e?: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;\n value: number;\n}) => void;\n\nexport const getOnChandgeForInput =\n (props: SliderProps<boolean>, field: 0 | 1): GetOnChandgeForInputReturned =>\n ({ e, value }) => {\n if (!props.onChange) {\n return;\n }\n if (isNotRangeParams(props)) {\n props.onChange({ e, value });\n }\n if (isRangeParams(props)) {\n props.onChange({\n e,\n value: field ? [props.value[0], value] : [value, props.value[1]],\n });\n }\n };\n\nexport const getIcon = (side?: Side) => {\n if (side !== 'input') {\n return side;\n }\n};\n\nexport const getMaxForStartField = (props: SliderProps<boolean>) => {\n if (isNotRangeParams(props)) {\n return props.max;\n }\n if (isRangeParams(props)) {\n return props.value[1];\n }\n};\n\nexport const getMinForEndField = (props: SliderProps<boolean>) => {\n if (isNotRangeParams(props)) {\n return props.min;\n }\n if (isRangeParams(props)) {\n return props.value[0];\n }\n};\n\nexport const getValidStep = (\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (step) {\n if (Array.isArray(step)) {\n return step;\n }\n if (step <= 0) {\n return 1;\n }\n return step;\n }\n return Math.abs((max - min) / 100);\n};\n"],"mappings":"AAOA,MAAO,IAAMA,WAAU,CAAG,CAAC,OAAD,CAAU,SAAV,CAAqB,SAArB,CAAnB,CAEP,MAAO,IAAMC,kBAAiB,CAAGD,UAAU,CAAC,CAAD,CAApC,CAIP,MAAO,IAAME,SAAQ,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAAjB,CAEP,MAAO,IAAMC,gBAAyB,CAAGD,QAAQ,CAAC,CAAD,CAA1C,CA4FP,MAAO,IAAME,cAAa,CAAG,SAC3BC,CAD2B,CAED,CAC1B,MAAO,CAAC,CAACA,CAAM,CAACC,KACjB,CAJM,CAMP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BF,CAD8B,CAEH,CAC3B,MAAO,CAACA,CAAM,CAACC,KAChB,CAJM,CAMP,MAAO,IAAME,wBAA4C,CAAG,SAACC,CAAD,QAC1D,QAAAA,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEC,QAAP,KAAqB,EADqC,CAArD,CAQP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BC,CAD8B,CAE9BC,CAF8B,CAGnB,OACPT,cAAa,CAACQ,CAAD,CADN,CAEFA,CAAK,CAACH,KAAN,CAAYI,CAAZ,CAFE,CAIJD,CAAK,CAACH,KACd,CARM,CAeP,MAAO,IAAMK,qBAAoB,CAC/B,SAACF,CAAD,CAA8BC,CAA9B,QACA,YAAkB,IAAfE,EAAe,GAAfA,CAAe,CAAZN,CAAY,GAAZA,KAAY,CACXG,CAAK,CAACI,QADK,GAIZT,gBAAgB,CAACK,CAAD,CAJJ,EAKdA,CAAK,CAACI,QAAN,CAAe,CAAED,CAAC,CAADA,CAAF,CAAKN,KAAK,CAALA,CAAL,CAAf,CALc,CAOZL,aAAa,CAACQ,CAAD,CAPD,EAQdA,CAAK,CAACI,QAAN,CAAe,CACbD,CAAC,CAADA,CADa,CAEbN,KAAK,CAAEI,CAAK,CAAG,CAACD,CAAK,CAACH,KAAN,CAAY,CAAZ,CAAD,CAAiBA,CAAjB,CAAH,CAA6B,CAACA,CAAD,CAAQG,CAAK,CAACH,KAAN,CAAY,CAAZ,CAAR,CAF5B,CAAf,CARc,CAajB,CAdD,CADK,CAiBP,MAAO,IAAMQ,QAAO,CAAG,SAACC,CAAD,CAAiB,CACtC,GAAa,OAAT,GAAAA,CAAJ,CACE,MAAOA,EAEV,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SAACP,CAAD,CAAiC,OAC9DL,iBAAgB,CAACK,CAAD,CAD8C,CAEzDA,CAAK,CAACQ,GAFmD,CAI9DhB,aAAa,CAACQ,CAAD,CAJiD,CAKzDA,CAAK,CAACH,KAAN,CAAY,CAAZ,CALyD,OAOnE,CAPM,CASP,MAAO,IAAMY,kBAAiB,CAAG,SAACT,CAAD,CAAiC,OAC5DL,iBAAgB,CAACK,CAAD,CAD4C,CAEvDA,CAAK,CAACU,GAFiD,CAI5DlB,aAAa,CAACQ,CAAD,CAJ+C,CAKvDA,CAAK,CAACH,KAAN,CAAY,CAAZ,CALuD,OAOjE,CAPM,CASP,MAAO,IAAMc,aAAY,CAAG,SAC1BD,CAD0B,CAE1BF,CAF0B,CAG1BI,CAH0B,CAIvB,OACCA,EADD,CAEGC,KAAK,CAACC,OAAN,CAAcF,CAAd,CAFH,CAGQA,CAHR,CAKW,CAAR,EAAAA,CALH,CAMQ,CANR,CAQMA,CARN,CAUIG,IAAI,CAACC,GAAL,CAAS,CAACR,CAAG,CAAGE,CAAP,EAAc,GAAvB,CACR,CAfM"}