@consta/uikit 5.0.3 → 5.2.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 (188) hide show
  1. package/__internal__/src/components/BookmarkTabs/BookmarkTabs.js +1 -1
  2. package/__internal__/src/components/BookmarkTabs/BookmarkTabs.js.map +1 -1
  3. package/__internal__/src/components/Chips/Chips.js +1 -1
  4. package/__internal__/src/components/Chips/Chips.js.map +1 -1
  5. package/__internal__/src/components/Chips/ChipsChoice/ChipsChoice.js +1 -1
  6. package/__internal__/src/components/Chips/ChipsChoice/ChipsChoice.js.map +1 -1
  7. package/__internal__/src/components/Chips/ChipsChoice/types.d.ts +1 -0
  8. package/__internal__/src/components/Chips/ChipsChoice/types.js.map +1 -1
  9. package/__internal__/src/components/Chips/ChipsItem/ChipsItem.css +2 -2
  10. package/__internal__/src/components/Chips/ChipsItem/ChipsItem.js +1 -1
  11. package/__internal__/src/components/Chips/ChipsItem/ChipsItem.js.map +1 -1
  12. package/__internal__/src/components/Chips/helpers.d.ts +6 -2
  13. package/__internal__/src/components/Chips/helpers.js +1 -1
  14. package/__internal__/src/components/Chips/helpers.js.map +1 -1
  15. package/__internal__/src/components/Chips/types.d.ts +4 -0
  16. package/__internal__/src/components/Chips/types.js.map +1 -1
  17. package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js +1 -1
  18. package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js.map +1 -1
  19. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js +1 -1
  20. package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js.map +1 -1
  21. package/__internal__/src/components/DatePicker/DatePicker.js.map +1 -1
  22. package/__internal__/src/components/DatePicker/DatePickerAdditionalControls/DatePickerAdditionalControls.d.ts +1 -1
  23. package/__internal__/src/components/DatePicker/DatePickerAdditionalControls/DatePickerAdditionalControls.js.map +1 -1
  24. package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +3 -3
  25. package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js +1 -1
  26. package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js.map +1 -1
  27. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +1 -1
  28. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js.map +1 -1
  29. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.d.ts +1 -1
  30. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js +1 -1
  31. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js.map +1 -1
  32. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +1 -1
  33. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js.map +1 -1
  34. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +1 -1
  35. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js.map +1 -1
  36. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.d.ts +1 -1
  37. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js +1 -1
  38. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js.map +1 -1
  39. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +1 -1
  40. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js.map +1 -1
  41. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +1 -1
  42. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js.map +1 -1
  43. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.d.ts +1 -1
  44. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js +1 -1
  45. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js.map +1 -1
  46. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js +1 -1
  47. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js.map +1 -1
  48. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +1 -1
  49. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js.map +1 -1
  50. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.d.ts +1 -1
  51. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js +1 -1
  52. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js.map +1 -1
  53. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +1 -1
  54. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js.map +1 -1
  55. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.d.ts +1 -1
  56. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js +1 -1
  57. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js.map +1 -1
  58. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js +1 -1
  59. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js.map +1 -1
  60. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
  61. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
  62. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
  63. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
  64. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
  65. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
  66. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
  67. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
  68. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
  69. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
  70. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
  71. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
  72. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
  73. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
  74. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
  75. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
  76. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
  77. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
  78. package/__internal__/src/components/DatePicker/helpers.d.ts +7 -0
  79. package/__internal__/src/components/DatePicker/helpers.js +1 -1
  80. package/__internal__/src/components/DatePicker/helpers.js.map +1 -1
  81. package/__internal__/src/components/DatePicker/useCalendarVisible.d.ts +3 -2
  82. package/__internal__/src/components/DatePicker/useCalendarVisible.js +1 -1
  83. package/__internal__/src/components/DatePicker/useCalendarVisible.js.map +1 -1
  84. package/__internal__/src/components/DateTime/DateTimeItem/DateTimeItem.css +1 -1
  85. package/__internal__/src/components/DateTime/DateTimeItem/DateTimeItem.js +1 -1
  86. package/__internal__/src/components/DateTime/DateTimeItem/DateTimeItem.js.map +1 -1
  87. package/__internal__/src/components/FieldLabel/FieldLabel.js +1 -1
  88. package/__internal__/src/components/FieldLabel/FieldLabel.js.map +1 -1
  89. package/__internal__/src/components/Pagination/Pagination.css +1 -1
  90. package/__internal__/src/components/Pagination/Pagination.js +1 -1
  91. package/__internal__/src/components/Pagination/Pagination.js.map +1 -1
  92. package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.css +1 -1
  93. package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.d.ts +1 -0
  94. package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.js +1 -1
  95. package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.js.map +1 -1
  96. package/__internal__/src/components/Pagination/PaginationList/PaginationList.css +1 -1
  97. package/__internal__/src/components/Pagination/PaginationList/PaginationList.js +1 -1
  98. package/__internal__/src/components/Pagination/PaginationList/PaginationList.js.map +1 -1
  99. package/__internal__/src/components/Pagination/PaginationNumberInput/PaginationNumberInput.js +1 -1
  100. package/__internal__/src/components/Pagination/PaginationNumberInput/PaginationNumberInput.js.map +1 -1
  101. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.css +1 -0
  102. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.d.ts +7 -0
  103. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.js +2 -0
  104. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.js.map +1 -0
  105. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/index.d.ts +1 -0
  106. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/index.js +2 -0
  107. package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/index.js.map +1 -0
  108. package/__internal__/src/components/Pagination/helpers.d.ts +11 -555
  109. package/__internal__/src/components/Pagination/helpers.js +1 -1
  110. package/__internal__/src/components/Pagination/helpers.js.map +1 -1
  111. package/__internal__/src/components/Pagination/index.d.ts +0 -1
  112. package/__internal__/src/components/Pagination/index.js +1 -1
  113. package/__internal__/src/components/Pagination/index.js.map +1 -1
  114. package/__internal__/src/components/Pagination/types.d.ts +17 -37
  115. package/__internal__/src/components/Pagination/types.js.map +1 -1
  116. package/__internal__/src/components/Pagination/usePaginationItems.d.ts +7 -6
  117. package/__internal__/src/components/Pagination/usePaginationItems.js +1 -1
  118. package/__internal__/src/components/Pagination/usePaginationItems.js.map +1 -1
  119. package/__internal__/src/components/Pagination/usePaginationKeys.d.ts +2 -2
  120. package/__internal__/src/components/Pagination/usePaginationKeys.js +1 -1
  121. package/__internal__/src/components/Pagination/usePaginationKeys.js.map +1 -1
  122. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js +1 -1
  123. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js.map +1 -1
  124. package/__internal__/src/components/Slider/useSlider/helper.d.ts +1 -0
  125. package/__internal__/src/components/Slider/useSlider/helper.js +1 -1
  126. package/__internal__/src/components/Slider/useSlider/helper.js.map +1 -1
  127. package/__internal__/src/components/Slider/useSlider/useSlider.js +1 -1
  128. package/__internal__/src/components/Slider/useSlider/useSlider.js.map +1 -1
  129. package/__internal__/src/components/Spoiler/Spoiler.js +1 -1
  130. package/__internal__/src/components/Spoiler/Spoiler.js.map +1 -1
  131. package/__internal__/src/components/Spoiler/types.d.ts +2 -0
  132. package/__internal__/src/components/Spoiler/types.js.map +1 -1
  133. package/__internal__/src/components/Switch/Switch.css +1 -1
  134. package/__internal__/src/components/Tabs/Tabs.js +1 -1
  135. package/__internal__/src/components/Tabs/Tabs.js.map +1 -1
  136. package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/TabsFitModeScrollWrapper.d.ts +1 -1
  137. package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/TabsFitModeScrollWrapper.js +1 -1
  138. package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/TabsFitModeScrollWrapper.js.map +1 -1
  139. package/__internal__/src/components/Tabs/helpers.d.ts +283 -1
  140. package/__internal__/src/components/Tabs/types.d.ts +9 -2
  141. package/__internal__/src/components/Tabs/types.js.map +1 -1
  142. package/__internal__/src/components/TextField/TextField.css +1 -1
  143. package/__internal__/src/components/TextField/TextField.js +1 -1
  144. package/__internal__/src/components/TextField/TextField.js.map +1 -1
  145. package/__internal__/src/components/TextField/types.d.ts +1 -0
  146. package/__internal__/src/components/TextField/types.js.map +1 -1
  147. package/__internal__/src/fileIcons/FileIconAvi/FileIconAvi.js.map +1 -1
  148. package/__internal__/src/fileIcons/FileIconBmp/FileIconBmp.js.map +1 -1
  149. package/__internal__/src/fileIcons/FileIconCsv/FileIconCsv.js.map +1 -1
  150. package/__internal__/src/fileIcons/FileIconDoc/FileIconDoc.js.map +1 -1
  151. package/__internal__/src/fileIcons/FileIconExe/FileIconExe.js.map +1 -1
  152. package/__internal__/src/fileIcons/FileIconGif/FileIconGif.js.map +1 -1
  153. package/__internal__/src/fileIcons/FileIconJpg/FileIconJpg.js.map +1 -1
  154. package/__internal__/src/fileIcons/FileIconJson/FileIconJson.js.map +1 -1
  155. package/__internal__/src/fileIcons/FileIconLoading/FileIconLoading.js.map +1 -1
  156. package/__internal__/src/fileIcons/FileIconMov/FileIconMov.js.map +1 -1
  157. package/__internal__/src/fileIcons/FileIconMp3/FileIconMp3.js.map +1 -1
  158. package/__internal__/src/fileIcons/FileIconMp4/FileIconMp4.js.map +1 -1
  159. package/__internal__/src/fileIcons/FileIconPdf/FileIconPdf.js.map +1 -1
  160. package/__internal__/src/fileIcons/FileIconPng/FileIconPng.js.map +1 -1
  161. package/__internal__/src/fileIcons/FileIconRar/FileIconRar.js.map +1 -1
  162. package/__internal__/src/fileIcons/FileIconRtf/FileIconRtf.js.map +1 -1
  163. package/__internal__/src/fileIcons/FileIconTiff/FileIconTiff.js.map +1 -1
  164. package/__internal__/src/fileIcons/FileIconTxt/FileIconTxt.js.map +1 -1
  165. package/__internal__/src/fileIcons/FileIconUndefined/FileIconUndefined.js.map +1 -1
  166. package/__internal__/src/fileIcons/FileIconWav/FileIconWav.js.map +1 -1
  167. package/__internal__/src/fileIcons/FileIconXls/FileIconXls.js.map +1 -1
  168. package/__internal__/src/fileIcons/FileIconZip/FileIconZip.js.map +1 -1
  169. package/__internal__/src/hooks/useFlag/useFlag.d.ts +1 -2
  170. package/__internal__/src/hooks/useFlag/useFlag.js.map +1 -1
  171. package/__internal__/src/responsesImages/ResponsesImage403/ResponsesImage403.js.map +1 -1
  172. package/__internal__/src/responsesImages/ResponsesImage404/ResponsesImage404.js.map +1 -1
  173. package/__internal__/src/responsesImages/ResponsesImage500/ResponsesImage500.js.map +1 -1
  174. package/__internal__/src/responsesImages/ResponsesImage503/ResponsesImage503.js.map +1 -1
  175. package/__internal__/src/responsesImages/ResponsesImageConnectionError/ResponsesImageConnectionError.js.map +1 -1
  176. package/__internal__/src/responsesImages/ResponsesImageDeleted/ResponsesImageDeleted.js.map +1 -1
  177. package/__internal__/src/responsesImages/ResponsesImageEmptyBox/ResponsesImageEmptyBox.js.map +1 -1
  178. package/__internal__/src/responsesImages/ResponsesImageEmptyPockets/ResponsesImageEmptyPockets.js.map +1 -1
  179. package/__internal__/src/responsesImages/ResponsesImageNothingFound/ResponsesImageNothingFound.js.map +1 -1
  180. package/__internal__/src/responsesImages/ResponsesImageSuccess/ResponsesImageSuccess.js.map +1 -1
  181. package/package.json +1 -1
  182. package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.css +0 -1
  183. package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.d.ts +0 -3
  184. package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.js +0 -2
  185. package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.js.map +0 -1
  186. package/__internal__/src/components/Pagination/PaginationBase/index.d.ts +0 -1
  187. package/__internal__/src/components/Pagination/PaginationBase/index.js +0 -2
  188. package/__internal__/src/components/Pagination/PaginationBase/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["IconArrowFirst","IconArrowLast","IconArrowLeft","IconArrowRight","defaultGetItemLabel","item","label","defaultGetItemKey","key","defaultGetItemClickable","clickable","defaultGetItemAs","as","defaultGetItemAttributes","attributes","defaultGetItemRef","ref","defaultGetItemOnClick","onClick","withDefaultGetters","props","getItemLabel","getItemKey","getItemClickable","getItemOnClick","getItemAs","getItemAttributes","getItemRef","getMinVisibleCount","showFirstPage","showLastPage","range","start","end","Array","from","length","Math","abs","map","_el","i","floor","generateArr","params","count","page","visibleCountProp","visibleCount","minVisibleCount","min","max","boundaryStart","boundaryEnd","res","siblingsStart","siblingsEnd","push","getPagesArray","totalPages","currentPage","rest","el","toString","active","paginationArrowIconsMap","first","previous","next","last","getListValue"],"sources":["../../../../../src/components/Pagination/helpers.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport { IconArrowFirst } from '@consta/icons/IconArrowFirst';\nimport { IconArrowLast } from '@consta/icons/IconArrowLast';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\n\nimport {\n PaginationArrowTypes,\n PaginationBaseItemDefault,\n PaginationBaseProps,\n PaginationItem,\n PaginationPropGetItemAs,\n PaginationPropGetItemAttributes,\n PaginationPropGetItemClickable,\n PaginationPropGetItemKey,\n PaginationPropGetItemLabel,\n PaginationPropGetItemOnClick,\n PaginationPropGetItemRef,\n} from './types';\n\nexport const defaultGetItemLabel: PaginationPropGetItemLabel<\n PaginationBaseItemDefault\n> = (item) => item.label;\nexport const defaultGetItemKey: PaginationPropGetItemKey<\n PaginationBaseItemDefault\n> = (item) => item.key;\nexport const defaultGetItemClickable: PaginationPropGetItemClickable<\n PaginationBaseItemDefault\n> = (item) => item.clickable;\nconst defaultGetItemAs: PaginationPropGetItemAs<PaginationBaseItemDefault> = (\n item,\n) => item.as;\nconst defaultGetItemAttributes: PaginationPropGetItemAttributes<\n PaginationBaseItemDefault\n> = (item) => item.attributes;\nconst defaultGetItemRef: PaginationPropGetItemRef<PaginationBaseItemDefault> = (\n item,\n) => item.ref;\nconst defaultGetItemOnClick: PaginationPropGetItemOnClick<\n PaginationBaseItemDefault\n> = (item) => item.onClick;\n\nexport const withDefaultGetters = (props: PaginationBaseProps) => ({\n ...props,\n getItemLabel: props.getItemLabel ?? defaultGetItemLabel,\n getItemKey: props.getItemKey ?? defaultGetItemKey,\n getItemClickable: props.getItemClickable ?? defaultGetItemClickable,\n getItemOnClick: props.getItemOnClick ?? defaultGetItemOnClick,\n getItemAs: props.getItemAs ?? defaultGetItemAs,\n getItemAttributes: props.getItemAttributes ?? defaultGetItemAttributes,\n getItemRef: props.getItemRef ?? defaultGetItemRef,\n});\n\nconst getMinVisibleCount = (showFirstPage: boolean, showLastPage: boolean) => {\n if (showFirstPage || showLastPage) {\n return 5;\n }\n if (showFirstPage && showLastPage) {\n return 7;\n }\n\n return 3;\n};\n\nconst range = (start: number, end: number) =>\n Array.from({ length: Math.abs(end - start + 1) }).map((_el, i) =>\n Math.floor(start + i),\n );\n\nconst generateArr = (params: {\n page: number;\n count: number;\n visibleCount: number;\n showFirstPage?: boolean;\n showLastPage?: boolean;\n}) => {\n const {\n count,\n page,\n showFirstPage = false,\n showLastPage = false,\n visibleCount: visibleCountProp,\n } = params;\n\n let visibleCount = visibleCountProp;\n\n const minVisibleCount = getMinVisibleCount(showFirstPage, showLastPage);\n\n if (minVisibleCount >= count) {\n visibleCount = count;\n } else {\n visibleCount = Math.min(count, Math.max(visibleCountProp, minVisibleCount));\n }\n\n const boundaryStart = showFirstPage ? 2 : 0;\n const boundaryEnd = showLastPage ? 2 : 0;\n\n const res = [];\n\n const siblingsStart =\n Math.floor((visibleCount - boundaryEnd - boundaryStart) / 2) || 0;\n const siblingsEnd =\n Math.floor((visibleCount - boundaryEnd - boundaryStart - 1) / 2) || 0;\n\n let start = 1;\n let end = count;\n\n if (visibleCount - boundaryEnd >= page + siblingsEnd) {\n end = visibleCount - (showLastPage ? 2 : 0);\n } else if (page - siblingsStart > count - visibleCount + boundaryStart) {\n start = count - visibleCount + (showFirstPage ? 3 : 1);\n } else {\n start = page - siblingsStart;\n end = page + siblingsEnd;\n }\n\n if (showFirstPage && start !== 1) {\n res.push(1, '...');\n }\n res.push(...range(Math.floor(start), Math.floor(end)));\n\n if (showLastPage && end !== count) {\n res.push('...', count);\n }\n\n return res;\n};\n\nexport const getPagesArray = (params: {\n currentPage: number;\n totalPages: number;\n visibleCount: number;\n showFirstPage?: boolean;\n showLastPage?: boolean;\n}): PaginationItem[] => {\n const { totalPages, currentPage, ...rest } = params;\n\n const count = Math.max(totalPages, 1);\n const page = Math.min(count, Math.max(1, currentPage));\n\n return generateArr({ page, count, ...rest }).map((el, i) => {\n return {\n key: typeof el === 'string' ? totalPages + i : el,\n label: el.toString(),\n page: typeof el === 'string' ? i : el,\n active: typeof el === 'number' ? el === page : false,\n clickable: typeof el !== 'number',\n };\n });\n};\n\nexport const paginationArrowIconsMap: Record<\n PaginationArrowTypes,\n IconComponent\n> = {\n first: IconArrowFirst,\n previous: IconArrowLeft,\n next: IconArrowRight,\n last: IconArrowLast,\n};\n\nexport const getListValue = (page: number): PaginationItem => ({\n key: page,\n page,\n label: page.toString(),\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["IconArrowFirst","IconArrowLast","IconArrowLeft","IconArrowRight","range","defaultGetItemLabel","item","label","defaultGetItemKey","key","defaultGetItemClickable","clickable","firstPageSeparator","lastPageSeparator","pageSeparatorLabel","guardCurrentPage","currentPage","totalPages","Math","floor","max","min","getPagesArrayByVisibleCount","visibleCountProp","showFirstPage","showLastPage","visibleCount","page","visibleSegmentStartToCenter","ceil","visibleSegmentEndToCenter","slideStart","map","i","el","toString","getPagesArrayByWidth","currentPageArg","gap","buttonPadding","buttonMinWidth","maxSymbolSize","totalWidth","w","direction","leftIndex","rightIndex","pages","getButtonWidth","withGap","length","add","buttonWidth","push","unshift","moreButtonWidth","firstButtonWidth","lastButtonWidth","isAddFirstPage","isAddlastPage","slicedArray","array","slice","reduce","previous","currentValue","returned","getPagesArray","paginationArrowIconsMap","first","next","last"],"sources":["../../../../../src/components/Pagination/helpers.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport { IconArrowFirst } from '@consta/icons/IconArrowFirst';\nimport { IconArrowLast } from '@consta/icons/IconArrowLast';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\n\nimport { range } from '##/utils/array';\n\nimport {\n PaginationArrowTypes,\n PaginationBaseItemDefault,\n PaginationItem,\n PaginationPropGetItemClickable,\n PaginationPropGetItemKey,\n PaginationPropGetItemLabel,\n} from './types';\n\nexport const defaultGetItemLabel: PaginationPropGetItemLabel<\n PaginationBaseItemDefault\n> = (item) => item.label;\nexport const defaultGetItemKey: PaginationPropGetItemKey<\n PaginationBaseItemDefault\n> = (item) => item.key;\nexport const defaultGetItemClickable: PaginationPropGetItemClickable<\n PaginationBaseItemDefault\n> = (item) => item.clickable ?? true;\n\nexport const firstPageSeparator = '<_';\nexport const lastPageSeparator = '_>';\nexport const pageSeparatorLabel = '...';\nexport const guardCurrentPage = (\n currentPage: number | undefined,\n totalPages: number,\n) => Math.floor(Math.max(1, Math.min(currentPage || 0, totalPages)));\n\nexport const getPagesArrayByVisibleCount = (\n currentPage: number,\n totalPages: number,\n visibleCountProp: number,\n showFirstPage?: boolean,\n showLastPage?: boolean,\n): PaginationItem[] => {\n const visibleCount = Math.floor(Math.min(visibleCountProp, totalPages));\n const page = guardCurrentPage(currentPage, totalPages);\n const visibleSegmentStartToCenter = Math.ceil(visibleCount / 2);\n const visibleSegmentEndToCenter = visibleCount - visibleSegmentStartToCenter;\n const slideStart = Math.max(0, page - visibleSegmentStartToCenter);\n\n return range(visibleCount).map((i) => {\n const el =\n i +\n slideStart +\n 1 -\n Math.max(0, page + visibleSegmentEndToCenter - totalPages);\n\n if (visibleCount >= 5 && visibleCount < totalPages) {\n if (showFirstPage && i === 0 && page - visibleSegmentStartToCenter > 0) {\n return {\n key: 1,\n label: '1',\n clickable: true,\n };\n }\n if (showFirstPage && i === 1 && page - visibleSegmentStartToCenter > 0) {\n return {\n key: firstPageSeparator,\n label: pageSeparatorLabel,\n clickable: false,\n };\n }\n if (\n showLastPage &&\n i === visibleCount - 1 &&\n page + visibleSegmentEndToCenter < totalPages\n ) {\n return {\n key: totalPages,\n label: totalPages.toString(),\n clickable: true,\n };\n }\n if (\n showLastPage &&\n i === visibleCount - 2 &&\n page + visibleSegmentEndToCenter < totalPages\n ) {\n return {\n key: lastPageSeparator,\n label: pageSeparatorLabel,\n clickable: false,\n };\n }\n }\n\n return {\n key: el,\n label: el.toString(),\n clickable: true,\n };\n });\n};\n\ntype GetPagesArray = (\n currentPage: number,\n totalPages: number,\n visibleCount: number,\n showFirstPage: boolean,\n showLastPage: boolean,\n gap: number,\n buttonPadding: number,\n buttonMinWidth: number,\n maxSymbolSize: number,\n totalWidth: number,\n) => PaginationItem[];\n\ntype GetPagesArrayByWidth = (\n currentPage: number,\n totalPages: number,\n showFirstPage: boolean,\n showLastPage: boolean,\n gap: number,\n buttonPadding: number,\n buttonMinWidth: number,\n maxSymbolSize: number,\n totalWidth: number,\n) => PaginationItem[];\n\nexport const getPagesArrayByWidth: GetPagesArrayByWidth = (\n currentPageArg,\n totalPages,\n showFirstPage,\n showLastPage,\n gap: number,\n buttonPadding: number,\n buttonMinWidth: number,\n maxSymbolSize: number,\n totalWidth: number,\n) => {\n const currentPage = guardCurrentPage(currentPageArg, totalPages);\n\n let w = totalWidth;\n // направлеине добавления кнопки, true - влево, false - вправо\n let direction = false;\n // индекс добавляемой кнопки относительно от выбранной\n let leftIndex = 0;\n let rightIndex = 1;\n let pages: (PaginationItem & { buttonWidth: number })[] = [];\n\n const getButtonWidth = (label: number, withGap: boolean) => {\n return (\n Math.max(\n label.toString().length * maxSymbolSize + buttonPadding,\n buttonMinWidth,\n ) + (withGap ? gap : 0)\n );\n };\n\n while (w > 0 && pages.length < totalPages) {\n const add = direction ? currentPage + rightIndex : currentPage - leftIndex;\n\n const buttonWidth: number = getButtonWidth(add, Boolean(pages.length));\n\n if (w - buttonWidth >= 0 && add <= totalPages && add >= 1) {\n const el = {\n key: add,\n label: add.toString(),\n clickable: true,\n buttonWidth,\n };\n\n if (direction) {\n pages.push(el);\n rightIndex += 1;\n } else {\n pages.unshift(el);\n leftIndex += 1;\n }\n }\n direction = !direction;\n\n w -= add <= totalPages && add >= 1 ? buttonWidth : 0;\n }\n\n if ((showFirstPage || showLastPage) && pages.length >= 5) {\n const moreButtonWidth = getButtonWidth(1, true);\n const firstButtonWidth = getButtonWidth(1, true);\n const lastButtonWidth = getButtonWidth(totalPages, true);\n\n let isAddFirstPage = false;\n let isAddlastPage = false;\n\n if (showFirstPage && pages[0].key !== 1) {\n let array = [...pages];\n\n while (array.length > 3) {\n if (array[0].key === currentPage) {\n break;\n }\n\n const slicedArray = array.slice(1);\n\n if (\n slicedArray\n .map((el) => el.buttonWidth)\n .reduce((previous, currentValue) => previous + currentValue) +\n firstButtonWidth +\n moreButtonWidth <=\n totalWidth\n ) {\n isAddFirstPage = true;\n pages = [...slicedArray];\n break;\n }\n\n array = slicedArray;\n }\n }\n\n if (showLastPage && pages[pages.length - 1].key !== totalPages) {\n let array = [...pages];\n\n while (array.length > 3) {\n if (array[array.length - 1].key === totalPages) {\n break;\n }\n\n const slicedArray = array.slice(0, -1);\n\n if (\n slicedArray\n .map((el) => el.buttonWidth)\n .reduce((previous, currentValue) => previous + currentValue) +\n lastButtonWidth +\n moreButtonWidth +\n (isAddFirstPage ? firstButtonWidth + moreButtonWidth : 0) <=\n totalWidth\n ) {\n isAddlastPage = true;\n pages = [...slicedArray];\n break;\n }\n\n array = slicedArray;\n }\n }\n\n pages = [\n ...(isAddFirstPage\n ? [\n {\n key: 1,\n label: '1',\n clickable: true,\n buttonWidth: firstButtonWidth,\n },\n {\n key: firstPageSeparator,\n label: pageSeparatorLabel,\n buttonWidth: moreButtonWidth,\n clickable: false,\n },\n ]\n : []),\n ...pages,\n ...(isAddlastPage\n ? [\n {\n key: lastPageSeparator,\n label: pageSeparatorLabel,\n buttonWidth: moreButtonWidth,\n clickable: false,\n },\n {\n key: totalPages,\n label: totalPages.toString(),\n clickable: true,\n buttonWidth: firstButtonWidth,\n },\n ]\n : []),\n ];\n }\n\n const returned: PaginationItem[] = pages.map(({ key, label, clickable }) => ({\n key,\n label,\n clickable,\n }));\n\n return returned;\n};\n\nexport const getPagesArray: GetPagesArray = (\n currentPage,\n totalPages = 1,\n visibleCount,\n showFirstPage,\n showLastPage,\n gap,\n buttonPadding,\n buttonMinWidth,\n maxSymbolSize,\n totalWidth,\n) => {\n return visibleCount\n ? getPagesArrayByVisibleCount(\n currentPage,\n totalPages,\n visibleCount,\n showFirstPage,\n showLastPage,\n )\n : getPagesArrayByWidth(\n currentPage,\n totalPages,\n showFirstPage,\n showLastPage,\n gap,\n buttonPadding,\n buttonMinWidth,\n maxSymbolSize,\n totalWidth,\n );\n};\n\nexport const paginationArrowIconsMap: Record<\n PaginationArrowTypes,\n IconComponent\n> = {\n first: IconArrowFirst,\n previous: IconArrowLeft,\n next: IconArrowRight,\n last: IconArrowLast,\n};\n"],"mappings":"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"}
@@ -1,2 +1 @@
1
1
  export * from './Pagination';
2
- export * from './PaginationBase';
@@ -1,2 +1,2 @@
1
- export*from"./Pagination";export*from"./PaginationBase";
1
+ export*from"./Pagination";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Pagination/index.ts"],"sourcesContent":["export * from './Pagination';\nexport * from './PaginationBase';\n"],"mappings":"AAAA,0BACA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Pagination/index.ts"],"sourcesContent":["export * from './Pagination';\n"],"mappings":"AAAA"}
@@ -21,7 +21,7 @@ export declare type PaginationPropOnItemClick<ITEM> = (item: ITEM, params: {
21
21
  e: React.MouseEvent;
22
22
  }) => void;
23
23
  export declare type PaginationPropOnChange<ITEM> = (value: ITEM, params: {
24
- e: React.MouseEvent | React.KeyboardEvent;
24
+ e: React.MouseEvent | KeyboardEvent;
25
25
  }) => void;
26
26
  export declare type PaginationPropArrow = boolean | IconComponent | {
27
27
  label?: string;
@@ -42,41 +42,31 @@ declare type PaginationArrowsProps = {
42
42
  arrows?: never;
43
43
  hotKeys?: never;
44
44
  });
45
- declare type PaginationBaseArrowsProps = {
46
- outerMostArrows?: [PaginationBasePropArrow?, PaginationBasePropArrow?];
47
- } & ({
48
- arrows: [PaginationBasePropArrow?, PaginationBasePropArrow?];
49
- hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];
50
- } | {
51
- arrows?: never;
52
- hotKeys?: never;
53
- });
54
- declare type Props<ITEM> = {
55
- form?: PaginationPropForm;
56
- size?: PaginationPropSize;
57
- containerEventListener?: HTMLElement | Window;
58
- value?: ITEM;
59
- items?: ITEM extends number ? number : ITEM[];
60
- onChange?: PaginationPropOnChange<ITEM>;
45
+ export declare type PaginationItem = {
46
+ key: string | number;
47
+ label: string;
48
+ clickable: boolean;
61
49
  };
62
50
  export declare type PaginationProps<TYPE extends PaginationPropType> = PropsWithHTMLAttributes<{
63
51
  type?: TYPE;
64
52
  showFirstPage?: boolean;
65
53
  showLastPage?: boolean;
66
54
  visibleCount?: number;
67
- } & Props<number>, HTMLDivElement> & PaginationArrowsProps & (TYPE extends 'input' ? {
55
+ form?: PaginationPropForm;
56
+ size?: PaginationPropSize;
57
+ containerEventListener?: HTMLElement | Window;
58
+ value?: number;
59
+ items?: number;
60
+ onChange?: PaginationPropOnChange<number>;
61
+ getItemAs?: PaginationPropGetItemAs<PaginationItem>;
62
+ getItemAttributes?: PaginationPropGetItemAttributes<PaginationItem>;
63
+ getItemRef?: PaginationPropGetItemRef<PaginationItem>;
64
+ }, HTMLDivElement> & PaginationArrowsProps & (TYPE extends 'input' ? {
68
65
  getTotalLabel?: (pages: number) => string | number;
69
66
  } : {
70
67
  getTotalLabel?: never;
71
68
  });
72
69
  export declare type PaginationComponent = <TYPE extends PaginationPropType>(props: PaginationProps<TYPE>) => React.ReactElement | null;
73
- export declare type PaginationItem = {
74
- key: number;
75
- label: string;
76
- active?: boolean;
77
- clickable?: boolean;
78
- page: number;
79
- };
80
70
  export declare type PaginationBaseItemDefault = {
81
71
  key: string | number;
82
72
  label?: string;
@@ -95,19 +85,13 @@ export declare type PaginationPropGetItemRef<ITEM> = (item: ITEM) => PaginationB
95
85
  export declare type PaginationPropGetItemOnClick<ITEM> = (item: ITEM) => PaginationBaseItemDefault['onClick'];
96
86
  declare type Mappers<ITEM = PaginationBaseItemDefault> = {
97
87
  getItemLabel?: PaginationPropGetItemLabel<ITEM>;
98
- getItemKey?: PaginationPropGetItemKey<ITEM>;
88
+ getItemKey: PaginationPropGetItemKey<ITEM>;
99
89
  getItemAs?: PaginationPropGetItemAs<ITEM>;
100
90
  getItemAttributes?: PaginationPropGetItemAttributes<ITEM>;
101
91
  getItemRef?: PaginationPropGetItemRef<ITEM>;
102
92
  getItemClickable?: PaginationPropGetItemClickable<ITEM>;
103
93
  getItemOnClick?: PaginationPropGetItemOnClick<ITEM>;
104
94
  };
105
- export declare type PaginationBaseProps<ITEM = PaginationBaseItemDefault> = PropsWithHTMLAttributes<Mappers<ITEM> & Props<ITEM> & PaginationBaseArrowsProps & (ITEM extends {
106
- key: PaginationBaseItemDefault['key'];
107
- } ? {} : {
108
- getItemKey: PaginationPropGetItemKey<ITEM>;
109
- }), HTMLDivElement>;
110
- export declare type PaginationBaseComponent = <ITEM = PaginationBaseItemDefault>(props: PaginationBaseProps<ITEM>) => React.ReactElement | null;
111
95
  export declare type PaginationArrowProps = PropsWithHTMLAttributes<{
112
96
  icon?: IconComponent;
113
97
  form?: PaginationPropForm;
@@ -139,10 +123,6 @@ export declare type PaginationListProps<ITEM> = PropsWithHTMLAttributesAndRef<{
139
123
  items: ITEM[];
140
124
  value?: ITEM;
141
125
  onItemClick?: PaginationPropOnItemClick<ITEM>;
142
- }, HTMLDivElement> & Mappers<ITEM> & (ITEM extends {
143
- label: string;
144
- } ? {} : {
145
- getItemKey: PaginationPropGetItemKey<ITEM>;
146
- });
126
+ }, HTMLDivElement> & Mappers<ITEM>;
147
127
  export declare type PaginationListComponent = <ITEM extends PaginationBaseItemDefault>(props: PaginationListProps<ITEM>) => React.ReactElement | null;
148
128
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["paginationPropForm","paginationPropFormDefault","paginationPropSize","paginationPropSizeDefault","paginationPropType","paginationPropTypeDefault"],"sources":["../../../../../src/components/Pagination/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { AsAttributes, AsTags } from '##/utils/types/AsTags';\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport {\n PropsWithHTMLAttributes,\n PropsWithHTMLAttributesAndRef,\n} from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const paginationPropForm = ['default', 'brick', 'round'] as const;\nexport type PaginationPropForm = typeof paginationPropForm[number];\nexport const paginationPropFormDefault: PaginationPropForm =\n paginationPropForm[0];\n\nexport const paginationPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type PaginationPropSize = typeof paginationPropSize[number];\nexport const paginationPropSizeDefault: PaginationPropSize =\n paginationPropSize[0];\n\nexport const paginationPropType = ['default', 'input'] as const;\nexport type PaginationPropType = typeof paginationPropType[number];\nexport const paginationPropTypeDefault: PaginationPropType =\n paginationPropType[0];\n\nexport type PaginationArrowTypes = 'first' | 'previous' | 'next' | 'last';\n\nexport type PaginationPropHotKey = { label: string; keys: string[] };\n\nexport type PaginationPropOnItemClick<ITEM> = (\n item: ITEM,\n params: { e: React.MouseEvent },\n) => void;\n\nexport type PaginationPropOnChange<ITEM> = (\n value: ITEM,\n params: { e: React.MouseEvent | React.KeyboardEvent },\n) => void;\n\n// ARROWS\n\nexport type PaginationPropArrow =\n | boolean\n | IconComponent\n | {\n label?: string;\n icon?: IconComponent;\n };\n\nexport type PaginationBasePropArrow =\n | false\n | {\n label?: string;\n disabled?: boolean;\n icon?: IconComponent;\n onClick?: React.MouseEventHandler;\n };\n\ntype PaginationArrowsProps = {\n outerMostArrows?: [PaginationPropArrow?, PaginationPropArrow?];\n} & (\n | {\n arrows: [PaginationPropArrow?, PaginationPropArrow?];\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n }\n | {\n arrows?: never;\n hotKeys?: never;\n }\n);\n\ntype PaginationBaseArrowsProps = {\n outerMostArrows?: [PaginationBasePropArrow?, PaginationBasePropArrow?];\n} & (\n | {\n arrows: [PaginationBasePropArrow?, PaginationBasePropArrow?];\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n }\n | {\n arrows?: never;\n hotKeys?: never;\n }\n);\n\ntype Props<ITEM> = {\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n containerEventListener?: HTMLElement | Window;\n value?: ITEM;\n items?: ITEM extends number ? number : ITEM[];\n onChange?: PaginationPropOnChange<ITEM>;\n};\n\nexport type PaginationProps<TYPE extends PaginationPropType> =\n PropsWithHTMLAttributes<\n {\n type?: TYPE;\n showFirstPage?: boolean;\n showLastPage?: boolean;\n visibleCount?: number;\n } & Props<number>,\n HTMLDivElement\n > &\n PaginationArrowsProps &\n (TYPE extends 'input'\n ? { getTotalLabel?: (pages: number) => string | number }\n : {\n getTotalLabel?: never;\n });\n\nexport type PaginationComponent = <TYPE extends PaginationPropType>(\n props: PaginationProps<TYPE>,\n) => React.ReactElement | null;\n\nexport type PaginationItem = {\n key: number;\n label: string;\n active?: boolean;\n clickable?: boolean;\n page: number;\n};\n\nexport type PaginationBaseItemDefault = {\n key: string | number;\n label?: string;\n as?: AsTags;\n ref?: React.RefObject<HTMLElement>;\n clickable?: boolean;\n attributes?: AsAttributes;\n onClick?: React.MouseEventHandler;\n};\n\nexport type PaginationPropGetItemKey<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['key'];\nexport type PaginationPropGetItemLabel<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['label'];\nexport type PaginationPropGetItemClickable<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['clickable'];\nexport type PaginationPropGetItemAs<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['as'];\nexport type PaginationPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['attributes'];\nexport type PaginationPropGetItemRef<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['ref'];\nexport type PaginationPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['onClick'];\n\ntype Mappers<ITEM = PaginationBaseItemDefault> = {\n getItemLabel?: PaginationPropGetItemLabel<ITEM>;\n getItemKey?: PaginationPropGetItemKey<ITEM>;\n getItemAs?: PaginationPropGetItemAs<ITEM>;\n getItemAttributes?: PaginationPropGetItemAttributes<ITEM>;\n getItemRef?: PaginationPropGetItemRef<ITEM>;\n getItemClickable?: PaginationPropGetItemClickable<ITEM>;\n getItemOnClick?: PaginationPropGetItemOnClick<ITEM>;\n};\n\nexport type PaginationBaseProps<ITEM = PaginationBaseItemDefault> =\n PropsWithHTMLAttributes<\n Mappers<ITEM> &\n Props<ITEM> &\n PaginationBaseArrowsProps &\n (ITEM extends { key: PaginationBaseItemDefault['key'] }\n ? {}\n : {\n getItemKey: PaginationPropGetItemKey<ITEM>;\n }),\n HTMLDivElement\n >;\n\nexport type PaginationBaseComponent = <ITEM = PaginationBaseItemDefault>(\n props: PaginationBaseProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type PaginationArrowProps = PropsWithHTMLAttributes<\n {\n icon?: IconComponent;\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n disabled?: boolean;\n orientation?: 'start' | 'end';\n label?: string;\n caption?: string;\n },\n HTMLButtonElement\n>;\n\nexport type PaginationItemProps<AS extends AsTags = 'button'> =\n PropsWithAsAttributes<\n {\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n label?: string;\n active?: boolean;\n clickable?: boolean;\n },\n AS\n >;\n\nexport type PaginationItemComponent = <AS extends AsTags = 'button'>(\n props: PaginationItemProps<AS>,\n) => React.ReactElement | null;\n\nexport type PaginationNumberInputProps = PropsWithHTMLAttributes<\n {\n value?: number;\n onChange?: PaginationPropOnChange<number>;\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n total: number;\n getTotalLabel?: (pages: number) => string | number;\n },\n HTMLDivElement\n>;\n\nexport type PaginationListProps<ITEM> = PropsWithHTMLAttributesAndRef<\n {\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n items: ITEM[];\n value?: ITEM;\n onItemClick?: PaginationPropOnItemClick<ITEM>;\n },\n HTMLDivElement\n> &\n Mappers<ITEM> &\n (ITEM extends { label: string }\n ? {}\n : {\n getItemKey: PaginationPropGetItemKey<ITEM>;\n });\n\nexport type PaginationListComponent = <ITEM extends PaginationBaseItemDefault>(\n props: PaginationListProps<ITEM>,\n) => React.ReactElement | null;\n"],"mappings":"AAUA,MAAO,IAAMA,mBAAkB,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAqB,OAArB,CAA3B,CAEP,MAAO,IAAMC,0BAA6C,CACxDD,kBAAkB,CAAC,CAAD,CADb,CAGP,MAAO,IAAME,mBAAkB,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAA3B,CAEP,MAAO,IAAMC,0BAA6C,CACxDD,kBAAkB,CAAC,CAAD,CADb,CAGP,MAAO,IAAME,mBAAkB,CAAG,CAAC,SAAD,CAAY,OAAZ,CAA3B,CAEP,MAAO,IAAMC,0BAA6C,CACxDD,kBAAkB,CAAC,CAAD,CADb"}
1
+ {"version":3,"file":"types.js","names":["paginationPropForm","paginationPropFormDefault","paginationPropSize","paginationPropSizeDefault","paginationPropType","paginationPropTypeDefault"],"sources":["../../../../../src/components/Pagination/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { AsAttributes, AsTags } from '##/utils/types/AsTags';\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport {\n PropsWithHTMLAttributes,\n PropsWithHTMLAttributesAndRef,\n} from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const paginationPropForm = ['default', 'brick', 'round'] as const;\nexport type PaginationPropForm = typeof paginationPropForm[number];\nexport const paginationPropFormDefault: PaginationPropForm =\n paginationPropForm[0];\n\nexport const paginationPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type PaginationPropSize = typeof paginationPropSize[number];\nexport const paginationPropSizeDefault: PaginationPropSize =\n paginationPropSize[0];\n\nexport const paginationPropType = ['default', 'input'] as const;\nexport type PaginationPropType = typeof paginationPropType[number];\nexport const paginationPropTypeDefault: PaginationPropType =\n paginationPropType[0];\n\nexport type PaginationArrowTypes = 'first' | 'previous' | 'next' | 'last';\n\nexport type PaginationPropHotKey = { label: string; keys: string[] };\n\nexport type PaginationPropOnItemClick<ITEM> = (\n item: ITEM,\n params: { e: React.MouseEvent },\n) => void;\n\nexport type PaginationPropOnChange<ITEM> = (\n value: ITEM,\n params: { e: React.MouseEvent | KeyboardEvent },\n) => void;\n\n// ARROWS\n\nexport type PaginationPropArrow =\n | boolean\n | IconComponent\n | {\n label?: string;\n icon?: IconComponent;\n };\n\nexport type PaginationBasePropArrow =\n | false\n | {\n label?: string;\n disabled?: boolean;\n icon?: IconComponent;\n onClick?: React.MouseEventHandler;\n };\n\ntype PaginationArrowsProps = {\n outerMostArrows?: [PaginationPropArrow?, PaginationPropArrow?];\n} & (\n | {\n arrows: [PaginationPropArrow?, PaginationPropArrow?];\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n }\n | {\n arrows?: never;\n hotKeys?: never;\n }\n);\n\nexport type PaginationItem = {\n key: string | number;\n label: string;\n clickable: boolean;\n};\n\nexport type PaginationProps<TYPE extends PaginationPropType> =\n PropsWithHTMLAttributes<\n {\n type?: TYPE;\n showFirstPage?: boolean;\n showLastPage?: boolean;\n visibleCount?: number;\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n containerEventListener?: HTMLElement | Window;\n value?: number;\n items?: number;\n onChange?: PaginationPropOnChange<number>;\n getItemAs?: PaginationPropGetItemAs<PaginationItem>;\n getItemAttributes?: PaginationPropGetItemAttributes<PaginationItem>;\n getItemRef?: PaginationPropGetItemRef<PaginationItem>;\n },\n HTMLDivElement\n > &\n PaginationArrowsProps &\n (TYPE extends 'input'\n ? { getTotalLabel?: (pages: number) => string | number }\n : {\n getTotalLabel?: never;\n });\n\nexport type PaginationComponent = <TYPE extends PaginationPropType>(\n props: PaginationProps<TYPE>,\n) => React.ReactElement | null;\n\nexport type PaginationBaseItemDefault = {\n key: string | number;\n label?: string;\n as?: AsTags;\n ref?: React.RefObject<HTMLElement>;\n clickable?: boolean;\n attributes?: AsAttributes;\n onClick?: React.MouseEventHandler;\n};\n\nexport type PaginationPropGetItemKey<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['key'];\nexport type PaginationPropGetItemLabel<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['label'];\nexport type PaginationPropGetItemClickable<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['clickable'];\nexport type PaginationPropGetItemAs<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['as'];\nexport type PaginationPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['attributes'];\nexport type PaginationPropGetItemRef<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['ref'];\nexport type PaginationPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => PaginationBaseItemDefault['onClick'];\n\ntype Mappers<ITEM = PaginationBaseItemDefault> = {\n getItemLabel?: PaginationPropGetItemLabel<ITEM>;\n getItemKey: PaginationPropGetItemKey<ITEM>;\n getItemAs?: PaginationPropGetItemAs<ITEM>;\n getItemAttributes?: PaginationPropGetItemAttributes<ITEM>;\n getItemRef?: PaginationPropGetItemRef<ITEM>;\n getItemClickable?: PaginationPropGetItemClickable<ITEM>;\n getItemOnClick?: PaginationPropGetItemOnClick<ITEM>;\n};\n\nexport type PaginationArrowProps = PropsWithHTMLAttributes<\n {\n icon?: IconComponent;\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n disabled?: boolean;\n orientation?: 'start' | 'end';\n label?: string;\n caption?: string;\n },\n HTMLButtonElement\n>;\n\nexport type PaginationItemProps<AS extends AsTags = 'button'> =\n PropsWithAsAttributes<\n {\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n label?: string;\n active?: boolean;\n clickable?: boolean;\n },\n AS\n >;\n\nexport type PaginationItemComponent = <AS extends AsTags = 'button'>(\n props: PaginationItemProps<AS>,\n) => React.ReactElement | null;\n\nexport type PaginationNumberInputProps = PropsWithHTMLAttributes<\n {\n value?: number;\n onChange?: PaginationPropOnChange<number>;\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n total: number;\n getTotalLabel?: (pages: number) => string | number;\n },\n HTMLDivElement\n>;\n\nexport type PaginationListProps<ITEM> = PropsWithHTMLAttributesAndRef<\n {\n form?: PaginationPropForm;\n size?: PaginationPropSize;\n items: ITEM[];\n value?: ITEM;\n onItemClick?: PaginationPropOnItemClick<ITEM>;\n },\n HTMLDivElement\n> &\n Mappers<ITEM>;\n\nexport type PaginationListComponent = <ITEM extends PaginationBaseItemDefault>(\n props: PaginationListProps<ITEM>,\n) => React.ReactElement | null;\n"],"mappings":"AAUA,MAAO,IAAMA,mBAAkB,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAqB,OAArB,CAA3B,CAEP,MAAO,IAAMC,0BAA6C,CACxDD,kBAAkB,CAAC,CAAD,CADb,CAGP,MAAO,IAAME,mBAAkB,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAA3B,CAEP,MAAO,IAAMC,0BAA6C,CACxDD,kBAAkB,CAAC,CAAD,CADb,CAGP,MAAO,IAAME,mBAAkB,CAAG,CAAC,SAAD,CAAY,OAAZ,CAA3B,CAEP,MAAO,IAAMC,0BAA6C,CACxDD,kBAAkB,CAAC,CAAD,CADb"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { PaginationItem, PaginationPropHotKey, PaginationPropSize } from './types';
2
+ import { PaginationPropArrow, PaginationPropHotKey, PaginationPropSize, PaginationPropType } from './types';
3
3
  declare type UsePaginationItemsProps = {
4
4
  visibleCount?: number;
5
5
  value: number;
@@ -9,11 +9,12 @@ declare type UsePaginationItemsProps = {
9
9
  containerEventListener?: HTMLElement | Window;
10
10
  size: PaginationPropSize;
11
11
  hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];
12
+ arrows?: [PaginationPropArrow?, PaginationPropArrow?];
13
+ outerMostArrows?: [PaginationPropArrow?, PaginationPropArrow?];
14
+ type?: PaginationPropType;
15
+ handleNext: (e: React.MouseEvent | KeyboardEvent) => void;
16
+ handlePrevious: (e: React.MouseEvent | KeyboardEvent) => void;
12
17
  };
13
18
  export declare const itemSizeMap: Record<PaginationPropSize, number>;
14
- export declare const usePaginationItems: (props: UsePaginationItemsProps) => {
15
- buttonRefs: import("react").RefObject<HTMLButtonElement>[];
16
- wrapperRef: import("react").RefObject<HTMLDivElement>;
17
- pages: PaginationItem[];
18
- };
19
+ export declare const usePaginationItems: (props: UsePaginationItemsProps) => readonly [import("./types").PaginationItem[], import("react").RefObject<HTMLDivElement>[], number];
19
20
  export {};
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useEffect,useRef,useState}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useRefs}from"../../hooks/useRefs";import{useResizeObserved}from"../../hooks/useResizeObserved";import{getPagesArray}from"./helpers";import{usePaginationKeys}from"./usePaginationKeys";export var itemSizeMap={l:48,m:40,s:32,xs:24};var getElementSize=function(a){var b;return null!==(b=null===a||void 0===a?void 0:a.offsetWidth)&&void 0!==b?b:0};export var usePaginationItems=function(a){var b=a.visibleCount,c=a.value,d=a.items,e=a.showFirstPage,f=a.showLastPage,g=a.containerEventListener,h=a.size,i=a.hotKeys,j=useState([]),k=_slicedToArray(j,2),l=k[0],m=k[1],n=useState(7),o=_slicedToArray(n,2),p=o[0],q=o[1],r=useRef(null),s=useRefs(4),t=useResizeObserved(s,getElementSize),u=_slicedToArray(t,4),v=u[0],w=u[1],x=u[2],y=u[3];usePaginationKeys({containerEventListener:g,hotKeys:i,prevButtonRef:s[1],nextButtonRef:s[2]});var z=useComponentSize(r),A=z.width;return useEffect(function(){q(Math.max(Math.floor((A-v-w-x-y)/(itemSizeMap[h]+2)),3+(e?2:0)+(f?2:0)))},[l,v,w,x,y,A,h]),useEffect(function(){m(getPagesArray({currentPage:c,totalPages:d,visibleCount:null!==b&&void 0!==b?b:p,showFirstPage:e,showLastPage:f}))},[b,e,f,c,d,p]),{buttonRefs:s,wrapperRef:r,pages:l}};
1
+ import{useMemo}from"react";import{useRefs}from"../../hooks/useRefs";import{useResizeObserved}from"../../hooks/useResizeObserved";import{getPagesArray}from"./helpers";import{usePaginationKeys}from"./usePaginationKeys";export var itemSizeMap={l:48,m:40,s:32,xs:24};var getElementWidth=function(a){var b;return null!==(b=null===a||void 0===a?void 0:a.getBoundingClientRect().width)&&void 0!==b?b:0},hashArrows=function(a){return(null===a||void 0===a?void 0:a.map(Boolean).join("-"))||"false-false"};export var usePaginationItems=function(a){var b=a.visibleCount,c=a.value,d=a.items,e=a.showFirstPage,f=a.showLastPage,g=a.containerEventListener,h=a.hotKeys,i=a.outerMostArrows,j=a.type,k=a.arrows,l=a.handleNext,m=a.handlePrevious,n=useRefs(20,[d,j,hashArrows(i),hashArrows(k)]),o=useResizeObserved(n,getElementWidth),p=o[7]-o[5]-o[6],q=o[18]-o[19],r=o[5],s=Math.max(o[8],o[9],o[10],o[11],o[12],o[13],o[14],o[15],o[16],o[17]),t=o[4]-(o[0]?o[0]+p:0)-(o[1]?o[1]+p:0)-(o[2]?o[2]+p:0)-(o[3]?o[3]+p:0),u=useMemo(function(){return"default"===j&&r?getPagesArray(c,d,b||0,e||!1,f||!1,p,q,r,s,t):[]},[j,c,d,b,e,f,p,q,r,s,t]);return usePaginationKeys({containerEventListener:g,hotKeys:h,handleNext:l,handlePrevious:m}),[u,n,s]};
2
2
  //# sourceMappingURL=usePaginationItems.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePaginationItems.js","names":["useEffect","useRef","useState","useComponentSize","useRefs","useResizeObserved","getPagesArray","usePaginationKeys","itemSizeMap","l","m","s","xs","getElementSize","el","offsetWidth","usePaginationItems","props","visibleCount","value","items","showFirstPage","showLastPage","containerEventListener","size","hotKeys","pages","setPages","maxVisiblePages","setMaxVisiblePages","wrapperRef","refs","firstWidth","prevWidth","nextWidth","lastWidth","prevButtonRef","nextButtonRef","width","Math","max","floor","currentPage","totalPages","buttonRefs"],"sources":["../../../../../src/components/Pagination/usePaginationItems.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useRefs } from '##/hooks/useRefs';\nimport { useResizeObserved } from '##/hooks/useResizeObserved';\n\nimport { getPagesArray } from './helpers';\nimport {\n PaginationItem,\n PaginationPropHotKey,\n PaginationPropSize,\n} from './types';\nimport { usePaginationKeys } from './usePaginationKeys';\n\ntype UsePaginationItemsProps = {\n visibleCount?: number;\n value: number;\n items: number;\n showFirstPage?: boolean;\n showLastPage?: boolean;\n containerEventListener?: HTMLElement | Window;\n size: PaginationPropSize;\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n};\n\nexport const itemSizeMap: Record<PaginationPropSize, number> = {\n l: 48,\n m: 40,\n s: 32,\n xs: 24,\n};\n\nconst getElementSize = (el: HTMLElement | null) => el?.offsetWidth ?? 0;\n\nexport const usePaginationItems = (props: UsePaginationItemsProps) => {\n const {\n visibleCount,\n value,\n items,\n showFirstPage,\n showLastPage,\n containerEventListener,\n size,\n hotKeys,\n } = props;\n const [pages, setPages] = useState<PaginationItem[]>([]);\n const [maxVisiblePages, setMaxVisiblePages] = useState(7);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const refs = useRefs<HTMLButtonElement>(4);\n\n const [firstWidth, prevWidth, nextWidth, lastWidth] = useResizeObserved(\n refs,\n getElementSize,\n );\n\n usePaginationKeys({\n containerEventListener,\n hotKeys,\n prevButtonRef: refs[1],\n nextButtonRef: refs[2],\n });\n\n const { width } = useComponentSize(wrapperRef);\n\n useEffect(() => {\n setMaxVisiblePages(\n Math.max(\n Math.floor(\n (width - firstWidth - prevWidth - nextWidth - lastWidth) /\n (itemSizeMap[size] + 2),\n ),\n 3 + (showFirstPage ? 2 : 0) + (showLastPage ? 2 : 0),\n ),\n );\n }, [pages, firstWidth, prevWidth, nextWidth, lastWidth, width, size]);\n\n useEffect(() => {\n setPages(\n getPagesArray({\n currentPage: value,\n totalPages: items,\n visibleCount: visibleCount ?? maxVisiblePages,\n showFirstPage,\n showLastPage,\n }),\n );\n }, [\n visibleCount,\n showFirstPage,\n showLastPage,\n value,\n items,\n maxVisiblePages,\n ]);\n\n return {\n buttonRefs: refs,\n wrapperRef,\n pages,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"usePaginationItems.js","names":["useMemo","useRefs","useResizeObserved","getPagesArray","usePaginationKeys","itemSizeMap","l","m","s","xs","getElementWidth","el","getBoundingClientRect","width","hashArrows","arrows","map","Boolean","join","usePaginationItems","props","visibleCount","value","items","showFirstPage","showLastPage","containerEventListener","hotKeys","outerMostArrows","type","handleNext","handlePrevious","refs","gap","buttonPadding","buttonMinWidth","maxSymbolSize","Math","max","totalWidth","pages"],"sources":["../../../../../src/components/Pagination/usePaginationItems.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useRefs } from '##/hooks/useRefs';\nimport { useResizeObserved } from '##/hooks/useResizeObserved';\n\nimport { getPagesArray } from './helpers';\nimport {\n PaginationPropArrow,\n PaginationPropHotKey,\n PaginationPropSize,\n PaginationPropType,\n} from './types';\nimport { usePaginationKeys } from './usePaginationKeys';\n\ntype UsePaginationItemsProps = {\n visibleCount?: number;\n value: number;\n items: number;\n showFirstPage?: boolean;\n showLastPage?: boolean;\n containerEventListener?: HTMLElement | Window;\n size: PaginationPropSize;\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n arrows?: [PaginationPropArrow?, PaginationPropArrow?];\n outerMostArrows?: [PaginationPropArrow?, PaginationPropArrow?];\n type?: PaginationPropType;\n handleNext: (e: React.MouseEvent | KeyboardEvent) => void;\n handlePrevious: (e: React.MouseEvent | KeyboardEvent) => void;\n};\n\nexport const itemSizeMap: Record<PaginationPropSize, number> = {\n l: 48,\n m: 40,\n s: 32,\n xs: 24,\n};\n\nconst getElementWidth = (el: HTMLElement | null) =>\n el?.getBoundingClientRect().width ?? 0;\n\nconst hashArrows = (\n arrows: [PaginationPropArrow?, PaginationPropArrow?] | undefined,\n) => arrows?.map(Boolean).join('-') || 'false-false';\n\nexport const usePaginationItems = (props: UsePaginationItemsProps) => {\n const {\n visibleCount,\n value,\n items,\n showFirstPage,\n showLastPage,\n containerEventListener,\n hotKeys,\n outerMostArrows,\n type,\n arrows,\n handleNext,\n handlePrevious,\n } = props;\n\n const refs = useRefs<HTMLDivElement>(20, [\n items,\n type,\n hashArrows(outerMostArrows),\n hashArrows(arrows),\n ]);\n\n const width = useResizeObserved(refs, getElementWidth);\n\n // расстояние между кнопками\n const gap = width[7] - width[5] - width[6];\n // внутренний отступ кнопки\n const buttonPadding = width[18] - width[19];\n // минимальная ширина кнопки\n const buttonMinWidth = width[5];\n // Максималяная ширина символа\n const maxSymbolSize = Math.max(\n width[8],\n width[9],\n width[10],\n width[11],\n width[12],\n width[13],\n width[14],\n width[15],\n width[16],\n width[17],\n );\n // разрешенная ширина\n const totalWidth =\n width[4] -\n (width[0] ? width[0] + gap : 0) -\n (width[1] ? width[1] + gap : 0) -\n (width[2] ? width[2] + gap : 0) -\n (width[3] ? width[3] + gap : 0);\n\n const pages = useMemo(\n () =>\n type === 'default' && buttonMinWidth\n ? getPagesArray(\n value,\n items,\n visibleCount || 0,\n showFirstPage || false,\n showLastPage || false,\n gap,\n buttonPadding,\n buttonMinWidth,\n maxSymbolSize,\n totalWidth,\n )\n : [],\n [\n type,\n value,\n items,\n visibleCount,\n showFirstPage,\n showLastPage,\n gap,\n buttonPadding,\n buttonMinWidth,\n maxSymbolSize,\n totalWidth,\n ],\n );\n\n usePaginationKeys({\n containerEventListener,\n hotKeys,\n handleNext,\n handlePrevious,\n });\n\n return [pages, refs, maxSymbolSize] as const;\n};\n"],"mappings":"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"}
@@ -3,8 +3,8 @@ import { PaginationPropHotKey } from './types';
3
3
  declare type UsePaginationKeysParams = {
4
4
  containerEventListener?: HTMLElement | Window;
5
5
  hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];
6
- nextButtonRef?: React.RefObject<HTMLElement>;
7
- prevButtonRef?: React.RefObject<HTMLElement>;
6
+ handleNext: (e: React.MouseEvent | KeyboardEvent) => void;
7
+ handlePrevious: (e: React.MouseEvent | KeyboardEvent) => void;
8
8
  };
9
9
  export declare const usePaginationKeys: (params: UsePaginationKeysParams) => void;
10
10
  export {};
@@ -1,2 +1,2 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useCallback,useEffect,useLayoutEffect,useRef}from"react";export var usePaginationKeys=function(a){var b=a.containerEventListener,c=void 0===b?window:b,d=a.hotKeys,e=a.nextButtonRef,f=a.prevButtonRef,g=useRef([]),h=useRef(null!==d&&void 0!==d?d:[]),i=function(a){var b=a.key;g.current=g.current.filter(function(a){return a!==b})},j=useCallback(function(a){var b=a.key,c=_slicedToArray(h.current,2),d=c[0],i=c[1];if(null!==d&&void 0!==d&&d.keys.includes(b)||null!==i&&void 0!==i&&i.keys.includes(b)){var l=[].concat(_toConsumableArray(g.current),[b]);if(null!==i&&void 0!==i&&i.keys.every(function(a){return l.includes(a)})){var j;null===e||void 0===e||null===(j=e.current)||void 0===j?void 0:j.click()}else if(null!==d&&void 0!==d&&d.keys.every(function(a){return l.includes(a)})){var k;null===f||void 0===f||null===(k=f.current)||void 0===k?void 0:k.click()}g.current=l}},[d]);useLayoutEffect(function(){return c.addEventListener("keydown",j),c.addEventListener("keyup",i),function(){c.removeEventListener("keydown",j),c.removeEventListener("keyup",i)}},[e,f,c]),useEffect(function(){d&&(h.current=d)},[d])};
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useCallback,useLayoutEffect,useRef}from"react";import{useMutableRef}from"../../hooks/useMutableRef";export var usePaginationKeys=function(a){var b=a.containerEventListener,c=void 0===b?window:b,d=a.hotKeys,e=a.handleNext,f=a.handlePrevious,g=useRef([]),h=useMutableRef([d||[],e,f]),i=useCallback(function(a){var b=a.key;g.current=g.current.filter(function(a){return a!==b})},[]),j=useCallback(function(a){var b=a.key,c=_slicedToArray(h.current[0],2),d=c[0],e=c[1];if(null!==d&&void 0!==d&&d.keys.includes(b)||null!==e&&void 0!==e&&e.keys.includes(b)){var f=[].concat(_toConsumableArray(g.current),[b]);null!==e&&void 0!==e&&e.keys.every(function(a){return f.includes(a)})?h.current[1](a):null!==d&&void 0!==d&&d.keys.every(function(a){return f.includes(a)})&&h.current[2](a),g.current=f}},[]);useLayoutEffect(function(){return c.addEventListener("keydown",j),c.addEventListener("keyup",i),function(){c.removeEventListener("keydown",j),c.removeEventListener("keyup",i)}},[c])};
2
2
  //# sourceMappingURL=usePaginationKeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePaginationKeys.js","names":["useCallback","useEffect","useLayoutEffect","useRef","usePaginationKeys","params","containerEventListener","window","hotKeys","nextButtonRef","prevButtonRef","keys","hotKeysRef","keyUpListener","event","key","current","filter","hotKey","keyDownListener","start","end","includes","newKeys","every","click","addEventListener","removeEventListener"],"sources":["../../../../../src/components/Pagination/usePaginationKeys.tsx"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { PaginationPropHotKey } from './types';\n\ntype UsePaginationKeysParams = {\n containerEventListener?: HTMLElement | Window;\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n nextButtonRef?: React.RefObject<HTMLElement>;\n prevButtonRef?: React.RefObject<HTMLElement>;\n};\n\nexport const usePaginationKeys = (params: UsePaginationKeysParams) => {\n const {\n containerEventListener = window,\n hotKeys,\n nextButtonRef,\n prevButtonRef,\n } = params;\n const keys: React.MutableRefObject<string[]> = useRef([]);\n const hotKeysRef = useRef(hotKeys ?? []);\n\n const keyUpListener: EventListener = (event) => {\n const { key } = event as KeyboardEvent;\n keys.current = keys.current.filter((hotKey) => hotKey !== key);\n };\n\n const keyDownListener: EventListener = useCallback(\n (event) => {\n const { key } = event as KeyboardEvent;\n\n const [start, end] = hotKeysRef.current;\n\n if (start?.keys.includes(key) || end?.keys.includes(key)) {\n const newKeys = [...keys.current, key];\n if (end?.keys.every((hotKey) => newKeys.includes(hotKey))) {\n nextButtonRef?.current?.click();\n } else if (start?.keys.every((hotKey) => newKeys.includes(hotKey))) {\n prevButtonRef?.current?.click();\n }\n keys.current = newKeys;\n }\n },\n [hotKeys],\n );\n\n useLayoutEffect(() => {\n containerEventListener.addEventListener('keydown', keyDownListener);\n containerEventListener.addEventListener('keyup', keyUpListener);\n return () => {\n containerEventListener.removeEventListener('keydown', keyDownListener);\n containerEventListener.removeEventListener('keyup', keyUpListener);\n };\n }, [nextButtonRef, prevButtonRef, containerEventListener]);\n\n useEffect(() => {\n if (hotKeys) {\n hotKeysRef.current = hotKeys;\n }\n }, [hotKeys]);\n};\n"],"mappings":"0IAAA,OAASA,WAAT,CAAsBC,SAAtB,CAAiCC,eAAjC,CAAkDC,MAAlD,KAAgE,OAAhE,CAWA,MAAO,IAAMC,kBAAiB,CAAG,SAACC,CAAD,CAAqC,OAMhEA,CANgE,CAElEC,sBAFkE,CAElEA,CAFkE,YAEzCC,MAFyC,GAGlEC,CAHkE,CAMhEH,CANgE,CAGlEG,OAHkE,CAIlEC,CAJkE,CAMhEJ,CANgE,CAIlEI,aAJkE,CAKlEC,CALkE,CAMhEL,CANgE,CAKlEK,aALkE,CAO9DC,CAAsC,CAAGR,MAAM,CAAC,EAAD,CAPe,CAQ9DS,CAAU,CAAGT,MAAM,QAACK,CAAD,WAACA,CAAD,CAACA,CAAD,CAAY,EAAZ,CAR2C,CAU9DK,CAA4B,CAAG,SAACC,CAAD,CAAW,CAC9C,GAAQC,EAAR,CAAgBD,CAAhB,CAAQC,GAAR,CACAJ,CAAI,CAACK,OAAL,CAAeL,CAAI,CAACK,OAAL,CAAaC,MAAb,CAAoB,SAACC,CAAD,QAAYA,EAAM,GAAKH,CAAvB,CAApB,CAChB,CAbmE,CAe9DI,CAA8B,CAAGnB,WAAW,CAChD,SAACc,CAAD,CAAW,IACDC,EADC,CACOD,CADP,CACDC,GADC,kBAGYH,CAAU,CAACI,OAHvB,IAGFI,CAHE,MAGKC,CAHL,MAKT,GAAI,OAAAD,CAAK,WAALA,CAAA,EAAAA,CAAK,CAAET,IAAP,CAAYW,QAAZ,CAAqBP,CAArB,UAA6BM,CAA7B,WAA6BA,CAA7B,EAA6BA,CAAG,CAAEV,IAAL,CAAUW,QAAV,CAAmBP,CAAnB,CAAjC,CAA0D,CACxD,GAAMQ,EAAO,8BAAOZ,CAAI,CAACK,OAAZ,GAAqBD,CAArB,EAAb,CACA,UAAIM,CAAJ,WAAIA,CAAJ,EAAIA,CAAG,CAAEV,IAAL,CAAUa,KAAV,CAAgB,SAACN,CAAD,QAAYK,EAAO,CAACD,QAAR,CAAiBJ,CAAjB,CAAZ,CAAhB,CAAJ,CAA2D,cACzDT,CADyD,WACzDA,CADyD,YACzDA,CAAa,CAAEO,OAD0C,qBACzD,EAAwBS,KAAxB,EACD,CAFD,IAEO,WAAIL,CAAJ,WAAIA,CAAJ,EAAIA,CAAK,CAAET,IAAP,CAAYa,KAAZ,CAAkB,SAACN,CAAD,QAAYK,EAAO,CAACD,QAAR,CAAiBJ,CAAjB,CAAZ,CAAlB,CAAJ,CAA6D,cAClER,CADkE,WAClEA,CADkE,YAClEA,CAAa,CAAEM,OADmD,qBAClE,EAAwBS,KAAxB,EACD,CACDd,CAAI,CAACK,OAAL,CAAeO,CAChB,CACF,CAf+C,CAgBhD,CAACf,CAAD,CAhBgD,CAfkB,CAkCpEN,eAAe,CAAC,UAAM,CAGpB,MAFAI,EAAsB,CAACoB,gBAAvB,CAAwC,SAAxC,CAAmDP,CAAnD,CAEA,CADAb,CAAsB,CAACoB,gBAAvB,CAAwC,OAAxC,CAAiDb,CAAjD,CACA,CAAO,UAAM,CACXP,CAAsB,CAACqB,mBAAvB,CAA2C,SAA3C,CAAsDR,CAAtD,CADW,CAEXb,CAAsB,CAACqB,mBAAvB,CAA2C,OAA3C,CAAoDd,CAApD,CACD,CACF,CAPc,CAOZ,CAACJ,CAAD,CAAgBC,CAAhB,CAA+BJ,CAA/B,CAPY,CAlCqD,CA2CpEL,SAAS,CAAC,UAAM,CACVO,CADU,GAEZI,CAAU,CAACI,OAAX,CAAqBR,CAFT,CAIf,CAJQ,CAIN,CAACA,CAAD,CAJM,CAKV,CAhDM"}
