@vkontakte/vkui 6.5.0 → 6.5.2
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/dist/cjs/components/Button/Button.js +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
- package/dist/cjs/components/Cell/Cell.js +10 -14
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/Chip/Chip.js +2 -2
- package/dist/cjs/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +9 -9
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.js +1 -1
- package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -13
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +45 -70
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectInput.d.ts +4 -2
- package/dist/cjs/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectInput.js +19 -24
- package/dist/cjs/components/CustomSelect/CustomSelectInput.js.map +1 -1
- package/dist/cjs/components/CustomSelect/helpers.d.ts +8 -0
- package/dist/cjs/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/cjs/components/CustomSelect/helpers.js +76 -0
- package/dist/cjs/components/CustomSelect/helpers.js.map +1 -0
- package/dist/cjs/components/CustomSelect/types.d.ts +12 -0
- package/dist/cjs/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/cjs/components/CustomSelect/types.js +6 -0
- package/dist/cjs/components/CustomSelect/types.js.map +1 -0
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -14
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts +6 -4
- package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/cjs/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.d.ts +1 -1
- package/dist/cjs/components/Footer/Footer.d.ts.map +1 -1
- package/dist/cjs/components/Footer/Footer.js +7 -3
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -2
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +3 -3
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts.map +1 -1
- package/dist/cjs/components/Group/Group.js +3 -2
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Link/Link.d.ts +1 -1
- package/dist/cjs/components/Link/Link.d.ts.map +1 -1
- package/dist/cjs/components/Link/Link.js +3 -5
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.d.ts +5 -1
- package/dist/cjs/components/Removable/Removable.d.ts.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +8 -5
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.d.ts +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.js +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/cjs/components/Search/Search.d.ts.map +1 -1
- package/dist/cjs/components/Search/Search.js +3 -2
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/Select/Select.d.ts.map +1 -1
- package/dist/cjs/components/Select/Select.js +1 -2
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -2
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js +2 -2
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.js +1 -3
- package/dist/cjs/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cjs/components/View/View.d.ts.map +1 -1
- package/dist/cjs/components/View/View.js +16 -32
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.js +27 -3
- package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cjs/hooks/useIsClient.d.ts +1 -1
- package/dist/cjs/hooks/useIsClient.js.map +1 -1
- package/dist/cjs/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts.map +1 -1
- package/dist/components/Cell/Cell.js +11 -15
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js +3 -3
- package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +9 -9
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/components/Clickable/Clickable.js +1 -1
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +3 -13
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +37 -62
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput.d.ts +4 -2
- package/dist/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput.js +19 -24
- package/dist/components/CustomSelect/CustomSelectInput.js.map +1 -1
- package/dist/components/CustomSelect/helpers.d.ts +8 -0
- package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/components/CustomSelect/helpers.js +48 -0
- package/dist/components/CustomSelect/helpers.js.map +1 -0
- package/dist/components/CustomSelect/types.d.ts +12 -0
- package/dist/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/components/CustomSelect/types.js +3 -0
- package/dist/components/CustomSelect/types.js.map +1 -0
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -14
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts +6 -4
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/components/Footer/Footer.d.ts +1 -1
- package/dist/components/Footer/Footer.d.ts.map +1 -1
- package/dist/components/Footer/Footer.js +7 -3
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +3 -3
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +4 -4
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Group/Group.d.ts.map +1 -1
- package/dist/components/Group/Group.js +3 -2
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.js +4 -6
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +5 -1
- package/dist/components/Removable/Removable.d.ts.map +1 -1
- package/dist/components/Removable/Removable.js +9 -6
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/components/RootComponent/RootComponent.js +1 -1
- package/dist/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js +3 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +1 -2
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts +2 -2
- package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.js +3 -3
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.js +2 -4
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js +17 -33
- package/dist/components/View/View.js.map +1 -1
- package/dist/components.css +3 -3
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +260 -263
- package/dist/cssm/components/Button/Button.js +2 -2
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +11 -14
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.module.css +0 -4
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +3 -3
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +9 -9
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.js +1 -1
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -13
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +36 -59
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput.d.ts +4 -2
- package/dist/cssm/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput.js +16 -21
- package/dist/cssm/components/CustomSelect/CustomSelectInput.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput.module.css +74 -40
- package/dist/cssm/components/CustomSelect/helpers.d.ts +8 -0
- package/dist/cssm/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/cssm/components/CustomSelect/helpers.js +44 -0
- package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
- package/dist/cssm/components/CustomSelect/types.d.ts +12 -0
- package/dist/cssm/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/cssm/components/CustomSelect/types.js +3 -0
- package/dist/cssm/components/CustomSelect/types.js.map +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -13
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts +6 -4
- package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.d.ts +1 -1
- package/dist/cssm/components/Footer/Footer.d.ts.map +1 -1
- package/dist/cssm/components/Footer/Footer.js +4 -2
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +36 -23
- package/dist/cssm/components/FormItem/FormItem.js +3 -3
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +4 -4
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/Group/Group.d.ts.map +1 -1
- package/dist/cssm/components/Group/Group.js +3 -2
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +0 -4
- package/dist/cssm/components/Link/Link.d.ts +1 -1
- package/dist/cssm/components/Link/Link.d.ts.map +1 -1
- package/dist/cssm/components/Link/Link.js +2 -3
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.d.ts +5 -1
- package/dist/cssm/components/Removable/Removable.d.ts.map +1 -1
- package/dist/cssm/components/Removable/Removable.js +7 -5
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +4 -0
- package/dist/cssm/components/RootComponent/RootComponent.d.ts +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.js +2 -1
- package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.module.css +10 -0
- package/dist/cssm/components/Search/Search.d.ts.map +1 -1
- package/dist/cssm/components/Search/Search.js +3 -2
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Select/Select.d.ts.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -2
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +4 -0
- package/dist/cssm/components/Snackbar/Snackbar.js +3 -3
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js +2 -3
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/View/View.d.ts.map +1 -1
- package/dist/cssm/components/View/View.js +17 -33
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js +27 -3
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useIsClient.d.ts +1 -1
- package/dist/cssm/hooks/useIsClient.js +1 -1
- package/dist/cssm/hooks/useIsClient.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/cssm/styles/constants.css +2 -3
- package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/hooks/useEnsuredControl.js +27 -3
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useIsClient.d.ts +1 -1
- package/dist/hooks/useIsClient.js +1 -1
- package/dist/hooks/useIsClient.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/vkui.css +3 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +260 -263
- package/package.json +1 -1
- package/src/components/Button/Button.tsx +2 -2
- package/src/components/Cell/Cell.module.css +0 -4
- package/src/components/Cell/Cell.tsx +9 -16
- package/src/components/ChipsInputBase/Chip/Chip.tsx +3 -3
- package/src/components/ChipsSelect/ChipsSelect.tsx +12 -12
- package/src/components/Clickable/Clickable.tsx +4 -1
- package/src/components/CustomSelect/CustomSelect.tsx +52 -104
- package/src/components/CustomSelect/CustomSelectInput.module.css +55 -35
- package/src/components/CustomSelect/CustomSelectInput.tsx +25 -36
- package/src/components/CustomSelect/helpers.tsx +61 -0
- package/src/components/CustomSelect/types.ts +15 -0
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +3 -17
- package/src/components/DateInput/DateInput.tsx +1 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/components/Flex/FlexItem/FlexItem.tsx +6 -4
- package/src/components/Footer/Footer.tsx +14 -2
- package/src/components/FormField/FormField.module.css +32 -21
- package/src/components/FormItem/FormItem.tsx +3 -3
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -8
- package/src/components/Group/Group.tsx +3 -2
- package/src/components/ImageBase/ImageBase.module.css +0 -4
- package/src/components/Link/Link.tsx +1 -3
- package/src/components/Removable/Removable.module.css +4 -0
- package/src/components/Removable/Removable.tsx +12 -4
- package/src/components/RootComponent/RootComponent.module.css +10 -0
- package/src/components/RootComponent/RootComponent.tsx +12 -2
- package/src/components/Search/Search.tsx +3 -2
- package/src/components/Select/Select.tsx +0 -1
- package/src/components/SelectTypography/SelectTypography.tsx +2 -5
- package/src/components/SimpleCell/SimpleCell.module.css +4 -0
- package/src/components/SimpleCell/SimpleCell.tsx +2 -1
- package/src/components/Snackbar/Snackbar.tsx +3 -3
- package/src/components/ToolButton/ToolButton.tsx +1 -3
- package/src/components/View/View.tsx +21 -36
- package/src/hooks/useEnsuredControl.ts +38 -4
- package/src/hooks/useIsClient.ts +1 -1
- package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +1 -1
- package/src/styles/constants.css +2 -3
|
@@ -17,19 +17,17 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
|
17
17
|
const _vkjs = require("@vkontakte/vkjs");
|
|
18
18
|
const _useAdaptivity = require("../../hooks/useAdaptivity");
|
|
19
19
|
const _useExternRef = require("../../hooks/useExternRef");
|
|
20
|
-
const _useFocusWithin = require("../../hooks/useFocusWithin");
|
|
21
20
|
const _usePlatform = require("../../hooks/usePlatform");
|
|
22
21
|
const _select = require("../../lib/select");
|
|
23
22
|
const _FormField = require("../FormField/FormField");
|
|
24
23
|
const _SelectTypography = require("../SelectTypography/SelectTypography");
|
|
25
|
-
const _Text = require("../Typography/Text/Text");
|
|
26
24
|
const _VisuallyHidden = require("../VisuallyHidden/VisuallyHidden");
|
|
27
25
|
const sizeYClassNames = {
|
|
28
26
|
none: "vkuiCustomSelectInput--sizeY-none",
|
|
29
27
|
compact: "vkuiCustomSelectInput--sizeY-compact"
|
|
30
28
|
};
|
|
31
29
|
const CustomSelectInput = (_param)=>{
|
|
32
|
-
var { align = 'left', getRef, className, getRootRef, style, before, after, status,
|
|
30
|
+
var { align = 'left', getRef, className, getRootRef, style, before, after, status, selectedOptionLabel, selectType = 'default', multiline, disabled, fetching, labelTextTestId, searchable } = _param, restInputProps = _object_without_properties._(_param, [
|
|
33
31
|
"align",
|
|
34
32
|
"getRef",
|
|
35
33
|
"className",
|
|
@@ -38,35 +36,32 @@ const CustomSelectInput = (_param)=>{
|
|
|
38
36
|
"before",
|
|
39
37
|
"after",
|
|
40
38
|
"status",
|
|
41
|
-
"
|
|
42
|
-
"placeholder",
|
|
39
|
+
"selectedOptionLabel",
|
|
43
40
|
"selectType",
|
|
44
41
|
"multiline",
|
|
45
42
|
"disabled",
|
|
46
43
|
"fetching",
|
|
47
|
-
"labelTextTestId"
|
|
44
|
+
"labelTextTestId",
|
|
45
|
+
"searchable"
|
|
48
46
|
]);
|
|
49
47
|
const { sizeY = 'none' } = (0, _useAdaptivity.useAdaptivity)();
|
|
50
|
-
const title = children || placeholder;
|
|
51
|
-
const showLabelOrPlaceholder = !Boolean(restProps.value);
|
|
52
48
|
const handleRootRef = (0, _useExternRef.useExternRef)(getRootRef);
|
|
53
|
-
const
|
|
54
|
-
const input = /*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
49
|
+
const platform = (0, _usePlatform.usePlatform)();
|
|
50
|
+
const input = /*#__PURE__*/ (0, _jsxruntime.jsx)(_SelectTypography.SelectTypography, _object_spread_props._(_object_spread._({
|
|
51
|
+
selectType: selectType,
|
|
55
52
|
type: "text"
|
|
56
|
-
},
|
|
53
|
+
}, restInputProps), {
|
|
57
54
|
disabled: disabled && !fetching,
|
|
58
|
-
readOnly:
|
|
55
|
+
readOnly: restInputProps.readOnly || !searchable || disabled && fetching,
|
|
59
56
|
Component: "input",
|
|
60
57
|
normalize: false,
|
|
61
|
-
className:
|
|
62
|
-
getRootRef: getRef
|
|
63
|
-
placeholder: children ? '' : placeholder
|
|
58
|
+
className: "vkuiCustomSelectInput__input",
|
|
59
|
+
getRootRef: getRef
|
|
64
60
|
}));
|
|
65
|
-
const platform = (0, _usePlatform.usePlatform)();
|
|
66
61
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_FormField.FormField, {
|
|
67
62
|
Component: "div",
|
|
68
63
|
style: style,
|
|
69
|
-
className: (0, _vkjs.classNames)("vkuiCustomSelectInput", align === 'right' && "vkuiCustomSelectInput--align-right", align === 'center' && "vkuiCustomSelectInput--align-center", !
|
|
64
|
+
className: (0, _vkjs.classNames)("vkuiCustomSelectInput", align === 'right' && "vkuiCustomSelectInput--align-right", align === 'center' && "vkuiCustomSelectInput--align-center", !selectedOptionLabel && "vkuiCustomSelectInput--empty", multiline && "vkuiCustomSelectInput--multiline", sizeY !== 'regular' && sizeYClassNames[sizeY], before && "vkuiCustomSelectInput--hasBefore", after && "vkuiCustomSelectInput--hasAfter", className),
|
|
70
65
|
getRootRef: handleRootRef,
|
|
71
66
|
before: before,
|
|
72
67
|
after: after,
|
|
@@ -76,20 +71,20 @@ const CustomSelectInput = (_param)=>{
|
|
|
76
71
|
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
77
72
|
className: "vkuiCustomSelectInput__input-group",
|
|
78
73
|
children: [
|
|
74
|
+
!searchable && platform === 'ios' ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_VisuallyHidden.VisuallyHidden, {
|
|
75
|
+
children: input
|
|
76
|
+
}) : input,
|
|
79
77
|
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
80
|
-
className: (0, _vkjs.classNames)("
|
|
78
|
+
className: (0, _vkjs.classNames)("vkuiCustomSelectInput__label-wrapper", className),
|
|
81
79
|
tabIndex: -1,
|
|
82
80
|
"aria-hidden": true,
|
|
83
81
|
"data-testid": labelTextTestId,
|
|
84
82
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_SelectTypography.SelectTypography, {
|
|
85
83
|
selectType: selectType,
|
|
86
|
-
className: "
|
|
87
|
-
children:
|
|
84
|
+
className: "vkuiCustomSelectInput__label",
|
|
85
|
+
children: selectedOptionLabel || restInputProps.placeholder
|
|
88
86
|
})
|
|
89
|
-
})
|
|
90
|
-
restProps.readOnly && platform === 'ios' ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_VisuallyHidden.VisuallyHidden, {
|
|
91
|
-
children: input
|
|
92
|
-
}) : input
|
|
87
|
+
})
|
|
93
88
|
]
|
|
94
89
|
})
|
|
95
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelectInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelectInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectInput.module.css';\n\nconst sizeYClassNames = {\n none: styles['CustomSelectInput--sizeY-none'],\n compact: styles['CustomSelectInput--sizeY-compact'],\n};\n\nexport interface CustomSelectInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Omit<FormFieldProps, 'mode' | 'type' | 'maxHeight'> {\n selectType?: SelectType;\n multiline?: boolean;\n labelTextTestId?: string;\n fetching?: boolean;\n searchable?: boolean;\n selectedOptionLabel?: React.ReactElement | string;\n}\n\n/**\n * @since 5.10.0\n * @private\n */\nexport const CustomSelectInput = ({\n align = 'left',\n getRef,\n className,\n getRootRef,\n style,\n before,\n after,\n status,\n selectedOptionLabel,\n selectType = 'default',\n multiline,\n disabled,\n fetching,\n labelTextTestId,\n searchable,\n ...restInputProps\n}: CustomSelectInputProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(getRootRef);\n\n const platform = usePlatform();\n\n const input = (\n <SelectTypography\n selectType={selectType}\n type=\"text\"\n {...restInputProps}\n disabled={disabled && !fetching}\n readOnly={restInputProps.readOnly || !searchable || (disabled && fetching)}\n Component=\"input\"\n normalize={false}\n className={styles['CustomSelectInput__input']}\n getRootRef={getRef}\n />\n );\n\n return (\n <FormField\n Component=\"div\"\n style={style}\n className={classNames(\n styles['CustomSelectInput'],\n align === 'right' && styles['CustomSelectInput--align-right'],\n align === 'center' && styles['CustomSelectInput--align-center'],\n !selectedOptionLabel && styles['CustomSelectInput--empty'],\n multiline && styles['CustomSelectInput--multiline'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n before && styles['CustomSelectInput--hasBefore'],\n after && styles['CustomSelectInput--hasAfter'],\n className,\n )}\n getRootRef={handleRootRef}\n before={before}\n after={after}\n disabled={disabled}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n >\n <div className={styles['CustomSelectInput__input-group']}>\n {/* Чтобы отключить autosuggestion в iOS, тултипы которого начинают всплывать даже когда input\n * в режиме readonly, мы оборачиваем инпут в VisuallyHidden.\n * Тултипы появляются при каждом клике на input.\n * смотри: https://github.com/VKCOM/VKUI/issues/6205\n *\n * Достаточно не дать пользователю кликнуть по инпуту.\n * Делаем это только для режима read-only. Потому что проблема именно в режиме read-only.\n * Обертка вокруг инпута обрабатывает клики и передаёт фокус, так что на взаимодействии с инпутом это никак не скажется.\n **/}\n {!searchable && platform === 'ios' ? <VisuallyHidden>{input}</VisuallyHidden> : input}\n <div\n className={classNames(styles['CustomSelectInput__label-wrapper'], className)}\n tabIndex={-1}\n aria-hidden\n data-testid={labelTextTestId}\n >\n <SelectTypography selectType={selectType} className={styles['CustomSelectInput__label']}>\n {selectedOptionLabel || restInputProps.placeholder}\n </SelectTypography>\n </div>\n </div>\n </FormField>\n );\n};\n"],"names":["CustomSelectInput","sizeYClassNames","none","compact","align","getRef","className","getRootRef","style","before","after","status","selectedOptionLabel","selectType","multiline","disabled","fetching","labelTextTestId","searchable","restInputProps","sizeY","useAdaptivity","handleRootRef","useExternRef","platform","usePlatform","input","SelectTypography","type","readOnly","Component","normalize","FormField","classNames","mode","getFormFieldModeFromSelectType","div","VisuallyHidden","tabIndex","aria-hidden","data-testid","placeholder"],"mappings":";;;;+BAoCaA;;;eAAAA;;;;;;;;iEApCU;sBACI;+BACG;8BACD;6BACD;wBACmB;2BAEL;kCAET;gCACF;AAG/B,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAoBO,MAAMH,oBAAoB;QAAC,EAChCI,QAAQ,MAAM,EACdC,MAAM,EACNC,SAAS,EACTC,UAAU,EACVC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,mBAAmB,EACnBC,aAAa,SAAS,EACtBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,eAAe,EACfC,UAAU,EAEa,WADpBC;QAfHf;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGC,IAAAA,4BAAa;IAExC,MAAMC,gBAAgBC,IAAAA,0BAAY,EAAChB;IAEnC,MAAMiB,WAAWC,IAAAA,wBAAW;IAE5B,MAAMC,sBACJ,qBAACC,kCAAgB;QACfd,YAAYA;QACZe,MAAK;OACDT;QACJJ,UAAUA,YAAY,CAACC;QACvBa,UAAUV,eAAeU,QAAQ,IAAI,CAACX,cAAeH,YAAYC;QACjEc,WAAU;QACVC,WAAW;QACXzB,SAAS;QACTC,YAAYF;;IAIhB,qBACE,qBAAC2B,oBAAS;QACRF,WAAU;QACVtB,OAAOA;QACPF,WAAW2B,IAAAA,gBAAU,2BAEnB7B,UAAU,iDACVA,UAAU,mDACV,CAACQ,uDACDE,iDACAM,UAAU,aAAanB,eAAe,CAACmB,MAAM,EAC7CX,8CACAC,4CACAJ;QAEFC,YAAYe;QACZb,QAAQA;QACRC,OAAOA;QACPK,UAAUA;QACVmB,MAAMC,IAAAA,sCAA8B,EAACtB;QACrCF,QAAQA;kBAER,cAAA,sBAACyB;YAAI9B,SAAS;;gBAUX,CAACY,cAAcM,aAAa,sBAAQ,qBAACa,8BAAc;8BAAEX;qBAA0BA;8BAChF,qBAACU;oBACC9B,WAAW2B,IAAAA,gBAAU,0CAA6C3B;oBAClEgC,UAAU,CAAC;oBACXC,aAAW;oBACXC,eAAavB;8BAEb,cAAA,qBAACU,kCAAgB;wBAACd,YAAYA;wBAAYP,SAAS;kCAChDM,uBAAuBO,eAAesB,WAAW;;;;;;AAM9D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { CustomSelectOptionInterface, CustomSelectRenderOption, SelectValue } from './types';
|
|
3
|
+
export declare const findIndexAfter: (options?: CustomSelectOptionInterface[], startIndex?: number) => number;
|
|
4
|
+
export declare const findIndexBefore: (options?: CustomSelectOptionInterface[], endIndex?: number) => number;
|
|
5
|
+
export declare function findSelectedIndex<T extends CustomSelectOptionInterface>(options: T[] | undefined, value: SelectValue, withClear: boolean): number;
|
|
6
|
+
export declare function calculateInputValueFromOptions<T extends CustomSelectOptionInterface>(options: T[] | undefined, selectValue: SelectValue): string;
|
|
7
|
+
export declare function defaultRenderOptionFn<T extends CustomSelectOptionInterface>({ option, ...props }: CustomSelectRenderOption<T>): React.ReactNode;
|
|
8
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomSelect/helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElG,eAAO,MAAM,cAAc,aAAa,2BAA2B,EAAE,gCAKpE,CAAC;AAEF,eAAO,MAAM,eAAe,aACjB,2BAA2B,EAAE,aAC5B,MAAM,WAejB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,2BAA2B,EACrE,OAAO,EAAE,CAAC,EAAE,YAAK,EACjB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,OAAO,UAWnB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,2BAA2B,EAClF,OAAO,EAAE,CAAC,EAAE,YAAK,EACjB,WAAW,EAAE,WAAW,UAIzB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,2BAA2B,EAAE,EAC3E,MAAM,EACN,GAAG,KAAK,EACT,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAE/C"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
calculateInputValueFromOptions: function() {
|
|
13
|
+
return calculateInputValueFromOptions;
|
|
14
|
+
},
|
|
15
|
+
defaultRenderOptionFn: function() {
|
|
16
|
+
return defaultRenderOptionFn;
|
|
17
|
+
},
|
|
18
|
+
findIndexAfter: function() {
|
|
19
|
+
return findIndexAfter;
|
|
20
|
+
},
|
|
21
|
+
findIndexBefore: function() {
|
|
22
|
+
return findIndexBefore;
|
|
23
|
+
},
|
|
24
|
+
findSelectedIndex: function() {
|
|
25
|
+
return findSelectedIndex;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
29
|
+
const _object_spread = require("@swc/helpers/_/_object_spread");
|
|
30
|
+
const _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
31
|
+
const _jsxruntime = require("react/jsx-runtime");
|
|
32
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
33
|
+
const _children = require("../../lib/children");
|
|
34
|
+
const _CustomSelectOption = require("../CustomSelectOption/CustomSelectOption");
|
|
35
|
+
const findIndexAfter = (options = [], startIndex = -1)=>{
|
|
36
|
+
if (startIndex >= options.length - 1) {
|
|
37
|
+
return -1;
|
|
38
|
+
}
|
|
39
|
+
return options.findIndex((option, i)=>i > startIndex && !option.disabled);
|
|
40
|
+
};
|
|
41
|
+
const findIndexBefore = (options = [], endIndex = options.length)=>{
|
|
42
|
+
let result = -1;
|
|
43
|
+
if (endIndex <= 0) {
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
for(let i = endIndex - 1; i >= 0; i--){
|
|
47
|
+
let option = options[i];
|
|
48
|
+
if (!option.disabled) {
|
|
49
|
+
result = i;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
function findSelectedIndex(options = [], value, withClear) {
|
|
56
|
+
if (withClear && value === '') {
|
|
57
|
+
return -1;
|
|
58
|
+
}
|
|
59
|
+
var _options_findIndex;
|
|
60
|
+
return (_options_findIndex = options.findIndex((item)=>{
|
|
61
|
+
value = typeof item.value === 'number' ? Number(value) : value;
|
|
62
|
+
return item.value === value;
|
|
63
|
+
})) !== null && _options_findIndex !== void 0 ? _options_findIndex : -1;
|
|
64
|
+
}
|
|
65
|
+
function calculateInputValueFromOptions(options = [], selectValue) {
|
|
66
|
+
const selectedOption = options.find((option)=>option.value === selectValue);
|
|
67
|
+
return selectedOption ? (0, _children.getTextFromChildren)(selectedOption.label) : '';
|
|
68
|
+
}
|
|
69
|
+
function defaultRenderOptionFn(_param) {
|
|
70
|
+
var { option } = _param, props = _object_without_properties._(_param, [
|
|
71
|
+
"option"
|
|
72
|
+
]);
|
|
73
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_CustomSelectOption.CustomSelectOption, _object_spread._({}, props));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelect/helpers.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getTextFromChildren } from '../../lib/children';\nimport { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';\nimport type { CustomSelectOptionInterface, CustomSelectRenderOption, SelectValue } from './types';\n\nexport const findIndexAfter = (options: CustomSelectOptionInterface[] = [], startIndex = -1) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nexport const findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nexport function findSelectedIndex<T extends CustomSelectOptionInterface>(\n options: T[] = [],\n value: SelectValue,\n withClear: boolean,\n) {\n if (withClear && value === '') {\n return -1;\n }\n return (\n options.findIndex((item) => {\n value = typeof item.value === 'number' ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nexport function calculateInputValueFromOptions<T extends CustomSelectOptionInterface>(\n options: T[] = [],\n selectValue: SelectValue,\n) {\n const selectedOption = options.find((option) => option.value === selectValue);\n return selectedOption ? getTextFromChildren(selectedOption.label) : '';\n}\n\nexport function defaultRenderOptionFn<T extends CustomSelectOptionInterface>({\n option,\n ...props\n}: CustomSelectRenderOption<T>): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n"],"names":["calculateInputValueFromOptions","defaultRenderOptionFn","findIndexAfter","findIndexBefore","findSelectedIndex","options","startIndex","length","findIndex","option","i","disabled","endIndex","result","value","withClear","item","Number","selectValue","selectedOption","find","getTextFromChildren","label","props","CustomSelectOption"],"mappings":";;;;;;;;;;;IA+CgBA,8BAA8B;eAA9BA;;IAQAC,qBAAqB;eAArBA;;IAlDHC,cAAc;eAAdA;;IAOAC,eAAe;eAAfA;;IAmBGC,iBAAiB;eAAjBA;;;;;;;iEA/BO;0BACa;oCACD;AAG5B,MAAMF,iBAAiB,CAACG,UAAyC,EAAE,EAAEC,aAAa,CAAC,CAAC;IACzF,IAAIA,cAAcD,QAAQE,MAAM,GAAG,GAAG;QACpC,OAAO,CAAC;IACV;IACA,OAAOF,QAAQG,SAAS,CAAC,CAACC,QAAQC,IAAMA,IAAIJ,cAAc,CAACG,OAAOE,QAAQ;AAC5E;AAEO,MAAMR,kBAAkB,CAC7BE,UAAyC,EAAE,EAC3CO,WAAmBP,QAAQE,MAAM;IAEjC,IAAIM,SAAS,CAAC;IACd,IAAID,YAAY,GAAG;QACjB,OAAOC;IACT;IACA,IAAK,IAAIH,IAAIE,WAAW,GAAGF,KAAK,GAAGA,IAAK;QACtC,IAAID,SAASJ,OAAO,CAACK,EAAE;QAEvB,IAAI,CAACD,OAAOE,QAAQ,EAAE;YACpBE,SAASH;YACT;QACF;IACF;IACA,OAAOG;AACT;AAEO,SAAST,kBACdC,UAAe,EAAE,EACjBS,KAAkB,EAClBC,SAAkB;IAElB,IAAIA,aAAaD,UAAU,IAAI;QAC7B,OAAO,CAAC;IACV;QAEET;IADF,OACEA,CAAAA,qBAAAA,QAAQG,SAAS,CAAC,CAACQ;QACjBF,QAAQ,OAAOE,KAAKF,KAAK,KAAK,WAAWG,OAAOH,SAASA;QACzD,OAAOE,KAAKF,KAAK,KAAKA;IACxB,gBAHAT,gCAAAA,qBAGM,CAAC;AAEX;AAEO,SAASL,+BACdK,UAAe,EAAE,EACjBa,WAAwB;IAExB,MAAMC,iBAAiBd,QAAQe,IAAI,CAAC,CAACX,SAAWA,OAAOK,KAAK,KAAKI;IACjE,OAAOC,iBAAiBE,IAAAA,6BAAmB,EAACF,eAAeG,KAAK,IAAI;AACtE;AAEO,SAASrB,sBAA6D;QAAA,EAC3EQ,MAAM,EAEsB,GAH+C,QAExEc,qCAFwE;QAC3Ed;;IAGA,qBAAO,qBAACe,sCAAkB,uBAAKD;AACjC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomSelectOptionProps } from '../CustomSelectOption/CustomSelectOption';
|
|
2
|
+
export type SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>['value'];
|
|
3
|
+
export interface CustomSelectOptionInterface {
|
|
4
|
+
value: SelectValue;
|
|
5
|
+
label: React.ReactElement | string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
[index: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export interface CustomSelectRenderOption<T extends CustomSelectOptionInterface> extends CustomSelectOptionProps {
|
|
10
|
+
option: T;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomSelect/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAEjF,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,2BAA2B,CAC7E,SAAQ,uBAAuB;IAC/B,MAAM,EAAE,CAAC,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelect/types.ts"],"names":[],"mappings":""}
|
|
@@ -20,5 +20,5 @@ export interface CustomSelectDropdownProps extends HTMLAttributesWithRootRef<HTM
|
|
|
20
20
|
*/
|
|
21
21
|
noMaxHeight?: boolean;
|
|
22
22
|
}
|
|
23
|
-
export declare const CustomSelectDropdown: ({ children, targetRef, scrollBoxRef, placement, fetching,
|
|
23
|
+
export declare const CustomSelectDropdown: ({ children, targetRef, scrollBoxRef, placement, fetching, offsetDistance, autoWidth, forcePortal, autoHideScrollbar, autoHideScrollbarDelay, className, noMaxHeight, overscrollBehavior, ...restProps }: CustomSelectDropdownProps) => React.ReactNode;
|
|
24
24
|
//# sourceMappingURL=CustomSelectDropdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomSelectDropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomSelectDropdown/CustomSelectDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAoB,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAK/E,MAAM,WAAW,yBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,IAAI,CACF,qBAAqB,EACrB,oBAAoB,GAAG,mBAAmB,GAAG,wBAAwB,CACtE,EACD,mBAAmB;IACrB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"CustomSelectDropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomSelectDropdown/CustomSelectDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAoB,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAK/E,MAAM,WAAW,yBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,IAAI,CACF,qBAAqB,EACrB,oBAAoB,GAAG,mBAAmB,GAAG,wBAAwB,CACtE,EACD,mBAAmB;IACrB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,oBAAoB,4MAgB9B,yBAAyB,KAAG,KAAK,CAAC,SA0CpC,CAAC"}
|
|
@@ -18,16 +18,14 @@ const _vkjs = require("@vkontakte/vkjs");
|
|
|
18
18
|
const _CustomScrollView = require("../CustomScrollView/CustomScrollView");
|
|
19
19
|
const _Popper = require("../Popper/Popper");
|
|
20
20
|
const _Spinner = require("../Spinner/Spinner");
|
|
21
|
-
const calcIsTop = (placement)=>placement.startsWith('top');
|
|
22
21
|
const CustomSelectDropdown = (_param)=>{
|
|
23
|
-
var { children, targetRef, scrollBoxRef, placement = 'bottom', fetching,
|
|
22
|
+
var { children, targetRef, scrollBoxRef, placement = 'bottom', fetching, offsetDistance = 0, autoWidth = false, forcePortal = true, autoHideScrollbar, autoHideScrollbarDelay, className, noMaxHeight = false, // CustomScrollView
|
|
24
23
|
overscrollBehavior } = _param, restProps = _object_without_properties._(_param, [
|
|
25
24
|
"children",
|
|
26
25
|
"targetRef",
|
|
27
26
|
"scrollBoxRef",
|
|
28
27
|
"placement",
|
|
29
28
|
"fetching",
|
|
30
|
-
"onPlacementChange",
|
|
31
29
|
"offsetDistance",
|
|
32
30
|
"autoWidth",
|
|
33
31
|
"forcePortal",
|
|
@@ -37,22 +35,12 @@ const CustomSelectDropdown = (_param)=>{
|
|
|
37
35
|
"noMaxHeight",
|
|
38
36
|
"overscrollBehavior"
|
|
39
37
|
]);
|
|
40
|
-
const [isTop, setIsTop] = _react.useState(()=>calcIsTop(placement));
|
|
41
|
-
const onPlacementChange = _react.useCallback((placement)=>{
|
|
42
|
-
setIsTop(calcIsTop(placement));
|
|
43
|
-
if (parentOnPlacementChange) {
|
|
44
|
-
parentOnPlacementChange(placement);
|
|
45
|
-
}
|
|
46
|
-
}, [
|
|
47
|
-
parentOnPlacementChange
|
|
48
|
-
]);
|
|
49
38
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Popper.Popper, _object_spread_props._(_object_spread._({
|
|
50
39
|
targetRef: targetRef,
|
|
51
40
|
offsetByMainAxis: offsetDistance,
|
|
52
41
|
sameWidth: !autoWidth,
|
|
53
|
-
onPlacementChange: onPlacementChange,
|
|
54
42
|
placement: placement,
|
|
55
|
-
className: (0, _vkjs.classNames)("vkuiCustomSelectDropdown", 'vkuiInternalCustomSelectDropdown', offsetDistance === 0 && (
|
|
43
|
+
className: (0, _vkjs.classNames)("vkuiCustomSelectDropdown", 'vkuiInternalCustomSelectDropdown', offsetDistance === 0 && (placement.includes('top') ? "vkuiCustomSelectDropdown--top" : "vkuiCustomSelectDropdown--bottom"), autoWidth && (0, _vkjs.classNames)("vkuiCustomSelectDropdown--wide", 'vkuiInternalCustomSelectDropdown--wide'), className),
|
|
56
44
|
usePortal: forcePortal,
|
|
57
45
|
autoUpdateOnTargetResize: true
|
|
58
46
|
}, restProps), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelectDropdown/CustomSelectDropdown.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CustomScrollView, CustomScrollViewProps } from '../CustomScrollView/CustomScrollView';\nimport { TrackerOptionsProps } from '../CustomScrollView/useTrackerVisibility';\nimport { Popper } from '../Popper/Popper';\nimport { Spinner } from '../Spinner/Spinner';\nimport styles from './CustomSelectDropdown.module.css';\n\nexport interface CustomSelectDropdownProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n Pick<\n CustomScrollViewProps,\n 'overscrollBehavior' | 'autoHideScrollbar' | 'autoHideScrollbarDelay'\n >,\n TrackerOptionsProps {\n targetRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n scrollBoxRef?: React.Ref<HTMLDivElement>;\n fetching?: boolean;\n offsetDistance?: number;\n /**\n * Ширина раскрывающегося списка зависит от контента\n */\n autoWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (placement: Placement) => void;\n /**\n * Отключает максимальную высоту по умолчанию\n */\n noMaxHeight?: boolean;\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelectDropdown/CustomSelectDropdown.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { CustomScrollView, CustomScrollViewProps } from '../CustomScrollView/CustomScrollView';\nimport { TrackerOptionsProps } from '../CustomScrollView/useTrackerVisibility';\nimport { Popper } from '../Popper/Popper';\nimport { Spinner } from '../Spinner/Spinner';\nimport styles from './CustomSelectDropdown.module.css';\n\nexport interface CustomSelectDropdownProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n Pick<\n CustomScrollViewProps,\n 'overscrollBehavior' | 'autoHideScrollbar' | 'autoHideScrollbarDelay'\n >,\n TrackerOptionsProps {\n targetRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n scrollBoxRef?: React.Ref<HTMLDivElement>;\n fetching?: boolean;\n offsetDistance?: number;\n /**\n * Ширина раскрывающегося списка зависит от контента\n */\n autoWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (placement: Placement) => void;\n /**\n * Отключает максимальную высоту по умолчанию\n */\n noMaxHeight?: boolean;\n}\n\nexport const CustomSelectDropdown = ({\n children,\n targetRef,\n scrollBoxRef,\n placement = 'bottom',\n fetching,\n offsetDistance = 0,\n autoWidth = false,\n forcePortal = true,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n className,\n noMaxHeight = false,\n // CustomScrollView\n overscrollBehavior,\n ...restProps\n}: CustomSelectDropdownProps): React.ReactNode => {\n return (\n <Popper\n targetRef={targetRef}\n offsetByMainAxis={offsetDistance}\n sameWidth={!autoWidth}\n placement={placement}\n className={classNames(\n styles['CustomSelectDropdown'],\n 'vkuiInternalCustomSelectDropdown',\n offsetDistance === 0 &&\n (placement.includes('top')\n ? styles['CustomSelectDropdown--top']\n : styles['CustomSelectDropdown--bottom']),\n autoWidth &&\n classNames(\n styles['CustomSelectDropdown--wide'],\n 'vkuiInternalCustomSelectDropdown--wide',\n ),\n className,\n )}\n usePortal={forcePortal}\n autoUpdateOnTargetResize\n {...restProps}\n >\n <CustomScrollView\n boxRef={scrollBoxRef}\n className={noMaxHeight ? undefined : styles['CustomSelectDropdown__in--withMaxHeight']}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n overscrollBehavior={overscrollBehavior}\n >\n {fetching ? (\n <div className={styles['CustomSelectDropdown__fetching']}>\n <Spinner size=\"small\" />\n </div>\n ) : (\n children\n )}\n </CustomScrollView>\n </Popper>\n );\n};\n"],"names":["CustomSelectDropdown","children","targetRef","scrollBoxRef","placement","fetching","offsetDistance","autoWidth","forcePortal","autoHideScrollbar","autoHideScrollbarDelay","className","noMaxHeight","overscrollBehavior","restProps","Popper","offsetByMainAxis","sameWidth","classNames","includes","usePortal","autoUpdateOnTargetResize","CustomScrollView","boxRef","undefined","div","Spinner","size"],"mappings":";;;;+BAkCaA;;;eAAAA;;;;;;;;iEAlCU;sBACI;kCAG6B;wBAEjC;yBACC;AA2BjB,MAAMA,uBAAuB;QAAC,EACnCC,QAAQ,EACRC,SAAS,EACTC,YAAY,EACZC,YAAY,QAAQ,EACpBC,QAAQ,EACRC,iBAAiB,CAAC,EAClBC,YAAY,KAAK,EACjBC,cAAc,IAAI,EAClBC,iBAAiB,EACjBC,sBAAsB,EACtBC,SAAS,EACTC,cAAc,KAAK,EACnB,mBAAmB;IACnBC,kBAAkB,EAEQ,WADvBC;QAdHb;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QAEAC;;IAGA,qBACE,qBAACE,cAAM;QACLb,WAAWA;QACXc,kBAAkBV;QAClBW,WAAW,CAACV;QACZH,WAAWA;QACXO,WAAWO,IAAAA,gBAAU,8BAEnB,oCACAZ,mBAAmB,KAChBF,CAAAA,UAAUe,QAAQ,CAAC,6EAEqB,GAC3CZ,aACEW,IAAAA,gBAAU,oCAER,2CAEJP;QAEFS,WAAWZ;QACXa,wBAAwB;OACpBP;kBAEJ,cAAA,qBAACQ,kCAAgB;YACfC,QAAQpB;YACRQ,WAAWC,cAAcY;YACzBf,mBAAmBA;YACnBC,wBAAwBA;YACxBG,oBAAoBA;sBAEnBR,yBACC,qBAACoB;gBAAId,SAAS;0BACZ,cAAA,qBAACe,gBAAO;oBAACC,MAAK;;iBAGhB1B;;;AAKV"}
|
|
@@ -4,7 +4,7 @@ import { HasRootRef } from '../../types';
|
|
|
4
4
|
import { CalendarProps } from '../Calendar/Calendar';
|
|
5
5
|
import { FormFieldProps } from '../FormField/FormField';
|
|
6
6
|
import '../InputLike/InputLike.module.css';
|
|
7
|
-
export interface DateInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange' | 'size'>, Pick<CalendarProps, 'disablePast' | 'disableFuture' | 'enableTime' | 'shouldDisableDate' | 'onChange' | 'value' | 'doneButtonText' | 'weekStartsOn' | 'disablePickers' | 'changeHoursLabel' | 'changeMinutesLabel' | 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'changeDayLabel' | 'showNeighboringMonth' | 'size' | 'viewDate' | 'onHeaderChange' | 'onNextMonth' | 'onPrevMonth' | 'prevMonthIcon' | 'nextMonthIcon' | 'minDateTime' | 'maxDateTime'>, HasRootRef<HTMLDivElement>, FormFieldProps {
|
|
7
|
+
export interface DateInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange' | 'size'>, Pick<CalendarProps, 'disablePast' | 'disableFuture' | 'enableTime' | 'shouldDisableDate' | 'onChange' | 'value' | 'doneButtonText' | 'weekStartsOn' | 'disablePickers' | 'changeHoursLabel' | 'changeMinutesLabel' | 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'changeDayLabel' | 'showNeighboringMonth' | 'size' | 'viewDate' | 'onHeaderChange' | 'onNextMonth' | 'onPrevMonth' | 'prevMonthIcon' | 'nextMonthIcon' | 'minDateTime' | 'maxDateTime'>, HasRootRef<HTMLDivElement>, Omit<FormFieldProps, 'maxHeight'> {
|
|
8
8
|
calendarPlacement?: PlacementWithAuto;
|
|
9
9
|
closeOnChange?: boolean;
|
|
10
10
|
clearFieldLabel?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateInput/DateInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMnE,OAAO,mCAAmC,CAAC;AAQ3C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,EACpF,IAAI,CACF,aAAa,EACX,aAAa,GACb,eAAe,GACf,YAAY,GACZ,mBAAmB,GACnB,UAAU,GACV,OAAO,GACP,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,sBAAsB,GACtB,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,eAAe,GACf,aAAa,GACb,aAAa,CAChB,EACD,UAAU,CAAC,cAAc,CAAC,EAC1B,cAAc;
|
|
1
|
+
{"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateInput/DateInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMnE,OAAO,mCAAmC,CAAC;AAQ3C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,EACpF,IAAI,CACF,aAAa,EACX,aAAa,GACb,eAAe,GACf,YAAY,GACZ,mBAAmB,GACnB,UAAU,GACV,OAAO,GACP,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,sBAAsB,GACtB,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,eAAe,GACf,aAAa,GACb,aAAa,CAChB,EACD,UAAU,CAAC,cAAc,CAAC,EAC1B,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA0CD;;GAEG;AACH,eAAO,MAAM,SAAS,giBAwCnB,cAAc,KAAG,KAAK,CAAC,SAsMzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon20CalendarOutline } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useDateInput } from '../../hooks/useDateInput';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { format, isMatch, parse } from '../../lib/date';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { HasRootRef } from '../../types';\nimport { Calendar, CalendarProps } from '../Calendar/Calendar';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { InputLike } from '../InputLike/InputLike';\nimport { InputLikeDivider } from '../InputLike/InputLikeDivider';\nimport { Popper } from '../Popper/Popper';\nimport { Text } from '../Typography/Text/Text';\nimport '../InputLike/InputLike.module.css'; // Reorder css\nimport styles from './DateInput.module.css';\n\nconst sizeYClassNames = {\n none: styles['DateInput--sizeY-none'],\n ['compact']: styles['DateInput--sizeY-compact'],\n};\n\nexport interface DateInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange' | 'size'>,\n Pick<\n CalendarProps,\n | 'disablePast'\n | 'disableFuture'\n | 'enableTime'\n | 'shouldDisableDate'\n | 'onChange'\n | 'value'\n | 'doneButtonText'\n | 'weekStartsOn'\n | 'disablePickers'\n | 'changeHoursLabel'\n | 'changeMinutesLabel'\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'changeDayLabel'\n | 'showNeighboringMonth'\n | 'size'\n | 'viewDate'\n | 'onHeaderChange'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'minDateTime'\n | 'maxDateTime'\n >,\n HasRootRef<HTMLDivElement>,\n FormFieldProps {\n calendarPlacement?: PlacementWithAuto;\n closeOnChange?: boolean;\n clearFieldLabel?: string;\n showCalendarLabel?: string;\n disableCalendar?: boolean;\n}\n\nconst elementsConfig = (index: number) => {\n let length = 2;\n let min = 1;\n let max = 0;\n\n switch (index) {\n case 0:\n max = 31;\n break;\n case 1:\n max = 12;\n break;\n case 2:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n case 3:\n max = 23;\n break;\n case 4:\n max = 59;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarProps['value']) => {\n const newValue = ['', '', '', '', ''];\n if (value) {\n newValue[0] = String(value.getDate()).padStart(2, '0');\n newValue[1] = String(value.getMonth() + 1).padStart(2, '0');\n newValue[2] = String(value.getFullYear()).padStart(4, '0');\n newValue[3] = String(value.getHours()).padStart(2, '0');\n newValue[4] = String(value.getMinutes()).padStart(2, '0');\n }\n return newValue;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DateInput\n */\nexport const DateInput = ({\n enableTime,\n shouldDisableDate,\n disableFuture,\n disablePast,\n minDateTime,\n maxDateTime,\n value,\n onChange,\n calendarPlacement = 'bottom-start',\n style,\n className,\n doneButtonText,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n showNeighboringMonth,\n size,\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n clearFieldLabel = 'Очистить поле',\n showCalendarLabel = 'Показать календарь',\n viewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n disableCalendar = false,\n ...props\n}: DateInputProps): React.ReactNode => {\n const daysRef = React.useRef<HTMLSpanElement>(null);\n const monthsRef = React.useRef<HTMLSpanElement>(null);\n const yearsRef = React.useRef<HTMLSpanElement>(null);\n const hoursRef = React.useRef<HTMLSpanElement>(null);\n const minutesRef = React.useRef<HTMLSpanElement>(null);\n\n const maxElement = enableTime ? 4 : 2;\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n for (let i = 0; i <= maxElement; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n return;\n }\n }\n\n let formattedValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n let mask = 'dd.MM.yyyy';\n if (enableTime) {\n formattedValue += ` ${internalValue[3]}:${internalValue[4]}`;\n mask += ' HH:mm';\n }\n\n if (isMatch(formattedValue, mask)) {\n onChange?.(parse(formattedValue, mask, value ?? new Date()));\n }\n },\n [enableTime, maxElement, onChange, value],\n );\n\n const refs = React.useMemo(\n () => [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(rootRef, getRootRef);\n\n const onCalendarChange = React.useCallback(\n (value?: Date | undefined) => {\n onChange?.(value);\n if (closeOnChange && !enableTime) {\n removeFocusFromField();\n }\n },\n [onChange, removeFocusFromField, closeOnChange, enableTime],\n );\n\n return (\n <FormField\n style={style}\n className={classNames(sizeY !== 'regular' && sizeYClassNames[sizeY], className)}\n getRootRef={handleRootRef}\n after={\n value ? (\n <IconButton hoverMode=\"opacity\" label={clearFieldLabel} onClick={clear}>\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton hoverMode=\"opacity\" label={showCalendarLabel} onClick={openCalendar}>\n <Icon20CalendarOutline />\n </IconButton>\n )\n }\n disabled={disabled}\n onClick={callMultiple(handleFieldEnter, onClick)}\n onFocus={callMultiple(handleFieldEnter, onFocus)}\n {...props}\n >\n <input\n type=\"hidden\"\n name={name}\n value={value ? format(value, enableTime ? \"dd.MM.yyyy'T'HH:mm\" : 'dd.MM.yyyy') : ''}\n />\n <Text\n className={styles['DateInput__input']}\n onKeyDown={handleKeyDown}\n // Инцидент: в PR https://github.com/VKCOM/VKUI/pull/6649 стабильно ломается порядок стилей\n // из-за чего `.Typography--normalize` перебивает стили.\n normalize={false}\n Component=\"span\" // для <span> нормализация не нужна\n >\n <InputLike\n length={2}\n getRootRef={daysRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n label={changeDayLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n label={changeMonthLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n label={changeYearLabel}\n />\n {enableTime && (\n <React.Fragment>\n <InputLikeDivider className={styles['DateInput__input--time-divider']}>\n {' '}\n </InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={hoursRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n label={changeHoursLabel}\n />\n <InputLikeDivider>:</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={minutesRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n label={changeMinutesLabel}\n />\n </React.Fragment>\n )}\n </Text>\n {open && !disableCalendar && (\n <Popper\n targetRef={rootRef}\n offsetByMainAxis={8}\n placement={calendarPlacement}\n autoUpdateOnTargetResize\n >\n <Calendar\n value={value}\n onChange={onCalendarChange}\n enableTime={enableTime}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={removeFocusFromField}\n getRootRef={calendarRef}\n doneButtonText={doneButtonText}\n disablePickers={disablePickers}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n changeDayLabel={changeDayLabel}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n viewDate={viewDate}\n onHeaderChange={onHeaderChange}\n onNextMonth={onNextMonth}\n onPrevMonth={onPrevMonth}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n minDateTime={minDateTime}\n maxDateTime={maxDateTime}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"names":["DateInput","sizeYClassNames","none","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","getHours","getMinutes","enableTime","shouldDisableDate","disableFuture","disablePast","minDateTime","maxDateTime","onChange","calendarPlacement","style","className","doneButtonText","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthLabel","nextMonthLabel","showNeighboringMonth","size","changeMonthLabel","changeYearLabel","changeDayLabel","changeHoursLabel","changeMinutesLabel","clearFieldLabel","showCalendarLabel","viewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","disableCalendar","props","daysRef","React","useRef","monthsRef","yearsRef","hoursRef","minutesRef","maxElement","onInternalValueChange","useCallback","internalValue","i","formattedValue","mask","isMatch","parse","Date","refs","useMemo","rootRef","calendarRef","open","openCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","useDateInput","sizeY","useAdaptivity","handleRootRef","useExternRef","onCalendarChange","FormField","classNames","after","IconButton","hoverMode","label","Icon16Clear","Icon20CalendarOutline","callMultiple","input","type","format","Text","onKeyDown","normalize","Component","InputLike","onElementSelect","InputLikeDivider","Fragment","Popper","targetRef","offsetByMainAxis","placement","autoUpdateOnTargetResize","Calendar","onClose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon20CalendarOutline } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useDateInput } from '../../hooks/useDateInput';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { format, isMatch, parse } from '../../lib/date';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { HasRootRef } from '../../types';\nimport { Calendar, CalendarProps } from '../Calendar/Calendar';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { InputLike } from '../InputLike/InputLike';\nimport { InputLikeDivider } from '../InputLike/InputLikeDivider';\nimport { Popper } from '../Popper/Popper';\nimport { Text } from '../Typography/Text/Text';\nimport '../InputLike/InputLike.module.css'; // Reorder css\nimport styles from './DateInput.module.css';\n\nconst sizeYClassNames = {\n none: styles['DateInput--sizeY-none'],\n ['compact']: styles['DateInput--sizeY-compact'],\n};\n\nexport interface DateInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange' | 'size'>,\n Pick<\n CalendarProps,\n | 'disablePast'\n | 'disableFuture'\n | 'enableTime'\n | 'shouldDisableDate'\n | 'onChange'\n | 'value'\n | 'doneButtonText'\n | 'weekStartsOn'\n | 'disablePickers'\n | 'changeHoursLabel'\n | 'changeMinutesLabel'\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'changeDayLabel'\n | 'showNeighboringMonth'\n | 'size'\n | 'viewDate'\n | 'onHeaderChange'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'minDateTime'\n | 'maxDateTime'\n >,\n HasRootRef<HTMLDivElement>,\n Omit<FormFieldProps, 'maxHeight'> {\n calendarPlacement?: PlacementWithAuto;\n closeOnChange?: boolean;\n clearFieldLabel?: string;\n showCalendarLabel?: string;\n disableCalendar?: boolean;\n}\n\nconst elementsConfig = (index: number) => {\n let length = 2;\n let min = 1;\n let max = 0;\n\n switch (index) {\n case 0:\n max = 31;\n break;\n case 1:\n max = 12;\n break;\n case 2:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n case 3:\n max = 23;\n break;\n case 4:\n max = 59;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarProps['value']) => {\n const newValue = ['', '', '', '', ''];\n if (value) {\n newValue[0] = String(value.getDate()).padStart(2, '0');\n newValue[1] = String(value.getMonth() + 1).padStart(2, '0');\n newValue[2] = String(value.getFullYear()).padStart(4, '0');\n newValue[3] = String(value.getHours()).padStart(2, '0');\n newValue[4] = String(value.getMinutes()).padStart(2, '0');\n }\n return newValue;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DateInput\n */\nexport const DateInput = ({\n enableTime,\n shouldDisableDate,\n disableFuture,\n disablePast,\n minDateTime,\n maxDateTime,\n value,\n onChange,\n calendarPlacement = 'bottom-start',\n style,\n className,\n doneButtonText,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n showNeighboringMonth,\n size,\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n clearFieldLabel = 'Очистить поле',\n showCalendarLabel = 'Показать календарь',\n viewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n disableCalendar = false,\n ...props\n}: DateInputProps): React.ReactNode => {\n const daysRef = React.useRef<HTMLSpanElement>(null);\n const monthsRef = React.useRef<HTMLSpanElement>(null);\n const yearsRef = React.useRef<HTMLSpanElement>(null);\n const hoursRef = React.useRef<HTMLSpanElement>(null);\n const minutesRef = React.useRef<HTMLSpanElement>(null);\n\n const maxElement = enableTime ? 4 : 2;\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n for (let i = 0; i <= maxElement; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n return;\n }\n }\n\n let formattedValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n let mask = 'dd.MM.yyyy';\n if (enableTime) {\n formattedValue += ` ${internalValue[3]}:${internalValue[4]}`;\n mask += ' HH:mm';\n }\n\n if (isMatch(formattedValue, mask)) {\n onChange?.(parse(formattedValue, mask, value ?? new Date()));\n }\n },\n [enableTime, maxElement, onChange, value],\n );\n\n const refs = React.useMemo(\n () => [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(rootRef, getRootRef);\n\n const onCalendarChange = React.useCallback(\n (value?: Date | undefined) => {\n onChange?.(value);\n if (closeOnChange && !enableTime) {\n removeFocusFromField();\n }\n },\n [onChange, removeFocusFromField, closeOnChange, enableTime],\n );\n\n return (\n <FormField\n style={style}\n className={classNames(sizeY !== 'regular' && sizeYClassNames[sizeY], className)}\n getRootRef={handleRootRef}\n after={\n value ? (\n <IconButton hoverMode=\"opacity\" label={clearFieldLabel} onClick={clear}>\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton hoverMode=\"opacity\" label={showCalendarLabel} onClick={openCalendar}>\n <Icon20CalendarOutline />\n </IconButton>\n )\n }\n disabled={disabled}\n onClick={callMultiple(handleFieldEnter, onClick)}\n onFocus={callMultiple(handleFieldEnter, onFocus)}\n {...props}\n >\n <input\n type=\"hidden\"\n name={name}\n value={value ? format(value, enableTime ? \"dd.MM.yyyy'T'HH:mm\" : 'dd.MM.yyyy') : ''}\n />\n <Text\n className={styles['DateInput__input']}\n onKeyDown={handleKeyDown}\n // Инцидент: в PR https://github.com/VKCOM/VKUI/pull/6649 стабильно ломается порядок стилей\n // из-за чего `.Typography--normalize` перебивает стили.\n normalize={false}\n Component=\"span\" // для <span> нормализация не нужна\n >\n <InputLike\n length={2}\n getRootRef={daysRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n label={changeDayLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n label={changeMonthLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n label={changeYearLabel}\n />\n {enableTime && (\n <React.Fragment>\n <InputLikeDivider className={styles['DateInput__input--time-divider']}>\n {' '}\n </InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={hoursRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n label={changeHoursLabel}\n />\n <InputLikeDivider>:</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={minutesRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n label={changeMinutesLabel}\n />\n </React.Fragment>\n )}\n </Text>\n {open && !disableCalendar && (\n <Popper\n targetRef={rootRef}\n offsetByMainAxis={8}\n placement={calendarPlacement}\n autoUpdateOnTargetResize\n >\n <Calendar\n value={value}\n onChange={onCalendarChange}\n enableTime={enableTime}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={removeFocusFromField}\n getRootRef={calendarRef}\n doneButtonText={doneButtonText}\n disablePickers={disablePickers}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n changeDayLabel={changeDayLabel}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n viewDate={viewDate}\n onHeaderChange={onHeaderChange}\n onNextMonth={onNextMonth}\n onPrevMonth={onPrevMonth}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n minDateTime={minDateTime}\n maxDateTime={maxDateTime}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"names":["DateInput","sizeYClassNames","none","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","getHours","getMinutes","enableTime","shouldDisableDate","disableFuture","disablePast","minDateTime","maxDateTime","onChange","calendarPlacement","style","className","doneButtonText","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthLabel","nextMonthLabel","showNeighboringMonth","size","changeMonthLabel","changeYearLabel","changeDayLabel","changeHoursLabel","changeMinutesLabel","clearFieldLabel","showCalendarLabel","viewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","disableCalendar","props","daysRef","React","useRef","monthsRef","yearsRef","hoursRef","minutesRef","maxElement","onInternalValueChange","useCallback","internalValue","i","formattedValue","mask","isMatch","parse","Date","refs","useMemo","rootRef","calendarRef","open","openCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","useDateInput","sizeY","useAdaptivity","handleRootRef","useExternRef","onCalendarChange","FormField","classNames","after","IconButton","hoverMode","label","Icon16Clear","Icon20CalendarOutline","callMultiple","input","type","format","Text","onKeyDown","normalize","Component","InputLike","onElementSelect","InputLikeDivider","Fragment","Popper","targetRef","offsetByMainAxis","placement","autoUpdateOnTargetResize","Calendar","onClose"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { PlacementWithAuto } from '../../lib/floating';
|
|
|
3
3
|
import { HasRootRef } from '../../types';
|
|
4
4
|
import { CalendarRangeProps } from '../CalendarRange/CalendarRange';
|
|
5
5
|
import { FormFieldProps } from '../FormField/FormField';
|
|
6
|
-
export interface DateRangeInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange'>, Pick<CalendarRangeProps, 'disablePast' | 'disableFuture' | 'shouldDisableDate' | 'onChange' | 'value' | 'weekStartsOn' | 'disablePickers' | 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'changeDayLabel' | 'prevMonthIcon' | 'nextMonthIcon'>, HasRootRef<HTMLDivElement>, FormFieldProps {
|
|
6
|
+
export interface DateRangeInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange'>, Pick<CalendarRangeProps, 'disablePast' | 'disableFuture' | 'shouldDisableDate' | 'onChange' | 'value' | 'weekStartsOn' | 'disablePickers' | 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'changeDayLabel' | 'prevMonthIcon' | 'nextMonthIcon'>, HasRootRef<HTMLDivElement>, Omit<FormFieldProps, 'maxHeight'> {
|
|
7
7
|
calendarPlacement?: PlacementWithAuto;
|
|
8
8
|
closeOnChange?: boolean;
|
|
9
9
|
clearFieldLabel?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangeInput/DateRangeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAiB,kBAAkB,EAAiB,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAenE,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,EAC3E,IAAI,CACF,kBAAkB,EAChB,aAAa,GACb,eAAe,GACf,mBAAmB,GACnB,UAAU,GACV,OAAO,GACP,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAClB,EACD,UAAU,CAAC,cAAc,CAAC,EAC1B,cAAc;
|
|
1
|
+
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangeInput/DateRangeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAiB,kBAAkB,EAAiB,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAenE,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,EAC3E,IAAI,CACF,kBAAkB,EAChB,aAAa,GACb,eAAe,GACf,mBAAmB,GACnB,UAAU,GACV,OAAO,GACP,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAClB,EACD,UAAU,CAAC,cAAc,CAAC,EAC1B,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA0CD;;GAEG;AACH,eAAO,MAAM,cAAc,kfAkCxB,mBAAmB,KAAG,KAAK,CAAC,SA+M9B,CAAC"}
|