@alfalab/core-components-date-range-input 3.5.28 → 49.0.0-snapshot-fbb690e
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/Component.responsive.d.ts +30 -6
- package/Component.responsive.js +4 -3
- package/Component.responsive.js.map +1 -0
- package/components/date-range-input/Component.d.ts +208 -11
- package/components/date-range-input/Component.js +26 -27
- package/components/date-range-input/Component.js.map +1 -0
- package/components/date-range-input/index.css +11 -51
- package/components/date-range-input/index.d.ts +1 -1
- package/components/date-range-input/index.js +3 -2
- package/components/date-range-input/index.js.map +1 -0
- package/components/date-range-input/index.module.css.js +8 -0
- package/components/date-range-input/index.module.css.js.map +1 -0
- package/cssm/Component.responsive.d.ts +30 -6
- package/cssm/Component.responsive.js +6 -5
- package/cssm/Component.responsive.js.map +1 -0
- package/cssm/components/date-range-input/Component.d.ts +208 -11
- package/cssm/components/date-range-input/Component.js +24 -23
- package/cssm/components/date-range-input/Component.js.map +1 -0
- package/cssm/components/date-range-input/index.d.ts +1 -1
- package/cssm/components/date-range-input/index.js +3 -2
- package/cssm/components/date-range-input/index.js.map +1 -0
- package/cssm/components/date-range-input/index.module.css +5 -44
- package/cssm/desktop/Component.desktop.d.ts +9 -5
- package/cssm/desktop/Component.desktop.js +5 -4
- package/cssm/desktop/Component.desktop.js.map +1 -0
- package/cssm/desktop/index.d.ts +1 -2
- package/cssm/desktop/index.js +3 -2
- package/cssm/desktop/index.js.map +1 -0
- package/cssm/index.d.ts +2 -3
- package/cssm/index.js +1 -0
- package/cssm/index.js.map +1 -0
- package/cssm/mobile/Component.mobile.d.ts +9 -5
- package/cssm/mobile/Component.mobile.js +5 -4
- package/cssm/mobile/Component.mobile.js.map +1 -0
- package/cssm/mobile/index.d.ts +1 -2
- package/cssm/mobile/index.js +3 -2
- package/cssm/mobile/index.js.map +1 -0
- package/cssm/utils/format.d.ts +7 -8
- package/cssm/utils/format.js +1 -0
- package/cssm/utils/format.js.map +1 -0
- package/cssm/utils/index.d.ts +1 -1
- package/cssm/utils/index.js +9 -8
- package/cssm/utils/index.js.map +1 -0
- package/desktop/Component.desktop.d.ts +9 -5
- package/desktop/Component.desktop.js +5 -4
- package/desktop/Component.desktop.js.map +1 -0
- package/desktop/index.d.ts +1 -2
- package/desktop/index.js +3 -2
- package/desktop/index.js.map +1 -0
- package/esm/Component.responsive.d.ts +30 -6
- package/esm/Component.responsive.js +1 -0
- package/esm/Component.responsive.js.map +1 -0
- package/esm/components/date-range-input/Component.d.ts +208 -11
- package/esm/components/date-range-input/Component.js +2 -3
- package/esm/components/date-range-input/Component.js.map +1 -0
- package/esm/components/date-range-input/index.css +11 -51
- package/esm/components/date-range-input/index.d.ts +1 -1
- package/esm/components/date-range-input/index.js +1 -0
- package/esm/components/date-range-input/index.js.map +1 -0
- package/esm/components/date-range-input/index.module.css.js +6 -0
- package/esm/components/date-range-input/index.module.css.js.map +1 -0
- package/esm/desktop/Component.desktop.d.ts +9 -5
- package/esm/desktop/Component.desktop.js +1 -0
- package/esm/desktop/Component.desktop.js.map +1 -0
- package/esm/desktop/index.d.ts +1 -2
- package/esm/desktop/index.js +1 -0
- package/esm/desktop/index.js.map +1 -0
- package/esm/index.d.ts +2 -3
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/mobile/Component.mobile.d.ts +9 -5
- package/esm/mobile/Component.mobile.js +1 -0
- package/esm/mobile/Component.mobile.js.map +1 -0
- package/esm/mobile/index.d.ts +1 -2
- package/esm/mobile/index.js +1 -0
- package/esm/mobile/index.js.map +1 -0
- package/esm/utils/format.d.ts +7 -8
- package/esm/utils/format.js +1 -0
- package/esm/utils/format.js.map +1 -0
- package/esm/utils/index.d.ts +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/index.js.map +1 -0
- package/index.d.ts +2 -3
- package/index.js +1 -0
- package/index.js.map +1 -0
- package/mobile/Component.mobile.d.ts +9 -5
- package/mobile/Component.mobile.js +5 -4
- package/mobile/Component.mobile.js.map +1 -0
- package/mobile/index.d.ts +1 -2
- package/mobile/index.js +3 -2
- package/mobile/index.js.map +1 -0
- package/modern/Component.responsive.d.ts +30 -6
- package/modern/Component.responsive.js +1 -0
- package/modern/Component.responsive.js.map +1 -0
- package/modern/components/date-range-input/Component.d.ts +208 -11
- package/modern/components/date-range-input/Component.js +2 -3
- package/modern/components/date-range-input/Component.js.map +1 -0
- package/modern/components/date-range-input/index.css +11 -51
- package/modern/components/date-range-input/index.d.ts +1 -1
- package/modern/components/date-range-input/index.js +1 -0
- package/modern/components/date-range-input/index.js.map +1 -0
- package/modern/components/date-range-input/index.module.css.js +6 -0
- package/modern/components/date-range-input/index.module.css.js.map +1 -0
- package/modern/desktop/Component.desktop.d.ts +9 -5
- package/modern/desktop/Component.desktop.js +1 -0
- package/modern/desktop/Component.desktop.js.map +1 -0
- package/modern/desktop/index.d.ts +1 -2
- package/modern/desktop/index.js +1 -0
- package/modern/desktop/index.js.map +1 -0
- package/modern/index.d.ts +2 -3
- package/modern/index.js +1 -0
- package/modern/index.js.map +1 -0
- package/modern/mobile/Component.mobile.d.ts +9 -5
- package/modern/mobile/Component.mobile.js +1 -0
- package/modern/mobile/Component.mobile.js.map +1 -0
- package/modern/mobile/index.d.ts +1 -2
- package/modern/mobile/index.js +1 -0
- package/modern/mobile/index.js.map +1 -0
- package/modern/utils/format.d.ts +7 -8
- package/modern/utils/format.js +1 -0
- package/modern/utils/format.js.map +1 -0
- package/modern/utils/index.d.ts +1 -1
- package/modern/utils/index.js +1 -0
- package/modern/utils/index.js.map +1 -0
- package/moderncssm/Component.responsive.d.ts +30 -6
- package/moderncssm/Component.responsive.js +1 -0
- package/moderncssm/Component.responsive.js.map +1 -0
- package/moderncssm/components/date-range-input/Component.d.ts +208 -11
- package/moderncssm/components/date-range-input/Component.js +1 -0
- package/moderncssm/components/date-range-input/Component.js.map +1 -0
- package/moderncssm/components/date-range-input/index.d.ts +1 -1
- package/moderncssm/components/date-range-input/index.js +1 -0
- package/moderncssm/components/date-range-input/index.js.map +1 -0
- package/moderncssm/components/date-range-input/index.module.css +0 -21
- package/moderncssm/desktop/Component.desktop.d.ts +9 -5
- package/moderncssm/desktop/Component.desktop.js +1 -0
- package/moderncssm/desktop/Component.desktop.js.map +1 -0
- package/moderncssm/desktop/index.d.ts +1 -2
- package/moderncssm/desktop/index.js +1 -0
- package/moderncssm/desktop/index.js.map +1 -0
- package/moderncssm/index.d.ts +2 -3
- package/moderncssm/index.js +1 -0
- package/moderncssm/index.js.map +1 -0
- package/moderncssm/mobile/Component.mobile.d.ts +9 -5
- package/moderncssm/mobile/Component.mobile.js +1 -0
- package/moderncssm/mobile/Component.mobile.js.map +1 -0
- package/moderncssm/mobile/index.d.ts +1 -2
- package/moderncssm/mobile/index.js +1 -0
- package/moderncssm/mobile/index.js.map +1 -0
- package/moderncssm/utils/format.d.ts +7 -8
- package/moderncssm/utils/format.js +1 -0
- package/moderncssm/utils/format.js.map +1 -0
- package/moderncssm/utils/index.d.ts +1 -1
- package/moderncssm/utils/index.js +1 -0
- package/moderncssm/utils/index.js.map +1 -0
- package/package.json +9 -10
- package/utils/format.d.ts +7 -8
- package/utils/format.js +1 -0
- package/utils/format.js.map +1 -0
- package/utils/index.d.ts +1 -1
- package/utils/index.js +9 -8
- package/utils/index.js.map +1 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import { ConditionalProps, DateRangeInputProps } from
|
|
4
|
-
type DateRangeInputDesktopProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
|
|
2
|
+
import { ConditionalProps, DateRangeInputProps } from '../components/date-range-input';
|
|
3
|
+
export declare type DateRangeInputDesktopProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
|
|
5
4
|
/**
|
|
6
5
|
* @deprecated
|
|
7
6
|
* use UniversalDateInput instead
|
|
8
7
|
*/
|
|
9
|
-
declare const DateRangeInputDesktop: React.ForwardRefExoticComponent<
|
|
10
|
-
|
|
8
|
+
export declare const DateRangeInputDesktop: React.ForwardRefExoticComponent<(Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
9
|
+
picker: true;
|
|
10
|
+
onClose?: (() => void) | undefined;
|
|
11
|
+
}, "ref"> | Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
12
|
+
picker?: false | undefined;
|
|
13
|
+
onClose?: undefined;
|
|
14
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -10,3 +10,4 @@ import { DateRangeInput } from '../components/date-range-input/Component.js';
|
|
|
10
10
|
const DateRangeInputDesktop = forwardRef((props, ref) => (React.createElement(DateRangeInput, { InputComponent: InputDesktop, Calendar: CalendarDesktop, ...props, ref: ref })));
|
|
11
11
|
|
|
12
12
|
export { DateRangeInputDesktop };
|
|
13
|
+
//# sourceMappingURL=Component.desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { CalendarDesktop } from '@alfalab/core-components-calendar/desktop';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop } from '@alfalab/core-components-input/desktop';\n\nimport {\n ConditionalProps,\n DateRangeInput,\n DateRangeInputProps,\n} from '../components/date-range-input';\n\nexport type DateRangeInputDesktopProps = Omit<\n DateRangeInputProps,\n 'view' | 'picker' | 'onClose' | 'InputComponent'\n> &\n ConditionalProps;\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateRangeInputDesktop = forwardRef<HTMLInputElement, DateRangeInputDesktopProps>(\n (props, ref) => (\n <DateRangeInput\n InputComponent={InputDesktop}\n Calendar={CalendarDesktop}\n {...props}\n ref={ref}\n />\n ),\n);\n"],"names":[],"mappings":";;;;;AAmBA;;;AAGG;AACI,MAAM,qBAAqB,GAAG,UAAU,CAC3C,CAAC,KAAK,EAAE,GAAG,MACP,KAAC,CAAA,aAAA,CAAA,cAAc,EACX,EAAA,cAAc,EAAE,YAAY,EAC5B,QAAQ,EAAE,eAAe,EAAA,GACrB,KAAK,EACT,GAAG,EAAE,GAAG,EACV,CAAA,CACL;;;;"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export {};
|
|
1
|
+
export * from './Component.desktop';
|
package/modern/desktop/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/modern/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export { DateRangeInputResponsive as DateRangeInput } from
|
|
2
|
-
export type { DateRangeInputResponsiveProps as DateRangeInputProps } from
|
|
3
|
-
export {};
|
|
1
|
+
export { DateRangeInputResponsive as DateRangeInput } from './Component.responsive';
|
|
2
|
+
export type { DateRangeInputResponsiveProps as DateRangeInputProps } from './Component.responsive';
|
package/modern/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import { ConditionalProps, DateRangeInputProps } from
|
|
4
|
-
type DateRangeInputMobileProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
|
|
2
|
+
import { ConditionalProps, DateRangeInputProps } from '../components/date-range-input';
|
|
3
|
+
export declare type DateRangeInputMobileProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
|
|
5
4
|
/**
|
|
6
5
|
* @deprecated
|
|
7
6
|
* use UniversalDateInput instead
|
|
8
7
|
*/
|
|
9
|
-
declare const DateRangeInputMobile: React.ForwardRefExoticComponent<
|
|
10
|
-
|
|
8
|
+
export declare const DateRangeInputMobile: React.ForwardRefExoticComponent<(Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
9
|
+
picker: true;
|
|
10
|
+
onClose?: (() => void) | undefined;
|
|
11
|
+
}, "ref"> | Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
12
|
+
picker?: false | undefined;
|
|
13
|
+
onClose?: undefined;
|
|
14
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -10,3 +10,4 @@ import { DateRangeInput } from '../components/date-range-input/Component.js';
|
|
|
10
10
|
const DateRangeInputMobile = forwardRef((props, ref) => (React.createElement(DateRangeInput, { InputComponent: InputMobile, Calendar: CalendarMobile, view: 'mobile', ...props, ref: ref })));
|
|
11
11
|
|
|
12
12
|
export { DateRangeInputMobile };
|
|
13
|
+
//# sourceMappingURL=Component.mobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { CalendarMobile } from '@alfalab/core-components-calendar/mobile';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { InputProps } from '@alfalab/core-components-input';\nimport { InputMobile } from '@alfalab/core-components-input/mobile';\n\nimport {\n ConditionalProps,\n DateRangeInput,\n DateRangeInputProps,\n} from '../components/date-range-input';\n\nexport type DateRangeInputMobileProps = Omit<\n DateRangeInputProps,\n 'view' | 'picker' | 'onClose' | 'InputComponent'\n> &\n ConditionalProps;\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateRangeInputMobile = forwardRef<HTMLInputElement, DateRangeInputMobileProps>(\n (props, ref) => (\n <DateRangeInput\n InputComponent={InputMobile}\n Calendar={CalendarMobile}\n view='mobile'\n {...props}\n ref={ref}\n />\n ),\n);\n"],"names":[],"mappings":";;;;;AAmBA;;;AAGG;AACU,MAAA,oBAAoB,GAAG,UAAU,CAC1C,CAAC,KAAK,EAAE,GAAG,MACP,KAAA,CAAA,aAAA,CAAC,cAAc,EACX,EAAA,cAAc,EAAE,WAAW,EAC3B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAC,QAAQ,EACT,GAAA,KAAK,EACT,GAAG,EAAE,GAAG,EACV,CAAA,CACL;;;;"}
|
package/modern/mobile/index.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export {};
|
|
1
|
+
export * from './Component.mobile';
|
package/modern/mobile/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/modern/utils/format.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
declare const DATE_FORMAT = "dd.MM.yyyy";
|
|
2
|
-
declare const DATE_MASK: (string | RegExp)[];
|
|
3
|
-
declare const isCompleteDateInput: (input: string) => boolean;
|
|
4
|
-
declare const parseDateString: (value: string, dateFormat?: string) => Date;
|
|
5
|
-
declare const isValid: (inputValue: string, dateFrom: string, dateTo: string) => boolean;
|
|
6
|
-
declare const format: (value: string) => string;
|
|
7
|
-
declare const parseTimestampToDate: (timestamp: number) => string;
|
|
8
|
-
export { DATE_FORMAT, DATE_MASK, isCompleteDateInput, parseDateString, isValid, format, parseTimestampToDate };
|
|
1
|
+
export declare const DATE_FORMAT = "dd.MM.yyyy";
|
|
2
|
+
export declare const DATE_MASK: (string | RegExp)[];
|
|
3
|
+
export declare const isCompleteDateInput: (input: string) => boolean;
|
|
4
|
+
export declare const parseDateString: (value: string, dateFormat?: string) => Date;
|
|
5
|
+
export declare const isValid: (inputValue: string, dateFrom: string, dateTo: string) => boolean;
|
|
6
|
+
export declare const format: (value: string) => string;
|
|
7
|
+
export declare const parseTimestampToDate: (timestamp: number) => string;
|
package/modern/utils/format.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sources":["../../src/utils/format.ts"],"sourcesContent":["/* eslint-disable no-useless-escape */\n\nimport dateFnsIsValid from 'date-fns/isValid';\nimport parse from 'date-fns/parse';\n\nexport const DATE_FORMAT = 'dd.MM.yyyy';\nexport const DATE_MASK = [\n /\\d/,\n /\\d/,\n '.',\n /\\d/,\n /\\d/,\n '.',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n '-',\n ' ',\n /\\d/,\n /\\d/,\n '.',\n /\\d/,\n /\\d/,\n '.',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n];\n\nexport const isCompleteDateInput = (input: string) => input.length === DATE_MASK.length;\n\nexport const parseDateString = (value: string, dateFormat = DATE_FORMAT) =>\n parse(value, dateFormat, new Date());\n\nexport const isValid = (inputValue: string, dateFrom: string, dateTo: string) =>\n !inputValue ||\n (isCompleteDateInput(inputValue) &&\n dateFnsIsValid(parseDateString(dateFrom)) &&\n dateFnsIsValid(parseDateString(dateTo)));\n\nexport const format = (value: string): string =>\n value\n .replace(/^(\\d\\d)(\\d)$/, '$1.$2') // 121 => 12.1\n .replace(/^(\\d\\d)\\.(\\d\\d)(\\d)$/, '$1.$2.$3') // 12.122 => 12.12.2\n .replace(/^(\\d\\d)\\d\\.(.*)/, '$1.$2') // 123.12.2005 => 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d)\\d\\.(.*)/, '$1.$2') // 12.123.2005 => 12.12.2005\n .replace(/\\.$/, '') // 12. => 12\n .replace(/\\ $/, '') // 1 2 => 12\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d)(\\d) - (\\d.*)/, '$1 - $3') // 12.12.20051 - 12.12.200 => 12.12.2005 - 12.12.200\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) (\\d)- (\\d.*)/, '$1 - $3') // 12.12.2005 1- 12.12.200 => 12.12.2005 - 12.12.200\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) -(\\d) (\\d.*)/, '$1 - $3') // 12.12.2005 -1 12.12.200 => 12.12.2005 - 12.12.200\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) - (\\d)(\\d\\d.\\d\\d.\\d\\d\\d)/, '$1 - $3') // 12.12.2005 - 112.12.200 => 12.12.2005 - 12.12.200\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) - (\\d)(\\d\\d.\\d.\\d\\d\\d\\d)/, '$1 - $3') // 12.12.2005 - 112.1.2001 => 12.12.2005 - 12.1.2001\n .replace(/^(\\d\\d\\.\\d\\d)(\\d\\d\\d\\d)/, '$1.$2') // 12.122005 => 12.12.2005\n .replace(/^(\\d\\d)(\\d\\d\\.\\d\\d\\d\\d)/, '$1.$2') // 1212.2005 => 12.12.2005\n .replace(/^(\\d\\d)(\\d.*)/, '$1.$2') // 1212 => 12.12\n .replace(/^(\\d\\d.\\d\\d)(\\d.*)/, '$1.$2') // 12.122 => 12.12.2\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d)(\\d)/, '$1 - $2') // 12.12.20056 => 12.12.2005 - 6\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) - (\\d\\d)(\\d)/, '$1 - $2.$3') // 12.12.2005 - 123 => 12.12.2005 - 12.3\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) - (\\d\\d).(\\d\\d)(\\d)/, '$1 - $2.$3.$4') // 12.12.2005 - 12.123 => 12.12.2005 - 12.12.3\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d)- (\\d.*)/, '$1 - $2') // 12.12.2005- 12.12.2005 => 12.12.2005 - 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) -(\\d.*)/, '$1 - $2') // 12.12.2005 -12.12.2005 => 12.12.2005 - 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) -/, '$1') // 12.12.2005 - => 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) (\\d.*)/, '$1 - $2') // 12.12.2005 12.12.2005 => 12.12.2005 - 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d) {2}(\\d.*)/, '$1 - $2') // 12.12.2005 12.12.2005 => 12.12.2005 - 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d)-/, '$1') // 12.12.2005- => 12.12.2005\n .replace(/^(\\d\\.\\d\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 1.12.2005123123 => 1.12.2005\n .replace(/^(\\d\\d\\.\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 01.2.20055125125 => 01.2.2005\n .replace(/^(\\d)\\.(\\d\\d)([0-9]*)\\.(\\d\\d\\d\\d)/, '$1.$2.$4') // 1.123123.2005 => 1.12.2005\n .replace(/^(\\d\\.\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 1.2.20055125125 => 1.2.2005\n .replace(/^()\\.(\\d)\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3'); // .2.2005123123 => .2.2005\n\nexport const parseTimestampToDate = (timestamp: number): string => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n\n let month: number | string = date.getMonth() + 1;\n let day: number | string = date.getDate();\n\n if (month < 10) {\n month = `0${month}`;\n }\n if (day < 10) {\n day = `0${day}`;\n }\n\n return `${day}.${month}.${year}`;\n};\n"],"names":[],"mappings":"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"}
|
package/modern/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './format';
|
package/modern/utils/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import { ConditionalProps, DateRangeInputProps } from
|
|
4
|
-
type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
|
|
2
|
+
import { ConditionalProps, DateRangeInputProps } from './components/date-range-input';
|
|
3
|
+
export declare type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
|
|
5
4
|
/**
|
|
6
5
|
* Контрольная точка, с нее начинается desktop версия
|
|
7
6
|
* @default 1024
|
|
@@ -12,10 +11,35 @@ type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker'
|
|
|
12
11
|
*/
|
|
13
12
|
client?: 'desktop' | 'mobile';
|
|
14
13
|
};
|
|
15
|
-
type DateRangeInputMedia = 'desktop' | 'mobile';
|
|
14
|
+
export declare type DateRangeInputMedia = 'desktop' | 'mobile';
|
|
16
15
|
/**
|
|
17
16
|
* @deprecated
|
|
18
17
|
* use UniversalDateInput instead
|
|
19
18
|
*/
|
|
20
|
-
declare const DateRangeInputResponsive: React.ForwardRefExoticComponent<
|
|
21
|
-
|
|
19
|
+
export declare const DateRangeInputResponsive: React.ForwardRefExoticComponent<(Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
20
|
+
picker: true;
|
|
21
|
+
onClose?: (() => void) | undefined;
|
|
22
|
+
} & {
|
|
23
|
+
/**
|
|
24
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
25
|
+
* @default 1024
|
|
26
|
+
*/
|
|
27
|
+
breakpoint?: number | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Версия, которая будет использоваться при серверном рендеринге
|
|
30
|
+
*/
|
|
31
|
+
client?: "desktop" | "mobile" | undefined;
|
|
32
|
+
}, "ref"> | Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
33
|
+
picker?: false | undefined;
|
|
34
|
+
onClose?: undefined;
|
|
35
|
+
} & {
|
|
36
|
+
/**
|
|
37
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
38
|
+
* @default 1024
|
|
39
|
+
*/
|
|
40
|
+
breakpoint?: number | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Версия, которая будет использоваться при серверном рендеринге
|
|
43
|
+
*/
|
|
44
|
+
client?: "desktop" | "mobile" | undefined;
|
|
45
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.responsive.js","sources":["../src/Component.responsive.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { InputProps } from '@alfalab/core-components-input';\nimport { useIsDesktop } from '@alfalab/core-components-mq';\n\nimport { ConditionalProps, DateRangeInputProps } from './components/date-range-input';\nimport { DateRangeInputDesktop } from './desktop';\nimport { DateRangeInputMobile } from './mobile';\n\nexport type DateRangeInputResponsiveProps = Omit<\n DateRangeInputProps,\n 'view' | 'picker' | 'onClose' | 'InputComponent'\n> &\n ConditionalProps & {\n /**\n * Контрольная точка, с нее начинается desktop версия\n * @default 1024\n */\n breakpoint?: number;\n\n /**\n * Версия, которая будет использоваться при серверном рендеринге\n */\n client?: 'desktop' | 'mobile';\n };\n\nexport type DateRangeInputMedia = 'desktop' | 'mobile';\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateRangeInputResponsive = forwardRef<HTMLInputElement, DateRangeInputResponsiveProps>(\n ({ breakpoint, client, ...restProps }, ref) => {\n const isDesktop = useIsDesktop(breakpoint, client === 'desktop');\n\n return isDesktop ? (\n <DateRangeInputDesktop {...restProps} ref={ref} />\n ) : (\n <DateRangeInputMobile {...restProps} ref={ref} />\n );\n },\n);\n"],"names":[],"mappings":";;;;;AA6BA;;;AAGG;AACU,MAAA,wBAAwB,GAAG,UAAU,CAC9C,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;IAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC;AAEhE,IAAA,OAAO,SAAS,IACZ,KAAA,CAAA,aAAA,CAAC,qBAAqB,EAAA,EAAA,GAAK,SAAS,EAAE,GAAG,EAAE,GAAG,EAAA,CAAI,KAElD,KAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,EAAA,GAAK,SAAS,EAAE,GAAG,EAAE,GAAG,EAAA,CAAI,CACpD;AACL,CAAC;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { PopoverProps } from "@alfalab/core-components-popover";
|
|
8
|
-
type ConditionalProps = {
|
|
1
|
+
import React, { ChangeEvent, ElementType } from 'react';
|
|
2
|
+
import type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';
|
|
3
|
+
import type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';
|
|
4
|
+
import { InputProps } from '@alfalab/core-components-input';
|
|
5
|
+
import { PopoverProps } from '@alfalab/core-components-popover';
|
|
6
|
+
export declare type ConditionalProps = {
|
|
9
7
|
/**
|
|
10
8
|
* Обработчик изменения значения
|
|
11
9
|
*/
|
|
@@ -18,7 +16,7 @@ type ConditionalProps = {
|
|
|
18
16
|
picker?: false;
|
|
19
17
|
onClose?: never;
|
|
20
18
|
};
|
|
21
|
-
type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
19
|
+
export declare type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
22
20
|
/**
|
|
23
21
|
* Дополнительный класс
|
|
24
22
|
*/
|
|
@@ -113,5 +111,204 @@ type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
|
113
111
|
*/
|
|
114
112
|
disableUserInput?: boolean;
|
|
115
113
|
};
|
|
116
|
-
declare const DateRangeInput: React.ForwardRefExoticComponent<
|
|
117
|
-
|
|
114
|
+
export declare const DateRangeInput: React.ForwardRefExoticComponent<(Omit<Omit<InputProps, "onChange"> & {
|
|
115
|
+
/**
|
|
116
|
+
* Обработчик изменения значения
|
|
117
|
+
*/
|
|
118
|
+
picker: true;
|
|
119
|
+
/**
|
|
120
|
+
* Обработчик закрытия календаря
|
|
121
|
+
*/
|
|
122
|
+
onClose?: (() => void) | undefined;
|
|
123
|
+
} & {
|
|
124
|
+
/**
|
|
125
|
+
* Дополнительный класс
|
|
126
|
+
*/
|
|
127
|
+
className?: string | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Дополнительный класс для инпута
|
|
130
|
+
*/
|
|
131
|
+
inputClassName?: string | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Дополнительный класс для поповера
|
|
134
|
+
*/
|
|
135
|
+
popoverClassName?: string | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* Обработчик изменения значения
|
|
138
|
+
*/
|
|
139
|
+
onChange?: ((payload: {
|
|
140
|
+
dateFrom?: Date;
|
|
141
|
+
dateTo?: Date;
|
|
142
|
+
value: string;
|
|
143
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* Обработчик окончания ввода
|
|
146
|
+
*/
|
|
147
|
+
onComplete?: ((payload: {
|
|
148
|
+
dateFrom: Date;
|
|
149
|
+
dateTo: Date;
|
|
150
|
+
value: string;
|
|
151
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* Компонент календаря
|
|
154
|
+
*/
|
|
155
|
+
Calendar?: React.ElementType<any> | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Доп. пропсы для календаря
|
|
158
|
+
*/
|
|
159
|
+
calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
|
|
160
|
+
/**
|
|
161
|
+
* Месяц в календаре по умолчанию (timestamp)
|
|
162
|
+
*/
|
|
163
|
+
defaultMonth?: number | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Минимальная дата, доступная для выбора (timestamp)
|
|
166
|
+
*/
|
|
167
|
+
minDate?: number | undefined;
|
|
168
|
+
/**
|
|
169
|
+
* Максимальная дата, доступная для выбора (timestamp)
|
|
170
|
+
*/
|
|
171
|
+
maxDate?: number | undefined;
|
|
172
|
+
/**
|
|
173
|
+
* Список событий
|
|
174
|
+
*/
|
|
175
|
+
events?: (number | Date)[] | undefined;
|
|
176
|
+
/**
|
|
177
|
+
* Список выходных
|
|
178
|
+
*/
|
|
179
|
+
offDays?: (number | Date)[] | undefined;
|
|
180
|
+
/**
|
|
181
|
+
* Состояние открытия по умолчанию
|
|
182
|
+
*/
|
|
183
|
+
defaultOpen?: boolean | undefined;
|
|
184
|
+
/**
|
|
185
|
+
* Позиционирование поповера с календарем
|
|
186
|
+
*/
|
|
187
|
+
popoverPosition?: any;
|
|
188
|
+
/**
|
|
189
|
+
* z-index Popover
|
|
190
|
+
*/
|
|
191
|
+
zIndexPopover?: any;
|
|
192
|
+
/**
|
|
193
|
+
* Запрещает поповеру менять свою позицию.
|
|
194
|
+
* Например, если места снизу недостаточно, то он все равно будет показан снизу
|
|
195
|
+
*/
|
|
196
|
+
preventFlip?: boolean | undefined;
|
|
197
|
+
/**
|
|
198
|
+
* Календарь будет принимать ширину инпута
|
|
199
|
+
*/
|
|
200
|
+
useAnchorWidth?: boolean | undefined;
|
|
201
|
+
/**
|
|
202
|
+
* Растягивает компонент на ширину контейнера
|
|
203
|
+
*/
|
|
204
|
+
block?: boolean | undefined;
|
|
205
|
+
/**
|
|
206
|
+
* Отображение компонента в мобильном или десктопном виде
|
|
207
|
+
*/
|
|
208
|
+
view?: "desktop" | "mobile" | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* Компонент инпута
|
|
211
|
+
*/
|
|
212
|
+
InputComponent?: React.ElementType<any> | undefined;
|
|
213
|
+
/**
|
|
214
|
+
* Запретить ввод с клавиатуры
|
|
215
|
+
*/
|
|
216
|
+
disableUserInput?: boolean | undefined;
|
|
217
|
+
}, "ref"> | Omit<Omit<InputProps, "onChange"> & {
|
|
218
|
+
picker?: false | undefined;
|
|
219
|
+
onClose?: undefined;
|
|
220
|
+
} & {
|
|
221
|
+
/**
|
|
222
|
+
* Дополнительный класс
|
|
223
|
+
*/
|
|
224
|
+
className?: string | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Дополнительный класс для инпута
|
|
227
|
+
*/
|
|
228
|
+
inputClassName?: string | undefined;
|
|
229
|
+
/**
|
|
230
|
+
* Дополнительный класс для поповера
|
|
231
|
+
*/
|
|
232
|
+
popoverClassName?: string | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* Обработчик изменения значения
|
|
235
|
+
*/
|
|
236
|
+
onChange?: ((payload: {
|
|
237
|
+
dateFrom?: Date;
|
|
238
|
+
dateTo?: Date;
|
|
239
|
+
value: string;
|
|
240
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Обработчик окончания ввода
|
|
243
|
+
*/
|
|
244
|
+
onComplete?: ((payload: {
|
|
245
|
+
dateFrom: Date;
|
|
246
|
+
dateTo: Date;
|
|
247
|
+
value: string;
|
|
248
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* Компонент календаря
|
|
251
|
+
*/
|
|
252
|
+
Calendar?: React.ElementType<any> | undefined;
|
|
253
|
+
/**
|
|
254
|
+
* Доп. пропсы для календаря
|
|
255
|
+
*/
|
|
256
|
+
calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
|
|
257
|
+
/**
|
|
258
|
+
* Месяц в календаре по умолчанию (timestamp)
|
|
259
|
+
*/
|
|
260
|
+
defaultMonth?: number | undefined;
|
|
261
|
+
/**
|
|
262
|
+
* Минимальная дата, доступная для выбора (timestamp)
|
|
263
|
+
*/
|
|
264
|
+
minDate?: number | undefined;
|
|
265
|
+
/**
|
|
266
|
+
* Максимальная дата, доступная для выбора (timestamp)
|
|
267
|
+
*/
|
|
268
|
+
maxDate?: number | undefined;
|
|
269
|
+
/**
|
|
270
|
+
* Список событий
|
|
271
|
+
*/
|
|
272
|
+
events?: (number | Date)[] | undefined;
|
|
273
|
+
/**
|
|
274
|
+
* Список выходных
|
|
275
|
+
*/
|
|
276
|
+
offDays?: (number | Date)[] | undefined;
|
|
277
|
+
/**
|
|
278
|
+
* Состояние открытия по умолчанию
|
|
279
|
+
*/
|
|
280
|
+
defaultOpen?: boolean | undefined;
|
|
281
|
+
/**
|
|
282
|
+
* Позиционирование поповера с календарем
|
|
283
|
+
*/
|
|
284
|
+
popoverPosition?: any;
|
|
285
|
+
/**
|
|
286
|
+
* z-index Popover
|
|
287
|
+
*/
|
|
288
|
+
zIndexPopover?: any;
|
|
289
|
+
/**
|
|
290
|
+
* Запрещает поповеру менять свою позицию.
|
|
291
|
+
* Например, если места снизу недостаточно, то он все равно будет показан снизу
|
|
292
|
+
*/
|
|
293
|
+
preventFlip?: boolean | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* Календарь будет принимать ширину инпута
|
|
296
|
+
*/
|
|
297
|
+
useAnchorWidth?: boolean | undefined;
|
|
298
|
+
/**
|
|
299
|
+
* Растягивает компонент на ширину контейнера
|
|
300
|
+
*/
|
|
301
|
+
block?: boolean | undefined;
|
|
302
|
+
/**
|
|
303
|
+
* Отображение компонента в мобильном или десктопном виде
|
|
304
|
+
*/
|
|
305
|
+
view?: "desktop" | "mobile" | undefined;
|
|
306
|
+
/**
|
|
307
|
+
* Компонент инпута
|
|
308
|
+
*/
|
|
309
|
+
InputComponent?: React.ElementType<any> | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Запретить ввод с клавиатуры
|
|
312
|
+
*/
|
|
313
|
+
disableUserInput?: boolean | undefined;
|
|
314
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/date-range-input/Component.tsx"],"sourcesContent":["/* eslint-disable no-useless-escape, jsx-a11y/click-events-have-key-events */\nimport React, {\n ChangeEvent,\n ElementType,\n FocusEvent,\n MouseEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport dateFnsIsValid from 'date-fns/isValid';\nimport startOfMonth from 'date-fns/startOfMonth';\n\nimport type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';\nimport type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';\nimport { usePeriod } from '@alfalab/core-components-calendar/shared';\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { InputProps } from '@alfalab/core-components-input';\nimport { Popover, PopoverProps } from '@alfalab/core-components-popover';\nimport { useDidUpdateEffect } from '@alfalab/hooks';\nimport { CalendarMIcon } from '@alfalab/icons-glyph/CalendarMIcon';\n\nimport {\n DATE_FORMAT,\n DATE_MASK,\n format,\n isCompleteDateInput,\n isValid,\n parseDateString,\n parseTimestampToDate,\n} from '../../utils';\n\nimport styles from './index.module.css';\n\nexport type ConditionalProps =\n | {\n /**\n * Обработчик изменения значения\n */\n picker: true;\n\n /**\n * Обработчик закрытия календаря\n */\n onClose?: () => void;\n }\n | { picker?: false; onClose?: never };\n\nexport type DateRangeInputProps = Omit<InputProps, 'onChange'> &\n ConditionalProps & {\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Дополнительный класс для инпута\n */\n inputClassName?: string;\n\n /**\n * Дополнительный класс для поповера\n */\n popoverClassName?: string;\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n payload: { dateFrom?: Date; dateTo?: Date; value: string },\n event?: ChangeEvent<HTMLInputElement>,\n ) => void;\n\n /**\n * Обработчик окончания ввода\n */\n onComplete?: (\n payload: { dateFrom: Date; dateTo: Date; value: string },\n event?: ChangeEvent<HTMLInputElement>,\n ) => void;\n\n /**\n * Компонент календаря\n */\n Calendar?: ElementType;\n\n /**\n * Доп. пропсы для календаря\n */\n calendarProps?:\n | (CalendarDesktopProps & Record<string, unknown>)\n | (CalendarMobileProps & Record<string, unknown>);\n\n /**\n * Месяц в календаре по умолчанию (timestamp)\n */\n defaultMonth?: number;\n\n /**\n * Минимальная дата, доступная для выбора (timestamp)\n */\n minDate?: number;\n\n /**\n * Максимальная дата, доступная для выбора (timestamp)\n */\n maxDate?: number;\n\n /**\n * Список событий\n */\n events?: Array<Date | number>;\n\n /**\n * Список выходных\n */\n offDays?: Array<Date | number>;\n\n /**\n * Состояние открытия по умолчанию\n */\n defaultOpen?: boolean;\n\n /**\n * Позиционирование поповера с календарем\n */\n popoverPosition?: PopoverProps['position'];\n\n /**\n * z-index Popover\n */\n zIndexPopover?: PopoverProps['zIndex'];\n\n /**\n * Запрещает поповеру менять свою позицию.\n * Например, если места снизу недостаточно, то он все равно будет показан снизу\n */\n preventFlip?: boolean;\n\n /**\n * Календарь будет принимать ширину инпута\n */\n useAnchorWidth?: boolean;\n\n /**\n * Растягивает компонент на ширину контейнера\n */\n block?: boolean;\n\n /**\n * Отображение компонента в мобильном или десктопном виде\n */\n view?: 'desktop' | 'mobile';\n\n /**\n * Компонент инпута\n */\n InputComponent?: ElementType;\n\n /**\n * Запретить ввод с клавиатуры\n */\n disableUserInput?: boolean;\n };\n\ntype GetDatesRet = { formattedValue: string; dateFrom?: Date; dateTo?: Date; dateArr: string[] };\n\nexport const DateRangeInput = React.forwardRef<HTMLInputElement, DateRangeInputProps>(\n (\n {\n className,\n inputClassName,\n popoverClassName,\n disabled,\n readOnly,\n disableUserInput = false,\n picker,\n defaultValue = '',\n value: propValue,\n onChange,\n onComplete,\n onClose,\n rightAddons,\n useAnchorWidth,\n block,\n popoverPosition = 'bottom-start',\n zIndexPopover,\n preventFlip,\n InputComponent,\n Calendar,\n calendarProps = {},\n defaultMonth,\n minDate = calendarProps.minDate,\n maxDate = calendarProps.maxDate,\n offDays = calendarProps.offDays || [],\n events = calendarProps.events || [],\n defaultOpen = false,\n view = 'desktop',\n ...restProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const iconRef = useRef<HTMLButtonElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [value, setValue] = useState(propValue || defaultValue);\n const [open, setOpen] = useState(defaultOpen);\n\n const inputDisabled = disabled || readOnly;\n\n const calendarResponsive = calendarProps?.responsive ?? true;\n\n const { selectedFrom, selectedTo, updatePeriod, resetPeriod, setStart, setEnd } = usePeriod(\n { onPeriodChange: handlePeriodChange },\n );\n\n useEffect(() => {\n if (value) {\n setCalendarPeriod(getDates(value));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setValue((prevValue) => {\n if (selectedFrom && selectedTo) {\n const from = parseTimestampToDate(selectedFrom);\n const to = parseTimestampToDate(selectedTo);\n\n return `${from} - ${to}`;\n }\n if (selectedFrom && prevValue.length < DATE_FORMAT.length) {\n return parseTimestampToDate(selectedFrom);\n }\n\n return prevValue;\n });\n }, [selectedFrom, selectedTo]);\n\n useDidUpdateEffect(() => {\n const newPropValue = propValue || '';\n\n setValue((prevValue) => {\n if (prevValue === newPropValue) {\n return prevValue;\n }\n\n const dates = getDates(newPropValue);\n\n setCalendarPeriod(dates);\n\n return dates.formattedValue;\n });\n }, [propValue]);\n\n function getDates(val: string): GetDatesRet {\n const formattedValue = format(val);\n\n const dateArr = formattedValue.split('-').map((v) => v.trim());\n const dateFrom = dateArr[0] ? parseDateString(dateArr[0]) : undefined;\n const dateTo = dateArr[1] ? parseDateString(dateArr[1]) : undefined;\n\n return { formattedValue, dateFrom, dateTo, dateArr };\n }\n\n function setCalendarPeriod({ dateFrom, dateTo }: GetDatesRet) {\n setStart(dateFrom?.getTime());\n setEnd(dateTo?.getTime());\n }\n\n function handlePeriodChange(from?: number, to?: number) {\n if (from && !to && value.length === DATE_MASK.length) {\n setValue(parseTimestampToDate(from));\n } else if (\n (!from && !to && value.length === DATE_FORMAT.length) ||\n (from === to && value.length === DATE_MASK.length)\n ) {\n setValue('');\n }\n\n const dateFrom = from ? new Date(from) : undefined;\n const dateTo = to ? new Date(to) : undefined;\n\n const newValue = ([from, to].filter(Boolean) as number[])\n .map((timestamp) => parseTimestampToDate(timestamp))\n .join(' - ');\n\n onChange?.({\n dateFrom,\n dateTo,\n value: newValue,\n });\n\n if (dateFrom && dateTo) {\n onComplete?.({\n dateFrom,\n dateTo,\n value: newValue,\n });\n }\n }\n\n const handleInputWrapperFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n if (picker) {\n setOpen(true);\n }\n\n if (!open && event.target.tagName !== 'INPUT' && calendarRef.current) {\n calendarRef.current.focus();\n }\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n const target = (event.relatedTarget || document.activeElement) as HTMLElement;\n\n if (\n calendarRef.current?.contains(target) === false &&\n inputRef.current?.contains(target) === false &&\n iconRef.current?.contains(target) === false\n ) {\n setOpen(false);\n\n if (onClose) {\n onClose();\n }\n }\n }\n };\n\n // eslint-disable-next-line complexity\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const { value: newValue } = event.target;\n\n if (newValue.length > DATE_MASK.length) return;\n\n // Позволяем вводить только цифры, точки, дефис и пробелы\n if (/[^\\d. -]/.test(newValue)) {\n return;\n }\n\n const dots = newValue.match(/\\./g);\n const hyphen = newValue.match(/\\-/g);\n\n // Не даем вводить больше, чем 4 точки и 1 дефис\n if ((dots && dots.length > 4) || (hyphen && hyphen.length > 1)) {\n return;\n }\n\n const { formattedValue, dateFrom, dateTo, dateArr } = getDates(newValue);\n\n if (!dateFrom && !dateTo) {\n resetPeriod();\n } else if (selectedFrom && formattedValue.length < DATE_FORMAT.length) {\n setStart();\n } else if (selectedFrom && selectedTo) {\n setEnd();\n } else if (\n dateFrom &&\n dateFnsIsValid(dateFrom) &&\n dateArr[0]?.length === DATE_FORMAT.length &&\n dateFrom.getTime() !== selectedFrom\n ) {\n setStart(dateFrom.getTime());\n } else if (\n dateTo &&\n dateFnsIsValid(dateTo) &&\n dateArr[1]?.length === DATE_FORMAT.length &&\n dateTo.getTime() !== selectedTo\n ) {\n setEnd(dateTo.getTime());\n }\n\n setValue(formattedValue);\n\n onChange?.({ dateFrom, dateTo, value: formattedValue }, event);\n\n if (isCompleteDateInput(formattedValue)) {\n const valid = isValid(formattedValue, dateArr[0], dateArr[1]);\n\n if (!valid) return;\n\n if (dateFrom && dateTo) {\n onComplete?.({ dateFrom, dateTo, value: formattedValue }, event);\n }\n }\n };\n\n const handleCalendarClose = () => {\n if (view === 'mobile' && onClose) {\n onClose();\n }\n\n setOpen(false);\n };\n\n const handleClear = () => {\n setValue('');\n resetPeriod();\n };\n\n const handleCalendarChange = (date?: number) => {\n updatePeriod(date);\n };\n\n const handleCalendarWrapperMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n // Не дает инпуту терять фокус при выборе даты\n event.preventDefault();\n };\n\n const handleIconButtonClick = () => {\n if (!open) setOpen(true);\n\n if (view === 'desktop' && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const renderCalendar = () => {\n const activeMonth =\n (selectedTo && startOfMonth(selectedTo)) ||\n (selectedFrom && startOfMonth(selectedFrom));\n\n return Calendar ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onMouseDown={handleCalendarWrapperMouseDown}>\n <Calendar\n {...calendarProps}\n responsive={calendarResponsive}\n open={open}\n onClose={handleCalendarClose}\n ref={calendarRef}\n defaultMonth={activeMonth || defaultMonth}\n selectedFrom={selectedFrom}\n selectedTo={selectedTo}\n onChange={handleCalendarChange}\n minDate={minDate}\n maxDate={maxDate}\n offDays={offDays}\n events={events}\n />\n </div>\n ) : null;\n };\n\n return (\n <div\n className={cn(styles.component, className, {\n [styles.block]: block,\n })}\n onFocus={inputDisabled ? undefined : handleInputWrapperFocus}\n onBlur={handleBlur}\n >\n {InputComponent ? (\n <InputComponent\n autoComplete={picker ? 'off' : undefined}\n {...restProps}\n block={block}\n ref={mergeRefs([ref, inputRef])}\n value={value}\n onChange={handleChange}\n disabled={disabled}\n readOnly={readOnly}\n className={inputClassName}\n onClear={handleClear}\n disableUserInput={disableUserInput}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n {picker && (\n <IconButton\n className={styles.calendarIcon}\n ref={iconRef}\n onClick={inputDisabled ? undefined : handleIconButtonClick}\n icon={CalendarMIcon}\n size='s'\n />\n )}\n </React.Fragment>\n }\n />\n ) : null}\n {picker &&\n (view === 'desktop' ? (\n <Popover\n open={open}\n useAnchorWidth={useAnchorWidth}\n anchorElement={inputRef.current as HTMLElement}\n popperClassName={cn(styles.calendarContainer, {\n [styles.calendarResponsive]: calendarResponsive,\n })}\n className={popoverClassName}\n position={popoverPosition}\n offset={[0, 8]}\n withTransition={false}\n preventFlip={preventFlip}\n zIndex={zIndexPopover}\n >\n {renderCalendar()}\n </Popover>\n ) : (\n renderCalendar()\n ))}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './Component';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,26 +1,5 @@
|
|
|
1
|
-
/* */
|
|
2
1
|
:root {
|
|
3
2
|
--calendar-width: 344px;
|
|
4
|
-
|
|
5
|
-
/* Кнопки выбора месяцев и годов */
|
|
6
|
-
|
|
7
|
-
/* Шапка */
|
|
8
|
-
|
|
9
|
-
/* День */
|
|
10
|
-
|
|
11
|
-
/* today */
|
|
12
|
-
|
|
13
|
-
/* highlighted */
|
|
14
|
-
|
|
15
|
-
/* holidays */
|
|
16
|
-
|
|
17
|
-
/* range */
|
|
18
|
-
|
|
19
|
-
/* selected */
|
|
20
|
-
|
|
21
|
-
/* disabled */
|
|
22
|
-
|
|
23
|
-
/* marker */
|
|
24
3
|
}
|
|
25
4
|
:root {
|
|
26
5
|
--calendar-popover-border-radius: var(--border-radius-8);
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import { ConditionalProps, DateRangeInputProps } from
|
|
4
|
-
type DateRangeInputDesktopProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
|
|
2
|
+
import { ConditionalProps, DateRangeInputProps } from '../components/date-range-input';
|
|
3
|
+
export declare type DateRangeInputDesktopProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
|
|
5
4
|
/**
|
|
6
5
|
* @deprecated
|
|
7
6
|
* use UniversalDateInput instead
|
|
8
7
|
*/
|
|
9
|
-
declare const DateRangeInputDesktop: React.ForwardRefExoticComponent<
|
|
10
|
-
|
|
8
|
+
export declare const DateRangeInputDesktop: React.ForwardRefExoticComponent<(Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
9
|
+
picker: true;
|
|
10
|
+
onClose?: (() => void) | undefined;
|
|
11
|
+
}, "ref"> | Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
12
|
+
picker?: false | undefined;
|
|
13
|
+
onClose?: undefined;
|
|
14
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -10,3 +10,4 @@ import { DateRangeInput } from '../components/date-range-input/Component.js';
|
|
|
10
10
|
const DateRangeInputDesktop = forwardRef((props, ref) => (React.createElement(DateRangeInput, { InputComponent: InputDesktop, Calendar: CalendarDesktop, ...props, ref: ref })));
|
|
11
11
|
|
|
12
12
|
export { DateRangeInputDesktop };
|
|
13
|
+
//# sourceMappingURL=Component.desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { CalendarDesktop } from '@alfalab/core-components-calendar/desktop';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop } from '@alfalab/core-components-input/desktop';\n\nimport {\n ConditionalProps,\n DateRangeInput,\n DateRangeInputProps,\n} from '../components/date-range-input';\n\nexport type DateRangeInputDesktopProps = Omit<\n DateRangeInputProps,\n 'view' | 'picker' | 'onClose' | 'InputComponent'\n> &\n ConditionalProps;\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateRangeInputDesktop = forwardRef<HTMLInputElement, DateRangeInputDesktopProps>(\n (props, ref) => (\n <DateRangeInput\n InputComponent={InputDesktop}\n Calendar={CalendarDesktop}\n {...props}\n ref={ref}\n />\n ),\n);\n"],"names":[],"mappings":";;;;;AAmBA;;;AAGG;AACI,MAAM,qBAAqB,GAAG,UAAU,CAC3C,CAAC,KAAK,EAAE,GAAG,MACP,KAAC,CAAA,aAAA,CAAA,cAAc,EACX,EAAA,cAAc,EAAE,YAAY,EAC5B,QAAQ,EAAE,eAAe,EAAA,GACrB,KAAK,EACT,GAAG,EAAE,GAAG,EACV,CAAA,CACL;;;;"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export {};
|
|
1
|
+
export * from './Component.desktop';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/moderncssm/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export { DateRangeInputResponsive as DateRangeInput } from
|
|
2
|
-
export type { DateRangeInputResponsiveProps as DateRangeInputProps } from
|
|
3
|
-
export {};
|
|
1
|
+
export { DateRangeInputResponsive as DateRangeInput } from './Component.responsive';
|
|
2
|
+
export type { DateRangeInputResponsiveProps as DateRangeInputProps } from './Component.responsive';
|