1
+ {"version":3,"file":"usePaginationKeys.js","names":["useCallback","useLayoutEffect","useRef","useMutableRef","usePaginationKeys","params","containerEventListener","window","hotKeys","handleNext","handlePrevious","keys","mutableRefs","keyUpListener","event","key","current","filter","hotKey","keyDownListener","start","end","includes","newKeys","every","addEventListener","removeEventListener"],"sources":["../../../../../src/components/Pagination/usePaginationKeys.tsx"],"sourcesContent":["import { useCallback, useLayoutEffect, useRef } from 'react';\n\nimport { useMutableRef } from '##/hooks/useMutableRef';\n\nimport { PaginationPropHotKey } from './types';\n\ntype UsePaginationKeysParams = {\n containerEventListener?: HTMLElement | Window;\n hotKeys?: [PaginationPropHotKey?, PaginationPropHotKey?];\n handleNext: (e: React.MouseEvent | KeyboardEvent) => void;\n handlePrevious: (e: React.MouseEvent | KeyboardEvent) => void;\n};\n\nexport const usePaginationKeys = (params: UsePaginationKeysParams) => {\n const {\n containerEventListener = window,\n hotKeys,\n handleNext,\n handlePrevious,\n } = params;\n const keys: React.MutableRefObject<string[]> = useRef([]);\n const mutableRefs = useMutableRef([\n hotKeys || [],\n handleNext,\n handlePrevious,\n ] as const);\n\n const keyUpListener: EventListener = useCallback((event) => {\n const { key } = event as KeyboardEvent;\n keys.current = keys.current.filter((hotKey) => hotKey !== key);\n }, []);\n\n const keyDownListener = useCallback((event: KeyboardEvent) => {\n const { key } = event;\n const [start, end] = mutableRefs.current[0];\n\n if (start?.keys.includes(key) || end?.keys.includes(key)) {\n const newKeys = [...keys.current, key];\n if (end?.keys.every((hotKey) => newKeys.includes(hotKey))) {\n mutableRefs.current[1](event);\n } else if (start?.keys.every((hotKey) => newKeys.includes(hotKey))) {\n mutableRefs.current[2](event);\n }\n keys.current = newKeys;\n }\n }, []);\n\n useLayoutEffect(() => {\n containerEventListener.addEventListener(\n 'keydown',\n keyDownListener as EventListener,\n );\n containerEventListener.addEventListener('keyup', keyUpListener);\n return () => {\n containerEventListener.removeEventListener(\n 'keydown',\n keyDownListener as EventListener,\n );\n containerEventListener.removeEventListener('keyup', keyUpListener);\n };\n }, [containerEventListener]);\n};\n"],"mappings":"0IAAA,OAASA,WAAT,CAAsBC,eAAtB,CAAuCC,MAAvC,KAAqD,OAArD,CAEA,OAASC,aAAT,iCAWA,MAAO,IAAMC,kBAAiB,CAAG,SAACC,CAAD,CAAqC,OAMhEA,CANgE,CAElEC,sBAFkE,CAElEA,CAFkE,YAEzCC,MAFyC,GAGlEC,CAHkE,CAMhEH,CANgE,CAGlEG,OAHkE,CAIlEC,CAJkE,CAMhEJ,CANgE,CAIlEI,UAJkE,CAKlEC,CALkE,CAMhEL,CANgE,CAKlEK,cALkE,CAO9DC,CAAsC,CAAGT,MAAM,CAAC,EAAD,CAPe,CAQ9DU,CAAW,CAAGT,aAAa,CAAC,CAChCK,CAAO,EAAI,EADqB,CAEhCC,CAFgC,CAGhCC,CAHgC,CAAD,CARmC,CAc9DG,CAA4B,CAAGb,WAAW,CAAC,SAACc,CAAD,CAAW,CAC1D,GAAQC,EAAR,CAAgBD,CAAhB,CAAQC,GAAR,CACAJ,CAAI,CAACK,OAAL,CAAeL,CAAI,CAACK,OAAL,CAAaC,MAAb,CAAoB,SAACC,CAAD,QAAYA,EAAM,GAAKH,CAAvB,CAApB,CAChB,CAH+C,CAG7C,EAH6C,CAdoB,CAmB9DI,CAAe,CAAGnB,WAAW,CAAC,SAACc,CAAD,CAA0B,IACpDC,EADoD,CAC5CD,CAD4C,CACpDC,GADoD,kBAEvCH,CAAW,CAACI,OAAZ,CAAoB,CAApB,CAFuC,IAErDI,CAFqD,MAE9CC,CAF8C,MAI5D,GAAI,OAAAD,CAAK,WAALA,CAAA,EAAAA,CAAK,CAAET,IAAP,CAAYW,QAAZ,CAAqBP,CAArB,UAA6BM,CAA7B,WAA6BA,CAA7B,EAA6BA,CAAG,CAAEV,IAAL,CAAUW,QAAV,CAAmBP,CAAnB,CAAjC,CAA0D,CACxD,GAAMQ,EAAO,8BAAOZ,CAAI,CAACK,OAAZ,GAAqBD,CAArB,EAAb,CADwD,OAEpDM,CAFoD,WAEpDA,CAFoD,EAEpDA,CAAG,CAAEV,IAAL,CAAUa,KAAV,CAAgB,SAACN,CAAD,QAAYK,EAAO,CAACD,QAAR,CAAiBJ,CAAjB,CAAZ,CAAhB,CAFoD,CAGtDN,CAAW,CAACI,OAAZ,CAAoB,CAApB,EAAuBF,CAAvB,CAHsD,QAI7CM,CAJ6C,WAI7CA,CAJ6C,EAI7CA,CAAK,CAAET,IAAP,CAAYa,KAAZ,CAAkB,SAACN,CAAD,QAAYK,EAAO,CAACD,QAAR,CAAiBJ,CAAjB,CAAZ,CAAlB,CAJ6C,EAKtDN,CAAW,CAACI,OAAZ,CAAoB,CAApB,EAAuBF,CAAvB,CALsD,CAOxDH,CAAI,CAACK,OAAL,CAAeO,CAChB,CACF,CAbkC,CAahC,EAbgC,CAnBiC,CAkCpEtB,eAAe,CAAC,UAAM,CAMpB,MALAK,EAAsB,CAACmB,gBAAvB,CACE,SADF,CAEEN,CAFF,CAKA,CADAb,CAAsB,CAACmB,gBAAvB,CAAwC,OAAxC,CAAiDZ,CAAjD,CACA,CAAO,UAAM,CACXP,CAAsB,CAACoB,mBAAvB,CACE,SADF,CAEEP,CAFF,CADW,CAKXb,CAAsB,CAACoB,mBAAvB,CAA2C,OAA3C,CAAoDb,CAApD,CACD,CACF,CAbc,CAaZ,CAACP,CAAD,CAbY,CAchB,CAhDM"}
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["steps","direction","size","className","activeStepIndex","onItemClick","getItemContent","getItemLabel","getItemPoint","getItemProgress","getItemStatus","getItemTooltipContent","getItemLineStatus","getItemOnClick","style"];import"./ProgressStepBar.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{createRef,forwardRef,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import{cnMixScrollBar}from"../../mixs/MixScrollBar";import{useComponentSize}from"../../hooks/useComponentSize/useComponentSize";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useOverflow}from"../../hooks/useOverflow/useOverflow";import{useScrollElements}from"../../hooks/useScrollElements/useScrollElements";import{Button}from"../Button/Button";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{calculateLines,cnProgressStepBar,getItemPosition,progressStepBarPropDirectionDefault,progressStepBarPropSizeDefault,withDefaultGetters}from"./helpers";import{ProgressStepBarItem}from"./ProgressStepBarItem/ProgressStepBarItem";import{ProgressStepBarLine}from"./ProgressStepBarLine/ProgressStepBarLine";export var COMPONENT_NAME="ProgressStepBar";function ProgressStepBarRender(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),c),e=d.steps,f=void 0===e?[]:e,g=d.direction,h=void 0===g?progressStepBarPropDirectionDefault:g,i=d.size,j=void 0===i?progressStepBarPropSizeDefault:i,k=d.className,l=d.activeStepIndex,m=d.onItemClick,n=d.getItemContent,o=d.getItemLabel,p=d.getItemPoint,q=d.getItemProgress,r=d.getItemStatus,s=d.getItemTooltipContent,t=d.getItemLineStatus,u=d.getItemOnClick,v=d.style,w=_objectWithoutProperties(d,_excluded),x=useState(l||0),y=_slicedToArray(x,2),z=y[0],A=y[1],B=useState([]),C=_slicedToArray(B,2),D=C[0],E=C[1],F=useRef(null),G=useComponentSize(c),H=G.width,I=G.height,J=useScrollElements(f),K=J.refs,L=J.scrollTo,M=useMemo(function(){return Array(f.length).fill(null).map(function(){return createRef()})},[f.length]);useLayoutEffect(function(){var a=[],b=calculateLines(K,h);f.forEach(function(c,d){var e;d!==f.length-1&&a.push({status:t(c)||"normal",size:null!==(e=b[d])&&void 0!==e?e:0})}),E(a)},[l,f,h,j,H,I]),useEffect(function(){A(l||0)},[l]),useEffect(function(){L(z)},[z]);var N=function(a){a&&0!==z&&A(z-1),a||z===f.length-1||A(z+1)},O=function(a,b){var c=u(a),d=m?function(d){m(a,{e:d,index:b}),null===c||void 0===c?void 0:c(d)}:void 0;return{content:n(a),label:o(a),point:p(a),progress:q(a),status:"number"==typeof l&&l>=b?r(a)||"normal":"system",tooltipContent:s(a),size:j,position:getItemPosition(b,f.length),pointRef:M[b],direction:h,className:cnProgressStepBar("Item"),onClick:c||d,key:cnProgressStepBar({index:b}),tooltipZIndex:"number"==typeof(null===v||void 0===v?void 0:v.zIndex)?v.zIndex+1:void 0}},P=useOverflow({currentRef:F});return React.createElement("div",Object.assign({},w,{style:v,className:cnProgressStepBar({isOverflow:P},[k,cnMixScrollBar()]),ref:useForkRef([b,c])}),P&&"vertical"!==h&&React.createElement(Button,{iconLeft:function iconLeft(){return React.createElement(IconArrowLeft,{size:"xs"})},view:"clear",onlyIcon:!0,type:"button",size:"xs",className:cnProgressStepBar("Button",{side:"left"}),onClick:function onClick(){return N(!0)}}),React.createElement("div",{ref:F,className:cnProgressStepBar("List",{direction:h,overflow:P})},React.createElement(ProgressStepBarLine,{lines:D,size:j,direction:h,activeStepIndex:l}),f.map(function(a,b){return React.createElement(ProgressStepBarItem,Object.assign({ref:K[b]},O(a,b)))})),P&&"vertical"!==h&&React.createElement(Button,{iconLeft:function iconLeft(){return React.createElement(IconArrowRight,{size:"xs"})},view:"clear",onlyIcon:!0,size:"xs",type:"button",className:cnProgressStepBar("Button",{side:"right"}),onClick:function onClick(){return N(!1)}}))}export var ProgressStepBar=forwardRef(ProgressStepBarRender);
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["steps","direction","size","className","activeStepIndex","onItemClick","getItemContent","getItemLabel","getItemPoint","getItemProgress","getItemStatus","getItemTooltipContent","getItemLineStatus","getItemOnClick","style"];import"./ProgressStepBar.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{createRef,forwardRef,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import{cnMixScrollBar}from"../../mixs/MixScrollBar";import{useComponentSize}from"../../hooks/useComponentSize/useComponentSize";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useOverflow}from"../../hooks/useOverflow/useOverflow";import{useScrollElements}from"../../hooks/useScrollElements/useScrollElements";import{Button}from"../Button/Button";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{calculateLines,cnProgressStepBar,getItemPosition,progressStepBarPropDirectionDefault,progressStepBarPropSizeDefault,withDefaultGetters}from"./helpers";import{ProgressStepBarItem}from"./ProgressStepBarItem/ProgressStepBarItem";import{ProgressStepBarLine}from"./ProgressStepBarLine/ProgressStepBarLine";export var COMPONENT_NAME="ProgressStepBar";function ProgressStepBarRender(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),c),e=d.steps,f=void 0===e?[]:e,g=d.direction,h=void 0===g?progressStepBarPropDirectionDefault:g,i=d.size,j=void 0===i?progressStepBarPropSizeDefault:i,k=d.className,l=d.activeStepIndex,m=d.onItemClick,n=d.getItemContent,o=d.getItemLabel,p=d.getItemPoint,q=d.getItemProgress,r=d.getItemStatus,s=d.getItemTooltipContent,t=d.getItemLineStatus,u=d.getItemOnClick,v=d.style,w=_objectWithoutProperties(d,_excluded),x=useState(l||0),y=_slicedToArray(x,2),z=y[0],A=y[1],B=useState([]),C=_slicedToArray(B,2),D=C[0],E=C[1],F=useRef(null),G=useComponentSize(c),H=G.width,I=G.height,J=useScrollElements(f),K=J.refs,L=J.scrollTo,M=useMemo(function(){return Array(f.length).fill(null).map(function(){return createRef()})},[f.length]),N=useOverflow({currentRef:F});useLayoutEffect(function(){var a=[],b=calculateLines(K,h);f.forEach(function(c,d){var e;d!==f.length-1&&a.push({status:t(c)||"normal",size:null!==(e=b[d])&&void 0!==e?e:0})}),E(a)},[l,f,h,j,H,I,N]),useEffect(function(){A(l||0)},[l]),useEffect(function(){L(z)},[z]);var O=function(a){a&&0!==z&&A(z-1),a||z===f.length-1||A(z+1)},P=function(a,b){var c=u(a),d=m?function(d){m(a,{e:d,index:b}),null===c||void 0===c?void 0:c(d)}:void 0;return{content:n(a),label:o(a),point:p(a),progress:q(a),status:"number"==typeof l&&l>=b?r(a)||"normal":"system",tooltipContent:s(a),size:j,position:getItemPosition(b,f.length),pointRef:M[b],direction:h,className:cnProgressStepBar("Item"),onClick:c||d,key:cnProgressStepBar({index:b}),tooltipZIndex:"number"==typeof(null===v||void 0===v?void 0:v.zIndex)?v.zIndex+1:void 0}};return React.createElement("div",Object.assign({},w,{style:v,className:cnProgressStepBar({isOverflow:N},[k,cnMixScrollBar()]),ref:useForkRef([b,c])}),N&&"vertical"!==h&&React.createElement(Button,{iconLeft:function iconLeft(){return React.createElement(IconArrowLeft,{size:"xs"})},view:"clear",onlyIcon:!0,type:"button",size:"xs",className:cnProgressStepBar("Button",{side:"left"}),onClick:function onClick(){return O(!0)}}),React.createElement("div",{ref:F,className:cnProgressStepBar("List",{direction:h,overflow:N})},React.createElement(ProgressStepBarLine,{lines:D,size:j,direction:h,activeStepIndex:l}),f.map(function(a,b){return React.createElement(ProgressStepBarItem,Object.assign({ref:K[b]},P(a,b)))})),N&&"vertical"!==h&&React.createElement(Button,{iconLeft:function iconLeft(){return React.createElement(IconArrowRight,{size:"xs"})},view:"clear",onlyIcon:!0,size:"xs",type:"button",className:cnProgressStepBar("Button",{side:"right"}),onClick:function onClick(){return O(!1)}}))}export var ProgressStepBar=forwardRef(ProgressStepBarRender);
2
2
  //# sourceMappingURL=ProgressStepBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressStepBar.js","names":["IconArrowLeft","IconArrowRight","React","createRef","forwardRef","useEffect","useLayoutEffect","useMemo","useRef","useState","cnMixScrollBar","useComponentSize","useForkRef","useOverflow","useScrollElements","Button","usePropsHandler","calculateLines","cnProgressStepBar","getItemPosition","progressStepBarPropDirectionDefault","progressStepBarPropSizeDefault","withDefaultGetters","ProgressStepBarItem","ProgressStepBarLine","COMPONENT_NAME","ProgressStepBarRender","props","ref","containerRef","steps","direction","size","className","activeStepIndex","onItemClick","getItemContent","getItemLabel","getItemPoint","getItemProgress","getItemStatus","getItemTooltipContent","getItemLineStatus","getItemOnClick","style","otherProps","visibleIndex","setVisibleIndex","lines","setLines","listRef","width","height","refs","scrollTo","stepsRef","Array","length","fill","map","linesArray","sizes","forEach","step","index","push","status","changePosition","prev","getStepItem","item","onClick","onItemClickHandler","e","content","label","point","progress","tooltipContent","position","pointRef","key","tooltipZIndex","zIndex","isOverflow","currentRef","side","overflow","ProgressStepBar"],"sources":["../../../../../src/components/ProgressStepBar/ProgressStepBar.tsx"],"sourcesContent":["import './ProgressStepBar.css';\n\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, {\n createRef,\n forwardRef,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\n\nimport { useComponentSize } from '../../hooks/useComponentSize/useComponentSize';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useOverflow } from '../../hooks/useOverflow/useOverflow';\nimport { useScrollElements } from '../../hooks/useScrollElements/useScrollElements';\nimport { Button } from '../Button/Button';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport {\n calculateLines,\n cnProgressStepBar,\n getItemPosition,\n Line,\n ProgressStepBarComponent,\n ProgressStepBarItemDefault,\n ProgressStepBarItemProps,\n progressStepBarPropDirectionDefault,\n ProgressStepBarProps,\n progressStepBarPropSizeDefault,\n withDefaultGetters,\n} from './helpers';\nimport { ProgressStepBarItem } from './ProgressStepBarItem/ProgressStepBarItem';\nimport { ProgressStepBarLine } from './ProgressStepBarLine/ProgressStepBarLine';\n\nexport const COMPONENT_NAME = 'ProgressStepBar' as const;\n\nfunction ProgressStepBarRender<ITEM = ProgressStepBarItemDefault>(\n props: ProgressStepBarProps<ITEM>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const {\n steps = [],\n direction = progressStepBarPropDirectionDefault,\n size = progressStepBarPropSizeDefault,\n className,\n activeStepIndex,\n onItemClick,\n getItemContent,\n getItemLabel,\n getItemPoint,\n getItemProgress,\n getItemStatus,\n getItemTooltipContent,\n getItemLineStatus,\n getItemOnClick,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), containerRef);\n\n const [visibleIndex, setVisibleIndex] = useState<number>(\n activeStepIndex || 0,\n );\n const [lines, setLines] = useState<Line[]>([]);\n\n const listRef = useRef<HTMLDivElement>(null);\n\n const { width, height } = useComponentSize(containerRef);\n\n const { refs, scrollTo } = useScrollElements(steps);\n\n const stepsRef = useMemo(\n () =>\n new Array(steps.length)\n .fill(null)\n .map(() => createRef<HTMLButtonElement>()),\n [steps.length],\n );\n\n useLayoutEffect(() => {\n const linesArray: Line[] = [];\n const sizes = calculateLines(refs, direction);\n\n steps.forEach((step, index) => {\n if (index !== steps.length - 1)\n linesArray.push({\n status: getItemLineStatus(step) || 'normal',\n size: sizes[index] ?? 0,\n });\n });\n setLines(linesArray);\n }, [activeStepIndex, steps, direction, size, width, height]);\n\n useEffect(() => {\n setVisibleIndex(activeStepIndex || 0);\n }, [activeStepIndex]);\n\n useEffect(() => {\n scrollTo(visibleIndex);\n }, [visibleIndex]);\n\n const changePosition = (prev: boolean) => {\n if (prev && visibleIndex !== 0) {\n setVisibleIndex(visibleIndex - 1);\n }\n if (!prev && visibleIndex !== steps.length - 1) {\n setVisibleIndex(visibleIndex + 1);\n }\n };\n\n const getStepItem: (item: ITEM, index: number) => ProgressStepBarItemProps = (\n item,\n index,\n ) => {\n const onClick = getItemOnClick(item);\n\n const onItemClickHandler = onItemClick\n ? (e: React.MouseEvent<Element, MouseEvent>) => {\n onItemClick(item, { e, index });\n onClick?.(e);\n }\n : undefined;\n\n return {\n content: getItemContent(item),\n label: getItemLabel(item),\n point: getItemPoint(item),\n progress: getItemProgress(item),\n status:\n typeof activeStepIndex === 'number' && activeStepIndex >= index\n ? getItemStatus(item) || 'normal'\n : 'system',\n tooltipContent: getItemTooltipContent(item),\n size,\n position: getItemPosition(index, steps.length),\n pointRef: stepsRef[index] as React.RefObject<HTMLButtonElement>,\n direction,\n className: cnProgressStepBar('Item'),\n onClick: onClick || onItemClickHandler,\n key: cnProgressStepBar({ index }),\n tooltipZIndex:\n typeof style?.zIndex === 'number' ? style.zIndex + 1 : undefined,\n };\n };\n\n const isOverflow = useOverflow({ currentRef: listRef });\n\n return (\n <div\n {...otherProps}\n style={style}\n className={cnProgressStepBar({ isOverflow }, [\n className,\n cnMixScrollBar(),\n ])}\n ref={useForkRef([ref, containerRef])}\n >\n {isOverflow && direction !== 'vertical' && (\n <Button\n iconLeft={() => <IconArrowLeft size=\"xs\" />}\n view=\"clear\"\n onlyIcon\n type=\"button\"\n size=\"xs\"\n className={cnProgressStepBar('Button', { side: 'left' })}\n onClick={() => changePosition(true)}\n />\n )}\n <div\n ref={listRef}\n className={cnProgressStepBar('List', {\n direction,\n overflow: isOverflow,\n })}\n >\n <ProgressStepBarLine\n lines={lines}\n size={size}\n direction={direction}\n activeStepIndex={activeStepIndex}\n />\n {steps.map((step, index) => (\n <ProgressStepBarItem\n ref={refs[index] as React.RefObject<HTMLDivElement>}\n {...getStepItem(step, index)}\n />\n ))}\n </div>\n {isOverflow && direction !== 'vertical' && (\n <Button\n iconLeft={() => <IconArrowRight size=\"xs\" />}\n view=\"clear\"\n onlyIcon\n size=\"xs\"\n type=\"button\"\n className={cnProgressStepBar('Button', { side: 'right' })}\n onClick={() => changePosition(false)}\n />\n )}\n </div>\n );\n}\n\nexport const ProgressStepBar = forwardRef(\n ProgressStepBarRender,\n) as ProgressStepBarComponent;\n"],"mappings":"mYAAA,8BAEA,OAASA,aAAT,KAA8B,6BAA9B,CACA,OAASC,cAAT,KAA+B,8BAA/B,CACA,MAAOC,MAAP,EACEC,SADF,CAEEC,UAFF,CAGEC,SAHF,CAIEC,eAJF,CAKEC,OALF,CAMEC,MANF,CAOEC,QAPF,KAQO,OARP,CAUA,OAASC,cAAT,+BAEA,OAASC,gBAAT,qDACA,OAASC,UAAT,yCACA,OAASC,WAAT,2CACA,OAASC,iBAAT,uDACA,OAASC,MAAT,wBACA,OAASC,eAAT,2CACA,OACEC,cADF,CAEEC,iBAFF,CAGEC,eAHF,CAQEC,mCARF,CAUEC,8BAVF,CAWEC,kBAXF,iBAaA,OAASC,mBAAT,iDACA,OAASC,mBAAT,iDAEA,MAAO,IAAMC,eAAc,CAAG,iBAAvB,CAEP,QAASC,sBAAT,CACEC,CADF,CAEEC,CAFF,CAGE,IACMC,EAAY,CAAGrB,MAAM,CAAiB,IAAjB,CAD3B,GAoBIQ,eAAe,CAACS,cAAD,CAAiBH,kBAAkB,CAACK,CAAD,CAAnC,CAA4CE,CAA5C,CApBnB,KAIEC,KAJF,CAIEA,CAJF,YAIU,EAJV,OAKEC,SALF,CAKEA,CALF,YAKcX,mCALd,OAMEY,IANF,CAMEA,CANF,YAMSX,8BANT,GAOEY,CAPF,GAOEA,SAPF,CAQEC,CARF,GAQEA,eARF,CASEC,CATF,GASEA,WATF,CAUEC,CAVF,GAUEA,cAVF,CAWEC,CAXF,GAWEA,YAXF,CAYEC,CAZF,GAYEA,YAZF,CAaEC,CAbF,GAaEA,eAbF,CAcEC,CAdF,GAcEA,aAdF,CAeEC,CAfF,GAeEA,qBAfF,CAgBEC,CAhBF,GAgBEA,iBAhBF,CAiBEC,CAjBF,GAiBEA,cAjBF,CAkBEC,CAlBF,GAkBEA,KAlBF,CAmBKC,CAnBL,yCAsBwCpC,QAAQ,CAC9CyB,CAAe,EAAI,CAD2B,CAtBhD,uBAsBOY,CAtBP,MAsBqBC,CAtBrB,QAyB0BtC,QAAQ,CAAS,EAAT,CAzBlC,uBAyBOuC,CAzBP,MAyBcC,CAzBd,MA2BMC,CAAO,CAAG1C,MAAM,CAAiB,IAAjB,CA3BtB,GA6B0BG,gBAAgB,CAACkB,CAAD,CA7B1C,CA6BQsB,CA7BR,GA6BQA,KA7BR,CA6BeC,CA7Bf,GA6BeA,MA7Bf,GA+B2BtC,iBAAiB,CAACgB,CAAD,CA/B5C,CA+BQuB,CA/BR,GA+BQA,IA/BR,CA+BcC,CA/Bd,GA+BcA,QA/Bd,CAiCMC,CAAQ,CAAGhD,OAAO,CACtB,iBACMiD,MAAJ,CAAU1B,CAAK,CAAC2B,MAAhB,EACGC,IADH,CACQ,IADR,EAEGC,GAFH,CAEO,iBAAMxD,UAAS,EAAf,CAFP,CADF,CADsB,CAKtB,CAAC2B,CAAK,CAAC2B,MAAP,CALsB,CAjCxB,CAyCAnD,eAAe,CAAC,UAAM,IACdsD,EAAkB,CAAG,EADP,CAEdC,CAAK,CAAG5C,cAAc,CAACoC,CAAD,CAAOtB,CAAP,CAFR,CAIpBD,CAAK,CAACgC,OAAN,CAAc,SAACC,CAAD,CAAOC,CAAP,CAAiB,OACzBA,CAAK,GAAKlC,CAAK,CAAC2B,MAAN,CAAe,CADA,EAE3BG,CAAU,CAACK,IAAX,CAAgB,CACdC,MAAM,CAAExB,CAAiB,CAACqB,CAAD,CAAjB,EAA2B,QADrB,CAEd/B,IAAI,WAAE6B,CAAK,CAACG,CAAD,CAAP,gBAAkB,CAFR,CAAhB,CAIH,CAND,CAJoB,CAWpBf,CAAQ,CAACW,CAAD,CACT,CAZc,CAYZ,CAAC1B,CAAD,CAAkBJ,CAAlB,CAAyBC,CAAzB,CAAoCC,CAApC,CAA0CmB,CAA1C,CAAiDC,CAAjD,CAZY,CAzCf,CAuDA/C,SAAS,CAAC,UAAM,CACd0C,CAAe,CAACb,CAAe,EAAI,CAApB,CAChB,CAFQ,CAEN,CAACA,CAAD,CAFM,CAvDT,CA2DA7B,SAAS,CAAC,UAAM,CACdiD,CAAQ,CAACR,CAAD,CACT,CAFQ,CAEN,CAACA,CAAD,CAFM,CA3DT,IA+DMqB,EAAc,CAAG,SAACC,CAAD,CAAmB,CACpCA,CAAI,EAAqB,CAAjB,GAAAtB,CAD4B,EAEtCC,CAAe,CAACD,CAAY,CAAG,CAAhB,CAFuB,CAInCsB,CAAD,EAAStB,CAAY,GAAKhB,CAAK,CAAC2B,MAAN,CAAe,CAJL,EAKtCV,CAAe,CAACD,CAAY,CAAG,CAAhB,CAElB,CAtED,CAwEMuB,CAAoE,CAAG,SAC3EC,CAD2E,CAE3EN,CAF2E,CAGxE,IACGO,EAAO,CAAG5B,CAAc,CAAC2B,CAAD,CAD3B,CAGGE,CAAkB,CAAGrC,CAAW,CAClC,SAACsC,CAAD,CAA8C,CAC5CtC,CAAW,CAACmC,CAAD,CAAO,CAAEG,CAAC,CAADA,CAAF,CAAKT,KAAK,CAALA,CAAL,CAAP,CADiC,QAE5CO,CAF4C,WAE5CA,CAF4C,QAE5CA,CAAO,CAAGE,CAAH,CACR,CAJiC,OAHnC,CAUH,MAAO,CACLC,OAAO,CAAEtC,CAAc,CAACkC,CAAD,CADlB,CAELK,KAAK,CAAEtC,CAAY,CAACiC,CAAD,CAFd,CAGLM,KAAK,CAAEtC,CAAY,CAACgC,CAAD,CAHd,CAILO,QAAQ,CAAEtC,CAAe,CAAC+B,CAAD,CAJpB,CAKLJ,MAAM,CACuB,QAA3B,QAAOhC,EAAP,EAAuCA,CAAe,EAAI8B,CAA1D,CACIxB,CAAa,CAAC8B,CAAD,CAAb,EAAuB,QAD3B,CAEI,QARD,CASLQ,cAAc,CAAErC,CAAqB,CAAC6B,CAAD,CAThC,CAULtC,IAAI,CAAJA,CAVK,CAWL+C,QAAQ,CAAE5D,eAAe,CAAC6C,CAAD,CAAQlC,CAAK,CAAC2B,MAAd,CAXpB,CAYLuB,QAAQ,CAAEzB,CAAQ,CAACS,CAAD,CAZb,CAaLjC,SAAS,CAATA,CAbK,CAcLE,SAAS,CAAEf,iBAAiB,CAAC,MAAD,CAdvB,CAeLqD,OAAO,CAAEA,CAAO,EAAIC,CAff,CAgBLS,GAAG,CAAE/D,iBAAiB,CAAC,CAAE8C,KAAK,CAALA,CAAF,CAAD,CAhBjB,CAiBLkB,aAAa,CACc,QAAzB,gBAAOtC,CAAP,WAAOA,CAAP,QAAOA,CAAK,CAAEuC,MAAd,EAAoCvC,CAAK,CAACuC,MAAN,CAAe,CAAnD,OAlBG,CAoBR,CAzGD,CA2GMC,CAAU,CAAGvE,WAAW,CAAC,CAAEwE,UAAU,CAAEnC,CAAd,CAAD,CA3G9B,CA6GA,MACE,4CACML,CADN,EAEE,KAAK,CAAED,CAFT,CAGE,SAAS,CAAE1B,iBAAiB,CAAC,CAAEkE,UAAU,CAAVA,CAAF,CAAD,CAAiB,CAC3CnD,CAD2C,CAE3CvB,cAAc,EAF6B,CAAjB,CAH9B,CAOE,GAAG,CAAEE,UAAU,CAAC,CAACgB,CAAD,CAAMC,CAAN,CAAD,CAPjB,GASGuD,CAAU,EAAkB,UAAd,GAAArD,CAAd,EACC,oBAAC,MAAD,EACE,QAAQ,CAAE,0BAAM,qBAAC,aAAD,EAAe,IAAI,CAAC,IAApB,EAAN,CADZ,CAEE,IAAI,CAAC,OAFP,CAGE,QAAQ,GAHV,CAIE,IAAI,CAAC,QAJP,CAKE,IAAI,CAAC,IALP,CAME,SAAS,CAAEb,iBAAiB,CAAC,QAAD,CAAW,CAAEoE,IAAI,CAAE,MAAR,CAAX,CAN9B,CAOE,OAAO,CAAE,yBAAMnB,EAAc,IAApB,CAPX,EAVJ,CAoBE,2BACE,GAAG,CAAEjB,CADP,CAEE,SAAS,CAAEhC,iBAAiB,CAAC,MAAD,CAAS,CACnCa,SAAS,CAATA,CADmC,CAEnCwD,QAAQ,CAAEH,CAFyB,CAAT,CAF9B,EAOE,oBAAC,mBAAD,EACE,KAAK,CAAEpC,CADT,CAEE,IAAI,CAAEhB,CAFR,CAGE,SAAS,CAAED,CAHb,CAIE,eAAe,CAAEG,CAJnB,EAPF,CAaGJ,CAAK,CAAC6B,GAAN,CAAU,SAACI,CAAD,CAAOC,CAAP,QACT,qBAAC,mBAAD,gBACE,GAAG,CAAEX,CAAI,CAACW,CAAD,CADX,EAEMK,CAAW,CAACN,CAAD,CAAOC,CAAP,CAFjB,EADS,CAAV,CAbH,CApBF,CAwCGoB,CAAU,EAAkB,UAAd,GAAArD,CAAd,EACC,oBAAC,MAAD,EACE,QAAQ,CAAE,0BAAM,qBAAC,cAAD,EAAgB,IAAI,CAAC,IAArB,EAAN,CADZ,CAEE,IAAI,CAAC,OAFP,CAGE,QAAQ,GAHV,CAIE,IAAI,CAAC,IAJP,CAKE,IAAI,CAAC,QALP,CAME,SAAS,CAAEb,iBAAiB,CAAC,QAAD,CAAW,CAAEoE,IAAI,CAAE,OAAR,CAAX,CAN9B,CAOE,OAAO,CAAE,yBAAMnB,EAAc,IAApB,CAPX,EAzCJ,CAqDH,CAED,MAAO,IAAMqB,gBAAe,CAAGpF,UAAU,CACvCsB,qBADuC,CAAlC"}
