@snabcentr/vue-ui-lib 3.63.0 → 3.65.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.
@@ -0,0 +1,57 @@
1
+ import { IClearable } from '../../../properties/interfaces/i-clearable';
2
+ import { IDateRangeDisabled } from '../../../properties/interfaces/i-date-range-disabled';
3
+ import { IDatePeriod, ILabeledPeriod } from '@snabcentr/common-lib';
4
+ /**
5
+ * Диалог «Выберите период» с сеткой месяцев и стандартными периодами.
6
+ */
7
+ declare const _default: import('vue').DefineComponent<IClearable & IDateRangeDisabled & {
8
+ /**
9
+ * Признак отображения диалога.
10
+ */
11
+ show: boolean;
12
+ /**
13
+ * Текущее значение периода — начальное состояние черновика.
14
+ */
15
+ dateRange?: IDatePeriod;
16
+ /**
17
+ * Дополнительные периоды для вида «стандартные периоды».
18
+ */
19
+ customPeriods?: Record<string, ILabeledPeriod>;
20
+ /**
21
+ * Формат даты.
22
+ */
23
+ dateFormat?: string;
24
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
25
+ select: (value: IDatePeriod) => any;
26
+ "update:show": (show: boolean) => any;
27
+ }, string, import('vue').PublicProps, Readonly<IClearable & IDateRangeDisabled & {
28
+ /**
29
+ * Признак отображения диалога.
30
+ */
31
+ show: boolean;
32
+ /**
33
+ * Текущее значение периода — начальное состояние черновика.
34
+ */
35
+ dateRange?: IDatePeriod;
36
+ /**
37
+ * Дополнительные периоды для вида «стандартные периоды».
38
+ */
39
+ customPeriods?: Record<string, ILabeledPeriod>;
40
+ /**
41
+ * Формат даты.
42
+ */
43
+ dateFormat?: string;
44
+ }> & Readonly<{
45
+ onSelect?: ((value: IDatePeriod) => any) | undefined;
46
+ "onUpdate:show"?: ((show: boolean) => any) | undefined;
47
+ }>, {
48
+ disabled: {
49
+ from?: boolean;
50
+ to?: boolean;
51
+ };
52
+ clearable: boolean;
53
+ dateFormat: string;
54
+ customPeriods: Record<string, ILabeledPeriod>;
55
+ dateRange: IDatePeriod;
56
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
57
+ export default _default;
@@ -0,0 +1,66 @@
1
+ import { IClearable } from '../../../properties/interfaces/i-clearable';
2
+ import { IDateRangeDisabled } from '../../../properties/interfaces/i-date-range-disabled';
3
+ /**
4
+ * Пара полей «от»/«до» периода дат.
5
+ */
6
+ declare const _default: import('vue').DefineComponent<IClearable & IDateRangeDisabled & {
7
+ /**
8
+ * Начало периода.
9
+ */
10
+ from?: Date | null;
11
+ /**
12
+ * Окончание периода.
13
+ */
14
+ to?: Date | null;
15
+ /**
16
+ * Подсказка в пустом поле От.
17
+ */
18
+ placeholderFrom?: string;
19
+ /**
20
+ * Подсказка в пустом поле До.
21
+ */
22
+ placeholderTo?: string;
23
+ /**
24
+ * Формат даты.
25
+ */
26
+ dateFormat?: string;
27
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
28
+ "update:from": (value: Date | null) => any;
29
+ "update:to": (value: Date | null) => any;
30
+ }, string, import('vue').PublicProps, Readonly<IClearable & IDateRangeDisabled & {
31
+ /**
32
+ * Начало периода.
33
+ */
34
+ from?: Date | null;
35
+ /**
36
+ * Окончание периода.
37
+ */
38
+ to?: Date | null;
39
+ /**
40
+ * Подсказка в пустом поле От.
41
+ */
42
+ placeholderFrom?: string;
43
+ /**
44
+ * Подсказка в пустом поле До.
45
+ */
46
+ placeholderTo?: string;
47
+ /**
48
+ * Формат даты.
49
+ */
50
+ dateFormat?: string;
51
+ }> & Readonly<{
52
+ "onUpdate:from"?: ((value: Date | null) => any) | undefined;
53
+ "onUpdate:to"?: ((value: Date | null) => any) | undefined;
54
+ }>, {
55
+ disabled: {
56
+ from?: boolean;
57
+ to?: boolean;
58
+ };
59
+ clearable: boolean;
60
+ to: Date | null;
61
+ from: Date | null;
62
+ dateFormat: string;
63
+ placeholderFrom: string;
64
+ placeholderTo: string;
65
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
66
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { IDatePeriod } from '@snabcentr/common-lib';
2
+ /**
3
+ * Ключ хранилища для последнего выбранного вида диалога выбора периода.
4
+ */
5
+ export declare const DATE_RANGE_DIALOG_MODE_STORAGE_KEY = "date-range.dialog.mode";
6
+ /**
7
+ * Краткие названия месяцев для сеток выбора: заданы явно и не зависят от локали календаря.
8
+ */
9
+ export declare const MONTH_LABELS: string[];
10
+ /**
11
+ * Нормализует границы периода: «от» приводится к началу дня, «до» — к концу дня, границы могут быть
12
+ * не заданы по отдельности (полуоткрытый период). Инвертированные границы переставляются местами;
13
+ * если одна из сторон заблокирована, вместо перестановки свободная граница подтягивается к заблокированной.
14
+ *
15
+ * @param from Начало периода.
16
+ * @param to Окончание периода.
17
+ * @param locked Признаки блокировки сторон.
18
+ * @param locked.from Признак блокировки стороны От.
19
+ * @param locked.to Признак блокировки стороны До.
20
+ */
21
+ export declare const normalizePeriod: (from?: Date | null, to?: Date | null, locked?: {
22
+ from?: boolean;
23
+ to?: boolean;
24
+ }) => IDatePeriod;
@@ -0,0 +1,38 @@
1
+ import { IClearable } from '../../../properties/interfaces/i-clearable';
2
+ import { IDisabled } from '../../../properties/interfaces/i-disabled';
3
+ import { IPlaceholder } from '../../../properties/interfaces/i-placeholder';
4
+ /**
5
+ * Поле одиночной даты: слева в панели год и месяцы, справа календарь дней.
6
+ */
7
+ declare const _default: import('vue').DefineComponent<IClearable & IDisabled & IPlaceholder & {
8
+ /**
9
+ * Значение даты.
10
+ */
11
+ value?: Date | null;
12
+ /**
13
+ * Формат даты.
14
+ */
15
+ dateFormat?: string;
16
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
17
+ "update:value": (value: Date | null, ...additionalParams: any[]) => any;
18
+ }, string, import('vue').PublicProps, Readonly<IClearable & IDisabled & IPlaceholder & {
19
+ /**
20
+ * Значение даты.
21
+ */
22
+ value?: Date | null;
23
+ /**
24
+ * Формат даты.
25
+ */
26
+ dateFormat?: string;
27
+ }> & Readonly<{
28
+ "onUpdate:value"?: ((value: Date | null, ...additionalParams: any[]) => any) | undefined;
29
+ }>, {
30
+ value: Date | null;
31
+ disabled: boolean;
32
+ placeholder: string;
33
+ clearable: boolean;
34
+ dateFormat: string;
35
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
36
+ pickerReference: unknown;
37
+ }, any>;
38
+ export default _default;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Сетка месяцев на три года с выбором диапазона двумя кликами, протяжкой или клавиатурой.
3
+ */
4
+ declare const _default: import('vue').DefineComponent<{
5
+ /**
6
+ * Начало выбранного периода.
7
+ */
8
+ from?: Date | null;
9
+ /**
10
+ * Окончание выбранного периода.
11
+ */
12
+ to?: Date | null;
13
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
14
+ select: (value: {
15
+ from: Date;
16
+ to: Date;
17
+ }) => any;
18
+ }, string, import('vue').PublicProps, Readonly<{
19
+ /**
20
+ * Начало выбранного периода.
21
+ */
22
+ from?: Date | null;
23
+ /**
24
+ * Окончание выбранного периода.
25
+ */
26
+ to?: Date | null;
27
+ }> & Readonly<{
28
+ onSelect?: ((value: {
29
+ from: Date;
30
+ to: Date;
31
+ }) => any) | undefined;
32
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
33
+ export default _default;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Сайдбар панели выбора даты: степпер года, сетка месяцев и кнопка «Сегодня».
3
+ */
4
+ declare const _default: import('vue').DefineComponent<{
5
+ /**
6
+ * Отображаемый год.
7
+ */
8
+ year: number;
9
+ /**
10
+ * Индекс подсвечиваемого месяца (0–11) либо null, если месяц не подсвечивается.
11
+ */
12
+ month?: number | null;
13
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
14
+ "update:year": (year: number) => any;
15
+ "select-month": (month: number) => any;
16
+ today: () => any;
17
+ }, string, import('vue').PublicProps, Readonly<{
18
+ /**
19
+ * Отображаемый год.
20
+ */
21
+ year: number;
22
+ /**
23
+ * Индекс подсвечиваемого месяца (0–11) либо null, если месяц не подсвечивается.
24
+ */
25
+ month?: number | null;
26
+ }> & Readonly<{
27
+ "onUpdate:year"?: ((year: number) => any) | undefined;
28
+ "onSelect-month"?: ((month: number) => any) | undefined;
29
+ onToday?: (() => any) | undefined;
30
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
31
+ export default _default;
@@ -0,0 +1,31 @@
1
+ import { ILabeledPeriod } from '@snabcentr/common-lib';
2
+ import { SelectOption } from 'naive-ui';
3
+ /**
4
+ * Вид «стандартные периоды»: список вариантов выбранной группы и кнопки групп.
5
+ */
6
+ declare const _default: import('vue').DefineComponent<{
7
+ /**
8
+ * Ключ активного (последнего применённого) варианта периода.
9
+ */
10
+ activeKey?: string | null;
11
+ /**
12
+ * Дополнительные периоды, отображаются отдельной группой в конце списка групп.
13
+ */
14
+ customPeriods?: Record<string, ILabeledPeriod>;
15
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
16
+ apply: (option: SelectOption) => any;
17
+ preview: (option?: SelectOption | undefined) => any;
18
+ }, string, import('vue').PublicProps, Readonly<{
19
+ /**
20
+ * Ключ активного (последнего применённого) варианта периода.
21
+ */
22
+ activeKey?: string | null;
23
+ /**
24
+ * Дополнительные периоды, отображаются отдельной группой в конце списка групп.
25
+ */
26
+ customPeriods?: Record<string, ILabeledPeriod>;
27
+ }> & Readonly<{
28
+ onApply?: ((option: SelectOption) => any) | undefined;
29
+ onPreview?: ((option?: SelectOption | undefined) => any) | undefined;
30
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
31
+ export default _default;
@@ -1,102 +1,69 @@
1
1
  import { IClearable } from '../../properties/interfaces/i-clearable';
2
- import { IDatePeriod } from '@snabcentr/common-lib';
2
+ import { IDateRangeDisabled } from '../../properties/interfaces/i-date-range-disabled';
3
+ import { IPredefinedDateRanges } from '../../properties/interfaces/i-predefined-date-ranges';
4
+ import { IDatePeriod, ILabeledPeriod } from '@snabcentr/common-lib';
3
5
  /**
4
- * Компонент выбора не строгого периода дат.
6
+ * Компонент выбора периода дат: два отдельных поля даты и кнопка «…» с диалогом выбора периода.
5
7
  */
6
- declare const _default: import('vue').DefineComponent<IClearable & {
8
+ declare const _default: import('vue').DefineComponent<IClearable & IDateRangeDisabled & IPredefinedDateRanges & {
7
9
  /**
8
10
  * Период времени.
9
11
  */
10
12
  dateRange?: IDatePeriod;
11
13
  /**
12
- * Формат даты.
14
+ * Признак необходимости показать в диалоге группу предустановленных диапазонов дат по умолчанию
15
+ * (год, полугодия, кварталы, периоды нарастающим итогом) в дополнение к стандартным периодам.
13
16
  */
14
- dateFormat?: string;
17
+ useDefaultPredefinedDateRanges?: boolean;
15
18
  /**
16
- * Признак блокировки поля.
19
+ * Подсказка в пустом поле От.
17
20
  */
18
- disabled?: {
19
- /**
20
- * Признак блокировки поля От.
21
- */
22
- from?: boolean;
23
- /**
24
- * Признак блокировки поля До.
25
- */
26
- to?: boolean;
27
- };
21
+ placeholderFrom?: string;
28
22
  /**
29
- * Список предустановленных диапазонов дат, которые можно выбрать.
23
+ * Подсказка в пустом поле До.
30
24
  */
31
- predefinedDateRanges?: Record<string, IDatePeriod & {
32
- /**
33
- * Текстовое описание.
34
- */
35
- label: string;
36
- }>;
25
+ placeholderTo?: string;
37
26
  /**
38
- * Признак необходимости использовать предустановленные диапазоны дат.
27
+ * Формат даты.
39
28
  */
40
- useDefaultPredefinedDateRanges?: boolean;
29
+ dateFormat?: string;
41
30
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
42
31
  "update:date-range": (value?: IDatePeriod | undefined) => any;
43
- }, string, import('vue').PublicProps, Readonly<IClearable & {
32
+ }, string, import('vue').PublicProps, Readonly<IClearable & IDateRangeDisabled & IPredefinedDateRanges & {
44
33
  /**
45
34
  * Период времени.
46
35
  */
47
36
  dateRange?: IDatePeriod;
48
37
  /**
49
- * Формат даты.
38
+ * Признак необходимости показать в диалоге группу предустановленных диапазонов дат по умолчанию
39
+ * (год, полугодия, кварталы, периоды нарастающим итогом) в дополнение к стандартным периодам.
50
40
  */
51
- dateFormat?: string;
41
+ useDefaultPredefinedDateRanges?: boolean;
52
42
  /**
53
- * Признак блокировки поля.
43
+ * Подсказка в пустом поле От.
54
44
  */
55
- disabled?: {
56
- /**
57
- * Признак блокировки поля От.
58
- */
59
- from?: boolean;
60
- /**
61
- * Признак блокировки поля До.
62
- */
63
- to?: boolean;
64
- };
45
+ placeholderFrom?: string;
65
46
  /**
66
- * Список предустановленных диапазонов дат, которые можно выбрать.
47
+ * Подсказка в пустом поле До.
67
48
  */
68
- predefinedDateRanges?: Record<string, IDatePeriod & {
69
- /**
70
- * Текстовое описание.
71
- */
72
- label: string;
73
- }>;
49
+ placeholderTo?: string;
74
50
  /**
75
- * Признак необходимости использовать предустановленные диапазоны дат.
51
+ * Формат даты.
76
52
  */
77
- useDefaultPredefinedDateRanges?: boolean;
53
+ dateFormat?: string;
78
54
  }> & Readonly<{
79
55
  "onUpdate:date-range"?: ((value?: IDatePeriod | undefined) => any) | undefined;
80
56
  }>, {
81
57
  disabled: {
82
- /**
83
- * Признак блокировки поля От.
84
- */
85
58
  from?: boolean;
86
- /**
87
- * Признак блокировки поля До.
88
- */
89
59
  to?: boolean;
90
60
  };
91
61
  clearable: boolean;
92
- dateRange: IDatePeriod;
93
62
  dateFormat: string;
94
- predefinedDateRanges: Record<string, IDatePeriod & {
95
- /**
96
- * Текстовое описание.
97
- */
98
- label: string;
99
- }>;
63
+ placeholderFrom: string;
64
+ placeholderTo: string;
65
+ dateRange: IDatePeriod;
66
+ predefinedDateRanges: Record<string, ILabeledPeriod>;
100
67
  useDefaultPredefinedDateRanges: boolean;
101
68
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
102
69
  export default _default;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Признак блокировки сторон периода дат.
3
+ */
4
+ export interface IDateRangeDisabled {
5
+ /**
6
+ * Признак блокировки сторон периода дат.
7
+ */
8
+ disabled?: {
9
+ /**
10
+ * Признак блокировки поля От.
11
+ */
12
+ from?: boolean;
13
+ /**
14
+ * Признак блокировки поля До.
15
+ */
16
+ to?: boolean;
17
+ };
18
+ }
@@ -0,0 +1,10 @@
1
+ import { ILabeledPeriod } from '@snabcentr/common-lib';
2
+ /**
3
+ * Предустановленные диапазоны дат, доступные для выбора.
4
+ */
5
+ export interface IPredefinedDateRanges {
6
+ /**
7
+ * Список предустановленных диапазонов дат, которые можно выбрать.
8
+ */
9
+ predefinedDateRanges?: Record<string, ILabeledPeriod>;
10
+ }
@@ -1,5 +1,6 @@
1
1
  export * from './i-clearable';
2
2
  export * from './i-client-short-info-property';
3
+ export * from './i-date-range-disabled';
3
4
  export * from './i-consistent-menu-width';
4
5
  export * from './i-client-id';
5
6
  export * from './i-debounced';
@@ -11,6 +12,7 @@ export * from './i-order-property';
11
12
  export * from './i-order-short-info-property';
12
13
  export * from './i-orders-table-fields';
13
14
  export * from './i-placeholder';
15
+ export * from './i-predefined-date-ranges';
14
16
  export * from './i-product-or-category-search-type';
15
17
  export * from './i-value';
16
18
  export * from './i-clearable-value';
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "keywords": [],
5
5
  "author": "Sergey S. Smirnov <dev@snabcentr.com>",
6
6
  "type": "module",
7
- "version": "3.63.0",
7
+ "version": "3.65.0",
8
8
  "license": "ISC",
9
9
  "scripts": {
10
10
  "dev": "vite",
@@ -12,6 +12,7 @@
12
12
  "build-watch": "vite build -w",
13
13
  "lint_staged_template": "eslint --ignore-path .gitignore --cache --cache-location .eslintcache",
14
14
  "lint": "eslint --ignore-path .gitignore --cache --cache-strategy content --cache-location .eslintcache src",
15
+ "lint:staged": "npx lint-staged",
15
16
  "preview": "vite preview",
16
17
  "publish:lib": "npm publish",
17
18
  "init_git_hooks": "husky",
@@ -45,7 +46,7 @@
45
46
  "@iconify-json/logos": "^1.2.9",
46
47
  "@iconify-json/mdi": "^1.2.3",
47
48
  "@iconify-json/tabler": "^1.2.23",
48
- "@snabcentr/common-lib": "^1.90.1 || ^2.7.0",
49
+ "@snabcentr/common-lib": "^1.93.0 || ^2.11.0",
49
50
  "@tailwindcss/container-queries": "^0.1.1",
50
51
  "date-fns": "^3.6.0",
51
52
  "libphonenumber-js": "^1.12.23",