@tailng-ui/primitives 0.54.0 → 0.56.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.
Files changed (63) hide show
  1. package/package.json +2 -2
  2. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.d.ts +25 -0
  3. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.d.ts.map +1 -0
  4. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.js +109 -0
  5. package/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.js.map +1 -0
  6. package/src/lib/form/date-range-picker/date-range-picker.adapters.d.ts +5 -0
  7. package/src/lib/form/date-range-picker/date-range-picker.adapters.d.ts.map +1 -0
  8. package/src/lib/form/date-range-picker/date-range-picker.adapters.js +9 -0
  9. package/src/lib/form/date-range-picker/date-range-picker.adapters.js.map +1 -0
  10. package/src/lib/form/date-range-picker/date-range-picker.state.d.ts +10 -0
  11. package/src/lib/form/date-range-picker/date-range-picker.state.d.ts.map +1 -0
  12. package/src/lib/form/date-range-picker/date-range-picker.state.js +35 -0
  13. package/src/lib/form/date-range-picker/date-range-picker.state.js.map +1 -0
  14. package/src/lib/form/date-range-picker/date-range-picker.types.d.ts +280 -0
  15. package/src/lib/form/date-range-picker/date-range-picker.types.d.ts.map +1 -0
  16. package/src/lib/form/date-range-picker/date-range-picker.types.js +1 -0
  17. package/src/lib/form/date-range-picker/date-range-picker.types.js.map +1 -0
  18. package/src/lib/form/date-range-picker/date-range-picker.utils.d.ts +54 -0
  19. package/src/lib/form/date-range-picker/date-range-picker.utils.d.ts.map +1 -0
  20. package/src/lib/form/date-range-picker/date-range-picker.utils.js +37 -0
  21. package/src/lib/form/date-range-picker/date-range-picker.utils.js.map +1 -0
  22. package/src/lib/form/date-range-picker/index.d.ts +7 -0
  23. package/src/lib/form/date-range-picker/index.d.ts.map +1 -0
  24. package/src/lib/form/date-range-picker/index.js +7 -0
  25. package/src/lib/form/date-range-picker/index.js.map +1 -0
  26. package/src/lib/form/date-range-picker/tng-date-range-picker.d.ts +5 -0
  27. package/src/lib/form/date-range-picker/tng-date-range-picker.d.ts.map +1 -0
  28. package/src/lib/form/date-range-picker/tng-date-range-picker.js +1970 -0
  29. package/src/lib/form/date-range-picker/tng-date-range-picker.js.map +1 -0
  30. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.d.ts +87 -0
  31. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.d.ts.map +1 -0
  32. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.js +447 -0
  33. package/src/lib/form/date-range-picker/tng-date-range-picker.overlay.js.map +1 -0
  34. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.d.ts +3155 -0
  35. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.d.ts.map +1 -0
  36. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.js +940 -0
  37. package/src/lib/form/date-range-picker/tng-date-range-picker.parts.js.map +1 -0
  38. package/src/lib/form/datepicker/datepicker.adapters.d.ts.map +1 -1
  39. package/src/lib/form/datepicker/datepicker.adapters.js +4 -189
  40. package/src/lib/form/datepicker/datepicker.adapters.js.map +1 -1
  41. package/src/lib/form/datepicker/datepicker.state.d.ts.map +1 -1
  42. package/src/lib/form/datepicker/datepicker.state.js +7 -86
  43. package/src/lib/form/datepicker/datepicker.state.js.map +1 -1
  44. package/src/lib/form/datepicker/datepicker.utils.d.ts +6 -28
  45. package/src/lib/form/datepicker/datepicker.utils.d.ts.map +1 -1
  46. package/src/lib/form/datepicker/datepicker.utils.js +14 -228
  47. package/src/lib/form/datepicker/datepicker.utils.js.map +1 -1
  48. package/src/lib/form/index.d.ts +2 -0
  49. package/src/lib/form/index.d.ts.map +1 -1
  50. package/src/lib/form/index.js +2 -0
  51. package/src/lib/form/index.js.map +1 -1
  52. package/src/lib/form/number-range/index.d.ts +3 -0
  53. package/src/lib/form/number-range/index.d.ts.map +1 -0
  54. package/src/lib/form/number-range/index.js +3 -0
  55. package/src/lib/form/number-range/index.js.map +1 -0
  56. package/src/lib/form/number-range/tng-number-range.d.ts +26 -0
  57. package/src/lib/form/number-range/tng-number-range.d.ts.map +1 -0
  58. package/src/lib/form/number-range/tng-number-range.js +49 -0
  59. package/src/lib/form/number-range/tng-number-range.js.map +1 -0
  60. package/src/lib/form/number-range/tng-number-range.types.d.ts +12 -0
  61. package/src/lib/form/number-range/tng-number-range.types.d.ts.map +1 -0
  62. package/src/lib/form/number-range/tng-number-range.types.js +1 -0
  63. package/src/lib/form/number-range/tng-number-range.types.js.map +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailng-ui/primitives",
3
- "version": "0.54.0",
3
+ "version": "0.56.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "peerDependencies": {
19
19
  "@angular/core": "^21.1.0",
20
- "@tailng-ui/cdk": "^0.40.0",
20
+ "@tailng-ui/cdk": "^0.42.0",
21
21
  "tslib": "^2.3.0"
22
22
  },
23
23
  "sideEffects": false
