@true-engineering/true-react-common-ui-kit 4.0.0-alpha7 → 4.0.0-alpha70
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/README.md +12 -720
- package/dist/components/AccountInfo/AccountInfo.styles.d.ts +1 -1
- package/dist/components/AddButton/AddButton.d.ts +1 -0
- package/dist/components/AddButton/AddButton.styles.d.ts +1 -1
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.styles.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +3 -1
- package/dist/components/Checkbox/Checkbox.styles.d.ts +3 -2
- package/dist/components/Checkbox/index.d.ts +1 -0
- package/dist/components/Checkbox/types.d.ts +3 -0
- package/dist/components/CloseButton/CloseButton.styles.d.ts +1 -1
- package/dist/components/ControlWrapper/ControlWrapper.d.ts +10 -3
- package/dist/components/ControlWrapper/ControlWrapper.styles.d.ts +3 -2
- package/dist/components/ControlWrapper/constants.d.ts +1 -0
- package/dist/components/ControlWrapper/helpers.d.ts +4 -0
- package/dist/components/ControlWrapper/index.d.ts +3 -0
- package/dist/components/ControlWrapper/types.d.ts +14 -0
- package/dist/components/CssBaseline/CssBaseline.styles.d.ts +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -3
- package/dist/components/DateInput/DateInput.styles.d.ts +1 -1
- package/dist/components/DateInput/constants.d.ts +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +4 -4
- package/dist/components/DatePicker/DatePicker.styles.d.ts +1 -1
- package/dist/components/DatePicker/components/DatePickerBase/DatePickerBase.d.ts +5 -0
- package/dist/components/DatePicker/components/DatePickerBase/index.d.ts +1 -0
- package/dist/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.d.ts +1 -1
- package/dist/components/DatePicker/components/PopperContainer/PopperContainer.d.ts +2 -4
- package/dist/components/DatePicker/components/index.d.ts +1 -0
- package/dist/components/DatePicker/constants.d.ts +7 -2
- package/dist/components/DatePicker/helpers.d.ts +0 -3
- package/dist/components/DatePicker/index.d.ts +1 -0
- package/dist/components/DatePicker/types.d.ts +3 -5
- package/dist/components/Description/Description.styles.d.ts +1 -1
- package/dist/components/FileInput/FileInput.d.ts +1 -1
- package/dist/components/FileInput/FileInput.styles.d.ts +1 -1
- package/dist/components/FileItem/FileItem.styles.d.ts +1 -1
- package/dist/components/FileItem/constants.d.ts +3 -4
- package/dist/components/FileItem/helpers.d.ts +3 -2
- package/dist/components/FileItem/types.d.ts +1 -2
- package/dist/components/FiltersPane/FiltersPane.d.ts +4 -2
- package/dist/components/FiltersPane/FiltersPane.styles.d.ts +2 -2
- package/dist/components/FiltersPane/components/Filter/Filter.d.ts +1 -2
- package/dist/components/FiltersPane/components/Filter/helpers.d.ts +1 -0
- package/dist/components/FiltersPane/components/FilterDateSingle/FilterDateSingle.d.ts +15 -0
- package/dist/components/FiltersPane/components/FilterDateSingle/FilterDateSingle.styles.d.ts +11 -0
- package/dist/components/FiltersPane/components/FilterDateSingle/index.d.ts +2 -0
- package/dist/components/FiltersPane/components/FilterInterval/FilterInterval.d.ts +3 -11
- package/dist/components/FiltersPane/components/FilterInterval/FilterInterval.styles.d.ts +3 -6
- package/dist/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.d.ts +0 -1
- package/dist/components/FiltersPane/components/FilterSelect/FilterSelect.styles.d.ts +3 -6
- package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.d.ts +6 -5
- package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.styles.d.ts +1 -1
- package/dist/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.d.ts +5 -15
- package/dist/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.d.ts +1 -1
- package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.d.ts +1 -2
- package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.d.ts +2 -2
- package/dist/components/FiltersPane/components/FilterWrapper/helpers.d.ts +1 -1
- package/dist/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.d.ts +2 -1
- package/dist/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.d.ts +1 -1
- package/dist/components/FiltersPane/components/index.d.ts +1 -0
- package/dist/components/FiltersPane/constants.d.ts +1 -1
- package/dist/components/FiltersPane/helpers.d.ts +1 -1
- package/dist/components/FiltersPane/index.d.ts +1 -0
- package/dist/components/FiltersPane/types.d.ts +15 -5
- package/dist/components/Flag/Flag.styles.d.ts +1 -1
- package/dist/components/FlexibleTable/FlexibleTable.d.ts +1 -1
- package/dist/components/FlexibleTable/FlexibleTable.styles.d.ts +2 -2
- package/dist/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.d.ts +4 -3
- package/dist/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.d.ts +1 -1
- package/dist/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.d.ts +1 -3
- package/dist/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.d.ts +1 -1
- package/dist/components/FlexibleTable/helpers.d.ts +2 -2
- package/dist/components/FlexibleTable/types.d.ts +19 -11
- package/dist/components/FloatDocActions/FloatDocActions.d.ts +6 -0
- package/dist/components/FloatDocActions/FloatDocActions.styles.d.ts +8 -0
- package/dist/components/FloatDocActions/components/DocActions/DocActions.d.ts +12 -0
- package/dist/components/FloatDocActions/components/DocActions/DocActions.styles.d.ts +6 -0
- package/dist/components/FloatDocActions/components/DocActions/constants.d.ts +1 -0
- package/dist/components/FloatDocActions/components/DocActions/index.d.ts +4 -0
- package/dist/components/FloatDocActions/components/DocActions/types.d.ts +2 -0
- package/dist/components/FloatDocActions/components/index.d.ts +1 -0
- package/dist/components/FloatDocActions/constants.d.ts +1 -0
- package/dist/components/FloatDocActions/index.d.ts +3 -0
- package/dist/components/Icon/Icon.styles.d.ts +1 -1
- package/dist/components/Icon/icons/index.d.ts +31 -0
- package/dist/components/Icon/index.d.ts +1 -1
- package/dist/components/Icon/types.d.ts +7 -11
- package/dist/components/IconButton/IconButton.d.ts +1 -2
- package/dist/components/IconButton/IconButton.styles.d.ts +1 -1
- package/dist/components/IconButton/constants.d.ts +1 -1
- package/dist/components/IncrementInput/IncrementInput.styles.d.ts +1 -3
- package/dist/components/Input/Input.d.ts +3 -3
- package/dist/components/Input/Input.styles.d.ts +1 -1
- package/dist/components/Input/InputBase.d.ts +3 -3
- package/dist/components/List/List.d.ts +2 -1
- package/dist/components/List/List.styles.d.ts +3 -2
- package/dist/components/List/components/ListItem/ListItem.d.ts +2 -0
- package/dist/components/List/components/ListItem/ListItem.styles.d.ts +3 -2
- package/dist/components/List/index.d.ts +2 -1
- package/dist/components/List/types.d.ts +8 -0
- package/dist/components/Modal/Modal.d.ts +1 -1
- package/dist/components/Modal/Modal.styles.d.ts +1 -1
- package/dist/components/MoreMenu/MoreMenu.styles.d.ts +1 -1
- package/dist/components/MultiSelect/MultiSelect.d.ts +0 -1
- package/dist/components/MultiSelect/MultiSelect.styles.d.ts +1 -1
- package/dist/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.d.ts +1 -1
- package/dist/components/MultiSelectList/MultiSelectList.styles.d.ts +1 -1
- package/dist/components/MultiSelectList/constants.d.ts +1 -1
- package/dist/components/MultiSelectList/helpers.d.ts +1 -1
- package/dist/components/NewMoreMenu/NewMoreMenu.d.ts +5 -2
- package/dist/components/NewMoreMenu/NewMoreMenu.styles.d.ts +1 -1
- package/dist/components/Notification/Notification.d.ts +3 -3
- package/dist/components/Notification/Notification.styles.d.ts +1 -1
- package/dist/components/NumberInput/NumberInput.d.ts +1 -2
- package/dist/components/NumberInput/helpers.d.ts +2 -2
- package/dist/components/PhoneInput/PhoneInput.styles.d.ts +1 -1
- package/dist/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.d.ts +1 -1
- package/dist/components/RadioButton/RadioButton.d.ts +3 -1
- package/dist/components/RadioButton/RadioButton.styles.d.ts +3 -2
- package/dist/components/RadioButton/index.d.ts +1 -0
- package/dist/components/RadioButton/types.d.ts +3 -0
- package/dist/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.d.ts +3 -373
- package/dist/components/ScrollIntoViewIfNeeded/constants.d.ts +1 -1
- package/dist/components/SearchInput/SearchInput.d.ts +2 -3
- package/dist/components/Select/Select.d.ts +3 -3
- package/dist/components/Select/Select.styles.d.ts +12 -22
- package/dist/components/Select/components/SelectList/SelectList.d.ts +8 -6
- package/dist/components/Select/components/SelectList/SelectList.styles.d.ts +3 -2
- package/dist/components/Select/components/SelectListItem/SelectListItem.d.ts +4 -3
- package/dist/components/Select/helpers.d.ts +1 -1
- package/dist/components/Select/index.d.ts +1 -1
- package/dist/components/Select/types.d.ts +4 -0
- package/dist/components/Selector/Selector.d.ts +0 -1
- package/dist/components/Selector/Selector.styles.d.ts +1 -7
- package/dist/components/Skeleton/Skeleton.styles.d.ts +1 -1
- package/dist/components/SmartInput/SmartInput.d.ts +1 -1
- package/dist/components/Status/Status.styles.d.ts +3 -2
- package/dist/components/Status/constants.d.ts +0 -1
- package/dist/components/Status/index.d.ts +1 -0
- package/dist/components/Status/types.d.ts +5 -2
- package/dist/components/Switch/Switch.d.ts +3 -2
- package/dist/components/Switch/Switch.styles.d.ts +3 -2
- package/dist/components/Switch/types.d.ts +3 -0
- package/dist/components/TextArea/TextArea.d.ts +5 -6
- package/dist/components/TextArea/TextArea.styles.d.ts +5 -4
- package/dist/components/TextArea/index.d.ts +1 -1
- package/dist/components/TextArea/types.d.ts +4 -2
- package/dist/components/TextButton/TextButton.d.ts +1 -1
- package/dist/components/TextButton/TextButton.styles.d.ts +1 -1
- package/dist/components/TextWithInfo/TextWithInfo.styles.d.ts +1 -1
- package/dist/components/TextWithTooltip/TextWithTooltip.d.ts +2 -0
- package/dist/components/TextWithTooltip/TextWithTooltip.styles.d.ts +1 -1
- package/dist/components/ThemedPreloader/ThemedPreloader.styles.d.ts +1 -1
- package/dist/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.d.ts +1 -1
- package/dist/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.d.ts +1 -1
- package/dist/components/Toaster/Toaster.styles.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +3 -0
- package/dist/components/Tooltip/Tooltip.styles.d.ts +3 -2
- package/dist/components/Tooltip/types.d.ts +3 -0
- package/dist/components/WithMessages/WithMessages.d.ts +1 -1
- package/dist/components/WithMessages/WithMessages.styles.d.ts +1 -1
- package/dist/components/WithPopup/WithPopup.d.ts +11 -3
- package/dist/components/WithPopup/WithPopup.styles.d.ts +1 -1
- package/dist/components/WithPopup/types.d.ts +4 -4
- package/dist/components/WithTooltip/WithTooltip.d.ts +2 -0
- package/dist/components/index.d.ts +1 -1
- package/dist/constants/phone-info.d.ts +1 -1
- package/dist/helpers/misc.d.ts +5 -3
- package/dist/helpers/phone.d.ts +1 -1
- package/dist/hooks/index.d.ts +8 -5
- package/dist/hooks/use-dropdown.d.ts +3 -3
- package/dist/hooks/use-intersection-ref.d.ts +9 -0
- package/dist/hooks/use-latest-ref.d.ts +2 -0
- package/dist/hooks/use-merge.d.ts +1 -1
- package/dist/hooks/use-mixed-styles.d.ts +3 -3
- package/dist/hooks/use-on-click-outside.d.ts +2 -2
- package/dist/hooks/use-resize-ref.d.ts +8 -0
- package/dist/hooks/use-tweak-styles.d.ts +8 -7
- package/dist/theme/Provider.d.ts +3 -13
- package/dist/theme/common.d.ts +34 -4
- package/dist/theme/helpers.d.ts +3 -16
- package/dist/theme/index.d.ts +0 -2
- package/dist/theme/types.d.ts +13 -11
- package/dist/true-react-common-ui-kit.js +10366 -30803
- package/dist/true-react-common-ui-kit.js.map +1 -1
- package/dist/true-react-common-ui-kit.umd.cjs +1 -32520
- package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
- package/dist/types.d.ts +8 -2
- package/package.json +36 -39
- package/src/components/AccountInfo/AccountInfo.stories.tsx +19 -27
- package/src/components/AccountInfo/AccountInfo.tsx +2 -3
- package/src/components/AddButton/AddButton.stories.tsx +14 -17
- package/src/components/AddButton/AddButton.tsx +3 -5
- package/src/components/Button/Button.stories.tsx +8 -26
- package/src/components/Button/Button.tsx +76 -77
- package/src/components/Checkbox/Checkbox.stories.tsx +27 -16
- package/src/components/Checkbox/Checkbox.styles.ts +3 -1
- package/src/components/Checkbox/Checkbox.tsx +7 -5
- package/src/components/Checkbox/index.ts +1 -0
- package/src/components/Checkbox/types.ts +4 -0
- package/src/components/CloseButton/CloseButton.stories.tsx +5 -6
- package/src/components/CloseButton/CloseButton.tsx +2 -4
- package/src/components/Colors/Colors.stories.tsx +64 -3
- package/src/components/ControlWrapper/ControlWrapper.stories.tsx +46 -35
- package/src/components/ControlWrapper/ControlWrapper.styles.ts +15 -6
- package/src/components/ControlWrapper/ControlWrapper.tsx +70 -45
- package/src/components/ControlWrapper/constants.ts +11 -0
- package/src/components/ControlWrapper/helpers.ts +11 -0
- package/src/components/ControlWrapper/index.ts +3 -0
- package/src/components/ControlWrapper/types.ts +19 -0
- package/src/components/CssBaseline/CssBaseline.styles.ts +2 -0
- package/src/components/CssBaseline/CssBaseline.tsx +2 -3
- package/src/components/DateInput/DateInput.stories.tsx +13 -31
- package/src/components/DateInput/DateInput.tsx +61 -64
- package/src/components/DatePicker/DatePicker.stories.tsx +18 -42
- package/src/components/DatePicker/DatePicker.styles.ts +3 -1
- package/src/components/DatePicker/DatePicker.tsx +286 -261
- package/src/components/DatePicker/components/DatePickerBase/DatePickerBase.tsx +14 -0
- package/src/components/DatePicker/components/DatePickerBase/index.ts +1 -0
- package/src/components/DatePicker/components/PopperContainer/PopperContainer.tsx +4 -4
- package/src/components/DatePicker/components/index.ts +1 -0
- package/src/components/DatePicker/constants.ts +9 -3
- package/src/components/DatePicker/helpers.ts +1 -13
- package/src/components/DatePicker/index.ts +1 -0
- package/src/components/DatePicker/types.ts +6 -6
- package/src/components/Description/Description.stories.tsx +11 -16
- package/src/components/Description/Description.tsx +2 -3
- package/src/components/FileInput/FileInput.stories.tsx +59 -63
- package/src/components/FileInput/FileInput.tsx +87 -95
- package/src/components/FileItem/FileItem.stories.tsx +48 -48
- package/src/components/FileItem/FileItem.tsx +2 -4
- package/src/components/FileItem/constants.ts +3 -14
- package/src/components/FileItem/helpers.ts +3 -2
- package/src/components/FileItem/types.ts +1 -3
- package/src/components/FiltersPane/FiltersPane.stories.tsx +72 -52
- package/src/components/FiltersPane/FiltersPane.tsx +19 -11
- package/src/components/FiltersPane/components/Filter/Filter.tsx +32 -15
- package/src/components/FiltersPane/components/Filter/helpers.ts +4 -4
- package/src/components/FiltersPane/components/FilterDateSingle/FilterDateSingle.styles.ts +34 -0
- package/src/components/FiltersPane/components/FilterDateSingle/FilterDateSingle.tsx +103 -0
- package/src/components/FiltersPane/components/FilterDateSingle/index.ts +2 -0
- package/src/components/FiltersPane/components/FilterInterval/FilterInterval.styles.ts +1 -2
- package/src/components/FiltersPane/components/FilterInterval/FilterInterval.tsx +7 -20
- package/src/components/FiltersPane/components/FilterSelect/FilterSelect.styles.ts +1 -2
- package/src/components/FiltersPane/components/FilterSelect/FilterSelect.tsx +22 -23
- package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +62 -93
- package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +2 -26
- package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +9 -44
- package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +4 -3
- package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +6 -8
- package/src/components/FiltersPane/components/FilterWrapper/helpers.ts +1 -1
- package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.ts +5 -0
- package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.tsx +19 -19
- package/src/components/FiltersPane/components/index.ts +1 -0
- package/src/components/FiltersPane/constants.ts +2 -0
- package/src/components/FiltersPane/helpers.ts +3 -3
- package/src/components/FiltersPane/index.ts +1 -0
- package/src/components/FiltersPane/types.ts +24 -6
- package/src/components/Flag/Flag.stories.tsx +15 -20
- package/src/components/Flag/Flag.tsx +2 -2
- package/src/components/FlexibleTable/FlexibleTable.stories.tsx +47 -50
- package/src/components/FlexibleTable/FlexibleTable.styles.ts +5 -2
- package/src/components/FlexibleTable/FlexibleTable.tsx +31 -52
- package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.ts +1 -0
- package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.tsx +13 -7
- package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.tsx +13 -11
- package/src/components/FlexibleTable/types.ts +19 -11
- package/src/components/FloatDocActions/FloatDocActions.stories.tsx +111 -0
- package/src/components/FloatDocActions/FloatDocActions.styles.ts +12 -0
- package/src/components/FloatDocActions/FloatDocActions.tsx +34 -0
- package/src/components/FloatDocActions/components/DocActions/DocActions.styles.ts +29 -0
- package/src/components/FloatDocActions/components/DocActions/DocActions.tsx +43 -0
- package/src/components/FloatDocActions/components/DocActions/constants.ts +1 -0
- package/src/components/FloatDocActions/components/DocActions/index.ts +4 -0
- package/src/components/FloatDocActions/components/DocActions/types.ts +3 -0
- package/src/components/FloatDocActions/components/index.ts +1 -0
- package/src/components/FloatDocActions/constants.ts +1 -0
- package/src/components/FloatDocActions/index.ts +3 -0
- package/src/components/Icon/Icon.stories.tsx +80 -67
- package/src/components/Icon/Icon.styles.ts +1 -1
- package/src/components/Icon/Icon.tsx +17 -12
- package/src/components/Icon/icons/calendar.svg +1 -0
- package/src/components/Icon/icons/check.svg +1 -0
- package/src/components/Icon/icons/chevron-down-small.svg +1 -0
- package/src/components/Icon/icons/chevron-down.svg +1 -0
- package/src/components/Icon/icons/chevron-left.svg +1 -0
- package/src/components/Icon/icons/chevron-right.svg +1 -0
- package/src/components/Icon/icons/close-large.svg +1 -0
- package/src/components/Icon/icons/close-window.svg +1 -0
- package/src/components/Icon/icons/close.svg +1 -0
- package/src/components/Icon/icons/filter.svg +1 -0
- package/src/components/Icon/icons/index.ts +62 -0
- package/src/components/Icon/icons/information.svg +1 -0
- package/src/components/Icon/icons/menu.svg +1 -0
- package/src/components/Icon/icons/minus.svg +1 -0
- package/src/components/Icon/icons/plus.svg +1 -0
- package/src/components/Icon/icons/search.svg +1 -0
- package/src/components/Icon/icons/status-error.svg +1 -0
- package/src/components/Icon/icons/status-info.svg +1 -0
- package/src/components/Icon/icons/status-not-ok.svg +1 -0
- package/src/components/Icon/icons/status-ok.svg +1 -0
- package/src/components/Icon/icons/status-warning.svg +1 -0
- package/src/components/Icon/icons/trash-can.svg +1 -0
- package/src/components/Icon/index.ts +1 -1
- package/src/components/Icon/types.ts +7 -13
- package/src/components/IconButton/IconButton.stories.tsx +7 -12
- package/src/components/IconButton/IconButton.styles.ts +15 -13
- package/src/components/IconButton/IconButton.tsx +44 -48
- package/src/components/IconButton/constants.ts +1 -1
- package/src/components/IncrementInput/IncrementInput.stories.tsx +25 -23
- package/src/components/IncrementInput/IncrementInput.styles.ts +31 -39
- package/src/components/IncrementInput/IncrementInput.tsx +28 -25
- package/src/components/Input/Input.stories.tsx +38 -68
- package/src/components/Input/Input.styles.ts +5 -2
- package/src/components/Input/Input.tsx +29 -26
- package/src/components/Input/InputBase.tsx +170 -174
- package/src/components/List/List.stories.tsx +34 -17
- package/src/components/List/List.styles.ts +4 -2
- package/src/components/List/List.tsx +15 -7
- package/src/components/List/components/ListItem/ListItem.styles.ts +4 -1
- package/src/components/List/components/ListItem/ListItem.tsx +8 -6
- package/src/components/List/index.ts +2 -1
- package/src/components/List/types.ts +11 -0
- package/src/components/Modal/Modal.stories.tsx +50 -59
- package/src/components/Modal/Modal.tsx +3 -5
- package/src/components/MoreMenu/MoreMenu.stories.tsx +24 -15
- package/src/components/MoreMenu/MoreMenu.tsx +2 -4
- package/src/components/MultiSelect/MultiSelect.stories.tsx +23 -20
- package/src/components/MultiSelect/MultiSelect.tsx +2 -4
- package/src/components/MultiSelectList/MultiSelectList.tsx +15 -11
- package/src/components/MultiSelectList/helpers.ts +2 -2
- package/src/components/NewMoreMenu/NewMoreMenu.stories.tsx +51 -39
- package/src/components/NewMoreMenu/NewMoreMenu.tsx +29 -24
- package/src/components/Notification/Notification.stories.tsx +37 -34
- package/src/components/Notification/Notification.tsx +11 -20
- package/src/components/NumberInput/NumberInput.stories.tsx +32 -28
- package/src/components/NumberInput/NumberInput.tsx +91 -93
- package/src/components/PhoneInput/PhoneInput.stories.tsx +29 -55
- package/src/components/PhoneInput/PhoneInput.tsx +3 -4
- package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +5 -11
- package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +1 -4
- package/src/components/RadioButton/RadioButton.stories.tsx +31 -21
- package/src/components/RadioButton/RadioButton.styles.ts +2 -1
- package/src/components/RadioButton/RadioButton.tsx +12 -5
- package/src/components/RadioButton/index.ts +1 -0
- package/src/components/RadioButton/types.ts +4 -0
- package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +15 -9
- package/src/components/SearchInput/SearchInput.stories.tsx +19 -14
- package/src/components/SearchInput/SearchInput.styles.ts +6 -12
- package/src/components/SearchInput/SearchInput.tsx +21 -24
- package/src/components/Select/CustomSelect.stories.tsx +29 -32
- package/src/components/Select/MultiSelect.stories.tsx +45 -45
- package/src/components/Select/Select.stories.tsx +45 -44
- package/src/components/Select/Select.styles.ts +5 -40
- package/src/components/Select/Select.tsx +62 -52
- package/src/components/Select/components/SelectList/SelectList.styles.ts +2 -1
- package/src/components/Select/components/SelectList/SelectList.tsx +13 -7
- package/src/components/Select/components/SelectListItem/SelectListItem.tsx +5 -2
- package/src/components/Select/index.ts +1 -1
- package/src/components/Select/types.ts +3 -0
- package/src/components/Selector/Selector.stories.tsx +29 -27
- package/src/components/Selector/Selector.styles.ts +31 -133
- package/src/components/Selector/Selector.tsx +37 -53
- package/src/components/Skeleton/Skeleton.stories.tsx +13 -12
- package/src/components/SmartInput/SmartInput.stories.tsx +23 -23
- package/src/components/SmartInput/SmartInput.tsx +85 -87
- package/src/components/Status/Status.stories.tsx +79 -28
- package/src/components/Status/Status.styles.ts +2 -37
- package/src/components/Status/Status.tsx +5 -4
- package/src/components/Status/constants.ts +0 -10
- package/src/components/Status/index.ts +1 -1
- package/src/components/Status/types.ts +7 -3
- package/src/components/Switch/Switch.stories.tsx +19 -26
- package/src/components/Switch/Switch.styles.ts +21 -13
- package/src/components/Switch/Switch.tsx +11 -6
- package/src/components/Switch/types.ts +5 -0
- package/src/components/TextArea/TextArea.stories.tsx +37 -26
- package/src/components/TextArea/TextArea.styles.ts +15 -8
- package/src/components/TextArea/TextArea.tsx +114 -83
- package/src/components/TextArea/index.ts +1 -1
- package/src/components/TextArea/types.ts +5 -5
- package/src/components/TextButton/TextButton.stories.tsx +8 -19
- package/src/components/TextButton/TextButton.styles.ts +1 -0
- package/src/components/TextButton/TextButton.tsx +68 -69
- package/src/components/TextWithInfo/TextWithInfo.stories.tsx +13 -21
- package/src/components/TextWithInfo/TextWithInfo.tsx +2 -4
- package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +26 -25
- package/src/components/TextWithTooltip/TextWithTooltip.tsx +7 -6
- package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +12 -23
- package/src/components/ThemedPreloader/ThemedPreloader.tsx +2 -4
- package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +4 -4
- package/src/components/Toaster/Toaster.stories.tsx +16 -14
- package/src/components/Toaster/Toaster.tsx +2 -4
- package/src/components/Tooltip/Tooltip.stories.tsx +15 -4
- package/src/components/Tooltip/Tooltip.styles.ts +2 -1
- package/src/components/Tooltip/Tooltip.tsx +12 -5
- package/src/components/Tooltip/types.ts +5 -0
- package/src/components/WithMessages/WithMessages.stories.tsx +16 -20
- package/src/components/WithMessages/WithMessages.tsx +41 -40
- package/src/components/WithPopup/WithPopup.stories.tsx +27 -26
- package/src/components/WithPopup/WithPopup.tsx +36 -15
- package/src/components/WithTooltip/WithTooltip.stories.tsx +28 -28
- package/src/components/WithTooltip/WithTooltip.tsx +4 -0
- package/src/components/index.ts +1 -1
- package/src/helpers/misc.ts +15 -7
- package/src/helpers/popper-helpers.ts +0 -1
- package/src/hooks/index.ts +8 -5
- package/src/hooks/use-intersection-ref.ts +48 -0
- package/src/hooks/use-latest-ref.ts +11 -0
- package/src/hooks/use-on-click-outside.ts +22 -14
- package/src/hooks/use-resize-ref.ts +42 -0
- package/src/hooks/use-tweak-styles.ts +14 -51
- package/src/theme/Provider.tsx +4 -21
- package/src/theme/common.ts +33 -36
- package/src/theme/helpers.ts +50 -40
- package/src/theme/index.ts +0 -2
- package/src/theme/types.ts +20 -16
- package/src/types.ts +16 -6
- package/dist/components/AccountInfo/AccountInfo.stories.d.ts +0 -6
- package/dist/components/AddButton/AddButton.stories.d.ts +0 -6
- package/dist/components/Button/Button.stories.d.ts +0 -6
- package/dist/components/Checkbox/Checkbox.stories.d.ts +0 -8
- package/dist/components/CloseButton/CloseButton.stories.d.ts +0 -5
- package/dist/components/Colors/Colors.d.ts +0 -2
- package/dist/components/Colors/Colors.stories.d.ts +0 -5
- package/dist/components/Colors/Colors.styles.d.ts +0 -1
- package/dist/components/Colors/index.d.ts +0 -1
- package/dist/components/ControlWrapper/ControlWrapper.stories.d.ts +0 -6
- package/dist/components/DateInput/DateInput.stories.d.ts +0 -7
- package/dist/components/DatePicker/DatePicker.stories.d.ts +0 -7
- package/dist/components/Description/Description.stories.d.ts +0 -16
- package/dist/components/FileInput/FileInput.stories.d.ts +0 -7
- package/dist/components/FileItem/FileItem.stories.d.ts +0 -8
- package/dist/components/FiltersPane/FiltersPane.stories.d.ts +0 -31
- package/dist/components/Flag/Flag.stories.d.ts +0 -12
- package/dist/components/FlexibleTable/FlexibleTable.stories.d.ts +0 -19
- package/dist/components/Icon/Icon.stories.d.ts +0 -6
- package/dist/components/Icon/complexIcons/icons.d.ts +0 -10
- package/dist/components/Icon/complexIcons/index.d.ts +0 -1
- package/dist/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.d.ts +0 -6
- package/dist/components/Icon/components/ComplexIconBoilerplate/index.d.ts +0 -1
- package/dist/components/Icon/components/IconBolerplate/IconBoilerplate.d.ts +0 -6
- package/dist/components/Icon/components/IconBolerplate/index.d.ts +0 -1
- package/dist/components/Icon/components/index.d.ts +0 -2
- package/dist/components/Icon/helpers.d.ts +0 -6
- package/dist/components/Icon/icons-list.d.ts +0 -1
- package/dist/components/IconButton/IconButton.stories.d.ts +0 -6
- package/dist/components/IncrementInput/IncrementInput.stories.d.ts +0 -6
- package/dist/components/Input/Input.stories.d.ts +0 -25
- package/dist/components/List/List.stories.d.ts +0 -5
- package/dist/components/Modal/Modal.stories.d.ts +0 -29
- package/dist/components/MoreMenu/MoreMenu.stories.d.ts +0 -6
- package/dist/components/MultiSelect/MultiSelect.stories.d.ts +0 -13
- package/dist/components/NewMoreMenu/NewMoreMenu.stories.d.ts +0 -12
- package/dist/components/Notification/Notification.stories.d.ts +0 -8
- package/dist/components/NumberInput/NumberInput.stories.d.ts +0 -7
- package/dist/components/PhoneInput/PhoneInput.stories.d.ts +0 -28
- package/dist/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.d.ts +0 -5
- package/dist/components/RadioButton/RadioButton.stories.d.ts +0 -7
- package/dist/components/SearchInput/SearchInput.stories.d.ts +0 -7
- package/dist/components/Select/CustomSelect.stories.d.ts +0 -11
- package/dist/components/Select/MultiSelect.stories.d.ts +0 -15
- package/dist/components/Select/Select.stories.d.ts +0 -15
- package/dist/components/Selector/Selector.stories.d.ts +0 -7
- package/dist/components/Skeleton/Skeleton.stories.d.ts +0 -6
- package/dist/components/SmartInput/SmartInput.stories.d.ts +0 -18
- package/dist/components/Status/Status.stories.d.ts +0 -6
- package/dist/components/Switch/Switch.stories.d.ts +0 -16
- package/dist/components/TextArea/TextArea.stories.d.ts +0 -17
- package/dist/components/TextButton/TextButton.stories.d.ts +0 -6
- package/dist/components/TextWithInfo/TextWithInfo.stories.d.ts +0 -12
- package/dist/components/TextWithTooltip/TextWithTooltip.stories.d.ts +0 -24
- package/dist/components/ThemedPreloader/ThemedPreloader.stories.d.ts +0 -17
- package/dist/components/Toaster/Toaster.stories.d.ts +0 -5
- package/dist/components/Tooltip/Tooltip.stories.d.ts +0 -5
- package/dist/components/WithMessages/WithMessages.stories.d.ts +0 -7
- package/dist/components/WithPopup/WithPopup.stories.d.ts +0 -16
- package/dist/components/WithTooltip/WithTooltip.stories.d.ts +0 -6
- package/dist/style.css +0 -820
- package/dist/theme/create-themed-styles.d.ts +0 -2
- package/dist/theme/true-jss/ThemedStylesManager.d.ts +0 -18
- package/dist/theme/true-jss/TweakStylesManager.d.ts +0 -34
- package/dist/theme/true-jss/index.d.ts +0 -2
- package/dist/theme/true-jss/jss-context.d.ts +0 -9
- package/src/components/Colors/Colors.styles.ts +0 -36
- package/src/components/Colors/Colors.tsx +0 -26
- package/src/components/Colors/index.ts +0 -1
- package/src/components/Flag/augment.d.ts +0 -1
- package/src/components/Flag/customFlags/augment.d.ts +0 -1
- package/src/components/Icon/complexIcons/augment.d.ts +0 -1
- package/src/components/Icon/complexIcons/icons.ts +0 -19
- package/src/components/Icon/complexIcons/index.ts +0 -1
- package/src/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.tsx +0 -16
- package/src/components/Icon/components/ComplexIconBoilerplate/index.ts +0 -1
- package/src/components/Icon/components/IconBolerplate/IconBoilerplate.tsx +0 -43
- package/src/components/Icon/components/IconBolerplate/index.ts +0 -1
- package/src/components/Icon/components/index.ts +0 -2
- package/src/components/Icon/helpers.tsx +0 -9
- package/src/components/Icon/icons-list.ts +0 -855
- package/src/theme/create-themed-styles.ts +0 -78
- package/src/theme/true-jss/ThemedStylesManager.ts +0 -92
- package/src/theme/true-jss/TweakStylesManager.ts +0 -157
- package/src/theme/true-jss/index.ts +0 -2
- package/src/theme/true-jss/jss-context.tsx +0 -34
- package/src/vite-env.d.ts +0 -1
- /package/src/components/Icon/{complexIcons/avatarGreen.svg → icons/avatar.svg} +0 -0
- /package/src/components/Icon/{complexIcons/fileExcel.svg → icons/file-excel.svg} +0 -0
- /package/src/components/Icon/{complexIcons/fileImage.svg → icons/file-image.svg} +0 -0
- /package/src/components/Icon/{complexIcons/fileOther.svg → icons/file-other.svg} +0 -0
- /package/src/components/Icon/{complexIcons/filePdf.svg → icons/file-pdf.svg} +0 -0
- /package/src/components/Icon/{complexIcons/fileWord.svg → icons/file-word.svg} +0 -0
- /package/src/components/Icon/{complexIcons/fileXml.svg → icons/file-xml.svg} +0 -0
- /package/src/components/Icon/{complexIcons/fileZip.svg → icons/file-zip.svg} +0 -0
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import { debounce } from 'ts-debounce';
|
|
4
|
-
import {
|
|
5
|
-
|
|
4
|
+
import {
|
|
5
|
+
addDataTestId,
|
|
6
|
+
getTestId,
|
|
7
|
+
isReactNodeNotEmpty,
|
|
8
|
+
addDataAttributes,
|
|
9
|
+
isArrayNotEmpty,
|
|
10
|
+
isNotEmpty,
|
|
11
|
+
} from '@true-engineering/true-react-platform-helpers';
|
|
6
12
|
import { useIsMounted, useTweakStyles } from '../../../../hooks';
|
|
7
13
|
import { ICommonProps } from '../../../../types';
|
|
8
14
|
import { Button } from '../../../Button';
|
|
@@ -227,7 +233,7 @@ export function FilterSelect<Value>({
|
|
|
227
233
|
}, []);
|
|
228
234
|
|
|
229
235
|
return (
|
|
230
|
-
<div className={classes.root} {...addDataAttributes(data)}>
|
|
236
|
+
<div className={classes.root} {...addDataAttributes(data, testId)}>
|
|
231
237
|
{isSearchEnabled && (
|
|
232
238
|
<div className={classes.dropdownInput}>
|
|
233
239
|
<SearchInput
|
|
@@ -235,7 +241,7 @@ export function FilterSelect<Value>({
|
|
|
235
241
|
placeholder={translates.searchPlaceholder}
|
|
236
242
|
onChange={handleOnChange}
|
|
237
243
|
tweakStyles={tweakSearchInputStyles}
|
|
238
|
-
testId={testId
|
|
244
|
+
testId={getTestId(testId, 'search')}
|
|
239
245
|
shouldFocusOnMount
|
|
240
246
|
/>
|
|
241
247
|
</div>
|
|
@@ -243,19 +249,17 @@ export function FilterSelect<Value>({
|
|
|
243
249
|
|
|
244
250
|
{!isLoading && (
|
|
245
251
|
<>
|
|
246
|
-
{allOptions
|
|
252
|
+
{isArrayNotEmpty(allOptions) && (
|
|
247
253
|
<div
|
|
248
|
-
className={clsx(classes.list,
|
|
249
|
-
|
|
254
|
+
className={clsx(classes.list, { [classes.withClearButton]: hasClearButton })}
|
|
255
|
+
{...addDataTestId(testId, 'list')}
|
|
250
256
|
>
|
|
251
|
-
{isGroupingEnabled && value
|
|
257
|
+
{isGroupingEnabled && isNotEmpty(value) && (
|
|
252
258
|
<>
|
|
253
259
|
<div
|
|
254
|
-
className={clsx(
|
|
255
|
-
classes.
|
|
256
|
-
|
|
257
|
-
!isSearchEnabled && classes.withoutTopGap,
|
|
258
|
-
)}
|
|
260
|
+
className={clsx(classes.label, classes.labelChosen, {
|
|
261
|
+
[classes.withoutTopGap]: !isSearchEnabled,
|
|
262
|
+
})}
|
|
259
263
|
>
|
|
260
264
|
{translates.chosen}
|
|
261
265
|
</div>
|
|
@@ -269,7 +273,7 @@ export function FilterSelect<Value>({
|
|
|
269
273
|
</>
|
|
270
274
|
)}
|
|
271
275
|
{allOptions.map((item, index) => {
|
|
272
|
-
const isActive = value
|
|
276
|
+
const isActive = isNotEmpty(value) && getValueId(value) === getValueId(item);
|
|
273
277
|
if (isGroupingEnabled && isActive) {
|
|
274
278
|
return null;
|
|
275
279
|
}
|
|
@@ -287,8 +291,7 @@ export function FilterSelect<Value>({
|
|
|
287
291
|
}
|
|
288
292
|
onClick={() => handleChange(item)}
|
|
289
293
|
>
|
|
290
|
-
{
|
|
291
|
-
<div className={classes.option} data-option={id}>
|
|
294
|
+
<div className={classes.option} {...addDataAttributes({ id, option: id })}>
|
|
292
295
|
{view}
|
|
293
296
|
</div>
|
|
294
297
|
{isActive && (
|
|
@@ -320,17 +323,13 @@ export function FilterSelect<Value>({
|
|
|
320
323
|
)}
|
|
321
324
|
|
|
322
325
|
{/* Nothing found */}
|
|
323
|
-
{allOptions
|
|
326
|
+
{!isArrayNotEmpty(allOptions) && (
|
|
324
327
|
<div className={classes.nothingFound}>{translates.nothingFound}</div>
|
|
325
328
|
)}
|
|
326
329
|
|
|
327
330
|
{/* Controls and footer */}
|
|
328
331
|
{(hasClearButton || hasFooter) && (
|
|
329
|
-
<div
|
|
330
|
-
className={clsx(classes.panel, {
|
|
331
|
-
[classes.panelWithFooter]: hasFooter,
|
|
332
|
-
})}
|
|
333
|
-
>
|
|
332
|
+
<div className={clsx(classes.panel, { [classes.panelWithFooter]: hasFooter })}>
|
|
334
333
|
{hasFooter && <div className={classes.footer}>{footer}</div>}
|
|
335
334
|
|
|
336
335
|
{hasClearButton && (
|
|
@@ -339,7 +338,7 @@ export function FilterSelect<Value>({
|
|
|
339
338
|
onClick={handleClear}
|
|
340
339
|
size="s"
|
|
341
340
|
view="text"
|
|
342
|
-
testId={testId
|
|
341
|
+
testId={getTestId(testId, 'clear-button')}
|
|
343
342
|
tweakStyles={tweakClearButtonStyles}
|
|
344
343
|
>
|
|
345
344
|
{translates.clear}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
1
|
+
import { ReactNode, useMemo } from 'react';
|
|
2
2
|
import { format } from 'date-fns';
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
isArrayNotEmpty,
|
|
5
|
+
isNotEmpty,
|
|
6
|
+
isObject,
|
|
7
|
+
} from '@true-engineering/true-react-platform-helpers';
|
|
8
|
+
import { ITweakStylesProps } from '../../../../types';
|
|
5
9
|
import { IMultiSelectListValues } from '../../../MultiSelectList';
|
|
6
10
|
import { DEFAULT_DATE_FORMAT } from '../../constants';
|
|
7
|
-
import {
|
|
8
|
-
import { IDateRangeConfigItem,
|
|
11
|
+
import { getLocale } from '../../helpers';
|
|
12
|
+
import { IDateRangeConfigItem, IPeriod } from '../../types';
|
|
9
13
|
import type { IFilterWrapperProps } from '../FilterWrapper';
|
|
10
14
|
import { IFilterValueViewStyles, useStyles } from './FilterValueView.styles';
|
|
11
15
|
|
|
12
16
|
export interface IFilterValueView<Values extends Record<string, unknown>, Key extends keyof Values>
|
|
13
|
-
extends
|
|
14
|
-
|
|
17
|
+
extends Pick<IFilterWrapperProps<Values, Key>, 'value' | 'filter' | 'localeKey' | 'locale'>,
|
|
18
|
+
ITweakStylesProps<IFilterValueViewStyles> {
|
|
19
|
+
value: Values[Key];
|
|
20
|
+
}
|
|
15
21
|
|
|
16
22
|
export function FilterValueView<Values extends Record<string, unknown>, Key extends keyof Values>({
|
|
17
23
|
value,
|
|
@@ -19,8 +25,8 @@ export function FilterValueView<Values extends Record<string, unknown>, Key exte
|
|
|
19
25
|
locale,
|
|
20
26
|
localeKey,
|
|
21
27
|
tweakStyles,
|
|
22
|
-
}: IFilterValueView<Values, Key>):
|
|
23
|
-
const classes = useStyles({
|
|
28
|
+
}: IFilterValueView<Values, Key>): ReactNode {
|
|
29
|
+
const classes = useStyles({ tweakStyles });
|
|
24
30
|
|
|
25
31
|
const translatesLocaleKey = filter.localeKey ?? localeKey;
|
|
26
32
|
const translates = useMemo(
|
|
@@ -28,36 +34,26 @@ export function FilterValueView<Values extends Record<string, unknown>, Key exte
|
|
|
28
34
|
[translatesLocaleKey, locale, filter.locale],
|
|
29
35
|
);
|
|
30
36
|
|
|
31
|
-
if (isEmpty(value)) {
|
|
32
|
-
return <></>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
37
|
if (isNotEmpty(filter.getSelectedValueView)) {
|
|
36
38
|
return <span className={classes.text}>{filter.getSelectedValueView(value)}</span>;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
const isMultiple = filter.type === 'custom' && filter.valueViewType === 'multiple';
|
|
40
|
-
const isRange = filter.type === 'custom' && filter.valueViewType === 'range';
|
|
41
|
-
const isDate = filter.type === 'dateRange' || filter.type === 'dateRangeWithoutPeriod';
|
|
42
|
-
|
|
43
41
|
const displayValue = (v: unknown): string => {
|
|
44
42
|
if (!isNotEmpty(v)) {
|
|
45
43
|
return '';
|
|
46
44
|
}
|
|
47
45
|
|
|
48
46
|
if (v instanceof Date) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
(filter as IDateRangeConfigItem<IFilterWithDatesValue>).dateFormat || DEFAULT_DATE_FORMAT,
|
|
52
|
-
);
|
|
47
|
+
const { dateFormat = DEFAULT_DATE_FORMAT } = filter as IDateRangeConfigItem<unknown>;
|
|
48
|
+
return format(v, dateFormat);
|
|
53
49
|
}
|
|
54
50
|
|
|
55
|
-
if (
|
|
56
|
-
return String(v
|
|
51
|
+
if (!isObject(v)) {
|
|
52
|
+
return String(v);
|
|
57
53
|
}
|
|
58
54
|
|
|
59
|
-
if (
|
|
60
|
-
return String(v);
|
|
55
|
+
if ('value' in v && isNotEmpty(v.value)) {
|
|
56
|
+
return String(v.value);
|
|
61
57
|
}
|
|
62
58
|
|
|
63
59
|
console.warn(
|
|
@@ -69,99 +65,72 @@ export function FilterValueView<Values extends Record<string, unknown>, Key exte
|
|
|
69
65
|
};
|
|
70
66
|
|
|
71
67
|
if (filter.type === 'select') {
|
|
72
|
-
const getView = filter.getValueView ??
|
|
68
|
+
const getView = filter.getValueView ?? displayValue;
|
|
73
69
|
return <span className={classes.text}>{getView(value)}</span>;
|
|
74
70
|
}
|
|
75
71
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
+
const getArrayView = (values: unknown, getView: (_: any) => ReactNode = displayValue) => {
|
|
74
|
+
if (!Array.isArray(values) || !isArrayNotEmpty(values)) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
80
77
|
|
|
78
|
+
const [first, ...rest] = values;
|
|
81
79
|
return (
|
|
82
80
|
<>
|
|
83
|
-
{
|
|
84
|
-
|
|
85
|
-
<span className={classes.text}>{getView(include[0])}</span>
|
|
86
|
-
<span className={classes.count}>
|
|
87
|
-
{include.length > 1 && ` (+${include.length - 1})`}
|
|
88
|
-
</span>
|
|
89
|
-
</>
|
|
90
|
-
)}
|
|
81
|
+
<span className={classes.text}>{getView(first)}</span>
|
|
82
|
+
{isArrayNotEmpty(rest) && <span className={classes.count}> (+{rest.length})</span>}
|
|
91
83
|
</>
|
|
92
84
|
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (filter.type === 'interval') {
|
|
96
|
-
const intervalValue = value as unknown as number[];
|
|
97
|
-
const intervalValueFrom = intervalValue[0];
|
|
98
|
-
const intervalValueTo = intervalValue[1];
|
|
85
|
+
};
|
|
99
86
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (intervalValueTo !== undefined) {
|
|
105
|
-
intervals.push(`${translates.to.toLowerCase()} ${String(intervalValueTo)}`);
|
|
106
|
-
}
|
|
87
|
+
if (filter.type === 'multiSelect') {
|
|
88
|
+
const { include } = value as Partial<IMultiSelectListValues<unknown>>;
|
|
89
|
+
return getArrayView(include, filter.getValueView);
|
|
90
|
+
}
|
|
107
91
|
|
|
108
|
-
|
|
92
|
+
const isMultiple = filter.type === 'custom' && filter.valueViewType === 'multiple';
|
|
93
|
+
if (isMultiple) {
|
|
94
|
+
return getArrayView(value, filter.getSelectedValue);
|
|
109
95
|
}
|
|
110
96
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
const hasTo = to !== undefined && to !== null;
|
|
97
|
+
const isDateRange = filter.type === 'dateRange' || filter.type === 'dateRangeWithoutPeriod';
|
|
98
|
+
if (isDateRange) {
|
|
99
|
+
const { from, to, periodType = 'CUSTOM' } = value as Partial<IPeriod>;
|
|
115
100
|
|
|
116
101
|
if (periodType !== 'CUSTOM') {
|
|
117
|
-
return <span className={classes.text}>{
|
|
102
|
+
return <span className={classes.text}>{translates.periods[periodType] ?? periodType}</span>;
|
|
118
103
|
}
|
|
119
104
|
|
|
105
|
+
const hasFrom = isNotEmpty(from);
|
|
106
|
+
const hasTo = isNotEmpty(to);
|
|
120
107
|
const range: string[] = [];
|
|
121
|
-
if (hasFrom) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
range.push('—');
|
|
130
|
-
} else {
|
|
131
|
-
range.push(translates.to.toLowerCase());
|
|
132
|
-
}
|
|
133
|
-
range.push(displayValue(to));
|
|
108
|
+
if (hasFrom && hasTo) {
|
|
109
|
+
range.push(displayValue(from), '—', displayValue(to));
|
|
110
|
+
} else if (hasFrom) {
|
|
111
|
+
range.push(translates.from.toLowerCase(), displayValue(from));
|
|
112
|
+
} else if (hasTo) {
|
|
113
|
+
range.push(translates.to.toLowerCase(), displayValue(to));
|
|
114
|
+
} else {
|
|
115
|
+
return null;
|
|
134
116
|
}
|
|
135
117
|
|
|
136
118
|
return <span className={classes.text}>{range.join(' ')}</span>;
|
|
137
119
|
}
|
|
138
120
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
{Array.isArray(value) && value.length > 0 && (
|
|
145
|
-
<>
|
|
146
|
-
<span className={classes.text}>{convertValue(value[0])}</span>
|
|
147
|
-
<span className={classes.count}>{value.length > 1 && ` (+${value.length - 1})`}</span>
|
|
148
|
-
</>
|
|
149
|
-
)}
|
|
150
|
-
</>
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
if (isRange && Array.isArray(value)) {
|
|
155
|
-
const rangeValue = value as unknown as number[];
|
|
156
|
-
const rangeValueFrom = rangeValue[0];
|
|
157
|
-
const rangeValueTo = rangeValue[1];
|
|
121
|
+
const isRange = filter.type === 'custom' && filter.valueViewType === 'range';
|
|
122
|
+
if (isRange || filter.type === 'interval') {
|
|
123
|
+
if (!Array.isArray(value)) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
158
126
|
|
|
127
|
+
const [valueFrom, valueTo] = value;
|
|
159
128
|
const range: string[] = [];
|
|
160
|
-
if (
|
|
161
|
-
range.push(
|
|
129
|
+
if (isNotEmpty(valueFrom)) {
|
|
130
|
+
range.push(translates.from.toLowerCase(), displayValue(valueFrom));
|
|
162
131
|
}
|
|
163
|
-
if (
|
|
164
|
-
range.push(
|
|
132
|
+
if (isNotEmpty(valueTo)) {
|
|
133
|
+
range.push(translates.to.toLowerCase(), displayValue(valueTo));
|
|
165
134
|
}
|
|
166
135
|
|
|
167
136
|
return <span className={classes.text}>{range.join(' ')}</span>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import cloneDeep from 'lodash-es/cloneDeep';
|
|
2
1
|
import { colors, createThemedStyles, ITweakStyles } from '../../../../theme';
|
|
3
2
|
import { IButtonStyles } from '../../../Button';
|
|
4
3
|
import { IDatePickerStyles } from '../../../DatePicker';
|
|
@@ -6,7 +5,7 @@ import { innerTextButtonStyles } from '../../FiltersPane.styles';
|
|
|
6
5
|
|
|
7
6
|
export const useStyles = createThemedStyles('FilterWithDates', {
|
|
8
7
|
root: {
|
|
9
|
-
width:
|
|
8
|
+
width: 312,
|
|
10
9
|
background: colors.CLASSIC_WHITE,
|
|
11
10
|
position: 'relative',
|
|
12
11
|
zIndex: 20,
|
|
@@ -29,35 +28,12 @@ export const useStyles = createThemedStyles('FilterWithDates', {
|
|
|
29
28
|
justifyContent: 'space-between',
|
|
30
29
|
padding: 8,
|
|
31
30
|
},
|
|
32
|
-
|
|
33
|
-
datepicker: {},
|
|
34
31
|
});
|
|
35
32
|
|
|
36
|
-
export const clearButtonStyles =
|
|
33
|
+
export const clearButtonStyles = structuredClone(innerTextButtonStyles);
|
|
37
34
|
|
|
38
35
|
export const backButtonStyles = innerTextButtonStyles;
|
|
39
36
|
|
|
40
|
-
const PICKER_TOP_MARGIN = 28;
|
|
41
|
-
const PICKER_WITH_BUTTONS_TOP_MARGIN = 60;
|
|
42
|
-
const START_PICKER_LEFT_MARGIN = -20;
|
|
43
|
-
const END_PICKER_LEFT_MARGIN = -170;
|
|
44
|
-
|
|
45
|
-
export const startDatePickerStyles: IDatePickerStyles = {
|
|
46
|
-
popper: { marginTop: PICKER_TOP_MARGIN, marginLeft: START_PICKER_LEFT_MARGIN },
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export const startDatePickerWithButtonStyles: IDatePickerStyles = {
|
|
50
|
-
popper: { marginTop: PICKER_WITH_BUTTONS_TOP_MARGIN, marginLeft: START_PICKER_LEFT_MARGIN },
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export const endDatePickerStyles: IDatePickerStyles = {
|
|
54
|
-
popper: { marginTop: PICKER_TOP_MARGIN, marginLeft: END_PICKER_LEFT_MARGIN },
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export const endDatePickerWithButtonStyles: IDatePickerStyles = {
|
|
58
|
-
popper: { marginTop: PICKER_WITH_BUTTONS_TOP_MARGIN, marginLeft: END_PICKER_LEFT_MARGIN },
|
|
59
|
-
};
|
|
60
|
-
|
|
61
37
|
export type IFilterWithDatesStyles = ITweakStyles<
|
|
62
38
|
typeof useStyles,
|
|
63
39
|
{
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { FC, useMemo, useRef
|
|
1
|
+
import { FC, useMemo, useRef } from 'react';
|
|
2
2
|
import { isAfter, isBefore } from 'date-fns';
|
|
3
|
-
import enUS from 'date-fns/locale
|
|
4
|
-
import
|
|
5
|
-
import { getTestId, isNotEmpty } from '@true-engineering/true-react-platform-helpers';
|
|
6
|
-
import { addDataAttributes } from '../../../../helpers';
|
|
3
|
+
import { enUS, ru } from 'date-fns/locale';
|
|
4
|
+
import { getTestId, addDataAttributes } from '@true-engineering/true-react-platform-helpers';
|
|
7
5
|
import { useTweakStyles } from '../../../../hooks';
|
|
8
6
|
import { ICommonProps } from '../../../../types';
|
|
9
7
|
import { Button } from '../../../Button';
|
|
@@ -19,11 +17,7 @@ import {
|
|
|
19
17
|
import {
|
|
20
18
|
backButtonStyles,
|
|
21
19
|
clearButtonStyles,
|
|
22
|
-
endDatePickerStyles,
|
|
23
|
-
endDatePickerWithButtonStyles,
|
|
24
20
|
IFilterWithDatesStyles,
|
|
25
|
-
startDatePickerStyles,
|
|
26
|
-
startDatePickerWithButtonStyles,
|
|
27
21
|
useStyles,
|
|
28
22
|
} from './FilterWithDates.styles';
|
|
29
23
|
|
|
@@ -69,26 +63,19 @@ export const FilterWithDates: FC<IFilterWithDatesProps> = ({
|
|
|
69
63
|
currentComponentName: 'FilterWithDates',
|
|
70
64
|
});
|
|
71
65
|
|
|
72
|
-
const hasButtonsRow = isClearable || isNotEmpty(onStartBtnSubmit);
|
|
73
|
-
|
|
74
66
|
const tweakStartDatePickerStyles = useTweakStyles({
|
|
75
|
-
innerStyles: hasButtonsRow ? startDatePickerWithButtonStyles : startDatePickerStyles,
|
|
76
67
|
tweakStyles,
|
|
77
68
|
className: 'tweakStartDatePicker',
|
|
78
69
|
currentComponentName: 'FilterWithDates',
|
|
79
70
|
});
|
|
80
71
|
|
|
81
72
|
const tweakEndDatePickerStyles = useTweakStyles({
|
|
82
|
-
innerStyles: hasButtonsRow ? endDatePickerWithButtonStyles : endDatePickerStyles,
|
|
83
73
|
tweakStyles,
|
|
84
74
|
className: 'tweakEndDatePicker',
|
|
85
75
|
currentComponentName: 'FilterWithDates',
|
|
86
76
|
});
|
|
87
77
|
|
|
88
|
-
const
|
|
89
|
-
const [isOpenTo, setOpenTo] = useState(false);
|
|
90
|
-
|
|
91
|
-
const ref = useRef<HTMLDivElement>(null);
|
|
78
|
+
const popperTargetRef = useRef<HTMLDivElement>(null);
|
|
92
79
|
|
|
93
80
|
const dateLocale = localeKey === 'ru' ? ru : enUS;
|
|
94
81
|
|
|
@@ -97,17 +84,6 @@ export const FilterWithDates: FC<IFilterWithDatesProps> = ({
|
|
|
97
84
|
const handleClear = () => {
|
|
98
85
|
onEndBtnSubmit();
|
|
99
86
|
};
|
|
100
|
-
const isOpenCalendar = isOpenFrom || isOpenTo;
|
|
101
|
-
|
|
102
|
-
const handleFromSelected = (val: Date | null) => {
|
|
103
|
-
onChange({ from: val, to: value?.to ?? null });
|
|
104
|
-
setOpenFrom(false);
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
const handleToSelected = (val: Date | null) => {
|
|
108
|
-
onChange({ from: value?.from ?? null, to: val });
|
|
109
|
-
setOpenTo(false);
|
|
110
|
-
};
|
|
111
87
|
|
|
112
88
|
const handleChangeFrom = (val: Date | null) => {
|
|
113
89
|
// на самом деле ситуации когда надо переворачивать даты, произойти не может
|
|
@@ -128,12 +104,12 @@ export const FilterWithDates: FC<IFilterWithDatesProps> = ({
|
|
|
128
104
|
};
|
|
129
105
|
|
|
130
106
|
return (
|
|
131
|
-
<div className={classes.root} {...addDataAttributes(data)}>
|
|
107
|
+
<div className={classes.root} ref={popperTargetRef} {...addDataAttributes(data, testId)}>
|
|
132
108
|
<div className={classes.container}>
|
|
133
109
|
<div className={classes.containerItem}>
|
|
134
110
|
<DatePicker
|
|
135
111
|
selectedDate={value?.from}
|
|
136
|
-
maxDate={value?.to}
|
|
112
|
+
maxDate={value?.to ?? undefined}
|
|
137
113
|
label={translates.from}
|
|
138
114
|
months={translates.months}
|
|
139
115
|
locale={dateLocale}
|
|
@@ -141,6 +117,7 @@ export const FilterWithDates: FC<IFilterWithDatesProps> = ({
|
|
|
141
117
|
tweakStyles={tweakStartDatePickerStyles}
|
|
142
118
|
testId={getTestId(testId, 'from')}
|
|
143
119
|
isClearable={isClearable}
|
|
120
|
+
popperProps={{ elements: { reference: popperTargetRef?.current } }}
|
|
144
121
|
{...startPickerProps}
|
|
145
122
|
/>
|
|
146
123
|
</div>
|
|
@@ -149,12 +126,13 @@ export const FilterWithDates: FC<IFilterWithDatesProps> = ({
|
|
|
149
126
|
selectedDate={value?.to}
|
|
150
127
|
label={translates.to}
|
|
151
128
|
months={translates.months}
|
|
152
|
-
minDate={value?.from}
|
|
129
|
+
minDate={value?.from ?? undefined}
|
|
153
130
|
locale={dateLocale}
|
|
154
131
|
onChangeDate={handleChangeTo}
|
|
155
132
|
tweakStyles={tweakEndDatePickerStyles}
|
|
156
133
|
testId={getTestId(testId, 'to')}
|
|
157
134
|
isClearable={isClearable}
|
|
135
|
+
popperProps={{ elements: { reference: popperTargetRef?.current } }}
|
|
158
136
|
{...endPickerProps}
|
|
159
137
|
/>
|
|
160
138
|
</div>
|
|
@@ -190,19 +168,6 @@ export const FilterWithDates: FC<IFilterWithDatesProps> = ({
|
|
|
190
168
|
</div>
|
|
191
169
|
)}
|
|
192
170
|
</div>
|
|
193
|
-
|
|
194
|
-
{isOpenCalendar && (
|
|
195
|
-
<div ref={ref} className={classes.datepicker}>
|
|
196
|
-
<DatePicker
|
|
197
|
-
selectedDate={(isOpenFrom ? value?.from : value?.to) ?? null}
|
|
198
|
-
label=""
|
|
199
|
-
locale={dateLocale}
|
|
200
|
-
months={translates.months}
|
|
201
|
-
isInline
|
|
202
|
-
onChangeDate={isOpenFrom ? handleFromSelected : handleToSelected}
|
|
203
|
-
/>
|
|
204
|
-
</div>
|
|
205
|
-
)}
|
|
206
171
|
</div>
|
|
207
172
|
);
|
|
208
173
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
|
+
import { getTestId } from '@true-engineering/true-react-platform-helpers';
|
|
2
3
|
import { useOnClickOutside, useTweakStyles } from '../../../../hooks';
|
|
3
4
|
import { ICommonProps } from '../../../../types';
|
|
4
5
|
import { PERIODS, PERIODS_GETTERS } from '../../constants';
|
|
@@ -85,7 +86,7 @@ export const FilterWithPeriod: FC<IFilterWithPeriodProps> = ({
|
|
|
85
86
|
if (onClose !== undefined) {
|
|
86
87
|
onClose();
|
|
87
88
|
}
|
|
88
|
-
onChange(
|
|
89
|
+
onChange(p);
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
setIsPeriodPickerShown(false);
|
|
@@ -146,7 +147,7 @@ export const FilterWithPeriod: FC<IFilterWithPeriodProps> = ({
|
|
|
146
147
|
locale={translates}
|
|
147
148
|
tweakStyles={tweakSelectStyles}
|
|
148
149
|
getValueView={getPeriodTranslate}
|
|
149
|
-
testId={testId
|
|
150
|
+
testId={getTestId(testId, 'select')}
|
|
150
151
|
/>
|
|
151
152
|
</div>
|
|
152
153
|
)}
|
|
@@ -168,7 +169,7 @@ export const FilterWithPeriod: FC<IFilterWithPeriodProps> = ({
|
|
|
168
169
|
onChange={handleCustomDateChange}
|
|
169
170
|
localeKey={localeKey}
|
|
170
171
|
locale={translates}
|
|
171
|
-
testId={testId
|
|
172
|
+
testId={getTestId(testId, 'dates')}
|
|
172
173
|
/>
|
|
173
174
|
</div>
|
|
174
175
|
)}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { MouseEventHandler } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { useTweakStyles } from '../../../../hooks';
|
|
3
|
+
import { addDataAttributes } from '@true-engineering/true-react-platform-helpers';
|
|
4
|
+
import { useMixedStyles, useTweakStyles } from '../../../../hooks';
|
|
6
5
|
import { ICommonProps } from '../../../../types';
|
|
7
6
|
import { Icon } from '../../../Icon';
|
|
8
7
|
import { WithPopup } from '../../../WithPopup';
|
|
@@ -32,9 +31,10 @@ export function FilterWrapper<Values extends Record<string, unknown>, Key extend
|
|
|
32
31
|
localeKey,
|
|
33
32
|
data,
|
|
34
33
|
testId,
|
|
35
|
-
tweakStyles,
|
|
34
|
+
tweakStyles: baseTweakStyles,
|
|
36
35
|
onChange,
|
|
37
36
|
}: IFilterWrapperProps<Values, Key>): JSX.Element {
|
|
37
|
+
const tweakStyles = useMixedStyles(baseTweakStyles, filter.tweakWrapperStyles);
|
|
38
38
|
const classes = useStyles({ theme: tweakStyles });
|
|
39
39
|
|
|
40
40
|
const tweakWithPopupStyles = useTweakStyles({
|
|
@@ -93,8 +93,7 @@ export function FilterWrapper<Values extends Record<string, unknown>, Key extend
|
|
|
93
93
|
[classes.boolean]: isBoolean,
|
|
94
94
|
[classes.disabled]: isDisabled,
|
|
95
95
|
})}
|
|
96
|
-
{...
|
|
97
|
-
{...addDataAttributes(data)}
|
|
96
|
+
{...addDataAttributes(data, testId)}
|
|
98
97
|
{...referenceProps}
|
|
99
98
|
>
|
|
100
99
|
<div
|
|
@@ -102,14 +101,13 @@ export function FilterWrapper<Values extends Record<string, unknown>, Key extend
|
|
|
102
101
|
className={clsx(classes.item, { [classes.booleanItem]: isBoolean })}
|
|
103
102
|
>
|
|
104
103
|
<div className={classes.name}>{filter.name}</div>
|
|
105
|
-
{!isBoolean &&
|
|
104
|
+
{!isBoolean && hasValue && (
|
|
106
105
|
<div className={classes.value}>
|
|
107
106
|
<FilterValueView
|
|
108
107
|
value={value}
|
|
109
108
|
filter={filter}
|
|
110
109
|
locale={locale}
|
|
111
110
|
localeKey={localeKey}
|
|
112
|
-
testId={getTestId(testId, 'value')}
|
|
113
111
|
tweakStyles={tweakFilterValueViewStyles}
|
|
114
112
|
/>
|
|
115
113
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNotEmpty, isObject } from '@true-engineering/true-react-platform-helpers';
|
|
2
2
|
|
|
3
|
-
export const isContentNotEmpty = (value:
|
|
3
|
+
export const isContentNotEmpty = <T>(value: T): value is NonNullable<T> => {
|
|
4
4
|
if (Array.isArray(value)) {
|
|
5
5
|
return value.some(isContentNotEmpty);
|
|
6
6
|
}
|