@consta/uikit 5.30.0 → 5.32.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.
- package/ColorPicker/index.d.ts +1 -0
- package/ColorPicker/index.js +1 -0
- package/FileCanary/index.d.ts +1 -0
- package/FileCanary/index.js +1 -0
- package/__internal__/src/components/Attachment/Attachment.css +1 -1
- package/__internal__/src/components/Attachment/types.d.ts +1 -1
- package/__internal__/src/components/Attachment/types.js.map +1 -1
- package/__internal__/src/components/AttachmentDeprecated/Attachment.css +1 -1
- package/__internal__/src/components/AttachmentDeprecated/AttachmentDeprecated.js.map +1 -1
- package/__internal__/src/components/AttachmentDeprecated/types.d.ts +1 -1
- package/__internal__/src/components/AttachmentDeprecated/types.js.map +1 -1
- package/__internal__/src/components/AutoComplete/AutoComplete.js +1 -1
- package/__internal__/src/components/AutoComplete/AutoComplete.js.map +1 -1
- package/__internal__/src/components/AutoComplete/helpers.d.ts +1 -0
- package/__internal__/src/components/AutoComplete/types.d.ts +1 -0
- package/__internal__/src/components/AutoComplete/types.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +1 -0
- package/__internal__/src/components/AutoCompleteCanary/types.d.ts +1 -0
- package/__internal__/src/components/AutoCompleteCanary/types.js.map +1 -1
- package/__internal__/src/components/Avatar/Avatar.d.ts +2 -2
- package/__internal__/src/components/Avatar/Avatar.js.map +1 -1
- package/__internal__/src/components/AvatarGroup/types.d.ts +2 -2
- package/__internal__/src/components/AvatarGroup/types.js.map +1 -1
- package/__internal__/src/components/Badge/Badge.css +2 -2
- package/__internal__/src/components/Badge/maps.js.map +1 -1
- package/__internal__/src/components/Badge/types.d.ts +4 -4
- package/__internal__/src/components/Badge/types.js.map +1 -1
- package/__internal__/src/components/Banner/Banner.d.ts +4 -4
- package/__internal__/src/components/Banner/Banner.js.map +1 -1
- package/__internal__/src/components/BookmarkTabs/BookmarkTabs.js.map +1 -1
- package/__internal__/src/components/BookmarkTabs/types.d.ts +3 -3
- package/__internal__/src/components/BookmarkTabs/types.js.map +1 -1
- package/__internal__/src/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/__internal__/src/components/Breadcrumbs/types.d.ts +2 -2
- package/__internal__/src/components/Breadcrumbs/types.js.map +1 -1
- package/__internal__/src/components/Button/Button.d.ts +4 -4
- package/__internal__/src/components/Button/Button.js.map +1 -1
- package/__internal__/src/components/Card/Card.d.ts +3 -3
- package/__internal__/src/components/Card/Card.js.map +1 -1
- package/__internal__/src/components/Checkbox/Checkbox.css +2 -2
- package/__internal__/src/components/Checkbox/Checkbox.d.ts +3 -3
- package/__internal__/src/components/Checkbox/Checkbox.js.map +1 -1
- package/__internal__/src/components/CheckboxDeprecated/Checkbox.css +2 -2
- package/__internal__/src/components/CheckboxDeprecated/CheckboxDeprecated.d.ts +3 -3
- package/__internal__/src/components/CheckboxDeprecated/CheckboxDeprecated.js.map +1 -1
- package/__internal__/src/components/CheckboxGroup/types.d.ts +4 -4
- package/__internal__/src/components/CheckboxGroup/types.js.map +1 -1
- package/__internal__/src/components/Chips/ChipsItem/ChipsItem.css +2 -2
- package/__internal__/src/components/Chips/types.d.ts +2 -2
- package/__internal__/src/components/Chips/types.js.map +1 -1
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js.map +1 -1
- package/__internal__/src/components/ChoiceGroup/types.d.ts +4 -4
- package/__internal__/src/components/ChoiceGroup/types.js.map +1 -1
- package/__internal__/src/components/Collapse/types.d.ts +7 -7
- package/__internal__/src/components/Collapse/types.js.map +1 -1
- package/__internal__/src/components/ColorPicker/ColorControl/ColorControl.css +7 -0
- package/__internal__/src/components/ColorPicker/ColorControl/ColorControl.d.ts +6 -0
- package/__internal__/src/components/ColorPicker/ColorControl/ColorControl.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorControl/ColorControl.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorControl/index.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/ColorControl/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorControl/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorControl/types.d.ts +6 -0
- package/__internal__/src/components/ColorPicker/ColorControl/types.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorControl/types.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/ColorInputTypeChanger.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/ColorInputTypeChanger.d.ts +4 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/ColorInputTypeChanger.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/ColorInputTypeChanger.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/types.d.ts +6 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/types.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorInputTypeChanger/types.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/ColorMarker.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/ColorMarker.d.ts +16 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/ColorMarker.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/ColorMarker.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorMarker/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPalette/ColorPalette.d.ts +13 -0
- package/__internal__/src/components/ColorPicker/ColorPalette/ColorPalette.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPalette/ColorPalette.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPalette/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPalette/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPalette/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/ColorPicker.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/ColorPicker.d.ts +3 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/ColorPicker.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/ColorPicker.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/index.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/types.d.ts +25 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/types.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPicker/types.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/ColorPickerAlpha.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/ColorPickerAlpha.d.ts +12 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/ColorPickerAlpha.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/ColorPickerAlpha.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerAlpha/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerBase/ColorPickerBase.d.ts +12 -0
- package/__internal__/src/components/ColorPicker/ColorPickerBase/ColorPickerBase.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerBase/ColorPickerBase.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerBase/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerBase/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerBase/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/ColorPickerHue.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/ColorPickerHue.d.ts +12 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/ColorPickerHue.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/ColorPickerHue.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerHue/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/ColorPickerInput.css +3 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/ColorPickerInput.d.ts +5 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/ColorPickerInput.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/ColorPickerInput.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/helpers.d.ts +12 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/helpers.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/helpers.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/index.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/types.d.ts +25 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/types.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInput/types.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/ColorPickerInteractive.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/ColorPickerInteractive.d.ts +15 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/ColorPickerInteractive.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/ColorPickerInteractive.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerInteractive/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/ColorPickerPoint.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/ColorPickerPoint.d.ts +8 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/ColorPickerPoint.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/ColorPickerPoint.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerPoint/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/ColorPickerRoot.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/ColorPickerRoot.d.ts +16 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/ColorPickerRoot.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/ColorPickerRoot.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerRoot/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/ColorPickerSaturation.css +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/ColorPickerSaturation.d.ts +13 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/ColorPickerSaturation.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/ColorPickerSaturation.js.map +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/index.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/index.js +2 -0
- package/__internal__/src/components/ColorPicker/ColorPickerSaturation/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/hooks/useColorManipulation.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/hooks/useColorManipulation.js +2 -0
- package/__internal__/src/components/ColorPicker/hooks/useColorManipulation.js.map +1 -0
- package/__internal__/src/components/ColorPicker/hooks/useEventCallback.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/hooks/useEventCallback.js +2 -0
- package/__internal__/src/components/ColorPicker/hooks/useEventCallback.js.map +1 -0
- package/__internal__/src/components/ColorPicker/index.d.ts +10 -0
- package/__internal__/src/components/ColorPicker/index.js +2 -0
- package/__internal__/src/components/ColorPicker/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hexAlphaModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hexAlphaModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hexAlphaModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hexModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hexModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hexModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hslModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hslModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hslModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hslStringModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hslStringModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hslStringModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hslaModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hslaModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hslaModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hslaStringModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hslaStringModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hslaStringModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hsvModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hsvStringModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvStringModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvStringModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hsvaModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvaModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvaModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/hsvaStringModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvaStringModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/hsvaStringModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/index.d.ts +14 -0
- package/__internal__/src/components/ColorPicker/models/index.js +2 -0
- package/__internal__/src/components/ColorPicker/models/index.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/rgbModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/rgbStringModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbStringModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbStringModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/rgbaModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbaModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbaModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/models/rgbaStringModel.d.ts +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbaStringModel.js +2 -0
- package/__internal__/src/components/ColorPicker/models/rgbaStringModel.js.map +1 -0
- package/__internal__/src/components/ColorPicker/types.d.ts +33 -0
- package/__internal__/src/components/ColorPicker/types.js +2 -0
- package/__internal__/src/components/ColorPicker/types.js.map +1 -0
- package/__internal__/src/components/ColorPicker/utils/clamp.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/utils/clamp.js +2 -0
- package/__internal__/src/components/ColorPicker/utils/clamp.js.map +1 -0
- package/__internal__/src/components/ColorPicker/utils/compare.d.ts +4 -0
- package/__internal__/src/components/ColorPicker/utils/compare.js +2 -0
- package/__internal__/src/components/ColorPicker/utils/compare.js.map +1 -0
- package/__internal__/src/components/ColorPicker/utils/convert.d.ts +32 -0
- package/__internal__/src/components/ColorPicker/utils/convert.js +2 -0
- package/__internal__/src/components/ColorPicker/utils/convert.js.map +1 -0
- package/__internal__/src/components/ColorPicker/utils/format.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/utils/format.js +2 -0
- package/__internal__/src/components/ColorPicker/utils/format.js.map +1 -0
- package/__internal__/src/components/ColorPicker/utils/round.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/utils/round.js +2 -0
- package/__internal__/src/components/ColorPicker/utils/round.js.map +1 -0
- package/__internal__/src/components/ColorPicker/utils/validate.d.ts +1 -0
- package/__internal__/src/components/ColorPicker/utils/validate.js +2 -0
- package/__internal__/src/components/ColorPicker/utils/validate.js.map +1 -0
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
- package/__internal__/src/components/Combobox/helpers.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/helpers.d.ts +4 -2
- package/__internal__/src/components/ContextMenu/types.d.ts +6 -3
- package/__internal__/src/components/ContextMenu/types.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +2 -0
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/getChangeFnRange.js +1 -1
- package/__internal__/src/components/DatePicker/getChangeFnRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/types.d.ts +7 -6
- package/__internal__/src/components/DatePicker/types.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTime100YearSlider/DateTime100YearSlider.js +1 -1
- package/__internal__/src/components/DateTime/DateTime100YearSlider/DateTime100YearSlider.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTime10YearSlider/DateTime10YearSlider.js +1 -1
- package/__internal__/src/components/DateTime/DateTime10YearSlider/DateTime10YearSlider.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeCell/DateTimeCell.d.ts +1 -1
- package/__internal__/src/components/DateTime/DateTimeCell/DateTimeCell.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeGrid/DateTimeGrid.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDate/DateTimeTypeDate.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDate/DateTimeTypeDate.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeMonth/DateTimeTypeMonth.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeMonth/DateTimeTypeMonth.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeYear/DateTimeTypeYear.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeYear/DateTimeTypeYear.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeYearSlider/DateTimeYearSlider.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeYearSlider/DateTimeYearSlider.js.map +1 -1
- package/__internal__/src/components/DateTime/helpers/index.js +1 -1
- package/__internal__/src/components/DateTime/helpers/index.js.map +1 -1
- package/__internal__/src/components/DateTime/helpers/types.d.ts +4 -3
- package/__internal__/src/components/DateTime/helpers/types.js.map +1 -1
- package/__internal__/src/components/DragNDropField/DragNDropFieldTooltip/DragNDropFieldTooltip.css +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/types.d.ts +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/types.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.css +4 -2
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.d.ts +5 -2
- package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/maps.d.ts +1 -0
- package/__internal__/src/components/FieldComponents/FieldControlLayout/maps.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/maps.js.map +1 -1
- package/__internal__/src/components/FieldGroup/getForm.js +1 -1
- package/__internal__/src/components/FieldGroup/getForm.js.map +1 -1
- package/__internal__/src/components/FileCanary/FileCanary.d.ts +1 -0
- package/__internal__/src/components/FileCanary/FileCanary.js +2 -0
- package/__internal__/src/components/FileCanary/FileCanary.js.map +1 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.css +1 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.d.ts +4 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.js +2 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.js.map +1 -0
- package/__internal__/src/components/FileCanary/config.d.ts +2 -0
- package/__internal__/src/components/FileCanary/config.js +2 -0
- package/__internal__/src/components/FileCanary/config.js.map +1 -0
- package/__internal__/src/components/FileCanary/fileCanaryGenerator.d.ts +2 -0
- package/__internal__/src/components/FileCanary/fileCanaryGenerator.js +2 -0
- package/__internal__/src/components/FileCanary/fileCanaryGenerator.js.map +1 -0
- package/__internal__/src/components/FileCanary/index.d.ts +4 -0
- package/__internal__/src/components/FileCanary/index.js +2 -0
- package/__internal__/src/components/FileCanary/index.js.map +1 -0
- package/__internal__/src/components/FileCanary/types.d.ts +25 -0
- package/__internal__/src/components/FileCanary/types.js +2 -0
- package/__internal__/src/components/FileCanary/types.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.css +8 -8
- package/__internal__/src/components/FlatSelect/FlatSelect.js +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelect.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.d.ts +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -1
- package/__internal__/src/components/FlatSelect/types.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/types.js.map +1 -1
- package/__internal__/src/components/Grid/types.d.ts +4 -4
- package/__internal__/src/components/Grid/types.js.map +1 -1
- package/__internal__/src/components/GridDeprecated/Grid.css +1 -1
- package/__internal__/src/components/GridDeprecated/GridDeprecated.d.ts +4 -4
- package/__internal__/src/components/GridDeprecated/GridDeprecated.js.map +1 -1
- package/__internal__/src/components/Informer/Informer.d.ts +3 -3
- package/__internal__/src/components/Informer/Informer.js.map +1 -1
- package/__internal__/src/components/Layout/Layout.d.ts +3 -3
- package/__internal__/src/components/Layout/Layout.js.map +1 -1
- package/__internal__/src/components/Layout/useFixed.d.ts +2 -2
- package/__internal__/src/components/Layout/useFixed.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListCanary.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListItemGrid/ListItemGrid.css +1 -1
- package/__internal__/src/components/ListCanary/types.d.ts +4 -4
- package/__internal__/src/components/ListCanary/types.js.map +1 -1
- package/__internal__/src/components/LoaderDeprecated/Loader.css +2 -2
- package/__internal__/src/components/LoaderDeprecated/LoaderDeprecated.d.ts +1 -1
- package/__internal__/src/components/LoaderDeprecated/LoaderDeprecated.js.map +1 -1
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.css +4 -4
- package/__internal__/src/components/ModalDeprecated/ModalDeprecated.d.ts +2 -2
- package/__internal__/src/components/ModalDeprecated/ModalDeprecated.js.map +1 -1
- package/__internal__/src/components/Notification/helpers/defaultDateFormat.js +1 -1
- package/__internal__/src/components/Notification/helpers/defaultDateFormat.js.map +1 -1
- package/__internal__/src/components/Pagination/types.d.ts +3 -3
- package/__internal__/src/components/Pagination/types.js.map +1 -1
- package/__internal__/src/components/PaginationDeprecated/PaginationDeprecated.d.ts +4 -4
- package/__internal__/src/components/PaginationDeprecated/PaginationDeprecated.js.map +1 -1
- package/__internal__/src/components/Popover/Popover.d.ts +2 -2
- package/__internal__/src/components/Popover/Popover.js.map +1 -1
- package/__internal__/src/components/ProgressLine/ProgressLine.css +1 -1
- package/__internal__/src/components/ProgressLine/types.d.ts +1 -1
- package/__internal__/src/components/ProgressLine/types.js.map +1 -1
- package/__internal__/src/components/ProgressSpin/ProgressSpin.d.ts +1 -1
- package/__internal__/src/components/ProgressSpin/ProgressSpin.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.css +8 -8
- package/__internal__/src/components/ProgressStepBar/helpers.d.ts +5 -5
- package/__internal__/src/components/ProgressStepBar/helpers.js.map +1 -1
- package/__internal__/src/components/Radio/Radio.css +1 -1
- package/__internal__/src/components/Radio/Radio.d.ts +3 -3
- package/__internal__/src/components/Radio/Radio.js.map +1 -1
- package/__internal__/src/components/RadioGroup/types.d.ts +4 -4
- package/__internal__/src/components/RadioGroup/types.js.map +1 -1
- package/__internal__/src/components/Responses/Responses.d.ts +1 -1
- package/__internal__/src/components/Responses/Responses.js.map +1 -1
- package/__internal__/src/components/Select/Select.js +1 -1
- package/__internal__/src/components/Select/Select.js.map +1 -1
- package/__internal__/src/components/Select/helpers.d.ts +3 -1
- package/__internal__/src/components/Select/helpers.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.d.ts +2 -1
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.css +2 -2
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/__test__/SelectMultiple.test.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/__test__/SelectMultiple.test.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.d.ts +2 -1
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/__test__/SelectSingle.test.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/__test__/SelectSingle.test.js.map +1 -1
- package/__internal__/src/components/SelectCanary/helpers.d.ts +2 -1
- package/__internal__/src/components/SelectCanary/types.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/types.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +2 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.css +1 -1
- package/__internal__/src/components/SelectComponents/types.d.ts +4 -4
- package/__internal__/src/components/SelectComponents/types.js.map +1 -1
- package/__internal__/src/components/SelectComponents/useSelect/useSelect.js +1 -1
- package/__internal__/src/components/SelectComponents/useSelect/useSelect.js.map +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.d.ts +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/SelectValueTag/SelectValueTag.css +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/types.d.ts +4 -4
- package/__internal__/src/components/SelectComponentsDeprecated/types.js.map +1 -1
- package/__internal__/src/components/Sidebar/types.d.ts +2 -2
- package/__internal__/src/components/Sidebar/types.js.map +1 -1
- package/__internal__/src/components/SidebarDeprecated/SidebarDeprecated.d.ts +2 -2
- package/__internal__/src/components/SidebarDeprecated/SidebarDeprecated.js.map +1 -1
- package/__internal__/src/components/Skeleton/Skeleton.css +1 -1
- package/__internal__/src/components/Slider/helper.d.ts +2 -2
- package/__internal__/src/components/Slider/helper.js.map +1 -1
- package/__internal__/src/components/SnackBar/types.d.ts +4 -4
- package/__internal__/src/components/SnackBar/types.js.map +1 -1
- package/__internal__/src/components/Spoiler/types.d.ts +2 -2
- package/__internal__/src/components/Spoiler/types.js.map +1 -1
- package/__internal__/src/components/Steps/StepsStep/StepsStep.css +1 -1
- package/__internal__/src/components/Steps/types.d.ts +1 -1
- package/__internal__/src/components/Steps/types.js.map +1 -1
- package/__internal__/src/components/Switch/Switch.css +1 -1
- package/__internal__/src/components/Switch/types.d.ts +3 -3
- package/__internal__/src/components/Switch/types.js.map +1 -1
- package/__internal__/src/components/SwitchGroup/types.d.ts +1 -1
- package/__internal__/src/components/SwitchGroup/types.js.map +1 -1
- package/__internal__/src/components/Table/Cell/TableCell.css +1 -1
- package/__internal__/src/components/Table/Cell/TableCell.d.ts +2 -2
- package/__internal__/src/components/Table/Cell/TableCell.js.map +1 -1
- package/__internal__/src/components/Table/Header/TableHeader.d.ts +1 -1
- package/__internal__/src/components/Table/Header/TableHeader.js.map +1 -1
- package/__internal__/src/components/Table/Table.d.ts +3 -3
- package/__internal__/src/components/Table/Table.js.map +1 -1
- package/__internal__/src/components/Table/__mock__/data.mock.d.ts +10 -10
- package/__internal__/src/components/Table/__mock__/data.mock.js.map +1 -1
- package/__internal__/src/components/Table/helpers.d.ts +1 -1
- package/__internal__/src/components/Table/helpers.js.map +1 -1
- package/__internal__/src/components/Tabs/Tabs.js.map +1 -1
- package/__internal__/src/components/Tabs/types.d.ts +4 -4
- package/__internal__/src/components/Tabs/types.js.map +1 -1
- package/__internal__/src/components/Tag/Tag.d.ts +1 -1
- package/__internal__/src/components/Tag/Tag.js.map +1 -1
- package/__internal__/src/components/TagBase/TagBase.d.ts +3 -3
- package/__internal__/src/components/TagBase/TagBase.js.map +1 -1
- package/__internal__/src/components/Text/Text.d.ts +13 -13
- package/__internal__/src/components/Text/Text.js.map +1 -1
- package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.css +1 -1
- package/__internal__/src/components/TextDeprecated/TextDeprecated.d.ts +13 -13
- package/__internal__/src/components/TextDeprecated/TextDeprecated.js.map +1 -1
- package/__internal__/src/components/TextField/types.d.ts +4 -4
- package/__internal__/src/components/TextField/types.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeNumber/TextFieldTypeNumber.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeNumber/TextFieldTypeNumber.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.css +2 -2
- package/__internal__/src/components/TextFieldCanary/useTextField.js.map +1 -1
- package/__internal__/src/components/Theme/_font/Silkscreen-Regular.woff +0 -0
- package/__internal__/src/components/Theme/_font/Silkscreen-Regular.woff2 +0 -0
- package/__internal__/src/components/Theme/_font/Theme_font_gpnDefault.css +1 -1
- package/__internal__/src/components/ThemeToggler/ThemeToggler.js.map +1 -1
- package/__internal__/src/components/ThemeToggler/types.d.ts +1 -1
- package/__internal__/src/components/ThemeToggler/types.js.map +1 -1
- package/__internal__/src/components/Timer/Timer.d.ts +1 -1
- package/__internal__/src/components/Timer/Timer.js.map +1 -1
- package/__internal__/src/components/Tooltip/types.d.ts +2 -2
- package/__internal__/src/components/Tooltip/types.js.map +1 -1
- package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.d.ts +2 -2
- package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.js.map +1 -1
- package/__internal__/src/components/User/User.css +1 -1
- package/__internal__/src/components/User/User.d.ts +4 -4
- package/__internal__/src/components/User/User.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.css +1 -1
- package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/fileIcons/FileIcon/FileIcon.d.ts +1 -1
- package/__internal__/src/fileIcons/FileIcon/FileIcon.js.map +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.d.ts +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js.map +1 -1
- package/__internal__/src/hooks/useBreakpointsDeprecated/useBreakpointsDeprecated.d.ts +1 -1
- package/__internal__/src/hooks/useBreakpointsDeprecated/useBreakpointsDeprecated.js.map +1 -1
- package/__internal__/src/hooks/useRefs/useRefs.js.map +1 -1
- package/__internal__/src/hooks/useStyleProps/types.js.map +1 -1
- package/__internal__/src/mixs/MixCard/MixCard.d.ts +2 -2
- package/__internal__/src/mixs/MixCard/MixCard.js.map +1 -1
- package/__internal__/src/mixs/MixFlex/MixFlex.d.ts +5 -5
- package/__internal__/src/mixs/MixFlex/MixFlex.js.map +1 -1
- package/__internal__/src/mixs/MixScrollBar/MixScrollBar.d.ts +2 -2
- package/__internal__/src/mixs/MixScrollBar/MixScrollBar.js.map +1 -1
- package/__internal__/src/mixs/MixVisuallyHidden/MixVisuallyHidden.css +1 -1
- package/__internal__/src/utils/array.js.map +1 -1
- package/__internal__/src/utils/date/index.js +1 -1
- package/__internal__/src/utils/date/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["stepsSizes","stepsDefaultSize"],"sources":["../../../../../src/components/Steps/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\n\nexport const stepsSizes = ['m', 's', 'l'] as const;\nexport type StepsPropSize = typeof stepsSizes[number];\nexport const stepsDefaultSize: StepsPropSize = stepsSizes[0];\n\nexport type StepsPropOnChange<ITEM> = (\n value: ITEM,\n props: {\n e: React.MouseEvent;\n },\n) => void;\n\nexport type StepsPropGetLabel<ITEM> = (item: ITEM) => string;\nexport type StepsPropGetDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type StepsPropGetSkipped<ITEM> = (item: ITEM) => boolean | undefined;\nexport type StepsPropGetCompleted<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type StepsItemDefault = {\n label: string;\n disabled?: boolean;\n skipped?: boolean;\n completed?: boolean;\n};\n\nexport type StepsProps<ITEM = StepsItemDefault> = PropsWithHTMLAttributesAndRef<\n {\n size?: StepsPropSize;\n items: ITEM[];\n value: ITEM;\n getItemLabel?: StepsPropGetLabel<ITEM>;\n getItemDisabled?: StepsPropGetDisabled<ITEM>;\n getItemCompleted?: StepsPropGetCompleted<ITEM>;\n getItemSkipped?: StepsPropGetSkipped<ITEM>;\n onChange: StepsPropOnChange<ITEM>;\n className?: string;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: StepsItemDefault['label'] }\n ? {}\n : {\n getItemLabel: StepsPropGetLabel<ITEM>;\n });\n\nexport type StepsComponent = <ITEM>(\n props: StepsProps<ITEM>,\n) => React.ReactNode | null;\n"],"mappings":"AAEA,MAAO,IAAMA,WAAU,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAnB,CAEP,MAAO,IAAMC,iBAA+B,CAAGD,UAAU,CAAC,CAAD,CAAlD"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["stepsSizes","stepsDefaultSize"],"sources":["../../../../../src/components/Steps/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\n\nexport const stepsSizes = ['m', 's', 'l'] as const;\nexport type StepsPropSize = (typeof stepsSizes)[number];\nexport const stepsDefaultSize: StepsPropSize = stepsSizes[0];\n\nexport type StepsPropOnChange<ITEM> = (\n value: ITEM,\n props: {\n e: React.MouseEvent;\n },\n) => void;\n\nexport type StepsPropGetLabel<ITEM> = (item: ITEM) => string;\nexport type StepsPropGetDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type StepsPropGetSkipped<ITEM> = (item: ITEM) => boolean | undefined;\nexport type StepsPropGetCompleted<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type StepsItemDefault = {\n label: string;\n disabled?: boolean;\n skipped?: boolean;\n completed?: boolean;\n};\n\nexport type StepsProps<ITEM = StepsItemDefault> = PropsWithHTMLAttributesAndRef<\n {\n size?: StepsPropSize;\n items: ITEM[];\n value: ITEM;\n getItemLabel?: StepsPropGetLabel<ITEM>;\n getItemDisabled?: StepsPropGetDisabled<ITEM>;\n getItemCompleted?: StepsPropGetCompleted<ITEM>;\n getItemSkipped?: StepsPropGetSkipped<ITEM>;\n onChange: StepsPropOnChange<ITEM>;\n className?: string;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: StepsItemDefault['label'] }\n ? {}\n : {\n getItemLabel: StepsPropGetLabel<ITEM>;\n });\n\nexport type StepsComponent = <ITEM>(\n props: StepsProps<ITEM>,\n) => React.ReactNode | null;\n"],"mappings":"AAEA,MAAO,IAAMA,WAAU,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAnB,CAEP,MAAO,IAAMC,iBAA+B,CAAGD,UAAU,CAAC,CAAD,CAAlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.Switch{--switch-border-gap:calc(var(--control-border-width)*4);--switch-circle-size:calc(var(--box-height) - var(--switch-border-gap));cursor:pointer;display:inline-flex;font-family:var(--font-primary);line-height:var(--line-height-text-s);position:relative}.Switch_size_xs{--box-height:var(--control-box-size-m);--switch-font-size:var(--control-text-size-xs);--offset:var(--space-xs);--align-top-margin:0}.Switch_size_s{--box-height:var(--control-box-size-m);--switch-font-size:var(--control-text-size-s);--offset:var(--space-xs);--align-top-margin:var(--space-3xs)}.Switch_size_m{--box-height:var(--control-box-size-l);--switch-font-size:var(--control-text-size-m);--offset:var(--space-xs);--align-top-margin:0}.Switch_size_l{--box-height:var(--space-xl);--switch-font-size:var(--control-text-size-l);--offset:var(--space-s);--align-top-margin:var(--space-3xs)}.Switch_view_primary:hover .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default-hover);--background-color:transparent;--content-color:var(--color-control-bg-border-default-hover)}.Switch_view_primary .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default);--background-color:transparent;--content-color:var(--color-control-bg-border-default)}.Switch_view_primary:hover .Switch-Input:checked{--border-color:var(--color-control-bg-primary-hover);--background-color:var(--color-control-bg-primary-hover);--content-color:var(--color-control-typo-primary-hover)}.Switch_view_primary .Switch-Input:checked{--border-color:var(--color-control-bg-primary);--background-color:var(--color-control-bg-primary);--content-color:var(--color-control-typo-primary)}.Switch_view_ghost:hover .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default-hover);--background-color:transparent;--content-color:var(--color-control-bg-border-default-hover)}.Switch_view_ghost .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default);--background-color:transparent;--content-color:var(--color-control-bg-border-default)}.Switch_view_ghost:hover .Switch-Input:checked{--border-color:var(--color-control-bg-border-default-hover);--background-color:var(--color-control-bg-ghost-hover);--content-color:var(--color-control-typo-ghost-hover)}.Switch_view_ghost .Switch-Input:checked{--border-color:var(--color-control-bg-border-default);--background-color:var(--color-control-bg-ghost);--content-color:var(--color-control-typo-ghost)}.Switch-Input{align-items:center;-webkit-appearance:none;background-color:var(--background-color);border:var(--control-border-width) solid var(--border-color);border-radius:99rem;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;height:var(--box-height);margin:0;position:relative;transition:background-color .15s,border-color .15s;width:calc(var(--box-height)*2 - var(--switch-border-gap))}.Switch-Input:before{background-color:var(--content-color);border-radius:999rem;box-sizing:border-box;content:"";height:var(--switch-circle-size);position:absolute;right:1px;transform:translateX(calc((var(--box-height) - var(--switch-border-gap))*-1));transition:transform .15s,background-color .15s;width:var(--switch-circle-size)}.Switch-Input:checked{background-color:var(--background-color)}.Switch-Input:checked:before{transform:translateX(0)}.Switch-Label{color:var(--color-control-typo-default);font-size:var(--switch-font-size);margin-left:var(--offset)}.Switch_disabled{pointer-events:none}.Switch_disabled .Switch-Input:disabled{--border-color:transparent;--background-color:var(--color-control-bg-disable);--content-color:var(--color-control-typo-disable)}.Switch_disabled .Switch-Input:disabled~.Switch-Label{color:var(--color-control-typo-disable)}.Switch_align_center{align-items:center}.Switch_align_top{align-items:
|
|
1
|
+
.Switch{--switch-border-gap:calc(var(--control-border-width)*4);--switch-circle-size:calc(var(--box-height) - var(--switch-border-gap));cursor:pointer;display:inline-flex;font-family:var(--font-primary);line-height:var(--line-height-text-s);position:relative}.Switch_size_xs{--box-height:var(--control-box-size-m);--switch-font-size:var(--control-text-size-xs);--offset:var(--space-xs);--align-top-margin:0}.Switch_size_s{--box-height:var(--control-box-size-m);--switch-font-size:var(--control-text-size-s);--offset:var(--space-xs);--align-top-margin:var(--space-3xs)}.Switch_size_m{--box-height:var(--control-box-size-l);--switch-font-size:var(--control-text-size-m);--offset:var(--space-xs);--align-top-margin:0}.Switch_size_l{--box-height:var(--space-xl);--switch-font-size:var(--control-text-size-l);--offset:var(--space-s);--align-top-margin:var(--space-3xs)}.Switch_view_primary:hover .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default-hover);--background-color:transparent;--content-color:var(--color-control-bg-border-default-hover)}.Switch_view_primary .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default);--background-color:transparent;--content-color:var(--color-control-bg-border-default)}.Switch_view_primary:hover .Switch-Input:checked{--border-color:var(--color-control-bg-primary-hover);--background-color:var(--color-control-bg-primary-hover);--content-color:var(--color-control-typo-primary-hover)}.Switch_view_primary .Switch-Input:checked{--border-color:var(--color-control-bg-primary);--background-color:var(--color-control-bg-primary);--content-color:var(--color-control-typo-primary)}.Switch_view_ghost:hover .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default-hover);--background-color:transparent;--content-color:var(--color-control-bg-border-default-hover)}.Switch_view_ghost .Switch-Input:not(:checked){--border-color:var(--color-control-bg-border-default);--background-color:transparent;--content-color:var(--color-control-bg-border-default)}.Switch_view_ghost:hover .Switch-Input:checked{--border-color:var(--color-control-bg-border-default-hover);--background-color:var(--color-control-bg-ghost-hover);--content-color:var(--color-control-typo-ghost-hover)}.Switch_view_ghost .Switch-Input:checked{--border-color:var(--color-control-bg-border-default);--background-color:var(--color-control-bg-ghost);--content-color:var(--color-control-typo-ghost)}.Switch-Input{align-items:center;-webkit-appearance:none;background-color:var(--background-color);border:var(--control-border-width) solid var(--border-color);border-radius:99rem;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;height:var(--box-height);margin:0;position:relative;transition:background-color .15s,border-color .15s;width:calc(var(--box-height)*2 - var(--switch-border-gap))}.Switch-Input:before{background-color:var(--content-color);border-radius:999rem;box-sizing:border-box;content:"";height:var(--switch-circle-size);position:absolute;right:1px;transform:translateX(calc((var(--box-height) - var(--switch-border-gap))*-1));transition:transform .15s,background-color .15s;width:var(--switch-circle-size)}.Switch-Input:checked{background-color:var(--background-color)}.Switch-Input:checked:before{transform:translateX(0)}.Switch-Label{color:var(--color-control-typo-default);font-size:var(--switch-font-size);margin-left:var(--offset)}.Switch_disabled{pointer-events:none}.Switch_disabled .Switch-Input:disabled{--border-color:transparent;--background-color:var(--color-control-bg-disable);--content-color:var(--color-control-typo-disable)}.Switch_disabled .Switch-Input:disabled~.Switch-Label{color:var(--color-control-typo-disable)}.Switch_align_center{align-items:center}.Switch_align_top{align-items:start}.Switch_align_top .Switch-Input{margin-top:var(--align-top-margin)}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
|
|
2
2
|
export declare const switchPropSize: readonly ["m", "xs", "s", "l"];
|
|
3
|
-
export type SwitchPropSize = typeof switchPropSize[number];
|
|
3
|
+
export type SwitchPropSize = (typeof switchPropSize)[number];
|
|
4
4
|
export declare const switchPropSizeDefault: SwitchPropSize;
|
|
5
5
|
export declare const switchPropView: readonly ["primary", "ghost"];
|
|
6
|
-
export type SwitchPropView = typeof switchPropView[number];
|
|
6
|
+
export type SwitchPropView = (typeof switchPropView)[number];
|
|
7
7
|
export declare const switchPropViewDefault: SwitchPropView;
|
|
8
8
|
export declare const switchPropAlign: readonly ["center", "top"];
|
|
9
|
-
export type SwitchPropAlign = typeof switchPropAlign[number];
|
|
9
|
+
export type SwitchPropAlign = (typeof switchPropAlign)[number];
|
|
10
10
|
export declare const switchPropAlignDefault: SwitchPropAlign;
|
|
11
11
|
export declare const switchPropOnChangeDefault: () => void;
|
|
12
12
|
export type SwitchPropOnChange = (checked: boolean, params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["switchPropSize","switchPropSizeDefault","switchPropView","switchPropViewDefault","switchPropAlign","switchPropAlignDefault","switchPropOnChangeDefault"],"sources":["../../../../../src/components/Switch/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const switchPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type SwitchPropSize = typeof switchPropSize[number];\nexport const switchPropSizeDefault: SwitchPropSize = switchPropSize[0];\n\nexport const switchPropView = ['primary', 'ghost'] as const;\nexport type SwitchPropView = typeof switchPropView[number];\nexport const switchPropViewDefault: SwitchPropView = switchPropView[0];\n\nexport const switchPropAlign = ['center', 'top'] as const;\nexport type SwitchPropAlign = typeof switchPropAlign[number];\nexport const switchPropAlignDefault: SwitchPropAlign = switchPropAlign[0];\n\nexport const switchPropOnChangeDefault = () => {};\n\nexport type SwitchPropOnChange = (\n checked: boolean,\n params: {\n e: React.ChangeEvent<HTMLInputElement>;\n },\n) => void;\n\nexport type SwitchProps = PropsWithHTMLAttributes<\n {\n checked: boolean | undefined;\n size?: SwitchPropSize;\n view?: SwitchPropView;\n align?: SwitchPropAlign;\n disabled?: boolean;\n className?: string;\n label?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n name?: string;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n autoFocus?: boolean;\n readOnly?: boolean;\n required?: boolean;\n step?: number | string;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLInputElement>;\n children?: never;\n inputId?: string;\n },\n HTMLLabelElement\n>;\n"],"mappings":"AAEA,MAAO,IAAMA,eAAc,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CAEP,MAAO,IAAME,gBAAe,CAAG,CAAC,QAAD,CAAW,KAAX,CAAxB,CAEP,MAAO,IAAMC,uBAAuC,CAAGD,eAAe,CAAC,CAAD,CAA/D,CAEP,MAAO,IAAME,0BAAyB,CAAG,UAAM,CAAE,CAA1C"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["switchPropSize","switchPropSizeDefault","switchPropView","switchPropViewDefault","switchPropAlign","switchPropAlignDefault","switchPropOnChangeDefault"],"sources":["../../../../../src/components/Switch/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const switchPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type SwitchPropSize = (typeof switchPropSize)[number];\nexport const switchPropSizeDefault: SwitchPropSize = switchPropSize[0];\n\nexport const switchPropView = ['primary', 'ghost'] as const;\nexport type SwitchPropView = (typeof switchPropView)[number];\nexport const switchPropViewDefault: SwitchPropView = switchPropView[0];\n\nexport const switchPropAlign = ['center', 'top'] as const;\nexport type SwitchPropAlign = (typeof switchPropAlign)[number];\nexport const switchPropAlignDefault: SwitchPropAlign = switchPropAlign[0];\n\nexport const switchPropOnChangeDefault = () => {};\n\nexport type SwitchPropOnChange = (\n checked: boolean,\n params: {\n e: React.ChangeEvent<HTMLInputElement>;\n },\n) => void;\n\nexport type SwitchProps = PropsWithHTMLAttributes<\n {\n checked: boolean | undefined;\n size?: SwitchPropSize;\n view?: SwitchPropView;\n align?: SwitchPropAlign;\n disabled?: boolean;\n className?: string;\n label?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n name?: string;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n autoFocus?: boolean;\n readOnly?: boolean;\n required?: boolean;\n step?: number | string;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLInputElement>;\n children?: never;\n inputId?: string;\n },\n HTMLLabelElement\n>;\n"],"mappings":"AAEA,MAAO,IAAMA,eAAc,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CAEP,MAAO,IAAME,gBAAe,CAAG,CAAC,QAAD,CAAW,KAAX,CAAxB,CAEP,MAAO,IAAMC,uBAAuC,CAAGD,eAAe,CAAC,CAAD,CAA/D,CAEP,MAAO,IAAME,0BAAyB,CAAG,UAAM,CAAE,CAA1C"}
|
|
@@ -5,7 +5,7 @@ export type SwitchGroupDefaultItem = {
|
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
};
|
|
7
7
|
export declare const switchGroupDirections: readonly ["column", "row"];
|
|
8
|
-
export type SwitchGroupDirection = typeof switchGroupDirections[number];
|
|
8
|
+
export type SwitchGroupDirection = (typeof switchGroupDirections)[number];
|
|
9
9
|
export declare const switchGroupDefaultDirection: SwitchGroupDirection;
|
|
10
10
|
export type SwitchGroupPropGetItemLabel<ITEM> = (item: ITEM) => string;
|
|
11
11
|
export type SwitchGroupPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["switchGroupDirections","switchGroupDefaultDirection"],"sources":["../../../../../src/components/SwitchGroup/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport { SwitchPropSize, SwitchPropView } from '../Switch/types';\n\nexport type SwitchGroupDefaultItem = {\n label: string;\n disabled?: boolean;\n};\n\nexport const switchGroupDirections = ['column', 'row'] as const;\nexport type SwitchGroupDirection = typeof switchGroupDirections[number];\nexport const switchGroupDefaultDirection: SwitchGroupDirection =\n switchGroupDirections[0];\n\nexport type SwitchGroupPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type SwitchGroupPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\n\nexport type SwitchGroupPropOnChange<ITEM> = (\n value: ITEM[] | null,\n props: {\n e: React.ChangeEvent<HTMLInputElement>;\n },\n) => void;\n\nexport type SwitchGroupProps<ITEM = SwitchGroupDefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n value?: ITEM[] | null;\n items: ITEM[];\n getItemLabel?: SwitchGroupPropGetItemLabel<ITEM>;\n getItemDisabled?: SwitchGroupPropGetItemDisabled<ITEM>;\n onChange?: SwitchGroupPropOnChange<ITEM>;\n name: string;\n direction?: SwitchGroupDirection;\n size?: SwitchPropSize;\n view?: SwitchPropView;\n disabled?: boolean;\n className?: string;\n },\n HTMLDivElement\n > &\n (ITEM extends { label: SwitchGroupDefaultItem['label'] }\n ? {}\n : {\n getItemLabel: SwitchGroupPropGetItemLabel<ITEM>;\n });\n\nexport type SwitchGroupComponent = <ITEM>(\n props: SwitchGroupProps<ITEM>,\n) => React.ReactNode | null;\n"],"mappings":"AAQA,MAAO,IAAMA,sBAAqB,CAAG,CAAC,QAAD,CAAW,KAAX,CAA9B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,qBAAqB,CAAC,CAAD,CADhB"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["switchGroupDirections","switchGroupDefaultDirection"],"sources":["../../../../../src/components/SwitchGroup/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport { SwitchPropSize, SwitchPropView } from '../Switch/types';\n\nexport type SwitchGroupDefaultItem = {\n label: string;\n disabled?: boolean;\n};\n\nexport const switchGroupDirections = ['column', 'row'] as const;\nexport type SwitchGroupDirection = (typeof switchGroupDirections)[number];\nexport const switchGroupDefaultDirection: SwitchGroupDirection =\n switchGroupDirections[0];\n\nexport type SwitchGroupPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type SwitchGroupPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\n\nexport type SwitchGroupPropOnChange<ITEM> = (\n value: ITEM[] | null,\n props: {\n e: React.ChangeEvent<HTMLInputElement>;\n },\n) => void;\n\nexport type SwitchGroupProps<ITEM = SwitchGroupDefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n value?: ITEM[] | null;\n items: ITEM[];\n getItemLabel?: SwitchGroupPropGetItemLabel<ITEM>;\n getItemDisabled?: SwitchGroupPropGetItemDisabled<ITEM>;\n onChange?: SwitchGroupPropOnChange<ITEM>;\n name: string;\n direction?: SwitchGroupDirection;\n size?: SwitchPropSize;\n view?: SwitchPropView;\n disabled?: boolean;\n className?: string;\n },\n HTMLDivElement\n > &\n (ITEM extends { label: SwitchGroupDefaultItem['label'] }\n ? {}\n : {\n getItemLabel: SwitchGroupPropGetItemLabel<ITEM>;\n });\n\nexport type SwitchGroupComponent = <ITEM>(\n props: SwitchGroupProps<ITEM>,\n) => React.ReactNode | null;\n"],"mappings":"AAQA,MAAO,IAAMA,sBAAqB,CAAG,CAAC,QAAD,CAAW,KAAX,CAA9B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,qBAAqB,CAAC,CAAD,CADhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.TableCell{--buttons-wrapper-size:0px;background-color:var(--color-bg-default);box-sizing:border-box;color:var(--color-typo-primary);grid-column-end:var(--table-cell-col-end);grid-column-start:var(--table-cell-col-start);grid-row-end:var(--row-span);z-index:var(--table-z)}.TableCell_withoutBorder{border:none}.TableCell_isHeader{border-bottom:1px solid var(--color-bg-border);font-size:var(--size-text-xs);font-weight:var(--font-weight-text-bold);letter-spacing:.05em;line-height:var(--line-height-text-s);position:relative;text-transform:uppercase}.TableCell:not(.TableCell_isHeader){font-size:var(--size-text-s);line-height:var(--line-height-text-s)}.TableCell_isResized{
|
|
1
|
+
.TableCell{--buttons-wrapper-size:0px;background-color:var(--color-bg-default);box-sizing:border-box;color:var(--color-typo-primary);grid-column-end:var(--table-cell-col-end);grid-column-start:var(--table-cell-col-start);grid-row-end:var(--row-span);z-index:var(--table-z)}.TableCell_withoutBorder{border:none}.TableCell_isHeader{border-bottom:1px solid var(--color-bg-border);font-size:var(--size-text-xs);font-weight:var(--font-weight-text-bold);letter-spacing:.05em;line-height:var(--line-height-text-s);position:relative;text-transform:uppercase}.TableCell:not(.TableCell_isHeader){font-size:var(--size-text-s);line-height:var(--line-height-text-s)}.TableCell_isResized{overflow-wrap:break-word}.TableCell_isClickable{cursor:pointer}.TableCell_isControl,.TableCell_isFilterable,.TableCell_isSortable{--buttons-wrapper-size:var(--space-xl)}.TableCell_isFilterable.TableCell_isControl,.TableCell_isSortable.TableCell_isControl,.TableCell_isSortable.TableCell_isFilterable{--buttons-wrapper-size:var(--space-4xl)}.TableCell_isSortable.TableCell_isFilterable.TableCell_isControl{--buttons-wrapper-size:var(--space-5xl)}.TableCell_stickyOnLeft,.TableCell_stickyOnTop{position:sticky}.TableCell_stickyOnLeft.TableCell_isResizer,.TableCell_stickyOnTop.TableCell_isResizer{z-index:calc(var(--sticky-top-and-left-z) + 1)}.TableCell_stickyOnTop{top:0;z-index:var(--sticky-top-z)}.TableCell_stickyOnLeft{left:0;z-index:var(--sticky-left-z)}.TableCell_stickyOnLeft.TableCell_isHeader{z-index:var(--sticky-top-and-left-z)}.TableCell_isBorderTop{border-top:var(--table-border)}.TableCell_isBorderLeft{border-left:var(--table-border)}.TableCell-Wrapper{box-sizing:border-box;display:flex;height:100%;padding:var(--cell-padding-vertical) var(--cell-padding-horizontal);padding-right:calc(var(--cell-padding-horizontal) + var(--resizer-width) + var(--buttons-wrapper-size));position:relative}.TableCell-Wrapper_wrap_truncate{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TableCell-Wrapper_wrap_break{max-width:100%;overflow-wrap:break-word;white-space:pre-wrap}.TableCell-Wrapper_withoutPadding{padding:0}.TableCell-Wrapper_verticalAlign_top{align-items:flex-start}.TableCell-Wrapper_verticalAlign_center{align-items:center}.TableCell-Wrapper_verticalAlign_bottom{align-items:flex-end}.TableCell-Wrapper_horizontalAlign_left{justify-content:flex-start}.TableCell-Wrapper_horizontalAlign_center{justify-content:center;text-align:center}.TableCell-Wrapper_horizontalAlign_right{justify-content:flex-end;text-align:right}.TableCell_stickyOnLeft .TableCell-Wrapper:after{background:linear-gradient(90deg,var(--shadow-color),transparent);bottom:0;content:"";opacity:0;pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:opacity var(--fast-transition);width:var(--space-s)}.TableCell_stickyOnLeft.TableCell_showVerticalShadow .TableCell-Wrapper:after{opacity:1}.TableCell_isHeader:hover .TableCell-Wrapper{background:var(--color-bg-stripe)}
|
|
@@ -2,9 +2,9 @@ import './TableCell.css';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TableColumn, TableRow } from '../Table';
|
|
4
4
|
export declare const verticalAligns: readonly ["top", "center", "bottom"];
|
|
5
|
-
export type VerticalAlign = typeof verticalAligns[number];
|
|
5
|
+
export type VerticalAlign = (typeof verticalAligns)[number];
|
|
6
6
|
export declare const horizontalAligns: readonly ["left", "center", "right"];
|
|
7
|
-
export type HorizontalAlign = typeof horizontalAligns[number];
|
|
7
|
+
export type HorizontalAlign = (typeof horizontalAligns)[number];
|
|
8
8
|
type Props<T extends TableRow> = {
|
|
9
9
|
column: TableColumn<T> & {
|
|
10
10
|
isSticky?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCell.js","names":["React","cn","cnTableCell","verticalAligns","horizontalAligns","getCellClasses","props","column","showVerticalShadow","className","isSticky","isResized","type","isSortable","sortable","isHeader","isResizer","stickyOnTop","stickyOnLeft","isFilterable","filterable","isControl","control","withoutBorder","isClickable","isBorderTop","isBorderLeft","getWrapperClasses","wrapperClassName","withoutPadding","verticalAlign","horizontalAlign","align","wrap","TableCell","forwardRef","ref","style","onClick","onContextMenu","children","propsWithRole","role"],"sources":["../../../../../../src/components/Table/Cell/TableCell.tsx"],"sourcesContent":["import './TableCell.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { TableColumn, TableRow } from '../Table';\n\nconst cnTableCell = cn('TableCell');\n\nexport const verticalAligns = ['top', 'center', 'bottom'] as const;\nexport type VerticalAlign = typeof verticalAligns[number];\nexport const horizontalAligns = ['left', 'center', 'right'] as const;\nexport type HorizontalAlign = typeof horizontalAligns[number];\n\ntype Props<T extends TableRow> = {\n column: TableColumn<T> & {\n isSticky?: boolean;\n isResized?: boolean;\n filterable?: boolean;\n };\n onClick?: (e: React.SyntheticEvent) => void;\n onContextMenu?: (e: React.SyntheticEvent) => void;\n style?: React.CSSProperties;\n className?: string;\n wrapperClassName?: string;\n children: React.ReactNode;\n wrap?: 'truncate' | 'break';\n showVerticalShadow?: boolean;\n verticalAlign?: VerticalAlign;\n} & (\n | {\n type: 'header';\n isSticky?: boolean;\n isResized?: boolean;\n }\n | {\n type: 'content';\n isClickable?: boolean;\n isBorderTop?: boolean;\n isBorderLeft?: boolean;\n }\n | {\n type: 'resizer';\n }\n) &\n React.RefAttributes<HTMLDivElement>;\n\ntype TableCell = <T extends TableRow>(\n props: Props<T>,\n) => React.ReactNode | null;\n\nconst getCellClasses = <T extends TableRow>(props: Props<T>): string => {\n const { column, showVerticalShadow, className } = props;\n\n return cnTableCell(\n {\n showVerticalShadow,\n isSticky: column.isSticky,\n isResized: props.type === 'header' ? props.isResized : column.isResized,\n isSortable: column.sortable,\n isHeader: props.type === 'header',\n isResizer: props.type === 'resizer',\n stickyOnTop:\n (props.type === 'header' && props.isSticky) || props.type === 'resizer',\n stickyOnLeft: column.isSticky,\n isFilterable: column.filterable,\n isControl: Boolean(column.control),\n withoutBorder: props.type === 'resizer',\n isClickable: 'isClickable' in props && props.isClickable,\n isBorderTop: 'isBorderTop' in props && props.isBorderTop,\n isBorderLeft: 'isBorderLeft' in props && props.isBorderLeft,\n },\n [className],\n );\n};\n\nconst getWrapperClasses = <T extends TableRow>(props: Props<T>): string => {\n const { column, wrapperClassName } = props;\n\n return cnTableCell(\n 'Wrapper',\n {\n withoutPadding: column.withoutPadding || props.type === 'resizer',\n verticalAlign: props.verticalAlign,\n horizontalAlign: column.align,\n isHeader: props.type === 'header',\n wrap: props.wrap,\n },\n [wrapperClassName],\n );\n};\n\nexport const TableCell: TableCell = React.forwardRef((props, ref) => {\n const { style, onClick, onContextMenu, children } = props;\n\n const propsWithRole = onClick\n ? {\n role: 'button',\n onClick,\n }\n : {\n role: 'cell',\n };\n\n return (\n <div\n {...propsWithRole}\n onContextMenu={onContextMenu}\n ref={ref}\n className={getCellClasses(props)}\n style={style}\n >\n <div className={getWrapperClasses(props)}>{children}</div>\n </div>\n );\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableCell.js","names":["React","cn","cnTableCell","verticalAligns","horizontalAligns","getCellClasses","props","column","showVerticalShadow","className","isSticky","isResized","type","isSortable","sortable","isHeader","isResizer","stickyOnTop","stickyOnLeft","isFilterable","filterable","isControl","control","withoutBorder","isClickable","isBorderTop","isBorderLeft","getWrapperClasses","wrapperClassName","withoutPadding","verticalAlign","horizontalAlign","align","wrap","TableCell","forwardRef","ref","style","onClick","onContextMenu","children","propsWithRole","role"],"sources":["../../../../../../src/components/Table/Cell/TableCell.tsx"],"sourcesContent":["import './TableCell.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { TableColumn, TableRow } from '../Table';\n\nconst cnTableCell = cn('TableCell');\n\nexport const verticalAligns = ['top', 'center', 'bottom'] as const;\nexport type VerticalAlign = (typeof verticalAligns)[number];\nexport const horizontalAligns = ['left', 'center', 'right'] as const;\nexport type HorizontalAlign = (typeof horizontalAligns)[number];\n\ntype Props<T extends TableRow> = {\n column: TableColumn<T> & {\n isSticky?: boolean;\n isResized?: boolean;\n filterable?: boolean;\n };\n onClick?: (e: React.SyntheticEvent) => void;\n onContextMenu?: (e: React.SyntheticEvent) => void;\n style?: React.CSSProperties;\n className?: string;\n wrapperClassName?: string;\n children: React.ReactNode;\n wrap?: 'truncate' | 'break';\n showVerticalShadow?: boolean;\n verticalAlign?: VerticalAlign;\n} & (\n | {\n type: 'header';\n isSticky?: boolean;\n isResized?: boolean;\n }\n | {\n type: 'content';\n isClickable?: boolean;\n isBorderTop?: boolean;\n isBorderLeft?: boolean;\n }\n | {\n type: 'resizer';\n }\n) &\n React.RefAttributes<HTMLDivElement>;\n\ntype TableCell = <T extends TableRow>(\n props: Props<T>,\n) => React.ReactNode | null;\n\nconst getCellClasses = <T extends TableRow>(props: Props<T>): string => {\n const { column, showVerticalShadow, className } = props;\n\n return cnTableCell(\n {\n showVerticalShadow,\n isSticky: column.isSticky,\n isResized: props.type === 'header' ? props.isResized : column.isResized,\n isSortable: column.sortable,\n isHeader: props.type === 'header',\n isResizer: props.type === 'resizer',\n stickyOnTop:\n (props.type === 'header' && props.isSticky) || props.type === 'resizer',\n stickyOnLeft: column.isSticky,\n isFilterable: column.filterable,\n isControl: Boolean(column.control),\n withoutBorder: props.type === 'resizer',\n isClickable: 'isClickable' in props && props.isClickable,\n isBorderTop: 'isBorderTop' in props && props.isBorderTop,\n isBorderLeft: 'isBorderLeft' in props && props.isBorderLeft,\n },\n [className],\n );\n};\n\nconst getWrapperClasses = <T extends TableRow>(props: Props<T>): string => {\n const { column, wrapperClassName } = props;\n\n return cnTableCell(\n 'Wrapper',\n {\n withoutPadding: column.withoutPadding || props.type === 'resizer',\n verticalAlign: props.verticalAlign,\n horizontalAlign: column.align,\n isHeader: props.type === 'header',\n wrap: props.wrap,\n },\n [wrapperClassName],\n );\n};\n\nexport const TableCell: TableCell = React.forwardRef((props, ref) => {\n const { style, onClick, onContextMenu, children } = props;\n\n const propsWithRole = onClick\n ? {\n role: 'button',\n onClick,\n }\n : {\n role: 'cell',\n };\n\n return (\n <div\n {...propsWithRole}\n onContextMenu={onContextMenu}\n ref={ref}\n className={getCellClasses(props)}\n style={style}\n >\n <div className={getWrapperClasses(props)}>{children}</div>\n </div>\n );\n});\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { FieldSelectedValues, Filters, SelectedFilters } from '../filtering';
|
|
|
4
4
|
import { Header } from '../helpers';
|
|
5
5
|
import { ColumnMetaData, HeaderVerticalAlign, onCellClick, TableColumn, TableRow } from '../Table';
|
|
6
6
|
export declare const levelTypes: readonly ["high", "low", "default"];
|
|
7
|
-
export type LevelType = typeof levelTypes[number];
|
|
7
|
+
export type LevelType = (typeof levelTypes)[number];
|
|
8
8
|
type Props<T extends TableRow> = {
|
|
9
9
|
isStickyHeader: boolean;
|
|
10
10
|
headersWithMetaData: Array<Header<T> & ColumnMetaData>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.js","names":["React","cn","Button","TableCell","getOptionsForFilters","TableFilterTooltip","cnTableHeader","levelTypes","TableHeader","isStickyHeader","headersWithMetaData","headerRowsHeights","headerRowsRefs","getStickyLeftOffset","stickyColumnsGrid","showVerticalCellShadow","headerVerticalAlign","getSortIcon","handleSortClick","handleFilterTogglerClick","handleCellClick","handleTooltipSave","filters","visibleFilter","selectedFilters","showHorizontalCellShadow","borderBetweenColumns","tableHeaderHeight","reduce","a","b","tableHeaderStyle","getLevelType","column","position","colSpan","smallTextSize","isColumnResized","headers","build","header","columns","forEach","col","find","head","title","push","some","isResized","getFilterPopover","accessor","curFilter","field","FilterComponent","component","name","filterComponentProps","props","onToggle","filterId","id","filterable","selected","type","handleFilterSave","filterValue","value","control","withVerticalBorder","map","columnIdx","style","gridColumnEnd","rowSpan","gridRowEnd","top","slice","level","ref","current","left","gridIndex","topHeaderGridIndex","e","isFirstColumn","isFirst","isFirstRow","isLastInColumn","isSortingActive","isFilterActive","verticalAlign","sortable","show"],"sources":["../../../../../../src/components/Table/Header/TableHeader.tsx"],"sourcesContent":["import './TableHeader.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { Button } from '../../Button/Button';\nimport { TableCell } from '../Cell/TableCell';\nimport {\n FieldSelectedValues,\n Filters,\n getOptionsForFilters,\n SelectedFilters,\n} from '../filtering';\nimport { TableFilterTooltip } from '../FilterTooltip/TableFilterTooltip';\nimport { Header } from '../helpers';\nimport {\n ColumnMetaData,\n HeaderVerticalAlign,\n onCellClick,\n TableColumn,\n TableRow,\n} from '../Table';\n\nconst cnTableHeader = cn('TableHeader');\n\ntype TableCSSCustomProperty = {\n '--table-header-height': string;\n};\n\nexport const levelTypes = ['high', 'low', 'default'] as const;\nexport type LevelType = typeof levelTypes[number];\n\ntype Props<T extends TableRow> = {\n isStickyHeader: boolean;\n headersWithMetaData: Array<Header<T> & ColumnMetaData>;\n headerRowsHeights: Array<number>;\n headerRowsRefs: React.MutableRefObject<Record<number, HTMLDivElement | null>>;\n getStickyLeftOffset: (\n columnIndex: number,\n topHeaderGridIndex: number,\n ) => number | undefined;\n stickyColumnsGrid: number;\n showVerticalCellShadow: boolean;\n headerVerticalAlign: HeaderVerticalAlign;\n getSortIcon: (column: Header<T>) => React.FC;\n handleSortClick: (column: TableColumn<T>) => void;\n handleFilterTogglerClick: (id: string) => () => void;\n handleCellClick: onCellClick;\n handleTooltipSave: (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ) => void;\n filters: Filters<T> | undefined;\n visibleFilter: string | null;\n selectedFilters: SelectedFilters;\n showHorizontalCellShadow: boolean;\n borderBetweenColumns: boolean;\n};\n\nexport const TableHeader = <T extends TableRow>({\n isStickyHeader,\n headersWithMetaData,\n headerRowsHeights,\n headerRowsRefs,\n getStickyLeftOffset,\n stickyColumnsGrid,\n showVerticalCellShadow,\n headerVerticalAlign,\n getSortIcon,\n handleSortClick,\n handleFilterTogglerClick,\n handleCellClick,\n handleTooltipSave,\n filters,\n visibleFilter,\n selectedFilters,\n showHorizontalCellShadow,\n borderBetweenColumns,\n}: Props<T>): React.ReactNode => {\n const tableHeaderHeight = headerRowsHeights.reduce(\n (a: number, b: number) => a + b,\n 0,\n );\n const tableHeaderStyle: React.CSSProperties & TableCSSCustomProperty = {\n '--table-header-height': `${tableHeaderHeight}px`,\n };\n const getLevelType = (column: Header<T> & ColumnMetaData): LevelType => {\n if (Number(column.position!.colSpan) >= 1) return 'high';\n if (column.position?.smallTextSize) return 'low';\n return 'default';\n };\n const isColumnResized = (column: Header<T> & ColumnMetaData): boolean => {\n const headers: Array<Header<T> & ColumnMetaData> = [];\n const build = (header: Header<T> & ColumnMetaData) => {\n if (!header.columns) {\n headers.push(header);\n } else {\n header.columns.forEach((col) =>\n build(\n headersWithMetaData.find(\n (head) => head.title === col.title,\n ) as Header<T> & ColumnMetaData,\n ),\n );\n }\n };\n build(column);\n return headers.some((header) => header.isResized);\n };\n\n const getFilterPopover = (\n column: Header<T> & ColumnMetaData,\n ): React.ReactNode => {\n if (!filters || !column.accessor) {\n return null;\n }\n const curFilter = filters.find(({ field }) => field === column.accessor);\n const FilterComponent = curFilter?.component?.name;\n const filterComponentProps = curFilter?.component?.props ?? {};\n const onToggle = handleFilterTogglerClick(column.accessor);\n const filterId = curFilter?.id;\n const handleFilterSave = (filterValue?: unknown) => {\n if (filterId) {\n handleTooltipSave(column.accessor!, [filterId], filterValue);\n }\n onToggle();\n };\n\n return column.filterable ? (\n <TableFilterTooltip\n field={column.accessor}\n isOpened={visibleFilter === column.accessor}\n options={getOptionsForFilters(filters, column.accessor)}\n values={selectedFilters[column.accessor].selected || []}\n onChange={handleTooltipSave}\n onToggle={handleFilterTogglerClick(column.accessor)}\n className={cnTableHeader('Icon', { type: 'filter' })}\n >\n {FilterComponent && (\n <FilterComponent\n {...filterComponentProps}\n onConfirm={handleFilterSave}\n filterValue={selectedFilters[column.accessor]?.value}\n onCancel={handleFilterTogglerClick(column.accessor)}\n />\n )}\n </TableFilterTooltip>\n ) : null;\n };\n\n const control = (column: Header<T> & ColumnMetaData): React.ReactNode => {\n if (column.control) {\n return (\n <div className={cnTableHeader('Control')}>\n {column.control({ column })}\n </div>\n );\n }\n\n return null;\n };\n\n return (\n <>\n <div\n className={cnTableHeader('Row', {\n withVerticalBorder: borderBetweenColumns,\n })}\n >\n {headersWithMetaData.map(\n (column: Header<T> & ColumnMetaData, columnIdx: number) => {\n const style: React.CSSProperties = {};\n if (column.position!.colSpan) {\n style.gridColumnEnd = `span ${column.position!.colSpan}`;\n }\n if (column.position!.rowSpan) {\n style.gridRowEnd = `span ${column.position!.rowSpan}`;\n }\n if (isStickyHeader) {\n style.top = headerRowsHeights\n .slice(0, column.position!.level)\n .reduce((a: number, b: number) => a + b, 0);\n }\n return (\n <TableCell\n type=\"header\"\n key={columnIdx}\n ref={(ref: HTMLDivElement | null): void => {\n /* eslint-disable-next-line no-param-reassign */\n headerRowsRefs.current[columnIdx] = ref;\n }}\n style={{\n ...style,\n left: getStickyLeftOffset(\n column.position!.gridIndex,\n column.position!.topHeaderGridIndex,\n ),\n }}\n isSticky={isStickyHeader}\n isResized={isColumnResized(column)}\n column={column}\n verticalAlign={headerVerticalAlign}\n onContextMenu={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'contextMenu',\n columnIdx,\n ref: { current: headerRowsRefs.current[columnIdx] },\n })\n }\n onClick={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'click',\n columnIdx,\n ref: { current: headerRowsRefs.current[columnIdx] },\n })\n }\n className={cnTableHeader('Cell', {\n isFirstColumn: column.position?.isFirst,\n isFirstRow: column.position!.level === 0,\n isLastInColumn:\n column.position?.topHeaderGridIndex !==\n headersWithMetaData[columnIdx + 1]?.position\n ?.topHeaderGridIndex,\n level: getLevelType(column),\n })}\n showVerticalShadow={\n showVerticalCellShadow &&\n column.position!.gridIndex! +\n (column?.position!.colSpan || 1) ===\n stickyColumnsGrid\n }\n >\n {column.title}\n\n <div\n className={cnTableHeader('Buttons', {\n isSortingActive: column.isSortingActive,\n isFilterActive: column.isFilterActive,\n verticalAlign: headerVerticalAlign,\n })}\n >\n {column.sortable && (\n <Button\n type=\"button\"\n size=\"xs\"\n iconSize=\"s\"\n view=\"clear\"\n onlyIcon\n onClick={(): void => handleSortClick(column)}\n iconLeft={getSortIcon(column)}\n className={cnTableHeader('Icon', { type: 'sort' })}\n />\n )}\n\n {getFilterPopover(column)}\n\n {control(column)}\n </div>\n </TableCell>\n );\n },\n )}\n </div>\n {/*\n Рендерим тень заголовка отдельно чтобы избежать возможных наложений\n теней для ячеек заголовка и ячеек прикрепленных слева.\n */}\n <div className={cnTableHeader('ShadowWrapper')} style={tableHeaderStyle}>\n <div\n className={cnTableHeader('Shadow', {\n show: showHorizontalCellShadow && isStickyHeader,\n })}\n />\n </div>\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableHeader.js","names":["React","cn","Button","TableCell","getOptionsForFilters","TableFilterTooltip","cnTableHeader","levelTypes","TableHeader","isStickyHeader","headersWithMetaData","headerRowsHeights","headerRowsRefs","getStickyLeftOffset","stickyColumnsGrid","showVerticalCellShadow","headerVerticalAlign","getSortIcon","handleSortClick","handleFilterTogglerClick","handleCellClick","handleTooltipSave","filters","visibleFilter","selectedFilters","showHorizontalCellShadow","borderBetweenColumns","tableHeaderHeight","reduce","a","b","tableHeaderStyle","getLevelType","column","position","colSpan","smallTextSize","isColumnResized","headers","build","header","columns","forEach","col","find","head","title","push","some","isResized","getFilterPopover","accessor","curFilter","field","FilterComponent","component","name","filterComponentProps","props","onToggle","filterId","id","filterable","selected","type","handleFilterSave","filterValue","value","control","withVerticalBorder","map","columnIdx","style","gridColumnEnd","rowSpan","gridRowEnd","top","slice","level","ref","current","left","gridIndex","topHeaderGridIndex","e","isFirstColumn","isFirst","isFirstRow","isLastInColumn","isSortingActive","isFilterActive","verticalAlign","sortable","show"],"sources":["../../../../../../src/components/Table/Header/TableHeader.tsx"],"sourcesContent":["import './TableHeader.css';\n\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { Button } from '../../Button/Button';\nimport { TableCell } from '../Cell/TableCell';\nimport {\n FieldSelectedValues,\n Filters,\n getOptionsForFilters,\n SelectedFilters,\n} from '../filtering';\nimport { TableFilterTooltip } from '../FilterTooltip/TableFilterTooltip';\nimport { Header } from '../helpers';\nimport {\n ColumnMetaData,\n HeaderVerticalAlign,\n onCellClick,\n TableColumn,\n TableRow,\n} from '../Table';\n\nconst cnTableHeader = cn('TableHeader');\n\ntype TableCSSCustomProperty = {\n '--table-header-height': string;\n};\n\nexport const levelTypes = ['high', 'low', 'default'] as const;\nexport type LevelType = (typeof levelTypes)[number];\n\ntype Props<T extends TableRow> = {\n isStickyHeader: boolean;\n headersWithMetaData: Array<Header<T> & ColumnMetaData>;\n headerRowsHeights: Array<number>;\n headerRowsRefs: React.MutableRefObject<Record<number, HTMLDivElement | null>>;\n getStickyLeftOffset: (\n columnIndex: number,\n topHeaderGridIndex: number,\n ) => number | undefined;\n stickyColumnsGrid: number;\n showVerticalCellShadow: boolean;\n headerVerticalAlign: HeaderVerticalAlign;\n getSortIcon: (column: Header<T>) => React.FC;\n handleSortClick: (column: TableColumn<T>) => void;\n handleFilterTogglerClick: (id: string) => () => void;\n handleCellClick: onCellClick;\n handleTooltipSave: (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ) => void;\n filters: Filters<T> | undefined;\n visibleFilter: string | null;\n selectedFilters: SelectedFilters;\n showHorizontalCellShadow: boolean;\n borderBetweenColumns: boolean;\n};\n\nexport const TableHeader = <T extends TableRow>({\n isStickyHeader,\n headersWithMetaData,\n headerRowsHeights,\n headerRowsRefs,\n getStickyLeftOffset,\n stickyColumnsGrid,\n showVerticalCellShadow,\n headerVerticalAlign,\n getSortIcon,\n handleSortClick,\n handleFilterTogglerClick,\n handleCellClick,\n handleTooltipSave,\n filters,\n visibleFilter,\n selectedFilters,\n showHorizontalCellShadow,\n borderBetweenColumns,\n}: Props<T>): React.ReactNode => {\n const tableHeaderHeight = headerRowsHeights.reduce(\n (a: number, b: number) => a + b,\n 0,\n );\n const tableHeaderStyle: React.CSSProperties & TableCSSCustomProperty = {\n '--table-header-height': `${tableHeaderHeight}px`,\n };\n const getLevelType = (column: Header<T> & ColumnMetaData): LevelType => {\n if (Number(column.position!.colSpan) >= 1) return 'high';\n if (column.position?.smallTextSize) return 'low';\n return 'default';\n };\n const isColumnResized = (column: Header<T> & ColumnMetaData): boolean => {\n const headers: Array<Header<T> & ColumnMetaData> = [];\n const build = (header: Header<T> & ColumnMetaData) => {\n if (!header.columns) {\n headers.push(header);\n } else {\n header.columns.forEach((col) =>\n build(\n headersWithMetaData.find(\n (head) => head.title === col.title,\n ) as Header<T> & ColumnMetaData,\n ),\n );\n }\n };\n build(column);\n return headers.some((header) => header.isResized);\n };\n\n const getFilterPopover = (\n column: Header<T> & ColumnMetaData,\n ): React.ReactNode => {\n if (!filters || !column.accessor) {\n return null;\n }\n const curFilter = filters.find(({ field }) => field === column.accessor);\n const FilterComponent = curFilter?.component?.name;\n const filterComponentProps = curFilter?.component?.props ?? {};\n const onToggle = handleFilterTogglerClick(column.accessor);\n const filterId = curFilter?.id;\n const handleFilterSave = (filterValue?: unknown) => {\n if (filterId) {\n handleTooltipSave(column.accessor!, [filterId], filterValue);\n }\n onToggle();\n };\n\n return column.filterable ? (\n <TableFilterTooltip\n field={column.accessor}\n isOpened={visibleFilter === column.accessor}\n options={getOptionsForFilters(filters, column.accessor)}\n values={selectedFilters[column.accessor].selected || []}\n onChange={handleTooltipSave}\n onToggle={handleFilterTogglerClick(column.accessor)}\n className={cnTableHeader('Icon', { type: 'filter' })}\n >\n {FilterComponent && (\n <FilterComponent\n {...filterComponentProps}\n onConfirm={handleFilterSave}\n filterValue={selectedFilters[column.accessor]?.value}\n onCancel={handleFilterTogglerClick(column.accessor)}\n />\n )}\n </TableFilterTooltip>\n ) : null;\n };\n\n const control = (column: Header<T> & ColumnMetaData): React.ReactNode => {\n if (column.control) {\n return (\n <div className={cnTableHeader('Control')}>\n {column.control({ column })}\n </div>\n );\n }\n\n return null;\n };\n\n return (\n <>\n <div\n className={cnTableHeader('Row', {\n withVerticalBorder: borderBetweenColumns,\n })}\n >\n {headersWithMetaData.map(\n (column: Header<T> & ColumnMetaData, columnIdx: number) => {\n const style: React.CSSProperties = {};\n if (column.position!.colSpan) {\n style.gridColumnEnd = `span ${column.position!.colSpan}`;\n }\n if (column.position!.rowSpan) {\n style.gridRowEnd = `span ${column.position!.rowSpan}`;\n }\n if (isStickyHeader) {\n style.top = headerRowsHeights\n .slice(0, column.position!.level)\n .reduce((a: number, b: number) => a + b, 0);\n }\n return (\n <TableCell\n type=\"header\"\n key={columnIdx}\n ref={(ref: HTMLDivElement | null): void => {\n /* eslint-disable-next-line no-param-reassign */\n headerRowsRefs.current[columnIdx] = ref;\n }}\n style={{\n ...style,\n left: getStickyLeftOffset(\n column.position!.gridIndex,\n column.position!.topHeaderGridIndex,\n ),\n }}\n isSticky={isStickyHeader}\n isResized={isColumnResized(column)}\n column={column}\n verticalAlign={headerVerticalAlign}\n onContextMenu={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'contextMenu',\n columnIdx,\n ref: { current: headerRowsRefs.current[columnIdx] },\n })\n }\n onClick={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'click',\n columnIdx,\n ref: { current: headerRowsRefs.current[columnIdx] },\n })\n }\n className={cnTableHeader('Cell', {\n isFirstColumn: column.position?.isFirst,\n isFirstRow: column.position!.level === 0,\n isLastInColumn:\n column.position?.topHeaderGridIndex !==\n headersWithMetaData[columnIdx + 1]?.position\n ?.topHeaderGridIndex,\n level: getLevelType(column),\n })}\n showVerticalShadow={\n showVerticalCellShadow &&\n column.position!.gridIndex! +\n (column?.position!.colSpan || 1) ===\n stickyColumnsGrid\n }\n >\n {column.title}\n\n <div\n className={cnTableHeader('Buttons', {\n isSortingActive: column.isSortingActive,\n isFilterActive: column.isFilterActive,\n verticalAlign: headerVerticalAlign,\n })}\n >\n {column.sortable && (\n <Button\n type=\"button\"\n size=\"xs\"\n iconSize=\"s\"\n view=\"clear\"\n onlyIcon\n onClick={(): void => handleSortClick(column)}\n iconLeft={getSortIcon(column)}\n className={cnTableHeader('Icon', { type: 'sort' })}\n />\n )}\n\n {getFilterPopover(column)}\n\n {control(column)}\n </div>\n </TableCell>\n );\n },\n )}\n </div>\n {/*\n Рендерим тень заголовка отдельно чтобы избежать возможных наложений\n теней для ячеек заголовка и ячеек прикрепленных слева.\n */}\n <div className={cnTableHeader('ShadowWrapper')} style={tableHeaderStyle}>\n <div\n className={cnTableHeader('Shadow', {\n show: showHorizontalCellShadow && isStickyHeader,\n })}\n />\n </div>\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ export { TableFilterContainer } from './FilterContainer/TableFilterContainer';
|
|
|
9
9
|
export { TableNumberFilter } from './NumberFilter/TableNumberFilter';
|
|
10
10
|
export { TableChoiceGroupFilter } from './ChoiceGroupFilter/TableChoiceGroupFilter';
|
|
11
11
|
export declare const sizes: readonly ["s", "m", "l"];
|
|
12
|
-
type Size = typeof sizes[number];
|
|
12
|
+
type Size = (typeof sizes)[number];
|
|
13
13
|
export declare const zebraStriped: readonly ["odd", "even"];
|
|
14
|
-
type ZebraStriped = typeof zebraStriped[number];
|
|
14
|
+
type ZebraStriped = (typeof zebraStriped)[number];
|
|
15
15
|
export declare const headerVerticalAligns: readonly ["center", "bottom"];
|
|
16
|
-
export type HeaderVerticalAlign = typeof headerVerticalAligns[number];
|
|
16
|
+
export type HeaderVerticalAlign = (typeof headerVerticalAligns)[number];
|
|
17
17
|
export type LazyLoad = {
|
|
18
18
|
maxVisibleRows?: number;
|
|
19
19
|
scrollableEl?: HTMLDivElement | Window;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","names":["IconSortDown","IconSortUp","IconUnsort","React","useEffect","useMemo","cnMixScrollBar","useComponentSize","useForkRef","sortBy","sortByDefault","updateAt","cn","setRef","isNotNil","isString","Button","Text","TableCell","fieldFiltersPresent","filterTableData","getSelectedFiltersList","isSelectedFiltersPresent","useSelectedFilters","TableHeader","calculateColSpans","createSortingState","getColumnLeftOffset","getColumnsSize","getMergedArray","getNewSorting","Order","transformRows","useHeaderData","useLazyLoadData","TableResizer","TableRowsCollapse","TableSelectedOptionsList","TableTextFilter","TableFilterContainer","TableNumberFilter","TableChoiceGroupFilter","cnTable","sizes","zebraStriped","headerVerticalAligns","createButtonSizeMap","s","m","l","getColumnSortByField","column","sortable","sortByField","accessor","sortingData","rows","sorting","onSortBy","sortedRows","by","order","sortFn","some","row","length","map","defaultEmptyRowsPlaceholder","InternalTable","props","ref","columns","size","rawFilters","filters","isResizable","stickyHeader","stickyColumns","minColumnWidth","activeRow","verticalAlign","headerVerticalAlign","borderBetweenRows","borderBetweenColumns","emptyRowsPlaceholder","defaultExpandAll","className","onRowHover","onRowClick","onRowCreate","onCellClick","getAdditionalClassName","rowCreateText","lazyLoad","onFiltersUpdated","getTagLabel","getCellWrap","isExpandedRowsByDefault","otherProps","headers","flattenedHeaders","lowHeaders","headerRowsRefs","headerRowsHeights","resizerTopOffsets","stickyColumnsGrid","position","gridIndex","colSpan","getColumnsWidth","width","useState","resizedColumnWidths","setResizedColumnWidths","filter","id","field","initialColumnWidths","setInitialColumnWidths","setSorting","visibleFilter","setVisibleFilter","top","left","tableScroll","setTableScroll","tableRef","useRef","columnsRefs","cellsRefs","selectedFilters","updateSelectedFilters","removeOneSelectedFilter","removeAllSelectedFilters","expandedRowIds","setExpandedRowIds","sortingColumn","find","col","Object","prototype","hasOwnProperty","call","sortingState","tableHeight","current","clientHeight","tableWidth","clientWidth","showVerticalCellShadow","showHorizontalCellShadow","isRowsClickable","onChange","updateColumnWidth","idx","newWidth","overallColumnsWidth","columnsElements","values","columnsElementsWidths","el","getBoundingClientRect","resultArr","reduce","a","b","useLayoutEffect","autoSetted","i","isSortedByColumn","getStickyLeftOffset","columnIndex","topHeaderGridIndex","handleSelectRow","e","handleRowHover","handleRowCreate","index","handleColumnResize","delta","columnMinWidth","Math","min","prevColumnWidth","newColumnWidth","max","containerEl","scrollBy","stickyColumnsWidth","columnsWithMetaData","resizedColumnWidth","initialColumnWidth","columnWidth","columnLeftOffset","isSticky","showResizer","isFilterActive","selected","filterable","isSortingActive","isResized","headersWithMetaData","hasNestedRows","sortedTableData","filteredData","data","maxVisibleRows","scrollableEl","getSlicedRows","setBoundaryRef","flatRowsData","rowsData","tableStyle","hasMergedCells","header","mergeCells","handleExpandRow","includes","prevState","rowId","getCollapseRollProps","columnIdx","withCollapseButton","baseProps","level","options","isExpandedByDefault","isExpanded","toggleCollapse","getExpandedRows","depth","expandedIds","forEach","defaultExpand","push","ids","indexOf","renderCell","cellContent","collapseRollProps","bottomCreateRowButton","rowsLength","slice","pop","lastRowId","getTableCellProps","rowIdx","getComparisonValue","previousCell","currentCell","result","rowSpan","show","style","nextCell","handleCellClick","params","withBorderBottom","handleScroll","target","HTMLElement","scrollTop","scrollLeft","type","getSortIcon","handleSortClick","newSorting","sortProps","sortingBy","sortOrder","handleFilterTogglerClick","handleTooltipSave","tooltipSelectedFilters","value","removeSelectedFilter","tableFilters","resetSelectedFilters","nth","spans","withMergedCells","start","isActive","isDarked","isMerged","renderEmptyRowsPlaceholder","placeholder","Table","forwardRef"],"sources":["../../../../../src/components/Table/Table.tsx"],"sourcesContent":["import './Table.css';\n\nimport { IconSortDown } from '@consta/icons/IconSortDown';\nimport { IconSortUp } from '@consta/icons/IconSortUp';\nimport { IconUnsort } from '@consta/icons/IconUnsort';\nimport React, { useEffect, useMemo } from 'react';\n\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\n\nimport { useComponentSize } from '../../hooks/useComponentSize/useComponentSize';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { sortBy as sortByDefault, updateAt } from '../../utils/array';\nimport { cn } from '../../utils/bem';\nimport { setRef } from '../../utils/setRef';\nimport { isNotNil, isString } from '../../utils/type-guards';\nimport { Button, ButtonPropSize } from '../Button/Button';\nimport { Text } from '../Text/Text';\nimport { HorizontalAlign, TableCell, VerticalAlign } from './Cell/TableCell';\nimport {\n fieldFiltersPresent,\n FieldSelectedValues,\n Filters,\n filterTableData,\n getSelectedFiltersList,\n isSelectedFiltersPresent,\n onSortBy,\n SelectedFilters,\n useSelectedFilters,\n} from './filtering';\nimport { TableHeader } from './Header/TableHeader';\nimport {\n calculateColSpans,\n createSortingState,\n getColumnLeftOffset,\n getColumnsSize,\n getMergedArray,\n getNewSorting,\n Header,\n Order,\n OrderType,\n Position,\n transformRows,\n useHeaderData,\n useLazyLoadData,\n} from './helpers';\nimport { TableResizer } from './Resizer/TableResizer';\nimport {\n Props as TableRowsCollapseProps,\n TableRowsCollapse,\n} from './RowsCollapse/TableRowsCollapse';\nimport {\n GetTagLabel,\n TableSelectedOptionsList,\n} from './SelectedOptionsList/TableSelectedOptionsList';\n\nexport { TableTextFilter } from './TextFilter/TableTextFilter';\nexport { TableFilterContainer } from './FilterContainer/TableFilterContainer';\nexport { TableNumberFilter } from './NumberFilter/TableNumberFilter';\nexport { TableChoiceGroupFilter } from './ChoiceGroupFilter/TableChoiceGroupFilter';\n\nconst cnTable = cn('Table');\n\nexport const sizes = ['s', 'm', 'l'] as const;\ntype Size = typeof sizes[number];\n\nexport const zebraStriped = ['odd', 'even'] as const;\ntype ZebraStriped = typeof zebraStriped[number];\n\nexport const headerVerticalAligns = ['center', 'bottom'] as const;\nexport type HeaderVerticalAlign = typeof headerVerticalAligns[number];\n\nconst createButtonSizeMap: Record<Size, ButtonPropSize> = {\n s: 'xs',\n m: 's',\n l: 'm',\n};\n\ntype TableCSSCustomProperty = {\n '--table-width': string;\n '--table-grid-template-columns': string;\n};\n\nexport type LazyLoad =\n | {\n maxVisibleRows?: number;\n scrollableEl?: HTMLDivElement | Window;\n }\n | undefined;\n\ntype ActiveRow = {\n id: string | undefined;\n onChange: ({\n id,\n e,\n }: {\n id: string | undefined;\n e?: React.SyntheticEvent;\n }) => void;\n};\n\ntype onRowHover = ({\n id,\n e,\n}: {\n id: string | undefined;\n e: React.MouseEvent;\n}) => void;\n\ntype onRowClick = ({ id, e }: { id: string; e: React.MouseEvent }) => void;\n\ntype onRowCreate = ({\n id,\n index,\n e,\n}: {\n id?: string;\n index: number;\n e: React.MouseEvent;\n}) => void;\n\nexport type CellClickType = 'click' | 'contextMenu';\n\nexport type onCellClick = ({\n e,\n type,\n rowId,\n columnIdx,\n ref,\n}: {\n e: React.SyntheticEvent;\n type: CellClickType;\n columnIdx: number;\n ref: React.RefObject<HTMLDivElement>;\n rowId?: string;\n}) => void;\n\nexport type TableRow = {\n id: string;\n defaultExpand?: boolean;\n rows?: TableRow[];\n};\n\nexport type TableTreeRow<T extends TableRow> = {\n options: {\n level: number;\n };\n} & T;\n\nexport type TableFilters<T extends TableRow> = Filters<T>;\n\nexport type RowField<T extends TableRow> = Exclude<keyof T, symbol | number>;\n\nexport type ColumnWidth = number | undefined;\n\nexport type ValueOf<T> = T[keyof T];\n\ntype ColumnBase<T extends TableRow> = ValueOf<{\n [K in keyof T]: {\n accessor: K extends string ? K : never;\n sortable?: boolean;\n colSpan?: number | ((row: T) => number);\n sortByField?: keyof T;\n order?: OrderType;\n sortFn?(a: T[K], b: T[K]): number;\n renderCell?: (row: T) => React.ReactNode;\n getComparisonValue?: (cell: T[K]) => number | string;\n };\n}>;\ntype SingleColumnAddition<T extends TableRow> = ColumnBase<T> & {\n columns?: never;\n};\ntype GroupColumnAddition<T extends TableRow> = {\n columns: TableColumn<T>[];\n} & {\n // eslint-disable-next-line no-unused-vars\n [K in keyof ColumnBase<T>]?: never;\n};\nexport interface TableControl<T extends TableRow> {\n column: Header<T> & ColumnMetaData;\n}\n\nexport type SortByProps<T extends TableRow> = {\n sortingBy: keyof T;\n sortOrder: 'asc' | 'desc';\n};\n\nexport type TableColumn<T extends TableRow> = {\n title: React.ReactNode;\n align?: HorizontalAlign;\n withoutPadding?: boolean;\n width?: ColumnWidth;\n mergeCells?: boolean;\n position?: Position;\n hidden?: boolean;\n control?: ({ column }: TableControl<T>) => React.ReactNode;\n} & (GroupColumnAddition<T> | SingleColumnAddition<T>);\n\nexport type TableProps<T extends TableRow> = {\n columns: TableColumn<T>[];\n rows: T[];\n isResizable?: boolean;\n filters?: Filters<T>;\n onSortBy?: onSortBy<T>;\n size?: Size;\n stickyHeader?: boolean;\n stickyColumns?: number;\n minColumnWidth?: number;\n activeRow?: ActiveRow;\n verticalAlign?: VerticalAlign;\n headerVerticalAlign?: HeaderVerticalAlign;\n zebraStriped?: ZebraStriped;\n borderBetweenRows?: boolean;\n defaultExpandAll?: boolean;\n borderBetweenColumns?: boolean;\n emptyRowsPlaceholder?: React.ReactNode;\n className?: string;\n onRowHover?: onRowHover;\n onRowClick?: onRowClick;\n onRowCreate?: onRowCreate;\n onCellClick?: onCellClick;\n getAdditionalClassName?: (props: {\n column: TableColumn<T>;\n row: T;\n isActive: boolean;\n }) => string;\n rowCreateText?: string;\n lazyLoad?: LazyLoad;\n onFiltersUpdated?: (filters: SelectedFilters) => void;\n getTagLabel?: GetTagLabel;\n isExpandedRowsByDefault?: boolean;\n getCellWrap?: (row: T) => 'truncate' | 'break';\n};\n\ntype Table = <T extends TableRow>(\n props: TableProps<T> & { ref?: React.Ref<HTMLDivElement> },\n) => React.ReactNode | null;\n\nexport type ColumnMetaData = {\n filterable: boolean;\n isSortingActive: boolean;\n isFilterActive: boolean;\n isResized: boolean;\n isSticky: boolean;\n showResizer: boolean;\n columnWidth: number;\n columnLeftOffset: number;\n};\n\nexport type SortingState<T extends TableRow> = {\n by: keyof T;\n order: 'asc' | 'desc';\n sortFn?: (a: T[keyof T], b: T[keyof T]) => number;\n} | null;\n\ntype GetTableCellProps = {\n show: boolean;\n rowSpan: number;\n style: {\n 'left'?: number;\n '--row-span'?: string;\n };\n};\n\nconst getColumnSortByField = <T extends TableRow>(\n column: TableColumn<T>,\n): keyof T => (column.sortable && column.sortByField) || column.accessor!;\n\nconst sortingData = <T extends TableRow>(\n rows: T[],\n sorting: SortingState<T>,\n onSortBy?: onSortBy<T>,\n): T[] => {\n if (onSortBy) {\n return rows;\n }\n\n if (!sorting) {\n return rows;\n }\n const sortedRows = sortByDefault(\n rows,\n sorting.by,\n sorting.order,\n sorting.sortFn,\n );\n\n if (sortedRows.some((row) => row.rows?.length)) {\n return sortedRows.map((row) => {\n return row.rows\n ? { ...row, rows: sortingData(row.rows as T[], sorting, onSortBy) }\n : row;\n });\n }\n\n return sortedRows;\n};\n\nconst defaultEmptyRowsPlaceholder = (\n <Text as=\"span\" view=\"primary\" size=\"s\" lineHeight=\"s\">\n Нет данных\n </Text>\n);\n\nconst InternalTable = <T extends TableRow>(\n props: TableProps<T>,\n ref?: React.Ref<HTMLDivElement>,\n) => {\n const {\n columns,\n rows,\n size = 'l',\n filters: rawFilters,\n isResizable = false,\n stickyHeader = false,\n stickyColumns = 0,\n minColumnWidth = 150,\n activeRow,\n verticalAlign = 'top',\n headerVerticalAlign = 'center',\n zebraStriped,\n borderBetweenRows = false,\n borderBetweenColumns = false,\n emptyRowsPlaceholder = defaultEmptyRowsPlaceholder,\n defaultExpandAll,\n className,\n onRowHover,\n onRowClick,\n onRowCreate,\n onCellClick,\n getAdditionalClassName,\n rowCreateText = '+ Добавить строку',\n lazyLoad,\n onSortBy,\n onFiltersUpdated,\n getTagLabel,\n getCellWrap,\n isExpandedRowsByDefault = false,\n ...otherProps\n } = props;\n const {\n headers,\n flattenedHeaders,\n lowHeaders,\n headerRowsRefs,\n headerRowsHeights,\n resizerTopOffsets,\n } = useHeaderData(columns);\n const stickyColumnsGrid =\n // eslint-disable-next-line no-unsafe-optional-chaining\n headers[0][stickyColumns - 1]?.position.gridIndex! +\n (headers[0][stickyColumns - 1]?.position.colSpan || 1);\n\n const getColumnsWidth = () =>\n lowHeaders.map((column: TableColumn<T>) => column.width);\n const [resizedColumnWidths, setResizedColumnWidths] = React.useState<\n ColumnWidth[]\n >(getColumnsWidth());\n\n const filters = React.useMemo(() => {\n return (\n rawFilters && rawFilters.filter((filter) => filter.id && filter.field)\n );\n }, [rawFilters]);\n\n React.useEffect(() => {\n setResizedColumnWidths(getColumnsWidth());\n }, [lowHeaders.length]);\n\n const [initialColumnWidths, setInitialColumnWidths] = React.useState<\n number[]\n >([]);\n const [sorting, setSorting] = React.useState<SortingState<T>>(null);\n const [visibleFilter, setVisibleFilter] = React.useState<string | null>(null);\n const [tableScroll, setTableScroll] = React.useState({ top: 0, left: 0 });\n\n const tableRef = React.useRef<HTMLDivElement>(null);\n const columnsRefs = React.useRef<Record<number, HTMLDivElement | null>>({});\n const cellsRefs = React.useRef<Record<string, HTMLDivElement | null>>({});\n const {\n selectedFilters,\n updateSelectedFilters,\n removeOneSelectedFilter,\n removeAllSelectedFilters,\n } = useSelectedFilters(filters, onFiltersUpdated);\n const [expandedRowIds, setExpandedRowIds] = React.useState<string[]>([]);\n\n // установка сортировки по умолчанию\n\n React.useEffect(() => {\n const sortingColumn = columns.find(\n (col) =>\n isString(col.order) &&\n Object.prototype.hasOwnProperty.call(Order, col.order),\n );\n if (sortingColumn) {\n const sortingState = createSortingState(\n getColumnSortByField(sortingColumn),\n sortingColumn.order,\n sortingColumn.sortFn,\n );\n setSorting(sortingState);\n }\n }, [columns]);\n\n /*\n Подписываемся на изменения размеров таблицы, но не используем значения из\n хука так как нам нужна ширина и высота таблицы без размера скролла. Этот хук\n использует значения `offsetWidth` и `offsetHeight` которые включают размер\n скролл бара.\n */\n useComponentSize(tableRef);\n const tableHeight = tableRef.current?.clientHeight || 0;\n const tableWidth = tableRef.current?.clientWidth || 0;\n\n const showVerticalCellShadow = tableScroll.left > 0;\n const showHorizontalCellShadow = tableScroll.top > 0;\n const isRowsClickable = activeRow && activeRow.onChange;\n\n const updateColumnWidth = (idx: number, newWidth: number): void => {\n setResizedColumnWidths(updateAt(resizedColumnWidths, idx, newWidth));\n };\n\n const overallColumnsWidth = useMemo(() => {\n const columnsElements = Object.values(columnsRefs.current).filter(isNotNil);\n const columnsElementsWidths = columnsElements.map(\n (el) => el.getBoundingClientRect().width,\n );\n const resultArr = getMergedArray(\n columnsElementsWidths,\n resizedColumnWidths,\n );\n return resultArr.reduce((a, b) => (a ?? 0) + (b ?? 0));\n }, [resizedColumnWidths, isResizable]);\n\n React.useLayoutEffect(() => {\n const columnsElements = Object.values(columnsRefs.current).filter(isNotNil);\n if (columnsElements.length === 0) return;\n\n const columnsElementsWidths = columnsElements.map(\n (el) => el.getBoundingClientRect().width,\n );\n setInitialColumnWidths(columnsElementsWidths);\n\n // Проверяем, что таблица отрисовалась корректно, и устанавливаем значения ширин колонок после 1го и последующих рендера\n if (\n columnsElements[0].getBoundingClientRect().left !==\n columnsElements[columnsElements.length - 1].getBoundingClientRect().left\n ) {\n const resultArr = getMergedArray(\n columnsElementsWidths,\n resizedColumnWidths,\n );\n // Выставляю в undefined для того, чтобы колонка, для которой не определена ширина выставлялась в auto\n // Если ее нет то заполняю недостающее пространство в последней колонке\n if ((overallColumnsWidth ?? tableWidth) < tableWidth) {\n let autoSetted = false;\n for (let i = columns.length - 1; i > 0; i--) {\n const { width } = columns[i];\n if (!(width && width > 0)) {\n resultArr[i] = undefined;\n autoSetted = true;\n return;\n }\n }\n if (!autoSetted && overallColumnsWidth) {\n resultArr[resultArr.length - 1] =\n (resultArr[resultArr.length - 1] ?? 0) +\n tableWidth -\n overallColumnsWidth;\n }\n }\n return setResizedColumnWidths(resultArr);\n }\n\n // условие изменения ширины колонок при изменении ширины экрана (контейнера таблицы)\n if (tableWidth > 0 && !isResizable) {\n return setResizedColumnWidths(getColumnsWidth());\n }\n }, [tableWidth, overallColumnsWidth]);\n\n const isSortedByColumn = (column: TableColumn<T>): boolean =>\n getColumnSortByField(column) === sorting?.by;\n\n const getSortIcon = (column: TableColumn<T>) => {\n return (\n (isSortedByColumn(column) &&\n (sorting?.order === 'desc' ? IconSortDown : IconSortUp)) ||\n IconUnsort\n );\n };\n\n const handleSortClick = (column: TableColumn<T>): void => {\n const newSorting = getNewSorting(\n sorting,\n getColumnSortByField(column),\n (column.sortable && column?.sortFn) || undefined,\n );\n\n const sortProps = newSorting\n ? {\n sortingBy: newSorting.by,\n sortOrder: newSorting.order,\n }\n : null;\n onSortBy && onSortBy(sortProps);\n setSorting(newSorting);\n };\n\n const handleFilterTogglerClick = (id: string) => (): void => {\n setVisibleFilter(visibleFilter === id ? null : id);\n };\n\n const handleTooltipSave = (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ): void => {\n updateSelectedFilters(field, tooltipSelectedFilters, value);\n };\n\n const removeSelectedFilter =\n (tableFilters: Filters<T>) =>\n (filter: string): void => {\n removeOneSelectedFilter(tableFilters, filter);\n };\n\n const resetSelectedFilters = (): void => {\n if (filters && filters.length) {\n removeAllSelectedFilters(filters);\n }\n };\n\n const getStickyLeftOffset = (\n columnIndex: number,\n topHeaderGridIndex: number,\n ): number | undefined => {\n if (topHeaderGridIndex >= stickyColumns) {\n return;\n }\n\n return getColumnLeftOffset({\n columnIndex,\n resizedColumnWidths,\n initialColumnWidths,\n });\n };\n\n const handleScroll: React.UIEventHandler = (e) => {\n if (!(e.target instanceof HTMLElement) || e.target !== tableRef.current) {\n return;\n }\n\n setTableScroll({\n top: e.target.scrollTop,\n left: e.target.scrollLeft,\n });\n };\n\n const handleSelectRow = ({\n id,\n e,\n }: {\n id: string;\n e: React.SyntheticEvent;\n }): void | undefined => {\n if (!activeRow || !activeRow.onChange) {\n return;\n }\n\n activeRow.onChange({ id: activeRow.id === id ? undefined : id, e });\n };\n\n const handleRowHover = (id?: string) => (e: React.MouseEvent) =>\n onRowHover && onRowHover({ id, e });\n\n const handleRowCreate =\n (index: number, id?: string) => (e: React.MouseEvent) =>\n onRowCreate && onRowCreate({ e, id, index });\n\n const handleColumnResize = (idx: number, delta: number): void => {\n const columnMinWidth = Math.min(minColumnWidth, initialColumnWidths[idx]);\n const prevColumnWidth =\n resizedColumnWidths[idx] || initialColumnWidths[idx];\n const newColumnWidth = Math.max(columnMinWidth, prevColumnWidth + delta);\n\n updateColumnWidth(idx, newColumnWidth);\n\n // При расширении последней колонки прокручиваем таблицу вправо\n const containerEl = tableRef.current;\n if (idx === resizedColumnWidths.length - 1 && delta > 0 && containerEl) {\n containerEl.scrollBy(delta, 0);\n }\n };\n\n const stickyColumnsWidth = getColumnLeftOffset({\n columnIndex: stickyColumns,\n resizedColumnWidths,\n initialColumnWidths,\n });\n\n const columnsWithMetaData = (columns: Array<Header<T>>) => {\n return columns.map((column: Header<T>) => {\n const columnIndex = column.position.gridIndex;\n const resizedColumnWidth = resizedColumnWidths[columnIndex];\n const initialColumnWidth = initialColumnWidths[columnIndex];\n const columnWidth = resizedColumnWidth || initialColumnWidth;\n const columnLeftOffset = getColumnLeftOffset({\n columnIndex,\n resizedColumnWidths,\n initialColumnWidths,\n });\n const isResized = !!columnWidth && columnWidth !== initialColumnWidth;\n const isSticky = stickyColumns > column.position!.topHeaderGridIndex;\n const showResizer =\n stickyColumns > columnIndex ||\n stickyColumnsWidth + tableScroll.left < columnLeftOffset + columnWidth;\n const isFilterActive =\n (selectedFilters[column.accessor!]?.selected || []).length > 0;\n\n return {\n ...column,\n filterable: Boolean(\n filters && fieldFiltersPresent(filters, column.accessor!),\n ),\n isSortingActive: isSortedByColumn(column),\n isFilterActive,\n isResized,\n isSticky,\n showResizer,\n columnWidth,\n columnLeftOffset,\n };\n });\n };\n\n const headersWithMetaData: Array<Header<T> & ColumnMetaData> =\n columnsWithMetaData(flattenedHeaders);\n\n const hasNestedRows = React.useMemo(\n () => rows.some((row) => Boolean(row.rows?.length)),\n [rows],\n );\n\n const sortedTableData = sortingData(rows, sorting, onSortBy);\n\n const filteredData =\n filters && isSelectedFiltersPresent(selectedFilters)\n ? filterTableData({\n data: sortedTableData,\n filters: filters || [],\n selectedFilters,\n })\n : sortedTableData;\n\n const { maxVisibleRows = 210, scrollableEl = tableRef.current } =\n lazyLoad || {};\n\n const { getSlicedRows, setBoundaryRef } = useLazyLoadData(\n maxVisibleRows,\n scrollableEl,\n !!lazyLoad,\n );\n\n const flatRowsData = transformRows(\n filteredData,\n expandedRowIds,\n isExpandedRowsByDefault,\n );\n const rowsData = getSlicedRows(flatRowsData);\n\n const tableStyle: React.CSSProperties & TableCSSCustomProperty = {\n '--table-grid-template-columns': getColumnsSize(resizedColumnWidths),\n '--table-width': `${tableWidth}px`,\n };\n\n const hasMergedCells: boolean = columnsWithMetaData(lowHeaders).some(\n (header) => header.mergeCells,\n );\n\n const handleExpandRow = (id: string): (() => void) => {\n return (): void => {\n if (expandedRowIds.includes(id)) {\n setExpandedRowIds((prevState) =>\n prevState.filter((rowId) => rowId !== id),\n );\n return;\n }\n setExpandedRowIds((prevState) => [...prevState, id]);\n };\n };\n\n const getCollapseRollProps = (\n row: TableTreeRow<T>,\n columnIdx: number,\n ): TableRowsCollapseProps => {\n const withCollapseButton = Boolean(row.rows?.length) && columnIdx === 0;\n\n const baseProps = {\n level: row.options.level,\n isExpandedByDefault: isExpandedRowsByDefault,\n };\n\n if (!withCollapseButton || isExpandedRowsByDefault) {\n return baseProps;\n }\n\n const isExpanded = expandedRowIds.includes(row.id);\n const toggleCollapse = handleExpandRow(row.id);\n\n return {\n ...baseProps,\n withCollapseButton,\n isExpanded,\n toggleCollapse,\n };\n };\n\n const getExpandedRows = (\n rows: T[],\n depth: number,\n defaultExpandAll?: boolean,\n ): string[] => {\n let expandedIds: string[] = [];\n rows.forEach((row) => {\n if (\n row.defaultExpand ||\n ((row.rows?.length ?? 0) > 0 && defaultExpandAll)\n ) {\n expandedIds.push(row.id);\n }\n if (row.rows) {\n const ids = getExpandedRows(\n row.rows as T[],\n depth + 1,\n defaultExpandAll,\n );\n expandedIds = [...expandedIds, ...ids];\n if (ids.length > 0 && expandedIds.indexOf(row.id) === -1) {\n expandedIds.push(row.id);\n }\n }\n });\n return [\n ...(depth === 0 ? expandedRowIds : []),\n ...expandedIds.filter((id) => expandedRowIds.indexOf(id) === -1),\n ];\n };\n\n useEffect(() => {\n if (rows) {\n setExpandedRowIds(getExpandedRows(rows, 0, defaultExpandAll));\n }\n }, [rows, defaultExpandAll]);\n\n const renderCell = (\n column: TableColumn<T>,\n row: T,\n columnIdx: number,\n ): React.ReactNode => {\n const cellContent = column.renderCell\n ? column.renderCell(row)\n : row[column.accessor!];\n\n if (!hasNestedRows || columnIdx !== 0) {\n return cellContent as React.ReactNode;\n }\n\n const collapseRollProps = getCollapseRollProps(\n row as TableTreeRow<T>,\n columnIdx,\n );\n\n return (\n <TableRowsCollapse {...collapseRollProps}>\n {cellContent as React.ReactNode}\n </TableRowsCollapse>\n );\n };\n\n const renderEmptyRowsPlaceholder = (\n placeholder: React.ReactNode,\n ): React.ReactNode => {\n return typeof placeholder === 'string' ? (\n <Text size=\"s\" view=\"primary\" lineHeight=\"m\">\n {placeholder}\n </Text>\n ) : (\n placeholder\n );\n };\n\n const bottomCreateRowButton = useMemo(() => {\n const rowsLength = rowsData.length;\n /* Можно и rowsData[rowsLength - 1], но в таком случае TS не подскажет,\n что мы будем искать id в undefined это может привести к ошибке */\n const { id: lastRowId } = rowsData.slice(-1).pop() ?? {};\n\n if (!onRowCreate) {\n return null;\n }\n\n return (\n <div\n className={cnTable(rowsLength ? 'CreateRowCell' : 'RowWithoutCells')}\n >\n <Button\n size={createButtonSizeMap[size]}\n form=\"brick\"\n label={rowCreateText}\n view=\"clear\"\n className={cnTable('CreateRowButton')}\n onClick={handleRowCreate(rowsLength, lastRowId)}\n width=\"full\"\n />\n </div>\n );\n }, [rowCreateText, rowsData.length, onRowCreate]);\n\n const getTableCellProps = (\n row: TableTreeRow<T>,\n rowIdx: number,\n column: TableColumn<T>,\n columnIdx: number,\n ): GetTableCellProps => {\n const {\n mergeCells,\n accessor,\n position,\n getComparisonValue = (e) => e,\n } = column;\n\n const previousCell =\n rowsData[rowIdx - 1] &&\n getComparisonValue(rowsData[rowIdx - 1][accessor!]);\n const currentCell = getComparisonValue(row[accessor!]);\n\n const result: GetTableCellProps = {\n rowSpan: 1,\n show: false,\n style: {\n left: getStickyLeftOffset(columnIdx, position!.topHeaderGridIndex),\n },\n };\n\n if (\n mergeCells &&\n ((rowsData[rowIdx - 1] && previousCell !== currentCell) ||\n rowIdx === 0 ||\n (previousCell === currentCell && rowsData[rowIdx - 1]?.rows))\n ) {\n if (!row.rows) {\n for (let i = rowIdx; i < rowsData.length; i++) {\n if (rowsData[i + 1]) {\n const nextCell = getComparisonValue(rowsData[i + 1][accessor!]);\n if (currentCell === nextCell && !rowsData[i].rows) {\n result.rowSpan++;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n if (result.rowSpan > 1) {\n result.style['--row-span'] = `span ${result.rowSpan}`;\n }\n result.show = true;\n }\n if (!mergeCells) {\n result.show = true;\n }\n\n return result;\n };\n\n const handleCellClick: onCellClick = (params) => {\n onCellClick?.(params);\n };\n\n return (\n <div\n {...otherProps}\n ref={useForkRef([tableRef, ref])}\n className={cnTable(\n {\n size,\n isResizable,\n zebraStriped,\n withBorderBottom: !filteredData.length,\n },\n [className, cnMixScrollBar()],\n )}\n style={tableStyle}\n onScroll={handleScroll}\n >\n {/*\n Элементы Resizer рендерятся в отдельных ячейках нулевой высоты с шириной\n равной ширине колонки сетки, при этом у ячейки самый большой z-index в\n таблице чтобы элементы Resizer могли перекрывать ячейки заголовка и\n контента. Кроме того это позволяет зафиксировать вертикальное и\n горизонтальное положение Resizer, а также его высоту.\n\n Получение высоты Resizer элементов через свойство элемента таблицы\n scrollHeight не подходило, так как в таком случае Resizer растягивал\n таблицу по высоте, поэтому от этого способа отказались.\n */}\n {columnsWithMetaData(lowHeaders).map(\n (\n column: TableColumn<T> & { showResizer: boolean },\n columnIdx: number,\n ) => (\n <TableCell\n type=\"resizer\"\n key={columnIdx}\n ref={(ref: HTMLDivElement | null): void => {\n columnsRefs.current[columnIdx] = ref;\n }}\n style={{\n left: getStickyLeftOffset(columnIdx, columnIdx),\n }}\n onContextMenu={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'contextMenu',\n columnIdx,\n ref: { current: columnsRefs.current[columnIdx] },\n })\n }\n onClick={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'click',\n columnIdx,\n ref: { current: columnsRefs.current[columnIdx] },\n })\n }\n column={column}\n showVerticalShadow={showVerticalCellShadow}\n >\n {isResizable && (\n <TableResizer\n height={tableHeight - resizerTopOffsets[columnIdx]}\n top={resizerTopOffsets[columnIdx]}\n isVisible={column.showResizer}\n onResize={(delta): void => handleColumnResize(columnIdx, delta)}\n onDoubleClick={(): void =>\n updateColumnWidth(columnIdx, initialColumnWidths[columnIdx])\n }\n />\n )}\n </TableCell>\n ),\n )}\n <TableHeader\n isStickyHeader={stickyHeader}\n headersWithMetaData={headersWithMetaData}\n headerRowsHeights={headerRowsHeights}\n headerRowsRefs={headerRowsRefs}\n getStickyLeftOffset={getStickyLeftOffset}\n stickyColumnsGrid={stickyColumnsGrid}\n showVerticalCellShadow={showVerticalCellShadow}\n headerVerticalAlign={headerVerticalAlign}\n getSortIcon={getSortIcon}\n handleSortClick={handleSortClick}\n handleFilterTogglerClick={handleFilterTogglerClick}\n handleCellClick={handleCellClick}\n handleTooltipSave={handleTooltipSave}\n filters={filters}\n visibleFilter={visibleFilter}\n selectedFilters={selectedFilters}\n showHorizontalCellShadow={showHorizontalCellShadow}\n borderBetweenColumns={borderBetweenColumns}\n />\n {filters && isSelectedFiltersPresent(selectedFilters) && (\n <div className={cnTable('RowWithoutCells')}>\n <TableSelectedOptionsList\n values={getSelectedFiltersList({\n filters,\n selectedFilters,\n columns: lowHeaders,\n })}\n getTagLabel={getTagLabel}\n onRemove={removeSelectedFilter(filters)}\n onReset={resetSelectedFilters}\n />\n </div>\n )}\n {rowsData.length > 0 ? (\n rowsData.map((row, rowIdx) => {\n const nth = (rowIdx + 1) % 2 === 0 ? 'even' : 'odd';\n const columns = columnsWithMetaData(lowHeaders);\n const spans = calculateColSpans(columns, row);\n return (\n <div\n key={row.id}\n role=\"presentation\"\n className={cnTable('CellsRow', {\n nth,\n withMergedCells: hasMergedCells,\n })}\n onMouseEnter={handleRowHover(row.id)}\n onMouseLeave={handleRowHover(undefined)}\n onClick={(e) => onRowClick && onRowClick({ id: row.id, e })}\n >\n {columns.map((column: TableColumn<T>, columnIdx: number) => {\n const { show, style, rowSpan } = getTableCellProps(\n row,\n rowIdx,\n column,\n columnIdx,\n );\n const colSpan = spans[columnIdx];\n const start =\n columnIdx > 0\n ? spans.slice(0, columnIdx).reduce((a, b) => a + b) + 1\n : 1;\n if (show && colSpan > 0) {\n return (\n <TableCell\n type=\"content\"\n key={column.accessor}\n ref={(ref: HTMLDivElement | null) => {\n cellsRefs.current[`${columnIdx}-${row.id}`] = ref;\n setRef(setBoundaryRef(columnIdx, rowIdx), ref);\n }}\n style={{\n ...style,\n ['--table-cell-col-start' as string]: start,\n ['--table-cell-col-end' as string]: start + colSpan,\n }}\n wrapperClassName={cnTable('ContentCell', {\n isActive: activeRow ? activeRow.id === row.id : false,\n isDarked: activeRow\n ? activeRow.id !== undefined &&\n activeRow.id !== row.id\n : false,\n isMerged: column.mergeCells && rowSpan > 1,\n })}\n className={getAdditionalClassName?.({\n column,\n row,\n isActive: activeRow ? activeRow.id === row.id : false,\n })}\n wrap={getCellWrap?.(row)}\n onContextMenu={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'contextMenu',\n columnIdx,\n rowId: row.id,\n ref: {\n current:\n cellsRefs.current[`${columnIdx}-${row.id}`],\n },\n })\n }\n onClick={(e: React.SyntheticEvent): void => {\n handleSelectRow({ id: row.id, e });\n\n handleCellClick({\n e,\n type: 'click',\n columnIdx,\n rowId: row.id,\n ref: {\n current:\n cellsRefs.current[`${columnIdx}-${row.id}`],\n },\n });\n }}\n column={column}\n verticalAlign={verticalAlign}\n isClickable={!!isRowsClickable}\n showVerticalShadow={\n showVerticalCellShadow &&\n // eslint-disable-next-line no-unsafe-optional-chaining\n column?.position!.gridIndex! +\n (column?.position!.colSpan || 1) ===\n stickyColumnsGrid\n }\n isBorderTop={rowIdx > 0 && borderBetweenRows}\n isBorderLeft={columnIdx > 0 && borderBetweenColumns}\n >\n {renderCell(column, row, columnIdx)}\n </TableCell>\n );\n }\n return null;\n })}\n </div>\n );\n })\n ) : (\n <div className={cnTable('RowWithoutCells')}>\n <div className={cnTable('EmptyCell')}>\n {renderEmptyRowsPlaceholder(emptyRowsPlaceholder)}\n </div>\n </div>\n )}\n {bottomCreateRowButton}\n </div>\n );\n};\n\nexport const Table = React.forwardRef(InternalTable) as Table;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table.js","names":["IconSortDown","IconSortUp","IconUnsort","React","useEffect","useMemo","cnMixScrollBar","useComponentSize","useForkRef","sortBy","sortByDefault","updateAt","cn","setRef","isNotNil","isString","Button","Text","TableCell","fieldFiltersPresent","filterTableData","getSelectedFiltersList","isSelectedFiltersPresent","useSelectedFilters","TableHeader","calculateColSpans","createSortingState","getColumnLeftOffset","getColumnsSize","getMergedArray","getNewSorting","Order","transformRows","useHeaderData","useLazyLoadData","TableResizer","TableRowsCollapse","TableSelectedOptionsList","TableTextFilter","TableFilterContainer","TableNumberFilter","TableChoiceGroupFilter","cnTable","sizes","zebraStriped","headerVerticalAligns","createButtonSizeMap","s","m","l","getColumnSortByField","column","sortable","sortByField","accessor","sortingData","rows","sorting","onSortBy","sortedRows","by","order","sortFn","some","row","length","map","defaultEmptyRowsPlaceholder","InternalTable","props","ref","columns","size","rawFilters","filters","isResizable","stickyHeader","stickyColumns","minColumnWidth","activeRow","verticalAlign","headerVerticalAlign","borderBetweenRows","borderBetweenColumns","emptyRowsPlaceholder","defaultExpandAll","className","onRowHover","onRowClick","onRowCreate","onCellClick","getAdditionalClassName","rowCreateText","lazyLoad","onFiltersUpdated","getTagLabel","getCellWrap","isExpandedRowsByDefault","otherProps","headers","flattenedHeaders","lowHeaders","headerRowsRefs","headerRowsHeights","resizerTopOffsets","stickyColumnsGrid","position","gridIndex","colSpan","getColumnsWidth","width","useState","resizedColumnWidths","setResizedColumnWidths","filter","id","field","initialColumnWidths","setInitialColumnWidths","setSorting","visibleFilter","setVisibleFilter","top","left","tableScroll","setTableScroll","tableRef","useRef","columnsRefs","cellsRefs","selectedFilters","updateSelectedFilters","removeOneSelectedFilter","removeAllSelectedFilters","expandedRowIds","setExpandedRowIds","sortingColumn","find","col","Object","prototype","hasOwnProperty","call","sortingState","tableHeight","current","clientHeight","tableWidth","clientWidth","showVerticalCellShadow","showHorizontalCellShadow","isRowsClickable","onChange","updateColumnWidth","idx","newWidth","overallColumnsWidth","columnsElements","values","columnsElementsWidths","el","getBoundingClientRect","resultArr","reduce","a","b","useLayoutEffect","autoSetted","i","isSortedByColumn","getStickyLeftOffset","columnIndex","topHeaderGridIndex","handleSelectRow","e","handleRowHover","handleRowCreate","index","handleColumnResize","delta","columnMinWidth","Math","min","prevColumnWidth","newColumnWidth","max","containerEl","scrollBy","stickyColumnsWidth","columnsWithMetaData","resizedColumnWidth","initialColumnWidth","columnWidth","columnLeftOffset","isSticky","showResizer","isFilterActive","selected","filterable","isSortingActive","isResized","headersWithMetaData","hasNestedRows","sortedTableData","filteredData","data","maxVisibleRows","scrollableEl","getSlicedRows","setBoundaryRef","flatRowsData","rowsData","tableStyle","hasMergedCells","header","mergeCells","handleExpandRow","includes","prevState","rowId","getCollapseRollProps","columnIdx","withCollapseButton","baseProps","level","options","isExpandedByDefault","isExpanded","toggleCollapse","getExpandedRows","depth","expandedIds","forEach","defaultExpand","push","ids","indexOf","renderCell","cellContent","collapseRollProps","bottomCreateRowButton","rowsLength","slice","pop","lastRowId","getTableCellProps","rowIdx","getComparisonValue","previousCell","currentCell","result","rowSpan","show","style","nextCell","handleCellClick","params","withBorderBottom","handleScroll","target","HTMLElement","scrollTop","scrollLeft","type","getSortIcon","handleSortClick","newSorting","sortProps","sortingBy","sortOrder","handleFilterTogglerClick","handleTooltipSave","tooltipSelectedFilters","value","removeSelectedFilter","tableFilters","resetSelectedFilters","nth","spans","withMergedCells","start","isActive","isDarked","isMerged","renderEmptyRowsPlaceholder","placeholder","Table","forwardRef"],"sources":["../../../../../src/components/Table/Table.tsx"],"sourcesContent":["import './Table.css';\n\nimport { IconSortDown } from '@consta/icons/IconSortDown';\nimport { IconSortUp } from '@consta/icons/IconSortUp';\nimport { IconUnsort } from '@consta/icons/IconUnsort';\nimport React, { useEffect, useMemo } from 'react';\n\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\n\nimport { useComponentSize } from '../../hooks/useComponentSize/useComponentSize';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { sortBy as sortByDefault, updateAt } from '../../utils/array';\nimport { cn } from '../../utils/bem';\nimport { setRef } from '../../utils/setRef';\nimport { isNotNil, isString } from '../../utils/type-guards';\nimport { Button, ButtonPropSize } from '../Button/Button';\nimport { Text } from '../Text/Text';\nimport { HorizontalAlign, TableCell, VerticalAlign } from './Cell/TableCell';\nimport {\n fieldFiltersPresent,\n FieldSelectedValues,\n Filters,\n filterTableData,\n getSelectedFiltersList,\n isSelectedFiltersPresent,\n onSortBy,\n SelectedFilters,\n useSelectedFilters,\n} from './filtering';\nimport { TableHeader } from './Header/TableHeader';\nimport {\n calculateColSpans,\n createSortingState,\n getColumnLeftOffset,\n getColumnsSize,\n getMergedArray,\n getNewSorting,\n Header,\n Order,\n OrderType,\n Position,\n transformRows,\n useHeaderData,\n useLazyLoadData,\n} from './helpers';\nimport { TableResizer } from './Resizer/TableResizer';\nimport {\n Props as TableRowsCollapseProps,\n TableRowsCollapse,\n} from './RowsCollapse/TableRowsCollapse';\nimport {\n GetTagLabel,\n TableSelectedOptionsList,\n} from './SelectedOptionsList/TableSelectedOptionsList';\n\nexport { TableTextFilter } from './TextFilter/TableTextFilter';\nexport { TableFilterContainer } from './FilterContainer/TableFilterContainer';\nexport { TableNumberFilter } from './NumberFilter/TableNumberFilter';\nexport { TableChoiceGroupFilter } from './ChoiceGroupFilter/TableChoiceGroupFilter';\n\nconst cnTable = cn('Table');\n\nexport const sizes = ['s', 'm', 'l'] as const;\ntype Size = (typeof sizes)[number];\n\nexport const zebraStriped = ['odd', 'even'] as const;\ntype ZebraStriped = (typeof zebraStriped)[number];\n\nexport const headerVerticalAligns = ['center', 'bottom'] as const;\nexport type HeaderVerticalAlign = (typeof headerVerticalAligns)[number];\n\nconst createButtonSizeMap: Record<Size, ButtonPropSize> = {\n s: 'xs',\n m: 's',\n l: 'm',\n};\n\ntype TableCSSCustomProperty = {\n '--table-width': string;\n '--table-grid-template-columns': string;\n};\n\nexport type LazyLoad =\n | {\n maxVisibleRows?: number;\n scrollableEl?: HTMLDivElement | Window;\n }\n | undefined;\n\ntype ActiveRow = {\n id: string | undefined;\n onChange: ({\n id,\n e,\n }: {\n id: string | undefined;\n e?: React.SyntheticEvent;\n }) => void;\n};\n\ntype onRowHover = ({\n id,\n e,\n}: {\n id: string | undefined;\n e: React.MouseEvent;\n}) => void;\n\ntype onRowClick = ({ id, e }: { id: string; e: React.MouseEvent }) => void;\n\ntype onRowCreate = ({\n id,\n index,\n e,\n}: {\n id?: string;\n index: number;\n e: React.MouseEvent;\n}) => void;\n\nexport type CellClickType = 'click' | 'contextMenu';\n\nexport type onCellClick = ({\n e,\n type,\n rowId,\n columnIdx,\n ref,\n}: {\n e: React.SyntheticEvent;\n type: CellClickType;\n columnIdx: number;\n ref: React.RefObject<HTMLDivElement>;\n rowId?: string;\n}) => void;\n\nexport type TableRow = {\n id: string;\n defaultExpand?: boolean;\n rows?: TableRow[];\n};\n\nexport type TableTreeRow<T extends TableRow> = {\n options: {\n level: number;\n };\n} & T;\n\nexport type TableFilters<T extends TableRow> = Filters<T>;\n\nexport type RowField<T extends TableRow> = Exclude<keyof T, symbol | number>;\n\nexport type ColumnWidth = number | undefined;\n\nexport type ValueOf<T> = T[keyof T];\n\ntype ColumnBase<T extends TableRow> = ValueOf<{\n [K in keyof T]: {\n accessor: K extends string ? K : never;\n sortable?: boolean;\n colSpan?: number | ((row: T) => number);\n sortByField?: keyof T;\n order?: OrderType;\n sortFn?(a: T[K], b: T[K]): number;\n renderCell?: (row: T) => React.ReactNode;\n getComparisonValue?: (cell: T[K]) => number | string;\n };\n}>;\ntype SingleColumnAddition<T extends TableRow> = ColumnBase<T> & {\n columns?: never;\n};\ntype GroupColumnAddition<T extends TableRow> = {\n columns: TableColumn<T>[];\n} & {\n // eslint-disable-next-line no-unused-vars\n [K in keyof ColumnBase<T>]?: never;\n};\nexport interface TableControl<T extends TableRow> {\n column: Header<T> & ColumnMetaData;\n}\n\nexport type SortByProps<T extends TableRow> = {\n sortingBy: keyof T;\n sortOrder: 'asc' | 'desc';\n};\n\nexport type TableColumn<T extends TableRow> = {\n title: React.ReactNode;\n align?: HorizontalAlign;\n withoutPadding?: boolean;\n width?: ColumnWidth;\n mergeCells?: boolean;\n position?: Position;\n hidden?: boolean;\n control?: ({ column }: TableControl<T>) => React.ReactNode;\n} & (GroupColumnAddition<T> | SingleColumnAddition<T>);\n\nexport type TableProps<T extends TableRow> = {\n columns: TableColumn<T>[];\n rows: T[];\n isResizable?: boolean;\n filters?: Filters<T>;\n onSortBy?: onSortBy<T>;\n size?: Size;\n stickyHeader?: boolean;\n stickyColumns?: number;\n minColumnWidth?: number;\n activeRow?: ActiveRow;\n verticalAlign?: VerticalAlign;\n headerVerticalAlign?: HeaderVerticalAlign;\n zebraStriped?: ZebraStriped;\n borderBetweenRows?: boolean;\n defaultExpandAll?: boolean;\n borderBetweenColumns?: boolean;\n emptyRowsPlaceholder?: React.ReactNode;\n className?: string;\n onRowHover?: onRowHover;\n onRowClick?: onRowClick;\n onRowCreate?: onRowCreate;\n onCellClick?: onCellClick;\n getAdditionalClassName?: (props: {\n column: TableColumn<T>;\n row: T;\n isActive: boolean;\n }) => string;\n rowCreateText?: string;\n lazyLoad?: LazyLoad;\n onFiltersUpdated?: (filters: SelectedFilters) => void;\n getTagLabel?: GetTagLabel;\n isExpandedRowsByDefault?: boolean;\n getCellWrap?: (row: T) => 'truncate' | 'break';\n};\n\ntype Table = <T extends TableRow>(\n props: TableProps<T> & { ref?: React.Ref<HTMLDivElement> },\n) => React.ReactNode | null;\n\nexport type ColumnMetaData = {\n filterable: boolean;\n isSortingActive: boolean;\n isFilterActive: boolean;\n isResized: boolean;\n isSticky: boolean;\n showResizer: boolean;\n columnWidth: number;\n columnLeftOffset: number;\n};\n\nexport type SortingState<T extends TableRow> = {\n by: keyof T;\n order: 'asc' | 'desc';\n sortFn?: (a: T[keyof T], b: T[keyof T]) => number;\n} | null;\n\ntype GetTableCellProps = {\n show: boolean;\n rowSpan: number;\n style: {\n 'left'?: number;\n '--row-span'?: string;\n };\n};\n\nconst getColumnSortByField = <T extends TableRow>(\n column: TableColumn<T>,\n): keyof T => (column.sortable && column.sortByField) || column.accessor!;\n\nconst sortingData = <T extends TableRow>(\n rows: T[],\n sorting: SortingState<T>,\n onSortBy?: onSortBy<T>,\n): T[] => {\n if (onSortBy) {\n return rows;\n }\n\n if (!sorting) {\n return rows;\n }\n const sortedRows = sortByDefault(\n rows,\n sorting.by,\n sorting.order,\n sorting.sortFn,\n );\n\n if (sortedRows.some((row) => row.rows?.length)) {\n return sortedRows.map((row) => {\n return row.rows\n ? { ...row, rows: sortingData(row.rows as T[], sorting, onSortBy) }\n : row;\n });\n }\n\n return sortedRows;\n};\n\nconst defaultEmptyRowsPlaceholder = (\n <Text as=\"span\" view=\"primary\" size=\"s\" lineHeight=\"s\">\n Нет данных\n </Text>\n);\n\nconst InternalTable = <T extends TableRow>(\n props: TableProps<T>,\n ref?: React.Ref<HTMLDivElement>,\n) => {\n const {\n columns,\n rows,\n size = 'l',\n filters: rawFilters,\n isResizable = false,\n stickyHeader = false,\n stickyColumns = 0,\n minColumnWidth = 150,\n activeRow,\n verticalAlign = 'top',\n headerVerticalAlign = 'center',\n zebraStriped,\n borderBetweenRows = false,\n borderBetweenColumns = false,\n emptyRowsPlaceholder = defaultEmptyRowsPlaceholder,\n defaultExpandAll,\n className,\n onRowHover,\n onRowClick,\n onRowCreate,\n onCellClick,\n getAdditionalClassName,\n rowCreateText = '+ Добавить строку',\n lazyLoad,\n onSortBy,\n onFiltersUpdated,\n getTagLabel,\n getCellWrap,\n isExpandedRowsByDefault = false,\n ...otherProps\n } = props;\n const {\n headers,\n flattenedHeaders,\n lowHeaders,\n headerRowsRefs,\n headerRowsHeights,\n resizerTopOffsets,\n } = useHeaderData(columns);\n const stickyColumnsGrid =\n // eslint-disable-next-line no-unsafe-optional-chaining\n headers[0][stickyColumns - 1]?.position.gridIndex! +\n (headers[0][stickyColumns - 1]?.position.colSpan || 1);\n\n const getColumnsWidth = () =>\n lowHeaders.map((column: TableColumn<T>) => column.width);\n const [resizedColumnWidths, setResizedColumnWidths] =\n React.useState<ColumnWidth[]>(getColumnsWidth());\n\n const filters = React.useMemo(() => {\n return (\n rawFilters && rawFilters.filter((filter) => filter.id && filter.field)\n );\n }, [rawFilters]);\n\n React.useEffect(() => {\n setResizedColumnWidths(getColumnsWidth());\n }, [lowHeaders.length]);\n\n const [initialColumnWidths, setInitialColumnWidths] = React.useState<\n number[]\n >([]);\n const [sorting, setSorting] = React.useState<SortingState<T>>(null);\n const [visibleFilter, setVisibleFilter] = React.useState<string | null>(null);\n const [tableScroll, setTableScroll] = React.useState({ top: 0, left: 0 });\n\n const tableRef = React.useRef<HTMLDivElement>(null);\n const columnsRefs = React.useRef<Record<number, HTMLDivElement | null>>({});\n const cellsRefs = React.useRef<Record<string, HTMLDivElement | null>>({});\n const {\n selectedFilters,\n updateSelectedFilters,\n removeOneSelectedFilter,\n removeAllSelectedFilters,\n } = useSelectedFilters(filters, onFiltersUpdated);\n const [expandedRowIds, setExpandedRowIds] = React.useState<string[]>([]);\n\n // установка сортировки по умолчанию\n\n React.useEffect(() => {\n const sortingColumn = columns.find(\n (col) =>\n isString(col.order) &&\n Object.prototype.hasOwnProperty.call(Order, col.order),\n );\n if (sortingColumn) {\n const sortingState = createSortingState(\n getColumnSortByField(sortingColumn),\n sortingColumn.order,\n sortingColumn.sortFn,\n );\n setSorting(sortingState);\n }\n }, [columns]);\n\n /*\n Подписываемся на изменения размеров таблицы, но не используем значения из\n хука так как нам нужна ширина и высота таблицы без размера скролла. Этот хук\n использует значения `offsetWidth` и `offsetHeight` которые включают размер\n скролл бара.\n */\n useComponentSize(tableRef);\n const tableHeight = tableRef.current?.clientHeight || 0;\n const tableWidth = tableRef.current?.clientWidth || 0;\n\n const showVerticalCellShadow = tableScroll.left > 0;\n const showHorizontalCellShadow = tableScroll.top > 0;\n const isRowsClickable = activeRow && activeRow.onChange;\n\n const updateColumnWidth = (idx: number, newWidth: number): void => {\n setResizedColumnWidths(updateAt(resizedColumnWidths, idx, newWidth));\n };\n\n const overallColumnsWidth = useMemo(() => {\n const columnsElements = Object.values(columnsRefs.current).filter(isNotNil);\n const columnsElementsWidths = columnsElements.map(\n (el) => el.getBoundingClientRect().width,\n );\n const resultArr = getMergedArray(\n columnsElementsWidths,\n resizedColumnWidths,\n );\n return resultArr.reduce((a, b) => (a ?? 0) + (b ?? 0));\n }, [resizedColumnWidths, isResizable]);\n\n React.useLayoutEffect(() => {\n const columnsElements = Object.values(columnsRefs.current).filter(isNotNil);\n if (columnsElements.length === 0) return;\n\n const columnsElementsWidths = columnsElements.map(\n (el) => el.getBoundingClientRect().width,\n );\n setInitialColumnWidths(columnsElementsWidths);\n\n // Проверяем, что таблица отрисовалась корректно, и устанавливаем значения ширин колонок после 1го и последующих рендера\n if (\n columnsElements[0].getBoundingClientRect().left !==\n columnsElements[columnsElements.length - 1].getBoundingClientRect().left\n ) {\n const resultArr = getMergedArray(\n columnsElementsWidths,\n resizedColumnWidths,\n );\n // Выставляю в undefined для того, чтобы колонка, для которой не определена ширина выставлялась в auto\n // Если ее нет то заполняю недостающее пространство в последней колонке\n if ((overallColumnsWidth ?? tableWidth) < tableWidth) {\n let autoSetted = false;\n for (let i = columns.length - 1; i > 0; i--) {\n const { width } = columns[i];\n if (!(width && width > 0)) {\n resultArr[i] = undefined;\n autoSetted = true;\n return;\n }\n }\n if (!autoSetted && overallColumnsWidth) {\n resultArr[resultArr.length - 1] =\n (resultArr[resultArr.length - 1] ?? 0) +\n tableWidth -\n overallColumnsWidth;\n }\n }\n return setResizedColumnWidths(resultArr);\n }\n\n // условие изменения ширины колонок при изменении ширины экрана (контейнера таблицы)\n if (tableWidth > 0 && !isResizable) {\n return setResizedColumnWidths(getColumnsWidth());\n }\n }, [tableWidth, overallColumnsWidth]);\n\n const isSortedByColumn = (column: TableColumn<T>): boolean =>\n getColumnSortByField(column) === sorting?.by;\n\n const getSortIcon = (column: TableColumn<T>) => {\n return (\n (isSortedByColumn(column) &&\n (sorting?.order === 'desc' ? IconSortDown : IconSortUp)) ||\n IconUnsort\n );\n };\n\n const handleSortClick = (column: TableColumn<T>): void => {\n const newSorting = getNewSorting(\n sorting,\n getColumnSortByField(column),\n (column.sortable && column?.sortFn) || undefined,\n );\n\n const sortProps = newSorting\n ? {\n sortingBy: newSorting.by,\n sortOrder: newSorting.order,\n }\n : null;\n onSortBy && onSortBy(sortProps);\n setSorting(newSorting);\n };\n\n const handleFilterTogglerClick = (id: string) => (): void => {\n setVisibleFilter(visibleFilter === id ? null : id);\n };\n\n const handleTooltipSave = (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ): void => {\n updateSelectedFilters(field, tooltipSelectedFilters, value);\n };\n\n const removeSelectedFilter =\n (tableFilters: Filters<T>) =>\n (filter: string): void => {\n removeOneSelectedFilter(tableFilters, filter);\n };\n\n const resetSelectedFilters = (): void => {\n if (filters && filters.length) {\n removeAllSelectedFilters(filters);\n }\n };\n\n const getStickyLeftOffset = (\n columnIndex: number,\n topHeaderGridIndex: number,\n ): number | undefined => {\n if (topHeaderGridIndex >= stickyColumns) {\n return;\n }\n\n return getColumnLeftOffset({\n columnIndex,\n resizedColumnWidths,\n initialColumnWidths,\n });\n };\n\n const handleScroll: React.UIEventHandler = (e) => {\n if (!(e.target instanceof HTMLElement) || e.target !== tableRef.current) {\n return;\n }\n\n setTableScroll({\n top: e.target.scrollTop,\n left: e.target.scrollLeft,\n });\n };\n\n const handleSelectRow = ({\n id,\n e,\n }: {\n id: string;\n e: React.SyntheticEvent;\n }): void | undefined => {\n if (!activeRow || !activeRow.onChange) {\n return;\n }\n\n activeRow.onChange({ id: activeRow.id === id ? undefined : id, e });\n };\n\n const handleRowHover = (id?: string) => (e: React.MouseEvent) =>\n onRowHover && onRowHover({ id, e });\n\n const handleRowCreate =\n (index: number, id?: string) => (e: React.MouseEvent) =>\n onRowCreate && onRowCreate({ e, id, index });\n\n const handleColumnResize = (idx: number, delta: number): void => {\n const columnMinWidth = Math.min(minColumnWidth, initialColumnWidths[idx]);\n const prevColumnWidth =\n resizedColumnWidths[idx] || initialColumnWidths[idx];\n const newColumnWidth = Math.max(columnMinWidth, prevColumnWidth + delta);\n\n updateColumnWidth(idx, newColumnWidth);\n\n // При расширении последней колонки прокручиваем таблицу вправо\n const containerEl = tableRef.current;\n if (idx === resizedColumnWidths.length - 1 && delta > 0 && containerEl) {\n containerEl.scrollBy(delta, 0);\n }\n };\n\n const stickyColumnsWidth = getColumnLeftOffset({\n columnIndex: stickyColumns,\n resizedColumnWidths,\n initialColumnWidths,\n });\n\n const columnsWithMetaData = (columns: Array<Header<T>>) => {\n return columns.map((column: Header<T>) => {\n const columnIndex = column.position.gridIndex;\n const resizedColumnWidth = resizedColumnWidths[columnIndex];\n const initialColumnWidth = initialColumnWidths[columnIndex];\n const columnWidth = resizedColumnWidth || initialColumnWidth;\n const columnLeftOffset = getColumnLeftOffset({\n columnIndex,\n resizedColumnWidths,\n initialColumnWidths,\n });\n const isResized = !!columnWidth && columnWidth !== initialColumnWidth;\n const isSticky = stickyColumns > column.position!.topHeaderGridIndex;\n const showResizer =\n stickyColumns > columnIndex ||\n stickyColumnsWidth + tableScroll.left < columnLeftOffset + columnWidth;\n const isFilterActive =\n (selectedFilters[column.accessor!]?.selected || []).length > 0;\n\n return {\n ...column,\n filterable: Boolean(\n filters && fieldFiltersPresent(filters, column.accessor!),\n ),\n isSortingActive: isSortedByColumn(column),\n isFilterActive,\n isResized,\n isSticky,\n showResizer,\n columnWidth,\n columnLeftOffset,\n };\n });\n };\n\n const headersWithMetaData: Array<Header<T> & ColumnMetaData> =\n columnsWithMetaData(flattenedHeaders);\n\n const hasNestedRows = React.useMemo(\n () => rows.some((row) => Boolean(row.rows?.length)),\n [rows],\n );\n\n const sortedTableData = sortingData(rows, sorting, onSortBy);\n\n const filteredData =\n filters && isSelectedFiltersPresent(selectedFilters)\n ? filterTableData({\n data: sortedTableData,\n filters: filters || [],\n selectedFilters,\n })\n : sortedTableData;\n\n const { maxVisibleRows = 210, scrollableEl = tableRef.current } =\n lazyLoad || {};\n\n const { getSlicedRows, setBoundaryRef } = useLazyLoadData(\n maxVisibleRows,\n scrollableEl,\n !!lazyLoad,\n );\n\n const flatRowsData = transformRows(\n filteredData,\n expandedRowIds,\n isExpandedRowsByDefault,\n );\n const rowsData = getSlicedRows(flatRowsData);\n\n const tableStyle: React.CSSProperties & TableCSSCustomProperty = {\n '--table-grid-template-columns': getColumnsSize(resizedColumnWidths),\n '--table-width': `${tableWidth}px`,\n };\n\n const hasMergedCells: boolean = columnsWithMetaData(lowHeaders).some(\n (header) => header.mergeCells,\n );\n\n const handleExpandRow = (id: string): (() => void) => {\n return (): void => {\n if (expandedRowIds.includes(id)) {\n setExpandedRowIds((prevState) =>\n prevState.filter((rowId) => rowId !== id),\n );\n return;\n }\n setExpandedRowIds((prevState) => [...prevState, id]);\n };\n };\n\n const getCollapseRollProps = (\n row: TableTreeRow<T>,\n columnIdx: number,\n ): TableRowsCollapseProps => {\n const withCollapseButton = Boolean(row.rows?.length) && columnIdx === 0;\n\n const baseProps = {\n level: row.options.level,\n isExpandedByDefault: isExpandedRowsByDefault,\n };\n\n if (!withCollapseButton || isExpandedRowsByDefault) {\n return baseProps;\n }\n\n const isExpanded = expandedRowIds.includes(row.id);\n const toggleCollapse = handleExpandRow(row.id);\n\n return {\n ...baseProps,\n withCollapseButton,\n isExpanded,\n toggleCollapse,\n };\n };\n\n const getExpandedRows = (\n rows: T[],\n depth: number,\n defaultExpandAll?: boolean,\n ): string[] => {\n let expandedIds: string[] = [];\n rows.forEach((row) => {\n if (\n row.defaultExpand ||\n ((row.rows?.length ?? 0) > 0 && defaultExpandAll)\n ) {\n expandedIds.push(row.id);\n }\n if (row.rows) {\n const ids = getExpandedRows(\n row.rows as T[],\n depth + 1,\n defaultExpandAll,\n );\n expandedIds = [...expandedIds, ...ids];\n if (ids.length > 0 && expandedIds.indexOf(row.id) === -1) {\n expandedIds.push(row.id);\n }\n }\n });\n return [\n ...(depth === 0 ? expandedRowIds : []),\n ...expandedIds.filter((id) => expandedRowIds.indexOf(id) === -1),\n ];\n };\n\n useEffect(() => {\n if (rows) {\n setExpandedRowIds(getExpandedRows(rows, 0, defaultExpandAll));\n }\n }, [rows, defaultExpandAll]);\n\n const renderCell = (\n column: TableColumn<T>,\n row: T,\n columnIdx: number,\n ): React.ReactNode => {\n const cellContent = column.renderCell\n ? column.renderCell(row)\n : row[column.accessor!];\n\n if (!hasNestedRows || columnIdx !== 0) {\n return cellContent as React.ReactNode;\n }\n\n const collapseRollProps = getCollapseRollProps(\n row as TableTreeRow<T>,\n columnIdx,\n );\n\n return (\n <TableRowsCollapse {...collapseRollProps}>\n {cellContent as React.ReactNode}\n </TableRowsCollapse>\n );\n };\n\n const renderEmptyRowsPlaceholder = (\n placeholder: React.ReactNode,\n ): React.ReactNode => {\n return typeof placeholder === 'string' ? (\n <Text size=\"s\" view=\"primary\" lineHeight=\"m\">\n {placeholder}\n </Text>\n ) : (\n placeholder\n );\n };\n\n const bottomCreateRowButton = useMemo(() => {\n const rowsLength = rowsData.length;\n /* Можно и rowsData[rowsLength - 1], но в таком случае TS не подскажет,\n что мы будем искать id в undefined это может привести к ошибке */\n const { id: lastRowId } = rowsData.slice(-1).pop() ?? {};\n\n if (!onRowCreate) {\n return null;\n }\n\n return (\n <div\n className={cnTable(rowsLength ? 'CreateRowCell' : 'RowWithoutCells')}\n >\n <Button\n size={createButtonSizeMap[size]}\n form=\"brick\"\n label={rowCreateText}\n view=\"clear\"\n className={cnTable('CreateRowButton')}\n onClick={handleRowCreate(rowsLength, lastRowId)}\n width=\"full\"\n />\n </div>\n );\n }, [rowCreateText, rowsData.length, onRowCreate]);\n\n const getTableCellProps = (\n row: TableTreeRow<T>,\n rowIdx: number,\n column: TableColumn<T>,\n columnIdx: number,\n ): GetTableCellProps => {\n const {\n mergeCells,\n accessor,\n position,\n getComparisonValue = (e) => e,\n } = column;\n\n const previousCell =\n rowsData[rowIdx - 1] &&\n getComparisonValue(rowsData[rowIdx - 1][accessor!]);\n const currentCell = getComparisonValue(row[accessor!]);\n\n const result: GetTableCellProps = {\n rowSpan: 1,\n show: false,\n style: {\n left: getStickyLeftOffset(columnIdx, position!.topHeaderGridIndex),\n },\n };\n\n if (\n mergeCells &&\n ((rowsData[rowIdx - 1] && previousCell !== currentCell) ||\n rowIdx === 0 ||\n (previousCell === currentCell && rowsData[rowIdx - 1]?.rows))\n ) {\n if (!row.rows) {\n for (let i = rowIdx; i < rowsData.length; i++) {\n if (rowsData[i + 1]) {\n const nextCell = getComparisonValue(rowsData[i + 1][accessor!]);\n if (currentCell === nextCell && !rowsData[i].rows) {\n result.rowSpan++;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n if (result.rowSpan > 1) {\n result.style['--row-span'] = `span ${result.rowSpan}`;\n }\n result.show = true;\n }\n if (!mergeCells) {\n result.show = true;\n }\n\n return result;\n };\n\n const handleCellClick: onCellClick = (params) => {\n onCellClick?.(params);\n };\n\n return (\n <div\n {...otherProps}\n ref={useForkRef([tableRef, ref])}\n className={cnTable(\n {\n size,\n isResizable,\n zebraStriped,\n withBorderBottom: !filteredData.length,\n },\n [className, cnMixScrollBar()],\n )}\n style={tableStyle}\n onScroll={handleScroll}\n >\n {/*\n Элементы Resizer рендерятся в отдельных ячейках нулевой высоты с шириной\n равной ширине колонки сетки, при этом у ячейки самый большой z-index в\n таблице чтобы элементы Resizer могли перекрывать ячейки заголовка и\n контента. Кроме того это позволяет зафиксировать вертикальное и\n горизонтальное положение Resizer, а также его высоту.\n\n Получение высоты Resizer элементов через свойство элемента таблицы\n scrollHeight не подходило, так как в таком случае Resizer растягивал\n таблицу по высоте, поэтому от этого способа отказались.\n */}\n {columnsWithMetaData(lowHeaders).map(\n (\n column: TableColumn<T> & { showResizer: boolean },\n columnIdx: number,\n ) => (\n <TableCell\n type=\"resizer\"\n key={columnIdx}\n ref={(ref: HTMLDivElement | null): void => {\n columnsRefs.current[columnIdx] = ref;\n }}\n style={{\n left: getStickyLeftOffset(columnIdx, columnIdx),\n }}\n onContextMenu={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'contextMenu',\n columnIdx,\n ref: { current: columnsRefs.current[columnIdx] },\n })\n }\n onClick={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'click',\n columnIdx,\n ref: { current: columnsRefs.current[columnIdx] },\n })\n }\n column={column}\n showVerticalShadow={showVerticalCellShadow}\n >\n {isResizable && (\n <TableResizer\n height={tableHeight - resizerTopOffsets[columnIdx]}\n top={resizerTopOffsets[columnIdx]}\n isVisible={column.showResizer}\n onResize={(delta): void => handleColumnResize(columnIdx, delta)}\n onDoubleClick={(): void =>\n updateColumnWidth(columnIdx, initialColumnWidths[columnIdx])\n }\n />\n )}\n </TableCell>\n ),\n )}\n <TableHeader\n isStickyHeader={stickyHeader}\n headersWithMetaData={headersWithMetaData}\n headerRowsHeights={headerRowsHeights}\n headerRowsRefs={headerRowsRefs}\n getStickyLeftOffset={getStickyLeftOffset}\n stickyColumnsGrid={stickyColumnsGrid}\n showVerticalCellShadow={showVerticalCellShadow}\n headerVerticalAlign={headerVerticalAlign}\n getSortIcon={getSortIcon}\n handleSortClick={handleSortClick}\n handleFilterTogglerClick={handleFilterTogglerClick}\n handleCellClick={handleCellClick}\n handleTooltipSave={handleTooltipSave}\n filters={filters}\n visibleFilter={visibleFilter}\n selectedFilters={selectedFilters}\n showHorizontalCellShadow={showHorizontalCellShadow}\n borderBetweenColumns={borderBetweenColumns}\n />\n {filters && isSelectedFiltersPresent(selectedFilters) && (\n <div className={cnTable('RowWithoutCells')}>\n <TableSelectedOptionsList\n values={getSelectedFiltersList({\n filters,\n selectedFilters,\n columns: lowHeaders,\n })}\n getTagLabel={getTagLabel}\n onRemove={removeSelectedFilter(filters)}\n onReset={resetSelectedFilters}\n />\n </div>\n )}\n {rowsData.length > 0 ? (\n rowsData.map((row, rowIdx) => {\n const nth = (rowIdx + 1) % 2 === 0 ? 'even' : 'odd';\n const columns = columnsWithMetaData(lowHeaders);\n const spans = calculateColSpans(columns, row);\n return (\n <div\n key={row.id}\n role=\"presentation\"\n className={cnTable('CellsRow', {\n nth,\n withMergedCells: hasMergedCells,\n })}\n onMouseEnter={handleRowHover(row.id)}\n onMouseLeave={handleRowHover(undefined)}\n onClick={(e) => onRowClick && onRowClick({ id: row.id, e })}\n >\n {columns.map((column: TableColumn<T>, columnIdx: number) => {\n const { show, style, rowSpan } = getTableCellProps(\n row,\n rowIdx,\n column,\n columnIdx,\n );\n const colSpan = spans[columnIdx];\n const start =\n columnIdx > 0\n ? spans.slice(0, columnIdx).reduce((a, b) => a + b) + 1\n : 1;\n if (show && colSpan > 0) {\n return (\n <TableCell\n type=\"content\"\n key={column.accessor}\n ref={(ref: HTMLDivElement | null) => {\n cellsRefs.current[`${columnIdx}-${row.id}`] = ref;\n setRef(setBoundaryRef(columnIdx, rowIdx), ref);\n }}\n style={{\n ...style,\n ['--table-cell-col-start' as string]: start,\n ['--table-cell-col-end' as string]: start + colSpan,\n }}\n wrapperClassName={cnTable('ContentCell', {\n isActive: activeRow ? activeRow.id === row.id : false,\n isDarked: activeRow\n ? activeRow.id !== undefined &&\n activeRow.id !== row.id\n : false,\n isMerged: column.mergeCells && rowSpan > 1,\n })}\n className={getAdditionalClassName?.({\n column,\n row,\n isActive: activeRow ? activeRow.id === row.id : false,\n })}\n wrap={getCellWrap?.(row)}\n onContextMenu={(e: React.SyntheticEvent) =>\n handleCellClick({\n e,\n type: 'contextMenu',\n columnIdx,\n rowId: row.id,\n ref: {\n current:\n cellsRefs.current[`${columnIdx}-${row.id}`],\n },\n })\n }\n onClick={(e: React.SyntheticEvent): void => {\n handleSelectRow({ id: row.id, e });\n\n handleCellClick({\n e,\n type: 'click',\n columnIdx,\n rowId: row.id,\n ref: {\n current:\n cellsRefs.current[`${columnIdx}-${row.id}`],\n },\n });\n }}\n column={column}\n verticalAlign={verticalAlign}\n isClickable={!!isRowsClickable}\n showVerticalShadow={\n showVerticalCellShadow &&\n // eslint-disable-next-line no-unsafe-optional-chaining\n column?.position!.gridIndex! +\n (column?.position!.colSpan || 1) ===\n stickyColumnsGrid\n }\n isBorderTop={rowIdx > 0 && borderBetweenRows}\n isBorderLeft={columnIdx > 0 && borderBetweenColumns}\n >\n {renderCell(column, row, columnIdx)}\n </TableCell>\n );\n }\n return null;\n })}\n </div>\n );\n })\n ) : (\n <div className={cnTable('RowWithoutCells')}>\n <div className={cnTable('EmptyCell')}>\n {renderEmptyRowsPlaceholder(emptyRowsPlaceholder)}\n </div>\n </div>\n )}\n {bottomCreateRowButton}\n </div>\n );\n};\n\nexport const Table = React.forwardRef(InternalTable) as Table;\n"],"mappings":"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"}
|