@finam/web-ui-kit-components 3.33.2 → 3.34.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/CHANGELOG.md +10 -0
- package/dist/Avatar/index.d.ts +1 -3
- package/dist/Avatar/index.d.ts.map +1 -1
- package/dist/Avatar/index.js +1 -5
- package/dist/Avatar/utils.d.ts.map +1 -1
- package/dist/Avatar/utils.js.map +1 -1
- package/dist/Breadcrumbs/Breadcrumb/Breadcrumb.d.ts +2 -1
- package/dist/Breadcrumbs/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/Breadcrumbs/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/Breadcrumbs/utils/getRenderOnPageItems.d.ts.map +1 -1
- package/dist/Breadcrumbs/utils/getRenderOnPageItems.js +7 -8
- package/dist/Breadcrumbs/utils/getRenderOnPageItems.js.map +1 -1
- package/dist/Calendar/Calendar.js +8 -1
- package/dist/Calendar/Calendar.js.map +1 -1
- package/dist/Calendar/Calendar.styles.css +1 -1
- package/dist/Calendar/Calendar.styles.d.ts +1 -1
- package/dist/Calendar/Calendar.styles.d.ts.map +1 -1
- package/dist/Calendar/Calendar.styles.js +1 -1
- package/dist/Calendar/Calendar.styles.js.map +1 -1
- package/dist/Calendar/Day/Day.d.ts +3 -2
- package/dist/Calendar/Day/Day.d.ts.map +1 -1
- package/dist/Calendar/Day/Day.js +5 -2
- package/dist/Calendar/Day/Day.js.map +1 -1
- package/dist/Calendar/Day/Day.styles.css +2 -2
- package/dist/Calendar/Day/Day.styles.d.ts.map +1 -1
- package/dist/Calendar/Day/Day.styles.js.map +1 -1
- package/dist/Calendar/Day/index.d.ts +1 -3
- package/dist/Calendar/Day/index.d.ts.map +1 -1
- package/dist/Calendar/Day/index.js +1 -5
- package/dist/Calendar/DayWrapper.d.ts +1 -1
- package/dist/Calendar/DayWrapper.d.ts.map +1 -1
- package/dist/Calendar/DayWrapper.js +15 -7
- package/dist/Calendar/DayWrapper.js.map +1 -1
- package/dist/Calendar/SelectMonthTable/SelectMonthTable.styles.css +1 -1
- package/dist/Calendar/SelectMonthTable/SelectMonthTable.styles.d.ts +1 -1
- package/dist/Calendar/SelectMonthTable/SelectMonthTable.styles.d.ts.map +1 -1
- package/dist/Calendar/SelectMonthTable/SelectMonthTable.styles.js.map +1 -1
- package/dist/Calendar/SelectYearTable/SelectYearTable.styles.css +1 -1
- package/dist/Calendar/SelectYearTable/SelectYearTable.styles.d.ts +1 -1
- package/dist/Calendar/SelectYearTable/SelectYearTable.styles.d.ts.map +1 -1
- package/dist/Calendar/SelectYearTable/SelectYearTable.styles.js.map +1 -1
- package/dist/Calendar/SlideTransition/index.d.ts +1 -3
- package/dist/Calendar/SlideTransition/index.d.ts.map +1 -1
- package/dist/Calendar/SlideTransition/index.js +1 -5
- package/dist/Calendar/utils.js +9 -9
- package/dist/Calendar/utils.js.map +1 -1
- package/dist/CheckboxField/index.d.ts +1 -3
- package/dist/CheckboxField/index.d.ts.map +1 -1
- package/dist/CheckboxField/index.js +1 -5
- package/dist/CheckboxField/types.d.ts +2 -2
- package/dist/CheckboxField/types.d.ts.map +1 -1
- package/dist/Chip/index.d.ts +1 -3
- package/dist/Chip/index.d.ts.map +1 -1
- package/dist/Chip/index.js +1 -5
- package/dist/ClickAwayListener/ClickAwayListener.d.ts.map +1 -1
- package/dist/ClickAwayListener/ClickAwayListener.js +3 -1
- package/dist/ClickAwayListener/ClickAwayListener.js.map +1 -1
- package/dist/ClickAwayListener/index.d.ts +1 -3
- package/dist/ClickAwayListener/index.d.ts.map +1 -1
- package/dist/ClickAwayListener/index.js +1 -5
- package/dist/Counter/index.d.ts +1 -3
- package/dist/Counter/index.d.ts.map +1 -1
- package/dist/Counter/index.js +1 -5
- package/dist/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker/DatePicker.js +1 -1
- package/dist/DatePicker/DatePicker.js.map +1 -1
- package/dist/DateTimePeriod/index.d.ts +2 -5
- package/dist/DateTimePeriod/index.d.ts.map +1 -1
- package/dist/DateTimePeriod/index.js +1 -5
- package/dist/DateTimePicker/index.d.ts +1 -3
- package/dist/DateTimePicker/index.d.ts.map +1 -1
- package/dist/DateTimePicker/index.js +1 -5
- package/dist/Dialog/Dialog.js +1 -1
- package/dist/Dialog/Dialog.js.map +1 -1
- package/dist/DialogActions/index.d.ts +1 -3
- package/dist/DialogActions/index.d.ts.map +1 -1
- package/dist/DialogActions/index.js +1 -5
- package/dist/DialogContent/index.d.ts +1 -3
- package/dist/DialogContent/index.d.ts.map +1 -1
- package/dist/DialogContent/index.js +1 -5
- package/dist/DialogTitle/index.d.ts +1 -3
- package/dist/DialogTitle/index.d.ts.map +1 -1
- package/dist/DialogTitle/index.js +1 -5
- package/dist/Divider/index.d.ts +1 -3
- package/dist/Divider/index.d.ts.map +1 -1
- package/dist/Divider/index.js +1 -5
- package/dist/DraggablePopover/DraggablePopover.d.ts.map +1 -1
- package/dist/DraggablePopover/DraggablePopover.js +2 -2
- package/dist/DraggablePopover/DraggablePopover.js.map +1 -1
- package/dist/DraggablePopover/layersManager.d.ts +1 -1
- package/dist/DraggablePopover/layersManager.d.ts.map +1 -1
- package/dist/DraggablePopover/layersManager.js.map +1 -1
- package/dist/DropDownMenu/index.d.ts +1 -3
- package/dist/DropDownMenu/index.d.ts.map +1 -1
- package/dist/DropDownMenu/index.js +1 -5
- package/dist/FeatureCallout/FeatureCalloutActions/index.d.ts +1 -3
- package/dist/FeatureCallout/FeatureCalloutActions/index.d.ts.map +1 -1
- package/dist/FeatureCallout/FeatureCalloutActions/index.js +1 -5
- package/dist/FeatureCallout/FeatureCalloutText/index.d.ts +1 -3
- package/dist/FeatureCallout/FeatureCalloutText/index.d.ts.map +1 -1
- package/dist/FeatureCallout/FeatureCalloutText/index.js +1 -5
- package/dist/FeatureCallout/FeatureCalloutTitle/index.d.ts +1 -3
- package/dist/FeatureCallout/FeatureCalloutTitle/index.d.ts.map +1 -1
- package/dist/FeatureCallout/FeatureCalloutTitle/index.js +1 -5
- package/dist/FeatureCallout/index.d.ts +4 -7
- package/dist/FeatureCallout/index.d.ts.map +1 -1
- package/dist/FeatureCallout/index.js +1 -5
- package/dist/FeatureCallout/utils.d.ts.map +1 -1
- package/dist/FeatureCallout/utils.js +1 -37
- package/dist/FeatureCallout/utils.js.map +1 -1
- package/dist/FieldHint/index.d.ts +1 -3
- package/dist/FieldHint/index.d.ts.map +1 -1
- package/dist/FieldHint/index.js +1 -5
- package/dist/FilterButton/FilterButton.js +1 -1
- package/dist/FilterButton/FilterButton.js.map +1 -1
- package/dist/FormGroup/index.d.ts +1 -3
- package/dist/FormGroup/index.d.ts.map +1 -1
- package/dist/FormGroup/index.js +1 -5
- package/dist/Loader/index.d.ts +1 -3
- package/dist/Loader/index.d.ts.map +1 -1
- package/dist/Loader/index.js +1 -5
- package/dist/LoaderBackdrop/index.d.ts +1 -3
- package/dist/LoaderBackdrop/index.d.ts.map +1 -1
- package/dist/LoaderBackdrop/index.js +1 -5
- package/dist/LoaderDots/index.d.ts +1 -3
- package/dist/LoaderDots/index.d.ts.map +1 -1
- package/dist/LoaderDots/index.js +1 -5
- package/dist/MarketingButton/useMarketingAnimations.d.ts +2 -2
- package/dist/MarketingButton/useMarketingAnimations.d.ts.map +1 -1
- package/dist/MarketingButton/useMarketingAnimations.js +27 -14
- package/dist/MarketingButton/useMarketingAnimations.js.map +1 -1
- package/dist/Modal/ModalManager.d.ts +1 -1
- package/dist/Modal/ModalManager.d.ts.map +1 -1
- package/dist/Modal/ModalManager.js.map +1 -1
- package/dist/Modal/Portal.js +1 -1
- package/dist/Modal/Portal.js.map +1 -1
- package/dist/ModalsProvider/index.d.ts +1 -3
- package/dist/ModalsProvider/index.d.ts.map +1 -1
- package/dist/ModalsProvider/index.js +1 -6
- package/dist/MultiSelectField/MultiSelectField.d.ts.map +1 -1
- package/dist/MultiSelectField/MultiSelectField.js +3 -8
- package/dist/MultiSelectField/MultiSelectField.js.map +1 -1
- package/dist/MultiSelectField/index.d.ts +1 -3
- package/dist/MultiSelectField/index.d.ts.map +1 -1
- package/dist/MultiSelectField/index.js +1 -5
- package/dist/NumberTextField/NumberTextField.js +4 -4
- package/dist/NumberTextField/NumberTextField.js.map +1 -1
- package/dist/NumberTextField/index.d.ts +1 -3
- package/dist/NumberTextField/index.d.ts.map +1 -1
- package/dist/NumberTextField/index.js +1 -5
- package/dist/NumberTextField/utils.d.ts.map +1 -1
- package/dist/NumberTextField/utils.js +1 -1
- package/dist/NumberTextField/utils.js.map +1 -1
- package/dist/PaginatorNumber/NavButton/index.d.ts +1 -3
- package/dist/PaginatorNumber/NavButton/index.d.ts.map +1 -1
- package/dist/PaginatorNumber/NavButton/index.js +1 -5
- package/dist/PaginatorNumber/PageButton/index.d.ts +1 -3
- package/dist/PaginatorNumber/PageButton/index.d.ts.map +1 -1
- package/dist/PaginatorNumber/PageButton/index.js +1 -5
- package/dist/PaginatorNumber/index.d.ts +1 -3
- package/dist/PaginatorNumber/index.d.ts.map +1 -1
- package/dist/PaginatorNumber/index.js +1 -5
- package/dist/PaginatorOverflow/NavButton/index.d.ts +1 -3
- package/dist/PaginatorOverflow/NavButton/index.d.ts.map +1 -1
- package/dist/PaginatorOverflow/NavButton/index.js +1 -5
- package/dist/PaginatorOverflow/PaginatorOverflow.js +2 -2
- package/dist/PaginatorOverflow/PaginatorOverflow.js.map +1 -1
- package/dist/PaginatorOverflow/index.d.ts +1 -3
- package/dist/PaginatorOverflow/index.d.ts.map +1 -1
- package/dist/PaginatorOverflow/index.js +1 -5
- package/dist/Paper/types.d.ts +6 -1
- package/dist/Paper/types.d.ts.map +1 -1
- package/dist/Paper/utils.d.ts +2 -2
- package/dist/PickersUtilsProvider/defaultDateFormatUtils.js +1 -1
- package/dist/PickersUtilsProvider/defaultDateFormatUtils.js.map +1 -1
- package/dist/PickersUtilsProvider/defaultTimeFormatUtils.js +4 -4
- package/dist/PickersUtilsProvider/defaultTimeFormatUtils.js.map +1 -1
- package/dist/PickersUtilsProvider/utils.js +1 -1
- package/dist/PickersUtilsProvider/utils.js.map +1 -1
- package/dist/ProductCard/layouts/ipo/Content.d.ts +2 -2
- package/dist/ProductCard/layouts/ipo/Content.d.ts.map +1 -1
- package/dist/ProductCard/layouts/ipo/Content.js.map +1 -1
- package/dist/ProductCard/utils.d.ts.map +1 -1
- package/dist/ProductCard/utils.js +4 -1
- package/dist/ProductCard/utils.js.map +1 -1
- package/dist/Skeleton/index.d.ts +2 -3
- package/dist/Skeleton/index.d.ts.map +1 -1
- package/dist/Skeleton/index.js +1 -5
- package/dist/Slider/Slider.js +9 -5
- package/dist/Slider/Slider.js.map +1 -1
- package/dist/Snackbar/Snackbar.js.map +1 -1
- package/dist/Stepper/index.d.ts +2 -3
- package/dist/Stepper/index.d.ts.map +1 -1
- package/dist/Stepper/index.js +1 -5
- package/dist/Tab/Tab.d.ts +2 -1
- package/dist/Tab/Tab.d.ts.map +1 -1
- package/dist/Tab/Tab.js +1 -1
- package/dist/Tab/Tab.js.map +1 -1
- package/dist/Tag/Tag.d.ts.map +1 -1
- package/dist/Tag/Tag.js +2 -13
- package/dist/Tag/Tag.js.map +1 -1
- package/dist/Tag/Tag.styles.css +1 -1
- package/dist/Tag/Tag.styles.d.ts.map +1 -1
- package/dist/Tag/Tag.styles.js.map +1 -1
- package/dist/TextArea/TextArea.d.ts +9 -4
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +58 -9
- package/dist/TextArea/TextArea.js.map +1 -1
- package/dist/TextArea/TextArea.styles.css +2 -0
- package/dist/TextArea/TextArea.styles.d.ts +2 -0
- package/dist/TextArea/TextArea.styles.d.ts.map +1 -1
- package/dist/TextArea/TextArea.styles.js +3 -1
- package/dist/TextArea/TextArea.styles.js.map +1 -1
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -1
- package/dist/Avatar/index.js.map +0 -1
- package/dist/Calendar/Day/index.js.map +0 -1
- package/dist/Calendar/SlideTransition/index.js.map +0 -1
- package/dist/CheckboxField/index.js.map +0 -1
- package/dist/Chip/index.js.map +0 -1
- package/dist/ClickAwayListener/index.js.map +0 -1
- package/dist/Counter/index.js.map +0 -1
- package/dist/DateTimePeriod/index.js.map +0 -1
- package/dist/DateTimePicker/index.js.map +0 -1
- package/dist/DialogActions/index.js.map +0 -1
- package/dist/DialogContent/index.js.map +0 -1
- package/dist/DialogTitle/index.js.map +0 -1
- package/dist/Divider/index.js.map +0 -1
- package/dist/DropDownMenu/index.js.map +0 -1
- package/dist/FeatureCallout/FeatureCalloutActions/index.js.map +0 -1
- package/dist/FeatureCallout/FeatureCalloutText/index.js.map +0 -1
- package/dist/FeatureCallout/FeatureCalloutTitle/index.js.map +0 -1
- package/dist/FeatureCallout/index.js.map +0 -1
- package/dist/FieldHint/index.js.map +0 -1
- package/dist/FormGroup/index.js.map +0 -1
- package/dist/Loader/index.js.map +0 -1
- package/dist/LoaderBackdrop/index.js.map +0 -1
- package/dist/LoaderDots/index.js.map +0 -1
- package/dist/ModalsProvider/index.js.map +0 -1
- package/dist/MultiSelectField/index.js.map +0 -1
- package/dist/NumberTextField/index.js.map +0 -1
- package/dist/PaginatorNumber/NavButton/index.js.map +0 -1
- package/dist/PaginatorNumber/PageButton/index.js.map +0 -1
- package/dist/PaginatorNumber/index.js.map +0 -1
- package/dist/PaginatorOverflow/NavButton/index.js.map +0 -1
- package/dist/PaginatorOverflow/index.js.map +0 -1
- package/dist/Skeleton/index.js.map +0 -1
- package/dist/Stepper/index.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## 3.34.0
|
|
2
|
+
* В `TextArea` добавлен prop `resizable` — изменение высоты поля пользователем за правый нижний угол
|
|
3
|
+
* В `TextArea` применён `customScroll`
|
|
4
|
+
## 3.33.3
|
|
5
|
+
* В `Calendar` ячейка дня, месяца и года стала кнопкой, у обёртки убрана роль `button`
|
|
6
|
+
* В типе `BorderRadius` у `Paper` убраны лишние литералы union
|
|
7
|
+
* Исправлены замечания SonarQube без изменения публичного API: реэкспорты, optional chaining, замена `substr` на `slice`
|
|
8
|
+
* В `DraggablePopover` убран каст `nodeRef`: типы `react-draggable` 4.5 принимают `RefObject<HTMLElement | null>`
|
|
9
|
+
* Исправлены замечания SonarQube в `Slider`, `Tab`, `Snackbar`, `FeatureCallout`, `ProductCard`, `Skeleton`, `Stepper` без изменения поведения
|
|
10
|
+
* В `Tag` кликабельная иконка стала нативной кнопкой `<button type="button">` вместо `span role="button"`
|
|
1
11
|
## 3.33.2
|
|
2
12
|
* В `Checkbox` с `color="alternative"` исправлены токены по макету: галочка — `icon/inverse/default`, обводка и тень фокуса — `border/base/bold` и `border/inverse/default`
|
|
3
13
|
## 3.33.1
|
package/dist/Avatar/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/Avatar/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/Avatar/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/Avatar/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,WAWtD,CAAC"}
|
package/dist/Avatar/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar/utils.js","sources":["../../src/Avatar/utils.ts"],"sourcesContent":["export const stringToHslColor = (str: string, l: number) => {\n let hash = 0;\n\n for (let i = 0; i < str.length; i++) {\n // eslint-disable-next-line no-bitwise\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n\n const h = hash % 360;\n return `hsl(${h}, 50%, ${l}%)`;\n};\n"],"names":["stringToHslColor","str","l","hash","i","h"],"mappings":"AAAO,MAAMA,mBAAmB,CAACC,KAAaC;IAC5C,IAAIC,OAAO;IAEX,IAAK,IAAIC,IAAI,GAAGA,IAAIH,IAAI,MAAM,EAAEG,
|
|
1
|
+
{"version":3,"file":"Avatar/utils.js","sources":["../../src/Avatar/utils.ts"],"sourcesContent":["export const stringToHslColor = (str: string, l: number) => {\n let hash = 0;\n\n for (let i = 0; i < str.length; i++) {\n // NOSONAR - codePointAt would change hash for non-BMP characters\n // eslint-disable-next-line no-bitwise\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n\n const h = hash % 360;\n return `hsl(${h}, 50%, ${l}%)`;\n};\n"],"names":["stringToHslColor","str","l","hash","i","h"],"mappings":"AAAO,MAAMA,mBAAmB,CAACC,KAAaC;IAC5C,IAAIC,OAAO;IAEX,IAAK,IAAIC,IAAI,GAAGA,IAAIH,IAAI,MAAM,EAAEG,IAG9BD,OAAOF,IAAI,UAAU,CAACG,KAAOD,CAAAA,CAAAA,QAAQ,KAAKA,IAAG;IAG/C,MAAME,IAAIF,OAAO;IACjB,OAAO,CAAC,IAAI,EAAEE,EAAE,OAAO,EAAEH,EAAE,EAAE,CAAC;AAChC"}
|
|
@@ -8,6 +8,7 @@ type ExportProps<T extends ElementType> = {
|
|
|
8
8
|
as?: T;
|
|
9
9
|
ref?: Ref<T>;
|
|
10
10
|
} & Omit<Props, keyof ComponentPropsWithoutRef<T> | 'as'> & Omit<ComponentPropsWithoutRef<T>, 'as'>;
|
|
11
|
-
declare const MemoizedBreadcrumb: (<T extends ElementType = "li">(
|
|
11
|
+
declare const MemoizedBreadcrumb: (<T extends ElementType = "li">(// NOSONAR
|
|
12
|
+
props: ExportProps<T>) => JSX.Element) & MemoExoticComponent<typeof Breadcrumb>;
|
|
12
13
|
export default MemoizedBreadcrumb;
|
|
13
14
|
//# sourceMappingURL=Breadcrumb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/Breadcrumbs/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAc,cAAc,EAA0D,GAAG,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAGjL,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,KAAM,SAAQ,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC5F,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED,QAAA,MAAM,UAAU,iGAyCf,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAChC;IAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACzB,IAAI,CAAC,KAAK,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GACrD,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/Breadcrumbs/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAc,cAAc,EAA0D,GAAG,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAGjL,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,KAAM,SAAQ,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC5F,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED,QAAA,MAAM,UAAU,iGAyCf,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAChC;IAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACzB,IAAI,CAAC,KAAK,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GACrD,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAG9C,QAAA,MAAM,kBAAkB,EAAuB,CAAC,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,EAAG,UAAU;AACxF,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAClB,GAAG,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,OAAO,UAAU,CAAC,CAAC;AAI3D,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs/Breadcrumb/Breadcrumb.js","sources":["../../../src/Breadcrumbs/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { typography } from '@finam/web-ui-kit-core/styles/typography';\nimport { type ElementType, forwardRef, HTMLAttributes, memo, useCallback, type KeyboardEvent, type MouseEvent, Ref, ComponentPropsWithoutRef, MemoExoticComponent } from 'react';\nimport classnames from 'clsx';\nimport { root } from './Breadcrumb.styles.js';\nimport type { BreadcrumbItem } from './types.js';\nimport { KeyboardEventKey } from '../../types.js';\nimport { BREADCRUMB_SIZES } from '../constants.js';\n\nexport interface Props extends BreadcrumbItem, Omit<HTMLAttributes<HTMLLIElement>, 'onSelect'> {\n as?: ElementType;\n}\n\nconst Breadcrumb = forwardRef<HTMLLIElement, Props>(({\n value,\n size = BREADCRUMB_SIZES.regular,\n onSelect,\n text,\n as: BreadcrumbComponent = 'li',\n preventDefaultOnClick = BreadcrumbComponent === 'li',\n className,\n ...otherProps\n}, ref) => {\n const handleKeyDown = useCallback((e: KeyboardEvent<HTMLElement>) => {\n if (e.key === KeyboardEventKey.ENTER || e.key === KeyboardEventKey.SPACE) {\n onSelect?.(value);\n }\n }, [value, onSelect]);\n\n const handleClick = useCallback((e: MouseEvent<HTMLElement>) => {\n if (preventDefaultOnClick) {\n e.preventDefault();\n }\n\n onSelect?.(value);\n }, [value, onSelect, preventDefaultOnClick]);\n\n const variant = size === BREADCRUMB_SIZES.small\n ? 'caption12'\n : 'body14';\n\n return (\n <BreadcrumbComponent\n ref={ref}\n {...otherProps}\n className={classnames(typography({ variant }), root)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n {text}\n </BreadcrumbComponent>\n );\n},\n);\n\ntype ExportProps<T extends ElementType> =\n & { as?: T; ref?: Ref<T>; }\n & Omit<Props, keyof ComponentPropsWithoutRef<T> | 'as'
|
|
1
|
+
{"version":3,"file":"Breadcrumbs/Breadcrumb/Breadcrumb.js","sources":["../../../src/Breadcrumbs/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { typography } from '@finam/web-ui-kit-core/styles/typography';\nimport { type ElementType, forwardRef, HTMLAttributes, memo, useCallback, type KeyboardEvent, type MouseEvent, Ref, ComponentPropsWithoutRef, MemoExoticComponent } from 'react';\nimport classnames from 'clsx';\nimport { root } from './Breadcrumb.styles.js';\nimport type { BreadcrumbItem } from './types.js';\nimport { KeyboardEventKey } from '../../types.js';\nimport { BREADCRUMB_SIZES } from '../constants.js';\n\nexport interface Props extends BreadcrumbItem, Omit<HTMLAttributes<HTMLLIElement>, 'onSelect'> {\n as?: ElementType;\n}\n\nconst Breadcrumb = forwardRef<HTMLLIElement, Props>(({\n value,\n size = BREADCRUMB_SIZES.regular,\n onSelect,\n text,\n as: BreadcrumbComponent = 'li',\n preventDefaultOnClick = BreadcrumbComponent === 'li',\n className,\n ...otherProps\n}, ref) => {\n const handleKeyDown = useCallback((e: KeyboardEvent<HTMLElement>) => {\n if (e.key === KeyboardEventKey.ENTER || e.key === KeyboardEventKey.SPACE) {\n onSelect?.(value);\n }\n }, [value, onSelect]);\n\n const handleClick = useCallback((e: MouseEvent<HTMLElement>) => {\n if (preventDefaultOnClick) {\n e.preventDefault();\n }\n\n onSelect?.(value);\n }, [value, onSelect, preventDefaultOnClick]);\n\n const variant = size === BREADCRUMB_SIZES.small\n ? 'caption12'\n : 'body14';\n\n return (\n <BreadcrumbComponent\n ref={ref}\n {...otherProps}\n className={classnames(typography({ variant }), root)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n {text}\n </BreadcrumbComponent>\n );\n},\n);\n\ntype ExportProps<T extends ElementType> =\n & { as?: T; ref?: Ref<T>; }\n & Omit<Props, keyof ComponentPropsWithoutRef<T> | 'as'> // NOSONAR: 'as' is needed when T has no 'as' prop\n & Omit<ComponentPropsWithoutRef<T>, 'as'>;\n\n// Assertion preserves generic polymorphic signature after memo()\nconst MemoizedBreadcrumb = memo(Breadcrumb) as (<T extends ElementType = 'li'>( // NOSONAR\n props: ExportProps<T>\n) => JSX.Element) & MemoExoticComponent<typeof Breadcrumb>;\n\nMemoizedBreadcrumb.displayName = 'Breadcrumb';\n\nexport default MemoizedBreadcrumb;\n"],"names":["Breadcrumb","forwardRef","value","size","BREADCRUMB_SIZES","onSelect","text","BreadcrumbComponent","preventDefaultOnClick","className","otherProps","ref","handleKeyDown","useCallback","e","KeyboardEventKey","handleClick","variant","classnames","typography","root","MemoizedBreadcrumb","memo"],"mappings":";;;;;;;;;;AAYA,MAAMA,aAAa,WAAHA,GAAGC,WAAiC,CAAC,IAAD;;;;iCAAC,EACnDC,KAAK,EACLC,OAAOC,iBAAiB,OAAO,EAC/BC,QAAQ,EACRC,IAAI,EACJ,IAAIC,sBAAsB,IAAI,EAC9BC,wBAAwBD,AAAwB,SAAxBA,mBAA4B,EACpDE,SAAS,EAEV,UADIC,aAAAA,6BAAAA,OAAAA;;;;;;;;SACFC,IAAAA,GAAAA;IACD,MAAMC,gBAAgBC,YAAY,CAACC;QACjC,IAAIA,EAAE,GAAG,KAAKC,iBAAiB,KAAK,IAAID,EAAE,GAAG,KAAKC,iBAAiB,KAAK,EACtEV,QAAAA,YAAAA,SAAWH;IAEf,GAAG;QAACA;QAAOG;KAAS;IAEpB,MAAMW,cAAcH,YAAY,CAACC;QAC/B,IAAIN,uBACFM,EAAE,cAAc;QAGlBT,QAAAA,YAAAA,SAAWH;IACb,GAAG;QAACA;QAAOG;QAAUG;KAAsB;IAE3C,MAAMS,UAAUd,SAASC,iBAAiB,KAAK,GAC3C,cACA;IAEJ,OAAO,WAAP,GACE,IAACG,qBAAAA,uBAAAA,EAAAA;QACC,KAAKI;OACDD,aAAAA;QACJ,WAAWQ,KAAWC,WAAW;YAAEF;QAAQ,IAAIG;QAC/C,SAASJ;QACT,WAAWJ;QACX,UAAU;kBAETN;;AAGP;AASA,MAAMe,qBAAqB,WAAHA,GAAGC,KAAKtB;AAIhCqB,mBAAmB,WAAW,GAAG;AAEjC,8BAAeA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRenderOnPageItems.d.ts","sourceRoot":"","sources":["../../../src/Breadcrumbs/utils/getRenderOnPageItems.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,uBAAuB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAClE;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,mJAWlC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"getRenderOnPageItems.d.ts","sourceRoot":"","sources":["../../../src/Breadcrumbs/utils/getRenderOnPageItems.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,uBAAuB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAClE;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,mJAWlC,0BAA0B,8CAqG5B,CAAC"}
|
|
@@ -9,12 +9,13 @@ const getRenderOnPageItems = ({ count, shouldShowOverflow, processedItems, hasMe
|
|
|
9
9
|
if (0 === count) return [];
|
|
10
10
|
if (!shouldShowOverflow) return processedItems.map((item, i)=>/*#__PURE__*/ jsx(Breadcrumb, _({
|
|
11
11
|
"aria-current": i === count - 1,
|
|
12
|
-
"data-breadcrumb-item":
|
|
12
|
+
"data-breadcrumb-item": hasMeasured ? void 0 : true
|
|
13
13
|
}, item), `${item.text}-${item.value}`));
|
|
14
14
|
const segments = [];
|
|
15
|
+
const measureAttr = hasMeasured ? void 0 : true;
|
|
15
16
|
if (processedItems[0]) segments.push(/*#__PURE__*/ jsx(Breadcrumb, _({
|
|
16
17
|
"aria-current": false,
|
|
17
|
-
"data-breadcrumb-item":
|
|
18
|
+
"data-breadcrumb-item": measureAttr
|
|
18
19
|
}, processedItems[0]), `${processedItems[0].text}-${processedItems[0].value}`));
|
|
19
20
|
segments.push(/*#__PURE__*/ jsx(HiddenItemsButton, {
|
|
20
21
|
size: null != (_ref = null == (_processedItems_ = processedItems[0]) ? void 0 : _processedItems_.size) ? _ref : BREADCRUMB_SIZES.regular,
|
|
@@ -27,28 +28,26 @@ const getRenderOnPageItems = ({ count, shouldShowOverflow, processedItems, hasMe
|
|
|
27
28
|
if (hasMeasured) if (count >= MAX_VISIBLE_ITEMS_COUNT) {
|
|
28
29
|
const penultimateIndex = count - FIXED_ITEMS_COUNT;
|
|
29
30
|
if (processedItems[penultimateIndex]) segments.push(/*#__PURE__*/ jsx(Breadcrumb, _({
|
|
30
|
-
"aria-current": false
|
|
31
|
-
"data-breadcrumb-item": !hasMeasured
|
|
31
|
+
"aria-current": false
|
|
32
32
|
}, processedItems[penultimateIndex]), `${processedItems[penultimateIndex].text}-${processedItems[penultimateIndex].value}`));
|
|
33
33
|
} else {
|
|
34
34
|
const middleItemsToShow = Math.max(0, visibleItemsCount - FIXED_ITEMS_COUNT);
|
|
35
35
|
const startIndexOfMiddle = count - 1 - middleItemsToShow;
|
|
36
36
|
for(let i = startIndexOfMiddle; i < count - 1; i++)if (processedItems[i]) segments.push(/*#__PURE__*/ jsx(Breadcrumb, _({
|
|
37
|
-
"aria-current": false
|
|
38
|
-
"data-breadcrumb-item": !hasMeasured
|
|
37
|
+
"aria-current": false
|
|
39
38
|
}, processedItems[i]), `${processedItems[i].text}-${processedItems[i].value}`));
|
|
40
39
|
}
|
|
41
40
|
else if (count >= MAX_VISIBLE_ITEMS_COUNT) {
|
|
42
41
|
const penultimateIndex = count - 2;
|
|
43
42
|
if (processedItems[penultimateIndex]) segments.push(/*#__PURE__*/ jsx(Breadcrumb, _({
|
|
44
43
|
"aria-current": false,
|
|
45
|
-
"data-breadcrumb-item":
|
|
44
|
+
"data-breadcrumb-item": true
|
|
46
45
|
}, processedItems[penultimateIndex]), `${processedItems[penultimateIndex].text}-${processedItems[penultimateIndex].value}`));
|
|
47
46
|
}
|
|
48
47
|
const lastIndex = count - 1;
|
|
49
48
|
if (processedItems[lastIndex]) segments.push(/*#__PURE__*/ jsx(Breadcrumb, _({
|
|
50
49
|
"aria-current": true,
|
|
51
|
-
"data-breadcrumb-item":
|
|
50
|
+
"data-breadcrumb-item": measureAttr
|
|
52
51
|
}, processedItems[lastIndex]), `${processedItems[lastIndex].text}-${processedItems[lastIndex].value}`));
|
|
53
52
|
return segments;
|
|
54
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs/utils/getRenderOnPageItems.js","sources":["../../../src/Breadcrumbs/utils/getRenderOnPageItems.tsx"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\nimport type { BreadcrumbItem } from '../Breadcrumb/types.js';\nimport { ICON_BUTTON_KEY, MAX_VISIBLE_ITEMS_COUNT, FIXED_ITEMS_COUNT, BREADCRUMB_SIZES } from '../constants.js';\nimport HiddenItemsButton from '../HiddenItemsButton/index.js';\nimport Breadcrumb from '../Breadcrumb/Breadcrumb.js';\n\ninterface GetRenderOnPageItemsParams {\n count: number;\n shouldShowOverflow: boolean;\n processedItems: BreadcrumbItem[];\n hasMeasured: boolean;\n visibleItemsCount: number;\n menuItems: JSX.Element;\n open: boolean;\n handleOpen: (e: MouseEvent<HTMLElement>) => void;\n handleClose: () => void;\n handleIconButtonKeyDown: (e: KeyboardEvent<HTMLElement>) => void;\n}\n\n/**\n * Возвращает хлебные крошки\n */\nexport const getRenderOnPageItems = ({\n count,\n shouldShowOverflow,\n processedItems,\n hasMeasured,\n visibleItemsCount,\n menuItems,\n open,\n handleOpen,\n handleClose,\n handleIconButtonKeyDown,\n}: GetRenderOnPageItemsParams) => {\n if (count === 0) {\n return [];\n }\n\n if (!shouldShowOverflow) {\n return processedItems.map((item, i) => (\n <Breadcrumb\n key={`${item.text}-${item.value}`}\n aria-current={i === count - 1}\n data-breadcrumb-item={
|
|
1
|
+
{"version":3,"file":"Breadcrumbs/utils/getRenderOnPageItems.js","sources":["../../../src/Breadcrumbs/utils/getRenderOnPageItems.tsx"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\nimport type { BreadcrumbItem } from '../Breadcrumb/types.js';\nimport { ICON_BUTTON_KEY, MAX_VISIBLE_ITEMS_COUNT, FIXED_ITEMS_COUNT, BREADCRUMB_SIZES } from '../constants.js';\nimport HiddenItemsButton from '../HiddenItemsButton/index.js';\nimport Breadcrumb from '../Breadcrumb/Breadcrumb.js';\n\ninterface GetRenderOnPageItemsParams {\n count: number;\n shouldShowOverflow: boolean;\n processedItems: BreadcrumbItem[];\n hasMeasured: boolean;\n visibleItemsCount: number;\n menuItems: JSX.Element;\n open: boolean;\n handleOpen: (e: MouseEvent<HTMLElement>) => void;\n handleClose: () => void;\n handleIconButtonKeyDown: (e: KeyboardEvent<HTMLElement>) => void;\n}\n\n/**\n * Возвращает хлебные крошки\n */\nexport const getRenderOnPageItems = ({\n count,\n shouldShowOverflow,\n processedItems,\n hasMeasured,\n visibleItemsCount,\n menuItems,\n open,\n handleOpen,\n handleClose,\n handleIconButtonKeyDown,\n}: GetRenderOnPageItemsParams) => {\n if (count === 0) {\n return [];\n }\n\n if (!shouldShowOverflow) {\n return processedItems.map((item, i) => (\n <Breadcrumb\n key={`${item.text}-${item.value}`}\n aria-current={i === count - 1}\n data-breadcrumb-item={hasMeasured ? undefined : true}\n {...item}\n />\n ));\n }\n\n const segments = [];\n const measureAttr = hasMeasured ? undefined : true;\n\n // Добавляем первый элемент\n if (processedItems[0]) {\n segments.push(\n <Breadcrumb\n key={`${processedItems[0].text}-${processedItems[0].value}`}\n aria-current={false}\n data-breadcrumb-item={measureAttr}\n {...processedItems[0]}\n />,\n );\n }\n\n // Добавляем IconButton\n segments.push(\n <HiddenItemsButton\n key={ICON_BUTTON_KEY}\n size={processedItems[0]?.size ?? BREADCRUMB_SIZES.regular}\n menuItems={menuItems}\n open={open}\n onMouseEnter={handleOpen}\n onMouseLeave={handleClose}\n onKeyDown={handleIconButtonKeyDown}\n />,\n );\n\n // Логика для средних элементов\n if (!hasMeasured) {\n if (count >= MAX_VISIBLE_ITEMS_COUNT) {\n const penultimateIndex = count - 2;\n if (processedItems[penultimateIndex]) {\n segments.push(\n <Breadcrumb\n key={`${processedItems[penultimateIndex].text}-${processedItems[penultimateIndex].value}`}\n aria-current={false}\n data-breadcrumb-item={true}\n {...processedItems[penultimateIndex]}\n />,\n );\n }\n }\n } else if (count >= MAX_VISIBLE_ITEMS_COUNT) {\n const penultimateIndex = count - FIXED_ITEMS_COUNT;\n if (processedItems[penultimateIndex]) {\n segments.push(\n <Breadcrumb\n key={`${processedItems[penultimateIndex].text}-${processedItems[penultimateIndex].value}`}\n aria-current={false}\n {...processedItems[penultimateIndex]}\n />,\n );\n }\n } else {\n const middleItemsToShow = Math.max(0, visibleItemsCount - FIXED_ITEMS_COUNT);\n const startIndexOfMiddle = count - 1 - middleItemsToShow;\n\n for (let i = startIndexOfMiddle; i < count - 1; i++) {\n if (processedItems[i]) {\n segments.push(\n <Breadcrumb\n key={`${processedItems[i].text}-${processedItems[i].value}`}\n aria-current={false}\n {...processedItems[i]}\n />,\n );\n }\n }\n }\n\n // Добавляем последний элемент\n const lastIndex = count - 1;\n if (processedItems[lastIndex]) {\n segments.push(\n <Breadcrumb\n key={`${processedItems[lastIndex].text}-${processedItems[lastIndex].value}`}\n aria-current={true}\n data-breadcrumb-item={measureAttr}\n {...processedItems[lastIndex]}\n />,\n );\n }\n\n return segments;\n};\n"],"names":["getRenderOnPageItems","count","shouldShowOverflow","processedItems","hasMeasured","visibleItemsCount","menuItems","open","handleOpen","handleClose","handleIconButtonKeyDown","_processedItems_","item","i","Breadcrumb","undefined","segments","measureAttr","HiddenItemsButton","BREADCRUMB_SIZES","ICON_BUTTON_KEY","MAX_VISIBLE_ITEMS_COUNT","penultimateIndex","FIXED_ITEMS_COUNT","middleItemsToShow","Math","startIndexOfMiddle","lastIndex"],"mappings":";;;;;AAsBO,MAAMA,uBAAuB,CAAC,EACnCC,KAAK,EACLC,kBAAkB,EAClBC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,SAAS,EACTC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,uBAAuB,EACI;;QAmCjBC;IAlCV,IAAIV,AAAU,MAAVA,OACF,OAAO,EAAE;IAGX,IAAI,CAACC,oBACH,OAAOC,eAAe,GAAG,CAAC,CAACS,MAAMC,IAAAA,WAAAA,GAC/B,IAACC,YAAUA,EAAAA;YAET,gBAAcD,MAAMZ,QAAQ;YAC5B,wBAAsBG,cAAcW,SAAY;WAC5CH,OAHC,GAAGA,KAAK,IAAI,CAAC,CAAC,EAAEA,KAAK,KAAK,EAAE;IAQvC,MAAMI,WAAW,EAAE;IACnB,MAAMC,cAAcb,cAAcW,SAAY;IAG9C,IAAIZ,cAAc,CAAC,EAAE,EACnBa,SAAS,IAAI,CAAC,WAAD,GACX,IAACF,YAAUA,EAAAA;QAET,gBAAc;QACd,wBAAsBG;OAClBd,cAAc,CAAC,EAAE,GAHhB,GAAGA,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAEA,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;IASjEa,SAAS,IAAI,CAAC,WAAD,GACX,IAACE,mBAAiBA;QAEhB,MAAI,wBAAEP,CAAAA,mBAAAA,cAAc,CAAC,EAAE,AAAD,IAAhBA,KAAAA,IAAAA,iBAAmB,IAAI,AAAD,IAAC,OAAIQ,iBAAiB,OAAO;QACzD,WAAWb;QACX,MAAMC;QACN,cAAcC;QACd,cAAcC;QACd,WAAWC;OANNU;IAWT,IAAKhB,aAcE,IAAIH,SAASoB,yBAAyB;QAC3C,MAAMC,mBAAmBrB,QAAQsB;QACjC,IAAIpB,cAAc,CAACmB,iBAAiB,EAClCN,SAAS,IAAI,CAAC,WAAD,GACX,IAACF,YAAUA,EAAAA;YAET,gBAAc;WACVX,cAAc,CAACmB,iBAAiB,GAF/B,GAAGnB,cAAc,CAACmB,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAEnB,cAAc,CAACmB,iBAAiB,CAAC,KAAK,EAAE;IAMjG,OAAO;QACL,MAAME,oBAAoBC,KAAK,GAAG,CAAC,GAAGpB,oBAAoBkB;QAC1D,MAAMG,qBAAqBzB,QAAQ,IAAIuB;QAEvC,IAAK,IAAIX,IAAIa,oBAAoBb,IAAIZ,QAAQ,GAAGY,IAC9C,IAAIV,cAAc,CAACU,EAAE,EACnBG,SAAS,IAAI,CAAC,WAAD,GACX,IAACF,YAAUA,EAAAA;YAET,gBAAc;WACVX,cAAc,CAACU,EAAE,GAFhB,GAAGV,cAAc,CAACU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAEV,cAAc,CAACU,EAAE,CAAC,KAAK,EAAE;IAOrE;SAvCE,IAAIZ,SAASoB,yBAAyB;QACpC,MAAMC,mBAAmBrB,QAAQ;QACjC,IAAIE,cAAc,CAACmB,iBAAiB,EAClCN,SAAS,IAAI,CAAC,WAAD,GACX,IAACF,YAAUA,EAAAA;YAET,gBAAc;YACd,wBAAsB;WAClBX,cAAc,CAACmB,iBAAiB,GAH/B,GAAGnB,cAAc,CAACmB,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAEnB,cAAc,CAACmB,iBAAiB,CAAC,KAAK,EAAE;IAOjG;IA8BF,MAAMK,YAAY1B,QAAQ;IAC1B,IAAIE,cAAc,CAACwB,UAAU,EAC3BX,SAAS,IAAI,CAAC,WAAD,GACX,IAACF,YAAUA,EAAAA;QAET,gBAAc;QACd,wBAAsBG;OAClBd,cAAc,CAACwB,UAAU,GAHxB,GAAGxB,cAAc,CAACwB,UAAU,CAAC,IAAI,CAAC,CAAC,EAAExB,cAAc,CAACwB,UAAU,CAAC,KAAK,EAAE;IAQjF,OAAOX;AACT"}
|
|
@@ -89,7 +89,7 @@ const Calendar = (_0)=>{
|
|
|
89
89
|
getMaxEnabledMonth,
|
|
90
90
|
state.currentMonth
|
|
91
91
|
]);
|
|
92
|
-
const shouldDisableDate = useCallback((day)=>validateMinMaxDate(day) || Boolean(shouldDisableDateProp
|
|
92
|
+
const shouldDisableDate = useCallback((day)=>validateMinMaxDate(day) || Boolean(null == shouldDisableDateProp ? void 0 : shouldDisableDateProp(day)), [
|
|
93
93
|
validateMinMaxDate,
|
|
94
94
|
shouldDisableDateProp
|
|
95
95
|
]);
|
|
@@ -247,36 +247,43 @@ const Calendar = (_0)=>{
|
|
|
247
247
|
children: [
|
|
248
248
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
249
249
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
250
|
+
as: "div",
|
|
250
251
|
children: formatWeekdayShort(WeekDates.mon, locale)
|
|
251
252
|
})
|
|
252
253
|
}),
|
|
253
254
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
254
255
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
256
|
+
as: "div",
|
|
255
257
|
children: formatWeekdayShort(WeekDates.tue, locale)
|
|
256
258
|
})
|
|
257
259
|
}),
|
|
258
260
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
259
261
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
262
|
+
as: "div",
|
|
260
263
|
children: formatWeekdayShort(WeekDates.wed, locale)
|
|
261
264
|
})
|
|
262
265
|
}),
|
|
263
266
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
264
267
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
268
|
+
as: "div",
|
|
265
269
|
children: formatWeekdayShort(WeekDates.thu, locale)
|
|
266
270
|
})
|
|
267
271
|
}),
|
|
268
272
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
269
273
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
274
|
+
as: "div",
|
|
270
275
|
children: formatWeekdayShort(WeekDates.fri, locale)
|
|
271
276
|
})
|
|
272
277
|
}),
|
|
273
278
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
274
279
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
280
|
+
as: "div",
|
|
275
281
|
children: formatWeekdayShort(WeekDates.sat, locale)
|
|
276
282
|
})
|
|
277
283
|
}),
|
|
278
284
|
/*#__PURE__*/ jsx(WeekDayWrap, {
|
|
279
285
|
children: /*#__PURE__*/ jsx(WeekDay, {
|
|
286
|
+
as: "div",
|
|
280
287
|
children: formatWeekdayShort(WeekDates.sun, locale)
|
|
281
288
|
})
|
|
282
289
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar/Calendar.js","sources":["../../src/Calendar/Calendar.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, HTMLAttributes, ReactElement, ReactNode } from 'react';\nimport type { IconButtonProps } from '../IconButton/index.js';\nimport CalendarHeader from './CalendarHeader/index.js';\nimport Day from './Day/index.js';\nimport {\n Root,\n WeeksTable,\n WeekRow,\n DayWrapper,\n WeekDay,\n SlideTransition,\n WeekDayWrap,\n} from './Calendar.styles.js';\nimport { useCalendarFormatUtils, CalendarUtilsProps } from './useCalendarFormatUtils.js';\nimport {\n WeekDates,\n startOfMonth,\n getWeeksArray,\n isSameDay,\n getDate,\n addDays,\n getDateObj,\n getDateTime,\n} from './utils.js';\nimport { CalendarState, CalendarType } from './types.js';\nimport SelectMonthTable from './SelectMonthTable/index.js';\nimport SelectYearTable from './SelectYearTable/index.js';\n\nexport interface Props extends Partial<CalendarUtilsProps>, Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Значение выбранной даты */\n date?: Date | number;\n /** Колбэк, вызываемый при выборе даты в календаре */\n onChange?: (date: Date) => void;\n /** Минимальная дата, начиная с которой включительно можно выбрать дату в календаре */\n minDate?: Date | number;\n /** Максимальная дата, до которой включительно можно сделать выбор */\n maxDate?: Date | number;\n /** Функция возвращающая кастомный компонент дня в календаре */\n renderDay?: (\n day: Date,\n dayInCurrentMonth: boolean,\n dayComponent: ReactElement<any>,\n selectedDate?: Date | number,\n ) => ReactElement<any>;\n /** Функция для отключения некоторых дат (условие прописываем в функции) */\n shouldDisableDate?: (day: Date) => boolean;\n /** Запретить выбор прошлых дат, не включая сегодняшней */\n disablePast?: boolean;\n /** Запретить выбор будущих дат, не включая сегодняшней */\n disableFuture?: boolean;\n /** Кастомная иконка перелистывания влево (включая таблицу выбора месяца и года) */\n leftArrowIcon?: ReactNode;\n /** Кастомная иконка перелистывания вправо (включая таблицу выбора месяца и года) */\n rightArrowIcon?: ReactNode;\n /** Пропсы для кнопки перелистывания влево (включая таблицу выбора месяца и года) */\n leftArrowButtonProps?: Partial<IconButtonProps>;\n /** Пропсы для кнопки перелистывания вправо (включая таблицу выбора месяца и года) */\n rightArrowButtonProps?: Partial<IconButtonProps>;\n}\n\nconst isValidPropDate = (value: unknown): value is number | Date => {\n if (\n value == null ||\n typeof value !== 'number' &&\n !(value instanceof Date)\n ) {\n return false;\n }\n\n const date = new Date(value);\n return !Number.isNaN(date.getTime());\n};\n\nconst defaultMinDate = new Date('1900-01-01');\nconst defaultMaxDate = new Date('2100-01-01');\n\nconst Calendar = ({\n date,\n onChange,\n leftArrowButtonProps,\n leftArrowIcon,\n rightArrowButtonProps,\n rightArrowIcon,\n shouldDisableDate: shouldDisableDateProp,\n disableFuture = false,\n disablePast = false,\n minDate = defaultMinDate,\n maxDate = defaultMaxDate,\n renderDay,\n ...props\n}: Props) => {\n const { locale, formatMonthLong, formatWeekdayShort } = { ...useCalendarFormatUtils(), ...props };\n const [calendarType, setCalendarType] = useState<CalendarType>(CalendarType.DAYS);\n const [isSlideAnimationDisabled, setIsSlideAnimationDisabled] = useState(false);\n const [state, setState] = useState<CalendarState>({\n slideDirection: 'left',\n currentMonth: startOfMonth(isValidPropDate(date) ? date : getDate()),\n });\n const [lastDate, setLastDate] = useState<Date>();\n\n const parsedDate = useMemo(() => {\n if (!isValidPropDate(date)) {\n return undefined;\n }\n return typeof date === 'number' ? new Date(date) : date;\n }, [date]);\n\n if (parsedDate && (!lastDate || parsedDate.getTime() !== lastDate.getTime())) {\n const nextMonth = parsedDate.getMonth();\n const dateLast = lastDate || parsedDate;\n const lastMonth = dateLast.getMonth();\n\n setLastDate(parsedDate);\n setState(prevState => ({\n slideDirection: (nextMonth === lastMonth || isSlideAnimationDisabled)\n ? prevState.slideDirection\n : parsedDate.getTime() > dateLast.getTime()\n ? 'left'\n : 'right',\n currentMonth: startOfMonth(parsedDate),\n }));\n setIsSlideAnimationDisabled(false);\n }\n\n const validateMinMaxDate = useCallback((day: Date) => {\n const today = getDate();\n return Boolean(\n disableFuture && day.getTime() >= addDays(today, 1).getTime() ||\n disablePast && day.getTime() < today.getTime() ||\n minDate && day.getTime() < getDate(minDate).getTime() ||\n maxDate && day.getTime() >= addDays(getDate(maxDate), 1).getTime(),\n );\n }, [disableFuture, disablePast, minDate, maxDate]);\n\n const getMinEnabledMonth = useCallback(() => {\n const today = getDate();\n return startOfMonth(\n disablePast && today.getTime() >= getDateTime(minDate) ? today : minDate,\n );\n }, [disablePast, minDate]);\n\n const getMaxEnabledMonth = useCallback(() => {\n const today = getDate();\n return startOfMonth(\n disableFuture && addDays(today, 1).getTime() < getDateTime(maxDate) ? today : maxDate,\n );\n }, [disableFuture, maxDate]);\n\n const disablePrevMonth = useMemo(() => (\n getMinEnabledMonth().getTime() >= state.currentMonth.getTime()\n ), [getMinEnabledMonth, state.currentMonth]);\n\n const disableNextMonth = useMemo(() => (\n getMaxEnabledMonth().getTime() <= state.currentMonth.getTime()\n ), [getMaxEnabledMonth, state.currentMonth]);\n\n const shouldDisableDate = useCallback((day: Date) => (\n validateMinMaxDate(day) || Boolean(shouldDisableDateProp && shouldDisableDateProp(day))\n ), [validateMinMaxDate, shouldDisableDateProp]);\n\n const handleNextMonth = useCallback(() => {\n setState(({ currentMonth }) => ({\n currentMonth: new Date(\n new Date(currentMonth).setMonth(currentMonth.getMonth() + 1),\n ),\n slideDirection: 'left',\n }));\n }, []);\n\n const handlePrevMonth = useCallback(() => {\n setState(({ currentMonth }) => ({\n currentMonth: new Date(\n new Date(currentMonth).setMonth(currentMonth.getMonth() - 1),\n ),\n slideDirection: 'right',\n }));\n }, []);\n\n const handleChangeMonth = useCallback((month: number) => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setMonth(month),\n ),\n }));\n setIsSlideAnimationDisabled(true);\n setCalendarType(CalendarType.DAYS);\n }, []);\n\n const handleChangeYear = useCallback((year: number) => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setFullYear(year),\n ),\n }));\n setCalendarType(CalendarType.DAYS);\n }, []);\n\n const handleYearChange = useCallback((year: number) => {\n const minEnabledMonth = getMinEnabledMonth();\n const maxEnabledMonth = getMaxEnabledMonth();\n\n setState(({ currentMonth }) => {\n const nextCurrentMonth = new Date(currentMonth);\n nextCurrentMonth.setFullYear(year);\n if (minEnabledMonth.getTime() > nextCurrentMonth.getTime()) {\n nextCurrentMonth.setMonth(minEnabledMonth.getMonth());\n }\n if (maxEnabledMonth.getTime() < nextCurrentMonth.getTime()) {\n nextCurrentMonth.setMonth(maxEnabledMonth.getMonth());\n }\n\n return {\n currentMonth: nextCurrentMonth,\n slideDirection: nextCurrentMonth.getTime() > currentMonth.getTime() ? 'left' : 'right',\n };\n });\n }, [getMinEnabledMonth, getMaxEnabledMonth]);\n\n const handleDaySelect = useCallback((day: Date) => {\n if (onChange) {\n onChange(day);\n }\n }, [onChange]);\n\n const handlePrevYear = () => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setFullYear(prevState.currentMonth.getFullYear() - 1),\n ),\n }));\n };\n\n const handleNextYear = () => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setFullYear(prevState.currentMonth.getFullYear() + 1),\n ),\n }));\n };\n\n const { currentMonth, slideDirection } = state;\n const weeks = useMemo(() => getWeeksArray(currentMonth), [currentMonth]);\n const minYear = getDateObj(minDate).getFullYear();\n const maxYear = getDateObj(maxDate).getFullYear();\n const minMonth = getDateObj(minDate).getMonth();\n const maxMonth = getDateObj(maxDate).getMonth();\n\n const weekRows = useMemo(() => {\n const currentDateTime = new Date();\n const selectedDate = isValidPropDate(date) ? date : undefined;\n const currentMonthNumber = currentMonth.getMonth();\n\n return weeks.map(week => (\n <WeekRow key={`week-${week[0]!.toDateString()}`}>\n {week.map((day) => {\n const disabled = shouldDisableDate(day);\n const isDayInCurrentMonth = day.getMonth() === currentMonthNumber;\n\n let dayComponent = (\n <Day\n current={isSameDay(day, currentDateTime)}\n hidden={!isDayInCurrentMonth}\n selected={selectedDate ? isSameDay(day, selectedDate) : false}\n disabled={disabled}\n >\n {day.getDate()}\n </Day>\n );\n\n if (renderDay) {\n dayComponent = renderDay(day, isDayInCurrentMonth, dayComponent, selectedDate);\n }\n\n return (\n <DayWrapper\n key={day.toDateString()}\n value={day}\n disabled={disabled}\n onSelect={handleDaySelect}\n >\n {dayComponent}\n </DayWrapper>\n );\n })}\n </WeekRow>\n ));\n }, [date, currentMonth, weeks, shouldDisableDate, renderDay, handleDaySelect]);\n\n if (calendarType === CalendarType.MONTHS) {\n return (\n <Root {...props}>\n <SelectMonthTable\n currentDate={currentMonth}\n onClickNextYear={handleNextYear}\n onClickPrevYear={handlePrevYear}\n handleChangeMonth={handleChangeMonth}\n minYear={minYear}\n maxYear={maxYear}\n minMonth={minMonth}\n maxMonth={maxMonth}\n disablePast={disablePast}\n disableFuture={disableFuture}\n leftArrowIcon={leftArrowIcon}\n leftArrowButtonProps={leftArrowButtonProps}\n rightArrowIcon={rightArrowIcon}\n rightArrowButtonProps={rightArrowButtonProps}\n locale={locale}\n />\n </Root>\n );\n }\n\n if (calendarType === CalendarType.YEARS) {\n return (\n <Root {...props}>\n <SelectYearTable\n currentDate={currentMonth}\n handleChangeYear={handleChangeYear}\n minYear={minYear}\n maxYear={maxYear}\n disablePast={disablePast}\n disableFuture={disableFuture}\n leftArrowIcon={leftArrowIcon}\n leftArrowButtonProps={leftArrowButtonProps}\n rightArrowIcon={rightArrowIcon}\n rightArrowButtonProps={rightArrowButtonProps}\n />\n </Root>\n );\n }\n\n return (\n <Root {...props}>\n <CalendarHeader\n currentMonth={currentMonth}\n monthLabel={formatMonthLong(currentMonth, locale)}\n disablePrevMonth={disablePrevMonth}\n disableNextMonth={disableNextMonth}\n onClickNextMonth={handleNextMonth}\n onClickPrevMonth={handlePrevMonth}\n minYear={minYear}\n maxYear={maxYear}\n onYearChange={handleYearChange}\n leftArrowIcon={leftArrowIcon}\n leftArrowButtonProps={leftArrowButtonProps}\n rightArrowIcon={rightArrowIcon}\n rightArrowButtonProps={rightArrowButtonProps}\n onCalendarTypeChange={setCalendarType}\n />\n <WeeksTable>\n <WeekRow>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.mon, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.tue, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.wed, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.thu, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.fri, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.sat, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay>{formatWeekdayShort(WeekDates.sun, locale)}</WeekDay>\n </WeekDayWrap>\n </WeekRow>\n <SlideTransition\n slideDirection={slideDirection}\n transKey={currentMonth.toDateString()}\n >\n {weekRows}\n </SlideTransition>\n </WeeksTable>\n </Root>\n );\n};\n\nexport default Calendar;\n"],"names":["isValidPropDate","value","Date","date","Number","defaultMinDate","defaultMaxDate","Calendar","onChange","leftArrowButtonProps","leftArrowIcon","rightArrowButtonProps","rightArrowIcon","shouldDisableDateProp","disableFuture","disablePast","minDate","maxDate","renderDay","props","locale","formatMonthLong","formatWeekdayShort","useCalendarFormatUtils","calendarType","setCalendarType","useState","CalendarType","isSlideAnimationDisabled","setIsSlideAnimationDisabled","state","setState","startOfMonth","getDate","lastDate","setLastDate","parsedDate","useMemo","nextMonth","dateLast","lastMonth","prevState","validateMinMaxDate","useCallback","day","today","Boolean","addDays","getMinEnabledMonth","getDateTime","getMaxEnabledMonth","disablePrevMonth","disableNextMonth","shouldDisableDate","handleNextMonth","currentMonth","handlePrevMonth","handleChangeMonth","month","handleChangeYear","year","handleYearChange","minEnabledMonth","maxEnabledMonth","nextCurrentMonth","handleDaySelect","handlePrevYear","handleNextYear","slideDirection","weeks","getWeeksArray","minYear","getDateObj","maxYear","minMonth","maxMonth","weekRows","currentDateTime","selectedDate","undefined","currentMonthNumber","week","WeekRow","disabled","isDayInCurrentMonth","dayComponent","Day","isSameDay","DayWrapper","Root","SelectMonthTable","SelectYearTable","CalendarHeader","WeeksTable","WeekDayWrap","WeekDay","WeekDates","SlideTransition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar/Calendar.js","sources":["../../src/Calendar/Calendar.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, HTMLAttributes, ReactElement, ReactNode } from 'react';\nimport type { IconButtonProps } from '../IconButton/index.js';\nimport CalendarHeader from './CalendarHeader/index.js';\nimport Day from './Day/index.js';\nimport {\n Root,\n WeeksTable,\n WeekRow,\n DayWrapper,\n WeekDay,\n SlideTransition,\n WeekDayWrap,\n} from './Calendar.styles.js';\nimport { useCalendarFormatUtils, CalendarUtilsProps } from './useCalendarFormatUtils.js';\nimport {\n WeekDates,\n startOfMonth,\n getWeeksArray,\n isSameDay,\n getDate,\n addDays,\n getDateObj,\n getDateTime,\n} from './utils.js';\nimport { CalendarState, CalendarType } from './types.js';\nimport SelectMonthTable from './SelectMonthTable/index.js';\nimport SelectYearTable from './SelectYearTable/index.js';\n\nexport interface Props extends Partial<CalendarUtilsProps>, Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Значение выбранной даты */\n date?: Date | number;\n /** Колбэк, вызываемый при выборе даты в календаре */\n onChange?: (date: Date) => void;\n /** Минимальная дата, начиная с которой включительно можно выбрать дату в календаре */\n minDate?: Date | number;\n /** Максимальная дата, до которой включительно можно сделать выбор */\n maxDate?: Date | number;\n /** Функция возвращающая кастомный компонент дня в календаре */\n renderDay?: (\n day: Date,\n dayInCurrentMonth: boolean,\n dayComponent: ReactElement<any>,\n selectedDate?: Date | number,\n ) => ReactElement<any>;\n /** Функция для отключения некоторых дат (условие прописываем в функции) */\n shouldDisableDate?: (day: Date) => boolean;\n /** Запретить выбор прошлых дат, не включая сегодняшней */\n disablePast?: boolean;\n /** Запретить выбор будущих дат, не включая сегодняшней */\n disableFuture?: boolean;\n /** Кастомная иконка перелистывания влево (включая таблицу выбора месяца и года) */\n leftArrowIcon?: ReactNode;\n /** Кастомная иконка перелистывания вправо (включая таблицу выбора месяца и года) */\n rightArrowIcon?: ReactNode;\n /** Пропсы для кнопки перелистывания влево (включая таблицу выбора месяца и года) */\n leftArrowButtonProps?: Partial<IconButtonProps>;\n /** Пропсы для кнопки перелистывания вправо (включая таблицу выбора месяца и года) */\n rightArrowButtonProps?: Partial<IconButtonProps>;\n}\n\nconst isValidPropDate = (value: unknown): value is number | Date => {\n if (\n value == null ||\n typeof value !== 'number' &&\n !(value instanceof Date)\n ) {\n return false;\n }\n\n const date = new Date(value);\n return !Number.isNaN(date.getTime());\n};\n\nconst defaultMinDate = new Date('1900-01-01');\nconst defaultMaxDate = new Date('2100-01-01');\n\nconst Calendar = ({\n date,\n onChange,\n leftArrowButtonProps,\n leftArrowIcon,\n rightArrowButtonProps,\n rightArrowIcon,\n shouldDisableDate: shouldDisableDateProp,\n disableFuture = false,\n disablePast = false,\n minDate = defaultMinDate,\n maxDate = defaultMaxDate,\n renderDay,\n ...props\n}: Props) => {\n const { locale, formatMonthLong, formatWeekdayShort } = { ...useCalendarFormatUtils(), ...props };\n const [calendarType, setCalendarType] = useState<CalendarType>(CalendarType.DAYS);\n const [isSlideAnimationDisabled, setIsSlideAnimationDisabled] = useState(false);\n const [state, setState] = useState<CalendarState>({\n slideDirection: 'left',\n currentMonth: startOfMonth(isValidPropDate(date) ? date : getDate()),\n });\n const [lastDate, setLastDate] = useState<Date>();\n\n const parsedDate = useMemo(() => {\n if (!isValidPropDate(date)) {\n return undefined;\n }\n return typeof date === 'number' ? new Date(date) : date;\n }, [date]);\n\n if (parsedDate && (!lastDate || parsedDate.getTime() !== lastDate.getTime())) {\n const nextMonth = parsedDate.getMonth();\n const dateLast = lastDate || parsedDate;\n const lastMonth = dateLast.getMonth();\n\n setLastDate(parsedDate);\n setState(prevState => ({\n slideDirection: (nextMonth === lastMonth || isSlideAnimationDisabled)\n ? prevState.slideDirection\n : parsedDate.getTime() > dateLast.getTime()\n ? 'left'\n : 'right',\n currentMonth: startOfMonth(parsedDate),\n }));\n setIsSlideAnimationDisabled(false);\n }\n\n const validateMinMaxDate = useCallback((day: Date) => {\n const today = getDate();\n return Boolean(\n disableFuture && day.getTime() >= addDays(today, 1).getTime() ||\n disablePast && day.getTime() < today.getTime() ||\n minDate && day.getTime() < getDate(minDate).getTime() ||\n maxDate && day.getTime() >= addDays(getDate(maxDate), 1).getTime(),\n );\n }, [disableFuture, disablePast, minDate, maxDate]);\n\n const getMinEnabledMonth = useCallback(() => {\n const today = getDate();\n return startOfMonth(\n disablePast && today.getTime() >= getDateTime(minDate) ? today : minDate,\n );\n }, [disablePast, minDate]);\n\n const getMaxEnabledMonth = useCallback(() => {\n const today = getDate();\n return startOfMonth(\n disableFuture && addDays(today, 1).getTime() < getDateTime(maxDate) ? today : maxDate,\n );\n }, [disableFuture, maxDate]);\n\n const disablePrevMonth = useMemo(() => (\n getMinEnabledMonth().getTime() >= state.currentMonth.getTime()\n ), [getMinEnabledMonth, state.currentMonth]);\n\n const disableNextMonth = useMemo(() => (\n getMaxEnabledMonth().getTime() <= state.currentMonth.getTime()\n ), [getMaxEnabledMonth, state.currentMonth]);\n\n const shouldDisableDate = useCallback((day: Date) => (\n validateMinMaxDate(day) || Boolean(shouldDisableDateProp?.(day))\n ), [validateMinMaxDate, shouldDisableDateProp]);\n\n const handleNextMonth = useCallback(() => {\n setState(({ currentMonth }) => ({\n currentMonth: new Date(\n new Date(currentMonth).setMonth(currentMonth.getMonth() + 1),\n ),\n slideDirection: 'left',\n }));\n }, []);\n\n const handlePrevMonth = useCallback(() => {\n setState(({ currentMonth }) => ({\n currentMonth: new Date(\n new Date(currentMonth).setMonth(currentMonth.getMonth() - 1),\n ),\n slideDirection: 'right',\n }));\n }, []);\n\n const handleChangeMonth = useCallback((month: number) => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setMonth(month),\n ),\n }));\n setIsSlideAnimationDisabled(true);\n setCalendarType(CalendarType.DAYS);\n }, []);\n\n const handleChangeYear = useCallback((year: number) => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setFullYear(year),\n ),\n }));\n setCalendarType(CalendarType.DAYS);\n }, []);\n\n const handleYearChange = useCallback((year: number) => {\n const minEnabledMonth = getMinEnabledMonth();\n const maxEnabledMonth = getMaxEnabledMonth();\n\n setState(({ currentMonth }) => {\n const nextCurrentMonth = new Date(currentMonth);\n nextCurrentMonth.setFullYear(year);\n if (minEnabledMonth.getTime() > nextCurrentMonth.getTime()) {\n nextCurrentMonth.setMonth(minEnabledMonth.getMonth());\n }\n if (maxEnabledMonth.getTime() < nextCurrentMonth.getTime()) {\n nextCurrentMonth.setMonth(maxEnabledMonth.getMonth());\n }\n\n return {\n currentMonth: nextCurrentMonth,\n slideDirection: nextCurrentMonth.getTime() > currentMonth.getTime() ? 'left' : 'right',\n };\n });\n }, [getMinEnabledMonth, getMaxEnabledMonth]);\n\n const handleDaySelect = useCallback((day: Date) => {\n if (onChange) {\n onChange(day);\n }\n }, [onChange]);\n\n const handlePrevYear = () => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setFullYear(prevState.currentMonth.getFullYear() - 1),\n ),\n }));\n };\n\n const handleNextYear = () => {\n setState(prevState => ({\n ...prevState,\n currentMonth: new Date(\n new Date(prevState.currentMonth).setFullYear(prevState.currentMonth.getFullYear() + 1),\n ),\n }));\n };\n\n const { currentMonth, slideDirection } = state;\n const weeks = useMemo(() => getWeeksArray(currentMonth), [currentMonth]);\n const minYear = getDateObj(minDate).getFullYear();\n const maxYear = getDateObj(maxDate).getFullYear();\n const minMonth = getDateObj(minDate).getMonth();\n const maxMonth = getDateObj(maxDate).getMonth();\n\n const weekRows = useMemo(() => {\n const currentDateTime = new Date();\n const selectedDate = isValidPropDate(date) ? date : undefined;\n const currentMonthNumber = currentMonth.getMonth();\n\n return weeks.map(week => (\n <WeekRow key={`week-${week[0]!.toDateString()}`}>\n {week.map((day) => {\n const disabled = shouldDisableDate(day);\n const isDayInCurrentMonth = day.getMonth() === currentMonthNumber;\n\n let dayComponent = (\n <Day\n current={isSameDay(day, currentDateTime)}\n hidden={!isDayInCurrentMonth}\n selected={selectedDate ? isSameDay(day, selectedDate) : false}\n disabled={disabled}\n >\n {day.getDate()}\n </Day>\n );\n\n if (renderDay) {\n dayComponent = renderDay(day, isDayInCurrentMonth, dayComponent, selectedDate);\n }\n\n return (\n <DayWrapper\n key={day.toDateString()}\n value={day}\n disabled={disabled}\n onSelect={handleDaySelect}\n >\n {dayComponent}\n </DayWrapper>\n );\n })}\n </WeekRow>\n ));\n }, [date, currentMonth, weeks, shouldDisableDate, renderDay, handleDaySelect]);\n\n if (calendarType === CalendarType.MONTHS) {\n return (\n <Root {...props}>\n <SelectMonthTable\n currentDate={currentMonth}\n onClickNextYear={handleNextYear}\n onClickPrevYear={handlePrevYear}\n handleChangeMonth={handleChangeMonth}\n minYear={minYear}\n maxYear={maxYear}\n minMonth={minMonth}\n maxMonth={maxMonth}\n disablePast={disablePast}\n disableFuture={disableFuture}\n leftArrowIcon={leftArrowIcon}\n leftArrowButtonProps={leftArrowButtonProps}\n rightArrowIcon={rightArrowIcon}\n rightArrowButtonProps={rightArrowButtonProps}\n locale={locale}\n />\n </Root>\n );\n }\n\n if (calendarType === CalendarType.YEARS) {\n return (\n <Root {...props}>\n <SelectYearTable\n currentDate={currentMonth}\n handleChangeYear={handleChangeYear}\n minYear={minYear}\n maxYear={maxYear}\n disablePast={disablePast}\n disableFuture={disableFuture}\n leftArrowIcon={leftArrowIcon}\n leftArrowButtonProps={leftArrowButtonProps}\n rightArrowIcon={rightArrowIcon}\n rightArrowButtonProps={rightArrowButtonProps}\n />\n </Root>\n );\n }\n\n return (\n <Root {...props}>\n <CalendarHeader\n currentMonth={currentMonth}\n monthLabel={formatMonthLong(currentMonth, locale)}\n disablePrevMonth={disablePrevMonth}\n disableNextMonth={disableNextMonth}\n onClickNextMonth={handleNextMonth}\n onClickPrevMonth={handlePrevMonth}\n minYear={minYear}\n maxYear={maxYear}\n onYearChange={handleYearChange}\n leftArrowIcon={leftArrowIcon}\n leftArrowButtonProps={leftArrowButtonProps}\n rightArrowIcon={rightArrowIcon}\n rightArrowButtonProps={rightArrowButtonProps}\n onCalendarTypeChange={setCalendarType}\n />\n <WeeksTable>\n <WeekRow>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.mon, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.tue, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.wed, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.thu, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.fri, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.sat, locale)}</WeekDay>\n </WeekDayWrap>\n <WeekDayWrap>\n <WeekDay as=\"div\">{formatWeekdayShort(WeekDates.sun, locale)}</WeekDay>\n </WeekDayWrap>\n </WeekRow>\n <SlideTransition\n slideDirection={slideDirection}\n transKey={currentMonth.toDateString()}\n >\n {weekRows}\n </SlideTransition>\n </WeeksTable>\n </Root>\n );\n};\n\nexport default Calendar;\n"],"names":["isValidPropDate","value","Date","date","Number","defaultMinDate","defaultMaxDate","Calendar","onChange","leftArrowButtonProps","leftArrowIcon","rightArrowButtonProps","rightArrowIcon","shouldDisableDateProp","disableFuture","disablePast","minDate","maxDate","renderDay","props","locale","formatMonthLong","formatWeekdayShort","useCalendarFormatUtils","calendarType","setCalendarType","useState","CalendarType","isSlideAnimationDisabled","setIsSlideAnimationDisabled","state","setState","startOfMonth","getDate","lastDate","setLastDate","parsedDate","useMemo","nextMonth","dateLast","lastMonth","prevState","validateMinMaxDate","useCallback","day","today","Boolean","addDays","getMinEnabledMonth","getDateTime","getMaxEnabledMonth","disablePrevMonth","disableNextMonth","shouldDisableDate","handleNextMonth","currentMonth","handlePrevMonth","handleChangeMonth","month","handleChangeYear","year","handleYearChange","minEnabledMonth","maxEnabledMonth","nextCurrentMonth","handleDaySelect","handlePrevYear","handleNextYear","slideDirection","weeks","getWeeksArray","minYear","getDateObj","maxYear","minMonth","maxMonth","weekRows","currentDateTime","selectedDate","undefined","currentMonthNumber","week","WeekRow","disabled","isDayInCurrentMonth","dayComponent","Day","isSameDay","DayWrapper","Root","SelectMonthTable","SelectYearTable","CalendarHeader","WeeksTable","WeekDayWrap","WeekDay","WeekDates","SlideTransition"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
.ui_components_wwj83oo{display:flex;align-items:center;}.ui_components_wwj83oo+.ui_components_wwj83oo{margin-top:var(--ui-spacing-micro);}
|
|
4
4
|
.ui_components_cgil7p3:not(:first-child){margin-left:var(--ui-spacing-xs);}
|
|
5
5
|
.ui_components_w1fnayly:not(:first-child){margin-left:var(--ui-spacing-xs);}
|
|
6
|
-
.ui_components_w1ragcyw{width:var(--ui-spacing-xl);height:var(--ui-spacing-xl);display:flex;align-items:center;justify-content:center;font-family:var(--ui-fonts-main);font-size:11px;font-weight:600;text-transform:capitalize;color:var(--ui-colors-text-disabled);}
|
|
6
|
+
.ui_components_w1ragcyw{width:var(--ui-spacing-xl);height:var(--ui-spacing-xl);display:flex;align-items:center;justify-content:center;font-family:var(--ui-fonts-main);font-size:11px;font-weight:600;text-transform:capitalize;color:var(--ui-colors-text-disabled);padding:0;border:none;background-color:transparent;appearance:none;}.ui_components_w1ragcyw:disabled{opacity:1;}
|
|
7
7
|
.ui_components_c1fxelft{min-height:calc(var(--ui-spacing-micro) + var(--ui-spacing-xl));margin-top:4px;}
|
|
@@ -7,7 +7,7 @@ export declare const DayWrapper: {
|
|
|
7
7
|
readonly type: ({ children, value, disabled, onSelect, ...other }: import("./DayWrapper.js").Props) => import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
};
|
|
9
9
|
export declare const WeekDayWrap: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Record<never, unknown>>;
|
|
10
|
-
export declare const WeekDay: import("@linaria/react").StyledComponent<import("react").ClassAttributes<
|
|
10
|
+
export declare const WeekDay: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & Record<never, unknown>>;
|
|
11
11
|
export declare const SlideTransition: {
|
|
12
12
|
__wyw_meta: unknown;
|
|
13
13
|
} & (({ children, transKey, slideDirection, className, }: import("./SlideTransition/SlideTransition.js").Props) => import("react/jsx-runtime").JSX.Element);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../src/Calendar/Calendar.styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,IAAI,qKAQhB,CAAC;AAEF,eAAO,MAAM,UAAU,qKAAe,CAAC;AAEvC,eAAO,MAAM,OAAO,qKAOnB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;CAItB,CAAC;AAEF,eAAO,MAAM,WAAW,qKAIvB,CAAC;AAEF,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../src/Calendar/Calendar.styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,IAAI,qKAQhB,CAAC;AAEF,eAAO,MAAM,UAAU,qKAAe,CAAC;AAEvC,eAAO,MAAM,OAAO,qKAOnB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;CAItB,CAAC;AAEF,eAAO,MAAM,WAAW,qKAIvB,CAAC;AAEF,eAAO,MAAM,OAAO,iLAmBnB,CAAC;AAEF,eAAO,MAAM,eAAe;;2JAG3B,CAAC"}
|
|
@@ -27,7 +27,7 @@ const WeekDayWrap = /*#__PURE__*/styled('div')({
|
|
|
27
27
|
class: "ui_components_w1fnayly",
|
|
28
28
|
propsAsIs: false
|
|
29
29
|
});
|
|
30
|
-
const WeekDay = /*#__PURE__*/styled('
|
|
30
|
+
const WeekDay = /*#__PURE__*/styled('button')({
|
|
31
31
|
name: "WeekDay",
|
|
32
32
|
class: "ui_components_w1ragcyw",
|
|
33
33
|
propsAsIs: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar/Calendar.styles.js","sources":["../../src/Calendar/Calendar.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { tokens } from '@finam/web-ui-kit-core/theme/contract';\nimport SlideTransitionBase from './SlideTransition/index.js';\nimport DayWrapperBase from './DayWrapper.js';\n\nconst ROW_PADDING = 4;\n\nexport const Root = styled.div`\n width: 248px;\n min-height: 242px;\n box-sizing: border-box;\n border-radius: ${tokens.radius.l};\n background: ${tokens.colors.bg.base.elevated.default};\n padding: ${tokens.spacing.m};\n overflow-x: hidden;\n`;\n\nexport const WeeksTable = styled.div``;\n\nexport const WeekRow = styled.div`\n display: flex;\n align-items: center;\n\n & + & {\n margin-top: ${tokens.spacing.micro};\n }\n`;\n\nexport const DayWrapper = styled(DayWrapperBase)`\n &:not(:first-child) {\n margin-left: ${tokens.spacing.xs};\n }\n`;\n\nexport const WeekDayWrap = styled.div`\n &:not(:first-child) {\n margin-left: ${tokens.spacing.xs};\n }\n`;\n\nexport const WeekDay = styled.
|
|
1
|
+
{"version":3,"file":"Calendar/Calendar.styles.js","sources":["../../src/Calendar/Calendar.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { tokens } from '@finam/web-ui-kit-core/theme/contract';\nimport SlideTransitionBase from './SlideTransition/index.js';\nimport DayWrapperBase from './DayWrapper.js';\n\nconst ROW_PADDING = 4;\n\nexport const Root = styled.div`\n width: 248px;\n min-height: 242px;\n box-sizing: border-box;\n border-radius: ${tokens.radius.l};\n background: ${tokens.colors.bg.base.elevated.default};\n padding: ${tokens.spacing.m};\n overflow-x: hidden;\n`;\n\nexport const WeeksTable = styled.div``;\n\nexport const WeekRow = styled.div`\n display: flex;\n align-items: center;\n\n & + & {\n margin-top: ${tokens.spacing.micro};\n }\n`;\n\nexport const DayWrapper = styled(DayWrapperBase)`\n &:not(:first-child) {\n margin-left: ${tokens.spacing.xs};\n }\n`;\n\nexport const WeekDayWrap = styled.div`\n &:not(:first-child) {\n margin-left: ${tokens.spacing.xs};\n }\n`;\n\nexport const WeekDay = styled.button`\n width: ${tokens.spacing.xl};\n height: ${tokens.spacing.xl};\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ${tokens.fonts.main};\n font-size: 11px;\n font-weight: 600;\n text-transform: capitalize;\n color: ${tokens.colors.text.disabled.default.default};\n padding: 0;\n border: none;\n background-color: transparent;\n appearance: none;\n\n &:disabled {\n opacity: 1;\n }\n`;\n\nexport const SlideTransition = styled(SlideTransitionBase)`\n min-height: calc(${tokens.spacing.micro} + ${tokens.spacing.xl});\n margin-top: ${ROW_PADDING}px;\n`;\n"],"names":["ROW_PADDING","Root","styled","tokens","WeeksTable","WeekRow","DayWrapper","DayWrapperBase","WeekDayWrap","WeekDay","SlideTransition","SlideTransitionBase"],"mappings":";;;;AAKA,MAAMA,cAAc;AAEb,MAAMC,OAAOC,OAAO,GAAG,CAAC;;;;iBAId,EAAEC,OAAO,MAAM,CAAC,CAAC,CAAC;cACrB,EAAEA,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAA9BA,UAAsC,CAAC;WAC5C,EAAEA,OAAO,OAAO,CAAC,CAAC,CAAC;;AAE9B,CAAC;AAEM,MAAMC,aAAaF,OAAO,GAAG,CAAC,CAAC;AAE/B,MAAMG,UAAUH,OAAO,GAAG,CAAC;;;;;gBAKlB,EAAEC,OAAO,OAAO,CAAC,KAAK,CAAC;;AAEvC,CAAC;AAEM,MAAMG,6BAAaJ,OAAOK,WAAe,CAAC;;iBAEhC,EAAEJ,OAAO,OAAO,CAAC,EAAE,CAAC;;AAErC,CAAC;AAEM,MAAMK,cAAcN,OAAO,GAAG,CAAC;;iBAErB,EAAEC,OAAO,OAAO,CAAC,EAAE,CAAC;;AAErC,CAAC;AAEM,MAAMM,UAAUP,OAAO,MAAM,CAAC;SAC5B,EAAEC,OAAO,OAAO,CAAC,EAAE,CAAC;UACnB,EAAEA,OAAO,OAAO,CAAC,EAAE,CAAC;;;;eAIf,EAAEA,OAAO,KAAK,CAAC,IAAI,CAAC;;;;SAI1B,EAAEA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA3BA,UAAAA,CAAAA,UAA2C,CAAC;;;;;;;;;AASvD,CAAC;AAEM,MAAMO,kCAAkBR,OAAOS,gBAAoB,CAAC;mBACxC,EAAER,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,EAAEA,OAAO,OAAO,CAAC,EAAE,CAAC;cACnD,EAAEH,YAAY;AAC5B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
1
|
+
import type { MouseEventHandler, ReactNode } from 'react';
|
|
2
2
|
export interface Props {
|
|
3
3
|
className?: string;
|
|
4
4
|
children: ReactNode;
|
|
@@ -6,7 +6,8 @@ export interface Props {
|
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
hidden?: boolean;
|
|
8
8
|
selected?: boolean;
|
|
9
|
+
onClick?: MouseEventHandler<HTMLButtonElement>;
|
|
9
10
|
}
|
|
10
|
-
export declare const Day: ({ className, children, disabled, hidden, current, selected, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const Day: ({ className, children, disabled, hidden, current, selected, onClick, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
export default Day;
|
|
12
13
|
//# sourceMappingURL=Day.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Day.d.ts","sourceRoot":"","sources":["../../../src/Calendar/Day/Day.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Day.d.ts","sourceRoot":"","sources":["../../../src/Calendar/Day/Day.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAW1D,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,GAAG,GAAI,wEAQjB,KAAK,4CAmBP,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
package/dist/Calendar/Day/Day.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import clsx from "clsx";
|
|
3
3
|
import { WeekDay } from "../Calendar.styles.js";
|
|
4
4
|
import { currentClassName, disabledClassName, hiddenClassName, root, selectedClassName } from "./Day.styles.js";
|
|
5
|
-
const Day = ({ className, children, disabled = false, hidden = false, current = false, selected = false })=>{
|
|
5
|
+
const Day = ({ className, children, disabled = false, hidden = false, current = false, selected = false, onClick })=>{
|
|
6
6
|
const rootClassName = clsx(root, className, {
|
|
7
7
|
[hiddenClassName]: hidden,
|
|
8
8
|
[currentClassName]: current,
|
|
@@ -10,8 +10,11 @@ const Day = ({ className, children, disabled = false, hidden = false, current =
|
|
|
10
10
|
[disabledClassName]: disabled
|
|
11
11
|
});
|
|
12
12
|
return /*#__PURE__*/ jsx(WeekDay, {
|
|
13
|
+
type: "button",
|
|
13
14
|
className: rootClassName,
|
|
14
|
-
|
|
15
|
+
disabled: disabled,
|
|
16
|
+
tabIndex: hidden && !disabled ? -1 : void 0,
|
|
17
|
+
onClick: onClick,
|
|
15
18
|
children: children
|
|
16
19
|
});
|
|
17
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar/Day/Day.js","sources":["../../../src/Calendar/Day/Day.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport classnames from 'clsx';\nimport { WeekDay } from '../Calendar.styles.js';\nimport {\n root,\n hiddenClassName,\n currentClassName,\n selectedClassName,\n disabledClassName,\n} from './Day.styles.js';\n\nexport interface Props {\n className?: string;\n children: ReactNode;\n current?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n selected?: boolean;\n}\n\nexport const Day = ({\n className,\n children,\n disabled = false,\n hidden = false,\n current = false,\n selected = false,\n}: Props) => {\n const rootClassName = classnames(root, className, {\n [hiddenClassName]: hidden,\n [currentClassName]: current,\n [selectedClassName]: selected,\n [disabledClassName]: disabled,\n });\n\n return (\n <WeekDay\n className={rootClassName}\n tabIndex={hidden
|
|
1
|
+
{"version":3,"file":"Calendar/Day/Day.js","sources":["../../../src/Calendar/Day/Day.tsx"],"sourcesContent":["import type { MouseEventHandler, ReactNode } from 'react';\nimport classnames from 'clsx';\nimport { WeekDay } from '../Calendar.styles.js';\nimport {\n root,\n hiddenClassName,\n currentClassName,\n selectedClassName,\n disabledClassName,\n} from './Day.styles.js';\n\nexport interface Props {\n className?: string;\n children: ReactNode;\n current?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n selected?: boolean;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const Day = ({\n className,\n children,\n disabled = false,\n hidden = false,\n current = false,\n selected = false,\n onClick,\n}: Props) => {\n const rootClassName = classnames(root, className, {\n [hiddenClassName]: hidden,\n [currentClassName]: current,\n [selectedClassName]: selected,\n [disabledClassName]: disabled,\n });\n\n return (\n <WeekDay\n type=\"button\"\n className={rootClassName}\n disabled={disabled}\n tabIndex={hidden && !disabled ? -1 : undefined}\n onClick={onClick}\n >\n {children}\n </WeekDay>\n );\n};\n\nexport default Day;\n"],"names":["Day","className","children","disabled","hidden","current","selected","onClick","rootClassName","classnames","root","hiddenClassName","currentClassName","selectedClassName","disabledClassName","WeekDay","undefined"],"mappings":";;;;AAqBO,MAAMA,MAAM,CAAC,EAClBC,SAAS,EACTC,QAAQ,EACRC,WAAW,KAAK,EAChBC,SAAS,KAAK,EACdC,UAAU,KAAK,EACfC,WAAW,KAAK,EAChBC,OAAO,EACD;IACN,MAAMC,gBAAgBC,KAAWC,MAAMT,WAAW;QAChD,CAACU,gBAAgB,EAAEP;QACnB,CAACQ,iBAAiB,EAAEP;QACpB,CAACQ,kBAAkB,EAAEP;QACrB,CAACQ,kBAAkB,EAAEX;IACvB;IAEA,OAAO,WAAP,GACE,IAACY,SAAOA;QACN,MAAK;QACL,WAAWP;QACX,UAAUL;QACV,UAAUC,UAAU,CAACD,WAAW,KAAKa;QACrC,SAAST;kBAERL;;AAGP;AAEA,gBAAeF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
.ui_components_rk9y08f{border-radius:var(--ui-radius-s);color:var(--ui-colors-text-base);font-weight:500;}.ui_components_rk9y08f:hover{
|
|
1
|
+
.ui_components_rk9y08f{border-radius:var(--ui-radius-s);color:var(--ui-colors-text-base);font-weight:500;cursor:pointer;}.ui_components_rk9y08f:hover{background-color:var(--ui-colors-opacity-brand-16);}
|
|
2
2
|
.ui_components_sfqbfky{color:var(--ui-colors-text-onbrand);background-color:var(--ui-colors-bg-brand);}
|
|
3
3
|
.ui_components_hdqbsfy:not(.ui_components_sfqbfky){color:var(--ui-colors-text-disabled);}.ui_components_hdqbsfy:not(.ui_components_sfqbfky):hover{color:var(--ui-colors-text-base-tertiary);background-color:transparent;}
|
|
4
|
-
.ui_components_d92q67x{cursor:initial;color:var(--ui-colors-text-disabled);background-color:transparent;pointer-events:none;}.ui_components_d92q67x:hover{background-color:transparent;}
|
|
4
|
+
.ui_components_d92q67x{cursor:initial;color:var(--ui-colors-text-disabled);background-color:transparent;pointer-events:none;}.ui_components_d92q67x:disabled{opacity:1;color:var(--ui-colors-text-disabled);}.ui_components_d92q67x:hover{background-color:transparent;}
|
|
5
5
|
.ui_components_c1qjes3{outline:1px solid var(--ui-colors-bg-brand);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Day.styles.d.ts","sourceRoot":"","sources":["../../../src/Calendar/Day/Day.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,0CAShB,CAAC;AAEF,eAAO,MAAM,iBAAiB,0CAG7B,CAAC;AAEF,eAAO,MAAM,eAAe,0CAU3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Day.styles.d.ts","sourceRoot":"","sources":["../../../src/Calendar/Day/Day.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,0CAShB,CAAC;AAEF,eAAO,MAAM,iBAAiB,0CAG7B,CAAC;AAEF,eAAO,MAAM,eAAe,0CAU3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,0CAc7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,0CAE5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar/Day/Day.styles.js","sources":["../../../src/Calendar/Day/Day.styles.ts"],"sourcesContent":["import { css } from '@linaria/core';\nimport { tokens } from '@finam/web-ui-kit-core/theme/contract';\n\nexport const root = css`\n border-radius: ${tokens.radius.s};\n color: ${tokens.colors.text.base.default.default};\n font-weight: 500;\n\n &:hover {\n
|
|
1
|
+
{"version":3,"file":"Calendar/Day/Day.styles.js","sources":["../../../src/Calendar/Day/Day.styles.ts"],"sourcesContent":["import { css } from '@linaria/core';\nimport { tokens } from '@finam/web-ui-kit-core/theme/contract';\n\nexport const root = css`\n border-radius: ${tokens.radius.s};\n color: ${tokens.colors.text.base.default.default};\n font-weight: 500;\n cursor: pointer;\n\n &:hover {\n background-color: ${tokens.colors.opacity.brand[16]};\n }\n`;\n\nexport const selectedClassName = css`\n color: ${tokens.colors.text.onbrand.default.default};\n background-color: ${tokens.colors.bg.brand.default.default};\n`;\n\nexport const hiddenClassName = css`\n /* stylelint-disable-next-line selector-not-notation */\n &:not(.${selectedClassName}) {\n color: ${tokens.colors.text.disabled.default.default};\n\n &:hover {\n color: ${tokens.colors.text.base.tertiary.default};\n background-color: transparent;\n }\n }\n`;\n\nexport const disabledClassName = css`\n cursor: initial;\n color: ${tokens.colors.text.disabled.default.default};\n background-color: transparent;\n pointer-events: none;\n\n &:disabled {\n opacity: 1;\n color: ${tokens.colors.text.disabled.default.default};\n }\n\n &:hover {\n background-color: transparent;\n }\n`;\n\nexport const currentClassName = css`\n outline: 1px solid ${tokens.colors.bg.brand.default.default};\n`;\n"],"names":["root","css","tokens","selectedClassName","hiddenClassName","disabledClassName","currentClassName"],"mappings":";;AAGO,MAAMA,OAAOC,GAAG,CAAC;iBACP,EAAEC,OAAO,MAAM,CAAC,CAAC,CAAC;SAC1B,EAAEA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAvBA,UAAAA,CAAAA,UAAuC,CAAC;;;;;sBAK7B,EAAEA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC;;AAExD,CAAC;AAEM,MAAMC,oBAAoBF,GAAG,CAAC;SAC5B,EAAEC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAA1BA,UAAAA,CAAAA,UAA0C,CAAC;oBAClC,EAAEA,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAtBA,UAAAA,CAAAA,UAAsC,CAAC;AAC7D,CAAC;AAEM,MAAME,kBAAkBH,GAAG,CAAC;;SAE1B,EAAEE,kBAAkB;WAClB,EAAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA3BA,UAAAA,CAAAA,UAA2C,CAAC;;;aAG5C,EAAEA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAhCA,UAAwC,CAAC;;;;AAIxD,CAAC;AAEM,MAAMG,oBAAoBJ,GAAG,CAAC;;SAE5B,EAAEC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA3BA,UAAAA,CAAAA,UAA2C,CAAC;;;;;;WAM5C,EAAEA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA3BA,UAAAA,CAAAA,UAA2C,CAAC;;;;;;AAMzD,CAAC;AAEM,MAAMI,mBAAmBL,GAAG,CAAC;qBACf,EAAEC,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAtBA,UAAAA,CAAAA,UAAsC,CAAC;AAC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Calendar/Day/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Calendar/Day/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayWrapper.d.ts","sourceRoot":"","sources":["../../src/Calendar/DayWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DayWrapper.d.ts","sourceRoot":"","sources":["../../src/Calendar/DayWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;gHAYE,KAAK;AAsBR,wBAAgC"}
|
|
@@ -2,7 +2,7 @@ import { _ } from "@swc/helpers/_/_object_spread";
|
|
|
2
2
|
import { _ as _object_spread_props__ } from "@swc/helpers/_/_object_spread_props";
|
|
3
3
|
import { _ as _object_without_properties__ } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import { memo, useCallback } from "react";
|
|
5
|
+
import { cloneElement, isValidElement, memo, useCallback } from "react";
|
|
6
6
|
const DayWrapper = (_0)=>{
|
|
7
7
|
let { children, value, disabled, onSelect } = _0, other = _object_without_properties__(_0, [
|
|
8
8
|
"children",
|
|
@@ -10,15 +10,23 @@ const DayWrapper = (_0)=>{
|
|
|
10
10
|
"disabled",
|
|
11
11
|
"onSelect"
|
|
12
12
|
]);
|
|
13
|
-
const handleClick = useCallback(()=>
|
|
13
|
+
const handleClick = useCallback((event)=>{
|
|
14
|
+
var _child_props_onClick, _child_props;
|
|
15
|
+
if (disabled) return;
|
|
16
|
+
const child = children;
|
|
17
|
+
null == (_child_props_onClick = (_child_props = child.props).onClick) || _child_props_onClick.call(_child_props, event);
|
|
18
|
+
onSelect(value);
|
|
19
|
+
}, [
|
|
20
|
+
children,
|
|
21
|
+
disabled,
|
|
14
22
|
onSelect,
|
|
15
23
|
value
|
|
16
24
|
]);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}, other), {
|
|
21
|
-
children:
|
|
25
|
+
const child = /*#__PURE__*/ isValidElement(children) ? /*#__PURE__*/ cloneElement(children, {
|
|
26
|
+
onClick: handleClick
|
|
27
|
+
}) : children;
|
|
28
|
+
return /*#__PURE__*/ jsx("div", _object_spread_props__(_({}, other), {
|
|
29
|
+
children: child
|
|
22
30
|
}));
|
|
23
31
|
};
|
|
24
32
|
const Calendar_DayWrapper = /*#__PURE__*/ memo(DayWrapper);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar/DayWrapper.js","sources":["../../src/Calendar/DayWrapper.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Calendar/DayWrapper.js","sources":["../../src/Calendar/DayWrapper.tsx"],"sourcesContent":["import {\n cloneElement,\n isValidElement,\n memo,\n useCallback,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n} from 'react';\n\nexport interface Props {\n className?: string;\n value: any;\n children: ReactNode;\n disabled?: boolean;\n onSelect: (value: any) => void;\n}\n\ninterface ClickableChildProps {\n onClick?: (event: MouseEvent<HTMLElement>) => void;\n}\n\nconst DayWrapper = ({\n children,\n value,\n disabled,\n onSelect,\n ...other\n}: Props) => {\n const handleClick = useCallback((event: MouseEvent<HTMLElement>) => {\n if (disabled) {\n return;\n }\n\n const child = children as ReactElement<ClickableChildProps>;\n child.props.onClick?.(event);\n onSelect(value);\n }, [children, disabled, onSelect, value]);\n\n const child = isValidElement<ClickableChildProps>(children)\n ? cloneElement(children, { onClick: handleClick })\n : children;\n\n return (\n <div {...other}>\n {child}\n </div>\n );\n};\n\nexport default memo(DayWrapper);\n"],"names":["DayWrapper","children","value","disabled","onSelect","other","handleClick","useCallback","event","_child_props","child","isValidElement","cloneElement","memo"],"mappings":";;;;;AAsBA,MAAMA,aAAa,CAAC;QAAA,EAClBC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EAEF,OADHC,QAAAA,6BAAAA,IAAAA;;;;;;IAEH,MAAMC,cAAcC,YAAY,CAACC;YAM/BC,sBAAAA;QALA,IAAIN,UACF;QAGF,MAAMO,QAAQT;gBACdQ,CAAAA,uBAAAA,AAAAA,CAAAA,eAAAA,MAAM,KAAK,AAAD,EAAE,OAAO,AAAD,KAAlBA,qBAAAA,IAAAA,CAAAA,cAAsBD;QACtBJ,SAASF;IACX,GAAG;QAACD;QAAUE;QAAUC;QAAUF;KAAM;IAExC,MAAMQ,QAAQ,WAARA,GAAQC,eAAoCV,YAAAA,WAAAA,GAC9CW,aAAaX,UAAU;QAAE,SAASK;IAAY,KAC9CL;IAEJ,OAAO,WAAP,GACE,IAAC,oCAAQI,QAAAA;kBACNK;;AAGP;AAEA,0CAAeG,KAAKb"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
.ui_components_mb337u9{display:flex;padding:var(--ui-spacing-xs) 0;}.ui_components_mb337u9:not(:last-child){margin-bottom:var(--ui-spacing-xs);}
|
|
4
4
|
.ui_components_m17o1j6p{flex:1;}.ui_components_m17o1j6p:not(:first-child){margin-left:6px;}
|
|
5
|
-
.ui_components_mmznyat{width:
|
|
5
|
+
.ui_components_mmznyat{width:100%;}
|