@gravity-ui/date-components 2.12.0 → 3.0.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/dist/cjs/components/CalendarView/Calendar.css +2 -1
- package/dist/cjs/components/CalendarView/Calendar.css.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.d.ts +4 -4
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +7 -13
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/i18n/index.d.ts +5 -1
- package/dist/cjs/components/DateField/i18n/index.d.ts +5 -1
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +2 -2
- package/dist/cjs/components/DatePicker/DatePicker.js +2 -2
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.d.ts +2 -2
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +24 -18
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
- package/dist/cjs/components/DatePicker/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js +2 -2
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +2 -2
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeDateField/RelativeDateField.d.ts +2 -2
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js +16 -8
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.d.ts +2 -2
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +3 -3
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +3 -3
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +9 -9
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +10 -9
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +1 -5
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +0 -22
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +13 -11
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +16 -37
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.css +23 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.d.ts +33 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +39 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +2 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +49 -42
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +5 -4
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +1 -5
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +12 -1
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -2
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/index.d.ts +2 -0
- package/dist/cjs/components/RelativeRangeDatePicker/index.js +3 -1
- package/dist/cjs/components/RelativeRangeDatePicker/index.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/types.d.ts +3 -5
- package/dist/cjs/components/RelativeRangeDatePicker/types.js.map +1 -1
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/types/datePicker.d.ts +11 -0
- package/dist/cjs/components/types/datePicker.js.map +1 -1
- package/dist/cjs/components/types/i18n.d.ts +17 -0
- package/dist/cjs/components/types/i18n.js +3 -0
- package/dist/cjs/components/types/i18n.js.map +1 -0
- package/dist/cjs/components/utils/validation/i18n/index.d.ts +5 -1
- package/dist/esm/components/CalendarView/Calendar.css +2 -1
- package/dist/esm/components/CalendarView/Calendar.css.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.d.ts +4 -4
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +7 -13
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
- package/dist/esm/components/CalendarView/i18n/index.d.ts +5 -1
- package/dist/esm/components/DateField/i18n/index.d.ts +5 -1
- package/dist/esm/components/DatePicker/DatePicker.d.ts +2 -2
- package/dist/esm/components/DatePicker/DatePicker.js +2 -2
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.d.ts +2 -2
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +24 -18
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
- package/dist/esm/components/DatePicker/i18n/index.d.ts +5 -1
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.js +2 -2
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +2 -2
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeDateField/RelativeDateField.d.ts +2 -2
- package/dist/esm/components/RelativeDateField/RelativeDateField.js +16 -8
- package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.d.ts +2 -2
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js +3 -3
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +3 -3
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +9 -9
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +10 -9
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +1 -5
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +0 -22
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +13 -11
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +18 -39
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.css +23 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.d.ts +33 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +36 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +2 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +49 -42
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +2 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +5 -4
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +1 -5
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +12 -1
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -3
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/i18n/index.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/index.d.ts +2 -0
- package/dist/esm/components/RelativeRangeDatePicker/index.js +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/index.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/types.d.ts +3 -5
- package/dist/esm/components/RelativeRangeDatePicker/types.js.map +1 -1
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/types/datePicker.d.ts +11 -0
- package/dist/esm/components/types/datePicker.js.map +1 -1
- package/dist/esm/components/types/i18n.d.ts +17 -0
- package/dist/esm/components/types/i18n.js +2 -0
- package/dist/esm/components/types/i18n.js.map +1 -0
- package/dist/esm/components/utils/validation/i18n/index.d.ts +5 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Presets.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/Presets.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"Presets.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/Presets.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {List, Tab, TabList, TabPanel, TabProvider} from '@gravity-ui/uikit';\n\nimport {block} from '../../../../utils/cn';\n\nimport {PresetsDoc} from './PresetsDoc';\nimport type {Preset} from './defaultPresets';\nimport {filterPresetTabs, getDefaultPresetTabs} from './utils';\nimport type {PresetTab} from './utils';\n\nimport './Presets.scss';\n\nconst b = block('relative-range-date-picker-presets');\n\nexport interface PresetProps {\n className?: string;\n onChoosePreset: (start: string, end: string) => void;\n withTime?: boolean;\n minValue?: DateTime;\n size?: 's' | 'm' | 'l' | 'xl';\n presetTabs?: PresetTab[];\n docs?: Preset[];\n}\nexport function Presets({\n className,\n size = 'm',\n minValue,\n withTime,\n onChoosePreset,\n presetTabs,\n docs,\n}: PresetProps) {\n const tabs = React.useMemo(() => {\n return filterPresetTabs(presetTabs ?? getDefaultPresetTabs({withTime}), {minValue});\n }, [withTime, minValue, presetTabs]);\n\n const [activeTabId, setActiveTab] = React.useState(tabs[0]?.id);\n\n if (tabs.length === 0) {\n return null;\n }\n\n const activeTab = tabs.find((tab) => tab.id === activeTabId) ?? tabs[0];\n if (!activeTab) {\n return null;\n }\n\n if (activeTab.id !== activeTabId) {\n setActiveTab(activeTab.id);\n }\n\n return (\n <div className={b({size}, className)}>\n <TabProvider value={activeTabId} onUpdate={setActiveTab}>\n <div className={b('tabs')}>\n <TabList size={size === 's' ? 'm' : size}>\n {tabs.map(({id, title}) => (\n <Tab key={id} value={id}>\n {title}\n </Tab>\n ))}\n </TabList>\n <PresetsDoc className={b('doc')} size={size} docs={docs} />\n </div>\n <TabPanel className={b('content')} value={activeTabId}>\n <PresetsList\n presets={activeTab.presets}\n onChoosePreset={onChoosePreset}\n size={size}\n />\n </TabPanel>\n </TabProvider>\n </div>\n );\n}\nexport const SIZE_TO_ITEM_HEIGHT = {\n s: 28,\n m: 28,\n l: 32,\n xl: 36,\n};\n\ninterface PresetsListProps {\n size?: 's' | 'm' | 'l' | 'xl';\n presets: Preset[];\n onChoosePreset: (start: string, end: string) => void;\n}\nfunction PresetsList({presets, onChoosePreset, size = 'm'}: PresetsListProps) {\n const ref = React.useRef<List<Preset>>(null);\n\n React.useEffect(() => {\n const list = ref.current;\n const container = ref.current?.refContainer.current?.node as HTMLDivElement | undefined;\n if (list && container) {\n try {\n container.setAttribute('tabindex', '0');\n container.setAttribute('class', b('list-container'));\n const handleFocus = () => {\n if (list.getActiveItem() === null) {\n list.activateItem(0, true);\n }\n };\n container.addEventListener('focus', handleFocus);\n return () => {\n container.removeEventListener('focus', handleFocus);\n };\n } catch {\n // Oooops\n }\n }\n return undefined;\n }, []);\n\n return (\n <List\n ref={ref}\n className={b('list')}\n itemClassName={b('item')}\n items={presets}\n filterable={false}\n virtualized={false}\n renderItem={(item) => item.title}\n itemHeight={SIZE_TO_ITEM_HEIGHT[size]}\n onItemClick={(item) => {\n onChoosePreset(item.from, item.to);\n }}\n />\n );\n}\n"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
.g-date-relative-range-date-picker-presets-doc {
|
|
2
|
+
padding: var(--g-spacing-4);
|
|
3
|
+
}
|
|
1
4
|
.g-date-relative-range-date-picker-presets-doc__button {
|
|
2
5
|
--g-button-background-color-hover: transparent;
|
|
3
6
|
}
|
|
4
|
-
.g-date-relative-range-date-picker-presets-doc__content {
|
|
5
|
-
--g-popover-max-width: "none";
|
|
6
|
-
}
|
|
7
7
|
.g-date-relative-range-date-picker-presets-doc__table_size_xl {
|
|
8
|
+
font-family: var(--g-text-body-font-family);
|
|
9
|
+
font-weight: var(--g-text-body-font-weight);
|
|
8
10
|
font-size: var(--g-text-body-2-font-size);
|
|
9
11
|
line-height: var(--g-text-body-2-line-height);
|
|
10
|
-
font-weight: var(--g-text-body-font-weight);
|
|
11
12
|
}
|
|
12
13
|
.g-date-relative-range-date-picker-presets-doc__table > table {
|
|
13
14
|
width: 100%;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/RelativeRangeDatePicker/components/Presets/data:;charset=utf-8,@use%20'@gravity-ui/uikit/variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Drelative-range-date-picker-presets-doc';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20&__button%20%7B%0A%20%20%20%20%20%20%20%20--g-button-background-color-hover:%20transparent;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__content%20%7B%0A%20%20%20%20%20%20%20%20--g-popover-max-width:%20'none';%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__table%20%7B%0A%20%20%20%20%20%20%20%20&_size_xl%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20@include%20mixins.text-body-2();%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20&%20%3E%20table%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20width:%20100%25;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A","components/RelativeRangeDatePicker/components/Presets/file:/home/runner/work/date-components/date-components/node_modules/@gravity-ui/uikit/styles/mixins.scss"],"names":[],"mappings":"AAMI;EACI;;AAGJ;EACI;;AAIA;ECsJJ;EACA;EACA;;ADpJI;EACI","sourcesContent":["@use '@gravity-ui/uikit/styles/mixins';\n@use '../../../variables';\n\n$block: '.#{variables.$ns}relative-range-date-picker-presets-doc';\n\n#{$block} {\n &__button {\n --g-button-background-color-hover: transparent;\n }\n\n &__content {\n --g-popover-max-width: 'none';\n }\n\n &__table {\n &_size_xl {\n @include mixins.text-body-2();\n }\n\n & > table {\n width: 100%;\n }\n }\n}\n","@mixin overflow-ellipsis($type: ellipsis) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: $type;\n}\n\n@mixin button-reset() {\n padding: 0;\n\n font-family: var(--g-text-body-font-family);\n font-size: inherit;\n font-weight: var(--g-text-body-font-weight);\n\n color: inherit;\n background: none;\n border: none;\n outline: none;\n cursor: pointer;\n}\n\n@mixin expand-interactive-area($h: 4px, $v: $h) {\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n inset: logical (-$v) (-$h) (-$v);\n }\n}\n\n@mixin max-height($height) {\n max-height: $height;\n overflow-y: auto;\n}\n\n@mixin max-text-width($width: 100%) {\n @include overflow-ellipsis();\n\n max-width: $width;\n}\n\n@mixin aspect-ratio($ratio) {\n position: relative;\n\n &::before {\n display: block;\n content: '';\n width: 100%;\n padding-block-start: $ratio * 100%;\n }\n\n > *:only-child {\n position: absolute;\n inset: 0;\n }\n}\n\n@function get-pin-selector($mod, $selector, $append: true) {\n @if $append {\n @return selector-append($mod, $selector);\n } @else {\n @return join($mod, $selector, $separator: space);\n }\n}\n\n@mixin pin($block, $selectors, $radius, $append: true) {\n @each $selector in $selectors {\n &#{get-pin-selector(#{$block}_pin_round-round, $selector, $append)} {\n border-radius: $radius;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-brick, $selector, $append)} {\n border-radius: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-clear, $selector, $append)} {\n border-radius: 0;\n border-inline: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_circle-circle, $selector, $append)} {\n border-radius: 100px;\n }\n\n &#{get-pin-selector(#{$block}_pin_round-brick, $selector, $append)} {\n border-start-start-radius: $radius;\n border-start-end-radius: 0;\n border-end-start-radius: $radius;\n border-end-end-radius: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-round, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: $radius;\n border-end-start-radius: 0;\n border-end-end-radius: $radius;\n }\n\n &#{get-pin-selector(#{$block}_pin_round-clear, $selector, $append)} {\n border-start-start-radius: $radius;\n border-start-end-radius: 0;\n border-end-start-radius: $radius;\n border-end-end-radius: 0;\n border-inline-end: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-round, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: $radius;\n border-end-start-radius: 0;\n border-end-end-radius: $radius;\n border-inline-start: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-clear, $selector, $append)} {\n border-radius: 0;\n border-inline-end: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-brick, $selector, $append)} {\n border-radius: 0;\n border-inline-start: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_circle-brick, $selector, $append)} {\n border-start-start-radius: 100px;\n border-start-end-radius: 0;\n border-end-start-radius: 100px;\n border-end-end-radius: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-circle, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: 100px;\n border-end-start-radius: 0;\n border-end-end-radius: 100px;\n }\n\n &#{get-pin-selector(#{$block}_pin_circle-clear, $selector, $append)} {\n border-start-start-radius: 100px;\n border-start-end-radius: 0;\n border-end-start-radius: 100px;\n border-end-end-radius: 0;\n border-inline-end: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-circle, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: 100px;\n border-end-start-radius: 0;\n border-end-end-radius: 100px;\n border-inline-start: 0;\n }\n }\n}\n\n// Typography\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin text-body-2() {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin text-body-3() {\n font-size: var(--g-text-body-3-font-size);\n line-height: var(--g-text-body-3-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin text-body-short() {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin text-caption-1() {\n font-size: var(--g-text-caption-1-font-size);\n line-height: var(--g-text-caption-1-line-height);\n font-weight: var(--g-text-caption-font-weight);\n}\n\n@mixin text-caption-2() {\n font-size: var(--g-text-caption-2-font-size);\n line-height: var(--g-text-caption-2-line-height);\n font-weight: var(--g-text-caption-font-weight);\n}\n\n@mixin text-header-1() {\n font-size: var(--g-text-header-1-font-size);\n line-height: var(--g-text-header-1-line-height);\n font-weight: var(--g-text-header-font-weight);\n}\n\n@mixin text-header-2() {\n font-size: var(--g-text-header-2-font-size);\n line-height: var(--g-text-header-2-line-height);\n font-weight: var(--g-text-header-font-weight);\n}\n\n@mixin text-subheader-1() {\n font-size: var(--g-text-subheader-1-font-size);\n line-height: var(--g-text-subheader-1-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n}\n\n@mixin text-subheader-2() {\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n}\n\n@mixin text-subheader-3() {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n}\n\n@mixin text-display-1() {\n font-size: var(--g-text-display-1-font-size);\n line-height: var(--g-text-display-1-line-height);\n font-weight: var(--g-text-display-font-weight);\n}\n\n@mixin text-display-2() {\n font-size: var(--g-text-display-2-font-size);\n line-height: var(--g-text-display-2-line-height);\n font-weight: var(--g-text-display-font-weight);\n}\n\n@mixin text-display-3() {\n font-size: var(--g-text-display-3-font-size);\n line-height: var(--g-text-display-3-line-height);\n font-weight: var(--g-text-display-font-weight);\n}\n\n@mixin text-display-4() {\n font-size: var(--g-text-display-4-font-size);\n line-height: var(--g-text-display-4-line-height);\n font-weight: var(--g-text-display-font-weight);\n}\n\n@mixin text-code-1() {\n font-family: var(--g-font-family-monospace);\n font-size: var(--g-text-code-1-font-size);\n line-height: var(--g-text-code-1-line-height);\n font-weight: var(--g-text-code-font-weight);\n}\n\n@mixin text-code-2() {\n font-family: var(--g-font-family-monospace);\n font-size: var(--g-text-code-2-font-size);\n line-height: var(--g-text-code-2-line-height);\n font-weight: var(--g-text-code-font-weight);\n}\n\n@mixin text-code-3() {\n font-family: var(--g-font-family-monospace);\n font-size: var(--g-text-code-3-font-size);\n line-height: var(--g-text-code-3-line-height);\n font-weight: var(--g-text-code-font-weight);\n}\n\n@mixin text-code-inline-1() {\n font-family: var(--g-font-family-monospace);\n font-size: var(--g-text-code-inline-1-font-size);\n line-height: var(--g-text-code-inline-1-line-height);\n font-weight: var(--g-text-code-font-weight);\n}\n\n@mixin text-code-inline-2() {\n font-family: var(--g-font-family-monospace);\n font-size: var(--g-text-code-inline-2-font-size);\n line-height: var(--g-text-code-inline-2-line-height);\n font-weight: var(--g-text-code-font-weight);\n}\n\n@mixin text-code-inline-3() {\n font-family: var(--g-font-family-monospace);\n font-size: var(--g-text-code-inline-3-font-size);\n line-height: var(--g-text-code-inline-3-line-height);\n font-weight: var(--g-text-code-font-weight);\n}\n\n@mixin text-accent() {\n font-weight: var(--g-text-accent-font-weight);\n}\n\n@mixin loading($loading-color-1: rgba(255, 255, 255, 0.3), $loading-color-2: transparent) {\n background-image: repeating-linear-gradient(\n -45deg,\n $loading-color-1,\n $loading-color-1 4px,\n $loading-color-2 4px,\n $loading-color-2 8px\n );\n background-size: 150%;\n background-clip: padding-box;\n\n // stylelint-disable-next-line no-unknown-animations\n animation: g-loading-animation 0.5s linear infinite;\n}\n"],"file":"PresetsDoc.css"}
|
|
1
|
+
{"version":3,"sources":["components/RelativeRangeDatePicker/components/Presets/data:;charset=utf-8,@use%20'@gravity-ui/uikit/variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Drelative-range-date-picker-presets-doc';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20padding:%20var(--g-spacing-4);%0A%0A%20%20%20%20&__button%20%7B%0A%20%20%20%20%20%20%20%20--g-button-background-color-hover:%20transparent;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__table%20%7B%0A%20%20%20%20%20%20%20%20&_size_xl%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20@include%20mixins.text-body-2();%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20&%20%3E%20table%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20width:%20100%25;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A","components/RelativeRangeDatePicker/components/Presets/file:/home/runner/work/date-components/date-components/node_modules/@gravity-ui/uikit/styles/mixins.scss"],"names":[],"mappings":"AAKA;EACI;;AAEA;EACI;;AAIA;EC4JJ;EACA;EACA;EACA;;AD3JI;EACI","sourcesContent":["@use '@gravity-ui/uikit/styles/mixins';\n@use '../../../variables';\n\n$block: '.#{variables.$ns}relative-range-date-picker-presets-doc';\n\n#{$block} {\n padding: var(--g-spacing-4);\n\n &__button {\n --g-button-background-color-hover: transparent;\n }\n\n &__table {\n &_size_xl {\n @include mixins.text-body-2();\n }\n\n & > table {\n width: 100%;\n }\n }\n}\n","@use 'sass:list';\n@use 'sass:selector';\n\n@mixin overflow-ellipsis($type: ellipsis) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: $type;\n}\n\n@mixin button-reset() {\n padding: 0;\n\n font-family: var(--g-text-body-font-family);\n font-size: inherit;\n font-weight: var(--g-text-body-font-weight);\n\n color: inherit;\n background: none;\n border: none;\n outline: none;\n cursor: pointer;\n}\n\n@mixin expand-interactive-area($h: 4px, $v: $h) {\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n inset: logical (-$v) (-$h) (-$v);\n }\n}\n\n@mixin max-height($height) {\n max-height: $height;\n overflow-y: auto;\n}\n\n@mixin max-text-width($width: 100%) {\n @include overflow-ellipsis();\n\n max-width: $width;\n}\n\n@mixin aspect-ratio($ratio) {\n position: relative;\n\n &::before {\n display: block;\n content: '';\n width: 100%;\n padding-block-start: $ratio * 100%;\n }\n\n > *:only-child {\n position: absolute;\n inset: 0;\n }\n}\n\n@function get-pin-selector($mod, $selector, $append: true) {\n @if $append {\n @return selector.append($mod, $selector);\n } @else {\n @return list.join($mod, $selector, $separator: space);\n }\n}\n\n@mixin pin($block, $selectors, $radius, $append: true) {\n @each $selector in $selectors {\n &#{get-pin-selector(#{$block}_pin_round-round, $selector, $append)} {\n border-radius: $radius;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-brick, $selector, $append)} {\n border-radius: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-clear, $selector, $append)} {\n border-radius: 0;\n border-inline: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_circle-circle, $selector, $append)} {\n border-radius: 100px;\n }\n\n &#{get-pin-selector(#{$block}_pin_round-brick, $selector, $append)} {\n border-start-start-radius: $radius;\n border-start-end-radius: 0;\n border-end-start-radius: $radius;\n border-end-end-radius: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-round, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: $radius;\n border-end-start-radius: 0;\n border-end-end-radius: $radius;\n }\n\n &#{get-pin-selector(#{$block}_pin_round-clear, $selector, $append)} {\n border-start-start-radius: $radius;\n border-start-end-radius: 0;\n border-end-start-radius: $radius;\n border-end-end-radius: 0;\n border-inline-end: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-round, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: $radius;\n border-end-start-radius: 0;\n border-end-end-radius: $radius;\n border-inline-start: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-clear, $selector, $append)} {\n border-radius: 0;\n border-inline-end: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-brick, $selector, $append)} {\n border-radius: 0;\n border-inline-start: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_circle-brick, $selector, $append)} {\n border-start-start-radius: 100px;\n border-start-end-radius: 0;\n border-end-start-radius: 100px;\n border-end-end-radius: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_brick-circle, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: 100px;\n border-end-start-radius: 0;\n border-end-end-radius: 100px;\n }\n\n &#{get-pin-selector(#{$block}_pin_circle-clear, $selector, $append)} {\n border-start-start-radius: 100px;\n border-start-end-radius: 0;\n border-end-start-radius: 100px;\n border-end-end-radius: 0;\n border-inline-end: 0;\n }\n\n &#{get-pin-selector(#{$block}_pin_clear-circle, $selector, $append)} {\n border-start-start-radius: 0;\n border-start-end-radius: 100px;\n border-end-start-radius: 0;\n border-end-end-radius: 100px;\n border-inline-start: 0;\n }\n }\n}\n\n// Typography\n\n@mixin text-body-1() {\n font-family: var(--g-text-body-font-family);\n font-weight: var(--g-text-body-font-weight);\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n\n@mixin text-body-2() {\n font-family: var(--g-text-body-font-family);\n font-weight: var(--g-text-body-font-weight);\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n}\n\n@mixin text-body-3() {\n font-family: var(--g-text-body-font-family);\n font-weight: var(--g-text-body-font-weight);\n font-size: var(--g-text-body-3-font-size);\n line-height: var(--g-text-body-3-line-height);\n}\n\n@mixin text-body-short() {\n font-family: var(--g-text-body-font-family);\n font-weight: var(--g-text-body-font-weight);\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n}\n\n@mixin text-caption-1() {\n font-family: var(--g-text-caption-font-family);\n font-weight: var(--g-text-caption-font-weight);\n font-size: var(--g-text-caption-1-font-size);\n line-height: var(--g-text-caption-1-line-height);\n}\n\n@mixin text-caption-2() {\n font-family: var(--g-text-caption-font-family);\n font-weight: var(--g-text-caption-font-weight);\n font-size: var(--g-text-caption-2-font-size);\n line-height: var(--g-text-caption-2-line-height);\n}\n\n@mixin text-header-1() {\n font-family: var(--g-text-header-font-family);\n font-weight: var(--g-text-header-font-weight);\n font-size: var(--g-text-header-1-font-size);\n line-height: var(--g-text-header-1-line-height);\n}\n\n@mixin text-header-2() {\n font-family: var(--g-text-header-font-family);\n font-weight: var(--g-text-header-font-weight);\n font-size: var(--g-text-header-2-font-size);\n line-height: var(--g-text-header-2-line-height);\n}\n\n@mixin text-subheader-1() {\n font-family: var(--g-text-subheader-font-family);\n font-weight: var(--g-text-subheader-font-weight);\n font-size: var(--g-text-subheader-1-font-size);\n line-height: var(--g-text-subheader-1-line-height);\n}\n\n@mixin text-subheader-2() {\n font-family: var(--g-text-subheader-font-family);\n font-weight: var(--g-text-subheader-font-weight);\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n}\n\n@mixin text-subheader-3() {\n font-family: var(--g-text-subheader-font-family);\n font-weight: var(--g-text-subheader-font-weight);\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n}\n\n@mixin text-display-1() {\n font-family: var(--g-text-display-font-family);\n font-weight: var(--g-text-display-font-weight);\n font-size: var(--g-text-display-1-font-size);\n line-height: var(--g-text-display-1-line-height);\n}\n\n@mixin text-display-2() {\n font-family: var(--g-text-display-font-family);\n font-weight: var(--g-text-display-font-weight);\n font-size: var(--g-text-display-2-font-size);\n line-height: var(--g-text-display-2-line-height);\n}\n\n@mixin text-display-3() {\n font-family: var(--g-text-display-font-family);\n font-weight: var(--g-text-display-font-weight);\n font-size: var(--g-text-display-3-font-size);\n line-height: var(--g-text-display-3-line-height);\n}\n\n@mixin text-display-4() {\n font-family: var(--g-text-display-font-family);\n font-weight: var(--g-text-display-font-weight);\n font-size: var(--g-text-display-4-font-size);\n line-height: var(--g-text-display-4-line-height);\n}\n\n@mixin text-code-1() {\n font-family: var(--g-text-code-font-family);\n font-weight: var(--g-text-code-font-weight);\n font-size: var(--g-text-code-1-font-size);\n line-height: var(--g-text-code-1-line-height);\n}\n\n@mixin text-code-2() {\n font-family: var(--g-text-code-font-family);\n font-weight: var(--g-text-code-font-weight);\n font-size: var(--g-text-code-2-font-size);\n line-height: var(--g-text-code-2-line-height);\n}\n\n@mixin text-code-3() {\n font-family: var(--g-text-code-font-family);\n font-weight: var(--g-text-code-font-weight);\n font-size: var(--g-text-code-3-font-size);\n line-height: var(--g-text-code-3-line-height);\n}\n\n@mixin text-code-inline-1() {\n font-family: var(--g-text-code-font-family);\n font-weight: var(--g-text-code-font-weight);\n font-size: var(--g-text-code-inline-1-font-size);\n line-height: var(--g-text-code-inline-1-line-height);\n}\n\n@mixin text-code-inline-2() {\n font-family: var(--g-text-code-font-family);\n font-weight: var(--g-text-code-font-weight);\n font-size: var(--g-text-code-inline-2-font-size);\n line-height: var(--g-text-code-inline-2-line-height);\n}\n\n@mixin text-code-inline-3() {\n font-family: var(--g-text-code-font-family);\n font-weight: var(--g-text-code-font-weight);\n font-size: var(--g-text-code-inline-3-font-size);\n line-height: var(--g-text-code-inline-3-line-height);\n}\n\n@mixin text-accent() {\n font-weight: var(--g-text-accent-font-weight);\n}\n\n@mixin loading($loading-color-1: rgba(255, 255, 255, 0.3), $loading-color-2: transparent) {\n background-image: repeating-linear-gradient(\n -45deg,\n $loading-color-1,\n $loading-color-1 4px,\n $loading-color-2 4px,\n $loading-color-2 8px\n );\n background-size: 150%;\n background-clip: padding-box;\n\n // stylelint-disable-next-line no-unknown-animations\n animation: g-loading-animation 0.5s linear infinite;\n}\n\n@mixin scrollbar() {\n &::-webkit-scrollbar,\n *::-webkit-scrollbar {\n width: var(--g-scrollbar-width);\n height: var(--g-scrollbar-width);\n background: var(--g-color-scroll-track);\n }\n\n &::-webkit-scrollbar-track,\n *::-webkit-scrollbar-track {\n background: var(--g-color-scroll-track);\n }\n\n &::-webkit-scrollbar-corner,\n *::-webkit-scrollbar-corner {\n background: var(--g-color-scroll-corner);\n }\n\n &::-webkit-scrollbar-thumb,\n *::-webkit-scrollbar-thumb {\n background: var(--g-color-scroll-handle);\n }\n\n &::-webkit-scrollbar-thumb:hover,\n *::-webkit-scrollbar-thumb:hover {\n background: var(--g-color-scroll-handle-hover);\n }\n}\n"],"file":"PresetsDoc.css"}
|
|
@@ -69,7 +69,7 @@ function PresetsExamples({ size, docs }) {
|
|
|
69
69
|
return _jsx(Table, { columns: columns, data: docs, className: b('table', { size }) });
|
|
70
70
|
}
|
|
71
71
|
function DesktopDoc({ className, size, docs }) {
|
|
72
|
-
return (_jsx(Popover, { className: b(null
|
|
72
|
+
return (_jsx(Popover, { className: b(null), hasArrow: false, content: _jsx(PresetsExamples, { size: size, docs: docs }), children: _jsx(Button, { className: b('button', className), view: "flat-secondary", size: getButtonSizeForInput(size), children: _jsx(Icon, { data: CircleQuestion }) }) }));
|
|
73
73
|
}
|
|
74
74
|
function MobileDoc({ className, size, docs }) {
|
|
75
75
|
const [open, setOpen] = React.useState(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresetsDoc.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/PresetsDoc.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAGjF,OAAO,EAAC,KAAK,EAAC,gCAA6B;AAC3C,OAAO,EAAC,qBAAqB,EAAC,gDAA6C;AAG3E,OAAO,EAAC,IAAI,EAAC,wBAAe;AAE5B,0BAA2B;AAE3B,MAAM,CAAC,GAAG,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAE1D,MAAM,OAAO,GAAgC;IACzC;QACI,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACJ;IACD;QACI,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;KACJ;IACD;QACI,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;KACJ;CACJ,CAAC;AAEF,MAAM,IAAI,GAAa;IACnB;QACI,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,KAAK;KACZ;IACD;QACI,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;KACZ;IACD;QACI,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,OAAO;KACd;IACD;QACI,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;KACZ;IACD;QACI,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,YAAY;KACnB;CACJ,CAAC;AAMF,SAAS,eAAe,CAAC,EAAC,IAAI,EAAE,IAAI,EAAuB;IACvD,OAAO,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,IAAI,EAAC,CAAC,GAAI,CAAC;AAClF,CAAC;AAOD,SAAS,UAAU,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAkB;IACxD,OAAO,CACH,KAAC,OAAO,IACJ,SAAS,EAAE,CAAC,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"PresetsDoc.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/PresetsDoc.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport {CircleQuestion} from '@gravity-ui/icons';\nimport {Button, Icon, Popover, Sheet, Table, useMobile} from '@gravity-ui/uikit';\nimport type {TableColumnConfig} from '@gravity-ui/uikit';\n\nimport {block} from '../../../../utils/cn';\nimport {getButtonSizeForInput} from '../../../utils/getButtonSizeForInput';\n\nimport type {Preset} from './defaultPresets';\nimport {i18n} from './i18n';\n\nimport './PresetsDoc.scss';\n\nconst b = block('relative-range-date-picker-presets-doc');\n\nconst columns: TableColumnConfig<Preset>[] = [\n {\n id: 'title',\n name: () => {\n return i18n('Range');\n },\n },\n {\n id: 'from',\n name: () => {\n return i18n('From');\n },\n },\n {\n id: 'to',\n name: () => {\n return i18n('To');\n },\n },\n];\n\nconst data: Preset[] = [\n {\n get title() {\n return i18n('Last 5 minutes');\n },\n from: 'now - 5m',\n to: 'now',\n },\n {\n get title() {\n return i18n('From start of day');\n },\n from: 'now/d',\n to: 'now',\n },\n {\n get title() {\n return i18n('This week');\n },\n from: 'now/w',\n to: 'now/w',\n },\n {\n get title() {\n return i18n('From start of week');\n },\n from: 'now/w',\n to: 'now',\n },\n {\n get title() {\n return i18n('Previous month');\n },\n from: 'now - 1M/M',\n to: 'now - 1M/M',\n },\n];\n\ninterface PresetsExamplesProps {\n size?: 's' | 'm' | 'l' | 'xl';\n docs: Preset[];\n}\nfunction PresetsExamples({size, docs}: PresetsExamplesProps) {\n return <Table columns={columns} data={docs} className={b('table', {size})} />;\n}\n\ninterface DesktopDocProps {\n className?: string;\n size?: 's' | 'm' | 'l' | 'xl';\n docs: Preset[];\n}\nfunction DesktopDoc({className, size, docs}: DesktopDocProps) {\n return (\n <Popover\n className={b(null)}\n hasArrow={false}\n content={<PresetsExamples size={size} docs={docs} />}\n >\n <Button\n className={b('button', className)}\n view=\"flat-secondary\"\n size={getButtonSizeForInput(size)}\n >\n <Icon data={CircleQuestion} />\n </Button>\n </Popover>\n );\n}\n\ninterface MobileDocProps {\n className?: string;\n size?: 's' | 'm' | 'l' | 'xl';\n docs: Preset[];\n}\nfunction MobileDoc({className, size, docs}: MobileDocProps) {\n const [open, setOpen] = React.useState(false);\n return (\n <div className={b(null, className)}>\n <Button\n className={b('button')}\n view=\"flat-secondary\"\n size=\"l\"\n onClick={() => {\n setOpen(true);\n }}\n >\n <Icon data={CircleQuestion} />\n </Button>\n <Sheet visible={open} onClose={() => setOpen(false)}>\n <PresetsExamples size={size} docs={docs} />\n </Sheet>\n </div>\n );\n}\n\ninterface PresetsDocProps {\n className?: string;\n size?: 's' | 'm' | 'l' | 'xl';\n docs?: Preset[];\n}\n\nexport function PresetsDoc({className, size, docs = data}: PresetsDocProps) {\n const isMobile = useMobile();\n\n if (!Array.isArray(docs) || docs.length === 0) {\n return null;\n }\n\n if (isMobile) {\n return <MobileDoc className={className} size={size} docs={docs} />;\n }\n\n return <DesktopDoc className={className} size={size} docs={docs} />;\n}\n"]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export declare const i18n: (key: "Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", params?: import("@gravity-ui/i18n").Params
|
|
1
|
+
export declare const i18n: ((key: "Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
keysetData: {
|
|
3
|
+
"g-date-relative-range-date-picker-presets": Record<"Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", import("@gravity-ui/i18n").KeyData>;
|
|
4
|
+
};
|
|
5
|
+
};
|
|
@@ -47,11 +47,7 @@ export function Zones(props) {
|
|
|
47
47
|
}
|
|
48
48
|
}, width: "max", renderControl: (controlProps) => {
|
|
49
49
|
const value = timeZone === 'system' || timeZone === 'default' ? i18n(timeZone) : timeZone;
|
|
50
|
-
return (_jsxs(Button, {
|
|
51
|
-
'aria-haspopup': 'listbox',
|
|
52
|
-
'aria-expanded': controlProps.open,
|
|
53
|
-
onKeyDown: controlProps.onKeyDown,
|
|
54
|
-
}, className: b('control'), children: [`${value} (${getTimeZoneOffset(timeZone)})`, _jsx(Icon, { className: b('control-icon'), data: ChevronRight, size: props.isMobile ? 20 : 16 })] }));
|
|
50
|
+
return (_jsxs(Button, { ref: controlProps.ref, onClick: controlProps.triggerProps.onClick, view: "flat-secondary", width: "max", pin: "clear-clear", size: size, disabled: props.disabled, "aria-haspopup": "listbox", "aria-expanded": controlProps.open, onKeyDown: controlProps.triggerProps.onKeyDown, className: b('control'), children: [`${value} (${getTimeZoneOffset(timeZone)})`, _jsx(Icon, { className: b('control-icon'), data: ChevronRight, size: props.isMobile ? 20 : 16 })] }));
|
|
55
51
|
}, renderOption: ({ value, content }) => {
|
|
56
52
|
const v = content !== null && content !== void 0 ? content : value;
|
|
57
53
|
return (_jsxs("span", { className: b('item'), children: [_jsxs("span", { className: b('item-title'), title: value, children: [v, "\u00A0"] }), _jsx(Text, { color: "secondary", children: getTimeZoneOffset(value) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zones.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Zones/Zones.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAC,KAAK,EAAC,gCAA6B;AAC3C,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,uBAAoB;AAEjE,OAAO,EAAC,IAAI,EAAC,wBAAe;AAE5B,qBAAsB;AAEtB,MAAM,MAAM,GAA6D,EAAE,CAAC;AAE5E,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAuC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC1F,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,KAAK,GAAG,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AAEP,KAAK,CAAC,OAAO,CAAC;IACV,KAAK,EAAE,KAAK;CACf,CAAC,CAAC;AAEH,KAAK,CAAC,OAAO,CAAC;IACV,KAAK,EAAE,QAAQ;IACf,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;CACJ,CAAC,CAAC;AAEH,KAAK,CAAC,OAAO,CAAC;IACV,KAAK,EAAE,SAAS;IAChB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAUpD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAChD,OAAO,CACH,KAAC,MAAM,IACH,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,CAAC,QAAQ,CAAC,EACjB,OAAO,EAAE,KAAK,EACd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,EAAE,EAAE,CAAC;gBACL,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;QACL,CAAC,EACD,KAAK,EAAC,KAAK,EACX,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE;YAC5B,MAAM,KAAK,GACP,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChF,OAAO,CACH,MAAC,MAAM,IACH,
|
|
1
|
+
{"version":3,"file":"Zones.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Zones/Zones.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport {getTimeZonesList} from '@gravity-ui/date-utils';\nimport {ChevronRight} from '@gravity-ui/icons';\nimport {Button, Icon, Select, Text} from '@gravity-ui/uikit';\nimport type {SelectOption, SelectOptionGroup} from '@gravity-ui/uikit';\n\nimport {block} from '../../../../utils/cn';\nimport {getTimeZoneOffset, normalizeTimeZone} from '../../utils';\n\nimport {i18n} from './i18n';\n\nimport './Zones.scss';\n\nconst groups: Record<string, {label: string; options: SelectOption[]}> = {};\n\nconst zones = getTimeZonesList().reduce<(SelectOption | SelectOptionGroup)[]>((opts, value) => {\n const [groupName] = value.split('/');\n if (groupName) {\n let group = groups[groupName];\n if (!group) {\n group = {label: groupName, options: []};\n groups[groupName] = group;\n opts.push(group);\n }\n group.options.push({value});\n }\n return opts;\n}, []);\n\nzones.unshift({\n value: 'UTC',\n});\n\nzones.unshift({\n value: 'system',\n get content() {\n return i18n('system');\n },\n});\n\nzones.unshift({\n value: 'default',\n get content() {\n return i18n('default');\n },\n});\n\nconst b = block('relative-range-date-picker-zones');\n\nexport interface ZonesProps {\n value: string;\n onUpdate: (timeZone: string) => void;\n size?: 's' | 'm' | 'l' | 'xl';\n isMobile?: boolean;\n disabled?: boolean;\n}\n\nexport function Zones(props: ZonesProps) {\n const timeZone = normalizeTimeZone(props.value);\n const size = props.isMobile ? 'xl' : props.size;\n return (\n <Select\n disabled={props.disabled}\n value={[timeZone]}\n options={zones}\n size={size}\n onUpdate={(v) => {\n const tz = v[0];\n if (tz) {\n props.onUpdate(tz);\n }\n }}\n width=\"max\"\n renderControl={(controlProps) => {\n const value =\n timeZone === 'system' || timeZone === 'default' ? i18n(timeZone) : timeZone;\n return (\n <Button\n ref={controlProps.ref as React.Ref<HTMLButtonElement>}\n onClick={controlProps.triggerProps.onClick}\n view=\"flat-secondary\"\n width=\"max\"\n pin=\"clear-clear\"\n size={size}\n disabled={props.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={controlProps.open}\n onKeyDown={controlProps.triggerProps.onKeyDown}\n className={b('control')}\n >\n {`${value} (${getTimeZoneOffset(timeZone)})`}\n <Icon\n className={b('control-icon')}\n data={ChevronRight}\n size={props.isMobile ? 20 : 16}\n />\n </Button>\n );\n }}\n renderOption={({value, content}) => {\n const v = content ?? value;\n return (\n <span className={b('item')}>\n <span className={b('item-title')} title={value}>\n {v} \n </span>\n <Text color=\"secondary\">{getTimeZoneOffset(value)}</Text>\n </span>\n );\n }}\n filterable\n />\n );\n}\n"]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export declare const i18n: (key: "default" | "system", params?: import("@gravity-ui/i18n").Params
|
|
1
|
+
export declare const i18n: ((key: "default" | "system", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
keysetData: {
|
|
3
|
+
"g-date-relative-range-date-picker-zones": Record<"default" | "system", import("@gravity-ui/i18n").KeyData>;
|
|
4
|
+
};
|
|
5
|
+
};
|
package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts
CHANGED
|
@@ -21,7 +21,18 @@ export interface RelativeRangeDatePickerStateOptions {
|
|
|
21
21
|
/** The maximum allowed date that a user may select. */
|
|
22
22
|
maxValue?: DateTime;
|
|
23
23
|
/** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. */
|
|
24
|
-
isDateUnavailable?: (date: DateTime) => boolean;
|
|
24
|
+
isDateUnavailable?: (date: DateTime, endpoint: 'start' | 'end') => boolean;
|
|
25
25
|
allowNullableValues?: boolean;
|
|
26
26
|
}
|
|
27
27
|
export declare function useRelativeRangeDatePickerState(props: RelativeRangeDatePickerStateOptions): RelativeRangeDatePickerState;
|
|
28
|
+
export declare function getRangeValidationResult(value: RelativeRangeDatePickerValue | null, allowNullableValues: boolean | undefined, minValue: DateTime | undefined, maxValue: DateTime | undefined, isDateUnavailable: ((v: DateTime, endpoint: 'start' | 'end') => boolean) | undefined, timeZone: string): {
|
|
29
|
+
isInvalid: boolean;
|
|
30
|
+
errors: never[];
|
|
31
|
+
startValidationResult?: undefined;
|
|
32
|
+
endValidationResult?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
isInvalid: boolean;
|
|
35
|
+
startValidationResult: import("../../utils/validation/datePicker.js").ValidationResult;
|
|
36
|
+
endValidationResult: import("../../utils/validation/datePicker.js").ValidationResult;
|
|
37
|
+
errors: string[];
|
|
38
|
+
};
|
package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js
CHANGED
|
@@ -26,18 +26,18 @@ export function useRelativeRangeDatePickerState(props) {
|
|
|
26
26
|
}
|
|
27
27
|
} }, validation);
|
|
28
28
|
}
|
|
29
|
-
function getRangeValidationResult(value, allowNullableValues, minValue, maxValue, isDateUnavailable, timeZone) {
|
|
29
|
+
export function getRangeValidationResult(value, allowNullableValues, minValue, maxValue, isDateUnavailable, timeZone) {
|
|
30
30
|
if (!value) {
|
|
31
31
|
return { isInvalid: false, errors: [] };
|
|
32
32
|
}
|
|
33
33
|
const startDate = value.start ? dateTimeParse(value.start.value, { timeZone }) : null;
|
|
34
34
|
const endDate = value.end ? dateTimeParse(value.end.value, { timeZone, roundUp: true }) : null;
|
|
35
|
-
const startValidationResult = getValidationResult(startDate, minValue, maxValue, isDateUnavailable, timeZone, i18n('"From"'));
|
|
35
|
+
const startValidationResult = getValidationResult(startDate, minValue, maxValue, isDateUnavailable ? (date) => isDateUnavailable(date, 'start') : undefined, timeZone, i18n('"From"'));
|
|
36
36
|
if (!startDate && !allowNullableValues) {
|
|
37
37
|
startValidationResult.isInvalid = true;
|
|
38
38
|
startValidationResult.errors.push(i18n('"From" is required.'));
|
|
39
39
|
}
|
|
40
|
-
const endValidationResult = getValidationResult(endDate, minValue, maxValue, isDateUnavailable, timeZone, i18n('"To"'));
|
|
40
|
+
const endValidationResult = getValidationResult(endDate, minValue, maxValue, isDateUnavailable ? (date) => isDateUnavailable(date, 'end') : undefined, timeZone, i18n('"To"'));
|
|
41
41
|
if (!endDate && !allowNullableValues) {
|
|
42
42
|
endValidationResult.isInvalid = true;
|
|
43
43
|
endValidationResult.errors.push(i18n('"To" is required.'));
|
|
@@ -48,6 +48,8 @@ function getRangeValidationResult(value, allowNullableValues, minValue, maxValue
|
|
|
48
48
|
}
|
|
49
49
|
return {
|
|
50
50
|
isInvalid: startValidationResult.isInvalid || endValidationResult.isInvalid,
|
|
51
|
+
startValidationResult,
|
|
52
|
+
endValidationResult,
|
|
51
53
|
errors: startValidationResult.errors.concat(endValidationResult.errors),
|
|
52
54
|
};
|
|
53
55
|
}
|
package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRelativeRangeDatePickerState.js","sourceRoot":"../../../../../src","sources":["components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAC,mBAAmB,EAAC,6CAA0C;AACtE,OAAO,EAAC,IAAI,EAAC,yBAAgB;AA4B7B,MAAM,UAAU,+BAA+B,CAC3C,KAA0C;;IAE1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,IAAI,CAAC,CAAC;IAEtF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,kBAAkB,CAC9C,KAAK,CAAC,QAAQ,EACd,MAAA,KAAK,CAAC,eAAe,mCAAI,SAAS,EAClC,KAAK,CAAC,gBAAgB,CACzB,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CACD,wBAAwB,CACpB,KAAK,EACL,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,iBAAiB,EACvB,QAAQ,CACX,EACL;QACI,KAAK;QACL,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ;QACd,QAAQ;KACX,CACJ,CAAC;IAEF,uBACI,KAAK;QACL,QAAQ;QACR,QAAQ,CAAC,CAAC,EAAE,EAAE;;YACV,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,WAAW,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC5C,MAAA,KAAK,CAAC,QAAQ,sDAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,IACE,UAAU,EACf;AACN,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"useRelativeRangeDatePickerState.js","sourceRoot":"../../../../../src","sources":["components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {dateTimeParse} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {useControlledState} from '@gravity-ui/uikit';\n\nimport type {Value} from '../../RelativeDatePicker';\nimport type {RangeValue} from '../../types';\nimport {getValidationResult} from '../../utils/validation/datePicker';\nimport {i18n} from '../i18n';\n\nexport type RelativeRangeDatePickerValue = RangeValue<Value | null>;\n\nexport interface RelativeRangeDatePickerState {\n value: RelativeRangeDatePickerValue | null;\n timeZone: string;\n setValue: (value: RelativeRangeDatePickerValue | null, timeZone: string) => void;\n isInvalid: boolean;\n errors: string[];\n}\n\nexport interface RelativeRangeDatePickerStateOptions {\n value?: RelativeRangeDatePickerValue | null;\n defaultValue?: RelativeRangeDatePickerValue;\n onUpdate?: (value: RelativeRangeDatePickerValue | null, timeZone: string) => void;\n timeZone?: string;\n defaultTimeZone?: string;\n onUpdateTimeZone?: (timeZone: string) => void;\n /** The minimum allowed date that a user may select. */\n minValue?: DateTime;\n /** The maximum allowed date that a user may select. */\n maxValue?: DateTime;\n /** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. */\n isDateUnavailable?: (date: DateTime, endpoint: 'start' | 'end') => boolean;\n allowNullableValues?: boolean;\n}\n\nexport function useRelativeRangeDatePickerState(\n props: RelativeRangeDatePickerStateOptions,\n): RelativeRangeDatePickerState {\n const [value, setValue] = useControlledState(props.value, props.defaultValue ?? null);\n\n const [timeZone, setTimeZone] = useControlledState(\n props.timeZone,\n props.defaultTimeZone ?? 'default',\n props.onUpdateTimeZone,\n );\n\n const validation = React.useMemo(\n () =>\n getRangeValidationResult(\n value,\n props.allowNullableValues,\n props.minValue,\n props.maxValue,\n props.isDateUnavailable,\n timeZone,\n ),\n [\n value,\n props.allowNullableValues,\n props.isDateUnavailable,\n props.maxValue,\n props.minValue,\n timeZone,\n ],\n );\n\n return {\n value,\n timeZone,\n setValue(v, tz) {\n setValue(v);\n setTimeZone(tz);\n if (value !== v || (value && timeZone !== tz)) {\n props.onUpdate?.(v, tz);\n }\n },\n ...validation,\n };\n}\n\nexport function getRangeValidationResult(\n value: RelativeRangeDatePickerValue | null,\n allowNullableValues: boolean | undefined,\n minValue: DateTime | undefined,\n maxValue: DateTime | undefined,\n isDateUnavailable: ((v: DateTime, endpoint: 'start' | 'end') => boolean) | undefined,\n timeZone: string,\n) {\n if (!value) {\n return {isInvalid: false, errors: []};\n }\n\n const startDate = value.start ? dateTimeParse(value.start.value, {timeZone}) : null;\n const endDate = value.end ? dateTimeParse(value.end.value, {timeZone, roundUp: true}) : null;\n\n const startValidationResult = getValidationResult(\n startDate,\n minValue,\n maxValue,\n isDateUnavailable ? (date) => isDateUnavailable(date, 'start') : undefined,\n timeZone,\n i18n('\"From\"'),\n );\n\n if (!startDate && !allowNullableValues) {\n startValidationResult.isInvalid = true;\n startValidationResult.errors.push(i18n('\"From\" is required.'));\n }\n\n const endValidationResult = getValidationResult(\n endDate,\n minValue,\n maxValue,\n isDateUnavailable ? (date) => isDateUnavailable(date, 'end') : undefined,\n timeZone,\n i18n('\"To\"'),\n );\n\n if (!endDate && !allowNullableValues) {\n endValidationResult.isInvalid = true;\n endValidationResult.errors.push(i18n('\"To\" is required.'));\n }\n\n if (startDate && endDate && endDate.isBefore(startDate)) {\n startValidationResult.isInvalid = true;\n startValidationResult.errors.push(i18n(`\"From\" can't be after \"To\".`));\n }\n\n return {\n isInvalid: startValidationResult.isInvalid || endValidationResult.isInvalid,\n startValidationResult,\n endValidationResult,\n errors: startValidationResult.errors.concat(endValidationResult.errors),\n };\n}\n"]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export declare const i18n: (key: "\"From\"" | "\"From\" is required." | "\"To\"" | "\"To\" is required." | "\"From\" can't be after \"To\"."
|
|
1
|
+
export declare const i18n: ((key: "to" | "\"From\"" | "\"From\" is required." | "\"To\"" | "\"To\" is required." | "\"From\" can't be after \"To\".", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
keysetData: {
|
|
3
|
+
"g-date-relative-range-date-picker": Record<"to" | "\"From\"" | "\"From\" is required." | "\"To\"" | "\"To\" is required." | "\"From\" can't be after \"To\".", import("@gravity-ui/i18n").KeyData>;
|
|
4
|
+
};
|
|
5
|
+
};
|
|
@@ -2,6 +2,8 @@ export * from "./RelativeRangeDatePicker.js";
|
|
|
2
2
|
export * from "./types.js";
|
|
3
3
|
export { PickerDialog as RelativeRangeDatePickerDialog } from "./components/PickerDialog/PickerDialog.js";
|
|
4
4
|
export type { PickerDialogProps as RelativeRangeDatePickerDialogProps } from "./components/PickerDialog/PickerDialog.js";
|
|
5
|
+
export { PickerForm as RelativeRangeDatePickerForm } from "./components/PickerDialog/PickerForm.js";
|
|
6
|
+
export type { PickerFormProps as RelativeRangeDatePickerFormProps } from "./components/PickerDialog/PickerForm.js";
|
|
5
7
|
export * from "./hooks/useRelativeRangeDatePickerState.js";
|
|
6
8
|
export { DEFAULT_DATE_PRESETS, DEFAULT_TIME_PRESETS, DEFAULT_OTHERS_PRESETS, } from "./components/Presets/defaultPresets.js";
|
|
7
9
|
export { getDefaultPresetTabs } from "./components/Presets/utils.js";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./RelativeRangeDatePicker.js";
|
|
2
2
|
export * from "./types.js";
|
|
3
3
|
export { PickerDialog as RelativeRangeDatePickerDialog } from "./components/PickerDialog/PickerDialog.js";
|
|
4
|
+
export { PickerForm as RelativeRangeDatePickerForm } from "./components/PickerDialog/PickerForm.js";
|
|
4
5
|
export * from "./hooks/useRelativeRangeDatePickerState.js";
|
|
5
6
|
export { DEFAULT_DATE_PRESETS, DEFAULT_TIME_PRESETS, DEFAULT_OTHERS_PRESETS, } from "./components/Presets/defaultPresets.js";
|
|
6
7
|
export { getDefaultPresetTabs } from "./components/Presets/utils.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["components/RelativeRangeDatePicker/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAC1C,2BAAwB;AACxB,OAAO,EAAC,YAAY,IAAI,6BAA6B,EAAC,kDAA+C;AAErG,2DAAwD;AACxD,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACzB,+CAA4C;AAC7C,OAAO,EAAC,oBAAoB,EAAC,sCAAmC","sourcesContent":["export * from './RelativeRangeDatePicker';\nexport * from './types';\nexport {PickerDialog as RelativeRangeDatePickerDialog} from './components/PickerDialog/PickerDialog';\nexport type {PickerDialogProps as RelativeRangeDatePickerDialogProps} from './components/PickerDialog/PickerDialog';\nexport * from './hooks/useRelativeRangeDatePickerState';\nexport {\n DEFAULT_DATE_PRESETS,\n DEFAULT_TIME_PRESETS,\n DEFAULT_OTHERS_PRESETS,\n} from './components/Presets/defaultPresets';\nexport {getDefaultPresetTabs} from './components/Presets/utils';\nexport type {Preset as RelativeRangeDatePickerPreset} from './components/Presets/defaultPresets';\nexport type {PresetTab as RelativeRangeDatePickerPresetTab} from './components/Presets/utils';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["components/RelativeRangeDatePicker/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAC1C,2BAAwB;AACxB,OAAO,EAAC,YAAY,IAAI,6BAA6B,EAAC,kDAA+C;AAErG,OAAO,EAAC,UAAU,IAAI,2BAA2B,EAAC,gDAA6C;AAE/F,2DAAwD;AACxD,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACzB,+CAA4C;AAC7C,OAAO,EAAC,oBAAoB,EAAC,sCAAmC","sourcesContent":["export * from './RelativeRangeDatePicker';\nexport * from './types';\nexport {PickerDialog as RelativeRangeDatePickerDialog} from './components/PickerDialog/PickerDialog';\nexport type {PickerDialogProps as RelativeRangeDatePickerDialogProps} from './components/PickerDialog/PickerDialog';\nexport {PickerForm as RelativeRangeDatePickerForm} from './components/PickerDialog/PickerForm';\nexport type {PickerFormProps as RelativeRangeDatePickerFormProps} from './components/PickerDialog/PickerForm';\nexport * from './hooks/useRelativeRangeDatePickerState';\nexport {\n DEFAULT_DATE_PRESETS,\n DEFAULT_TIME_PRESETS,\n DEFAULT_OTHERS_PRESETS,\n} from './components/Presets/defaultPresets';\nexport {getDefaultPresetTabs} from './components/Presets/utils';\nexport type {Preset as RelativeRangeDatePickerPreset} from './components/Presets/defaultPresets';\nexport type {PresetTab as RelativeRangeDatePickerPresetTab} from './components/Presets/utils';\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
2
|
import type { Value } from "../RelativeDatePicker/index.js";
|
|
3
|
-
import type { AccessibilityProps, DomProps, FocusableProps, InputBase, InputDOMProps, RangeValue, StyleProps, TextInputProps, Validation } from "../types/index.js";
|
|
3
|
+
import type { AccessibilityProps, DomProps, FocusableProps, InputBase, InputDOMProps, PopupStyleProps, RangeValue, StyleProps, TextInputProps, Validation } from "../types/index.js";
|
|
4
4
|
import type { Preset } from "./components/Presets/defaultPresets.js";
|
|
5
5
|
import type { PresetTab } from "./components/Presets/utils.js";
|
|
6
6
|
import type { RelativeRangeDatePickerStateOptions, RelativeRangeDatePickerValue } from "./hooks/useRelativeRangeDatePickerState.js";
|
|
7
|
-
export type RelativeRangeDatePickerTriggerProps = Pick<React.
|
|
7
|
+
export type RelativeRangeDatePickerTriggerProps = Pick<React.AllHTMLAttributes<HTMLElement>, 'id' | 'role' | 'aria-controls' | 'aria-haspopup' | 'aria-expanded' | 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-details' | 'onClick' | 'onKeyDown' | 'disabled' | 'readOnly'>;
|
|
8
8
|
export interface RelativeRangeDatePickerRenderControlProps {
|
|
9
9
|
ref: React.Ref<HTMLElement>;
|
|
10
10
|
value: RelativeRangeDatePickerValue | null;
|
|
@@ -14,7 +14,7 @@ export interface RelativeRangeDatePickerRenderControlProps {
|
|
|
14
14
|
open: boolean;
|
|
15
15
|
triggerProps: RelativeRangeDatePickerTriggerProps;
|
|
16
16
|
}
|
|
17
|
-
export interface RelativeRangeDatePickerProps extends RelativeRangeDatePickerStateOptions, DomProps, AccessibilityProps, InputBase, InputDOMProps, TextInputProps, Validation, FocusableProps, StyleProps {
|
|
17
|
+
export interface RelativeRangeDatePickerProps extends RelativeRangeDatePickerStateOptions, DomProps, AccessibilityProps, InputBase, InputDOMProps, TextInputProps, Validation, FocusableProps, StyleProps, PopupStyleProps {
|
|
18
18
|
/** Format of the date when rendered in the input. [Available formats](https://day.js.org/docs/en/display/format) */
|
|
19
19
|
format?: string;
|
|
20
20
|
/** A placeholder date that controls the default values of each segment when the user first interacts with them. Defaults to today's date at midnight. */
|
|
@@ -33,8 +33,6 @@ export interface RelativeRangeDatePickerProps extends RelativeRangeDatePickerSta
|
|
|
33
33
|
alwaysShowAsAbsolute?: boolean;
|
|
34
34
|
/** */
|
|
35
35
|
getRangeTitle?: (value: RangeValue<Value | null> | null, timeZone: string) => string;
|
|
36
|
-
/** Sets the CSS className for the popup element. */
|
|
37
|
-
popupClassName?: string;
|
|
38
36
|
/** Handler that is called when the popup's open state changes. */
|
|
39
37
|
onOpenChange?: (open: boolean) => void;
|
|
40
38
|
/** Used to render control. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"../../../../src","sources":["components/RelativeRangeDatePicker/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {Value} from '../RelativeDatePicker';\nimport type {\n AccessibilityProps,\n DomProps,\n FocusableProps,\n InputBase,\n InputDOMProps,\n RangeValue,\n StyleProps,\n TextInputProps,\n Validation,\n} from '../types';\n\nimport type {Preset} from './components/Presets/defaultPresets';\nimport type {PresetTab} from './components/Presets/utils';\nimport type {\n RelativeRangeDatePickerStateOptions,\n RelativeRangeDatePickerValue,\n} from './hooks/useRelativeRangeDatePickerState';\n\nexport type RelativeRangeDatePickerTriggerProps = Pick<\n React.
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"../../../../src","sources":["components/RelativeRangeDatePicker/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {Value} from '../RelativeDatePicker';\nimport type {\n AccessibilityProps,\n DomProps,\n FocusableProps,\n InputBase,\n InputDOMProps,\n PopupStyleProps,\n RangeValue,\n StyleProps,\n TextInputProps,\n Validation,\n} from '../types';\n\nimport type {Preset} from './components/Presets/defaultPresets';\nimport type {PresetTab} from './components/Presets/utils';\nimport type {\n RelativeRangeDatePickerStateOptions,\n RelativeRangeDatePickerValue,\n} from './hooks/useRelativeRangeDatePickerState';\n\nexport type RelativeRangeDatePickerTriggerProps = Pick<\n React.AllHTMLAttributes<HTMLElement>,\n | 'id'\n | 'role'\n | 'aria-controls'\n | 'aria-haspopup'\n | 'aria-expanded'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-describedby'\n | 'aria-details'\n | 'onClick'\n | 'onKeyDown'\n | 'disabled'\n | 'readOnly'\n>;\n\nexport interface RelativeRangeDatePickerRenderControlProps {\n ref: React.Ref<HTMLElement>;\n value: RelativeRangeDatePickerValue | null;\n title: string;\n errorMessage?: React.ReactNode;\n validationState?: 'invalid';\n open: boolean;\n triggerProps: RelativeRangeDatePickerTriggerProps;\n}\n\nexport interface RelativeRangeDatePickerProps\n extends RelativeRangeDatePickerStateOptions,\n DomProps,\n AccessibilityProps,\n InputBase,\n InputDOMProps,\n TextInputProps,\n Validation,\n FocusableProps,\n StyleProps,\n PopupStyleProps {\n /** Format of the date when rendered in the input. [Available formats](https://day.js.org/docs/en/display/format) */\n format?: string;\n /** A placeholder date that controls the default values of each segment when the user first interacts with them. Defaults to today's date at midnight. */\n placeholderValue?: DateTime;\n /** Apply changes with button */\n withApplyButton?: boolean;\n /** Show time zone selector */\n withZonesList?: boolean;\n /** Show relative range presets */\n withPresets?: boolean;\n /** Custom preset tabs */\n presetTabs?: PresetTab[];\n /** Custom docs for presets, if empty array docs will be hidden */\n docs?: Preset[];\n /** Show selected relative values as absolute dates */\n alwaysShowAsAbsolute?: boolean;\n /** */\n getRangeTitle?: (value: RangeValue<Value | null> | null, timeZone: string) => string;\n /** Handler that is called when the popup's open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Used to render control. */\n renderControl?: (props: RelativeRangeDatePickerRenderControlProps) => React.ReactElement;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["components/index.ts"],"names":[],"mappings":"AAAA,oCAA2B;AAC3B,yCAAgC;AAChC,qCAA4B;AAC5B,sCAA6B;AAC7B,2CAAkC;AAClC,8CAAqC;AACrC,6CAAoC;AACpC,8CAAqC;AACrC,0CAAiC;AACjC,mDAA0C","sourcesContent":["export * from './Calendar';\nexport * from './RangeCalendar';\nexport * from './DateField';\nexport * from './DatePicker';\nexport * from './RangeDatePicker';\nexport * from './RangeDateSelection';\nexport * from './RelativeDateField';\nexport * from './RelativeDatePicker';\nexport * from './RangeDateField';\nexport * from './RelativeRangeDatePicker';\n\nexport type {RangeValue} from './types';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["components/index.ts"],"names":[],"mappings":"AAAA,oCAA2B;AAC3B,yCAAgC;AAChC,qCAA4B;AAC5B,sCAA6B;AAC7B,2CAAkC;AAClC,8CAAqC;AACrC,6CAAoC;AACpC,8CAAqC;AACrC,0CAAiC;AACjC,mDAA0C","sourcesContent":["export * from './Calendar';\nexport * from './RangeCalendar';\nexport * from './DateField';\nexport * from './DatePicker';\nexport * from './RangeDatePicker';\nexport * from './RangeDateSelection';\nexport * from './RelativeDateField';\nexport * from './RelativeDatePicker';\nexport * from './RangeDateField';\nexport * from './RelativeRangeDatePicker';\n\nexport type {RangeValue} from './types';\n\nexport type {Keysets, PartialKeysets} from './types/i18n';\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
+
import type { CSSProperties, PopupOffset, PopupPlacement } from '@gravity-ui/uikit';
|
|
2
3
|
import type { InputBase, Validation, ValueBase } from "./inputs.js";
|
|
3
4
|
export interface DateFieldBase<T = DateTime> extends ValueBase<T | null>, InputBase, Validation {
|
|
4
5
|
/** The minimum allowed date that a user may select. */
|
|
@@ -25,3 +26,13 @@ export interface PopupTriggerProps<Args extends unknown[] = []> {
|
|
|
25
26
|
/** Handler that is called when the popup's open state changes. */
|
|
26
27
|
onOpenChange?: (open: boolean, ...args: Args) => void;
|
|
27
28
|
}
|
|
29
|
+
export interface PopupStyleProps {
|
|
30
|
+
/** Sets the CSS className for the popup element. */
|
|
31
|
+
popupClassName?: string;
|
|
32
|
+
/** Sets the CSS style attribute for the popup element. */
|
|
33
|
+
popupStyle?: CSSProperties;
|
|
34
|
+
/** Popup placement */
|
|
35
|
+
popupPlacement?: PopupPlacement;
|
|
36
|
+
/** Popup offset relative to anchor */
|
|
37
|
+
popupOffset?: PopupOffset;
|
|
38
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datePicker.js","sourceRoot":"../../../../src","sources":["components/types/datePicker.ts"],"names":[],"mappings":"","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {InputBase, Validation, ValueBase} from './inputs';\n\nexport interface DateFieldBase<T = DateTime> extends ValueBase<T | null>, InputBase, Validation {\n /** The minimum allowed date that a user may select. */\n minValue?: DateTime;\n /** The maximum allowed date that a user may select. */\n maxValue?: DateTime;\n /** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. */\n isDateUnavailable?: (date: DateTime) => boolean;\n /** Format of the date when rendered in the input. [Available formats](https://day.js.org/docs/en/display/format) */\n format?: string;\n /** A placeholder date that controls the default values of each segment when the user first interacts with them. Defaults to today's date at midnight. */\n placeholderValue?: DateTime;\n /**\n * Which timezone use to show values. Example: 'default', 'system', 'Europe/Amsterdam'.\n * @default The timezone of the `value` or `defaultValue` or `placeholderValue`, 'default' otherwise.\n */\n timeZone?: string;\n}\n\nexport interface PopupTriggerProps<Args extends unknown[] = []> {\n /** Whether the popup is open (controlled). */\n open?: boolean;\n /** Whether the popup is open by default (uncontrolled). */\n defaultOpen?: boolean;\n /** Handler that is called when the popup's open state changes. */\n onOpenChange?: (open: boolean, ...args: Args) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"datePicker.js","sourceRoot":"../../../../src","sources":["components/types/datePicker.ts"],"names":[],"mappings":"","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\nimport type {CSSProperties, PopupOffset, PopupPlacement} from '@gravity-ui/uikit';\n\nimport type {InputBase, Validation, ValueBase} from './inputs';\n\nexport interface DateFieldBase<T = DateTime> extends ValueBase<T | null>, InputBase, Validation {\n /** The minimum allowed date that a user may select. */\n minValue?: DateTime;\n /** The maximum allowed date that a user may select. */\n maxValue?: DateTime;\n /** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. */\n isDateUnavailable?: (date: DateTime) => boolean;\n /** Format of the date when rendered in the input. [Available formats](https://day.js.org/docs/en/display/format) */\n format?: string;\n /** A placeholder date that controls the default values of each segment when the user first interacts with them. Defaults to today's date at midnight. */\n placeholderValue?: DateTime;\n /**\n * Which timezone use to show values. Example: 'default', 'system', 'Europe/Amsterdam'.\n * @default The timezone of the `value` or `defaultValue` or `placeholderValue`, 'default' otherwise.\n */\n timeZone?: string;\n}\n\nexport interface PopupTriggerProps<Args extends unknown[] = []> {\n /** Whether the popup is open (controlled). */\n open?: boolean;\n /** Whether the popup is open by default (uncontrolled). */\n defaultOpen?: boolean;\n /** Handler that is called when the popup's open state changes. */\n onOpenChange?: (open: boolean, ...args: Args) => void;\n}\n\nexport interface PopupStyleProps {\n /** Sets the CSS className for the popup element. */\n popupClassName?: string;\n /** Sets the CSS style attribute for the popup element. */\n popupStyle?: CSSProperties;\n /** Popup placement */\n popupPlacement?: PopupPlacement;\n /** Popup offset relative to anchor */\n popupOffset?: PopupOffset;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { i18n as CalendarKeyset } from "../CalendarView/i18n/index.js";
|
|
2
|
+
import type { i18n as DateFieldKeyset } from "../DateField/i18n/index.js";
|
|
3
|
+
import type { i18n as DatePickerKeyset } from "../DatePicker/i18n/index.js";
|
|
4
|
+
import type { i18n as RangeDateSelectionKeyset } from "../RangeDateSelection/i18n/index.js";
|
|
5
|
+
import type { i18n as RelativeDatePickerKeyset } from "../RelativeDatePicker/i18n/index.js";
|
|
6
|
+
import type { i18n as RelativeRangeDatePickerControlKeyset } from "../RelativeRangeDatePicker/components/Control/i18n/index.js";
|
|
7
|
+
import type { i18n as RelativeRangeDatePickerFormKeyset } from "../RelativeRangeDatePicker/components/PickerDialog/i18n/index.js";
|
|
8
|
+
import type { i18n as RelativeRangeDatePickerPresetsKeyset } from "../RelativeRangeDatePicker/components/Presets/i18n/index.js";
|
|
9
|
+
import type { i18n as RelativeRangeDatePickerZonesKeyset } from "../RelativeRangeDatePicker/components/Zones/i18n/index.js";
|
|
10
|
+
import type { i18n as RelativeRangeDatePickerKeyset } from "../RelativeRangeDatePicker/i18n/index.js";
|
|
11
|
+
import type { i18n as ValidationKeyset } from "../utils/validation/i18n/index.js";
|
|
12
|
+
type DeepPartial<T, N extends number = 9> = N extends 0 ? T : Partial<{
|
|
13
|
+
[P in keyof T]: DeepPartial<T[P], [never, 0, 1, 2, 3, 4, 5, 6, 7, 8][N]>;
|
|
14
|
+
}>;
|
|
15
|
+
export type Keysets = typeof CalendarKeyset.keysetData & typeof DateFieldKeyset.keysetData & typeof DatePickerKeyset.keysetData & typeof RangeDateSelectionKeyset.keysetData & typeof RelativeDatePickerKeyset.keysetData & typeof RelativeRangeDatePickerKeyset.keysetData & typeof RelativeRangeDatePickerFormKeyset.keysetData & typeof RelativeRangeDatePickerPresetsKeyset.keysetData & typeof RelativeRangeDatePickerZonesKeyset.keysetData & typeof RelativeRangeDatePickerControlKeyset.keysetData & typeof ValidationKeyset.keysetData;
|
|
16
|
+
export type PartialKeysets = DeepPartial<Keysets, 2>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"../../../../src","sources":["components/types/i18n.ts"],"names":[],"mappings":"","sourcesContent":["import type {i18n as CalendarKeyset} from '../CalendarView/i18n';\nimport type {i18n as DateFieldKeyset} from '../DateField/i18n';\nimport type {i18n as DatePickerKeyset} from '../DatePicker/i18n';\nimport type {i18n as RangeDateSelectionKeyset} from '../RangeDateSelection/i18n';\nimport type {i18n as RelativeDatePickerKeyset} from '../RelativeDatePicker/i18n';\nimport type {i18n as RelativeRangeDatePickerControlKeyset} from '../RelativeRangeDatePicker/components/Control/i18n';\nimport type {i18n as RelativeRangeDatePickerFormKeyset} from '../RelativeRangeDatePicker/components/PickerDialog/i18n';\nimport type {i18n as RelativeRangeDatePickerPresetsKeyset} from '../RelativeRangeDatePicker/components/Presets/i18n';\nimport type {i18n as RelativeRangeDatePickerZonesKeyset} from '../RelativeRangeDatePicker/components/Zones/i18n';\nimport type {i18n as RelativeRangeDatePickerKeyset} from '../RelativeRangeDatePicker/i18n';\nimport type {i18n as ValidationKeyset} from '../utils/validation/i18n';\n\n/* DeepPartial with depth limitation up to 9 */\ntype DeepPartial<T, N extends number = 9> = N extends 0\n ? T\n : Partial<{[P in keyof T]: DeepPartial<T[P], [never, 0, 1, 2, 3, 4, 5, 6, 7, 8][N]>}>;\n\nexport type Keysets = typeof CalendarKeyset.keysetData &\n typeof DateFieldKeyset.keysetData &\n typeof DatePickerKeyset.keysetData &\n typeof RangeDateSelectionKeyset.keysetData &\n typeof RelativeDatePickerKeyset.keysetData &\n typeof RelativeRangeDatePickerKeyset.keysetData &\n typeof RelativeRangeDatePickerFormKeyset.keysetData &\n typeof RelativeRangeDatePickerPresetsKeyset.keysetData &\n typeof RelativeRangeDatePickerZonesKeyset.keysetData &\n typeof RelativeRangeDatePickerControlKeyset.keysetData &\n typeof ValidationKeyset.keysetData;\nexport type PartialKeysets = DeepPartial<Keysets, 2>;\n"]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export declare const i18n: (key: "Selected date unavailable." | "Value must be {minValue} or later." | "Value must be {maxValue} or earlier." | "Value is required.", params?: import("@gravity-ui/i18n").Params
|
|
1
|
+
export declare const i18n: ((key: "Selected date unavailable." | "Value must be {minValue} or later." | "Value must be {maxValue} or earlier." | "Value is required.", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
keysetData: {
|
|
3
|
+
"g-date-validation": Record<"Selected date unavailable." | "Value must be {minValue} or later." | "Value must be {maxValue} or earlier." | "Value is required.", import("@gravity-ui/i18n").KeyData>;
|
|
4
|
+
};
|
|
5
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/date-components",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"@gravity-ui/prettier-config": "^1.1.0",
|
|
68
68
|
"@gravity-ui/stylelint-config": "^4.0.1",
|
|
69
69
|
"@gravity-ui/tsconfig": "^1.0.0",
|
|
70
|
-
"@gravity-ui/uikit": "^
|
|
70
|
+
"@gravity-ui/uikit": "^7.0.0",
|
|
71
71
|
"@storybook/addon-a11y": "^8.4.7",
|
|
72
72
|
"@storybook/addon-actions": "^8.4.7",
|
|
73
73
|
"@storybook/addon-essentials": "^8.4.7",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"typescript": "^5.7.2"
|
|
118
118
|
},
|
|
119
119
|
"peerDependencies": {
|
|
120
|
-
"@gravity-ui/uikit": "^
|
|
120
|
+
"@gravity-ui/uikit": "^7.0.0",
|
|
121
121
|
"react": ">=17.0.0",
|
|
122
122
|
"react-dom": ">=17.0.0"
|
|
123
123
|
},
|