@@ -0,0 +1,25 @@
1
+ import { vi } from 'vitest';
2
+ import type { TngDateAdapter, TngDateRangePickerConfig, TngDateRangePickerController, TngDateRangePickerEvent } from '../date-range-picker.types';
3
+ export declare function d(value: string): Date;
4
+ export declare function dateKey(date: Date): string;
5
+ export declare function createController(config?: Partial<TngDateRangePickerConfig<Date>>): TngDateRangePickerController<Date>;
6
+ export declare function collectEvents(controller: TngDateRangePickerController<Date>): readonly TngDateRangePickerEvent<Date>[];
7
+ export declare function keyboardEvent(key: string, overrides?: Partial<Readonly<{
8
+ altKey: boolean;
9
+ ctrlKey: boolean;
10
+ metaKey: boolean;
11
+ shiftKey: boolean;
12
+ }>>): Readonly<{
13
+ altKey: boolean;
14
+ ctrlKey: boolean;
15
+ key: string;
16
+ metaKey: boolean;
17
+ preventDefault: ReturnType<typeof vi.fn>;
18
+ shiftKey: boolean;
19
+ }>;
20
+ export declare function appendFocusable(tagName?: string): HTMLElement;
21
+ export declare function cleanupDom(): void;
22
+ export declare function createCalendarSystemAdapter(): TngDateAdapter<Date>;
23
+ export declare function createSlashInputAdapter(): TngDateAdapter<Date>;
24
+ export declare function createOverlayMonthYearAdapter(): TngDateAdapter<Date>;
25
+ //# sourceMappingURL=tng-date-range-picker.test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-date-range-picker.test-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAK5B,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMrC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK1C;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAM,GACnD,4BAA4B,CAAC,IAAI,CAAC,CAQpC;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,4BAA4B,CAAC,IAAI,CAAC,GAC7C,SAAS,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAM1C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,OAAO,CAChB,QAAQ,CAAC;IACP,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CACE,GACL,QAAQ,CAAC;IACV,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CASD;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAW,GAAG,WAAW,CAK/D;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAAC,IAAI,CAAC,CAUlE;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CAAC,IAAI,CAAC,CAiC9D;AAED,wBAAgB,6BAA6B,IAAI,cAAc,CAAC,IAAI,CAAC,CAepE"}
@@ -0,0 +1,109 @@
1
+ import { vi } from 'vitest';
2
+ import { createDateRangePickerController, defaultDateRangePickerDateAdapter, } from '../tng-date-range-picker';
3
+ export function d(value) {
4
+ const parsed = defaultDateRangePickerDateAdapter.parse(value, 'en-US');
5
+ if (parsed === null) {
6
+ throw new Error(`Unable to parse date: ${value}`);
7
+ }
8
+ return parsed;
9
+ }
10
+ export function dateKey(date) {
11
+ const year = date.getFullYear().toString().padStart(4, '0');
12
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
13
+ const day = date.getDate().toString().padStart(2, '0');
14
+ return `${year}-${month}-${day}`;
15
+ }
16
+ export function createController(config = {}) {
17
+ return createDateRangePickerController({
18
+ closeOnSelect: false,
19
+ locale: 'en-US',
20
+ showOutsideDays: true,
21
+ today: d('2024-04-18'),
22
+ ...config,
23
+ });
24
+ }
25
+ export function collectEvents(controller) {
26
+ const events = [];
27
+ controller.subscribe((event) => {
28
+ events.push(event);
29
+ });
30
+ return events;
31
+ }
32
+ export function keyboardEvent(key, overrides = {}) {
33
+ return {
34
+ altKey: overrides.altKey ?? false,
35
+ ctrlKey: overrides.ctrlKey ?? false,
36
+ key,
37
+ metaKey: overrides.metaKey ?? false,
38
+ preventDefault: vi.fn(),
39
+ shiftKey: overrides.shiftKey ?? false,
40
+ };
41
+ }
42
+ export function appendFocusable(tagName = 'button') {
43
+ const element = document.createElement(tagName);
44
+ element.tabIndex = 0;
45
+ document.body.appendChild(element);
46
+ return element;
47
+ }
48
+ export function cleanupDom() {
49
+ document.body.innerHTML = '';
50
+ }
51
+ export function createCalendarSystemAdapter() {
52
+ return Object.freeze({
53
+ ...defaultDateRangePickerDateAdapter,
54
+ format: (date, format, locale) => {
55
+ if (format === 'year-label') {
56
+ return String(defaultDateRangePickerDateAdapter.getYear(date) + 543);
57
+ }
58
+ return defaultDateRangePickerDateAdapter.format(date, format, locale);
59
+ },
60
+ });
61
+ }
62
+ export function createSlashInputAdapter() {
63
+ return Object.freeze({
64
+ ...defaultDateRangePickerDateAdapter,
65
+ format: (date, format, locale) => {
66
+ if (format === 'input') {
67
+ const year = defaultDateRangePickerDateAdapter.getYear(date).toString().padStart(4, '0');
68
+ const month = (defaultDateRangePickerDateAdapter.getMonth(date) + 1)
69
+ .toString()
70
+ .padStart(2, '0');
71
+ const day = defaultDateRangePickerDateAdapter.getDate(date).toString().padStart(2, '0');
72
+ return `${year}/${month}/${day}`;
73
+ }
74
+ return defaultDateRangePickerDateAdapter.format(date, format, locale);
75
+ },
76
+ parse: (text, locale) => {
77
+ const match = /^(\d{4})\/(\d{2})\/(\d{2})$/.exec(text.trim());
78
+ if (match !== null) {
79
+ const year = Number(match[1]);
80
+ const month = Number(match[2]) - 1;
81
+ const day = Number(match[3]);
82
+ const date = defaultDateRangePickerDateAdapter.createDate(year, month, day);
83
+ return defaultDateRangePickerDateAdapter.isValid(date) &&
84
+ defaultDateRangePickerDateAdapter.getYear(date) === year &&
85
+ defaultDateRangePickerDateAdapter.getMonth(date) === month &&
86
+ defaultDateRangePickerDateAdapter.getDate(date) === day
87
+ ? date
88
+ : null;
89
+ }
90
+ return defaultDateRangePickerDateAdapter.parse(text, locale);
91
+ },
92
+ });
93
+ }
94
+ export function createOverlayMonthYearAdapter() {
95
+ return Object.freeze({
96
+ ...defaultDateRangePickerDateAdapter,
97
+ format: (date, format, locale) => {
98
+ if (format === 'month-year') {
99
+ const month = (defaultDateRangePickerDateAdapter.getMonth(date) + 1)
100
+ .toString()
101
+ .padStart(2, '0');
102
+ const year = defaultDateRangePickerDateAdapter.getYear(date).toString().padStart(4, '0');
103
+ return `${month}/${year}`;
104
+ }
105
+ return defaultDateRangePickerDateAdapter.format(date, format, locale);
106
+ },
107
+ });
108
+ }
109
+ //# sourceMappingURL=tng-date-range-picker.test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-date-range-picker.test-helpers.js","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/__tests__/tng-date-range-picker.test-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { vi } from 'vitest';\nimport {\n createDateRangePickerController,\n defaultDateRangePickerDateAdapter,\n} from '../tng-date-range-picker';\nimport type {\n TngDateAdapter,\n TngDateRangePickerConfig,\n TngDateRangePickerController,\n TngDateRangePickerEvent,\n} from '../date-range-picker.types';\n\nexport function d(value: string): Date {\n const parsed = defaultDateRangePickerDateAdapter.parse(value, 'en-US');\n if (parsed === null) {\n throw new Error(`Unable to parse date: ${value}`);\n }\n return parsed;\n}\n\nexport function dateKey(date: Date): string {\n const year = date.getFullYear().toString().padStart(4, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\nexport function createController(\n config: Partial<TngDateRangePickerConfig<Date>> = {},\n): TngDateRangePickerController<Date> {\n return createDateRangePickerController<Date>({\n closeOnSelect: false,\n locale: 'en-US',\n showOutsideDays: true,\n today: d('2024-04-18'),\n ...config,\n });\n}\n\nexport function collectEvents(\n controller: TngDateRangePickerController<Date>,\n): readonly TngDateRangePickerEvent<Date>[] {\n const events: TngDateRangePickerEvent<Date>[] = [];\n controller.subscribe((event) => {\n events.push(event);\n });\n return events;\n}\n\nexport function keyboardEvent(\n key: string,\n overrides: Partial<\n Readonly<{\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n }>\n > = {},\n): Readonly<{\n altKey: boolean;\n ctrlKey: boolean;\n key: string;\n metaKey: boolean;\n preventDefault: ReturnType<typeof vi.fn>;\n shiftKey: boolean;\n}> {\n return {\n altKey: overrides.altKey ?? false,\n ctrlKey: overrides.ctrlKey ?? false,\n key,\n metaKey: overrides.metaKey ?? false,\n preventDefault: vi.fn(),\n shiftKey: overrides.shiftKey ?? false,\n };\n}\n\nexport function appendFocusable(tagName = 'button'): HTMLElement {\n const element = document.createElement(tagName);\n element.tabIndex = 0;\n document.body.appendChild(element);\n return element;\n}\n\nexport function cleanupDom(): void {\n document.body.innerHTML = '';\n}\n\nexport function createCalendarSystemAdapter(): TngDateAdapter<Date> {\n return Object.freeze({\n ...defaultDateRangePickerDateAdapter,\n format: (date, format, locale) => {\n if (format === 'year-label') {\n return String(defaultDateRangePickerDateAdapter.getYear(date) + 543);\n }\n return defaultDateRangePickerDateAdapter.format(date, format, locale);\n },\n });\n}\n\nexport function createSlashInputAdapter(): TngDateAdapter<Date> {\n return Object.freeze({\n ...defaultDateRangePickerDateAdapter,\n format: (date, format, locale) => {\n if (format === 'input') {\n const year = defaultDateRangePickerDateAdapter.getYear(date).toString().padStart(4, '0');\n const month = (defaultDateRangePickerDateAdapter.getMonth(date) + 1)\n .toString()\n .padStart(2, '0');\n const day = defaultDateRangePickerDateAdapter.getDate(date).toString().padStart(2, '0');\n return `${year}/${month}/${day}`;\n }\n\n return defaultDateRangePickerDateAdapter.format(date, format, locale);\n },\n parse: (text, locale) => {\n const match = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/.exec(text.trim());\n if (match !== null) {\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = defaultDateRangePickerDateAdapter.createDate(year, month, day);\n return defaultDateRangePickerDateAdapter.isValid(date) &&\n defaultDateRangePickerDateAdapter.getYear(date) === year &&\n defaultDateRangePickerDateAdapter.getMonth(date) === month &&\n defaultDateRangePickerDateAdapter.getDate(date) === day\n ? date\n : null;\n }\n\n return defaultDateRangePickerDateAdapter.parse(text, locale);\n },\n });\n}\n\nexport function createOverlayMonthYearAdapter(): TngDateAdapter<Date> {\n return Object.freeze({\n ...defaultDateRangePickerDateAdapter,\n format: (date, format, locale) => {\n if (format === 'month-year') {\n const month = (defaultDateRangePickerDateAdapter.getMonth(date) + 1)\n .toString()\n .padStart(2, '0');\n const year = defaultDateRangePickerDateAdapter.getYear(date).toString().padStart(4, '0');\n return `${month}/${year}`;\n }\n\n return defaultDateRangePickerDateAdapter.format(date, format, locale);\n },\n });\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import type { TngDateAdapter, TngDateInputValue, TngWeekdayIndex } from './date-range-picker.types';
2
+ export declare const defaultDateRangePickerDateAdapter: TngDateAdapter<Date>;
3
+ export declare function normalizeDateInput<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, value: TngDateInputValue<TDate>, locale?: string): TDate | null;
4
+ export declare function coerceWeekStartsOn(value: number): TngWeekdayIndex;
5
+ //# sourceMappingURL=date-range-picker.adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.adapters.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/date-range-picker.adapters.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,iCAAiC,EAAE,cAAc,CAAC,IAAI,CAAyB,CAAC;AAE7F,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,KAAK,GAAG,IAAI,CAEd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -0,0 +1,9 @@
1
+ import { coerceTngWeekStartsOn, defaultTngDateAdapter, normalizeTngDateInput, } from '@tailng-ui/cdk';
2
+ export const defaultDateRangePickerDateAdapter = defaultTngDateAdapter;
3
+ export function normalizeDateInput(adapter, value, locale) {
4
+ return normalizeTngDateInput(adapter, value, locale);
5
+ }
6
+ export function coerceWeekStartsOn(value) {
7
+ return coerceTngWeekStartsOn(value);
8
+ }
9
+ //# sourceMappingURL=date-range-picker.adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.adapters.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/date-range-picker.adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAOxB,MAAM,CAAC,MAAM,iCAAiC,GAAyB,qBAAqB,CAAC;AAE7F,MAAM,UAAU,kBAAkB,CAChC,OAAwC,EACxC,KAA+B,EAC/B,MAAe;IAEf,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import {\n coerceTngWeekStartsOn,\n defaultTngDateAdapter,\n normalizeTngDateInput,\n} from '@tailng-ui/cdk';\nimport type {\n TngDateAdapter,\n TngDateInputValue,\n TngWeekdayIndex,\n} from './date-range-picker.types';\n\nexport const defaultDateRangePickerDateAdapter: TngDateAdapter<Date> = defaultTngDateAdapter;\n\nexport function normalizeDateInput<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n value: TngDateInputValue<TDate>,\n locale?: string,\n): TDate | null {\n return normalizeTngDateInput(adapter, value, locale);\n}\n\nexport function coerceWeekStartsOn(value: number): TngWeekdayIndex {\n return coerceTngWeekStartsOn(value);\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { TngDateAdapter, TngDateSelectionInput, TngDateValue, TngDateRangePickerSelectionMode } from './date-range-picker.types';
2
+ export declare function normalizeSelectionInput<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, _selectionMode: TngDateRangePickerSelectionMode, value: TngDateSelectionInput<TDate>, locale?: string): Readonly<{
3
+ validationError: string | null;
4
+ value: TngDateValue<TDate>;
5
+ }>;
6
+ export declare function selectionValuesEqual<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, _selectionMode: TngDateRangePickerSelectionMode, left: TngDateValue<TDate>, right: TngDateValue<TDate>): boolean;
7
+ export declare function clearSelectionForMode<TDate>(_selectionMode: TngDateRangePickerSelectionMode): TngDateValue<TDate>;
8
+ export declare function valueIncludesDate<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, _selectionMode: TngDateRangePickerSelectionMode, value: TngDateValue<TDate>, date: TDate): boolean;
9
+ export declare function rangeIncludesDate<TDate>(adapter: Readonly<TngDateAdapter<TDate>>, value: TngDateValue<TDate>, date: TDate): boolean;
10
+ //# sourceMappingURL=date-range-picker.state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.state.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/date-range-picker.state.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAEd,qBAAqB,EACrB,YAAY,EACZ,+BAA+B,EAChC,MAAM,2BAA2B,CAAC;AAanC,wBAAgB,uBAAuB,CAAC,KAAK,EAC3C,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,cAAc,EAAE,+BAA+B,EAC/C,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAAC;IACV,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAWD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,cAAc,EAAE,+BAA+B,EAC/C,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EACzB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GACzB,OAAO,CAET;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,cAAc,EAAE,+BAA+B,GAC9C,YAAY,CAAC,KAAK,CAAC,CAErB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,cAAc,EAAE,+BAA+B,EAC/C,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAMT;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACxC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAET"}
@@ -0,0 +1,35 @@
1
+ /* eslint-disable max-params -- Date range picker state helpers keep the established positional API. */
2
+ import { clearDateSelectionForMode, dateSelectionValuesEqual, datesEqual, normalizeDateSelectionInput, } from '@tailng-ui/cdk';
3
+ import { isDateInRange } from './date-range-picker.utils';
4
+ function isRangeValue(value) {
5
+ return (typeof value === 'object' &&
6
+ value !== null &&
7
+ !Array.isArray(value) &&
8
+ 'start' in value &&
9
+ 'end' in value);
10
+ }
11
+ export function normalizeSelectionInput(adapter, _selectionMode, value, locale) {
12
+ const normalized = normalizeDateSelectionInput({
13
+ adapter,
14
+ locale,
15
+ selectionMode: 'range',
16
+ value,
17
+ });
18
+ return normalized;
19
+ }
20
+ export function selectionValuesEqual(adapter, _selectionMode, left, right) {
21
+ return dateSelectionValuesEqual({ adapter, left, right, selectionMode: 'range' });
22
+ }
23
+ export function clearSelectionForMode(_selectionMode) {
24
+ return clearDateSelectionForMode('range');
25
+ }
26
+ export function valueIncludesDate(adapter, _selectionMode, value, date) {
27
+ if (!isRangeValue(value)) {
28
+ return false;
29
+ }
30
+ return datesEqual(adapter, value.start, date) || datesEqual(adapter, value.end, date);
31
+ }
32
+ export function rangeIncludesDate(adapter, value, date) {
33
+ return isDateInRange(adapter, value, date);
34
+ }
35
+ //# sourceMappingURL=date-range-picker.state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.state.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/date-range-picker.state.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACV,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,SAAS,YAAY,CAAQ,KAA0B;IACrD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,OAAO,IAAI,KAAK;QAChB,KAAK,IAAI,KAAK,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAwC,EACxC,cAA+C,EAC/C,KAAmC,EACnC,MAAe;IAKf,MAAM,UAAU,GAAG,2BAA2B,CAAC;QAC7C,OAAO;QACP,MAAM;QACN,aAAa,EAAE,OAAO;QACtB,KAAK;KACN,CAAC,CAAC;IACH,OAAO,UAGL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAwC,EACxC,cAA+C,EAC/C,IAAyB,EACzB,KAA0B;IAE1B,OAAO,wBAAwB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,cAA+C;IAE/C,OAAO,yBAAyB,CAAC,OAAO,CAAwB,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAwC,EACxC,cAA+C,EAC/C,KAA0B,EAC1B,IAAW;IAEX,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAwC,EACxC,KAA0B,EAC1B,IAAW;IAEX,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["/* eslint-disable max-params -- Date range picker state helpers keep the established positional API. */\nimport {\n clearDateSelectionForMode,\n dateSelectionValuesEqual,\n datesEqual,\n normalizeDateSelectionInput,\n} from '@tailng-ui/cdk';\nimport type {\n TngDateAdapter,\n TngDateRange,\n TngDateSelectionInput,\n TngDateValue,\n TngDateRangePickerSelectionMode,\n} from './date-range-picker.types';\nimport { isDateInRange } from './date-range-picker.utils';\n\nfunction isRangeValue<TDate>(value: TngDateValue<TDate>): value is TngDateRange<TDate> {\n return (\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n 'start' in value &&\n 'end' in value\n );\n}\n\nexport function normalizeSelectionInput<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n _selectionMode: TngDateRangePickerSelectionMode,\n value: TngDateSelectionInput<TDate>,\n locale?: string,\n): Readonly<{\n validationError: string | null;\n value: TngDateValue<TDate>;\n}> {\n const normalized = normalizeDateSelectionInput({\n adapter,\n locale,\n selectionMode: 'range',\n value,\n });\n return normalized as Readonly<{\n validationError: string | null;\n value: TngDateValue<TDate>;\n }>;\n}\n\nexport function selectionValuesEqual<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n _selectionMode: TngDateRangePickerSelectionMode,\n left: TngDateValue<TDate>,\n right: TngDateValue<TDate>,\n): boolean {\n return dateSelectionValuesEqual({ adapter, left, right, selectionMode: 'range' });\n}\n\nexport function clearSelectionForMode<TDate>(\n _selectionMode: TngDateRangePickerSelectionMode,\n): TngDateValue<TDate> {\n return clearDateSelectionForMode('range') as TngDateValue<TDate>;\n}\n\nexport function valueIncludesDate<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n _selectionMode: TngDateRangePickerSelectionMode,\n value: TngDateValue<TDate>,\n date: TDate,\n): boolean {\n if (!isRangeValue(value)) {\n return false;\n }\n\n return datesEqual(adapter, value.start, date) || datesEqual(adapter, value.end, date);\n}\n\nexport function rangeIncludesDate<TDate>(\n adapter: Readonly<TngDateAdapter<TDate>>,\n value: TngDateValue<TDate>,\n date: TDate,\n): boolean {\n return isDateInRange(adapter, value, date);\n}\n"]}
@@ -0,0 +1,280 @@
1
+ import type { TngOverlayRuntime } from '@tailng-ui/cdk';
2
+ export type TngCalendarView = 'day' | 'month' | 'year';
3
+ export type TngDateRangePickerSelectionMode = 'range';
4
+ export type TngDateRangePickerDirection = 'ltr' | 'rtl';
5
+ export type TngDateRangePickerFocusStrategy = 'active-descendant' | 'roving';
6
+ export type TngDateRangePickerFocusedSection = 'day' | 'month' | 'year';
7
+ export type TngDateRangePickerOverlayMode = 'overlay' | 'push' | 'side';
8
+ export type TngDateRangePickerPosition = 'center' | 'end' | 'start';
9
+ export type TngDateRangePickerCloseReason = 'escape' | 'outside' | 'programmatic' | 'select';
10
+ export type TngDateFormatToken = 'input' | 'label' | 'month-year' | 'month-long' | 'month-short' | 'weekday-short' | 'weekday-narrow' | 'day-number' | 'year-label';
11
+ export type TngWeekdayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;
12
+ export type TngDateInputValue<TDate> = Date | TDate | string | null | undefined;
13
+ export type TngDateRange<TDate> = Readonly<{
14
+ end: TDate | null;
15
+ start: TDate | null;
16
+ }>;
17
+ export type TngDateRangeValue<TDate = Date> = TngDateRange<TDate>;
18
+ export type TngDateRangeInput<TDate> = Readonly<{
19
+ end: TngDateInputValue<TDate>;
20
+ start: TngDateInputValue<TDate>;
21
+ }>;
22
+ export type TngDateValue<TDate> = TngDateRange<TDate> | null;
23
+ export type TngDateSelectionInput<TDate> = TngDateInputValue<TDate> | TngDateRangeInput<TDate>;
24
+ export type TngDateRangePickerTrigger = 'keyboard' | 'pointer' | 'programmatic' | 'text-input';
25
+ type TngDateRangePickerKnownAttributes = {
26
+ id?: string;
27
+ };
28
+ export type TngDateRangePickerAttributeMap = Readonly<Record<string, string> & TngDateRangePickerKnownAttributes>;
29
+ export type TngDateAdapter<TDate> = Readonly<{
30
+ addDays: (date: TDate, amount: number) => TDate;
31
+ addMonths: (date: TDate, amount: number) => TDate;
32
+ addYears: (date: TDate, amount: number) => TDate;
33
+ compare: (left: TDate, right: TDate) => -1 | 0 | 1;
34
+ createDate: (year: number, month: number, day: number) => TDate;
35
+ deserialize?: (value: unknown, locale?: string) => TDate | null;
36
+ endOfMonth: (date: TDate) => TDate;
37
+ format: (date: TDate, format: TngDateFormatToken | string, locale?: string) => string;
38
+ getDate: (date: TDate) => number;
39
+ getDay: (date: TDate) => number;
40
+ getMonth: (date: TDate) => number;
41
+ getYear: (date: TDate) => number;
42
+ isValid: (date: TDate) => boolean;
43
+ parse: (text: string, locale?: string) => TDate | null;
44
+ startOfMonth: (date: TDate) => TDate;
45
+ startOfWeek: (date: TDate, weekStartsOn: TngWeekdayIndex) => TDate;
46
+ today: () => TDate;
47
+ }>;
48
+ export type TngDateCell<TDate> = Readonly<{
49
+ active: boolean;
50
+ colIndex: number;
51
+ date: TDate;
52
+ disabled: boolean;
53
+ focusVisible: boolean;
54
+ hidden: boolean;
55
+ id: string;
56
+ inMonth: boolean;
57
+ inRange: boolean;
58
+ label: string;
59
+ previewRange: boolean;
60
+ rangeEnd: boolean;
61
+ rangeStart: boolean;
62
+ rowIndex: number;
63
+ selected: boolean;
64
+ tabindex: -1 | 0;
65
+ today: boolean;
66
+ }>;
67
+ export type TngMonthOption<TDate> = Readonly<{
68
+ active: boolean;
69
+ date: TDate;
70
+ disabled: boolean;
71
+ focusVisible: boolean;
72
+ id: string;
73
+ index: number;
74
+ label: string;
75
+ selected: boolean;
76
+ tabindex: -1 | 0;
77
+ }>;
78
+ export type TngYearOption<TDate> = Readonly<{
79
+ active: boolean;
80
+ date: TDate;
81
+ disabled: boolean;
82
+ focusVisible: boolean;
83
+ id: string;
84
+ label: string;
85
+ selected: boolean;
86
+ tabindex: -1 | 0;
87
+ year: number;
88
+ }>;
89
+ export type TngDateRangePickerLayout = Readonly<{
90
+ mode: TngDateRangePickerOverlayMode;
91
+ offsetX: number;
92
+ width: number;
93
+ }>;
94
+ export type TngDateRangePickerState<TDate> = Readonly<{
95
+ activeDate: TDate;
96
+ disabled: boolean;
97
+ endDate: TDate | null;
98
+ focusedDate: TDate | null;
99
+ focusedSection: TngDateRangePickerFocusedSection;
100
+ inputText: string;
101
+ lastCloseReason: TngDateRangePickerCloseReason | null;
102
+ open: boolean;
103
+ previewEndDate: TDate | null;
104
+ startDate: TDate | null;
105
+ validationError: string | null;
106
+ value: TngDateValue<TDate>;
107
+ view: TngCalendarView;
108
+ visibleMonth: TDate;
109
+ }>;
110
+ export type TngDateRangePickerOutputs<TDate> = Readonly<{
111
+ activeDate: TDate;
112
+ cells: readonly TngDateCell<TDate>[];
113
+ endDate: TDate | null;
114
+ focusedDate: TDate | null;
115
+ focusedSection: TngDateRangePickerFocusedSection;
116
+ getCellAttributes: (cellOrDate: Readonly<TngDateCell<TDate>> | TDate) => TngDateRangePickerAttributeMap;
117
+ getGridAttributes: () => TngDateRangePickerAttributeMap;
118
+ getHostAttributes: () => TngDateRangePickerAttributeMap;
119
+ getMonthAttributes: (monthOrOption: number | Readonly<TngMonthOption<TDate>>) => TngDateRangePickerAttributeMap;
120
+ getOverlayAttributes: () => TngDateRangePickerAttributeMap;
121
+ getTriggerAttributes: () => TngDateRangePickerAttributeMap;
122
+ getYearAttributes: (yearOrOption: number | Readonly<TngYearOption<TDate>>) => TngDateRangePickerAttributeMap;
123
+ inputText: string;
124
+ labelMonthYear: string;
125
+ layout: TngDateRangePickerLayout;
126
+ monthOptions: readonly TngMonthOption<TDate>[];
127
+ open: boolean;
128
+ previewEndDate: TDate | null;
129
+ startDate: TDate | null;
130
+ validationError: string | null;
131
+ value: TngDateValue<TDate>;
132
+ view: TngCalendarView;
133
+ visibleMonth: TDate;
134
+ weekdayLabels: readonly string[];
135
+ yearOptions: readonly TngYearOption<TDate>[];
136
+ }>;
137
+ export type TngDateRangePickerEvent<TDate> = Readonly<{
138
+ next: boolean;
139
+ previous: boolean;
140
+ type: 'opened';
141
+ }> | Readonly<{
142
+ previous: boolean;
143
+ type: 'openStart';
144
+ }> | Readonly<{
145
+ reason: TngDateRangePickerCloseReason;
146
+ type: 'closeStart';
147
+ }> | Readonly<{
148
+ reason: TngDateRangePickerCloseReason;
149
+ type: 'closed';
150
+ }> | Readonly<{
151
+ activeDate: TDate;
152
+ previousActiveDate: TDate;
153
+ trigger: TngDateRangePickerTrigger;
154
+ type: 'activeChange';
155
+ }> | Readonly<{
156
+ previewEndDate: TDate;
157
+ previousPreviewEndDate: TDate | null;
158
+ trigger: 'pointer';
159
+ type: 'previewChange';
160
+ }> | Readonly<{
161
+ trigger: TngDateRangePickerTrigger;
162
+ type: 'valueChange';
163
+ value: TngDateValue<TDate>;
164
+ previousValue: TngDateValue<TDate>;
165
+ }> | Readonly<{
166
+ previousView: TngCalendarView;
167
+ type: 'viewChange';
168
+ view: TngCalendarView;
169
+ }> | Readonly<{
170
+ previousMonth: TDate;
171
+ type: 'monthChange';
172
+ visibleMonth: TDate;
173
+ }> | Readonly<{
174
+ previousYear: number;
175
+ type: 'yearChange';
176
+ year: number;
177
+ }>;
178
+ export type TngDateRangePickerListener<TDate> = (event: TngDateRangePickerEvent<TDate>) => void;
179
+ export type TngDateRangePickerConfig<TDate> = Readonly<{
180
+ adapter?: TngDateAdapter<TDate>;
181
+ allowManualInput?: boolean;
182
+ ariaDescribedBy?: string | null;
183
+ ariaLabel?: string | null;
184
+ ariaLabelledBy?: string | null;
185
+ autoCommitView?: boolean;
186
+ closeOnEscape?: boolean;
187
+ closeOnOutsideClick?: boolean;
188
+ closeOnSelect?: boolean;
189
+ closeOthersOnOpen?: boolean;
190
+ defaultOpen?: boolean;
191
+ direction?: TngDateRangePickerDirection;
192
+ disableDate?: (date: TDate) => boolean;
193
+ disabled?: boolean;
194
+ enableRangeSelection?: boolean;
195
+ enableTypeahead?: boolean;
196
+ fixedWeeks?: boolean;
197
+ focusStrategy?: TngDateRangePickerFocusStrategy;
198
+ id?: string;
199
+ initialView?: TngCalendarView;
200
+ locale?: string;
201
+ max?: TngDateInputValue<TDate>;
202
+ maxDate?: TngDateInputValue<TDate>;
203
+ min?: TngDateInputValue<TDate>;
204
+ minDate?: TngDateInputValue<TDate>;
205
+ onPartialInputCommit?: boolean;
206
+ overlayMode?: TngDateRangePickerOverlayMode;
207
+ overlayRuntime?: TngOverlayRuntime | null;
208
+ overlaySize?: number;
209
+ ownerDocument?: Document | null;
210
+ position?: TngDateRangePickerPosition;
211
+ preserveViewOnOpenClose?: boolean;
212
+ restoreFocus?: boolean;
213
+ showOutsideDays?: boolean;
214
+ skipDisabled?: boolean;
215
+ today?: TngDateInputValue<TDate>;
216
+ trapFocus?: boolean;
217
+ value?: TngDateSelectionInput<TDate>;
218
+ weekStartsOn?: TngWeekdayIndex;
219
+ yearPageSize?: number;
220
+ }>;
221
+ export type TngDateRangePickerStatePatch<TDate> = Readonly<{
222
+ activeDate?: TngDateInputValue<TDate>;
223
+ disabled?: boolean;
224
+ inputText?: string;
225
+ value?: TngDateSelectionInput<TDate>;
226
+ view?: TngCalendarView;
227
+ visibleMonth?: TngDateInputValue<TDate>;
228
+ }>;
229
+ export type TngDateRangePickerController<TDate> = Readonly<{
230
+ clear: () => void;
231
+ close: (reason?: TngDateRangePickerCloseReason) => void;
232
+ commitInputText: () => boolean;
233
+ destroy: () => void;
234
+ formatDate: (date: TDate, format?: TngDateFormatToken | string) => string;
235
+ getOutputs: () => TngDateRangePickerOutputs<TDate>;
236
+ getState: () => TngDateRangePickerState<TDate>;
237
+ goToNextMonth: () => void;
238
+ goToPrevMonth: () => void;
239
+ handleCellClick: (date: TngDateInputValue<TDate>, options?: Readonly<{
240
+ shiftKey?: boolean;
241
+ }>) => void;
242
+ handleCellPointerEnter: (date: TngDateInputValue<TDate>) => void;
243
+ handleGridKeyDown: (event: Readonly<Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>>) => void;
244
+ handleMonthGridKeyDown: (event: Readonly<Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>>) => void;
245
+ handleOverlayKeyDown: (event: Readonly<Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>>) => void;
246
+ handleTriggerKeyDown: (event: Readonly<Pick<KeyboardEvent, 'key' | 'preventDefault'>>) => void;
247
+ handleYearGridKeyDown: (event: Readonly<Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>>) => void;
248
+ nextMonth: () => void;
249
+ nextYear: () => void;
250
+ open: () => void;
251
+ parseInputText: (text: string) => TDate | null;
252
+ prevMonth: () => void;
253
+ prevYear: () => void;
254
+ registerOverlay: (element: HTMLElement | null) => void;
255
+ registerTrigger: (element: HTMLElement | null) => void;
256
+ selectDate: (date: TngDateInputValue<TDate>, options?: Readonly<{
257
+ shiftKey?: boolean;
258
+ trigger?: TngDateRangePickerTrigger;
259
+ }>) => void;
260
+ selectMonth: (monthIndex: number) => void;
261
+ selectYear: (year: number) => void;
262
+ setActiveDate: (date: TngDateInputValue<TDate>, trigger?: TngDateRangePickerTrigger) => void;
263
+ setConfig: (config: Partial<TngDateRangePickerConfig<TDate>>) => void;
264
+ setDisabled: (disabled: boolean) => void;
265
+ setFocusedSection: (section: TngDateRangePickerFocusedSection) => void;
266
+ setInputText: (text: string) => void;
267
+ setOpen: (open: boolean) => void;
268
+ setState: (patch: TngDateRangePickerStatePatch<TDate>) => void;
269
+ setValue: (value: TngDateSelectionInput<TDate>) => void;
270
+ setView: (view: TngCalendarView) => void;
271
+ setVisibleMonth: (valueOrYear: TngDateInputValue<TDate> | number, month?: number) => void;
272
+ setVisibleYear: (year: number) => void;
273
+ showDaysPanel: () => void;
274
+ showMonthsPanel: () => void;
275
+ showYearsPanel: () => void;
276
+ subscribe: (listener: TngDateRangePickerListener<TDate>) => () => void;
277
+ toggleOpen: () => void;
278
+ }>;
279
+ export {};
280
+ //# sourceMappingURL=date-range-picker.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/date-range-picker.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC;AACtD,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,KAAK,CAAC;AACxD,MAAM,MAAM,+BAA+B,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAC7E,MAAM,MAAM,gCAAgC,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,6BAA6B,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AACpE,MAAM,MAAM,6BAA6B,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;AAC7F,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,YAAY,CAAC;AACjB,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAExD,MAAM,MAAM,iBAAiB,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhF,MAAM,MAAM,YAAY,CAAC,KAAK,IAAI,QAAQ,CAAC;IACzC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAElE,MAAM,MAAM,iBAAiB,CAAC,KAAK,IAAI,QAAQ,CAAC;IAC9C,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAE/F,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAE/F,KAAK,iCAAiC,GAAG;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CACnD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iCAAiC,CAC3D,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,QAAQ,CAAC;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;IAChD,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;IACjD,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;IAChE,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC;IACnC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtF,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;IACvD,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC;IACrC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,KAAK,KAAK,CAAC;IACnE,KAAK,EAAE,MAAM,KAAK,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,QAAQ,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,QAAQ,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,QAAQ,CAAC;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,CAAC,KAAK,IAAI,QAAQ,CAAC;IACpD,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,gCAAgC,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,CAAC,KAAK,IAAI,QAAQ,CAAC;IACtD,UAAU,EAAE,KAAK,CAAC;IAClB,KAAK,EAAE,SAAS,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,gCAAgC,CAAC;IACjD,iBAAiB,EAAE,CACjB,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,KAC7C,8BAA8B,CAAC;IACpC,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;IACxD,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;IACxD,kBAAkB,EAAE,CAClB,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KACpD,8BAA8B,CAAC;IACpC,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;IAC3D,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;IAC3D,iBAAiB,EAAE,CACjB,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAClD,8BAA8B,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,wBAAwB,CAAC;IACjC,YAAY,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC;IACpB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,SAAS,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,CAAC,KAAK,IACrC,QAAQ,CAAC;IACP,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC,GACF,QAAQ,CAAC;IACP,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,6BAA6B,CAAC;IACtC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,6BAA6B,CAAC;IACtC,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC,GACF,QAAQ,CAAC;IACP,UAAU,EAAE,KAAK,CAAC;IAClB,kBAAkB,EAAE,KAAK,CAAC;IAC1B,OAAO,EAAE,yBAAyB,CAAC;IACnC,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC,GACF,QAAQ,CAAC;IACP,cAAc,EAAE,KAAK,CAAC;IACtB,sBAAsB,EAAE,KAAK,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC,GACF,QAAQ,CAAC;IACP,OAAO,EAAE,yBAAyB,CAAC;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CACpC,CAAC,GACF,QAAQ,CAAC;IACP,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC,GACF,QAAQ,CAAC;IACP,aAAa,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC;CACrB,CAAC,GACF,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAAC;AAEP,MAAM,MAAM,0BAA0B,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAEhG,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,QAAQ,CAAC;IACrD,OAAO,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAC5C,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,MAAM,4BAA4B,CAAC,KAAK,IAAI,QAAQ,CAAC;IACzD,UAAU,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,YAAY,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,MAAM,4BAA4B,CAAC,KAAK,IAAI,QAAQ,CAAC;IACzD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,6BAA6B,KAAK,IAAI,CAAC;IACxD,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,MAAM,KAAK,MAAM,CAAC;IAC1E,UAAU,EAAE,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACnD,QAAQ,EAAE,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,CACf,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,KACvC,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACjE,iBAAiB,EAAE,CACjB,KAAK,EAAE,QAAQ,CACb,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAC9F,KACE,IAAI,CAAC;IACV,sBAAsB,EAAE,CACtB,KAAK,EAAE,QAAQ,CACb,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAC9F,KACE,IAAI,CAAC;IACV,oBAAoB,EAAE,CACpB,KAAK,EAAE,QAAQ,CACb,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAC9F,KACE,IAAI,CAAC;IACV,oBAAoB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,KAAK,IAAI,CAAC;IAC/F,qBAAqB,EAAE,CACrB,KAAK,EAAE,QAAQ,CACb,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAC9F,KACE,IAAI,CAAC;IACV,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;IAC/C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,CACV,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,KAC5E,IAAI,CAAC;IACV,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC7F,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;IACtE,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,iBAAiB,EAAE,CAAC,OAAO,EAAE,gCAAgC,KAAK,IAAI,CAAC;IACvE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1F,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,0BAA0B,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,CAAC;IACvE,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=date-range-picker.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.types.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/date-range-picker/date-range-picker.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TngOverlayRuntime } from '@tailng-ui/cdk';\n\nexport type TngCalendarView = 'day' | 'month' | 'year';\nexport type TngDateRangePickerSelectionMode = 'range';\nexport type TngDateRangePickerDirection = 'ltr' | 'rtl';\nexport type TngDateRangePickerFocusStrategy = 'active-descendant' | 'roving';\nexport type TngDateRangePickerFocusedSection = 'day' | 'month' | 'year';\nexport type TngDateRangePickerOverlayMode = 'overlay' | 'push' | 'side';\nexport type TngDateRangePickerPosition = 'center' | 'end' | 'start';\nexport type TngDateRangePickerCloseReason = 'escape' | 'outside' | 'programmatic' | 'select';\nexport type TngDateFormatToken =\n | 'input'\n | 'label'\n | 'month-year'\n | 'month-long'\n | 'month-short'\n | 'weekday-short'\n | 'weekday-narrow'\n | 'day-number'\n | 'year-label';\nexport type TngWeekdayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type TngDateInputValue<TDate> = Date | TDate | string | null | undefined;\n\nexport type TngDateRange<TDate> = Readonly<{\n end: TDate | null;\n start: TDate | null;\n}>;\n\nexport type TngDateRangeValue<TDate = Date> = TngDateRange<TDate>;\n\nexport type TngDateRangeInput<TDate> = Readonly<{\n end: TngDateInputValue<TDate>;\n start: TngDateInputValue<TDate>;\n}>;\n\nexport type TngDateValue<TDate> = TngDateRange<TDate> | null;\nexport type TngDateSelectionInput<TDate> = TngDateInputValue<TDate> | TngDateRangeInput<TDate>;\n\nexport type TngDateRangePickerTrigger = 'keyboard' | 'pointer' | 'programmatic' | 'text-input';\n\ntype TngDateRangePickerKnownAttributes = {\n id?: string;\n};\n\nexport type TngDateRangePickerAttributeMap = Readonly<\n Record<string, string> & TngDateRangePickerKnownAttributes\n>;\n\nexport type TngDateAdapter<TDate> = Readonly<{\n addDays: (date: TDate, amount: number) => TDate;\n addMonths: (date: TDate, amount: number) => TDate;\n addYears: (date: TDate, amount: number) => TDate;\n compare: (left: TDate, right: TDate) => -1 | 0 | 1;\n createDate: (year: number, month: number, day: number) => TDate;\n deserialize?: (value: unknown, locale?: string) => TDate | null;\n endOfMonth: (date: TDate) => TDate;\n format: (date: TDate, format: TngDateFormatToken | string, locale?: string) => string;\n getDate: (date: TDate) => number;\n getDay: (date: TDate) => number;\n getMonth: (date: TDate) => number;\n getYear: (date: TDate) => number;\n isValid: (date: TDate) => boolean;\n parse: (text: string, locale?: string) => TDate | null;\n startOfMonth: (date: TDate) => TDate;\n startOfWeek: (date: TDate, weekStartsOn: TngWeekdayIndex) => TDate;\n today: () => TDate;\n}>;\n\nexport type TngDateCell<TDate> = Readonly<{\n active: boolean;\n colIndex: number;\n date: TDate;\n disabled: boolean;\n focusVisible: boolean;\n hidden: boolean;\n id: string;\n inMonth: boolean;\n inRange: boolean;\n label: string;\n previewRange: boolean;\n rangeEnd: boolean;\n rangeStart: boolean;\n rowIndex: number;\n selected: boolean;\n tabindex: -1 | 0;\n today: boolean;\n}>;\n\nexport type TngMonthOption<TDate> = Readonly<{\n active: boolean;\n date: TDate;\n disabled: boolean;\n focusVisible: boolean;\n id: string;\n index: number;\n label: string;\n selected: boolean;\n tabindex: -1 | 0;\n}>;\n\nexport type TngYearOption<TDate> = Readonly<{\n active: boolean;\n date: TDate;\n disabled: boolean;\n focusVisible: boolean;\n id: string;\n label: string;\n selected: boolean;\n tabindex: -1 | 0;\n year: number;\n}>;\n\nexport type TngDateRangePickerLayout = Readonly<{\n mode: TngDateRangePickerOverlayMode;\n offsetX: number;\n width: number;\n}>;\n\nexport type TngDateRangePickerState<TDate> = Readonly<{\n activeDate: TDate;\n disabled: boolean;\n endDate: TDate | null;\n focusedDate: TDate | null;\n focusedSection: TngDateRangePickerFocusedSection;\n inputText: string;\n lastCloseReason: TngDateRangePickerCloseReason | null;\n open: boolean;\n previewEndDate: TDate | null;\n startDate: TDate | null;\n validationError: string | null;\n value: TngDateValue<TDate>;\n view: TngCalendarView;\n visibleMonth: TDate;\n}>;\n\nexport type TngDateRangePickerOutputs<TDate> = Readonly<{\n activeDate: TDate;\n cells: readonly TngDateCell<TDate>[];\n endDate: TDate | null;\n focusedDate: TDate | null;\n focusedSection: TngDateRangePickerFocusedSection;\n getCellAttributes: (\n cellOrDate: Readonly<TngDateCell<TDate>> | TDate,\n ) => TngDateRangePickerAttributeMap;\n getGridAttributes: () => TngDateRangePickerAttributeMap;\n getHostAttributes: () => TngDateRangePickerAttributeMap;\n getMonthAttributes: (\n monthOrOption: number | Readonly<TngMonthOption<TDate>>,\n ) => TngDateRangePickerAttributeMap;\n getOverlayAttributes: () => TngDateRangePickerAttributeMap;\n getTriggerAttributes: () => TngDateRangePickerAttributeMap;\n getYearAttributes: (\n yearOrOption: number | Readonly<TngYearOption<TDate>>,\n ) => TngDateRangePickerAttributeMap;\n inputText: string;\n labelMonthYear: string;\n layout: TngDateRangePickerLayout;\n monthOptions: readonly TngMonthOption<TDate>[];\n open: boolean;\n previewEndDate: TDate | null;\n startDate: TDate | null;\n validationError: string | null;\n value: TngDateValue<TDate>;\n view: TngCalendarView;\n visibleMonth: TDate;\n weekdayLabels: readonly string[];\n yearOptions: readonly TngYearOption<TDate>[];\n}>;\n\nexport type TngDateRangePickerEvent<TDate> =\n | Readonly<{\n next: boolean;\n previous: boolean;\n type: 'opened';\n }>\n | Readonly<{\n previous: boolean;\n type: 'openStart';\n }>\n | Readonly<{\n reason: TngDateRangePickerCloseReason;\n type: 'closeStart';\n }>\n | Readonly<{\n reason: TngDateRangePickerCloseReason;\n type: 'closed';\n }>\n | Readonly<{\n activeDate: TDate;\n previousActiveDate: TDate;\n trigger: TngDateRangePickerTrigger;\n type: 'activeChange';\n }>\n | Readonly<{\n previewEndDate: TDate;\n previousPreviewEndDate: TDate | null;\n trigger: 'pointer';\n type: 'previewChange';\n }>\n | Readonly<{\n trigger: TngDateRangePickerTrigger;\n type: 'valueChange';\n value: TngDateValue<TDate>;\n previousValue: TngDateValue<TDate>;\n }>\n | Readonly<{\n previousView: TngCalendarView;\n type: 'viewChange';\n view: TngCalendarView;\n }>\n | Readonly<{\n previousMonth: TDate;\n type: 'monthChange';\n visibleMonth: TDate;\n }>\n | Readonly<{\n previousYear: number;\n type: 'yearChange';\n year: number;\n }>;\n\nexport type TngDateRangePickerListener<TDate> = (event: TngDateRangePickerEvent<TDate>) => void;\n\nexport type TngDateRangePickerConfig<TDate> = Readonly<{\n adapter?: TngDateAdapter<TDate>;\n allowManualInput?: boolean;\n ariaDescribedBy?: string | null;\n ariaLabel?: string | null;\n ariaLabelledBy?: string | null;\n autoCommitView?: boolean;\n closeOnEscape?: boolean;\n closeOnOutsideClick?: boolean;\n closeOnSelect?: boolean;\n closeOthersOnOpen?: boolean;\n defaultOpen?: boolean;\n direction?: TngDateRangePickerDirection;\n disableDate?: (date: TDate) => boolean;\n disabled?: boolean;\n enableRangeSelection?: boolean;\n enableTypeahead?: boolean;\n fixedWeeks?: boolean;\n focusStrategy?: TngDateRangePickerFocusStrategy;\n id?: string;\n initialView?: TngCalendarView;\n locale?: string;\n max?: TngDateInputValue<TDate>;\n maxDate?: TngDateInputValue<TDate>;\n min?: TngDateInputValue<TDate>;\n minDate?: TngDateInputValue<TDate>;\n onPartialInputCommit?: boolean;\n overlayMode?: TngDateRangePickerOverlayMode;\n overlayRuntime?: TngOverlayRuntime | null;\n overlaySize?: number;\n ownerDocument?: Document | null;\n position?: TngDateRangePickerPosition;\n preserveViewOnOpenClose?: boolean;\n restoreFocus?: boolean;\n showOutsideDays?: boolean;\n skipDisabled?: boolean;\n today?: TngDateInputValue<TDate>;\n trapFocus?: boolean;\n value?: TngDateSelectionInput<TDate>;\n weekStartsOn?: TngWeekdayIndex;\n yearPageSize?: number;\n}>;\n\nexport type TngDateRangePickerStatePatch<TDate> = Readonly<{\n activeDate?: TngDateInputValue<TDate>;\n disabled?: boolean;\n inputText?: string;\n value?: TngDateSelectionInput<TDate>;\n view?: TngCalendarView;\n visibleMonth?: TngDateInputValue<TDate>;\n}>;\n\nexport type TngDateRangePickerController<TDate> = Readonly<{\n clear: () => void;\n close: (reason?: TngDateRangePickerCloseReason) => void;\n commitInputText: () => boolean;\n destroy: () => void;\n formatDate: (date: TDate, format?: TngDateFormatToken | string) => string;\n getOutputs: () => TngDateRangePickerOutputs<TDate>;\n getState: () => TngDateRangePickerState<TDate>;\n goToNextMonth: () => void;\n goToPrevMonth: () => void;\n handleCellClick: (\n date: TngDateInputValue<TDate>,\n options?: Readonly<{ shiftKey?: boolean }>,\n ) => void;\n handleCellPointerEnter: (date: TngDateInputValue<TDate>) => void;\n handleGridKeyDown: (\n event: Readonly<\n Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>\n >,\n ) => void;\n handleMonthGridKeyDown: (\n event: Readonly<\n Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>\n >,\n ) => void;\n handleOverlayKeyDown: (\n event: Readonly<\n Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>\n >,\n ) => void;\n handleTriggerKeyDown: (event: Readonly<Pick<KeyboardEvent, 'key' | 'preventDefault'>>) => void;\n handleYearGridKeyDown: (\n event: Readonly<\n Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey' | 'preventDefault' | 'shiftKey'>\n >,\n ) => void;\n nextMonth: () => void;\n nextYear: () => void;\n open: () => void;\n parseInputText: (text: string) => TDate | null;\n prevMonth: () => void;\n prevYear: () => void;\n registerOverlay: (element: HTMLElement | null) => void;\n registerTrigger: (element: HTMLElement | null) => void;\n selectDate: (\n date: TngDateInputValue<TDate>,\n options?: Readonly<{ shiftKey?: boolean; trigger?: TngDateRangePickerTrigger }>,\n ) => void;\n selectMonth: (monthIndex: number) => void;\n selectYear: (year: number) => void;\n setActiveDate: (date: TngDateInputValue<TDate>, trigger?: TngDateRangePickerTrigger) => void;\n setConfig: (config: Partial<TngDateRangePickerConfig<TDate>>) => void;\n setDisabled: (disabled: boolean) => void;\n setFocusedSection: (section: TngDateRangePickerFocusedSection) => void;\n setInputText: (text: string) => void;\n setOpen: (open: boolean) => void;\n setState: (patch: TngDateRangePickerStatePatch<TDate>) => void;\n setValue: (value: TngDateSelectionInput<TDate>) => void;\n setView: (view: TngCalendarView) => void;\n setVisibleMonth: (valueOrYear: TngDateInputValue<TDate> | number, month?: number) => void;\n setVisibleYear: (year: number) => void;\n showDaysPanel: () => void;\n showMonthsPanel: () => void;\n showYearsPanel: () => void;\n subscribe: (listener: TngDateRangePickerListener<TDate>) => () => void;\n toggleOpen: () => void;\n}>;\n"]}