1
+ {"version":3,"file":"ProgressStepBar.js","names":["IconArrowLeft","IconArrowRight","React","createRef","forwardRef","useEffect","useLayoutEffect","useMemo","useRef","useState","cnMixScrollBar","useComponentSize","useForkRef","useOverflow","useScrollElements","Button","usePropsHandler","calculateLines","cnProgressStepBar","getItemPosition","progressStepBarPropDirectionDefault","progressStepBarPropSizeDefault","withDefaultGetters","ProgressStepBarItem","ProgressStepBarLine","COMPONENT_NAME","ProgressStepBarRender","props","ref","containerRef","steps","direction","size","className","activeStepIndex","onItemClick","getItemContent","getItemLabel","getItemPoint","getItemProgress","getItemStatus","getItemTooltipContent","getItemLineStatus","getItemOnClick","style","otherProps","visibleIndex","setVisibleIndex","lines","setLines","listRef","width","height","refs","scrollTo","stepsRef","Array","length","fill","map","isOverflow","currentRef","linesArray","sizes","forEach","step","index","push","status","changePosition","prev","getStepItem","item","onClick","onItemClickHandler","e","content","label","point","progress","tooltipContent","position","pointRef","key","tooltipZIndex","zIndex","side","overflow","ProgressStepBar"],"sources":["../../../../../src/components/ProgressStepBar/ProgressStepBar.tsx"],"sourcesContent":["import './ProgressStepBar.css';\n\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, {\n createRef,\n forwardRef,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\n\nimport { useComponentSize } from '../../hooks/useComponentSize/useComponentSize';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useOverflow } from '../../hooks/useOverflow/useOverflow';\nimport { useScrollElements } from '../../hooks/useScrollElements/useScrollElements';\nimport { Button } from '../Button/Button';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport {\n calculateLines,\n cnProgressStepBar,\n getItemPosition,\n Line,\n ProgressStepBarComponent,\n ProgressStepBarItemDefault,\n ProgressStepBarItemProps,\n progressStepBarPropDirectionDefault,\n ProgressStepBarProps,\n progressStepBarPropSizeDefault,\n withDefaultGetters,\n} from './helpers';\nimport { ProgressStepBarItem } from './ProgressStepBarItem/ProgressStepBarItem';\nimport { ProgressStepBarLine } from './ProgressStepBarLine/ProgressStepBarLine';\n\nexport const COMPONENT_NAME = 'ProgressStepBar' as const;\n\nfunction ProgressStepBarRender<ITEM = ProgressStepBarItemDefault>(\n props: ProgressStepBarProps<ITEM>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const {\n steps = [],\n direction = progressStepBarPropDirectionDefault,\n size = progressStepBarPropSizeDefault,\n className,\n activeStepIndex,\n onItemClick,\n getItemContent,\n getItemLabel,\n getItemPoint,\n getItemProgress,\n getItemStatus,\n getItemTooltipContent,\n getItemLineStatus,\n getItemOnClick,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), containerRef);\n\n const [visibleIndex, setVisibleIndex] = useState<number>(\n activeStepIndex || 0,\n );\n const [lines, setLines] = useState<Line[]>([]);\n\n const listRef = useRef<HTMLDivElement>(null);\n\n const { width, height } = useComponentSize(containerRef);\n\n const { refs, scrollTo } = useScrollElements(steps);\n\n const stepsRef = useMemo(\n () =>\n new Array(steps.length)\n .fill(null)\n .map(() => createRef<HTMLButtonElement>()),\n [steps.length],\n );\n const isOverflow = useOverflow({ currentRef: listRef });\n\n useLayoutEffect(() => {\n const linesArray: Line[] = [];\n const sizes = calculateLines(refs, direction);\n\n steps.forEach((step, index) => {\n if (index !== steps.length - 1)\n linesArray.push({\n status: getItemLineStatus(step) || 'normal',\n size: sizes[index] ?? 0,\n });\n });\n setLines(linesArray);\n }, [activeStepIndex, steps, direction, size, width, height, isOverflow]);\n\n useEffect(() => {\n setVisibleIndex(activeStepIndex || 0);\n }, [activeStepIndex]);\n\n useEffect(() => {\n scrollTo(visibleIndex);\n }, [visibleIndex]);\n\n const changePosition = (prev: boolean) => {\n if (prev && visibleIndex !== 0) {\n setVisibleIndex(visibleIndex - 1);\n }\n if (!prev && visibleIndex !== steps.length - 1) {\n setVisibleIndex(visibleIndex + 1);\n }\n };\n\n const getStepItem: (item: ITEM, index: number) => ProgressStepBarItemProps = (\n item,\n index,\n ) => {\n const onClick = getItemOnClick(item);\n\n const onItemClickHandler = onItemClick\n ? (e: React.MouseEvent<Element, MouseEvent>) => {\n onItemClick(item, { e, index });\n onClick?.(e);\n }\n : undefined;\n\n return {\n content: getItemContent(item),\n label: getItemLabel(item),\n point: getItemPoint(item),\n progress: getItemProgress(item),\n status:\n typeof activeStepIndex === 'number' && activeStepIndex >= index\n ? getItemStatus(item) || 'normal'\n : 'system',\n tooltipContent: getItemTooltipContent(item),\n size,\n position: getItemPosition(index, steps.length),\n pointRef: stepsRef[index] as React.RefObject<HTMLButtonElement>,\n direction,\n className: cnProgressStepBar('Item'),\n onClick: onClick || onItemClickHandler,\n key: cnProgressStepBar({ index }),\n tooltipZIndex:\n typeof style?.zIndex === 'number' ? style.zIndex + 1 : undefined,\n };\n };\n\n return (\n <div\n {...otherProps}\n style={style}\n className={cnProgressStepBar({ isOverflow }, [\n className,\n cnMixScrollBar(),\n ])}\n ref={useForkRef([ref, containerRef])}\n >\n {isOverflow && direction !== 'vertical' && (\n <Button\n iconLeft={() => <IconArrowLeft size=\"xs\" />}\n view=\"clear\"\n onlyIcon\n type=\"button\"\n size=\"xs\"\n className={cnProgressStepBar('Button', { side: 'left' })}\n onClick={() => changePosition(true)}\n />\n )}\n <div\n ref={listRef}\n className={cnProgressStepBar('List', {\n direction,\n overflow: isOverflow,\n })}\n >\n <ProgressStepBarLine\n lines={lines}\n size={size}\n direction={direction}\n activeStepIndex={activeStepIndex}\n />\n {steps.map((step, index) => (\n <ProgressStepBarItem\n ref={refs[index] as React.RefObject<HTMLDivElement>}\n {...getStepItem(step, index)}\n />\n ))}\n </div>\n {isOverflow && direction !== 'vertical' && (\n <Button\n iconLeft={() => <IconArrowRight size=\"xs\" />}\n view=\"clear\"\n onlyIcon\n size=\"xs\"\n type=\"button\"\n className={cnProgressStepBar('Button', { side: 'right' })}\n onClick={() => changePosition(false)}\n />\n )}\n </div>\n );\n}\n\nexport const ProgressStepBar = forwardRef(\n ProgressStepBarRender,\n) as ProgressStepBarComponent;\n"],"mappings":"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"}
@@ -39,3 +39,4 @@ export declare const isValidValue: (value: number, min: number, max: number, ste
39
39
  export declare const getValueByPosition: (position: TrackPosition, sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>, min: number, max: number, step?: number | number[]) => number;
40
40
  export declare const getNewValue: (changedValue: number, currentValue: number | [number, number], step: number | number[], min: number, max: number, activeButton: ActiveButton) => number | [number, number];
41
41
  export declare const analyzeDivisionValue: (value: number, step: number | number[], min: number, max: number) => number;
42
+ export declare const valueToSring: (value: number | number[] | undefined | null) => string;
@@ -1,2 +1,2 @@
1
- import{getSteps}from"../useSliderStationing";export var isRangeParams=function(a){return!!a.range};export var isNotRangeParams=function(a){return!a.range};export var trackPosition=function(a){return"clientX"in a?{x:a.clientX,y:a.clientY}:{x:a.changedTouches[0].clientX,y:a.changedTouches[0].clientY}};export var getActiveValue=function(a,b){return Array.isArray(a)?a["number"==typeof b?b:0]:a};export var detectActiveButton=function(a,b){var c=null;return b.forEach(function(b,d){var e=b.current;if(e&&a){var f=e.getBoundingClientRect(),g=f.x,h=f.y,i=f.width,j=f.height;g<=a.x&&g+i>=a.x&&h<=a.y&&h+j>=a.y&&(c=d,e.focus())}}),c};export var getValidValue=function(a,b,c,d){if("number"==typeof a){if(a>=c)return c;if(a<=b)return b;if(!Array.isArray(d)){var e=null===d||void 0===d?void 0:d.toString().split(".")[1],f=d||1;if(1>Math.abs(a))return+a.toFixed(e?e.length:0);if(a<b)return b;for(var g=b;g<=c;g+=f)if(a>=g&&a<g+f)return+(a<g+f/2?g:g+f).toFixed(e?e.length:0);return c}var h=a;return d.forEach(function(e,f){var g=b,i=c;0===f?i=d[f+1]:f===d.length-1?(g=e,i=c):(i=d[f+1],g=e),a<=i&&a>=g&&((i+g)/2>a?h=g:h=i)}),h}return a};export var isValidValue=function(a,b,c,d){return getValidValue(a,b,c,d)===a};export var getValueByPosition=function(a,b,c,d,e){if(b.current&&a){var f=b.current.getBoundingClientRect(),g=f.x,h=f.width,i=Math.abs(d-c),j=c+(a.x-g)*i/h;return getValidValue(j,c,d,e)}return 0};export var getNewValue=function(a,b,c,d,e,f){var g=getValidValue(analyzeDivisionValue(a,c,d,e),d,e,c);return Array.isArray(b)?1===f?[b[0],g]:[g,b[1]]:g};export var analyzeDivisionValue=function(a,b,c,d){var e=a;if(Array.isArray(b)){var f=getSteps(b,c,d);f.forEach(function(b){a&&b.min<a&&b.max>=a&&((b.max+b.min)/2>a?e=b.min:e=b.max)})}else{if(a>=d)return d;if(a<=c)return c;var g=(a-c)%b;e=g>b/2?b-g+a:a-g}return e};
1
+ import{getSteps}from"../useSliderStationing";export var isRangeParams=function(a){return!!a.range};export var isNotRangeParams=function(a){return!a.range};export var trackPosition=function(a){return"clientX"in a?{x:a.clientX,y:a.clientY}:{x:a.changedTouches[0].clientX,y:a.changedTouches[0].clientY}};export var getActiveValue=function(a,b){return Array.isArray(a)?a["number"==typeof b?b:0]:a};export var detectActiveButton=function(a,b){var c=null;return b.forEach(function(b,d){var e=b.current;if(e&&a){var f=e.getBoundingClientRect(),g=f.x,h=f.y,i=f.width,j=f.height;g<=a.x&&g+i>=a.x&&h<=a.y&&h+j>=a.y&&(c=d,e.focus())}}),c};export var getValidValue=function(a,b,c,d){if("number"==typeof a){if(a>=c)return c;if(a<=b)return b;if(!Array.isArray(d)){var e=null===d||void 0===d?void 0:d.toString().split(".")[1],f=d||1;if(1>Math.abs(a))return+a.toFixed(e?e.length:0);if(a<b)return b;for(var g=b;g<=c;g+=f)if(a>=g&&a<g+f)return+(a<g+f/2?g:g+f).toFixed(e?e.length:0);return c}var h=a;return d.forEach(function(e,f){var g=b,i=c;0===f?i=d[f+1]:f===d.length-1?(g=e,i=c):(i=d[f+1],g=e),a<=i&&a>=g&&((i+g)/2>a?h=g:h=i)}),h}return a};export var isValidValue=function(a,b,c,d){return getValidValue(a,b,c,d)===a};export var getValueByPosition=function(a,b,c,d,e){if(b.current&&a){var f=b.current.getBoundingClientRect(),g=f.x,h=f.width,i=Math.abs(d-c),j=c+(a.x-g)*i/h;return getValidValue(j,c,d,e)}return 0};export var getNewValue=function(a,b,c,d,e,f){var g=getValidValue(analyzeDivisionValue(a,c,d,e),d,e,c);return Array.isArray(b)?1===f?[b[0],g]:[g,b[1]]:g};export var analyzeDivisionValue=function(a,b,c,d){var e=a;if(Array.isArray(b)){var f=getSteps(b,c,d);f.forEach(function(b){a&&b.min<a&&b.max>=a&&((b.max+b.min)/2>a?e=b.min:e=b.max)})}else{if(a>=d)return d;if(a<=c)return c;var g=(a-c)%b;e=g>b/2?b-g+a:a-g}return e};export var valueToSring=function(a){return a?"number"==typeof a?a.toString():a.join("-"):""};
2
2
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","names":["getSteps","isRangeParams","params","range","isNotRangeParams","trackPosition","event","x","clientX","y","clientY","changedTouches","getActiveValue","value","active","Array","isArray","detectActiveButton","position","buttons","activeButton","forEach","buttonRef","index","button","current","getBoundingClientRect","width","height","focus","getValidValue","min","max","step","division","toString","split","stepValue","Math","abs","toFixed","length","i","resultValue","stepPoint","minValue","maxValue","isValidValue","getValueByPosition","sliderRef","absoluteSize","getNewValue","changedValue","currentValue","analyzedValue","analyzeDivisionValue","newValue","steps","stepSize","nearStep"],"sources":["../../../../../../src/components/Slider/useSlider/helper.ts"],"sourcesContent":["import React from 'react';\n\nimport { SliderPropOnChange, SliderValue, TrackPosition } from '../helper';\nimport { getSteps } from '../useSliderStationing';\n\nexport type ActiveButton = 0 | 1 | null | undefined;\n\nexport type Stationing = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\nexport type UseSliderProps<RANGE extends boolean = false> = {\n disabled: boolean;\n range?: RANGE;\n value: SliderValue<RANGE>;\n min: number;\n max: number;\n step?: number | number[];\n onChange?: SliderPropOnChange<RANGE>;\n onAfterChange?: SliderPropOnChange<RANGE>;\n containerRef: React.RefObject<HTMLDivElement>;\n sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>;\n buttonRefs: React.RefObject<HTMLButtonElement>[];\n};\n\nexport type UseSliderValues = {\n onKeyPress: (e: React.KeyboardEvent, typeButton: ActiveButton) => void;\n onFocus: (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n button: ActiveButton,\n ) => void;\n handlePress: (typeButton: ActiveButton) => void;\n onSliderClick: React.MouseEventHandler;\n activeButton: ActiveButton;\n currentValue: [number] | [number, number];\n popoverPosition: TrackPosition[];\n};\n\nexport const isRangeParams = (\n params: UseSliderProps<boolean>,\n): params is UseSliderProps<true> => {\n return !!params.range;\n};\n\nexport const isNotRangeParams = (\n params: UseSliderProps<boolean>,\n): params is UseSliderProps<false> => {\n return !params.range;\n};\n\nexport const trackPosition = (\n event: TouchEvent | MouseEvent,\n): TrackPosition => {\n if ('clientX' in event) {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n }\n return {\n x: event.changedTouches[0].clientX,\n y: event.changedTouches[0].clientY,\n };\n};\n\nexport const getActiveValue = (\n value: number | [number, number],\n active: ActiveButton,\n) => {\n if (Array.isArray(value)) {\n return value[typeof active === 'number' ? active : 0];\n }\n return value;\n};\n\nexport const detectActiveButton: (\n posittion: TrackPosition,\n buttons: React.RefObject<HTMLButtonElement>[],\n) => ActiveButton = (position, buttons) => {\n let activeButton: ActiveButton = null;\n buttons.forEach((buttonRef, index) => {\n const button = buttonRef.current;\n if (button && position) {\n const { x, y, width, height } = button.getBoundingClientRect();\n if (\n x <= position.x &&\n x + width >= position.x &&\n y <= position.y &&\n y + height >= position.y\n ) {\n activeButton = index as ActiveButton;\n button.focus();\n }\n }\n });\n return activeButton;\n};\n\nexport const getValidValue = (\n value: number,\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (typeof value === 'number') {\n if (value >= max) return max;\n if (value <= min) return min;\n if (!Array.isArray(step)) {\n const division = step?.toString().split('.')[1];\n const stepValue = step || 1;\n if (Math.abs(value) < 1) {\n return Number(value.toFixed(division ? division.length : 0));\n }\n if (value < min) return min;\n for (let i = min; i <= max; i += stepValue) {\n if (value >= i && value < i + stepValue) {\n return Number(\n (value < i + stepValue / 2 ? i : i + stepValue).toFixed(\n division ? division.length : 0,\n ),\n );\n }\n }\n return max;\n }\n let resultValue = value;\n step.forEach((stepPoint, index) => {\n let minValue = min;\n let maxValue = max;\n if (index === 0) {\n maxValue = step[index + 1];\n } else if (index === step.length - 1) {\n minValue = stepPoint;\n maxValue = max;\n } else {\n maxValue = step[index + 1];\n minValue = stepPoint;\n }\n if (value <= maxValue && value >= minValue) {\n if ((maxValue + minValue) / 2 > value) {\n resultValue = minValue;\n } else {\n resultValue = maxValue;\n }\n }\n });\n return resultValue;\n }\n return value;\n};\n\nexport const isValidValue = (\n value: number,\n min: number,\n max: number,\n step?: number | number[],\n) => getValidValue(value, min, max, step) === value;\n\nexport const getValueByPosition = (\n position: TrackPosition,\n sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>,\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (sliderRef.current && position) {\n const { x, width } = sliderRef.current.getBoundingClientRect();\n const absoluteSize = Math.abs(max - min);\n const value = min + ((position.x - x) * absoluteSize) / width;\n return getValidValue(value, min, max, step);\n }\n return 0;\n};\n\nexport const getNewValue = (\n changedValue: number,\n currentValue: number | [number, number],\n step: number | number[],\n min: number,\n max: number,\n activeButton: ActiveButton,\n): number | [number, number] => {\n const analyzedValue = getValidValue(\n analyzeDivisionValue(changedValue, step, min, max),\n min,\n max,\n step,\n );\n if (Array.isArray(currentValue)) {\n return activeButton === 1\n ? [currentValue[0], analyzedValue]\n : [analyzedValue, currentValue[1]];\n }\n return analyzedValue;\n};\n\nexport const analyzeDivisionValue = (\n value: number,\n step: number | number[],\n min: number,\n max: number,\n) => {\n let newValue: number = value;\n if (Array.isArray(step)) {\n const steps = getSteps(step, min, max);\n steps.forEach((stepSize) => {\n if (value && stepSize.min < value && stepSize.max >= value) {\n if ((stepSize.max + stepSize.min) / 2 > value) {\n newValue = stepSize.min;\n } else {\n newValue = stepSize.max;\n }\n }\n });\n } else {\n if (value >= max) return max;\n if (value <= min) return min;\n const nearStep = (value - min) % step;\n if (nearStep > step / 2) {\n newValue = step - nearStep + value;\n } else {\n newValue = value - nearStep;\n }\n }\n return newValue;\n};\n"],"mappings":"AAGA,OAASA,QAAT,8BAsCA,MAAO,IAAMC,cAAa,CAAG,SAC3BC,CAD2B,CAEQ,CACnC,MAAO,CAAC,CAACA,CAAM,CAACC,KACjB,CAJM,CAMP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BF,CAD8B,CAEM,CACpC,MAAO,CAACA,CAAM,CAACC,KAChB,CAJM,CAMP,MAAO,IAAME,cAAa,CAAG,SAC3BC,CAD2B,CAET,OACd,WAAaA,EADC,CAET,CACLC,CAAC,CAAED,CAAK,CAACE,OADJ,CAELC,CAAC,CAAEH,CAAK,CAACI,OAFJ,CAFS,CAOX,CACLH,CAAC,CAAED,CAAK,CAACK,cAAN,CAAqB,CAArB,EAAwBH,OADtB,CAELC,CAAC,CAAEH,CAAK,CAACK,cAAN,CAAqB,CAArB,EAAwBD,OAFtB,CAIR,CAbM,CAeP,MAAO,IAAME,eAAc,CAAG,SAC5BC,CAD4B,CAE5BC,CAF4B,CAGzB,OACCC,MAAK,CAACC,OAAN,CAAcH,CAAd,CADD,CAEMA,CAAK,CAAmB,QAAlB,QAAOC,EAAP,CAA6BA,CAA7B,CAAsC,CAAvC,CAFX,CAIID,CACR,CARM,CAUP,MAAO,IAAMI,mBAGI,CAAG,SAACC,CAAD,CAAWC,CAAX,CAAuB,CACzC,GAAIC,EAA0B,CAAG,IAAjC,CAgBA,MAfAD,EAAO,CAACE,OAAR,CAAgB,SAACC,CAAD,CAAYC,CAAZ,CAAsB,CACpC,GAAMC,EAAM,CAAGF,CAAS,CAACG,OAAzB,CACA,GAAID,CAAM,EAAIN,CAAd,CAAwB,CACtB,MAAgCM,CAAM,CAACE,qBAAP,EAAhC,CAAQnB,CAAR,GAAQA,CAAR,CAAWE,CAAX,GAAWA,CAAX,CAAckB,CAAd,GAAcA,KAAd,CAAqBC,CAArB,GAAqBA,MAArB,CAEErB,CAAC,EAAIW,CAAQ,CAACX,CAAd,EACAA,CAAC,CAAGoB,CAAJ,EAAaT,CAAQ,CAACX,CADtB,EAEAE,CAAC,EAAIS,CAAQ,CAACT,CAFd,EAGAA,CAAC,CAAGmB,CAAJ,EAAcV,CAAQ,CAACT,CANH,GAQpBW,CAAY,CAAGG,CARK,CASpBC,CAAM,CAACK,KAAP,EAToB,CAWvB,CACF,CAdD,CAeA,CAAOT,CACR,CArBM,CAuBP,MAAO,IAAMU,cAAa,CAAG,SAC3BjB,CAD2B,CAE3BkB,CAF2B,CAG3BC,CAH2B,CAI3BC,CAJ2B,CAKxB,CACH,GAAqB,QAAjB,QAAOpB,EAAX,CAA+B,CAC7B,GAAIA,CAAK,EAAImB,CAAb,CAAkB,MAAOA,EAAP,CAClB,GAAInB,CAAK,EAAIkB,CAAb,CAAkB,MAAOA,EAAP,CAClB,GAAI,CAAChB,KAAK,CAACC,OAAN,CAAciB,CAAd,CAAL,CAA0B,IAClBC,EAAQ,QAAGD,CAAH,WAAGA,CAAH,QAAGA,CAAI,CAAEE,QAAN,GAAiBC,KAAjB,CAAuB,GAAvB,EAA4B,CAA5B,CADO,CAElBC,CAAS,CAAGJ,CAAI,EAAI,CAFF,CAGxB,GAAsB,CAAlB,CAAAK,IAAI,CAACC,GAAL,CAAS1B,CAAT,CAAJ,CACE,OAAcA,CAAK,CAAC2B,OAAN,CAAcN,CAAQ,CAAGA,CAAQ,CAACO,MAAZ,CAAqB,CAA3C,CAAd,CAEF,GAAI5B,CAAK,CAAGkB,CAAZ,CAAiB,MAAOA,EAAP,CACjB,IAAK,GAAIW,EAAC,CAAGX,CAAb,CAAkBW,CAAC,EAAIV,CAAvB,CAA4BU,CAAC,EAAIL,CAAjC,CACE,GAAIxB,CAAK,EAAI6B,CAAT,EAAc7B,CAAK,CAAG6B,CAAC,CAAGL,CAA9B,CACE,OACE,CAACxB,CAAK,CAAG6B,CAAC,CAAGL,CAAS,CAAG,CAAxB,CAA4BK,CAA5B,CAAgCA,CAAC,CAAGL,CAArC,EAAgDG,OAAhD,CACEN,CAAQ,CAAGA,CAAQ,CAACO,MAAZ,CAAqB,CAD/B,CADF,CAOJ,MAAOT,EACR,CACD,GAAIW,EAAW,CAAG9B,CAAlB,CAqBA,MApBAoB,EAAI,CAACZ,OAAL,CAAa,SAACuB,CAAD,CAAYrB,CAAZ,CAAsB,IAC7BsB,EAAQ,CAAGd,CADkB,CAE7Be,CAAQ,CAAGd,CAFkB,CAGnB,CAAV,GAAAT,CAH6B,CAI/BuB,CAAQ,CAAGb,CAAI,CAACV,CAAK,CAAG,CAAT,CAJgB,CAKtBA,CAAK,GAAKU,CAAI,CAACQ,MAAL,CAAc,CALF,EAM/BI,CAAQ,CAAGD,CANoB,CAO/BE,CAAQ,CAAGd,CAPoB,GAS/Bc,CAAQ,CAAGb,CAAI,CAACV,CAAK,CAAG,CAAT,CATgB,CAU/BsB,CAAQ,CAAGD,CAVoB,EAY7B/B,CAAK,EAAIiC,CAAT,EAAqBjC,CAAK,EAAIgC,CAZD,GAa3B,CAACC,CAAQ,CAAGD,CAAZ,EAAwB,CAAxB,CAA4BhC,CAbD,CAc7B8B,CAAW,CAAGE,CAde,CAgB7BF,CAAW,CAAGG,CAhBe,CAmBlC,CAnBD,CAoBA,CAAOH,CACR,CACD,MAAO9B,EACR,CAnDM,CAqDP,MAAO,IAAMkC,aAAY,CAAG,SAC1BlC,CAD0B,CAE1BkB,CAF0B,CAG1BC,CAH0B,CAI1BC,CAJ0B,QAKvBH,cAAa,CAACjB,CAAD,CAAQkB,CAAR,CAAaC,CAAb,CAAkBC,CAAlB,CAAb,GAAyCpB,CALlB,CAArB,CAOP,MAAO,IAAMmC,mBAAkB,CAAG,SAChC9B,CADgC,CAEhC+B,CAFgC,CAGhClB,CAHgC,CAIhCC,CAJgC,CAKhCC,CALgC,CAM7B,CACH,GAAIgB,CAAS,CAACxB,OAAV,EAAqBP,CAAzB,CAAmC,OACZ+B,CAAS,CAACxB,OAAV,CAAkBC,qBAAlB,EADY,CACzBnB,CADyB,GACzBA,CADyB,CACtBoB,CADsB,GACtBA,KADsB,CAE3BuB,CAAY,CAAGZ,IAAI,CAACC,GAAL,CAASP,CAAG,CAAGD,CAAf,CAFY,CAG3BlB,CAAK,CAAGkB,CAAG,CAAI,CAACb,CAAQ,CAACX,CAAT,CAAaA,CAAd,EAAmB2C,CAApB,CAAoCvB,CAHvB,CAIjC,MAAOG,cAAa,CAACjB,CAAD,CAAQkB,CAAR,CAAaC,CAAb,CAAkBC,CAAlB,CACrB,CACD,MAAO,EACR,CAdM,CAgBP,MAAO,IAAMkB,YAAW,CAAG,SACzBC,CADyB,CAEzBC,CAFyB,CAGzBpB,CAHyB,CAIzBF,CAJyB,CAKzBC,CALyB,CAMzBZ,CANyB,CAOK,CAC9B,GAAMkC,EAAa,CAAGxB,aAAa,CACjCyB,oBAAoB,CAACH,CAAD,CAAenB,CAAf,CAAqBF,CAArB,CAA0BC,CAA1B,CADa,CAEjCD,CAFiC,CAGjCC,CAHiC,CAIjCC,CAJiC,CAAnC,CAD8B,MAO1BlB,MAAK,CAACC,OAAN,CAAcqC,CAAd,CAP0B,CAQJ,CAAjB,GAAAjC,CAAY,CACf,CAACiC,CAAY,CAAC,CAAD,CAAb,CAAkBC,CAAlB,CADe,CAEf,CAACA,CAAD,CAAgBD,CAAY,CAAC,CAAD,CAA5B,CAVwB,CAYvBC,CACR,CApBM,CAsBP,MAAO,IAAMC,qBAAoB,CAAG,SAClC1C,CADkC,CAElCoB,CAFkC,CAGlCF,CAHkC,CAIlCC,CAJkC,CAK/B,CACH,GAAIwB,EAAgB,CAAG3C,CAAvB,CACA,GAAIE,KAAK,CAACC,OAAN,CAAciB,CAAd,CAAJ,CAAyB,CACvB,GAAMwB,EAAK,CAAGzD,QAAQ,CAACiC,CAAD,CAAOF,CAAP,CAAYC,CAAZ,CAAtB,CACAyB,CAAK,CAACpC,OAAN,CAAc,SAACqC,CAAD,CAAc,CACtB7C,CAAK,EAAI6C,CAAQ,CAAC3B,GAAT,CAAelB,CAAxB,EAAiC6C,CAAQ,CAAC1B,GAAT,EAAgBnB,CAD3B,GAEpB,CAAC6C,CAAQ,CAAC1B,GAAT,CAAe0B,CAAQ,CAAC3B,GAAzB,EAAgC,CAAhC,CAAoClB,CAFhB,CAGtB2C,CAAQ,CAAGE,CAAQ,CAAC3B,GAHE,CAKtByB,CAAQ,CAAGE,CAAQ,CAAC1B,GALE,CAQ3B,CARD,CASD,CAXD,IAWO,CACL,GAAInB,CAAK,EAAImB,CAAb,CAAkB,MAAOA,EAAP,CAClB,GAAInB,CAAK,EAAIkB,CAAb,CAAkB,MAAOA,EAAP,CAClB,GAAM4B,EAAQ,CAAG,CAAC9C,CAAK,CAAGkB,CAAT,EAAgBE,CAAjC,CAEEuB,CALG,CAIDG,CAAQ,CAAG1B,CAAI,CAAG,CAJjB,CAKQA,CAAI,CAAG0B,CAAP,CAAkB9C,CAL1B,CAOQA,CAAK,CAAG8C,CAEtB,CACD,MAAOH,EACR,CA7BM"}
1
+ {"version":3,"file":"helper.js","names":["getSteps","isRangeParams","params","range","isNotRangeParams","trackPosition","event","x","clientX","y","clientY","changedTouches","getActiveValue","value","active","Array","isArray","detectActiveButton","position","buttons","activeButton","forEach","buttonRef","index","button","current","getBoundingClientRect","width","height","focus","getValidValue","min","max","step","division","toString","split","stepValue","Math","abs","toFixed","length","i","resultValue","stepPoint","minValue","maxValue","isValidValue","getValueByPosition","sliderRef","absoluteSize","getNewValue","changedValue","currentValue","analyzedValue","analyzeDivisionValue","newValue","steps","stepSize","nearStep","valueToSring","join"],"sources":["../../../../../../src/components/Slider/useSlider/helper.ts"],"sourcesContent":["import React from 'react';\n\nimport { SliderPropOnChange, SliderValue, TrackPosition } from '../helper';\nimport { getSteps } from '../useSliderStationing';\n\nexport type ActiveButton = 0 | 1 | null | undefined;\n\nexport type Stationing = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\nexport type UseSliderProps<RANGE extends boolean = false> = {\n disabled: boolean;\n range?: RANGE;\n value: SliderValue<RANGE>;\n min: number;\n max: number;\n step?: number | number[];\n onChange?: SliderPropOnChange<RANGE>;\n onAfterChange?: SliderPropOnChange<RANGE>;\n containerRef: React.RefObject<HTMLDivElement>;\n sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>;\n buttonRefs: React.RefObject<HTMLButtonElement>[];\n};\n\nexport type UseSliderValues = {\n onKeyPress: (e: React.KeyboardEvent, typeButton: ActiveButton) => void;\n onFocus: (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n button: ActiveButton,\n ) => void;\n handlePress: (typeButton: ActiveButton) => void;\n onSliderClick: React.MouseEventHandler;\n activeButton: ActiveButton;\n currentValue: [number] | [number, number];\n popoverPosition: TrackPosition[];\n};\n\nexport const isRangeParams = (\n params: UseSliderProps<boolean>,\n): params is UseSliderProps<true> => {\n return !!params.range;\n};\n\nexport const isNotRangeParams = (\n params: UseSliderProps<boolean>,\n): params is UseSliderProps<false> => {\n return !params.range;\n};\n\nexport const trackPosition = (\n event: TouchEvent | MouseEvent,\n): TrackPosition => {\n if ('clientX' in event) {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n }\n return {\n x: event.changedTouches[0].clientX,\n y: event.changedTouches[0].clientY,\n };\n};\n\nexport const getActiveValue = (\n value: number | [number, number],\n active: ActiveButton,\n) => {\n if (Array.isArray(value)) {\n return value[typeof active === 'number' ? active : 0];\n }\n return value;\n};\n\nexport const detectActiveButton: (\n posittion: TrackPosition,\n buttons: React.RefObject<HTMLButtonElement>[],\n) => ActiveButton = (position, buttons) => {\n let activeButton: ActiveButton = null;\n buttons.forEach((buttonRef, index) => {\n const button = buttonRef.current;\n if (button && position) {\n const { x, y, width, height } = button.getBoundingClientRect();\n if (\n x <= position.x &&\n x + width >= position.x &&\n y <= position.y &&\n y + height >= position.y\n ) {\n activeButton = index as ActiveButton;\n button.focus();\n }\n }\n });\n return activeButton;\n};\n\nexport const getValidValue = (\n value: number,\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (typeof value === 'number') {\n if (value >= max) return max;\n if (value <= min) return min;\n if (!Array.isArray(step)) {\n const division = step?.toString().split('.')[1];\n const stepValue = step || 1;\n if (Math.abs(value) < 1) {\n return Number(value.toFixed(division ? division.length : 0));\n }\n if (value < min) return min;\n for (let i = min; i <= max; i += stepValue) {\n if (value >= i && value < i + stepValue) {\n return Number(\n (value < i + stepValue / 2 ? i : i + stepValue).toFixed(\n division ? division.length : 0,\n ),\n );\n }\n }\n return max;\n }\n let resultValue = value;\n step.forEach((stepPoint, index) => {\n let minValue = min;\n let maxValue = max;\n if (index === 0) {\n maxValue = step[index + 1];\n } else if (index === step.length - 1) {\n minValue = stepPoint;\n maxValue = max;\n } else {\n maxValue = step[index + 1];\n minValue = stepPoint;\n }\n if (value <= maxValue && value >= minValue) {\n if ((maxValue + minValue) / 2 > value) {\n resultValue = minValue;\n } else {\n resultValue = maxValue;\n }\n }\n });\n return resultValue;\n }\n return value;\n};\n\nexport const isValidValue = (\n value: number,\n min: number,\n max: number,\n step?: number | number[],\n) => getValidValue(value, min, max, step) === value;\n\nexport const getValueByPosition = (\n position: TrackPosition,\n sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>,\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (sliderRef.current && position) {\n const { x, width } = sliderRef.current.getBoundingClientRect();\n const absoluteSize = Math.abs(max - min);\n const value = min + ((position.x - x) * absoluteSize) / width;\n return getValidValue(value, min, max, step);\n }\n return 0;\n};\n\nexport const getNewValue = (\n changedValue: number,\n currentValue: number | [number, number],\n step: number | number[],\n min: number,\n max: number,\n activeButton: ActiveButton,\n): number | [number, number] => {\n const analyzedValue = getValidValue(\n analyzeDivisionValue(changedValue, step, min, max),\n min,\n max,\n step,\n );\n if (Array.isArray(currentValue)) {\n return activeButton === 1\n ? [currentValue[0], analyzedValue]\n : [analyzedValue, currentValue[1]];\n }\n return analyzedValue;\n};\n\nexport const analyzeDivisionValue = (\n value: number,\n step: number | number[],\n min: number,\n max: number,\n) => {\n let newValue: number = value;\n if (Array.isArray(step)) {\n const steps = getSteps(step, min, max);\n steps.forEach((stepSize) => {\n if (value && stepSize.min < value && stepSize.max >= value) {\n if ((stepSize.max + stepSize.min) / 2 > value) {\n newValue = stepSize.min;\n } else {\n newValue = stepSize.max;\n }\n }\n });\n } else {\n if (value >= max) return max;\n if (value <= min) return min;\n const nearStep = (value - min) % step;\n if (nearStep > step / 2) {\n newValue = step - nearStep + value;\n } else {\n newValue = value - nearStep;\n }\n }\n return newValue;\n};\n\nexport const valueToSring = (value: number | number[] | undefined | null) => {\n if (!value) {\n return '';\n }\n return typeof value === 'number' ? value.toString() : value.join('-');\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useComponentSize}from"../../../hooks/useComponentSize/useComponentSize";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{getActiveValue,getNewValue,getValidValue,getValueByPosition,isNotRangeParams,isRangeParams,trackPosition}from"./helper";export var COUNT_STEPS=250;export function useSlider(a){var b=a.disabled,c=a.range,d=a.value,f=a.min,g=a.max,h=a.step,i=void 0===h?1:h,j=a.onChange,k=a.onAfterChange,l=a.sliderRef,m=a.containerRef,n=a.buttonRefs,o=g>f?f:0,p=g>f?g:100,q=useMemo(function(){if(!Array.isArray(i)&&1<=i){var a=Math.abs((p-o)/COUNT_STEPS);return a>i?a-a%i:Math.max(a,i)}return i},[g,f,i]),r=useState(d),s=_slicedToArray(r,2),t=s[0],u=s[1],v=useState(null),w=_slicedToArray(v,2),x=w[0],y=w[1],z=useState(null),A=_slicedToArray(z,2),B=A[0],C=A[1],D=useState(null),E=_slicedToArray(D,2),F=E[0],G=E[1],H=useRef(null),I=useComponentSize(l),J=useMutableRef(t);useClickOutside({isActive:!0,ignoreClicksInsideRefs:[m],handler:function handler(){G(null),H.current=null}}),useEffect(function(){b&&K("remove")},[b]);var K=function(a){var b="add"===a?"addEventListener":"removeEventListener";document[b]("mouseup",P),document[b]("touchend",P),document[b]("mousemove",O),document[b]("touchmove",O)};useEffect(function(){Array.isArray(t)?(M(t[0],0),M(t[1],1)):M(t,0)},[t]),useEffect(function(){JSON.stringify(d)!==JSON.stringify(t)&&(Array.isArray(d)&&Array.isArray(t)?(-1===t.indexOf(d[0])||-1===t.indexOf(d[1]))&&(u(d),M(getActiveValue(d,H.current),0)):(u(d),M(getActiveValue(d,H.current),0)),G(null),H.current=null)},[d]),useEffect(function(){var a=Array.isArray(t)?[getNewValue(t[0],t[0],i,f,g,0),getNewValue(t[1],t[1],i,f,g,1)]:getNewValue(t,t,i,f,g,0);null===j||void 0===j?void 0:j(a,{})},[i]),useEffect(function(){if("undefined"!=typeof d){var b=isRangeParams(a)?[getValidValue(a.value[0],f,g,i),getValidValue(a.value[1],f,g,i)]:getValidValue(a.value,f,g,i);u(b)}},[c,typeof d]),useEffect(function(){if(isRangeParams(a)&&a.value[0]>a.value[1]){var b,c=[a.value[1],a.value[1]];null===(b=a.onChange)||void 0===b?void 0:b.call(a,c,{})}},[]);var L=useCallback(function(a,c){if(!b&&"number"==typeof c&&"undefined"!=typeof t){a.preventDefault(),a.stopPropagation();var d=Array.isArray(i)?1:i||1,e=!1,h=getActiveValue(t,c);switch(a.key){case"ArrowUp":case"ArrowRight":case"+":e=!0;break;case"ArrowLeft":case"ArrowDown":case"-":e=!0,d*=-1;break;default:}if(e){Array.isArray(i)&&i.forEach(function(a,b){"number"==typeof c&&h===a&&(0<=d?0===b?d=i[1]-o:d=("undefined"==typeof i[b+1]?p:i[b+1])-a:0===b?d=o-i[1]:d=("undefined"==typeof i[b-1]?o:i[b-1])-a)});var k=getNewValue(h+d,t,i,f,g,c);u(k),M(getActiveValue(k,c),c),null===j||void 0===j?void 0:j(k,{e:a})}}},[t,i,f,g]),M=function(a,b){if(l.current&&"number"==typeof b){var c=n[b].current||l.current,d=l.current.getBoundingClientRect(),e=d.x,f=d.width,g={y:c.offsetTop+c.offsetHeight+50,x:e+Math.abs((a-o)/(p-o))*f};0===b?y(g):C(g)}},N=function(a){if("number"!=typeof H.current)return d;var b=trackPosition(a),c=getValueByPosition(b,l,o,p,i);return getNewValue(c,t,q,f,g,H.current)},O=function(a,b){var c=b||H.current;if("number"==typeof c){var d=N(a),e=getActiveValue(t,c),f=getActiveValue(d,c);u(d),e!==f&&(null===k||void 0===k?void 0:k(d,{e:a}))}};useEffect(function(){if(isRangeParams(a)){var b;null===(b=a.value)||void 0===b?void 0:b.forEach(function(a,b){M(getActiveValue(a,H.current),0===b?0:1)})}isNotRangeParams(a)&&M(getActiveValue(d,H.current),0),H.current=null},[I,typeof d]);var P=useCallback(function(b){if(K("remove"),isRangeParams(a)&&Array.isArray(J.current)){var c,d=_toConsumableArray(J.current).sort(function(c,a){return+c-+a});null===(c=a.onChange)||void 0===c?void 0:c.call(a,d,{e:b})}if(isNotRangeParams(a)&&"number"==typeof J.current){var e;null===(e=a.onChange)||void 0===e?void 0:e.call(a,J.current,{e:b})}G(null),H.current=null},[J,d,j,O]),Q=useCallback(function(a){b||(G(a),H.current=a,K("add"))},[t,d,j,O,b]);return{onKeyPress:L,onFocus:function onFocus(a,b){G(b),H.current=b},handlePress:Q,onSliderClick:function onSliderClick(b){if(isNotRangeParams(a)){var c=getValueByPosition({x:b.pageX,y:b.pageY},l,o,p,i),e=getNewValue(c,t,q,f,g,H.current);e!==d&&(u(e),M(getActiveValue(e,0),0),null===j||void 0===j?void 0:j(e,{e:b}))}},activeButton:F,popoverPosition:[x,B],currentValue:Array.isArray(t)?t:[t]}}
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useComponentSize}from"../../../hooks/useComponentSize/useComponentSize";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{getActiveValue,getNewValue,getValidValue,getValueByPosition,isNotRangeParams,isRangeParams,trackPosition,valueToSring}from"./helper";export var COUNT_STEPS=250;export function useSlider(a){var b=a.disabled,c=a.range,d=a.value,f=a.min,g=a.max,h=a.step,i=void 0===h?1:h,j=a.onChange,k=a.onAfterChange,l=a.sliderRef,m=a.containerRef,n=a.buttonRefs,o=g>f?f:0,p=g>f?g:100,q=useMemo(function(){if(!Array.isArray(i)&&1<=i){var a=Math.abs((p-o)/COUNT_STEPS);return a>i?a-a%i:Math.max(a,i)}return i},[g,f,i]),r=useState(d),s=_slicedToArray(r,2),t=s[0],u=s[1],v=useState(null),w=_slicedToArray(v,2),x=w[0],y=w[1],z=useState(null),A=_slicedToArray(z,2),B=A[0],C=A[1],D=useState(null),E=_slicedToArray(D,2),F=E[0],G=E[1],H=useRef(null),I=useComponentSize(l),J=useMutableRef(t),K=useMutableRef(j),L=useMutableRef(k);useClickOutside({isActive:!0,ignoreClicksInsideRefs:[m],handler:function handler(){G(null),H.current=null}}),useEffect(function(){b&&M("remove")},[b]);var M=function(a){var b="add"===a?"addEventListener":"removeEventListener";document[b]("mouseup",R),document[b]("touchend",R),document[b]("mousemove",Q),document[b]("touchmove",Q)};useEffect(function(){Array.isArray(t)?(O(t[0],0),O(t[1],1)):O(t,0)},[t]),useEffect(function(){valueToSring(d)!==valueToSring(t)&&(Array.isArray(d)&&Array.isArray(t)?(-1===t.indexOf(d[0])||-1===t.indexOf(d[1]))&&(u(d),O(getActiveValue(d,H.current),0)):(u(d),O(getActiveValue(d,H.current),0)),G(null),H.current=null)},[d]),useEffect(function(){var a=Array.isArray(t)?[getNewValue(t[0],t[0],i,f,g,0),getNewValue(t[1],t[1],i,f,g,1)]:getNewValue(t,t,i,f,g,0);if(valueToSring(a)!==valueToSring(t)){var b;null===(b=K.current)||void 0===b?void 0:b.call(K,a,{})}},[i]),useEffect(function(){if("undefined"!=typeof d){var b=isRangeParams(a)?[getValidValue(a.value[0],f,g,i),getValidValue(a.value[1],f,g,i)]:getValidValue(a.value,f,g,i);u(b)}},[c,typeof d]),useEffect(function(){if(isRangeParams(a)&&a.value[0]>a.value[1]){var b,c=[a.value[1],a.value[1]];null===(b=K.current)||void 0===b?void 0:b.call(K,c,{})}},[]);var N=useCallback(function(a,c){if(!b&&"number"==typeof c&&"undefined"!=typeof t){a.preventDefault(),a.stopPropagation();var d=Array.isArray(i)?1:i||1,e=!1,h=getActiveValue(t,c);switch(a.key){case"ArrowUp":case"ArrowRight":case"+":e=!0;break;case"ArrowLeft":case"ArrowDown":case"-":e=!0,d*=-1;break;default:}if(e){var j;Array.isArray(i)&&i.forEach(function(a,b){"number"==typeof c&&h===a&&(0<=d?0===b?d=i[1]-o:d=("undefined"==typeof i[b+1]?p:i[b+1])-a:0===b?d=o-i[1]:d=("undefined"==typeof i[b-1]?o:i[b-1])-a)});var k=getNewValue(h+d,t,i,f,g,c);u(k),O(getActiveValue(k,c),c),null===(j=K.current)||void 0===j?void 0:j.call(K,k,{e:a})}}},[t,i,f,g]),O=function(a,b){if(l.current&&"number"==typeof b){var c=n[b].current||l.current,d=l.current.getBoundingClientRect(),e=d.x,f=d.width,g={y:c.offsetTop+c.offsetHeight+50,x:e+Math.abs((a-o)/(p-o))*f};0===b?y(g):C(g)}},P=function(a){if("number"!=typeof H.current)return d;var b=trackPosition(a),c=getValueByPosition(b,l,o,p,i);return getNewValue(c,t,q,f,g,H.current)},Q=function(a,b){var c=b||H.current;if("number"==typeof c){var d=P(a),e=getActiveValue(t,c),f=getActiveValue(d,c);if(u(d),valueToSring(e)!==valueToSring(f)){var g;null===(g=L.current)||void 0===g?void 0:g.call(L,d,{e:a})}}};useEffect(function(){if(isRangeParams(a)){var b;null===(b=a.value)||void 0===b?void 0:b.forEach(function(a,b){O(getActiveValue(a,H.current),0===b?0:1)})}isNotRangeParams(a)&&O(getActiveValue(d,H.current),0),H.current=null},[I,typeof d]);var R=useCallback(function(b){if(M("remove"),isRangeParams(a)&&Array.isArray(J.current)){var c,d=_toConsumableArray(J.current).sort(function(c,a){return+c-+a});null===(c=K.current)||void 0===c?void 0:c.call(K,d,{e:b})}if(isNotRangeParams(a)&&"number"==typeof J.current){var e;null===(e=K.current)||void 0===e?void 0:e.call(K,J.current,{e:b})}G(null),H.current=null},[d,Q]),S=useCallback(function(a){b||(G(a),H.current=a,M("add"))},[t,d,Q,b]);return{onKeyPress:N,onFocus:function onFocus(a,b){G(b),H.current=b},handlePress:S,onSliderClick:function onSliderClick(b){if(isNotRangeParams(a)){var c=getValueByPosition({x:b.pageX,y:b.pageY},l,o,p,i),e=getNewValue(c,t,q,f,g,H.current);if(e!==d){var h;u(e),O(getActiveValue(e,0),0),null===(h=K.current)||void 0===h?void 0:h.call(K,e,{e:b})}}},activeButton:F,popoverPosition:[x,B],currentValue:Array.isArray(t)?t:[t]}}
2
2
  //# sourceMappingURL=useSlider.js.map