@steroidsjs/core 3.0.0-beta.9 → 3.0.0-beta.90
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 +23 -6
- package/actions/list.d.ts +71 -4
- package/actions/list.js +7 -9
- package/base/Enum.d.ts +3 -3
- package/components/ClientStorageComponent.d.ts +27 -1
- package/components/ClientStorageComponent.js +4 -3
- package/components/HttpComponent.d.ts +1 -0
- package/components/HttpComponent.js +4 -3
- package/components/LocaleComponent.d.ts +53 -6
- package/components/LocaleComponent.js +9 -8
- package/components/ResourceComponent.d.ts +88 -6
- package/components/ResourceComponent.js +11 -11
- package/components/UiComponent.d.ts +130 -1
- package/docs-autogen-result.json +30076 -0
- package/en.json +824 -0
- package/hooks/index.d.ts +7 -1
- package/hooks/index.js +13 -1
- package/hooks/useAbsolutePositioning.d.ts +56 -7
- package/hooks/useAbsolutePositioning.js +39 -131
- package/hooks/useAddressBar.d.ts +11 -0
- package/hooks/useApplication.d.ts +4 -1
- package/hooks/useApplication.js +19 -1
- package/hooks/useDataProvider.d.ts +29 -29
- package/hooks/useDataProvider.js +4 -5
- package/hooks/useDataSelect.d.ts +10 -3
- package/hooks/useDataSelect.js +40 -23
- package/hooks/useFetch.d.ts +5 -6
- package/hooks/useFetch.js +0 -3
- package/hooks/useFile.d.ts +51 -2
- package/hooks/useForm.d.ts +0 -1
- package/hooks/useForm.js +0 -1
- package/hooks/useList.d.ts +20 -5
- package/hooks/useList.js +64 -15
- package/hooks/useSaveCursorPosition.d.ts +6 -0
- package/hooks/useSaveCursorPosition.js +29 -0
- package/hooks/useTheme.d.ts +2 -0
- package/hooks/useTheme.js +8 -0
- package/index.d.ts +28 -15
- package/package.json +12 -7
- package/providers/ComponentsProvider.d.ts +8 -5
- package/providers/ThemeProvider.d.ts +14 -0
- package/providers/ThemeProvider.js +62 -0
- package/reducers/list.d.ts +1 -0
- package/reducers/list.js +4 -1
- package/reducers/router.d.ts +0 -1
- package/reducers/router.js +2 -2
- package/ui/content/Accordion/Accordion.d.ts +40 -15
- package/ui/content/Accordion/AccordionItem.d.ts +4 -3
- package/ui/content/Alert/Alert.d.ts +29 -10
- package/ui/content/Avatar/Avatar.d.ts +26 -24
- package/ui/content/Avatar/Avatar.js +1 -1
- package/ui/content/Avatar/AvatarGroup.d.ts +3 -3
- package/ui/content/Badge/Badge.d.ts +29 -16
- package/ui/content/Badge/Badge.js +1 -1
- package/ui/content/Calendar/Calendar.d.ts +19 -10
- package/ui/content/Calendar/Calendar.js +9 -2
- package/ui/content/CalendarSystem/CalendarSystem.d.ts +56 -0
- package/ui/content/CalendarSystem/CalendarSystem.js +106 -0
- package/ui/content/CalendarSystem/enums/CalendarType.d.ts +6 -0
- package/ui/content/CalendarSystem/enums/CalendarType.js +38 -0
- package/ui/content/CalendarSystem/enums/DateControlType.d.ts +10 -0
- package/ui/content/CalendarSystem/enums/DateControlType.js +42 -0
- package/ui/content/CalendarSystem/helpers/addEventIfMatchDate.d.ts +3 -0
- package/ui/content/CalendarSystem/helpers/addEventIfMatchDate.js +21 -0
- package/ui/content/CalendarSystem/hooks/useCalendarControls.d.ts +8 -0
- package/ui/content/CalendarSystem/hooks/useCalendarControls.js +47 -0
- package/ui/content/CalendarSystem/hooks/useDisplayDate.d.ts +6 -0
- package/ui/content/CalendarSystem/hooks/useDisplayDate.js +27 -0
- package/ui/content/CalendarSystem/hooks/useMonthCalendar.d.ts +16 -0
- package/ui/content/CalendarSystem/hooks/useMonthCalendar.js +87 -0
- package/ui/content/CalendarSystem/hooks/useWeekCalendar.d.ts +15 -0
- package/ui/content/CalendarSystem/hooks/useWeekCalendar.js +86 -0
- package/ui/content/CalendarSystem/index.d.ts +2 -0
- package/ui/{list/LayoutNames/demo/basic.js → content/CalendarSystem/index.js} +2 -7
- package/ui/content/CalendarSystem/utils/utils.d.ts +3 -0
- package/ui/content/CalendarSystem/utils/utils.js +29 -0
- package/ui/content/Card/Card.d.ts +75 -45
- package/ui/content/Card/Card.js +0 -5
- package/ui/content/Chart/Chart.d.ts +37 -0
- package/ui/content/Chart/Chart.js +19 -0
- package/ui/content/Chart/index.d.ts +2 -0
- package/ui/content/Chart/index.js +7 -0
- package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +68 -8
- package/ui/content/CopyToClipboard/CopyToClipboard.js +26 -59
- package/ui/content/Detail/Detail.d.ts +16 -11
- package/ui/content/Detail/DetailItem.d.ts +1 -1
- package/ui/content/DropDown/DropDown.d.ts +22 -10
- package/ui/content/DropDown/DropDown.js +15 -3
- package/ui/content/Icon/Icon.d.ts +13 -7
- package/ui/content/Icon/Icon.js +4 -1
- package/ui/content/Menu/Menu.d.ts +56 -0
- package/ui/content/Menu/Menu.js +23 -0
- package/ui/content/Menu/index.d.ts +2 -0
- package/ui/content/Menu/index.js +7 -0
- package/ui/content/Slider/Slider.d.ts +28 -0
- package/ui/content/Slider/Slider.js +19 -0
- package/ui/content/Slider/index.d.ts +2 -0
- package/ui/content/Slider/index.js +7 -0
- package/ui/content/index.d.ts +8 -1
- package/ui/content/index.js +16 -1
- package/ui/crud/Crud/Crud.d.ts +116 -4
- package/ui/crud/Crud/CrudContent.d.ts +1 -2
- package/ui/crud/Crud/utils.js +10 -14
- package/ui/crud/index.d.ts +0 -1
- package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +26 -6
- package/ui/form/AutoCompleteField/AutoCompleteField.js +17 -3
- package/ui/form/BlankField/BlankField.d.ts +19 -1
- package/ui/form/Button/Button.d.ts +19 -26
- package/ui/form/Button/Button.js +1 -10
- package/ui/form/CheckboxField/CheckboxField.d.ts +9 -8
- package/ui/form/CheckboxField/CheckboxField.js +36 -6
- package/ui/form/CheckboxListField/CheckboxListField.d.ts +23 -8
- package/ui/form/CheckboxListField/CheckboxListField.js +36 -8
- package/ui/form/DateField/DateField.d.ts +20 -15
- package/ui/form/DateField/DateField.js +7 -2
- package/ui/form/DateField/useDateInputState.js +4 -3
- package/ui/form/DateField/useDateRange.d.ts +2 -1
- package/ui/form/DateField/useDateRange.js +23 -0
- package/ui/form/DateField/useDateTime.js +3 -2
- package/ui/form/DateRangeField/DateRangeField.d.ts +12 -21
- package/ui/form/DateRangeField/DateRangeField.js +6 -3
- package/ui/form/DateTimeField/DateTimeField.d.ts +9 -15
- package/ui/form/DateTimeField/DateTimeField.js +6 -8
- package/ui/form/DateTimeRangeField/DateTimeRangeField.d.ts +7 -21
- package/ui/form/DateTimeRangeField/DateTimeRangeField.js +16 -3
- package/ui/form/DropDownField/DropDownField.d.ts +94 -23
- package/ui/form/DropDownField/DropDownField.js +113 -8
- package/ui/form/Field/Field.d.ts +3 -2
- package/ui/form/Field/fieldWrapper.d.ts +35 -14
- package/ui/form/Field/fieldWrapper.js +5 -5
- package/ui/form/FieldLayout/FieldLayout.d.ts +13 -20
- package/ui/form/FieldLayout/FieldLayout.js +1 -13
- package/ui/form/FieldList/FieldList.d.ts +11 -20
- package/ui/form/FieldList/FieldList.js +2 -3
- package/ui/form/FieldSet/FieldSet.d.ts +1 -1
- package/ui/form/FieldSet/FieldSet.js +2 -4
- package/ui/form/FileField/FileField.d.ts +54 -34
- package/ui/form/FileField/FileField.js +30 -10
- package/ui/form/Form/Form.d.ts +32 -40
- package/ui/form/Form/Form.js +26 -34
- package/ui/form/HtmlField/HtmlField.d.ts +2 -11
- package/ui/form/ImageField/ImageField.d.ts +15 -14
- package/ui/form/ImageField/ImageField.js +4 -0
- package/ui/form/InputField/InputField.d.ts +51 -50
- package/ui/form/InputField/InputField.js +57 -17
- package/ui/form/MaskField/MaskField.d.ts +10 -0
- package/ui/form/MaskField/MaskField.js +34 -0
- package/ui/form/MaskField/index.d.ts +2 -0
- package/ui/form/MaskField/index.js +7 -0
- package/ui/form/NavField/NavField.d.ts +6 -3
- package/ui/form/NumberField/NumberField.d.ts +15 -11
- package/ui/form/NumberField/NumberField.js +33 -10
- package/ui/form/NumberField/hooks/useInputTypeNumber.d.ts +10 -0
- package/ui/form/NumberField/hooks/useInputTypeNumber.js +45 -0
- package/ui/form/PasswordField/PasswordField.d.ts +20 -14
- package/ui/form/PasswordField/PasswordField.js +21 -11
- package/ui/form/RadioField/RadioField.d.ts +31 -0
- package/{hoc/file.js → ui/form/RadioField/RadioField.js} +21 -5
- package/ui/form/RadioField/index.d.ts +2 -0
- package/ui/form/RadioField/index.js +7 -0
- package/ui/form/RadioListField/RadioListField.d.ts +10 -9
- package/ui/form/RadioListField/RadioListField.js +32 -2
- package/ui/form/RateField/RateField.d.ts +11 -13
- package/ui/form/RateField/RateField.js +2 -1
- package/ui/form/RateField/demo/errors.js +1 -1
- package/ui/form/ReCaptchaField/ReCaptchaField.d.ts +66 -5
- package/ui/form/ReCaptchaField/ReCaptchaField.js +22 -1
- package/ui/form/SliderField/SliderField.d.ts +3 -12
- package/ui/form/SliderField/SliderField.js +1 -1
- package/ui/form/SwitcherField/SwitcherField.d.ts +21 -15
- package/ui/form/SwitcherField/SwitcherField.js +34 -4
- package/ui/form/SwitcherField/demo/errors.js +1 -1
- package/ui/form/TextField/TextField.d.ts +8 -27
- package/ui/form/TextField/TextField.js +10 -9
- package/ui/form/TimeField/TimeField.d.ts +2 -16
- package/ui/form/TimeField/TimeField.js +3 -2
- package/ui/form/TimeField/demo/errors.js +1 -1
- package/ui/form/TimeRangeField/TimeRangeField.d.ts +58 -0
- package/ui/form/TimeRangeField/TimeRangeField.js +85 -0
- package/ui/form/TimeRangeField/index.d.ts +2 -0
- package/ui/form/TimeRangeField/index.js +7 -0
- package/ui/form/index.d.ts +37 -1
- package/ui/form/index.js +37 -1
- package/ui/form/validate.js +3 -2
- package/ui/format/BooleanFormatter/BooleanFormatter.d.ts +13 -0
- package/ui/format/DateFormatter/DateFormatter.d.ts +11 -1
- package/ui/format/DateFormatter/DateFormatter.js +1 -1
- package/ui/format/DateTimeFormatter/DateTimeFormatter.d.ts +11 -1
- package/ui/format/DateTimeFormatter/DateTimeFormatter.js +4 -3
- package/ui/format/EnumFormatter/EnumFormatter.d.ts +10 -0
- package/ui/format/FileSize/FileSize.d.ts +8 -3
- package/ui/format/FileSize/FileSize.js +1 -1
- package/ui/format/Format/Format.d.ts +6 -0
- package/ui/format/MoneyFormatter/MoneyFormatter.d.ts +9 -1
- package/ui/format/MoneyFormatter/MoneyFormatter.js +3 -2
- package/ui/layout/Header/Header.d.ts +92 -9
- package/ui/layout/Header/Header.js +20 -1
- package/ui/layout/Loader/Loader.d.ts +15 -1
- package/ui/layout/Meta/Meta.js +3 -3
- package/ui/layout/Notifications/Notifications.d.ts +32 -1
- package/ui/layout/ProgressBar/ProgressBar.js +8 -4
- package/ui/layout/Sidebar/Sidebar.d.ts +82 -0
- package/ui/{list/ControlsColumn/demo/basic.js → layout/Sidebar/Sidebar.js} +21 -13
- package/ui/layout/Sidebar/index.d.ts +2 -0
- package/ui/layout/Sidebar/index.js +7 -0
- package/ui/layout/Skeleton/Skeleton.d.ts +25 -2
- package/ui/layout/Tooltip/Tooltip.d.ts +39 -12
- package/ui/layout/Tooltip/Tooltip.js +17 -46
- package/ui/layout/index.d.ts +2 -1
- package/ui/layout/index.js +3 -1
- package/ui/list/CheckboxColumn/CheckboxColumn.d.ts +3 -2
- package/ui/list/CheckboxColumn/CheckboxColumn.js +4 -1
- package/ui/list/ControlsColumn/ControlsColumn.d.ts +4 -3
- package/ui/list/Empty/Empty.d.ts +1 -10
- package/ui/list/Empty/Empty.js +2 -2
- package/ui/list/FlexGrid/FlexGrid.d.ts +85 -0
- package/ui/list/FlexGrid/FlexGrid.js +51 -0
- package/ui/list/FlexGrid/index.d.ts +2 -0
- package/ui/list/FlexGrid/index.js +7 -0
- package/ui/list/Grid/Grid.d.ts +69 -3
- package/ui/list/Grid/Grid.js +14 -4
- package/ui/list/List/List.d.ts +2 -0
- package/ui/list/List/List.js +1 -0
- package/ui/list/Pagination/Pagination.d.ts +18 -5
- package/ui/list/Pagination/Pagination.js +15 -7
- package/ui/list/PaginationSize/PaginationSize.d.ts +10 -12
- package/ui/list/PaginationSize/PaginationSize.js +10 -9
- package/ui/list/SearchForm/SearchForm.d.ts +3 -0
- package/ui/list/SearchForm/demo/basic.js +5 -2
- package/ui/list/Steps/Steps.d.ts +6 -3
- package/ui/list/Steps/Steps.js +11 -5
- package/ui/list/TreeTable/TreeTable.d.ts +39 -0
- package/ui/list/{Grid/demo/indexing.js → TreeTable/TreeTable.js} +30 -9
- package/ui/list/TreeTable/index.d.ts +2 -0
- package/ui/list/TreeTable/index.js +7 -0
- package/ui/modal/Modal/Modal.d.ts +5 -5
- package/ui/modal/Modal/Modal.js +1 -1
- package/ui/modal/ModalPortal/ModalPortal.d.ts +3 -0
- package/ui/modal/TwoFactorModal/TwoFactorModal.d.ts +10 -2
- package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +12 -2
- package/ui/nav/ButtonGroup/ButtonGroup.d.ts +44 -0
- package/ui/nav/ButtonGroup/ButtonGroup.js +59 -0
- package/ui/nav/ButtonGroup/index.d.ts +2 -0
- package/ui/nav/ButtonGroup/index.js +7 -0
- package/ui/nav/Controls/Controls.d.ts +3 -3
- package/ui/nav/Controls/Controls.js +6 -5
- package/ui/nav/Link/Link.d.ts +1 -0
- package/ui/nav/Link/Link.js +1 -1
- package/ui/nav/Nav/Nav.d.ts +13 -6
- package/ui/nav/Nav/Nav.js +29 -14
- package/ui/nav/Router/Router.d.ts +0 -10
- package/ui/nav/Router/Router.js +13 -77
- package/ui/nav/Router/helpers.d.ts +4 -0
- package/ui/nav/Router/helpers.js +81 -0
- package/ui/nav/Tree/Tree.d.ts +7 -2
- package/ui/nav/Tree/Tree.js +41 -18
- package/ui/nav/index.d.ts +2 -1
- package/ui/nav/index.js +3 -1
- package/ui/typography/Text/Text.d.ts +10 -8
- package/ui/typography/Title/Title.d.ts +10 -8
- package/utils/calculateComponentAbsolutePosition.d.ts +6 -0
- package/{ui/layout/Tooltip/calculate.js → utils/calculateComponentAbsolutePosition.js} +67 -58
- package/utils/calendar.d.ts +1 -1
- package/utils/calendar.js +17 -15
- package/utils/form.d.ts +0 -2
- package/utils/form.js +1 -12
- package/utils/list.d.ts +1 -0
- package/utils/list.js +5 -0
- package/components/ApiComponent.d.ts +0 -23
- package/components/ApiComponent.js +0 -75
- package/hoc/application.d.ts +0 -8
- package/hoc/application.js +0 -50
- package/hoc/bem.d.ts +0 -14
- package/hoc/bem.js +0 -42
- package/hoc/components.d.ts +0 -11
- package/hoc/components.js +0 -62
- package/hoc/connect.d.ts +0 -6
- package/hoc/connect.js +0 -3
- package/hoc/fetch.d.ts +0 -13
- package/hoc/fetch.js +0 -60
- package/hoc/file.d.ts +0 -28
- package/hoc/http.d.ts +0 -7
- package/hoc/http.js +0 -53
- package/hoc/index.d.ts +0 -8
- package/hoc/index.js +0 -20
- package/hoc/layout.d.ts +0 -30
- package/hoc/layout.js +0 -48
- package/ui/content/Card/demo/basic.d.ts +0 -8
- package/ui/content/Card/demo/basic.js +0 -39
- package/ui/content/Card/demo/border color.d.ts +0 -3
- package/ui/content/Card/demo/border color.js +0 -52
- package/ui/content/Card/demo/color.d.ts +0 -3
- package/ui/content/Card/demo/color.js +0 -52
- package/ui/content/Card/demo/header.d.ts +0 -3
- package/ui/content/Card/demo/header.js +0 -47
- package/ui/content/Card/demo/hover.d.ts +0 -3
- package/ui/content/Card/demo/hover.js +0 -42
- package/ui/content/Card/demo/link.d.ts +0 -3
- package/ui/content/Card/demo/link.js +0 -43
- package/ui/content/Card/demo/orientation.d.ts +0 -3
- package/ui/content/Card/demo/orientation.js +0 -46
- package/ui/content/Detail/demo/basic.d.ts +0 -8
- package/ui/content/Detail/demo/basic.js +0 -60
- package/ui/content/Detail/demo/colors.d.ts +0 -3
- package/ui/content/Detail/demo/colors.js +0 -44
- package/ui/content/Detail/demo/controls.d.ts +0 -8
- package/ui/content/Detail/demo/controls.js +0 -60
- package/ui/content/Detail/demo/layout.d.ts +0 -8
- package/ui/content/Detail/demo/layout.js +0 -60
- package/ui/content/Detail/demo/responsive.d.ts +0 -8
- package/ui/content/Detail/demo/responsive.js +0 -75
- package/ui/content/Detail/demo/sizes.d.ts +0 -8
- package/ui/content/Detail/demo/sizes.js +0 -65
- package/ui/content/Icon/demo/icon.d.ts +0 -3
- package/ui/content/Icon/demo/icon.js +0 -32
- package/ui/crud/Crud/demo/default.d.ts +0 -8
- package/ui/crud/Crud/demo/default.js +0 -76
- package/ui/form/AutoCompleteField/demo/basic.d.ts +0 -12
- package/ui/form/AutoCompleteField/demo/basic.js +0 -52
- package/ui/form/AutoCompleteField/demo/disabled.d.ts +0 -8
- package/ui/form/AutoCompleteField/demo/disabled.js +0 -38
- package/ui/form/AutoCompleteField/demo/errors.d.ts +0 -8
- package/ui/form/AutoCompleteField/demo/errors.js +0 -38
- package/ui/form/AutoCompleteField/demo/placeholder.d.ts +0 -8
- package/ui/form/AutoCompleteField/demo/placeholder.js +0 -38
- package/ui/form/AutoCompleteField/demo/required.d.ts +0 -8
- package/ui/form/AutoCompleteField/demo/required.js +0 -38
- package/ui/form/AutoCompleteField/demo/sizes.d.ts +0 -3
- package/ui/form/AutoCompleteField/demo/sizes.js +0 -43
- package/ui/form/BlankField/demo/basic.d.ts +0 -12
- package/ui/form/BlankField/demo/basic.js +0 -55
- package/ui/form/CheckboxListField/demo/basic.d.ts +0 -9
- package/ui/form/CheckboxListField/demo/basic.js +0 -43
- package/ui/form/CheckboxListField/demo/disabled.d.ts +0 -8
- package/ui/form/CheckboxListField/demo/disabled.js +0 -38
- package/ui/form/CheckboxListField/demo/errors.d.ts +0 -8
- package/ui/form/CheckboxListField/demo/errors.js +0 -38
- package/ui/form/CheckboxListField/demo/required.d.ts +0 -8
- package/ui/form/CheckboxListField/demo/required.js +0 -38
- package/ui/form/DateField/demo/basic.d.ts +0 -8
- package/ui/form/DateField/demo/basic.js +0 -37
- package/ui/form/DateField/demo/disabled.d.ts +0 -8
- package/ui/form/DateField/demo/disabled.js +0 -37
- package/ui/form/DateField/demo/errors.d.ts +0 -8
- package/ui/form/DateField/demo/errors.js +0 -37
- package/ui/form/DateField/demo/icon.d.ts +0 -8
- package/ui/form/DateField/demo/icon.js +0 -39
- package/ui/form/DateField/demo/placeholder.d.ts +0 -8
- package/ui/form/DateField/demo/placeholder.js +0 -37
- package/ui/form/DateField/demo/required.d.ts +0 -8
- package/ui/form/DateField/demo/required.js +0 -37
- package/ui/form/DateField/demo/sizes.d.ts +0 -8
- package/ui/form/DateField/demo/sizes.js +0 -43
- package/ui/form/DateRangeField/demo/basic.d.ts +0 -8
- package/ui/form/DateRangeField/demo/basic.js +0 -37
- package/ui/form/DateRangeField/demo/disabled.d.ts +0 -8
- package/ui/form/DateRangeField/demo/disabled.js +0 -37
- package/ui/form/DateRangeField/demo/errors.d.ts +0 -8
- package/ui/form/DateRangeField/demo/errors.js +0 -37
- package/ui/form/DateRangeField/demo/icon.d.ts +0 -8
- package/ui/form/DateRangeField/demo/icon.js +0 -39
- package/ui/form/DateRangeField/demo/placeholder.d.ts +0 -8
- package/ui/form/DateRangeField/demo/placeholder.js +0 -37
- package/ui/form/DateRangeField/demo/required.d.ts +0 -8
- package/ui/form/DateRangeField/demo/required.js +0 -37
- package/ui/form/DateTimeField/demo/basic.d.ts +0 -8
- package/ui/form/DateTimeField/demo/basic.js +0 -37
- package/ui/form/DateTimeField/demo/disabled.d.ts +0 -8
- package/ui/form/DateTimeField/demo/disabled.js +0 -38
- package/ui/form/DateTimeField/demo/errors.d.ts +0 -8
- package/ui/form/DateTimeField/demo/errors.js +0 -37
- package/ui/form/DateTimeField/demo/icon.d.ts +0 -8
- package/ui/form/DateTimeField/demo/icon.js +0 -39
- package/ui/form/DateTimeField/demo/placeholder.d.ts +0 -8
- package/ui/form/DateTimeField/demo/placeholder.js +0 -37
- package/ui/form/DateTimeField/demo/required.d.ts +0 -8
- package/ui/form/DateTimeField/demo/required.js +0 -37
- package/ui/form/DateTimeField/demo/showRemove.d.ts +0 -8
- package/ui/form/DateTimeField/demo/showRemove.js +0 -36
- package/ui/form/DateTimeRangeField/demo/basic.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/basic.js +0 -36
- package/ui/form/DateTimeRangeField/demo/disabled.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/disabled.js +0 -36
- package/ui/form/DateTimeRangeField/demo/errors.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/errors.js +0 -37
- package/ui/form/DateTimeRangeField/demo/icon.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/icon.js +0 -36
- package/ui/form/DateTimeRangeField/demo/placeholder.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/placeholder.js +0 -37
- package/ui/form/DateTimeRangeField/demo/required.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/required.js +0 -37
- package/ui/form/DateTimeRangeField/demo/showRemove.d.ts +0 -8
- package/ui/form/DateTimeRangeField/demo/showRemove.js +0 -36
- package/ui/form/DropDownField/demo/auto-complete.d.ts +0 -8
- package/ui/form/DropDownField/demo/auto-complete.js +0 -38
- package/ui/form/DropDownField/demo/basic.d.ts +0 -12
- package/ui/form/DropDownField/demo/basic.js +0 -56
- package/ui/form/DropDownField/demo/disabled.d.ts +0 -8
- package/ui/form/DropDownField/demo/disabled.js +0 -38
- package/ui/form/DropDownField/demo/errors.d.ts +0 -8
- package/ui/form/DropDownField/demo/errors.js +0 -38
- package/ui/form/DropDownField/demo/multiple.d.ts +0 -8
- package/ui/form/DropDownField/demo/multiple.js +0 -38
- package/ui/form/DropDownField/demo/no-border.d.ts +0 -8
- package/ui/form/DropDownField/demo/no-border.js +0 -38
- package/ui/form/DropDownField/demo/placeholder.d.ts +0 -8
- package/ui/form/DropDownField/demo/placeholder.js +0 -38
- package/ui/form/DropDownField/demo/required.d.ts +0 -8
- package/ui/form/DropDownField/demo/required.js +0 -38
- package/ui/form/DropDownField/demo/show-reset.d.ts +0 -8
- package/ui/form/DropDownField/demo/show-reset.js +0 -38
- package/ui/form/DropDownField/demo/size.d.ts +0 -8
- package/ui/form/DropDownField/demo/size.js +0 -45
- package/ui/form/Field/demo/basic.d.ts +0 -8
- package/ui/form/Field/demo/basic.js +0 -37
- package/ui/form/Field/demo/component.d.ts +0 -8
- package/ui/form/Field/demo/component.js +0 -38
- package/ui/form/Field/demo/model.d.ts +0 -8
- package/ui/form/Field/demo/model.js +0 -48
- package/ui/form/FieldLayout/demo/errors.d.ts +0 -8
- package/ui/form/FieldLayout/demo/errors.js +0 -38
- package/ui/form/FieldLayout/demo/layouts.d.ts +0 -8
- package/ui/form/FieldLayout/demo/layouts.js +0 -43
- package/ui/form/FieldLayout/demo/required.d.ts +0 -8
- package/ui/form/FieldLayout/demo/required.js +0 -38
- package/ui/form/FieldList/demo/basic.d.ts +0 -8
- package/ui/form/FieldList/demo/basic.js +0 -62
- package/ui/form/FieldList/demo/disabled.d.ts +0 -8
- package/ui/form/FieldList/demo/disabled.js +0 -62
- package/ui/form/FieldSet/demo/basic.d.ts +0 -8
- package/ui/form/FieldSet/demo/basic.js +0 -53
- package/ui/form/FileField/demo/basic.d.ts +0 -8
- package/ui/form/FileField/demo/basic.js +0 -37
- package/ui/form/Form/demo/basic.d.ts +0 -8
- package/ui/form/Form/demo/basic.js +0 -62
- package/ui/form/Form/demo/border.d.ts +0 -8
- package/ui/form/Form/demo/border.js +0 -62
- package/ui/form/Form/demo/horizontal.d.ts +0 -8
- package/ui/form/Form/demo/horizontal.js +0 -55
- package/ui/form/Form/demo/inline.d.ts +0 -8
- package/ui/form/Form/demo/inline.js +0 -53
- package/ui/form/HtmlField/demo/basic.d.ts +0 -8
- package/ui/form/HtmlField/demo/basic.js +0 -37
- package/ui/form/InputField/demo/addons.d.ts +0 -8
- package/ui/form/InputField/demo/addons.js +0 -37
- package/ui/form/InputField/demo/basic.d.ts +0 -8
- package/ui/form/InputField/demo/basic.js +0 -36
- package/ui/form/InputField/demo/disabled.d.ts +0 -8
- package/ui/form/InputField/demo/disabled.js +0 -36
- package/ui/form/InputField/demo/errors.d.ts +0 -8
- package/ui/form/InputField/demo/errors.js +0 -37
- package/ui/form/InputField/demo/mask.d.ts +0 -8
- package/ui/form/InputField/demo/mask.js +0 -39
- package/ui/form/InputField/demo/placeholder.d.ts +0 -8
- package/ui/form/InputField/demo/placeholder.js +0 -37
- package/ui/form/InputField/demo/required.d.ts +0 -8
- package/ui/form/InputField/demo/required.js +0 -37
- package/ui/form/InputField/demo/sizes.d.ts +0 -3
- package/ui/form/InputField/demo/sizes.js +0 -42
- package/ui/form/InputField/demo/textAddons.d.ts +0 -8
- package/ui/form/InputField/demo/textAddons.js +0 -37
- package/ui/form/InputField/demo/types.d.ts +0 -3
- package/ui/form/InputField/demo/types.js +0 -44
- package/ui/form/NavField/demo/basic.d.ts +0 -12
- package/ui/form/NavField/demo/basic.js +0 -56
- package/ui/form/NavField/demo/disabled.d.ts +0 -8
- package/ui/form/NavField/demo/disabled.js +0 -38
- package/ui/form/NavField/demo/errors.d.ts +0 -8
- package/ui/form/NavField/demo/errors.js +0 -38
- package/ui/form/NavField/demo/layouts.d.ts +0 -12
- package/ui/form/NavField/demo/layouts.js +0 -61
- package/ui/form/NavField/demo/required.d.ts +0 -8
- package/ui/form/NavField/demo/required.js +0 -38
- package/ui/form/NumberField/demo/basic.d.ts +0 -8
- package/ui/form/NumberField/demo/basic.js +0 -37
- package/ui/form/NumberField/demo/disabled.d.ts +0 -8
- package/ui/form/NumberField/demo/disabled.js +0 -37
- package/ui/form/NumberField/demo/errors.d.ts +0 -8
- package/ui/form/NumberField/demo/errors.js +0 -37
- package/ui/form/NumberField/demo/placeholder.d.ts +0 -8
- package/ui/form/NumberField/demo/placeholder.js +0 -37
- package/ui/form/NumberField/demo/required.d.ts +0 -8
- package/ui/form/NumberField/demo/required.js +0 -37
- package/ui/form/NumberField/demo/sizes.d.ts +0 -8
- package/ui/form/NumberField/demo/sizes.js +0 -42
- package/ui/form/PasswordField/demo/basic.d.ts +0 -8
- package/ui/form/PasswordField/demo/basic.js +0 -37
- package/ui/form/PasswordField/demo/disabled.d.ts +0 -8
- package/ui/form/PasswordField/demo/disabled.js +0 -37
- package/ui/form/PasswordField/demo/errors.d.ts +0 -8
- package/ui/form/PasswordField/demo/errors.js +0 -37
- package/ui/form/PasswordField/demo/placeholder.d.ts +0 -8
- package/ui/form/PasswordField/demo/placeholder.js +0 -37
- package/ui/form/PasswordField/demo/required.d.ts +0 -8
- package/ui/form/PasswordField/demo/required.js +0 -37
- package/ui/form/PasswordField/demo/security.d.ts +0 -8
- package/ui/form/PasswordField/demo/security.js +0 -37
- package/ui/form/PasswordField/demo/sizes.d.ts +0 -8
- package/ui/form/PasswordField/demo/sizes.js +0 -42
- package/ui/form/RadioListField/demo/basic.d.ts +0 -12
- package/ui/form/RadioListField/demo/basic.js +0 -56
- package/ui/form/RadioListField/demo/disabled.d.ts +0 -8
- package/ui/form/RadioListField/demo/disabled.js +0 -38
- package/ui/form/RadioListField/demo/errors.d.ts +0 -8
- package/ui/form/RadioListField/demo/errors.js +0 -38
- package/ui/form/RadioListField/demo/required.d.ts +0 -8
- package/ui/form/RadioListField/demo/required.js +0 -38
- package/ui/form/ReCaptchaField/demo/basic.d.ts +0 -8
- package/ui/form/ReCaptchaField/demo/basic.js +0 -43
- package/ui/form/SliderField/demo/basic.d.ts +0 -8
- package/ui/form/SliderField/demo/basic.js +0 -37
- package/ui/form/SliderField/demo/disabled.d.ts +0 -8
- package/ui/form/SliderField/demo/disabled.js +0 -37
- package/ui/form/SliderField/demo/errors.d.ts +0 -8
- package/ui/form/SliderField/demo/errors.js +0 -37
- package/ui/form/SliderField/demo/marks.d.ts +0 -3
- package/ui/form/SliderField/demo/marks.js +0 -49
- package/ui/form/SliderField/demo/min-max.d.ts +0 -8
- package/ui/form/SliderField/demo/min-max.js +0 -37
- package/ui/form/SliderField/demo/onAfterChange.d.ts +0 -8
- package/ui/form/SliderField/demo/onAfterChange.js +0 -43
- package/ui/form/SliderField/demo/onChange.d.ts +0 -8
- package/ui/form/SliderField/demo/onChange.js +0 -43
- package/ui/form/SliderField/demo/range.d.ts +0 -8
- package/ui/form/SliderField/demo/range.js +0 -37
- package/ui/form/TextField/demo/basic.d.ts +0 -8
- package/ui/form/TextField/demo/basic.js +0 -37
- package/ui/form/TextField/demo/disabled.d.ts +0 -8
- package/ui/form/TextField/demo/disabled.js +0 -37
- package/ui/form/TextField/demo/errors.d.ts +0 -8
- package/ui/form/TextField/demo/errors.js +0 -37
- package/ui/form/TextField/demo/placeholder.d.ts +0 -8
- package/ui/form/TextField/demo/placeholder.js +0 -37
- package/ui/form/TextField/demo/required.d.ts +0 -8
- package/ui/form/TextField/demo/required.js +0 -37
- package/ui/form/TextField/demo/sizes.d.ts +0 -3
- package/ui/form/TextField/demo/sizes.js +0 -43
- package/ui/form/TextField/demo/submit.d.ts +0 -8
- package/ui/form/TextField/demo/submit.js +0 -37
- package/ui/format/DateFormatter/demo/basic.d.ts +0 -3
- package/ui/format/DateFormatter/demo/basic.js +0 -32
- package/ui/format/DateTimeFormatter/demo/basic.d.ts +0 -3
- package/ui/format/DateTimeFormatter/demo/basic.js +0 -32
- package/ui/layout/Notifications/demo/basic.d.ts +0 -8
- package/ui/layout/Notifications/demo/basic.js +0 -57
- package/ui/layout/Notifications/demo/position.d.ts +0 -3
- package/ui/layout/Notifications/demo/position.js +0 -49
- package/ui/layout/Notifications/demo/timeOut.d.ts +0 -3
- package/ui/layout/Notifications/demo/timeOut.js +0 -49
- package/ui/layout/Tooltip/calculate.d.ts +0 -6
- package/ui/layout/Tooltip/demo/basic.d.ts +0 -8
- package/ui/layout/Tooltip/demo/basic.js +0 -56
- package/ui/list/CheckboxColumn/demo/basic.d.ts +0 -8
- package/ui/list/CheckboxColumn/demo/basic.js +0 -51
- package/ui/list/ControlsColumn/demo/basic.d.ts +0 -8
- package/ui/list/Empty/demo/basic.d.ts +0 -8
- package/ui/list/Empty/demo/basic.js +0 -37
- package/ui/list/Empty/demo/custom-text.d.ts +0 -8
- package/ui/list/Empty/demo/custom-text.js +0 -37
- package/ui/list/Grid/demo/basic.d.ts +0 -18
- package/ui/list/Grid/demo/basic.js +0 -72
- package/ui/list/Grid/demo/controls.d.ts +0 -8
- package/ui/list/Grid/demo/controls.js +0 -44
- package/ui/list/Grid/demo/empty.d.ts +0 -8
- package/ui/list/Grid/demo/empty.js +0 -38
- package/ui/list/Grid/demo/formatter.d.ts +0 -8
- package/ui/list/Grid/demo/formatter.js +0 -67
- package/ui/list/Grid/demo/indexing.d.ts +0 -8
- package/ui/list/Grid/demo/inner-search-form.d.ts +0 -16
- package/ui/list/Grid/demo/inner-search-form.js +0 -60
- package/ui/list/Grid/demo/load-more.d.ts +0 -8
- package/ui/list/Grid/demo/load-more.js +0 -43
- package/ui/list/Grid/demo/pagination.d.ts +0 -8
- package/ui/list/Grid/demo/pagination.js +0 -41
- package/ui/list/Grid/demo/search-form.d.ts +0 -8
- package/ui/list/Grid/demo/search-form.js +0 -50
- package/ui/list/Grid/demo/sort.d.ts +0 -8
- package/ui/list/Grid/demo/sort.js +0 -48
- package/ui/list/Grid/demo/visible.d.ts +0 -8
- package/ui/list/Grid/demo/visible.js +0 -52
- package/ui/list/LayoutNames/demo/basic.d.ts +0 -7
- package/ui/list/List/demo/basic.d.ts +0 -12
- package/ui/list/List/demo/basic.js +0 -61
- package/ui/list/List/demo/condition.d.ts +0 -8
- package/ui/list/List/demo/condition.js +0 -90
- package/ui/list/List/demo/empty.d.ts +0 -8
- package/ui/list/List/demo/empty.js +0 -36
- package/ui/list/List/demo/layout.d.ts +0 -8
- package/ui/list/List/demo/layout.js +0 -49
- package/ui/list/List/demo/load-more.d.ts +0 -8
- package/ui/list/List/demo/load-more.js +0 -45
- package/ui/list/List/demo/pagination.d.ts +0 -8
- package/ui/list/List/demo/pagination.js +0 -45
- package/ui/list/List/demo/search-form.d.ts +0 -30
- package/ui/list/List/demo/search-form.js +0 -107
- package/ui/list/List/demo/sort.d.ts +0 -17
- package/ui/list/List/demo/sort.js +0 -92
- package/ui/list/Pagination/demo/basic.d.ts +0 -8
- package/ui/list/Pagination/demo/basic.js +0 -45
- package/ui/list/Pagination/demo/load-more.d.ts +0 -8
- package/ui/list/Pagination/demo/load-more.js +0 -41
- package/ui/list/Pagination/demo/sizes.d.ts +0 -8
- package/ui/list/Pagination/demo/sizes.js +0 -48
- package/ui/list/PaginationSize/demo/basic.d.ts +0 -8
- package/ui/list/PaginationSize/demo/basic.js +0 -41
- package/ui/list/PaginationSize/demo/size.d.ts +0 -8
- package/ui/list/PaginationSize/demo/size.js +0 -49
- package/ui/modal/Modal/demo/basic.d.ts +0 -8
- package/ui/modal/Modal/demo/basic.js +0 -63
- package/ui/modal/Modal/demo/closeTimeout.d.ts +0 -8
- package/ui/modal/Modal/demo/closeTimeout.js +0 -64
- package/ui/modal/Modal/demo/closing.d.ts +0 -9
- package/ui/modal/Modal/demo/closing.js +0 -67
- package/ui/modal/Modal/demo/component.d.ts +0 -10
- package/ui/modal/Modal/demo/component.js +0 -55
- package/ui/modal/Modal/demo/controls.d.ts +0 -8
- package/ui/modal/Modal/demo/controls.js +0 -66
- package/ui/modal/Modal/demo/size.d.ts +0 -8
- package/ui/modal/Modal/demo/size.js +0 -70
- package/ui/nav/Breadcrumbs/demo/basic.d.ts +0 -8
- package/ui/nav/Breadcrumbs/demo/basic.js +0 -37
- package/ui/nav/Breadcrumbs/demo/items.d.ts +0 -8
- package/ui/nav/Breadcrumbs/demo/items.js +0 -42
- package/ui/nav/Breadcrumbs/demo/page-title.d.ts +0 -8
- package/ui/nav/Breadcrumbs/demo/page-title.js +0 -37
- package/ui/nav/Controls/demo/basic.d.ts +0 -12
- package/ui/nav/Controls/demo/basic.js +0 -59
- package/ui/nav/Link/demo/badge.d.ts +0 -8
- package/ui/nav/Link/demo/badge.js +0 -37
- package/ui/nav/Link/demo/basic.d.ts +0 -8
- package/ui/nav/Link/demo/basic.js +0 -37
- package/ui/nav/Link/demo/colors.d.ts +0 -8
- package/ui/nav/Link/demo/colors.js +0 -46
- package/ui/nav/Link/demo/confirm.d.ts +0 -8
- package/ui/nav/Link/demo/confirm.js +0 -37
- package/ui/nav/Link/demo/disabled.d.ts +0 -8
- package/ui/nav/Link/demo/disabled.js +0 -37
- package/ui/nav/Link/demo/hint.d.ts +0 -8
- package/ui/nav/Link/demo/hint.js +0 -37
- package/ui/nav/Link/demo/icon.d.ts +0 -8
- package/ui/nav/Link/demo/icon.js +0 -37
- package/ui/nav/Link/demo/sizes.d.ts +0 -8
- package/ui/nav/Link/demo/sizes.js +0 -41
- package/ui/nav/Nav/demo/basic.d.ts +0 -13
- package/ui/nav/Nav/demo/basic.js +0 -58
- package/ui/nav/Nav/demo/layout.d.ts +0 -8
- package/ui/nav/Nav/demo/layout.js +0 -56
- package/ui/nav/Router/ConnectedRouter.d.ts +0 -16
- package/ui/nav/Router/ConnectedRouter.js +0 -107
- package/ui/nav/Tree/demo/auto-open-levels.d.ts +0 -8
- package/ui/nav/Tree/demo/auto-open-levels.js +0 -38
- package/ui/nav/Tree/demo/basic.d.ts +0 -32
- package/ui/nav/Tree/demo/basic.js +0 -72
- package/ui/nav/Tree/demo/level.d.ts +0 -8
- package/ui/nav/Tree/demo/level.js +0 -38
- package/ui/nav/Tree/demo/routes.d.ts +0 -8
- package/ui/nav/Tree/demo/routes.js +0 -37
- package/ui/nav/Tree/demo/selected-item.d.ts +0 -8
- package/ui/nav/Tree/demo/selected-item.js +0 -38
package/hooks/useDataSelect.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
exports.__esModule = true;
|
|
15
|
-
exports.
|
|
15
|
+
exports.getFlattenedItems = void 0;
|
|
16
16
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
17
17
|
var isArray_1 = __importDefault(require("lodash-es/isArray"));
|
|
18
18
|
var isNil_1 = __importDefault(require("lodash-es/isNil"));
|
|
@@ -21,11 +21,11 @@ var react_use_1 = require("react-use");
|
|
|
21
21
|
var defaultProps = {
|
|
22
22
|
primaryKey: 'id'
|
|
23
23
|
};
|
|
24
|
-
var
|
|
24
|
+
var getFlattenedItems = function (items, groupAttribute) {
|
|
25
25
|
var result = [];
|
|
26
26
|
items.forEach(function (item) {
|
|
27
27
|
if (groupAttribute && Array.isArray(item[groupAttribute])) {
|
|
28
|
-
result = result.concat((0, exports.
|
|
28
|
+
result = result.concat((0, exports.getFlattenedItems)(item[groupAttribute], groupAttribute));
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
result.push(item);
|
|
@@ -33,7 +33,7 @@ var getLinearItems = function (items, groupAttribute) {
|
|
|
33
33
|
});
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
|
-
exports.
|
|
36
|
+
exports.getFlattenedItems = getFlattenedItems;
|
|
37
37
|
var isIdExists = function (id) {
|
|
38
38
|
if (typeof id === 'boolean') {
|
|
39
39
|
return true;
|
|
@@ -43,7 +43,7 @@ var isIdExists = function (id) {
|
|
|
43
43
|
function useDataSelect(config) {
|
|
44
44
|
// Get primary key
|
|
45
45
|
var primaryKey = config.primaryKey || defaultProps.primaryKey;
|
|
46
|
-
var
|
|
46
|
+
var flattenedItems = (0, react_1.useMemo)(function () { return (0, exports.getFlattenedItems)(config.items, config.groupAttribute); }, [config.groupAttribute, config.items]);
|
|
47
47
|
// Initial select
|
|
48
48
|
var initialSelectedIds = (0, react_1.useMemo)(function () {
|
|
49
49
|
var _a;
|
|
@@ -53,22 +53,23 @@ function useDataSelect(config) {
|
|
|
53
53
|
if (!(0, isNil_1["default"])(config.inputValue)) {
|
|
54
54
|
return [].concat((0, isArray_1["default"])(config.inputValue) ? config.inputValue : [config.inputValue]);
|
|
55
55
|
}
|
|
56
|
-
return config.selectFirst &&
|
|
57
|
-
? [
|
|
56
|
+
return config.selectFirst && flattenedItems.length > 0
|
|
57
|
+
? [flattenedItems[0][primaryKey]]
|
|
58
58
|
: [];
|
|
59
|
-
}, [config.selectedIds, config.inputValue, config.selectFirst,
|
|
60
|
-
var initialSelectedItems = (0, react_1.useMemo)(function () { return
|
|
59
|
+
}, [config.selectedIds, config.inputValue, config.selectFirst, flattenedItems, primaryKey]);
|
|
60
|
+
var initialSelectedItems = (0, react_1.useMemo)(function () { return flattenedItems.length > 0
|
|
61
61
|
&& initialSelectedIds.length > 0
|
|
62
62
|
? initialSelectedIds
|
|
63
|
-
.map(function (selectedId) { return
|
|
63
|
+
.map(function (selectedId) { return flattenedItems.find(function (item) { return item.id === selectedId; }); })
|
|
64
64
|
.filter(isIdExists)
|
|
65
|
-
: []; }, [initialSelectedIds,
|
|
65
|
+
: []; }, [initialSelectedIds, flattenedItems]);
|
|
66
66
|
// State
|
|
67
67
|
var _a = (0, react_1.useState)(false), isOpened = _a[0], setIsOpened = _a[1];
|
|
68
68
|
var _b = (0, react_1.useState)(false), isFocused = _b[0], setIsFocused = _b[1];
|
|
69
69
|
var _c = (0, react_1.useState)(null), hoveredId = _c[0], setHoveredId = _c[1];
|
|
70
70
|
var _d = (0, react_1.useState)(initialSelectedIds), selectedIds = _d[0], setSelectedIdsInternal = _d[1];
|
|
71
71
|
var _e = (0, react_1.useState)(initialSelectedItems), selectedItems = _e[0], setSelectedItemsInternal = _e[1];
|
|
72
|
+
var _f = (0, react_1.useState)(config.items.length === selectedIds.length), isSelectedAll = _f[0], setIsSelectedAll = _f[1];
|
|
72
73
|
// Handler for select/toggle item by id
|
|
73
74
|
var setSelectedIds = (0, react_1.useCallback)(function (ids, skipToggle) {
|
|
74
75
|
if (skipToggle === void 0) { skipToggle = false; }
|
|
@@ -76,6 +77,10 @@ function useDataSelect(config) {
|
|
|
76
77
|
if (!config.multiple && ids.length > 1) {
|
|
77
78
|
ids = [ids[0]];
|
|
78
79
|
}
|
|
80
|
+
if (selectedItems.length === ids.length) {
|
|
81
|
+
setSelectedIds([]);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
79
84
|
setSelectedIdsInternal(ids.sort());
|
|
80
85
|
}
|
|
81
86
|
else {
|
|
@@ -97,17 +102,24 @@ function useDataSelect(config) {
|
|
|
97
102
|
if (selectedIds.length !== 1 || selectedIds[0] !== id_1) {
|
|
98
103
|
setSelectedIdsInternal([id_1]);
|
|
99
104
|
}
|
|
105
|
+
else if (selectedIds.length === 1 && selectedIds[0] === id_1) {
|
|
106
|
+
setSelectedIdsInternal([]);
|
|
107
|
+
}
|
|
100
108
|
setIsOpened(false);
|
|
101
109
|
}
|
|
102
110
|
}
|
|
103
|
-
}, [config.multiple, selectedIds]);
|
|
111
|
+
}, [config.multiple, selectedIds, selectedItems.length]);
|
|
112
|
+
var setSelectedAll = (0, react_1.useCallback)(function () {
|
|
113
|
+
var itemsIds = flattenedItems.map(function (item) { return item.id; });
|
|
114
|
+
setSelectedIds(itemsIds);
|
|
115
|
+
}, [flattenedItems, setSelectedIds]);
|
|
104
116
|
// Update selected items on change selectedIds or items or source items
|
|
105
117
|
var prevSelectedIdsLength = (0, react_use_1.usePrevious)(selectedIds.length);
|
|
106
118
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
107
119
|
var newSelectedItems = [];
|
|
108
120
|
var hasChanges = false;
|
|
109
121
|
selectedIds.forEach(function (selectedId) {
|
|
110
|
-
var finedItem =
|
|
122
|
+
var finedItem = flattenedItems.find(function (item) { return item[primaryKey] === selectedId; });
|
|
111
123
|
if (!finedItem && config.sourceItems) {
|
|
112
124
|
finedItem = config.sourceItems.find(function (item) { return item[primaryKey] === selectedId; });
|
|
113
125
|
}
|
|
@@ -123,14 +135,14 @@ function useDataSelect(config) {
|
|
|
123
135
|
if (hasChanges || prevSelectedIdsLength !== selectedIds.length) {
|
|
124
136
|
setSelectedItemsInternal(newSelectedItems);
|
|
125
137
|
}
|
|
126
|
-
}, [
|
|
138
|
+
}, [flattenedItems, config.sourceItems, primaryKey, selectedIds, selectedItems, prevSelectedIdsLength]);
|
|
127
139
|
// Select first after fetch data
|
|
128
|
-
var prevItemsLength = (0, react_use_1.usePrevious)(
|
|
140
|
+
var prevItemsLength = (0, react_use_1.usePrevious)(flattenedItems.length);
|
|
129
141
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
130
|
-
if (config.selectFirst && prevItemsLength === 0 &&
|
|
131
|
-
setSelectedIdsInternal([
|
|
142
|
+
if (config.selectFirst && prevItemsLength === 0 && flattenedItems.length > 0) {
|
|
143
|
+
setSelectedIdsInternal([flattenedItems[0][primaryKey]]);
|
|
132
144
|
}
|
|
133
|
-
}, [
|
|
145
|
+
}, [flattenedItems, config.selectFirst, prevItemsLength, primaryKey]);
|
|
134
146
|
// Update selected items on change value
|
|
135
147
|
var prevConfigSelectedIds = (0, react_use_1.usePrevious)(config.selectedIds || []);
|
|
136
148
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
@@ -146,6 +158,9 @@ function useDataSelect(config) {
|
|
|
146
158
|
setSelectedIdsInternal(newSelectedIds);
|
|
147
159
|
}
|
|
148
160
|
}, [config.selectedIds, prevConfigSelectedIds, selectedIds, selectedItems]);
|
|
161
|
+
(0, react_use_1.useUpdateEffect)(function () {
|
|
162
|
+
setIsSelectedAll(config.items.length === selectedIds.length);
|
|
163
|
+
}, [config.items.length, selectedIds]);
|
|
149
164
|
// Global key down handler for navigate on items
|
|
150
165
|
// Support keys:
|
|
151
166
|
// - tab
|
|
@@ -175,9 +190,9 @@ function useDataSelect(config) {
|
|
|
175
190
|
// Select first selected
|
|
176
191
|
setSelectedIds(selectedIds[0], true);
|
|
177
192
|
}
|
|
178
|
-
else if (
|
|
193
|
+
else if (flattenedItems.length > 0) {
|
|
179
194
|
// Select first result
|
|
180
|
-
setSelectedIds(
|
|
195
|
+
setSelectedIds(flattenedItems[0], true);
|
|
181
196
|
}
|
|
182
197
|
setIsOpened(false);
|
|
183
198
|
}
|
|
@@ -202,7 +217,7 @@ function useDataSelect(config) {
|
|
|
202
217
|
else {
|
|
203
218
|
// Navigate on items by keys
|
|
204
219
|
var direction = isDown ? 1 : -1;
|
|
205
|
-
var keys =
|
|
220
|
+
var keys = flattenedItems.map(function (item) { return item.id; });
|
|
206
221
|
// Get current index
|
|
207
222
|
var index = hoveredId ? keys.indexOf(hoveredId) : -1;
|
|
208
223
|
if (index === -1 && selectedIds.length === 1) {
|
|
@@ -216,7 +231,7 @@ function useDataSelect(config) {
|
|
|
216
231
|
setHoveredId(keys[newIndex]);
|
|
217
232
|
}
|
|
218
233
|
}
|
|
219
|
-
}, [isFocused, isOpened, hoveredId, selectedIds,
|
|
234
|
+
}, [isFocused, isOpened, hoveredId, selectedIds, flattenedItems, setSelectedIds]);
|
|
220
235
|
(0, react_use_1.useEvent)('keydown', onKeyDown);
|
|
221
236
|
return {
|
|
222
237
|
isOpened: isOpened,
|
|
@@ -227,7 +242,9 @@ function useDataSelect(config) {
|
|
|
227
242
|
setHoveredId: setHoveredId,
|
|
228
243
|
selectedIds: selectedIds,
|
|
229
244
|
setSelectedIds: setSelectedIds,
|
|
230
|
-
selectedItems: selectedItems
|
|
245
|
+
selectedItems: selectedItems,
|
|
246
|
+
setSelectedAll: setSelectedAll,
|
|
247
|
+
isSelectedAll: isSelectedAll
|
|
231
248
|
};
|
|
232
249
|
}
|
|
233
250
|
exports["default"] = useDataSelect;
|
package/hooks/useFetch.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AxiosError } from 'axios';
|
|
2
2
|
import { IComponents } from '../providers/ComponentsProvider';
|
|
3
|
-
import { IApiMethod } from '../components/ApiComponent';
|
|
4
3
|
declare global {
|
|
5
4
|
interface Window {
|
|
6
5
|
APP_PRELOADED_DATA: any;
|
|
@@ -8,21 +7,21 @@ declare global {
|
|
|
8
7
|
}
|
|
9
8
|
export interface IFetchConfig {
|
|
10
9
|
id?: string | number;
|
|
11
|
-
url?: string
|
|
10
|
+
url?: string;
|
|
12
11
|
method?: 'get' | 'post' | string;
|
|
13
12
|
params?: Record<string, unknown>;
|
|
14
13
|
onFetch?: (config: IFetchConfig, components: IComponents, addCancelToken: (token: any) => any) => any;
|
|
15
14
|
}
|
|
16
|
-
export interface IFetchResult {
|
|
15
|
+
export interface IFetchResult<T> {
|
|
17
16
|
data?: {
|
|
18
17
|
providerData?: {
|
|
19
18
|
type: string;
|
|
20
19
|
value: string;
|
|
21
20
|
};
|
|
22
21
|
[key: string]: unknown;
|
|
23
|
-
} |
|
|
22
|
+
} | T;
|
|
24
23
|
isLoading: boolean;
|
|
25
|
-
fetch
|
|
24
|
+
fetch: (newParams?: Record<string, unknown>) => void;
|
|
26
25
|
axiosError: AxiosError | null;
|
|
27
26
|
}
|
|
28
27
|
export declare const normalizeConfig: (config: any) => any;
|
|
@@ -38,4 +37,4 @@ export declare const fetchData: (config: any, components: any, addCancelToken: a
|
|
|
38
37
|
* В процесс загрузки HOC будет отображать "Загрузка...", а после уже отрендерит компонент, передав данные в указанный
|
|
39
38
|
* ключ `key`.
|
|
40
39
|
*/
|
|
41
|
-
export default function useFetch(rawConfig?: IFetchConfig): IFetchResult
|
|
40
|
+
export default function useFetch<T = any>(rawConfig?: IFetchConfig): IFetchResult<T>;
|
package/hooks/useFetch.js
CHANGED
|
@@ -75,9 +75,6 @@ var defaultFetchHandler = function (config, components, addCancelToken) {
|
|
|
75
75
|
var cancelToken = new axios_1["default"].CancelToken(function (cancel) {
|
|
76
76
|
addCancelToken(cancel);
|
|
77
77
|
});
|
|
78
|
-
if (typeof config.url === 'function') {
|
|
79
|
-
return config.url(components.api, config.params, config.options).then(function (result) { return result.data; });
|
|
80
|
-
}
|
|
81
78
|
return components.http
|
|
82
79
|
.send(config.method, config.url, config.params, __assign(__assign({}, config.options), { cancelToken: cancelToken }))
|
|
83
80
|
.then(function (result) { return result.data; });
|
package/hooks/useFile.d.ts
CHANGED
|
@@ -1,2 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface IFileInput {
|
|
2
|
+
/**
|
|
3
|
+
* Параметры для input элемента
|
|
4
|
+
*/
|
|
5
|
+
input?: FormInputType;
|
|
6
|
+
/**
|
|
7
|
+
* Множественный выбор файлов
|
|
8
|
+
*/
|
|
9
|
+
multiple?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Позволяет указать uploader
|
|
12
|
+
*/
|
|
13
|
+
uploader?: any;
|
|
14
|
+
/**
|
|
15
|
+
* Экшен для отправки на бэкенд
|
|
16
|
+
* @example '/api/v1/user/avatar/crop'
|
|
17
|
+
*/
|
|
18
|
+
backendUrl?: any;
|
|
19
|
+
/**
|
|
20
|
+
* Список mime-типов
|
|
21
|
+
*/
|
|
22
|
+
mimeTypes?: any;
|
|
23
|
+
/**
|
|
24
|
+
* Использовать только изображения
|
|
25
|
+
*/
|
|
26
|
+
imagesOnly?: any;
|
|
27
|
+
imagesProcessor?: any;
|
|
28
|
+
/**
|
|
29
|
+
* Точные размеры изображений
|
|
30
|
+
*/
|
|
31
|
+
imagesExactSize?: any;
|
|
32
|
+
/**
|
|
33
|
+
* Начальные файлы
|
|
34
|
+
*/
|
|
35
|
+
initialFiles?: any;
|
|
36
|
+
/**
|
|
37
|
+
* Параметры для uploader
|
|
38
|
+
*/
|
|
39
|
+
uploaderConfig?: {
|
|
40
|
+
useFormData?: boolean;
|
|
41
|
+
fileFieldName?: string;
|
|
42
|
+
} | any;
|
|
43
|
+
}
|
|
44
|
+
export interface IFileOutput {
|
|
45
|
+
uploader?: any;
|
|
46
|
+
files?: any[];
|
|
47
|
+
onBrowse?: any;
|
|
48
|
+
onRemove?: any;
|
|
49
|
+
onAdd?: any;
|
|
50
|
+
}
|
|
51
|
+
export default function useFile(props: IFileInput): IFileOutput;
|
package/hooks/useForm.d.ts
CHANGED
package/hooks/useForm.js
CHANGED
|
@@ -10,7 +10,6 @@ function useForm() {
|
|
|
10
10
|
model: context.model,
|
|
11
11
|
prefix: context.prefix,
|
|
12
12
|
size: context.size,
|
|
13
|
-
layout: context.layout,
|
|
14
13
|
formDispatch: context === null || context === void 0 ? void 0 : context.dispatch,
|
|
15
14
|
formSelector: function (selector) { var _a; return (_a = context === null || context === void 0 ? void 0 : context.provider) === null || _a === void 0 ? void 0 : _a.select(context.formId, selector); }
|
|
16
15
|
}
|
package/hooks/useList.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITreeTableItem } from '../ui/list/TreeTable/TreeTable';
|
|
2
2
|
import { IAddressBarConfig } from '../hooks/useAddressBar';
|
|
3
3
|
import { IList } from '../actions/list';
|
|
4
4
|
import { ILayoutNamesProps } from '../ui/list/LayoutNames/LayoutNames';
|
|
@@ -8,7 +8,7 @@ import { IEmptyProps } from '../ui/list/Empty/Empty';
|
|
|
8
8
|
import { IFormProps } from '../ui/form/Form/Form';
|
|
9
9
|
import { Model } from '../components/MetaComponent';
|
|
10
10
|
export type ListControlPosition = 'top' | 'bottom' | 'both' | string;
|
|
11
|
-
interface
|
|
11
|
+
export interface ISortConfig {
|
|
12
12
|
/**
|
|
13
13
|
* Включить сортировку
|
|
14
14
|
* @example false
|
|
@@ -41,7 +41,7 @@ export interface IListConfig {
|
|
|
41
41
|
* Url, который вернет коллекцию элементов
|
|
42
42
|
* @example api/v1/articles
|
|
43
43
|
*/
|
|
44
|
-
action?: string
|
|
44
|
+
action?: string;
|
|
45
45
|
/**
|
|
46
46
|
* Тип HTTP запроса (GET | POST | PUT | DELETE)
|
|
47
47
|
* @example GET
|
|
@@ -61,7 +61,7 @@ export interface IListConfig {
|
|
|
61
61
|
* Подключение сортировки
|
|
62
62
|
* @example {enable: true, defaultSort: 'startDate'}
|
|
63
63
|
*/
|
|
64
|
-
sort?: boolean |
|
|
64
|
+
sort?: boolean | ISortConfig;
|
|
65
65
|
/**
|
|
66
66
|
* Варианты расположения элементов коллекции
|
|
67
67
|
* @example {items: [{id: 'list', label: 'List'}, {id: 'grid', label: 'Grid'}]}
|
|
@@ -102,6 +102,11 @@ export interface IListConfig {
|
|
|
102
102
|
* @return {Promise}
|
|
103
103
|
*/
|
|
104
104
|
onFetch?: (list: IList, query: Record<string, unknown>, http: any) => Promise<any>;
|
|
105
|
+
/**
|
|
106
|
+
* Обработчик события ошибки выполнения запроса
|
|
107
|
+
* @param args
|
|
108
|
+
*/
|
|
109
|
+
onError?: (error: Record<string, any>) => void;
|
|
105
110
|
/**
|
|
106
111
|
* Обработчик, который составляет список условий для локальной фильтрации элементов коллекции
|
|
107
112
|
* @param {Object} query
|
|
@@ -113,12 +118,18 @@ export interface IListConfig {
|
|
|
113
118
|
* @example true
|
|
114
119
|
*/
|
|
115
120
|
addressBar?: boolean | IAddressBarConfig;
|
|
121
|
+
/**
|
|
122
|
+
* Параметр для загрузки данных списка с сервера
|
|
123
|
+
*/
|
|
116
124
|
scope?: string[];
|
|
117
125
|
/**
|
|
118
126
|
* Дополнительные параметры, значения которых нужно передавать в запросе для получения данных
|
|
119
127
|
* @example {tagName: 'MarketReviews'}
|
|
120
128
|
*/
|
|
121
129
|
query?: Record<string, unknown>;
|
|
130
|
+
/**
|
|
131
|
+
* Модель
|
|
132
|
+
*/
|
|
122
133
|
model?: string;
|
|
123
134
|
/**
|
|
124
135
|
* Модель для синхронизации значений формы с адресной строкой
|
|
@@ -138,6 +149,10 @@ export interface IListConfig {
|
|
|
138
149
|
* Количество элементов всего в списке (для отрисовки пагинации), заданное вручную
|
|
139
150
|
*/
|
|
140
151
|
initialTotal?: number;
|
|
152
|
+
/**
|
|
153
|
+
* Включает обработку вложенных данных из items вида [{id: 1, name: 'John', items: [...]}]
|
|
154
|
+
*/
|
|
155
|
+
hasTreeItems?: boolean;
|
|
141
156
|
}
|
|
142
157
|
export interface IListOutput {
|
|
143
158
|
list: IList;
|
|
@@ -196,6 +211,7 @@ export declare const createInitialValues: ({ paginationProps, paginationSizeProp
|
|
|
196
211
|
initialQuery: any;
|
|
197
212
|
configQuery: any;
|
|
198
213
|
}) => any;
|
|
214
|
+
export declare const prepareItemsToTree: (sourceItems: ITreeTableItem[], openedTreeItems: Record<string, boolean>, currentPage: number | null, itemsOnPage: number | null, onTreeItemClick: (uniqueId: string, item: Record<string, any>) => void, parentId?: string, currentLevel?: number) => any[];
|
|
199
215
|
/**
|
|
200
216
|
* useList
|
|
201
217
|
* Добавляет массу возможностей для взаимодействия с коллекциями. Коллекции можно получать как с бекенда,
|
|
@@ -203,4 +219,3 @@ export declare const createInitialValues: ({ paginationProps, paginationSizeProp
|
|
|
203
219
|
* Выбранные фильтры синхронизируются с адресной строкой.
|
|
204
220
|
*/
|
|
205
221
|
export default function useList(config: IListConfig): IListOutput;
|
|
206
|
-
export {};
|
package/hooks/useList.js
CHANGED
|
@@ -37,18 +37,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
exports.createInitialValues = exports.getDefaultSearchModel = exports.normalizeSortProps = exports.defaultConfig = void 0;
|
|
40
|
+
exports.prepareItemsToTree = exports.createInitialValues = exports.getDefaultSearchModel = exports.normalizeSortProps = exports.defaultConfig = void 0;
|
|
41
41
|
var react_1 = require("react");
|
|
42
42
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
43
43
|
var union_1 = __importDefault(require("lodash-es/union"));
|
|
44
44
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
45
45
|
var React = __importStar(require("react"));
|
|
46
46
|
var react_use_1 = require("react-use");
|
|
47
|
+
var list_1 = require("../utils/list");
|
|
47
48
|
var useSelector_1 = __importDefault(require("../hooks/useSelector"));
|
|
48
|
-
var
|
|
49
|
+
var list_2 = require("../reducers/list");
|
|
49
50
|
var useModel_1 = __importDefault(require("../hooks/useModel"));
|
|
50
51
|
var useAddressBar_1 = __importDefault(require("../hooks/useAddressBar"));
|
|
51
|
-
var
|
|
52
|
+
var list_3 = require("../actions/list");
|
|
52
53
|
var useDispatch_1 = __importDefault(require("../hooks/useDispatch"));
|
|
53
54
|
var form_1 = require("../actions/form");
|
|
54
55
|
var form_2 = require("../reducers/form");
|
|
@@ -104,6 +105,27 @@ var createInitialValues = function (_a) {
|
|
|
104
105
|
return (__assign(__assign((_b = {}, _b[paginationProps.attribute] = paginationProps.defaultValue, _b[paginationSizeProps.attribute] = paginationSizeProps.defaultValue, _b[sort.attribute] = sort.defaultValue, _b[layoutNamesProps.attribute] = layoutNamesProps.defaultValue, _b), initialQuery), configQuery));
|
|
105
106
|
};
|
|
106
107
|
exports.createInitialValues = createInitialValues;
|
|
108
|
+
var TOP_TREE_LEVEL_VALUE = 0;
|
|
109
|
+
var prepareItemsToTree = function (sourceItems, openedTreeItems, currentPage, itemsOnPage, onTreeItemClick, parentId, currentLevel) {
|
|
110
|
+
if (parentId === void 0) { parentId = ''; }
|
|
111
|
+
if (currentLevel === void 0) { currentLevel = TOP_TREE_LEVEL_VALUE; }
|
|
112
|
+
var treeItems = [];
|
|
113
|
+
if (currentPage && itemsOnPage && currentLevel === TOP_TREE_LEVEL_VALUE) {
|
|
114
|
+
var startIndex = (currentPage - 1) * itemsOnPage;
|
|
115
|
+
sourceItems = sourceItems.slice(startIndex, startIndex + itemsOnPage);
|
|
116
|
+
}
|
|
117
|
+
(sourceItems || []).forEach(function (item, index) {
|
|
118
|
+
var uniqueId = (0, list_1.getTreeItemUniqId)(item, index, parentId);
|
|
119
|
+
var isOpened = !!openedTreeItems[uniqueId];
|
|
120
|
+
var hasItems = !!(item.items && item.items.length > 0);
|
|
121
|
+
treeItems.push(__assign(__assign({}, item), { uniqueId: uniqueId, level: currentLevel, isOpened: isOpened, hasItems: hasItems, onTreeItemClick: onTreeItemClick }));
|
|
122
|
+
if (isOpened) {
|
|
123
|
+
treeItems = treeItems.concat((0, exports.prepareItemsToTree)(item.items, openedTreeItems, currentPage, itemsOnPage, onTreeItemClick, uniqueId, currentLevel + 1)).filter(Boolean);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return treeItems;
|
|
127
|
+
};
|
|
128
|
+
exports.prepareItemsToTree = prepareItemsToTree;
|
|
107
129
|
/**
|
|
108
130
|
* useList
|
|
109
131
|
* Добавляет массу возможностей для взаимодействия с коллекциями. Коллекции можно получать как с бекенда,
|
|
@@ -113,7 +135,18 @@ exports.createInitialValues = createInitialValues;
|
|
|
113
135
|
function useList(config) {
|
|
114
136
|
var _a, _b;
|
|
115
137
|
// Get list from redux state
|
|
116
|
-
var list = (0, useSelector_1["default"])(function (state) { return (0,
|
|
138
|
+
var list = (0, useSelector_1["default"])(function (state) { return (0, list_2.getList)(state, config.listId); });
|
|
139
|
+
var _c = (0, react_1.useState)({}), openedTreeItems = _c[0], setOpenedTreeItems = _c[1];
|
|
140
|
+
var onTreeItemClick = (0, react_1.useCallback)(function (uniqueId, item) {
|
|
141
|
+
var _a;
|
|
142
|
+
if (((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
143
|
+
setOpenedTreeItems(function (prevItems) {
|
|
144
|
+
var _a;
|
|
145
|
+
return (__assign(__assign({}, prevItems), (_a = {}, _a[uniqueId] = !prevItems[uniqueId], _a)));
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}, []);
|
|
149
|
+
var getTreeItems = (0, react_1.useCallback)(function (sourceItems) { return (0, exports.prepareItemsToTree)(sourceItems, openedTreeItems, list === null || list === void 0 ? void 0 : list.page, list === null || list === void 0 ? void 0 : list.pageSize, onTreeItemClick); }, [onTreeItemClick, openedTreeItems, list]);
|
|
117
150
|
// Normalize sort config
|
|
118
151
|
var sort = (0, exports.normalizeSortProps)(config.sort);
|
|
119
152
|
// Empty
|
|
@@ -141,7 +174,7 @@ function useList(config) {
|
|
|
141
174
|
// Layout switcher
|
|
142
175
|
var LayoutNames = require('../ui/list/LayoutNames')["default"];
|
|
143
176
|
var layoutNamesProps = (0, LayoutNames_1.normalizeLayoutNamesProps)(config.layout);
|
|
144
|
-
var renderLayoutNames = function () { return React.createElement(LayoutNames, __assign({ list: list }, layoutNamesProps)); };
|
|
177
|
+
var renderLayoutNames = function () { return (React.createElement(LayoutNames, __assign({ list: list }, layoutNamesProps))); };
|
|
145
178
|
// Models
|
|
146
179
|
var defaultSearchModel = (0, react_1.useMemo)(function () { return (0, exports.getDefaultSearchModel)({
|
|
147
180
|
paginationProps: paginationProps,
|
|
@@ -152,7 +185,7 @@ function useList(config) {
|
|
|
152
185
|
var model = (0, useModel_1["default"])(config.model);
|
|
153
186
|
var searchModel = (0, useModel_1["default"])(config.searchModel || ((_a = config.searchForm) === null || _a === void 0 ? void 0 : _a.model), defaultSearchModel);
|
|
154
187
|
// Address bar synchronization
|
|
155
|
-
var
|
|
188
|
+
var _d = (0, useAddressBar_1["default"])(__assign({ enable: !!config.addressBar, model: searchModel }, (typeof config.addressBar === 'boolean' ? { enable: config.addressBar } : config.addressBar))), initialQuery = _d.initialQuery, updateQuery = _d.updateQuery;
|
|
156
189
|
// Outside search form
|
|
157
190
|
var searchFormFields = (_b = config.searchForm) === null || _b === void 0 ? void 0 : _b.fields;
|
|
158
191
|
var SearchForm = require('../ui/list/SearchForm')["default"];
|
|
@@ -183,16 +216,18 @@ function useList(config) {
|
|
|
183
216
|
// Init list in redux store
|
|
184
217
|
(0, react_use_1.useMount)(function () {
|
|
185
218
|
if (!list) {
|
|
219
|
+
var items = config.hasTreeItems ? getTreeItems(config.items) : config.items;
|
|
186
220
|
var toDispatch = [
|
|
187
|
-
(0,
|
|
221
|
+
(0, list_3.listInit)(config.listId, {
|
|
188
222
|
listId: config.listId,
|
|
189
223
|
action: config.action || config.action === '' ? config.action : null,
|
|
190
224
|
actionMethod: config.actionMethod || exports.defaultConfig.actionMethod,
|
|
191
225
|
onFetch: config.onFetch,
|
|
226
|
+
onError: config.onError,
|
|
192
227
|
condition: config.condition,
|
|
193
228
|
scope: config.scope,
|
|
194
229
|
items: null,
|
|
195
|
-
sourceItems:
|
|
230
|
+
sourceItems: items || null,
|
|
196
231
|
total: config.initialTotal,
|
|
197
232
|
isRemote: !config.items,
|
|
198
233
|
primaryKey: config.primaryKey || exports.defaultConfig.primaryKey,
|
|
@@ -204,11 +239,15 @@ function useList(config) {
|
|
|
204
239
|
layoutAttribute: layoutNamesProps.attribute || null
|
|
205
240
|
}),
|
|
206
241
|
];
|
|
207
|
-
if (config.initialItems
|
|
208
|
-
|
|
242
|
+
if (config.initialItems) {
|
|
243
|
+
var initialItems = config.hasTreeItems ? getTreeItems(config.initialItems) : config.initialItems;
|
|
244
|
+
toDispatch.push((0, list_3.listSetItems)(config.listId, initialItems));
|
|
245
|
+
}
|
|
246
|
+
else if (config.items) {
|
|
247
|
+
toDispatch.push((0, list_3.listSetItems)(config.listId, items));
|
|
209
248
|
}
|
|
210
249
|
if (!config.initialItems) {
|
|
211
|
-
toDispatch.push((0,
|
|
250
|
+
toDispatch.push((0, list_3.listLazyFetch)(config.listId));
|
|
212
251
|
}
|
|
213
252
|
dispatch(toDispatch);
|
|
214
253
|
}
|
|
@@ -231,7 +270,7 @@ function useList(config) {
|
|
|
231
270
|
updateQuery(formValues);
|
|
232
271
|
// Send request
|
|
233
272
|
if (config.autoFetchOnFormChanges !== false) {
|
|
234
|
-
dispatch((0,
|
|
273
|
+
dispatch((0, list_3.listLazyFetch)(config.listId));
|
|
235
274
|
}
|
|
236
275
|
}
|
|
237
276
|
}, [config.autoFetchOnFormChanges, config.listId, dispatch, formId, formValues,
|
|
@@ -249,19 +288,29 @@ function useList(config) {
|
|
|
249
288
|
// Check change items
|
|
250
289
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
251
290
|
dispatch([
|
|
252
|
-
(0,
|
|
291
|
+
(0, list_3.listSetItems)(config.listId, config.items),
|
|
253
292
|
]);
|
|
254
293
|
}, [dispatch, config.items, config.listId]);
|
|
294
|
+
(0, react_use_1.useUpdateEffect)(function () {
|
|
295
|
+
if (config.hasTreeItems) {
|
|
296
|
+
dispatch([
|
|
297
|
+
(0, list_3.listSetItems)(config.listId, getTreeItems(config.items)),
|
|
298
|
+
]);
|
|
299
|
+
}
|
|
300
|
+
}, [dispatch, config.items, config.listId, openedTreeItems, list === null || list === void 0 ? void 0 : list.pageSize, list === null || list === void 0 ? void 0 : list.page]);
|
|
255
301
|
// Destroy
|
|
256
302
|
(0, react_use_1.useUnmount)(function () {
|
|
257
303
|
var autoDestroy = typeof config.autoDestroy === 'boolean' ? config.autoDestroy : exports.defaultConfig.autoDestroy;
|
|
258
304
|
if (autoDestroy) {
|
|
259
|
-
dispatch(
|
|
305
|
+
dispatch([
|
|
306
|
+
(0, list_3.listDestroy)(config.listId),
|
|
307
|
+
(0, form_1.formDestroy)(config.listId),
|
|
308
|
+
]);
|
|
260
309
|
}
|
|
261
310
|
});
|
|
262
311
|
var onFetch = (0, react_1.useCallback)(function (params) {
|
|
263
312
|
if (params === void 0) { params = {}; }
|
|
264
|
-
dispatch((0,
|
|
313
|
+
dispatch((0, list_3.listFetch)(config.listId, params));
|
|
265
314
|
}, [config.listId, dispatch]);
|
|
266
315
|
var onSort = (0, react_1.useCallback)(function (value) {
|
|
267
316
|
dispatch((0, form_1.formChange)(formId, sort.attribute, value));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React, { ChangeEvent } from 'react';
|
|
2
|
+
import { IInputParams } from '../ui/form/Field/fieldWrapper';
|
|
3
|
+
export default function useSaveCursorPosition(inputParams: IInputParams): {
|
|
4
|
+
inputRef: React.MutableRefObject<any>;
|
|
5
|
+
onChange: (event: ChangeEvent<HTMLInputElement>, value?: any) => void;
|
|
6
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
/* eslint-disable no-return-assign */
|
|
7
|
+
/* eslint-disable no-unused-expressions */
|
|
8
|
+
var react_1 = __importDefault(require("react"));
|
|
9
|
+
function useSaveCursorPosition(inputParams) {
|
|
10
|
+
var _a = react_1["default"].useState(null), cursor = _a[0], setCursor = _a[1];
|
|
11
|
+
var inputRef = react_1["default"].useRef(null);
|
|
12
|
+
react_1["default"].useEffect(function () {
|
|
13
|
+
var inputElement = inputRef.current;
|
|
14
|
+
if (inputElement) {
|
|
15
|
+
inputElement.setSelectionRange(cursor, cursor);
|
|
16
|
+
}
|
|
17
|
+
}, [cursor, inputParams.value]);
|
|
18
|
+
var onChange = react_1["default"].useCallback(function (event, value) {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
if (value === void 0) { value = null; }
|
|
21
|
+
setCursor((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.selectionStart);
|
|
22
|
+
inputParams.onChange(value || ((_b = event.target) === null || _b === void 0 ? void 0 : _b.value));
|
|
23
|
+
}, [inputParams]);
|
|
24
|
+
return {
|
|
25
|
+
inputRef: inputRef,
|
|
26
|
+
onChange: onChange
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports["default"] = useSaveCursorPosition;
|