@vkontakte/vkui 4.30.0 → 4.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +38 -27
- package/.cache/ts/src/components/Calendar/Calendar.d.ts +1 -1
- package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/.cache/ts/src/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/.cache/ts/src/components/DateInput/DateInput.d.ts +1 -1
- package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/.cache/ts/src/hooks/useAdaptivity.d.ts +1 -0
- package/.cache/ts/src/index.d.ts +1 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +2 -9
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.d.ts +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +6 -2
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +7 -3
- 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.js +6 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js +3 -1
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +4 -2
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +6 -2
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +2 -10
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js +3 -4
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +8 -6
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js +3 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivity.d.ts +1 -0
- package/dist/cjs/hooks/useAdaptivity.js +18 -1
- package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +2 -8
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +1 -1
- package/dist/components/Calendar/Calendar.js +6 -2
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/dist/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.js +7 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +3 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +5 -4
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +5 -3
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +2 -9
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js +3 -5
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +8 -6
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.js +3 -2
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components.css +18 -18
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -8
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +9 -9
- package/dist/cssm/components/ButtonGroup/ButtonGroup.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.d.ts +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +6 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
- package/dist/cssm/components/Card/Card.css +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/Cell/Cell.css +1 -1
- package/dist/cssm/components/CellButton/CellButton.css +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +7 -3
- 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.js +6 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
- package/dist/cssm/components/FormField/FormField.css +2 -2
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
- package/dist/cssm/components/Input/Input.css +1 -1
- package/dist/cssm/components/InputLike/InputLike.css +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +3 -2
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -4
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +5 -3
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +2 -9
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +3 -5
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +8 -6
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +3 -2
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.css +1 -1
- package/dist/cssm/components/Radio/Radio.css +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/RichCell/RichCell.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.css +1 -1
- package/dist/cssm/hooks/useAdaptivity.d.ts +1 -0
- package/dist/cssm/hooks/useAdaptivity.js +13 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/index.d.ts +1 -0
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/styles/components.css +18 -18
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/hooks/useAdaptivity.d.ts +1 -0
- package/dist/hooks/useAdaptivity.js +13 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/vkui.css +19 -19
- package/dist/vkui.css.map +1 -1
- package/jest.unit.config.js +1 -0
- package/package.json +4 -2
- package/postcss-custom-properties-fallback/__tests__/custom_properties.css +5 -0
- package/postcss-custom-properties-fallback/index.js +83 -0
- package/src/components/ActionSheet/ActionSheet.tsx +2 -6
- package/src/components/Calendar/Calendar.tsx +6 -0
- package/src/components/CalendarHeader/CalendarHeader.css +3 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +18 -2
- package/src/components/CalendarRange/CalendarRange.tsx +6 -0
- package/src/components/Cell/Cell.css +1 -1
- package/src/components/CellButton/CellButton.css +1 -1
- package/src/components/Checkbox/Checkbox.css +1 -1
- package/src/components/DateInput/DateInput.tsx +7 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +6 -0
- package/src/components/FixedLayout/FixedLayout.css +10 -2
- package/src/components/FormItem/FormItem.css +1 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +2 -1
- package/src/components/ModalCard/ModalCard.tsx +3 -8
- package/src/components/ModalCardBase/ModalCardBase.tsx +6 -10
- package/src/components/ModalPage/ModalPage.tsx +6 -9
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +2 -6
- package/src/components/ModalRoot/ModalRootAdaptive.tsx +3 -9
- package/src/components/ModalRoot/Readme.md +1 -1
- package/src/components/PanelHeader/PanelHeader.tsx +19 -18
- package/src/components/PanelHeader/Readme.md +2 -2
- package/src/components/PopoutRoot/PopoutRoot.tsx +3 -8
- package/src/components/Popper/Popper.css +14 -2
- package/src/components/Radio/Radio.css +1 -1
- package/src/components/RadioGroup/RadioGroup.css +1 -1
- package/src/components/Removable/Removable.css +2 -2
- package/src/components/RichCell/RichCell.css +1 -1
- package/src/components/SimpleCell/SimpleCell.css +1 -1
- package/src/components/Tooltip/Readme.md +35 -47
- package/src/hooks/useAdaptivity.ts +15 -0
- package/src/index.ts +1 -0
- package/src/styles/constants.css +1 -0
- package/tsconfig.json +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.vkuiCard{position:relative;background:#f5f5f5;background:var(--content_tint_background,
|
|
2
2
|
var(--vkui--color_background_secondary)
|
|
3
|
-
);border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular)}.vkuiCard__in{position:relative;z-index:2;border-radius:inherit}.vkuiCard--md-shadow{box-shadow:0 0
|
|
3
|
+
);border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular,8px)}.vkuiCard__in{position:relative;z-index:2;border-radius:inherit}.vkuiCard--md-shadow{box-shadow:0 2px 24px 0 rgba(0,0,0,.08)0 0 2px 0 rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3,
|
|
4
4
|
0 2px 24px 0 rgba(0, 0, 0, 0.08),
|
|
5
5
|
0 0 2px 0 rgba(0, 0, 0, 0.08)
|
|
6
|
-
);background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline{background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline::before{position:absolute;left:0;top:0;width:100%;height:100%;content:"";display:block;border:1px solid #e1e3e6;border:var(--thin-border) solid var(--input_border, var(--vkui--color_image_border_alpha));z-index:1;box-sizing:border-box;border-radius:inherit}.vkuiCardScroll .vkuiCard{margin-right:8px;margin-right:var(--vkui--size_cardgrid_padding--regular);flex-shrink:0}.vkuiCardScroll .vkuiCard:last-of-type{margin-right:0}.vkuiCardScroll--s .vkuiCard{width:40%}.vkuiCardScroll--m .vkuiCard{width:62%}.vkuiCardScroll--l .vkuiCard{width:calc(100% - 16px*2);width:calc(100% - var(--vkui--size_base_padding_horizontal--regular)*2);margin-right:16px;margin-right:var(--vkui--size_base_padding_horizontal--regular)}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard{width:calc(100% - 32px);margin-right:16px}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard:last-of-type,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard:last-of-type{margin-right:0}
|
|
6
|
+
);background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline{background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline::before{position:absolute;left:0;top:0;width:100%;height:100%;content:"";display:block;border:1px solid #e1e3e6;border:var(--thin-border) solid var(--input_border, var(--vkui--color_image_border_alpha));z-index:1;box-sizing:border-box;border-radius:inherit}.vkuiCardScroll .vkuiCard{margin-right:8px;margin-right:var(--vkui--size_cardgrid_padding--regular,8px);flex-shrink:0}.vkuiCardScroll .vkuiCard:last-of-type{margin-right:0}.vkuiCardScroll--s .vkuiCard{width:40%}.vkuiCardScroll--m .vkuiCard{width:62%}.vkuiCardScroll--l .vkuiCard{width:calc(100% - 16px*2);width:calc(100% - var(--vkui--size_base_padding_horizontal--regular,16px)*2);margin-right:16px;margin-right:var(--vkui--size_base_padding_horizontal--regular,16px)}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard{width:calc(100% - 32px);margin-right:16px}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard:last-of-type,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard:last-of-type{margin-right:0}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCardScroll__in{display:flex;align-items:stretch}.vkuiCardScroll__gap{display:block;flex-shrink:0}.vkuiCardScroll+.vkuiCardScroll{margin-top:16px}.vkuiCardScroll--withSpaces .vkuiCardScroll__gap{width:16px;width:var(--vkui--size_base_padding_horizontal--regular)}.vkuiSplitCol--spaced .vkuiCardScroll--withSpaces .vkuiCardScroll{margin-left:-16px;margin-right:-16px}.vkuiSplitCol--spaced .vkuiCardScroll--withSpaces .vkuiCardScroll__gap{width:16px}.vkuiGroup--card .vkuiCardScroll--withSpaces{margin-left:-8px;margin-right:-8px}.vkuiGroup--card .vkuiCardScroll--withSpaces:first-child{padding-top:8px;padding-top:var(--vkui--size_cardgrid_padding_vertical--regular)}.vkuiGroup--card .vkuiCardScroll--withSpaces:last-child{padding-bottom:8px;padding-bottom:var(--vkui--size_cardgrid_padding_vertical--regular)}
|
|
1
|
+
.vkuiCardScroll__in{display:flex;align-items:stretch}.vkuiCardScroll__gap{display:block;flex-shrink:0}.vkuiCardScroll+.vkuiCardScroll{margin-top:16px}.vkuiCardScroll--withSpaces .vkuiCardScroll__gap{width:16px;width:var(--vkui--size_base_padding_horizontal--regular,16px)}.vkuiSplitCol--spaced .vkuiCardScroll--withSpaces .vkuiCardScroll{margin-left:-16px;margin-right:-16px}.vkuiSplitCol--spaced .vkuiCardScroll--withSpaces .vkuiCardScroll__gap{width:16px}.vkuiGroup--card .vkuiCardScroll--withSpaces{margin-left:-8px;margin-right:-8px}.vkuiGroup--card .vkuiCardScroll--withSpaces:first-child{padding-top:8px;padding-top:var(--vkui--size_cardgrid_padding_vertical--regular,8px)}.vkuiGroup--card .vkuiCardScroll--withSpaces:last-child{padding-bottom:8px;padding-bottom:var(--vkui--size_cardgrid_padding_vertical--regular,8px)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiList--dragging .vkuiCell:not(.vkuiCell--dragging){transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;pointer-events:none}.vkuiCell--dragging{background-color:#fff;background-color:var(--background_content);box-shadow:0 0 5px rgba(0,0,0,.25);z-index:3}.vkuiCell--selectable.vkuiCell--disabled{opacity:.6}.vkuiCell__checkbox,.vkuiCell__dragger{position:relative;flex-shrink:0;margin-right:16px}.vkuiCell__dragger{z-index:2}.vkuiCell__content{max-width:100%;min-width:0}.vkuiCell--removable .vkuiCell__content{flex-grow:1;padding-right:0;padding-left:0}.vkuiCell--ios .vkuiCell__dragger{margin-right:0;margin-left:12px}.vkuiCell--ios .vkuiCell__checkbox{margin-right:12px}.vkuiFormItem>.vkuiCell{margin:0 calc(-1*16px);margin:0 calc(-1*var(--
|
|
1
|
+
.vkuiList--dragging .vkuiCell:not(.vkuiCell--dragging){transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;pointer-events:none}.vkuiCell--dragging{background-color:#fff;background-color:var(--background_content);box-shadow:0 0 5px rgba(0,0,0,.25);z-index:3}.vkuiCell--selectable.vkuiCell--disabled{opacity:.6}.vkuiCell__checkbox,.vkuiCell__dragger{position:relative;flex-shrink:0;margin-right:16px}.vkuiCell__dragger{z-index:2}.vkuiCell__content{max-width:100%;min-width:0}.vkuiCell--removable .vkuiCell__content{flex-grow:1;padding-right:0;padding-left:0}.vkuiCell--ios .vkuiCell__dragger{margin-right:0;margin-left:12px}.vkuiCell--ios .vkuiCell__checkbox{margin-right:12px}.vkuiFormItem>.vkuiCell{margin:0 calc(-1*16px);margin:0 calc(-1*var(--vkui--size_base_padding_horizontal--regular,16px))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCellButton{box-sizing:border-box;text-decoration:none;margin:0;border:0;cursor:pointer;width:100%;background:0 0;text-align:left;padding-top:0;padding-bottom:0}.vkuiFormItem .vkuiCellButton{width:100%;box-sizing:content-box;margin:0 calc(-1*16px);margin:0 calc(-1*var(--
|
|
1
|
+
.vkuiCellButton{box-sizing:border-box;text-decoration:none;margin:0;border:0;cursor:pointer;width:100%;background:0 0;text-align:left;padding-top:0;padding-bottom:0}.vkuiFormItem .vkuiCellButton{width:100%;box-sizing:content-box;margin:0 calc(-1*16px);margin:0 calc(-1*var(--vkui--size_base_padding_horizontal--regular,16px))}.vkuiCellButton[disabled]{opacity:.4}.vkuiCellButton--centered{justify-content:center;text-align:center}.vkuiCellButton--centered .vkuiSimpleCell__main{flex-grow:initial;max-width:initial}.vkuiCellButton--centered>.vkuiIcon{padding-right:8px}.vkuiCellButton,.vkuiCellButton>.vkuiIcon{color:#2688eb;color:var(--accent)}.vkuiCellButton--danger,.vkuiCellButton--danger>.vkuiIcon{color:#e64646;color:var(--destructive)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCheckbox{display:block}.vkuiFormItem .vkuiCheckbox{width:100%;box-sizing:content-box;margin:0 calc(-1*16px);margin:0 calc(-1*var(--
|
|
1
|
+
.vkuiCheckbox{display:block}.vkuiFormItem .vkuiCheckbox{width:100%;box-sizing:content-box;margin:0 calc(-1*16px);margin:0 calc(-1*var(--vkui--size_base_padding_horizontal--regular,16px))}.vkuiCheckbox__input{display:none}.vkuiCheckbox__container{display:flex;align-items:center;justify-content:flex-start}.vkuiCheckbox__icon{flex-shrink:0;margin-right:12px}.vkuiCheckbox__icon--on{color:#2688eb;color:var(--accent);display:none}.vkuiCheckbox__icon--off{color:#b8c1cc;color:var(--icon_tertiary)}.vkuiCheckbox__content{flex-grow:1;color:#000;color:var(--text_primary);word-break:break-word}.vkuiCheckbox__description{color:#818c99;color:var(--text_secondary);display:block;margin-bottom:12px;margin-top:2px}.vkuiCheckbox__children{margin-top:12px}.vkuiCheckbox__children:last-child{margin-bottom:12px}.vkuiCheckbox__input:checked~.vkuiCheckbox__container .vkuiCheckbox__icon--on{display:block}.vkuiCheckbox__input:checked~.vkuiCheckbox__container .vkuiCheckbox__icon--off{display:none}.vkuiCheckbox__input[disabled]~.vkuiCheckbox__container{opacity:.6}.vkuiCheckbox--ios{padding:0 12px}.vkuiCheckbox--android{padding:0 16px}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__children{margin-top:8px}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__children:last-child{margin-bottom:8px}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__description{margin-bottom:8px}.vkuiCheckbox--vkcom{padding:0 16px}.vkuiCheckbox--vkcom .vkuiCheckbox__icon{margin-right:10px}.vkuiCheckbox--vkcom .vkuiCheckbox__input[disabled]~.vkuiCheckbox__container{opacity:.4}.vkuiCheckbox--vkcom .vkuiCheckbox__children{margin-top:8px}.vkuiCheckbox--vkcom .vkuiCheckbox__children:last-child{margin-bottom:8px}.vkuiCheckbox--vkcom .vkuiCheckbox__description{margin-top:1px;margin-bottom:8px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiChipsInput{max-width:100%}.vkuiChipsInput__container{flex-grow:1;flex-shrink:1;position:relative;display:flex;flex-wrap:wrap;max-width:100%;padding:3px;z-index:2;overflow:hidden}.vkuiChipsInput__chip{max-width:100%;margin:2px}.vkuiChipsInput__input-container{display:flex;flex-direction:column;flex:1;margin:2px;margin-left:10px}.vkuiChipsInput__el{position:relative;width:100%;margin-bottom:2px;padding:0;font-size:15px;line-height:26px;color:#000;color:var(--text_primary, var(--vkui--color_text_primary));background:0 0;border:0;box-shadow:none;-webkit-appearance:none;appearance:none;z-index:2;letter-spacing:var(--vk-sans-ls-17)}.vkuiChipsInput__el:focus{min-width:64px}.vkuiChipsInput__el::-ms-clear{display:none}.vkuiChipsInput__el:disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiChipsInput__el::-webkit-input-placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiChipsInput__el::placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiChipsInput__el:disabled::-webkit-input-placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}.vkuiChipsInput__el:disabled::placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}.vkuiChipsInput--sizeY-compact .vkuiChipsInput__container{padding:1px}
|
|
1
|
+
.vkuiChipsInput{max-width:100%}.vkuiChipsInput__container{flex-grow:1;flex-shrink:1;position:relative;display:flex;flex-wrap:wrap;max-width:100%;padding:3px;z-index:2;overflow:hidden}.vkuiChipsInput__chip{max-width:100%;margin:2px}.vkuiChipsInput__input-container{display:flex;flex-direction:column;flex:1;margin:2px;margin-left:10px}.vkuiChipsInput__el{position:relative;width:100%;margin-bottom:2px;padding:0;font-size:15px;line-height:26px;color:#000;color:var(--text_primary, var(--vkui--color_text_primary));background:0 0;border:0;box-shadow:none;-webkit-appearance:none;appearance:none;z-index:2;letter-spacing:var(--vk-sans-ls-17)}.vkuiChipsInput__el:focus{min-width:64px}.vkuiChipsInput__el::-ms-clear{display:none}.vkuiChipsInput__el:disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility,0.64)}.vkuiChipsInput__el::-webkit-input-placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiChipsInput__el::placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiChipsInput__el:disabled::-webkit-input-placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}.vkuiChipsInput__el:disabled::placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}.vkuiChipsInput--sizeY-compact .vkuiChipsInput__container{padding:1px}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
.vkuiCustomSelectDropdown__options{overflow:hidden;background-color:#fff;background-color:var(--modal_card_background,
|
|
2
2
|
var(--vkui--color_background_content)
|
|
3
|
-
);box-sizing:border-box;border:1px solid rgba(0,0,0,.12);border:var(--thin-border) solid var(--field_border, var(--vkui--color_separator_primary_alpha));border-top:0;box-shadow:0 0 2px rgba(0,0,0,.03)
|
|
3
|
+
);box-sizing:border-box;border:1px solid rgba(0,0,0,.12);border:var(--thin-border) solid var(--field_border, var(--vkui--color_separator_primary_alpha));border-top:0;box-shadow:0 0 2px rgba(0,0,0,.03)0 2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1,0px 0px 2px rgba(0, 0, 0, 0.03) , 0px 2px 2px rgba(0, 0, 0, 0.06));border-radius:0 0 8px 8px}.vkuiCustomSelectDropdown__options--same-width{width:100%}:not(.vkuiCustomSelectDropdown__options--same-width) .vkuiCustomScrollView__box{padding-right:8px}.vkuiCustomSelectDropdown__options--popupDirectionTop{bottom:100%;border-radius:8px 8px 0 0;border-top:unset;border-bottom:0;box-shadow:0 0 2px rgba(0,0,0,.03)0-2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1_invert_y,0px 0px 2px rgba(0, 0, 0, 0.03) , 0px -2px 2px rgba(0, 0, 0, 0.06))}.vkuiCustomSelectDropdown__options--not-adjacent{border-radius:8px;border:1px solid rgba(0,0,0,.12);border:var(--thin-border) solid var(--field_border, var(--vkui--color_separator_primary_alpha))}.vkuiCustomSelectDropdown__CustomScrollView{max-height:160px}.vkuiCustomSelectDropdown__fetching{padding:12px 0}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.vkuiCustomSelectOption{width:100%;display:flex;align-items:center;position:relative;box-sizing:border-box;padding:8px 12px;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;color:#000;color:var(--text_primary, var(--vkui--color_text_primary))}.vkuiCustomSelectOption--hierarchy{--custom-select-option-hierarchy-level:0;padding-left:calc(var(--custom-select-option-hierarchy-level)*
|
|
1
|
+
.vkuiCustomSelectOption{width:100%;display:flex;align-items:center;position:relative;box-sizing:border-box;padding:8px 12px;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;color:#000;color:var(--text_primary, var(--vkui--color_text_primary))}.vkuiCustomSelectOption--hierarchy{--custom-select-option-hierarchy-level:0;padding-left:calc(var(--custom-select-option-hierarchy-level)*var(--vkui--size_option_hierarchy--regular))}.vkuiCustomSelectOption--sizeY-regular{min-height:44px}.vkuiCustomSelectOption--disabled{cursor:default;opacity:.64;opacity:var(--vkui--opacity_disable_accessibility,0.64)}.vkuiCustomSelectOption--hover{background-color:#f2f3f5;background-color:var(--button_muted_background,
|
|
2
2
|
var(--vkui--color_transparent--hover)
|
|
3
3
|
)}.vkuiCustomSelectOption__before{flex-shrink:0;margin-right:7px}.vkuiCustomSelectOption__main{flex-grow:1;max-width:100%;min-width:0}.vkuiCustomSelectOption__children{min-width:0;overflow:hidden;text-overflow:ellipsis}.vkuiCustomSelectOption__after{margin-left:8px;flex-shrink:0;display:flex;align-items:center}.vkuiCustomSelectOption__description{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary));text-overflow:ellipsis;overflow:hidden}.vkuiCustomSelectOption__selectedIcon{color:#2688eb;color:var(--accent, var(--vkui--color_icon_accent))}.vkuiCustomSelectOption__selectedIcon:not(:first-child){margin-left:8px}
|
|
@@ -3,7 +3,7 @@ import { CalendarProps } from "../Calendar/Calendar";
|
|
|
3
3
|
import { Placement } from "../Popper/Popper";
|
|
4
4
|
import { HasRootRef } from "../../types";
|
|
5
5
|
import "./DateInput.css";
|
|
6
|
-
export interface DateInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, "value" | "onChange" | "size">, Pick<CalendarProps, "disablePast" | "disableFuture" | "enableTime" | "shouldDisableDate" | "onChange" | "value" | "doneButtonText" | "weekStartsOn" | "disablePickers" | "changeHoursAriaLabel" | "changeMinutesAriaLabel" | "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "changeDayAriaLabel" | "showNeighboringMonth" | "size" | "viewDate" | "onHeaderChange" | "onNextMonth" | "onPrevMonth">, HasRootRef<HTMLDivElement> {
|
|
6
|
+
export interface DateInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, "value" | "onChange" | "size">, Pick<CalendarProps, "disablePast" | "disableFuture" | "enableTime" | "shouldDisableDate" | "onChange" | "value" | "doneButtonText" | "weekStartsOn" | "disablePickers" | "changeHoursAriaLabel" | "changeMinutesAriaLabel" | "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "changeDayAriaLabel" | "showNeighboringMonth" | "size" | "viewDate" | "onHeaderChange" | "onNextMonth" | "onPrevMonth" | "prevMonthIcon" | "nextMonthIcon">, HasRootRef<HTMLDivElement> {
|
|
7
7
|
calendarPlacement?: Placement;
|
|
8
8
|
closeOnChange?: boolean;
|
|
9
9
|
clearFieldAriaLabel?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["enableTime", "shouldDisableDate", "disableFuture", "disablePast", "value", "onChange", "calendarPlacement", "style", "className", "doneButtonText", "closeOnChange", "disablePickers", "getRootRef", "name", "autoFocus", "disabled", "onClick", "onFocus", "prevMonthAriaLabel", "nextMonthAriaLabel", "showNeighboringMonth", "size", "changeMonthAriaLabel", "changeYearAriaLabel", "changeDayAriaLabel", "changeHoursAriaLabel", "changeMinutesAriaLabel", "clearFieldAriaLabel", "showCalendarAriaLabel", "viewDate", "onHeaderChange", "onNextMonth", "onPrevMonth"];
|
|
3
|
+
var _excluded = ["enableTime", "shouldDisableDate", "disableFuture", "disablePast", "value", "onChange", "calendarPlacement", "style", "className", "doneButtonText", "closeOnChange", "disablePickers", "getRootRef", "name", "autoFocus", "disabled", "onClick", "onFocus", "prevMonthAriaLabel", "nextMonthAriaLabel", "showNeighboringMonth", "size", "changeMonthAriaLabel", "changeYearAriaLabel", "changeDayAriaLabel", "changeHoursAriaLabel", "changeMinutesAriaLabel", "clearFieldAriaLabel", "showCalendarAriaLabel", "viewDate", "onHeaderChange", "onNextMonth", "onPrevMonth", "prevMonthIcon", "nextMonthIcon"];
|
|
4
4
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { format, isMatch, parse } from "../../lib/date";
|
|
@@ -111,6 +111,8 @@ export var DateInput = function DateInput(_ref) {
|
|
|
111
111
|
onHeaderChange = _ref.onHeaderChange,
|
|
112
112
|
onNextMonth = _ref.onNextMonth,
|
|
113
113
|
onPrevMonth = _ref.onPrevMonth,
|
|
114
|
+
prevMonthIcon = _ref.prevMonthIcon,
|
|
115
|
+
nextMonthIcon = _ref.nextMonthIcon,
|
|
114
116
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
115
117
|
|
|
116
118
|
var daysRef = React.useRef(null);
|
|
@@ -262,9 +264,11 @@ export var DateInput = function DateInput(_ref) {
|
|
|
262
264
|
showNeighboringMonth: showNeighboringMonth,
|
|
263
265
|
size: size,
|
|
264
266
|
viewDate: viewDate,
|
|
265
|
-
onHeaderChange:
|
|
267
|
+
onHeaderChange: onHeaderChange,
|
|
266
268
|
onNextMonth: onNextMonth,
|
|
267
|
-
onPrevMonth: onPrevMonth
|
|
269
|
+
onPrevMonth: onPrevMonth,
|
|
270
|
+
prevMonthIcon: prevMonthIcon,
|
|
271
|
+
nextMonthIcon: nextMonthIcon
|
|
268
272
|
})));
|
|
269
273
|
};
|
|
270
274
|
//# sourceMappingURL=DateInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateInput/DateInput.tsx"],"names":["React","format","isMatch","parse","Icon16Clear","Icon20CalendarOutline","Calendar","Popper","multiRef","IconButton","classNames","FormField","useDateInput","InputLike","InputLikeDivider","useAdaptivity","callMultiple","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","getHours","getMinutes","DateInput","enableTime","shouldDisableDate","disableFuture","disablePast","onChange","calendarPlacement","style","className","doneButtonText","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthAriaLabel","nextMonthAriaLabel","showNeighboringMonth","size","changeMonthAriaLabel","changeYearAriaLabel","changeDayAriaLabel","changeHoursAriaLabel","changeMinutesAriaLabel","clearFieldAriaLabel","showCalendarAriaLabel","viewDate","onHeaderChange","onNextMonth","onPrevMonth","props","daysRef","useRef","monthsRef","yearsRef","hoursRef","minutesRef","maxElement","onInternalValueChange","useCallback","internalValue","i","formattedValue","mask","Date","refs","useMemo","rootRef","calendarRef","open","openCalendar","closeCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","onCalendarChange"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { format, isMatch, parse } from \"../../lib/date\";\nimport { Icon16Clear, Icon20CalendarOutline } from \"@vkontakte/icons\";\nimport { Calendar, CalendarProps } from \"../Calendar/Calendar\";\nimport { Popper, Placement } from \"../Popper/Popper\";\nimport { multiRef } from \"../../lib/utils\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasRootRef } from \"../../types\";\nimport { useDateInput } from \"../../hooks/useDateInput\";\nimport { InputLike } from \"../InputLike/InputLike\";\nimport { InputLikeDivider } from \"../InputLike/InputLikeDivider\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport \"./DateInput.css\";\n\nexport interface DateInputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLDivElement>,\n \"value\" | \"onChange\" | \"size\"\n >,\n Pick<\n CalendarProps,\n | \"disablePast\"\n | \"disableFuture\"\n | \"enableTime\"\n | \"shouldDisableDate\"\n | \"onChange\"\n | \"value\"\n | \"doneButtonText\"\n | \"weekStartsOn\"\n | \"disablePickers\"\n | \"changeHoursAriaLabel\"\n | \"changeMinutesAriaLabel\"\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"changeDayAriaLabel\"\n | \"showNeighboringMonth\"\n | \"size\"\n | \"viewDate\"\n | \"onHeaderChange\"\n | \"onNextMonth\"\n | \"onPrevMonth\"\n >,\n HasRootRef<HTMLDivElement> {\n calendarPlacement?: Placement;\n closeOnChange?: boolean;\n clearFieldAriaLabel?: string;\n showCalendarAriaLabel?: string;\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\nexport const DateInput: React.FC<DateInputProps> = ({\n enableTime,\n shouldDisableDate,\n disableFuture,\n disablePast,\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 prevMonthAriaLabel,\n nextMonthAriaLabel,\n showNeighboringMonth,\n size,\n changeMonthAriaLabel = \"Изменить месяц\",\n changeYearAriaLabel = \"Изменить год\",\n changeDayAriaLabel = \"Изменить день\",\n changeHoursAriaLabel = \"Изменить час\",\n changeMinutesAriaLabel = \"Изменить минуту\",\n clearFieldAriaLabel = \"Очистить поле\",\n showCalendarAriaLabel = \"Показать календарь\",\n viewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n ...props\n}) => {\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 closeCalendar,\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 } = useAdaptivity();\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 vkuiClass={classNames(\"DateInput\", `DateInput--sizeY-${sizeY}`)}\n style={style}\n className={className}\n getRootRef={multiRef(rootRef, getRootRef)}\n after={\n value ? (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={clearFieldAriaLabel}\n onClick={clear}\n >\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={showCalendarAriaLabel}\n onClick={openCalendar}\n >\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={\n value\n ? format(value, enableTime ? \"DD.MM.YYYYTHH:mm\" : \"DD.MM.YYYY\")\n : \"\"\n }\n />\n <span vkuiClass=\"DateInput__input\" onKeyDown={handleKeyDown}>\n <InputLike\n tabIndex={1}\n length={2}\n getRootRef={daysRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n aria-label={changeDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n aria-label={changeMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n aria-label={changeYearAriaLabel}\n />\n {enableTime && (\n <React.Fragment>\n <InputLikeDivider vkuiClass=\"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 aria-label={changeHoursAriaLabel}\n />\n <InputLikeDivider>:</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={minutesRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n aria-label={changeMinutesAriaLabel}\n />\n </React.Fragment>\n )}\n </span>\n {open && (\n <Popper\n targetRef={rootRef}\n offsetDistance={8}\n placement={calendarPlacement}\n >\n <Calendar\n value={value}\n onChange={onCalendarChange}\n enableTime={enableTime}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={closeCalendar}\n getRootRef={calendarRef}\n doneButtonText={doneButtonText}\n disablePickers={disablePickers}\n changeHoursAriaLabel={changeHoursAriaLabel}\n changeMinutesAriaLabel={changeMinutesAriaLabel}\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n changeDayAriaLabel={changeDayAriaLabel}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n viewDate={viewDate}\n onHeaderChange={onCalendarChange}\n onNextMonth={onNextMonth}\n onPrevMonth={onPrevMonth}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"file":"DateInput.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateInput/DateInput.tsx"],"names":["React","format","isMatch","parse","Icon16Clear","Icon20CalendarOutline","Calendar","Popper","multiRef","IconButton","classNames","FormField","useDateInput","InputLike","InputLikeDivider","useAdaptivity","callMultiple","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","getHours","getMinutes","DateInput","enableTime","shouldDisableDate","disableFuture","disablePast","onChange","calendarPlacement","style","className","doneButtonText","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthAriaLabel","nextMonthAriaLabel","showNeighboringMonth","size","changeMonthAriaLabel","changeYearAriaLabel","changeDayAriaLabel","changeHoursAriaLabel","changeMinutesAriaLabel","clearFieldAriaLabel","showCalendarAriaLabel","viewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","props","daysRef","useRef","monthsRef","yearsRef","hoursRef","minutesRef","maxElement","onInternalValueChange","useCallback","internalValue","i","formattedValue","mask","Date","refs","useMemo","rootRef","calendarRef","open","openCalendar","closeCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","onCalendarChange"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT,EAAiBC,OAAjB,EAA0BC,KAA1B;AACA,SAASC,WAAT,EAAsBC,qBAAtB,QAAmD,kBAAnD;AACA,SAASC,QAAT;AACA,SAASC,MAAT;AACA,SAASC,QAAT;AACA,OAAOC,UAAP;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,YAAT;AACA,SAASC,SAAT;AACA,SAASC,gBAAT;AACA,SAASC,aAAT;AACA,SAASC,YAAT;AACA;;AAyCA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,KAAD,EAAmB;AACxC,MAAIC,MAAM,GAAG,CAAb;AACA,MAAIC,GAAG,GAAG,CAAV;AACA,MAAIC,GAAG,GAAG,CAAV;;AAEA,UAAQH,KAAR;AACE,SAAK,CAAL;AACEG,MAAAA,GAAG,GAAG,EAAN;AACA;;AACF,SAAK,CAAL;AACEA,MAAAA,GAAG,GAAG,EAAN;AACA;;AACF,SAAK,CAAL;AACEA,MAAAA,GAAG,GAAG,IAAN;AACAD,MAAAA,GAAG,GAAG,IAAN;AACAD,MAAAA,MAAM,GAAG,CAAT;AACA;;AACF,SAAK,CAAL;AACEE,MAAAA,GAAG,GAAG,EAAN;AACA;;AACF,SAAK,CAAL;AACEA,MAAAA,GAAG,GAAG,EAAN;AACA;AAjBJ;;AAoBA,SAAO;AAAEF,IAAAA,MAAM,EAANA,MAAF;AAAUC,IAAAA,GAAG,EAAHA,GAAV;AAAeC,IAAAA,GAAG,EAAHA;AAAf,GAAP;AACD,CA1BD;;AA4BA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,KAAD,EAAmC;AAC1D,MAAMC,QAAQ,GAAG,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,CAAjB;;AACA,MAAID,KAAJ,EAAW;AACTC,IAAAA,QAAQ,CAAC,CAAD,CAAR,GAAcC,MAAM,CAACF,KAAK,CAACG,OAAN,EAAD,CAAN,CAAwBC,QAAxB,CAAiC,CAAjC,EAAoC,GAApC,CAAd;AACAH,IAAAA,QAAQ,CAAC,CAAD,CAAR,GAAcC,MAAM,CAACF,KAAK,CAACK,QAAN,KAAmB,CAApB,CAAN,CAA6BD,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACAH,IAAAA,QAAQ,CAAC,CAAD,CAAR,GAAcC,MAAM,CAACF,KAAK,CAACM,WAAN,EAAD,CAAN,CAA4BF,QAA5B,CAAqC,CAArC,EAAwC,GAAxC,CAAd;AACAH,IAAAA,QAAQ,CAAC,CAAD,CAAR,GAAcC,MAAM,CAACF,KAAK,CAACO,QAAN,EAAD,CAAN,CAAyBH,QAAzB,CAAkC,CAAlC,EAAqC,GAArC,CAAd;AACAH,IAAAA,QAAQ,CAAC,CAAD,CAAR,GAAcC,MAAM,CAACF,KAAK,CAACQ,UAAN,EAAD,CAAN,CAA2BJ,QAA3B,CAAoC,CAApC,EAAuC,GAAvC,CAAd;AACD;;AACD,SAAOH,QAAP;AACD,CAVD;;AAYA,OAAO,IAAMQ,SAAmC,GAAG,SAAtCA,SAAsC,OAqC7C;AAAA,MApCJC,UAoCI,QApCJA,UAoCI;AAAA,MAnCJC,iBAmCI,QAnCJA,iBAmCI;AAAA,MAlCJC,aAkCI,QAlCJA,aAkCI;AAAA,MAjCJC,WAiCI,QAjCJA,WAiCI;AAAA,MAhCJb,KAgCI,QAhCJA,KAgCI;AAAA,MA/BJc,QA+BI,QA/BJA,QA+BI;AAAA,mCA9BJC,iBA8BI;AAAA,MA9BJA,iBA8BI,sCA9BgB,cA8BhB;AAAA,MA7BJC,KA6BI,QA7BJA,KA6BI;AAAA,MA5BJC,SA4BI,QA5BJA,SA4BI;AAAA,MA3BJC,cA2BI,QA3BJA,cA2BI;AAAA,gCA1BJC,aA0BI;AAAA,MA1BJA,aA0BI,mCA1BY,IA0BZ;AAAA,MAzBJC,cAyBI,QAzBJA,cAyBI;AAAA,MAxBJC,UAwBI,QAxBJA,UAwBI;AAAA,MAvBJC,IAuBI,QAvBJA,IAuBI;AAAA,MAtBJC,SAsBI,QAtBJA,SAsBI;AAAA,MArBJC,QAqBI,QArBJA,QAqBI;AAAA,MApBJC,OAoBI,QApBJA,OAoBI;AAAA,MAnBJC,OAmBI,QAnBJA,OAmBI;AAAA,MAlBJC,kBAkBI,QAlBJA,kBAkBI;AAAA,MAjBJC,kBAiBI,QAjBJA,kBAiBI;AAAA,MAhBJC,oBAgBI,QAhBJA,oBAgBI;AAAA,MAfJC,IAeI,QAfJA,IAeI;AAAA,mCAdJC,oBAcI;AAAA,MAdJA,oBAcI,sCAdmB,gBAcnB;AAAA,mCAbJC,mBAaI;AAAA,MAbJA,mBAaI,sCAbkB,cAalB;AAAA,mCAZJC,kBAYI;AAAA,MAZJA,kBAYI,sCAZiB,eAYjB;AAAA,mCAXJC,oBAWI;AAAA,MAXJA,oBAWI,sCAXmB,cAWnB;AAAA,mCAVJC,sBAUI;AAAA,MAVJA,sBAUI,sCAVqB,iBAUrB;AAAA,mCATJC,mBASI;AAAA,MATJA,mBASI,sCATkB,eASlB;AAAA,mCARJC,qBAQI;AAAA,MARJA,qBAQI,sCARoB,oBAQpB;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,cAMI,QANJA,cAMI;AAAA,MALJC,WAKI,QALJA,WAKI;AAAA,MAJJC,WAII,QAJJA,WAII;AAAA,MAHJC,aAGI,QAHJA,aAGI;AAAA,MAFJC,aAEI,QAFJA,aAEI;AAAA,MADDC,KACC;;AACJ,MAAMC,OAAO,GAAGpE,KAAK,CAACqE,MAAN,CAA8B,IAA9B,CAAhB;AACA,MAAMC,SAAS,GAAGtE,KAAK,CAACqE,MAAN,CAA8B,IAA9B,CAAlB;AACA,MAAME,QAAQ,GAAGvE,KAAK,CAACqE,MAAN,CAA8B,IAA9B,CAAjB;AACA,MAAMG,QAAQ,GAAGxE,KAAK,CAACqE,MAAN,CAA8B,IAA9B,CAAjB;AACA,MAAMI,UAAU,GAAGzE,KAAK,CAACqE,MAAN,CAA8B,IAA9B,CAAnB;AAEA,MAAMK,UAAU,GAAGzC,UAAU,GAAG,CAAH,GAAO,CAApC;AAEA,MAAM0C,qBAAqB,GAAG3E,KAAK,CAAC4E,WAAN,CAC5B,UAACC,aAAD,EAA6B;AAC3B,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIJ,UAArB,EAAiCI,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAID,aAAa,CAACC,CAAD,CAAb,CAAiB3D,MAAjB,GAA0BF,cAAc,CAAC6D,CAAD,CAAd,CAAkB3D,MAAhD,EAAwD;AACtD;AACD;AACF;;AAED,QAAI4D,cAAc,aAAMF,aAAa,CAAC,CAAD,CAAnB,cAA0BA,aAAa,CAAC,CAAD,CAAvC,cAA8CA,aAAa,CAAC,CAAD,CAA3D,CAAlB;AACA,QAAIG,IAAI,GAAG,YAAX;;AACA,QAAI/C,UAAJ,EAAgB;AACd8C,MAAAA,cAAc,eAAQF,aAAa,CAAC,CAAD,CAArB,cAA4BA,aAAa,CAAC,CAAD,CAAzC,CAAd;AACAG,MAAAA,IAAI,IAAI,QAAR;AACD;;AAED,QAAI9E,OAAO,CAAC6E,cAAD,EAAiBC,IAAjB,CAAX,EAAmC;AACjC3C,MAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGlC,KAAK,CAAC4E,cAAD,EAAiBC,IAAjB,EAAuBzD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,IAAI0D,IAAJ,EAAhC,CAAR,CAAR;AACD;AACF,GAlB2B,EAmB5B,CAAChD,UAAD,EAAayC,UAAb,EAAyBrC,QAAzB,EAAmCd,KAAnC,CAnB4B,CAA9B;AAsBA,MAAM2D,IAAI,GAAGlF,KAAK,CAACmF,OAAN,CACX;AAAA,WAAM,CAACf,OAAD,EAAUE,SAAV,EAAqBC,QAArB,EAA+BC,QAA/B,EAAyCC,UAAzC,CAAN;AAAA,GADW,EAEX,CAACL,OAAD,EAAUE,SAAV,EAAqBC,QAArB,EAA+BC,QAA/B,EAAyCC,UAAzC,CAFW,CAAb;;AAKA,sBAYI7D,YAAY,CAAC;AACf8D,IAAAA,UAAU,EAAVA,UADe;AAEfQ,IAAAA,IAAI,EAAJA,IAFe;AAGfpC,IAAAA,SAAS,EAATA,SAHe;AAIfC,IAAAA,QAAQ,EAARA,QAJe;AAKf9B,IAAAA,cAAc,EAAdA,cALe;AAMfoB,IAAAA,QAAQ,EAARA,QANe;AAOfsC,IAAAA,qBAAqB,EAArBA,qBAPe;AAQfrD,IAAAA,gBAAgB,EAAhBA,gBARe;AASfC,IAAAA,KAAK,EAALA;AATe,GAAD,CAZhB;AAAA,MACE6D,OADF,iBACEA,OADF;AAAA,MAEEC,WAFF,iBAEEA,WAFF;AAAA,MAGEC,IAHF,iBAGEA,IAHF;AAAA,MAIEC,YAJF,iBAIEA,YAJF;AAAA,MAKEC,aALF,iBAKEA,aALF;AAAA,MAMEX,aANF,iBAMEA,aANF;AAAA,MAOEY,aAPF,iBAOEA,aAPF;AAAA,MAQEC,iBARF,iBAQEA,iBARF;AAAA,MASEC,gBATF,iBASEA,gBATF;AAAA,MAUEC,KAVF,iBAUEA,KAVF;AAAA,MAWEC,oBAXF,iBAWEA,oBAXF;;AAwBA,uBAAkB9E,aAAa,EAA/B;AAAA,MAAQ+E,KAAR,kBAAQA,KAAR;;AAEA,MAAMC,gBAAgB,GAAG/F,KAAK,CAAC4E,WAAN,CACvB,UAACrD,KAAD,EAA8B;AAC5Bc,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGd,KAAH,CAAR;;AACA,QAAImB,aAAa,IAAI,CAACT,UAAtB,EAAkC;AAChC4D,MAAAA,oBAAoB;AACrB;AACF,GANsB,EAOvB,CAACxD,QAAD,EAAWwD,oBAAX,EAAiCnD,aAAjC,EAAgDT,UAAhD,CAPuB,CAAzB;AAUA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAEvB,UAAU,CAAC,WAAD,6BAAkCoF,KAAlC,EADvB;AAEE,IAAA,KAAK,EAAEvD,KAFT;AAGE,IAAA,SAAS,EAAEC,SAHb;AAIE,IAAA,UAAU,EAAEhC,QAAQ,CAAC4E,OAAD,EAAUxC,UAAV,CAJtB;AAKE,IAAA,KAAK,EACHrB,KAAK,GACH,oBAAC,UAAD;AACE,MAAA,SAAS,EAAC,SADZ;AAEE,oBAAYoC,mBAFd;AAGE,MAAA,OAAO,EAAEiC;AAHX,OAKE,oBAAC,WAAD,OALF,CADG,GASH,oBAAC,UAAD;AACE,MAAA,SAAS,EAAC,SADZ;AAEE,oBAAYhC,qBAFd;AAGE,MAAA,OAAO,EAAE2B;AAHX,OAKE,oBAAC,qBAAD,OALF,CAfN;AAwBE,IAAA,QAAQ,EAAExC,QAxBZ;AAyBE,IAAA,OAAO,EAAE/B,YAAY,CAAC2E,gBAAD,EAAmB3C,OAAnB,CAzBvB;AA0BE,IAAA,OAAO,EAAEhC,YAAY,CAAC2E,gBAAD,EAAmB1C,OAAnB;AA1BvB,KA2BMkB,KA3BN,GA6BE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,IAAI,EAAEtB,IAFR;AAGE,IAAA,KAAK,EACHtB,KAAK,GACDtB,MAAM,CAACsB,KAAD,EAAQU,UAAU,GAAG,kBAAH,GAAwB,YAA1C,CADL,GAED;AANR,IA7BF,EAsCE;AAAM,IAAA,SAAS,EAAC,kBAAhB;AAAmC,IAAA,SAAS,EAAEwD;AAA9C,KACE,oBAAC,SAAD;AACE,IAAA,QAAQ,EAAE,CADZ;AAEE,IAAA,MAAM,EAAE,CAFV;AAGE,IAAA,UAAU,EAAErB,OAHd;AAIE,IAAA,KAAK,EAAE,CAJT;AAKE,IAAA,eAAe,EAAEsB,iBALnB;AAME,IAAA,KAAK,EAAEb,aAAa,CAAC,CAAD,CANtB;AAOE,kBAAYrB;AAPd,IADF,EAUE,oBAAC,gBAAD,YAVF,EAWE,oBAAC,SAAD;AACE,IAAA,MAAM,EAAE,CADV;AAEE,IAAA,UAAU,EAAEc,SAFd;AAGE,IAAA,KAAK,EAAE,CAHT;AAIE,IAAA,eAAe,EAAEoB,iBAJnB;AAKE,IAAA,KAAK,EAAEb,aAAa,CAAC,CAAD,CALtB;AAME,kBAAYvB;AANd,IAXF,EAmBE,oBAAC,gBAAD,YAnBF,EAoBE,oBAAC,SAAD;AACE,IAAA,MAAM,EAAE,CADV;AAEE,IAAA,UAAU,EAAEiB,QAFd;AAGE,IAAA,KAAK,EAAE,CAHT;AAIE,IAAA,eAAe,EAAEmB,iBAJnB;AAKE,IAAA,KAAK,EAAEb,aAAa,CAAC,CAAD,CALtB;AAME,kBAAYtB;AANd,IApBF,EA4BGtB,UAAU,IACT,oBAAC,KAAD,CAAO,QAAP,QACE,oBAAC,gBAAD;AAAkB,IAAA,SAAS,EAAC;AAA5B,KACG,GADH,CADF,EAIE,oBAAC,SAAD;AACE,IAAA,MAAM,EAAE,CADV;AAEE,IAAA,UAAU,EAAEuC,QAFd;AAGE,IAAA,KAAK,EAAE,CAHT;AAIE,IAAA,eAAe,EAAEkB,iBAJnB;AAKE,IAAA,KAAK,EAAEb,aAAa,CAAC,CAAD,CALtB;AAME,kBAAYpB;AANd,IAJF,EAYE,oBAAC,gBAAD,YAZF,EAaE,oBAAC,SAAD;AACE,IAAA,MAAM,EAAE,CADV;AAEE,IAAA,UAAU,EAAEgB,UAFd;AAGE,IAAA,KAAK,EAAE,CAHT;AAIE,IAAA,eAAe,EAAEiB,iBAJnB;AAKE,IAAA,KAAK,EAAEb,aAAa,CAAC,CAAD,CALtB;AAME,kBAAYnB;AANd,IAbF,CA7BJ,CAtCF,EA2FG4B,IAAI,IACH,oBAAC,MAAD;AACE,IAAA,SAAS,EAAEF,OADb;AAEE,IAAA,cAAc,EAAE,CAFlB;AAGE,IAAA,SAAS,EAAE9C;AAHb,KAKE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAEf,KADT;AAEE,IAAA,QAAQ,EAAEwE,gBAFZ;AAGE,IAAA,UAAU,EAAE9D,UAHd;AAIE,IAAA,WAAW,EAAEG,WAJf;AAKE,IAAA,aAAa,EAAED,aALjB;AAME,IAAA,iBAAiB,EAAED,iBANrB;AAOE,IAAA,OAAO,EAAEsD,aAPX;AAQE,IAAA,UAAU,EAAEH,WARd;AASE,IAAA,cAAc,EAAE5C,cATlB;AAUE,IAAA,cAAc,EAAEE,cAVlB;AAWE,IAAA,oBAAoB,EAAEc,oBAXxB;AAYE,IAAA,sBAAsB,EAAEC,sBAZ1B;AAaE,IAAA,kBAAkB,EAAER,kBAbtB;AAcE,IAAA,kBAAkB,EAAEC,kBAdtB;AAeE,IAAA,oBAAoB,EAAEG,oBAfxB;AAgBE,IAAA,mBAAmB,EAAEC,mBAhBvB;AAiBE,IAAA,kBAAkB,EAAEC,kBAjBtB;AAkBE,IAAA,oBAAoB,EAAEJ,oBAlBxB;AAmBE,IAAA,IAAI,EAAEC,IAnBR;AAoBE,IAAA,QAAQ,EAAEQ,QApBZ;AAqBE,IAAA,cAAc,EAAEC,cArBlB;AAsBE,IAAA,WAAW,EAAEC,WAtBf;AAuBE,IAAA,WAAW,EAAEC,WAvBf;AAwBE,IAAA,aAAa,EAAEC,aAxBjB;AAyBE,IAAA,aAAa,EAAEC;AAzBjB,IALF,CA5FJ,CADF;AAiID,CA9OM","sourcesContent":["import * as React from \"react\";\nimport { format, isMatch, parse } from \"../../lib/date\";\nimport { Icon16Clear, Icon20CalendarOutline } from \"@vkontakte/icons\";\nimport { Calendar, CalendarProps } from \"../Calendar/Calendar\";\nimport { Popper, Placement } from \"../Popper/Popper\";\nimport { multiRef } from \"../../lib/utils\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasRootRef } from \"../../types\";\nimport { useDateInput } from \"../../hooks/useDateInput\";\nimport { InputLike } from \"../InputLike/InputLike\";\nimport { InputLikeDivider } from \"../InputLike/InputLikeDivider\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport \"./DateInput.css\";\n\nexport interface DateInputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLDivElement>,\n \"value\" | \"onChange\" | \"size\"\n >,\n Pick<\n CalendarProps,\n | \"disablePast\"\n | \"disableFuture\"\n | \"enableTime\"\n | \"shouldDisableDate\"\n | \"onChange\"\n | \"value\"\n | \"doneButtonText\"\n | \"weekStartsOn\"\n | \"disablePickers\"\n | \"changeHoursAriaLabel\"\n | \"changeMinutesAriaLabel\"\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"changeDayAriaLabel\"\n | \"showNeighboringMonth\"\n | \"size\"\n | \"viewDate\"\n | \"onHeaderChange\"\n | \"onNextMonth\"\n | \"onPrevMonth\"\n | \"prevMonthIcon\"\n | \"nextMonthIcon\"\n >,\n HasRootRef<HTMLDivElement> {\n calendarPlacement?: Placement;\n closeOnChange?: boolean;\n clearFieldAriaLabel?: string;\n showCalendarAriaLabel?: string;\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\nexport const DateInput: React.FC<DateInputProps> = ({\n enableTime,\n shouldDisableDate,\n disableFuture,\n disablePast,\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 prevMonthAriaLabel,\n nextMonthAriaLabel,\n showNeighboringMonth,\n size,\n changeMonthAriaLabel = \"Изменить месяц\",\n changeYearAriaLabel = \"Изменить год\",\n changeDayAriaLabel = \"Изменить день\",\n changeHoursAriaLabel = \"Изменить час\",\n changeMinutesAriaLabel = \"Изменить минуту\",\n clearFieldAriaLabel = \"Очистить поле\",\n showCalendarAriaLabel = \"Показать календарь\",\n viewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n ...props\n}) => {\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 closeCalendar,\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 } = useAdaptivity();\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 vkuiClass={classNames(\"DateInput\", `DateInput--sizeY-${sizeY}`)}\n style={style}\n className={className}\n getRootRef={multiRef(rootRef, getRootRef)}\n after={\n value ? (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={clearFieldAriaLabel}\n onClick={clear}\n >\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={showCalendarAriaLabel}\n onClick={openCalendar}\n >\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={\n value\n ? format(value, enableTime ? \"DD.MM.YYYYTHH:mm\" : \"DD.MM.YYYY\")\n : \"\"\n }\n />\n <span vkuiClass=\"DateInput__input\" onKeyDown={handleKeyDown}>\n <InputLike\n tabIndex={1}\n length={2}\n getRootRef={daysRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n aria-label={changeDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n aria-label={changeMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n aria-label={changeYearAriaLabel}\n />\n {enableTime && (\n <React.Fragment>\n <InputLikeDivider vkuiClass=\"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 aria-label={changeHoursAriaLabel}\n />\n <InputLikeDivider>:</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={minutesRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n aria-label={changeMinutesAriaLabel}\n />\n </React.Fragment>\n )}\n </span>\n {open && (\n <Popper\n targetRef={rootRef}\n offsetDistance={8}\n placement={calendarPlacement}\n >\n <Calendar\n value={value}\n onChange={onCalendarChange}\n enableTime={enableTime}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={closeCalendar}\n getRootRef={calendarRef}\n doneButtonText={doneButtonText}\n disablePickers={disablePickers}\n changeHoursAriaLabel={changeHoursAriaLabel}\n changeMinutesAriaLabel={changeMinutesAriaLabel}\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n changeDayAriaLabel={changeDayAriaLabel}\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 />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"file":"DateInput.js"}
|
|
@@ -3,7 +3,7 @@ import { CalendarRangeProps } from "../CalendarRange/CalendarRange";
|
|
|
3
3
|
import { Placement } from "../Popper/Popper";
|
|
4
4
|
import { HasRootRef } from "../../types";
|
|
5
5
|
import "./DateRangeInput.css";
|
|
6
|
-
export interface DateRangeInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, "value" | "onChange">, Pick<CalendarRangeProps, "disablePast" | "disableFuture" | "shouldDisableDate" | "onChange" | "value" | "weekStartsOn" | "disablePickers" | "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "changeDayAriaLabel">, HasRootRef<HTMLDivElement> {
|
|
6
|
+
export interface DateRangeInputProps extends Omit<React.InputHTMLAttributes<HTMLDivElement>, "value" | "onChange">, Pick<CalendarRangeProps, "disablePast" | "disableFuture" | "shouldDisableDate" | "onChange" | "value" | "weekStartsOn" | "disablePickers" | "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "changeDayAriaLabel" | "prevMonthIcon" | "nextMonthIcon">, HasRootRef<HTMLDivElement> {
|
|
7
7
|
calendarPlacement?: Placement;
|
|
8
8
|
closeOnChange?: boolean;
|
|
9
9
|
clearFieldAriaLabel?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["shouldDisableDate", "disableFuture", "disablePast", "value", "onChange", "calendarPlacement", "style", "className", "closeOnChange", "disablePickers", "getRootRef", "name", "autoFocus", "disabled", "onClick", "onFocus", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeDayAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "changeStartDayAriaLabel", "changeStartMonthAriaLabel", "changeStartYearAriaLabel", "changeEndDayAriaLabel", "changeEndMonthAriaLabel", "changeEndYearAriaLabel", "clearFieldAriaLabel", "showCalendarAriaLabel"];
|
|
3
|
+
var _excluded = ["shouldDisableDate", "disableFuture", "disablePast", "value", "onChange", "calendarPlacement", "style", "className", "closeOnChange", "disablePickers", "getRootRef", "name", "autoFocus", "disabled", "onClick", "onFocus", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeDayAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "changeStartDayAriaLabel", "changeStartMonthAriaLabel", "changeStartYearAriaLabel", "changeEndDayAriaLabel", "changeEndMonthAriaLabel", "changeEndYearAriaLabel", "clearFieldAriaLabel", "showCalendarAriaLabel", "prevMonthIcon", "nextMonthIcon"];
|
|
4
4
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { format, isMatch, parse, isAfter } from "../../lib/date";
|
|
@@ -107,6 +107,8 @@ export var DateRangeInput = function DateRangeInput(_ref) {
|
|
|
107
107
|
clearFieldAriaLabel = _ref$clearFieldAriaLa === void 0 ? "Очистить поле" : _ref$clearFieldAriaLa,
|
|
108
108
|
_ref$showCalendarAria = _ref.showCalendarAriaLabel,
|
|
109
109
|
showCalendarAriaLabel = _ref$showCalendarAria === void 0 ? "Показать календарь" : _ref$showCalendarAria,
|
|
110
|
+
prevMonthIcon = _ref.prevMonthIcon,
|
|
111
|
+
nextMonthIcon = _ref.nextMonthIcon,
|
|
110
112
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
111
113
|
|
|
112
114
|
var daysStartRef = React.useRef(null);
|
|
@@ -276,7 +278,9 @@ export var DateRangeInput = function DateRangeInput(_ref) {
|
|
|
276
278
|
nextMonthAriaLabel: nextMonthAriaLabel,
|
|
277
279
|
changeMonthAriaLabel: changeMonthAriaLabel,
|
|
278
280
|
changeYearAriaLabel: changeYearAriaLabel,
|
|
279
|
-
changeDayAriaLabel: changeDayAriaLabel
|
|
281
|
+
changeDayAriaLabel: changeDayAriaLabel,
|
|
282
|
+
prevMonthIcon: prevMonthIcon,
|
|
283
|
+
nextMonthIcon: nextMonthIcon
|
|
280
284
|
})));
|
|
281
285
|
};
|
|
282
286
|
//# sourceMappingURL=DateRangeInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateRangeInput/DateRangeInput.tsx"],"names":["React","format","isMatch","parse","isAfter","Icon16Clear","Icon20CalendarOutline","CalendarRange","Popper","IconButton","useDateInput","useAdaptivity","classNames","multiRef","FormField","InputLike","InputLikeDivider","callMultiple","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","DateRangeInput","shouldDisableDate","disableFuture","disablePast","onChange","calendarPlacement","style","className","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthAriaLabel","nextMonthAriaLabel","changeDayAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeStartDayAriaLabel","changeStartMonthAriaLabel","changeStartYearAriaLabel","changeEndDayAriaLabel","changeEndMonthAriaLabel","changeEndYearAriaLabel","clearFieldAriaLabel","showCalendarAriaLabel","props","daysStartRef","useRef","monthsStartRef","yearsStartRef","daysEndRef","monthsEndRef","yearsEndRef","onInternalValueChange","useCallback","internalValue","isStartValid","isEndValid","i","formattedStartValue","formattedEndValue","mask","valueExists","Array","isArray","now","Date","start","end","refs","useMemo","maxElement","rootRef","calendarRef","open","openCalendar","closeCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","onCalendarChange"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { format, isMatch, parse, isAfter } from \"../../lib/date\";\nimport { Icon16Clear, Icon20CalendarOutline } from \"@vkontakte/icons\";\nimport {\n CalendarRange,\n CalendarRangeProps,\n} from \"../CalendarRange/CalendarRange\";\nimport { Popper, Placement } from \"../Popper/Popper\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { HasRootRef } from \"../../types\";\nimport { useDateInput } from \"../../hooks/useDateInput\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { classNames } from \"../../lib/classNames\";\nimport { multiRef } from \"../../lib/utils\";\nimport { FormField } from \"../FormField/FormField\";\nimport { InputLike } from \"../InputLike/InputLike\";\nimport { InputLikeDivider } from \"../InputLike/InputLikeDivider\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport \"./DateRangeInput.css\";\n\nexport interface DateRangeInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, \"value\" | \"onChange\">,\n Pick<\n CalendarRangeProps,\n | \"disablePast\"\n | \"disableFuture\"\n | \"shouldDisableDate\"\n | \"onChange\"\n | \"value\"\n | \"weekStartsOn\"\n | \"disablePickers\"\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"changeDayAriaLabel\"\n >,\n HasRootRef<HTMLDivElement> {\n calendarPlacement?: Placement;\n closeOnChange?: boolean;\n clearFieldAriaLabel?: string;\n showCalendarAriaLabel?: string;\n changeStartDayAriaLabel?: string;\n changeStartMonthAriaLabel?: string;\n changeStartYearAriaLabel?: string;\n changeEndDayAriaLabel?: string;\n changeEndMonthAriaLabel?: string;\n changeEndYearAriaLabel?: string;\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 case 3:\n max = 31;\n break;\n case 1:\n case 4:\n max = 12;\n break;\n case 2:\n case 5:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarRangeProps[\"value\"]) => {\n const newValue = [\"\", \"\", \"\", \"\", \"\", \"\"];\n if (value?.[0]) {\n newValue[0] = String(value[0].getDate()).padStart(2, \"0\");\n newValue[1] = String(value[0].getMonth() + 1).padStart(2, \"0\");\n newValue[2] = String(value[0].getFullYear()).padStart(4, \"0\");\n }\n if (value?.[1]) {\n newValue[3] = String(value[1].getDate()).padStart(2, \"0\");\n newValue[4] = String(value[1].getMonth() + 1).padStart(2, \"0\");\n newValue[5] = String(value[1].getFullYear()).padStart(4, \"0\");\n }\n return newValue;\n};\n\nexport const DateRangeInput: React.FC<DateRangeInputProps> = ({\n shouldDisableDate,\n disableFuture,\n disablePast,\n value,\n onChange,\n calendarPlacement = \"bottom-start\",\n style,\n className,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeDayAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeStartDayAriaLabel = \"Изменить день начала\",\n changeStartMonthAriaLabel = \"Изменить месяц начала\",\n changeStartYearAriaLabel = \"Изменить год начала\",\n changeEndDayAriaLabel = \"Изменить день окончания\",\n changeEndMonthAriaLabel = \"Изменить месяц окончания\",\n changeEndYearAriaLabel = \"Изменить год окончания\",\n clearFieldAriaLabel = \"Очистить поле\",\n showCalendarAriaLabel = \"Показать календарь\",\n ...props\n}) => {\n const daysStartRef = React.useRef<HTMLSpanElement>(null);\n const monthsStartRef = React.useRef<HTMLSpanElement>(null);\n const yearsStartRef = React.useRef<HTMLSpanElement>(null);\n const daysEndRef = React.useRef<HTMLSpanElement>(null);\n const monthsEndRef = React.useRef<HTMLSpanElement>(null);\n const yearsEndRef = React.useRef<HTMLSpanElement>(null);\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n let isStartValid = true;\n let isEndValid = true;\n for (let i = 0; i <= 2; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isStartValid = false;\n }\n }\n for (let i = 3; i <= 5; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isEndValid = false;\n }\n }\n const formattedStartValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n const formattedEndValue = `${internalValue[3]}.${internalValue[4]}.${internalValue[5]}`;\n const mask = \"dd.MM.yyyy\";\n\n if (!isMatch(formattedStartValue, mask)) {\n isStartValid = false;\n }\n if (!isMatch(formattedEndValue, mask)) {\n isEndValid = false;\n }\n\n if (!isStartValid && !isEndValid) {\n return;\n }\n\n const valueExists = Array.isArray(value);\n const now = new Date();\n const start = isStartValid\n ? parse(formattedStartValue, mask, (valueExists && value?.[0]) || now)\n : null;\n const end = isEndValid\n ? parse(formattedEndValue, mask, (valueExists && value?.[1]) || now)\n : null;\n if (start && end && isAfter(end, start)) {\n onChange?.([start, end]);\n }\n },\n [onChange, value]\n );\n\n const refs = React.useMemo(\n () => [\n daysStartRef,\n monthsStartRef,\n yearsStartRef,\n daysEndRef,\n monthsEndRef,\n yearsEndRef,\n ],\n [\n daysStartRef,\n monthsStartRef,\n yearsStartRef,\n daysEndRef,\n monthsEndRef,\n yearsEndRef,\n ]\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n closeCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement: 5,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n });\n\n const { sizeY } = useAdaptivity();\n\n const onCalendarChange = React.useCallback(\n (newValue?: Array<Date | null> | undefined) => {\n onChange?.(newValue);\n if (closeOnChange && newValue?.[1] && newValue[1] !== value?.[1]) {\n removeFocusFromField();\n }\n },\n [onChange, closeOnChange, value, removeFocusFromField]\n );\n\n return (\n <FormField\n vkuiClass={classNames(\"DateRangeInput\", `DateRangeInput--sizeY-${sizeY}`)}\n style={style}\n className={className}\n getRootRef={multiRef(rootRef, getRootRef)}\n after={\n value ? (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={clearFieldAriaLabel}\n onClick={clear}\n >\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={showCalendarAriaLabel}\n onClick={openCalendar}\n >\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={\n value\n ? `${value[0] ? format(value[0], \"DD.MM.YYYY\") : \"\"} - ${\n value[1] ? format(value[1], \"DD.MM.YYYY\") : \"\"\n }`\n : \"\"\n }\n />\n <span vkuiClass=\"DateInput__input\" onKeyDown={handleKeyDown}>\n <InputLike\n length={2}\n getRootRef={daysStartRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n aria-label={changeStartDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsStartRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n aria-label={changeStartMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsStartRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n aria-label={changeStartYearAriaLabel}\n />\n <InputLikeDivider>{\" — \"}</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={daysEndRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n aria-label={changeEndDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsEndRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n aria-label={changeEndMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsEndRef}\n index={5}\n onElementSelect={setFocusedElement}\n value={internalValue[5]}\n aria-label={changeEndYearAriaLabel}\n />\n </span>\n {open && (\n <Popper\n targetRef={rootRef}\n offsetDistance={8}\n placement={calendarPlacement}\n >\n <CalendarRange\n value={value}\n onChange={onCalendarChange}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={closeCalendar}\n getRootRef={calendarRef}\n disablePickers={disablePickers}\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n changeDayAriaLabel={changeDayAriaLabel}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"file":"DateRangeInput.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateRangeInput/DateRangeInput.tsx"],"names":["React","format","isMatch","parse","isAfter","Icon16Clear","Icon20CalendarOutline","CalendarRange","Popper","IconButton","useDateInput","useAdaptivity","classNames","multiRef","FormField","InputLike","InputLikeDivider","callMultiple","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","DateRangeInput","shouldDisableDate","disableFuture","disablePast","onChange","calendarPlacement","style","className","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthAriaLabel","nextMonthAriaLabel","changeDayAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeStartDayAriaLabel","changeStartMonthAriaLabel","changeStartYearAriaLabel","changeEndDayAriaLabel","changeEndMonthAriaLabel","changeEndYearAriaLabel","clearFieldAriaLabel","showCalendarAriaLabel","prevMonthIcon","nextMonthIcon","props","daysStartRef","useRef","monthsStartRef","yearsStartRef","daysEndRef","monthsEndRef","yearsEndRef","onInternalValueChange","useCallback","internalValue","isStartValid","isEndValid","i","formattedStartValue","formattedEndValue","mask","valueExists","Array","isArray","now","Date","start","end","refs","useMemo","maxElement","rootRef","calendarRef","open","openCalendar","closeCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","onCalendarChange"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { format, isMatch, parse, isAfter } from \"../../lib/date\";\nimport { Icon16Clear, Icon20CalendarOutline } from \"@vkontakte/icons\";\nimport {\n CalendarRange,\n CalendarRangeProps,\n} from \"../CalendarRange/CalendarRange\";\nimport { Popper, Placement } from \"../Popper/Popper\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { HasRootRef } from \"../../types\";\nimport { useDateInput } from \"../../hooks/useDateInput\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { classNames } from \"../../lib/classNames\";\nimport { multiRef } from \"../../lib/utils\";\nimport { FormField } from \"../FormField/FormField\";\nimport { InputLike } from \"../InputLike/InputLike\";\nimport { InputLikeDivider } from \"../InputLike/InputLikeDivider\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport \"./DateRangeInput.css\";\n\nexport interface DateRangeInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, \"value\" | \"onChange\">,\n Pick<\n CalendarRangeProps,\n | \"disablePast\"\n | \"disableFuture\"\n | \"shouldDisableDate\"\n | \"onChange\"\n | \"value\"\n | \"weekStartsOn\"\n | \"disablePickers\"\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"changeDayAriaLabel\"\n | \"prevMonthIcon\"\n | \"nextMonthIcon\"\n >,\n HasRootRef<HTMLDivElement> {\n calendarPlacement?: Placement;\n closeOnChange?: boolean;\n clearFieldAriaLabel?: string;\n showCalendarAriaLabel?: string;\n changeStartDayAriaLabel?: string;\n changeStartMonthAriaLabel?: string;\n changeStartYearAriaLabel?: string;\n changeEndDayAriaLabel?: string;\n changeEndMonthAriaLabel?: string;\n changeEndYearAriaLabel?: string;\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 case 3:\n max = 31;\n break;\n case 1:\n case 4:\n max = 12;\n break;\n case 2:\n case 5:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarRangeProps[\"value\"]) => {\n const newValue = [\"\", \"\", \"\", \"\", \"\", \"\"];\n if (value?.[0]) {\n newValue[0] = String(value[0].getDate()).padStart(2, \"0\");\n newValue[1] = String(value[0].getMonth() + 1).padStart(2, \"0\");\n newValue[2] = String(value[0].getFullYear()).padStart(4, \"0\");\n }\n if (value?.[1]) {\n newValue[3] = String(value[1].getDate()).padStart(2, \"0\");\n newValue[4] = String(value[1].getMonth() + 1).padStart(2, \"0\");\n newValue[5] = String(value[1].getFullYear()).padStart(4, \"0\");\n }\n return newValue;\n};\n\nexport const DateRangeInput: React.FC<DateRangeInputProps> = ({\n shouldDisableDate,\n disableFuture,\n disablePast,\n value,\n onChange,\n calendarPlacement = \"bottom-start\",\n style,\n className,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeDayAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeStartDayAriaLabel = \"Изменить день начала\",\n changeStartMonthAriaLabel = \"Изменить месяц начала\",\n changeStartYearAriaLabel = \"Изменить год начала\",\n changeEndDayAriaLabel = \"Изменить день окончания\",\n changeEndMonthAriaLabel = \"Изменить месяц окончания\",\n changeEndYearAriaLabel = \"Изменить год окончания\",\n clearFieldAriaLabel = \"Очистить поле\",\n showCalendarAriaLabel = \"Показать календарь\",\n prevMonthIcon,\n nextMonthIcon,\n ...props\n}) => {\n const daysStartRef = React.useRef<HTMLSpanElement>(null);\n const monthsStartRef = React.useRef<HTMLSpanElement>(null);\n const yearsStartRef = React.useRef<HTMLSpanElement>(null);\n const daysEndRef = React.useRef<HTMLSpanElement>(null);\n const monthsEndRef = React.useRef<HTMLSpanElement>(null);\n const yearsEndRef = React.useRef<HTMLSpanElement>(null);\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n let isStartValid = true;\n let isEndValid = true;\n for (let i = 0; i <= 2; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isStartValid = false;\n }\n }\n for (let i = 3; i <= 5; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isEndValid = false;\n }\n }\n const formattedStartValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n const formattedEndValue = `${internalValue[3]}.${internalValue[4]}.${internalValue[5]}`;\n const mask = \"dd.MM.yyyy\";\n\n if (!isMatch(formattedStartValue, mask)) {\n isStartValid = false;\n }\n if (!isMatch(formattedEndValue, mask)) {\n isEndValid = false;\n }\n\n if (!isStartValid && !isEndValid) {\n return;\n }\n\n const valueExists = Array.isArray(value);\n const now = new Date();\n const start = isStartValid\n ? parse(formattedStartValue, mask, (valueExists && value?.[0]) || now)\n : null;\n const end = isEndValid\n ? parse(formattedEndValue, mask, (valueExists && value?.[1]) || now)\n : null;\n if (start && end && isAfter(end, start)) {\n onChange?.([start, end]);\n }\n },\n [onChange, value]\n );\n\n const refs = React.useMemo(\n () => [\n daysStartRef,\n monthsStartRef,\n yearsStartRef,\n daysEndRef,\n monthsEndRef,\n yearsEndRef,\n ],\n [\n daysStartRef,\n monthsStartRef,\n yearsStartRef,\n daysEndRef,\n monthsEndRef,\n yearsEndRef,\n ]\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n closeCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement: 5,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n });\n\n const { sizeY } = useAdaptivity();\n\n const onCalendarChange = React.useCallback(\n (newValue?: Array<Date | null> | undefined) => {\n onChange?.(newValue);\n if (closeOnChange && newValue?.[1] && newValue[1] !== value?.[1]) {\n removeFocusFromField();\n }\n },\n [onChange, closeOnChange, value, removeFocusFromField]\n );\n\n return (\n <FormField\n vkuiClass={classNames(\"DateRangeInput\", `DateRangeInput--sizeY-${sizeY}`)}\n style={style}\n className={className}\n getRootRef={multiRef(rootRef, getRootRef)}\n after={\n value ? (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={clearFieldAriaLabel}\n onClick={clear}\n >\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton\n hoverMode=\"opacity\"\n aria-label={showCalendarAriaLabel}\n onClick={openCalendar}\n >\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={\n value\n ? `${value[0] ? format(value[0], \"DD.MM.YYYY\") : \"\"} - ${\n value[1] ? format(value[1], \"DD.MM.YYYY\") : \"\"\n }`\n : \"\"\n }\n />\n <span vkuiClass=\"DateInput__input\" onKeyDown={handleKeyDown}>\n <InputLike\n length={2}\n getRootRef={daysStartRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n aria-label={changeStartDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsStartRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n aria-label={changeStartMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsStartRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n aria-label={changeStartYearAriaLabel}\n />\n <InputLikeDivider>{\" — \"}</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={daysEndRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n aria-label={changeEndDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsEndRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n aria-label={changeEndMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsEndRef}\n index={5}\n onElementSelect={setFocusedElement}\n value={internalValue[5]}\n aria-label={changeEndYearAriaLabel}\n />\n </span>\n {open && (\n <Popper\n targetRef={rootRef}\n offsetDistance={8}\n placement={calendarPlacement}\n >\n <CalendarRange\n value={value}\n onChange={onCalendarChange}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={closeCalendar}\n getRootRef={calendarRef}\n disablePickers={disablePickers}\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n changeDayAriaLabel={changeDayAriaLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"file":"DateRangeInput.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiFixedLayout{position:fixed;box-sizing:border-box;left:auto;z-index:3;padding-left:0;padding-left:var(--safe-area-inset-left);padding-right:0;padding-right:var(--safe-area-inset-right)}.vkuiFixedLayout--filled{background:#fff;background:var(--background_content)}.vkuiFixedLayout--top{width:100%;top:0
|
|
1
|
+
.vkuiFixedLayout{position:fixed;box-sizing:border-box;left:auto;z-index:3;padding-left:0;padding-left:var(--safe-area-inset-left);padding-right:0;padding-right:var(--safe-area-inset-right)}.vkuiFixedLayout--filled{background:#fff;background:var(--background_content)}.vkuiFixedLayout--top{width:100%;top:0}.vkuiFixedLayout--bottom{width:100%;bottom:0;padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom)}.vkuiEpic .vkuiFixedLayout--bottom{padding-bottom:calc(48px + 0px);padding-bottom:calc(var(--tabbar_height) + var(--safe-area-inset-bottom))}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
.vkuiFormField{position:relative;display:flex;align-items:center;padding:1px;box-sizing:border-box;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular)}.vkuiFormField>*{border-radius:inherit}.vkuiFormField__before,.vkuiFormField__after{flex-shrink:0;position:relative;display:flex;align-items:center;align-content:center;justify-content:center;min-width:44px;height:44px;margin:-1px;color:#99a2ad;color:var(--icon_secondary, var(--vkui--color_icon_secondary));z-index:2}.vkuiFormField__before{color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiFormField__after{color:#99a2ad;color:var(--icon_secondary, var(--vkui--color_icon_secondary))}.vkuiChipsInput .vkuiFormField__after{z-index:3}.vkuiFormField__border{position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid rgba(0,0,0,.12);border:var(--thin-border) solid var(--field_border, var(--vkui--color_field_border_alpha));background:#f2f3f5;background:var(--field_background, var(--vkui--color_field_background));content:"";box-sizing:border-box;z-index:1;-webkit-transform-origin:left top;transform-origin:left top}.vkuiFormItem--error .vkuiFormField__border{background:#faebeb;background:var(--field_error_background,
|
|
1
|
+
.vkuiFormField{position:relative;display:flex;align-items:center;padding:1px;box-sizing:border-box;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular,8px)}.vkuiFormField>*{border-radius:inherit}.vkuiFormField__before,.vkuiFormField__after{flex-shrink:0;position:relative;display:flex;align-items:center;align-content:center;justify-content:center;min-width:44px;height:44px;margin:-1px;color:#99a2ad;color:var(--icon_secondary, var(--vkui--color_icon_secondary));z-index:2}.vkuiFormField__before{color:#2688eb;color:var(--vkui--color_icon_accent,#2688EB)}.vkuiFormField__after{color:#99a2ad;color:var(--icon_secondary, var(--vkui--color_icon_secondary))}.vkuiChipsInput .vkuiFormField__after{z-index:3}.vkuiFormField__border{position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid rgba(0,0,0,.12);border:var(--thin-border) solid var(--field_border, var(--vkui--color_field_border_alpha));background:#f2f3f5;background:var(--field_background, var(--vkui--color_field_background));content:"";box-sizing:border-box;z-index:1;-webkit-transform-origin:left top;transform-origin:left top}.vkuiFormItem--error .vkuiFormField__border{background:#faebeb;background:var(--field_error_background,
|
|
2
2
|
var(--vkui--color_background_negative_tint)
|
|
3
|
-
);border-color:#e64646;border-color:var(--field_error_border, var(--vkui--color_stroke_negative))}.vkuiFormItem--valid .vkuiFormField__border{border-color:#4bb34b;border-color:var(--field_valid_border, var(--vkui--color_stroke_positive))}.vkuiFormField--disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility);cursor:default;pointer-events:none}.vkuiFormField:not(.vkuiFormField--disabled) .vkuiFormField__border--hover{border-color:rgba(0,0,0,.24);border-color:var(--icon_tertiary_alpha,
|
|
3
|
+
);border-color:#e64646;border-color:var(--field_error_border, var(--vkui--color_stroke_negative))}.vkuiFormItem--valid .vkuiFormField__border{border-color:#4bb34b;border-color:var(--field_valid_border, var(--vkui--color_stroke_positive))}.vkuiFormField--disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility,0.64);cursor:default;pointer-events:none}.vkuiFormField:not(.vkuiFormField--disabled) .vkuiFormField__border--hover{border-color:rgba(0,0,0,.24);border-color:var(--icon_tertiary_alpha,
|
|
4
4
|
var(--vkui--color_field_border_alpha--hover)
|
|
5
5
|
)}.vkuiFormField:focus-within .vkuiFormField__border,.vkuiFormField :focus~.vkuiFormField__border,.vkuiChipsInput--focused .vkuiFormField__border{border-color:#2688eb;border-color:var(--accent, var(--vkui--color_stroke_accent));background:#f2f3f5;background:var(--field_background, var(--vkui--color_field_background))}.vkuiFormField--sizeY-compact .vkuiFormField__before,.vkuiFormField--sizeY-compact .vkuiFormField__after{min-width:36px;height:36px}.vkuiModalCardBase__header+.vkuiFormField,.vkuiModalCardBase__subheader+.vkuiFormField{margin-top:16px}.vkuiSelect--mimicry-plain .vkuiFormField__after,.vkuiSelect--mimicry-plain .vkuiFormField--sizeY-compact .vkuiFormField__after{justify-content:flex-start;min-width:0;height:auto}.vkuiCustomSelect__open.vkuiSelect--mimicry:focus .vkuiFormField__border{border-color:rgba(0,0,0,.12);border-color:var(--field_border, var(--vkui--color_field_border_alpha))}.vkuiCustomSelect__open:not(.vkuiCustomSelect__open--popupDirectionTop):not(.vkuiCustomSelect__open--not-adjacent) .vkuiFormField__border{border-bottom-left-radius:0;border-bottom-right-radius:0}.vkuiCustomSelect__open.vkuiCustomSelect__open--popupDirectionTop:not(.vkuiCustomSelect__open--not-adjacent) .vkuiFormField__border{border-top-left-radius:0;border-top-right-radius:0}.vkuiCustomSelect__open.vkuiSelect--mimicry-plain.vkuiSelect--mimicry:focus .vkuiFormField__border,.vkuiFormField:not(.vkuiFormField--disabled) .vkuiFormField__border--hover{background-color:#ebedf0;background-color:var(--background_page, var(--vkui--color_field_background))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiFormLayoutGroup--horizontal{display:flex;padding:12px 16px;padding:12px var(--
|
|
1
|
+
.vkuiFormLayoutGroup--horizontal{display:flex;padding:12px 16px;padding:12px var(--vkui--size_base_padding_horizontal--regular,16px)}.vkuiFormLayoutGroup__removable{flex-grow:1;min-width:0;max-width:100%}.vkuiFormLayoutGroup--ios{--formitem_padding:12px}.vkuiFormLayoutGroup--removable{padding-left:0;padding-right:0}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.vkuiHorizontalScrollArrow{position:absolute;cursor:pointer;-webkit-user-select:auto;user-select:auto;top:0;height:100%;padding:0;opacity:0;z-index:3;border:0;background-color:transparent;transition:opacity .15s;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:var(--android-easing);display:flex;flex-direction:column;justify-content:center}.vkuiHorizontalScroll:hover .vkuiHorizontalScrollArrow,.vkuiGallery:hover .vkuiHorizontalScrollArrow{opacity:.72}.vkuiHorizontalScroll:hover .vkuiHorizontalScrollArrow:hover,.vkuiGallery:hover .vkuiHorizontalScrollArrow:hover,.vkuiHorizontalScroll--withConstArrows .vkuiHorizontalScrollArrow,.vkuiHorizontalScroll--withConstArrows:hover .vkuiHorizontalScrollArrow{opacity:1}.vkuiHorizontalScrollArrow__icon{background-color:#fff;background-color:var(--modal_card_background,
|
|
2
2
|
var(--vkui--color_background_modal)
|
|
3
|
-
);color:#99a2ad;color:var(--icon_secondary, var(--vkui--color_icon_secondary));width:40px;height:40px;border-radius:24px;box-shadow:0 0 2px rgba(0,0,0,.08)
|
|
3
|
+
);color:#99a2ad;color:var(--icon_secondary, var(--vkui--color_icon_secondary));width:40px;height:40px;border-radius:24px;box-shadow:0 0 2px rgba(0,0,0,.08)0 0 16px rgba(0,0,0,.12);box-shadow:var(--vkui--elevation3,
|
|
4
4
|
0 0 2px rgba(0, 0, 0, 0.08),
|
|
5
5
|
0 0 16px rgba(0, 0, 0, 0.12)
|
|
6
6
|
);display:flex;align-items:center;justify-content:center}.vkuiHorizontalScrollArrow--left{padding-left:16px;padding-left:var(--vkui--size_base_padding_horizontal--regular, 16px);left:0}.vkuiHorizontalScrollArrow--left .vkuiHorizontalScrollArrow__icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vkuiHorizontalScrollArrow--right{padding-right:16px;padding-right:var(--vkui--size_base_padding_horizontal--regular, 16px);right:0}.vkuiHorizontalScrollArrow--ios .vkuiHorizontalScrollArrow{transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:var(--ios-easing)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiInput{position:relative;line-height:20px;font-size:16px;letter-spacing:var(--vk-sans-ls-2)}.vkuiInput--center .vkuiInput__el{text-align:center}.vkuiInput--right .vkuiInput__el{text-align:right}.vkuiInput__el{margin:0;width:100%;display:block;box-sizing:border-box;box-shadow:none;border:0;-webkit-appearance:none;appearance:none;text-overflow:ellipsis;height:42px;line-height:20px;font-size:16px;color:#000;color:var(--text_primary, var(--vkui--color_text_primary));padding:11px;position:relative;z-index:2;background:0 0;letter-spacing:var(--vk-sans-ls-2)}.vkuiInput--sizeY-compact .vkuiInput__el{height:34px;padding-top:9px;padding-bottom:9px;line-height:20px;font-size:15px;letter-spacing:var(--vk-sans-ls-17)}.vkuiInput__el:disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiInput__el::-webkit-input-placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiInput__el::placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiInput__el:disabled::-webkit-input-placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}.vkuiInput__el:disabled::placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}
|
|
1
|
+
.vkuiInput{position:relative;line-height:20px;font-size:16px;letter-spacing:var(--vk-sans-ls-2)}.vkuiInput--center .vkuiInput__el{text-align:center}.vkuiInput--right .vkuiInput__el{text-align:right}.vkuiInput__el{margin:0;width:100%;display:block;box-sizing:border-box;box-shadow:none;border:0;-webkit-appearance:none;appearance:none;text-overflow:ellipsis;height:42px;line-height:20px;font-size:16px;color:#000;color:var(--text_primary, var(--vkui--color_text_primary));padding:11px;position:relative;z-index:2;background:0 0;letter-spacing:var(--vk-sans-ls-2)}.vkuiInput--sizeY-compact .vkuiInput__el{height:34px;padding-top:9px;padding-bottom:9px;line-height:20px;font-size:15px;letter-spacing:var(--vk-sans-ls-17)}.vkuiInput__el:disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility,0.64)}.vkuiInput__el::-webkit-input-placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiInput__el::placeholder{color:#818c99;color:var(--field_text_placeholder, var(--vkui--color_text_secondary))}.vkuiInput__el:disabled::-webkit-input-placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}.vkuiInput__el:disabled::placeholder{color:#818c99;color:var(--text_secondary, var(--vkui--color_text_secondary))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiInputLike__mask{position:relative}.vkuiInputLike__mask::after{content:"";position:absolute;width:calc(100% - .1em);height:1px;bottom:0;left:0;border-bottom:solid 1px #818c99;border-bottom:solid 1px var(--vkui--color_text_secondary)}.vkuiInputLike__mask:last-child{margin-right:1px}.vkuiInputLike__last_character{letter-spacing:1px!important}.vkuiInputLike--full+.vkuiInputLikeDivider{color:#000;color:var(--vkui--color_text_primary)}
|
|
1
|
+
.vkuiInputLike__mask{position:relative}.vkuiInputLike__mask::after{content:"";position:absolute;width:calc(100% - .1em);height:1px;bottom:0;left:0;border-bottom:solid 1px #818c99;border-bottom:solid 1px var(--vkui--color_text_secondary,#818C99)}.vkuiInputLike__mask:last-child{margin-right:1px}.vkuiInputLike__last_character{letter-spacing:1px!important}.vkuiInputLike--full+.vkuiInputLikeDivider{color:#000;color:var(--vkui--color_text_primary,#000000)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiInputLikeDivider{color:#818c99;color:var(--vkui--color_text_secondary);letter-spacing:1px!important}
|
|
1
|
+
.vkuiInputLikeDivider{color:#818c99;color:var(--vkui--color_text_secondary,#818C99);letter-spacing:1px!important}
|
|
@@ -6,12 +6,13 @@ import * as React from "react";
|
|
|
6
6
|
import { getClassName } from "../../helpers/getClassName";
|
|
7
7
|
import { classNames } from "../../lib/classNames";
|
|
8
8
|
import { withPlatform } from "../../hoc/withPlatform";
|
|
9
|
-
import { withAdaptivity
|
|
9
|
+
import { withAdaptivity } from "../../hoc/withAdaptivity";
|
|
10
10
|
import ModalRootContext, { useModalRegistry } from "../ModalRoot/ModalRootContext";
|
|
11
11
|
import { ModalType } from "../ModalRoot/types";
|
|
12
12
|
import { getNavId } from "../../lib/getNavId";
|
|
13
13
|
import { warnOnce } from "../../lib/warnOnce";
|
|
14
14
|
import { ModalCardBase } from "../ModalCardBase/ModalCardBase";
|
|
15
|
+
import { useAdaptivityIsDesktop } from "../../hooks/useAdaptivity";
|
|
15
16
|
import "./ModalCard.css";
|
|
16
17
|
var warn = warnOnce("ModalCard");
|
|
17
18
|
|
|
@@ -30,7 +31,7 @@ var ModalCard = function ModalCard(props) {
|
|
|
30
31
|
nav = props.nav,
|
|
31
32
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
32
33
|
|
|
33
|
-
var isDesktop =
|
|
34
|
+
var isDesktop = useAdaptivityIsDesktop();
|
|
34
35
|
var modalContext = React.useContext(ModalRootContext);
|
|
35
36
|
|
|
36
37
|
var _useModalRegistry = useModalRegistry(getNavId(props, warn), ModalType.CARD),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalCard/ModalCard.tsx"],"names":["React","getClassName","classNames","withPlatform","withAdaptivity","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalCard/ModalCard.tsx"],"names":["React","getClassName","classNames","withPlatform","withAdaptivity","ModalRootContext","useModalRegistry","ModalType","getNavId","warnOnce","ModalCardBase","useAdaptivityIsDesktop","warn","ModalCard","props","icon","header","subheader","children","actions","actionsLayout","onClose","platform","viewWidth","viewHeight","hasMouse","nav","restProps","isDesktop","modalContext","useContext","CARD","refs","innerElement","defaultProps"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AAEA,SAASC,cAAT;AACA,OAAOC,gBAAP,IACEC,gBADF;AAGA,SAASC,SAAT;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AACA,SACEC,aADF;AAQA,SAASC,sBAAT;AACA;AAQA,IAAMC,IAAI,GAAGH,QAAQ,CAAC,WAAD,CAArB;;AAEA,IAAMI,SAAgE,GAAG,SAAnEA,SAAmE,CACvEC,KADuE,EAEpE;AACH,MACEC,IADF,GAcID,KAdJ,CACEC,IADF;AAAA,MAEEC,MAFF,GAcIF,KAdJ,CAEEE,MAFF;AAAA,MAGEC,SAHF,GAcIH,KAdJ,CAGEG,SAHF;AAAA,MAIEC,QAJF,GAcIJ,KAdJ,CAIEI,QAJF;AAAA,MAKEC,OALF,GAcIL,KAdJ,CAKEK,OALF;AAAA,MAMEC,aANF,GAcIN,KAdJ,CAMEM,aANF;AAAA,MAOEC,OAPF,GAcIP,KAdJ,CAOEO,OAPF;AAAA,MAQEC,QARF,GAcIR,KAdJ,CAQEQ,QARF;AAAA,MASEC,SATF,GAcIT,KAdJ,CASES,SATF;AAAA,MAUEC,UAVF,GAcIV,KAdJ,CAUEU,UAVF;AAAA,MAWEC,QAXF,GAcIX,KAdJ,CAWEW,QAXF;AAAA,MAYEC,GAZF,GAcIZ,KAdJ,CAYEY,GAZF;AAAA,MAaKC,SAbL,4BAcIb,KAdJ;;AAgBA,MAAMc,SAAS,GAAGjB,sBAAsB,EAAxC;AAEA,MAAMkB,YAAY,GAAG7B,KAAK,CAAC8B,UAAN,CAAiBzB,gBAAjB,CAArB;;AACA,0BAAiBC,gBAAgB,CAACE,QAAQ,CAACM,KAAD,EAAQF,IAAR,CAAT,EAAwBL,SAAS,CAACwB,IAAlC,CAAjC;AAAA,MAAQC,IAAR,qBAAQA,IAAR;;AAEA,SACE,wCACML,SADN;AAEE;AACA,IAAA,SAAS,EAAEzB,UAAU,CAACD,YAAY,CAAC,WAAD,EAAcqB,QAAd,CAAb,EAAsC;AACzD,4BAAsBM;AADmC,KAAtC;AAHvB,MAOE,oBAAC,aAAD;AACE,IAAA,SAAS,EAAC,eADZ;AAEE,IAAA,UAAU,EAAEI,IAAI,CAACC,YAFnB;AAGE,IAAA,IAAI,EAAElB,IAHR;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,SAAS,EAAEC,SALb;AAME,IAAA,OAAO,EAAEE,OANX;AAOE,IAAA,aAAa,EAAEC,aAPjB;AAQE,IAAA,OAAO,EAAEC,OAAO,IAAIQ,YAAY,CAACR;AARnC,KAUGH,QAVH,CAPF,CADF;AAsBD,CA9CD;;AAgDAL,SAAS,CAACqB,YAAV,GAAyB;AACvBd,EAAAA,aAAa,EAAE;AADQ,CAAzB,C,CAIA;;AACA,eAAehB,cAAc,CAACD,YAAY,CAACU,SAAD,CAAb,EAA0B;AACrDU,EAAAA,SAAS,EAAE,IAD0C;AAErDC,EAAAA,UAAU,EAAE,IAFyC;AAGrDC,EAAAA,QAAQ,EAAE;AAH2C,CAA1B,CAA7B","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { HasPlatform } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport ModalRootContext, {\n useModalRegistry,\n} from \"../ModalRoot/ModalRootContext\";\nimport { ModalType } from \"../ModalRoot/types\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n ModalCardBase,\n ModalCardBaseProps,\n} from \"../ModalCardBase/ModalCardBase\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport { useAdaptivityIsDesktop } from \"../../hooks/useAdaptivity\";\nimport \"./ModalCard.css\";\n\nexport interface ModalCardProps\n extends HasPlatform,\n AdaptivityProps,\n NavIdProps,\n ModalCardBaseProps {}\n\nconst warn = warnOnce(\"ModalCard\");\n\nconst ModalCard: React.FC<ModalCardProps & AdaptivityContextInterface> = (\n props\n) => {\n const {\n icon,\n header,\n subheader,\n children,\n actions,\n actionsLayout,\n onClose,\n platform,\n viewWidth,\n viewHeight,\n hasMouse,\n nav,\n ...restProps\n } = props;\n\n const isDesktop = useAdaptivityIsDesktop();\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId(props, warn), ModalType.CARD);\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"ModalCard\", platform), {\n \"ModalCard--desktop\": isDesktop,\n })}\n >\n <ModalCardBase\n vkuiClass=\"ModalCard__in\"\n getRootRef={refs.innerElement}\n icon={icon}\n header={header}\n subheader={subheader}\n actions={actions}\n actionsLayout={actionsLayout}\n onClose={onClose || modalContext.onClose}\n >\n {children}\n </ModalCardBase>\n </div>\n );\n};\n\nModalCard.defaultProps = {\n actionsLayout: \"horizontal\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(withPlatform(ModalCard), {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n});\n"],"file":"ModalCard.js"}
|
|
@@ -8,12 +8,13 @@ import Headline from "../Typography/Headline/Headline";
|
|
|
8
8
|
import { classNames } from "../../lib/classNames";
|
|
9
9
|
import { getClassName } from "../../helpers/getClassName";
|
|
10
10
|
import { usePlatform } from "../../hooks/usePlatform";
|
|
11
|
-
import {
|
|
11
|
+
import { ViewWidth, withAdaptivity } from "../../hoc/withAdaptivity";
|
|
12
12
|
import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
|
|
13
|
-
import { ANDROID, IOS } from "../../lib/platform";
|
|
13
|
+
import { ANDROID, IOS, Platform } from "../../lib/platform";
|
|
14
14
|
import ModalDismissButton from "../ModalDismissButton/ModalDismissButton";
|
|
15
15
|
import { Icon24Dismiss } from "@vkontakte/icons";
|
|
16
16
|
import { useKeyboard } from "../../hooks/useKeyboard";
|
|
17
|
+
import { useAdaptivityIsDesktop } from "../../hooks/useAdaptivity";
|
|
17
18
|
import "./ModalCardBase.css";
|
|
18
19
|
export var ModalCardBase = withAdaptivity(function (_ref) {
|
|
19
20
|
var getRootRef = _ref.getRootRef,
|
|
@@ -32,9 +33,9 @@ export var ModalCardBase = withAdaptivity(function (_ref) {
|
|
|
32
33
|
restProps = _objectWithoutProperties(_ref, _excluded);
|
|
33
34
|
|
|
34
35
|
var platform = usePlatform();
|
|
35
|
-
var isDesktop =
|
|
36
|
+
var isDesktop = useAdaptivityIsDesktop();
|
|
36
37
|
var isSoftwareKeyboardOpened = useKeyboard().isOpened;
|
|
37
|
-
var canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;
|
|
38
|
+
var canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET || platform === Platform.VKCOM;
|
|
38
39
|
var canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;
|
|
39
40
|
return createScopedElement("div", _extends({}, restProps, {
|
|
40
41
|
// eslint-disable-next-line vkui/no-object-expression-in-arguments
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"names":["hasReactNode","Title","Headline","classNames","getClassName","usePlatform","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"names":["hasReactNode","Title","Headline","classNames","getClassName","usePlatform","ViewWidth","withAdaptivity","PanelHeaderButton","ANDROID","IOS","Platform","ModalDismissButton","Icon24Dismiss","useKeyboard","useAdaptivityIsDesktop","ModalCardBase","getRootRef","icon","header","subheader","children","actions","actionsLayout","viewWidth","hasMouse","viewHeight","onClose","dismissLabel","restProps","platform","isDesktop","isSoftwareKeyboardOpened","isOpened","canShowCloseBtn","SMALL_TABLET","VKCOM","canShowCloseBtnIos"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Title } from \"../Typography/Title/Title\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { ViewWidth, withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { HasRootRef } from \"../../types\";\nimport { PanelHeaderButton } from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { ANDROID, IOS, Platform } from \"../../lib/platform\";\nimport ModalDismissButton from \"../ModalDismissButton/ModalDismissButton\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport { useKeyboard } from \"../../hooks/useKeyboard\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport { useAdaptivityIsDesktop } from \"../../hooks/useAdaptivity\";\nimport \"./ModalCardBase.css\";\n\nexport interface ModalCardBaseProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия.\n *\n * Рекомендуется использовать `<Button size=\"l\" mode=\"primary\" />` или `<Button size=\"l\" mode=\"secondary\" />`\n */\n actions?: React.ReactNode;\n\n /**\n * Тип отображения кнопок: вертикальный или горизонтальный\n */\n actionsLayout?: \"vertical\" | \"horizontal\";\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\nexport const ModalCardBase = withAdaptivity<\n ModalCardBaseProps & AdaptivityContextInterface\n>(\n ({\n getRootRef,\n icon,\n header,\n subheader,\n children,\n actions,\n actionsLayout,\n viewWidth,\n hasMouse,\n viewHeight,\n onClose,\n dismissLabel = \"Скрыть\",\n ...restProps\n }) => {\n const platform = usePlatform();\n const isDesktop = useAdaptivityIsDesktop();\n const isSoftwareKeyboardOpened = useKeyboard().isOpened;\n\n const canShowCloseBtn =\n viewWidth >= ViewWidth.SMALL_TABLET || platform === Platform.VKCOM;\n const canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"ModalCardBase\", platform), {\n \"ModalCardBase--desktop\": isDesktop,\n })}\n ref={getRootRef}\n >\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"ModalCardBase__container\", {\n \"ModalCardBase__container--softwareKeyboardOpened\":\n isSoftwareKeyboardOpened,\n })}\n >\n {hasReactNode(icon) && (\n <div vkuiClass=\"ModalCardBase__icon\">{icon}</div>\n )}\n {hasReactNode(header) && (\n <Title\n level=\"2\"\n weight={platform === ANDROID ? \"2\" : \"1\"}\n vkuiClass=\"ModalCardBase__header\"\n >\n {header}\n </Title>\n )}\n {hasReactNode(subheader) && (\n <Headline weight=\"regular\" vkuiClass=\"ModalCardBase__subheader\">\n {subheader}\n </Headline>\n )}\n\n {children}\n\n {hasReactNode(actions) && (\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"ModalCardBase__actions\", {\n \"ModalCardBase__actions--v\": actionsLayout === \"vertical\",\n })}\n >\n {actions}\n </div>\n )}\n\n {canShowCloseBtn && <ModalDismissButton onClick={onClose} />}\n {canShowCloseBtnIos && (\n <PanelHeaderButton\n aria-label={dismissLabel}\n vkuiClass=\"ModalCardBase__dismiss\"\n onClick={onClose}\n >\n <Icon24Dismiss />\n </PanelHeaderButton>\n )}\n </div>\n </div>\n );\n },\n {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n }\n);\n"],"file":"ModalCardBase.js"}
|