ng-primitives 0.3.0 → 0.5.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 (89) hide show
  1. package/date-picker/README.md +3 -0
  2. package/date-picker/date-picker/date-picker.directive.d.ts +61 -0
  3. package/date-picker/date-picker/date-picker.token.d.ts +14 -0
  4. package/date-picker/date-picker-cell/date-picker-cell.directive.d.ts +17 -0
  5. package/date-picker/date-picker-cell/date-picker-cell.token.d.ts +14 -0
  6. package/date-picker/date-picker-cell-render/date-picker-cell-render.directive.d.ts +43 -0
  7. package/date-picker/date-picker-cell-render/date-picker-cell-render.token.d.ts +19 -0
  8. package/date-picker/date-picker-date-button/date-picker-date-button.directive.d.ts +99 -0
  9. package/date-picker/date-picker-date-button/date-picker-date-button.token.d.ts +14 -0
  10. package/date-picker/date-picker-grid/date-picker-grid.directive.d.ts +13 -0
  11. package/date-picker/date-picker-grid/date-picker-grid.token.d.ts +14 -0
  12. package/date-picker/date-picker-label/date-picker-label.directive.d.ts +17 -0
  13. package/date-picker/date-picker-label/date-picker-label.token.d.ts +14 -0
  14. package/date-picker/date-picker-next-month/date-picker-next-month.directive.d.ts +32 -0
  15. package/date-picker/date-picker-next-month/date-picker-next-month.token.d.ts +14 -0
  16. package/date-picker/date-picker-previous-month/date-picker-previous-month.directive.d.ts +32 -0
  17. package/date-picker/date-picker-previous-month/date-picker-previous-month.token.d.ts +14 -0
  18. package/date-picker/date-picker-row-render/date-picker-row-render.directive.d.ts +49 -0
  19. package/date-picker/date-picker-row-render/date-picker-row-render.token.d.ts +19 -0
  20. package/date-picker/index.d.ts +25 -0
  21. package/date-time/README.md +3 -0
  22. package/date-time/date-adapter/date-adapter.d.ts +169 -0
  23. package/date-time/date-adapter/date-adapter.token.d.ts +18 -0
  24. package/date-time/index.d.ts +9 -0
  25. package/date-time/native-date-adapter/native-date-adapter.d.ts +106 -0
  26. package/esm2022/date-picker/date-picker/date-picker.directive.mjs +117 -0
  27. package/esm2022/date-picker/date-picker/date-picker.token.mjs +16 -0
  28. package/esm2022/date-picker/date-picker-cell/date-picker-cell.directive.mjs +50 -0
  29. package/esm2022/date-picker/date-picker-cell/date-picker-cell.token.mjs +16 -0
  30. package/esm2022/date-picker/date-picker-cell-render/date-picker-cell-render.directive.mjs +72 -0
  31. package/esm2022/date-picker/date-picker-cell-render/date-picker-cell-render.token.mjs +23 -0
  32. package/esm2022/date-picker/date-picker-date-button/date-picker-date-button.directive.mjs +277 -0
  33. package/esm2022/date-picker/date-picker-date-button/date-picker-date-button.token.mjs +16 -0
  34. package/esm2022/date-picker/date-picker-grid/date-picker-grid.directive.mjs +40 -0
  35. package/esm2022/date-picker/date-picker-grid/date-picker-grid.token.mjs +16 -0
  36. package/esm2022/date-picker/date-picker-label/date-picker-label.directive.mjs +47 -0
  37. package/esm2022/date-picker/date-picker-label/date-picker-label.token.mjs +16 -0
  38. package/esm2022/date-picker/date-picker-next-month/date-picker-next-month.directive.mjs +103 -0
  39. package/esm2022/date-picker/date-picker-next-month/date-picker-next-month.token.mjs +16 -0
  40. package/esm2022/date-picker/date-picker-previous-month/date-picker-previous-month.directive.mjs +104 -0
  41. package/esm2022/date-picker/date-picker-previous-month/date-picker-previous-month.token.mjs +16 -0
  42. package/esm2022/date-picker/date-picker-row-render/date-picker-row-render.directive.mjs +118 -0
  43. package/esm2022/date-picker/date-picker-row-render/date-picker-row-render.token.mjs +23 -0
  44. package/esm2022/date-picker/index.mjs +26 -0
  45. package/esm2022/date-picker/ng-primitives-date-picker.mjs +5 -0
  46. package/esm2022/date-time/date-adapter/date-adapter.mjs +9 -0
  47. package/esm2022/date-time/date-adapter/date-adapter.token.mjs +24 -0
  48. package/esm2022/date-time/index.mjs +9 -0
  49. package/esm2022/date-time/native-date-adapter/native-date-adapter.mjs +149 -0
  50. package/esm2022/date-time/ng-primitives-date-time.mjs +5 -0
  51. package/esm2022/interactions/hover/hover.directive.mjs +9 -10
  52. package/esm2022/pagination/index.mjs +20 -0
  53. package/esm2022/pagination/ng-primitives-pagination.mjs +5 -0
  54. package/esm2022/pagination/pagination/pagination.directive.mjs +57 -0
  55. package/esm2022/pagination/pagination/pagination.token.mjs +16 -0
  56. package/esm2022/pagination/pagination-button/pagination-button.directive.mjs +75 -0
  57. package/esm2022/pagination/pagination-button/pagination-button.token.mjs +16 -0
  58. package/esm2022/pagination/pagination-first/pagination-first.directive.mjs +59 -0
  59. package/esm2022/pagination/pagination-first/pagination-first.token.mjs +16 -0
  60. package/esm2022/pagination/pagination-last/pagination-last.directive.mjs +59 -0
  61. package/esm2022/pagination/pagination-last/pagination-last.token.mjs +16 -0
  62. package/esm2022/pagination/pagination-next/pagination-next.directive.mjs +62 -0
  63. package/esm2022/pagination/pagination-next/pagination-next.token.mjs +16 -0
  64. package/esm2022/pagination/pagination-previous/pagination-previous.directive.mjs +62 -0
  65. package/esm2022/pagination/pagination-previous/pagination-previous.token.mjs +16 -0
  66. package/fesm2022/ng-primitives-date-picker.mjs +1044 -0
  67. package/fesm2022/ng-primitives-date-picker.mjs.map +1 -0
  68. package/fesm2022/ng-primitives-date-time.mjs +187 -0
  69. package/fesm2022/ng-primitives-date-time.mjs.map +1 -0
  70. package/fesm2022/ng-primitives-interactions.mjs +8 -10
  71. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  72. package/fesm2022/ng-primitives-pagination.mjs +446 -0
  73. package/fesm2022/ng-primitives-pagination.mjs.map +1 -0
  74. package/interactions/hover/hover.directive.d.ts +3 -3
  75. package/package.json +36 -13
  76. package/pagination/README.md +3 -0
  77. package/pagination/index.d.ts +19 -0
  78. package/pagination/pagination/pagination.directive.d.ts +35 -0
  79. package/pagination/pagination/pagination.token.d.ts +14 -0
  80. package/pagination/pagination-button/pagination-button.directive.d.ts +39 -0
  81. package/pagination/pagination-button/pagination-button.token.d.ts +14 -0
  82. package/pagination/pagination-first/pagination-first.directive.d.ts +28 -0
  83. package/pagination/pagination-first/pagination-first.token.d.ts +14 -0
  84. package/pagination/pagination-last/pagination-last.directive.d.ts +28 -0
  85. package/pagination/pagination-last/pagination-last.token.d.ts +14 -0
  86. package/pagination/pagination-next/pagination-next.directive.d.ts +31 -0
  87. package/pagination/pagination-next/pagination-next.token.d.ts +14 -0
  88. package/pagination/pagination-previous/pagination-previous.directive.d.ts +31 -0
  89. package/pagination/pagination-previous/pagination-previous.token.d.ts +14 -0
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ /**
9
+ * An abstraction that can be used to create and modify date time objects
10
+ * immutably regardless of the underlying implementation.
11
+ */
12
+ export interface NgpDateAdapter<T> {
13
+ /**
14
+ * Create a new date time object.
15
+ */
16
+ create(values: NgpDateUnits): T;
17
+ /**
18
+ * Create a new date with the current date and time.
19
+ */
20
+ now(): T;
21
+ /**
22
+ * Set the year of the date time object based on a duration.
23
+ */
24
+ set(date: T, values: NgpDateUnits): T;
25
+ /**
26
+ * Add a duration to the date time object.
27
+ */
28
+ add(date: T, duration: NgpDuration): T;
29
+ /**
30
+ * Subtract a duration from the date time object.
31
+ */
32
+ subtract(date: T, duration: NgpDuration): T;
33
+ /**
34
+ * Compare two date time objects.
35
+ */
36
+ compare(a: T, b: T): number;
37
+ /**
38
+ * Determine if two date time objects are equal.
39
+ */
40
+ isEqual(a: T, b: T): boolean;
41
+ /**
42
+ * Determine if a date time object is before another.
43
+ */
44
+ isBefore(a: T, b: T): boolean;
45
+ /**
46
+ * Determine if a date time object is after another.
47
+ */
48
+ isAfter(a: T, b: T): boolean;
49
+ /**
50
+ * Determine if two date objects are on the same day.
51
+ */
52
+ isSameDay(a: T, b: T): boolean;
53
+ /**
54
+ * Determine if two date objects are on the same month.
55
+ */
56
+ isSameMonth(a: T, b: T): boolean;
57
+ /**
58
+ * Determine if two date objects are on the same year.
59
+ */
60
+ isSameYear(a: T, b: T): boolean;
61
+ /**
62
+ * Get the year.
63
+ */
64
+ getYear(date: T): number;
65
+ /**
66
+ * Get the month.
67
+ */
68
+ getMonth(date: T): number;
69
+ /**
70
+ * Get the date.
71
+ */
72
+ getDate(date: T): number;
73
+ /**
74
+ * Get the day.
75
+ */
76
+ getDay(date: T): number;
77
+ /**
78
+ * Get the hours.
79
+ */
80
+ getHours(date: T): number;
81
+ /**
82
+ * Get the minutes.
83
+ */
84
+ getMinutes(date: T): number;
85
+ /**
86
+ * Get the seconds.
87
+ */
88
+ getSeconds(date: T): number;
89
+ /**
90
+ * Get the milliseconds.
91
+ */
92
+ getMilliseconds(date: T): number;
93
+ /**
94
+ * Get the first day of the month.
95
+ */
96
+ startOfMonth(date: T): T;
97
+ /**
98
+ * Get the last day of the month.
99
+ */
100
+ endOfMonth(date: T): T;
101
+ /**
102
+ * Get the start of the day.
103
+ */
104
+ startOfDay(date: T): T;
105
+ /**
106
+ * Get the end of the day.
107
+ */
108
+ endOfDay(date: T): T;
109
+ }
110
+ export interface NgpDateUnits {
111
+ /**
112
+ * The year.
113
+ */
114
+ year?: number;
115
+ /**
116
+ * The month.
117
+ */
118
+ month?: number;
119
+ /**
120
+ * The day.
121
+ */
122
+ day?: number;
123
+ /**
124
+ * The hour.
125
+ */
126
+ hour?: number;
127
+ /**
128
+ * The minute.
129
+ */
130
+ minute?: number;
131
+ /**
132
+ * The second.
133
+ */
134
+ second?: number;
135
+ /**
136
+ * The millisecond.
137
+ */
138
+ millisecond?: number;
139
+ }
140
+ export interface NgpDuration {
141
+ /**
142
+ * The years.
143
+ */
144
+ years?: number;
145
+ /**
146
+ * The months.
147
+ */
148
+ months?: number;
149
+ /**
150
+ * The days.
151
+ */
152
+ days?: number;
153
+ /**
154
+ * The hours.
155
+ */
156
+ hours?: number;
157
+ /**
158
+ * The minutes.
159
+ */
160
+ minutes?: number;
161
+ /**
162
+ * The seconds.
163
+ */
164
+ seconds?: number;
165
+ /**
166
+ * The milliseconds.
167
+ */
168
+ milliseconds?: number;
169
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { ClassProvider, InjectionToken, Type } from '@angular/core';
9
+ import type { NgpDateAdapter } from './date-adapter';
10
+ export declare const NgpDateAdapterToken: InjectionToken<NgpDateAdapter<unknown>>;
11
+ /**
12
+ * Inject the DateAdapter instance
13
+ */
14
+ export declare function injectDateAdapter<T>(): NgpDateAdapter<T>;
15
+ /**
16
+ * Provide the DateAdapter instance
17
+ */
18
+ export declare function provideDateAdapter<T>(adapter: Type<NgpDateAdapter<T>>): ClassProvider;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ export { NgpDateAdapter, NgpDateUnits, NgpDuration } from './date-adapter/date-adapter';
9
+ export { injectDateAdapter, provideDateAdapter } from './date-adapter/date-adapter.token';
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { NgpDateAdapter, NgpDateUnits, NgpDuration } from '../date-adapter/date-adapter';
9
+ export declare class NgpNativeDateAdapter implements NgpDateAdapter<Date> {
10
+ /**
11
+ * Create a new date time object.
12
+ */
13
+ create({ day, hour, minute, month, second, year, millisecond }: NgpDateUnits): Date;
14
+ /**
15
+ * Create a new date with the current date and time.
16
+ */
17
+ now(): Date;
18
+ /**
19
+ * Set the year of the date time object based on a duration.
20
+ */
21
+ set(date: Date, values: NgpDateUnits): Date;
22
+ /**
23
+ * Add a duration to the date time object.
24
+ */
25
+ add(date: Date, duration: NgpDuration): Date;
26
+ /**
27
+ * Subtract a duration from the date time object
28
+ */
29
+ subtract(date: Date, duration: NgpDuration): Date;
30
+ /**
31
+ * Compare two date time objects
32
+ */
33
+ compare(a: Date, b: Date): number;
34
+ /**
35
+ * Determine if two date time objects are equal.
36
+ */
37
+ isEqual(a: Date, b: Date): boolean;
38
+ /**
39
+ * Determine if a date time object is before another.
40
+ */
41
+ isBefore(a: Date, b: Date): boolean;
42
+ /**
43
+ * Determine if a date time object is after another.
44
+ */
45
+ isAfter(a: Date, b: Date): boolean;
46
+ /**
47
+ * Determine if two date objects are on the same day.
48
+ */
49
+ isSameDay(a: Date, b: Date): boolean;
50
+ /**
51
+ * Determine if two date objects are on the same month.
52
+ */
53
+ isSameMonth(a: Date, b: Date): boolean;
54
+ /**
55
+ * Determine if two date objects are on the same year.
56
+ */
57
+ isSameYear(a: Date, b: Date): boolean;
58
+ /**
59
+ * Get the year.
60
+ */
61
+ getYear(date: Date): number;
62
+ /**
63
+ * Get the month.
64
+ */
65
+ getMonth(date: Date): number;
66
+ /**
67
+ * Get the day.
68
+ */
69
+ getDay(date: Date): number;
70
+ /**
71
+ * Get the date.
72
+ */
73
+ getDate(date: Date): number;
74
+ /**
75
+ * Get the hours.
76
+ */
77
+ getHours(date: Date): number;
78
+ /**
79
+ * Get the minutes.
80
+ */
81
+ getMinutes(date: Date): number;
82
+ /**
83
+ * Get the seconds.
84
+ */
85
+ getSeconds(date: Date): number;
86
+ /**
87
+ * Get the milliseconds.
88
+ */
89
+ getMilliseconds(date: Date): number;
90
+ /**
91
+ * Get the first day of the month.
92
+ */
93
+ startOfMonth(date: Date): Date;
94
+ /**
95
+ * Get the last day of the month.
96
+ */
97
+ endOfMonth(date: Date): Date;
98
+ /**
99
+ * Get the start of the day.
100
+ */
101
+ startOfDay(date: Date): Date;
102
+ /**
103
+ * Get the end of the day.
104
+ */
105
+ endOfDay(date: Date): Date;
106
+ }
@@ -0,0 +1,117 @@
1
+ import { afterNextRender, booleanAttribute, contentChild, contentChildren, Directive, inject, Injector, input, model, } from '@angular/core';
2
+ import { injectDateAdapter } from 'ng-primitives/date-time';
3
+ import { NgpDatePickerDateButtonToken } from '../date-picker-date-button/date-picker-date-button.token';
4
+ import { NgpDatePickerLabelToken } from '../date-picker-label/date-picker-label.token';
5
+ import { NgpDatePickerToken } from './date-picker.token';
6
+ import * as i0 from "@angular/core";
7
+ export class NgpDatePicker {
8
+ constructor() {
9
+ /**
10
+ * Access the date adapter.
11
+ */
12
+ this.dateAdapter = injectDateAdapter();
13
+ /**
14
+ * Access the injector.
15
+ */
16
+ this.injector = inject(Injector);
17
+ /**
18
+ * The minimum date that can be selected.
19
+ */
20
+ this.min = input(undefined, {
21
+ alias: 'ngpDatePickerMin',
22
+ });
23
+ /**
24
+ * The maximum date that can be selected.
25
+ */
26
+ this.max = input(undefined, {
27
+ alias: 'ngpDatePickerMax',
28
+ });
29
+ /**
30
+ * Determine if the date picker is disabled.
31
+ */
32
+ this.disabled = input(false, {
33
+ alias: 'ngpDatePickerDisabled',
34
+ transform: booleanAttribute,
35
+ });
36
+ /**
37
+ * A function that is called to determine if a specific date should be disabled.
38
+ */
39
+ this.dateDisabled = input(() => false, {
40
+ alias: 'ngpDatePickerDateDisabled',
41
+ });
42
+ /**
43
+ * The selected value.
44
+ */
45
+ this.date = model(undefined, {
46
+ alias: 'ngpDatePickerDate',
47
+ });
48
+ /**
49
+ * The focused value.
50
+ */
51
+ this.focusedDate = model(this.dateAdapter.now(), {
52
+ alias: 'ngpDatePickerFocusedDate',
53
+ });
54
+ /**
55
+ * Detect the label element.
56
+ * @internal
57
+ */
58
+ this.label = contentChild(NgpDatePickerLabelToken, { descendants: true });
59
+ /**
60
+ * Access all the date picker buttons
61
+ */
62
+ this.buttons = contentChildren(NgpDatePickerDateButtonToken, { descendants: true });
63
+ }
64
+ /**
65
+ * Set the focused date.
66
+ * @param date The date to focus.
67
+ * @internal
68
+ */
69
+ setFocusedDate(date, origin = 'mouse', direction) {
70
+ if (this.disabled()) {
71
+ return;
72
+ }
73
+ const min = this.min();
74
+ const max = this.max();
75
+ if (min && this.dateAdapter.isBefore(date, min)) {
76
+ date = min;
77
+ }
78
+ if (max && this.dateAdapter.isAfter(date, max)) {
79
+ date = max;
80
+ }
81
+ // if the date is disabled, find the next available date in the specified direction.
82
+ if (this.dateDisabled()(date)) {
83
+ let nextDate = this.dateAdapter.add(date, { days: direction === 'forward' ? 1 : -1 });
84
+ while (this.dateDisabled()(nextDate) ||
85
+ (min && this.dateAdapter.isBefore(nextDate, min)) ||
86
+ (max && this.dateAdapter.isAfter(nextDate, max))) {
87
+ nextDate = this.dateAdapter.add(nextDate, { days: direction === 'forward' ? 1 : -1 });
88
+ }
89
+ date = nextDate;
90
+ }
91
+ this.focusedDate.set(date);
92
+ if (origin === 'keyboard') {
93
+ afterNextRender({
94
+ write: () => {
95
+ this.buttons().forEach(button => button.focus());
96
+ },
97
+ }, {
98
+ injector: this.injector,
99
+ });
100
+ }
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
103
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.1.1", type: NgpDatePicker, isStandalone: true, selector: "[ngpDatePicker]", inputs: { min: { classPropertyName: "min", publicName: "ngpDatePickerMin", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "ngpDatePickerMax", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpDatePickerDisabled", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "ngpDatePickerDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "ngpDatePickerDate", isSignal: true, isRequired: false, transformFunction: null }, focusedDate: { classPropertyName: "focusedDate", publicName: "ngpDatePickerFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "ngpDatePickerDateChange", focusedDate: "ngpDatePickerFocusedDateChange" }, host: { properties: { "attr.data-disabled": "disabled()" } }, providers: [{ provide: NgpDatePickerToken, useExisting: NgpDatePicker }], queries: [{ propertyName: "label", first: true, predicate: NgpDatePickerLabelToken, descendants: true, isSignal: true }, { propertyName: "buttons", predicate: NgpDatePickerDateButtonToken, descendants: true, isSignal: true }], exportAs: ["ngpDatePicker"], ngImport: i0 }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePicker, decorators: [{
106
+ type: Directive,
107
+ args: [{
108
+ standalone: true,
109
+ selector: '[ngpDatePicker]',
110
+ exportAs: 'ngpDatePicker',
111
+ providers: [{ provide: NgpDatePickerToken, useExisting: NgpDatePicker }],
112
+ host: {
113
+ '[attr.data-disabled]': 'disabled()',
114
+ },
115
+ }]
116
+ }] });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9kYXRlLXBpY2tlci9zcmMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFXekQsTUFBTSxPQUFPLGFBQWE7SUFUMUI7UUFVRTs7V0FFRztRQUNjLGdCQUFXLEdBQUcsaUJBQWlCLEVBQUssQ0FBQztRQUV0RDs7V0FFRztRQUNjLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0M7O1dBRUc7UUFDTSxRQUFHLEdBQUcsS0FBSyxDQUFnQixTQUFTLEVBQUU7WUFDN0MsS0FBSyxFQUFFLGtCQUFrQjtTQUMxQixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNNLFFBQUcsR0FBRyxLQUFLLENBQWdCLFNBQVMsRUFBRTtZQUM3QyxLQUFLLEVBQUUsa0JBQWtCO1NBQzFCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENB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QUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOzhHQW5IVSxhQUFhO2tHQUFiLGFBQWEsb2lDQUxiLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDLDZEQStEMUMsdUJBQXVCLDZFQUtWLDRCQUE0Qjs7MkZBL0Q1RCxhQUFhO2tCQVR6QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUUsZUFBZTtvQkFDekIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxlQUFlLEVBQUUsQ0FBQztvQkFDeEUsSUFBSSxFQUFFO3dCQUNKLHNCQUFzQixFQUFFLFlBQVk7cUJBQ3JDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbnRlbnRDaGlsZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBtb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3REYXRlQWRhcHRlciB9IGZyb20gJ25nLXByaW1pdGl2ZXMvZGF0ZS10aW1lJztcbmltcG9ydCB7IE5ncERhdGVQaWNrZXJEYXRlQnV0dG9uVG9rZW4gfSBmcm9tICcuLi9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi50b2tlbic7XG5pbXBvcnQgeyBOZ3BEYXRlUGlja2VyTGFiZWxUb2tlbiB9IGZyb20gJy4uL2RhdGUtcGlja2VyLWxhYmVsL2RhdGUtcGlja2VyLWxhYmVsLnRva2VuJztcbmltcG9ydCB7IE5ncERhdGVQaWNrZXJUb2tlbiB9IGZyb20gJy4vZGF0ZS1waWNrZXIudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmdwRGF0ZVBpY2tlcl0nLFxuICBleHBvcnRBczogJ25ncERhdGVQaWNrZXInLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5ncERhdGVQaWNrZXJUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncERhdGVQaWNrZXIgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncERhdGVQaWNrZXI8VD4ge1xuICAvKipcbiAgICogQWNjZXNzIHRoZSBkYXRlIGFkYXB0ZXIuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVBZGFwdGVyID0gaW5qZWN0RGF0ZUFkYXB0ZXI8VD4oKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBpbmplY3Rvci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkYXRlIHRoYXQgY2FuIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluID0gaW5wdXQ8VCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICduZ3BEYXRlUGlja2VyTWluJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGRhdGUgdGhhdCBjYW4gYmUgc2VsZWN0ZWQuXG4gICAqL1xuICByZWFkb25seSBtYXggPSBpbnB1dDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICBhbGlhczogJ25ncERhdGVQaWNrZXJNYXgnLFxuICB9KTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBkYXRlIHBpY2tlciBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgIGFsaWFzOiAnbmdwRGF0ZVBpY2tlckRpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHRvIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGRhdGUgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZURpc2FibGVkID0gaW5wdXQ8KGRhdGU6IFQpID0+IGJvb2xlYW4+KCgpID0+IGZhbHNlLCB7XG4gICAgYWxpYXM6ICduZ3BEYXRlUGlja2VyRGF0ZURpc2FibGVkJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGUgPSBtb2RlbDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICBhbGlhczogJ25ncERhdGVQaWNrZXJEYXRlJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2N1c2VkIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9jdXNlZERhdGUgPSBtb2RlbDxUPih0aGlzLmRhdGVBZGFwdGVyLm5vdygpLCB7XG4gICAgYWxpYXM6ICduZ3BEYXRlUGlja2VyRm9jdXNlZERhdGUnLFxuICB9KTtcblxuICAvKipcbiAgICogRGV0ZWN0IHRoZSBsYWJlbCBlbGVtZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsID0gY29udGVudENoaWxkKE5ncERhdGVQaWNrZXJMYWJlbFRva2VuLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgYWxsIHRoZSBkYXRlIHBpY2tlciBidXR0b25zXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGJ1dHRvbnMgPSBjb250ZW50Q2hpbGRyZW4oTmdwRGF0ZVBpY2tlckRhdGVCdXR0b25Ub2tlbiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogU2V0IHRoZSBmb2N1c2VkIGRhdGUuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvY3VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldEZvY3VzZWREYXRlKGRhdGU6IFQsIG9yaWdpbjogRm9jdXNPcmlnaW4gPSAnbW91c2UnLCBkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrd2FyZCcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWluID0gdGhpcy5taW4oKTtcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heCgpO1xuXG4gICAgaWYgKG1pbiAmJiB0aGlzLmRhdGVBZGFwdGVyLmlzQmVmb3JlKGRhdGUsIG1pbikpIHtcbiAgICAgIGRhdGUgPSBtaW47XG4gICAgfVxuXG4gICAgaWYgKG1heCAmJiB0aGlzLmRhdGVBZGFwdGVyLmlzQWZ0ZXIoZGF0ZSwgbWF4KSkge1xuICAgICAgZGF0ZSA9IG1heDtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgZGF0ZSBpcyBkaXNhYmxlZCwgZmluZCB0aGUgbmV4dCBhdmFpbGFibGUgZGF0ZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdGlvbi5cbiAgICBpZiAodGhpcy5kYXRlRGlzYWJsZWQoKShkYXRlKSkge1xuICAgICAgbGV0IG5leHREYXRlID0gdGhpcy5kYXRlQWRhcHRlci5hZGQoZGF0ZSwgeyBkYXlzOiBkaXJlY3Rpb24gPT09ICdmb3J3YXJkJyA/IDEgOiAtMSB9KTtcblxuICAgICAgd2hpbGUgKFxuICAgICAgICB0aGlzLmRhdGVEaXNhYmxlZCgpKG5leHREYXRlKSB8fFxuICAgICAgICAobWluICYmIHRoaXMuZGF0ZUFkYXB0ZXIuaXNCZWZvcmUobmV4dERhdGUsIG1pbikpIHx8XG4gICAgICAgIChtYXggJiYgdGhpcy5kYXRlQWRhcHRlci5pc0FmdGVyKG5leHREYXRlLCBtYXgpKVxuICAgICAgKSB7XG4gICAgICAgIG5leHREYXRlID0gdGhpcy5kYXRlQWRhcHRlci5hZGQobmV4dERhdGUsIHsgZGF5czogZGlyZWN0aW9uID09PSAnZm9yd2FyZCcgPyAxIDogLTEgfSk7XG4gICAgICB9XG5cbiAgICAgIGRhdGUgPSBuZXh0RGF0ZTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzZWREYXRlLnNldChkYXRlKTtcblxuICAgIGlmIChvcmlnaW4gPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIGFmdGVyTmV4dFJlbmRlcihcbiAgICAgICAge1xuICAgICAgICAgIHdyaXRlOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMoKS5mb3JFYWNoKGJ1dHRvbiA9PiBidXR0b24uZm9jdXMoKSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { InjectionToken, inject } from '@angular/core';
9
+ export const NgpDatePickerToken = new InjectionToken('NgpDatePickerToken');
10
+ /**
11
+ * Inject the DatePicker directive instance
12
+ */
13
+ export function injectDatePicker() {
14
+ return inject(NgpDatePickerToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsb0JBQW9CLENBQUMsQ0FBQztBQUVuRzs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsT0FBTyxNQUFNLENBQUMsa0JBQWtCLENBQXFCLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3BEYXRlUGlja2VyIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgTmdwRGF0ZVBpY2tlclRva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5ncERhdGVQaWNrZXI8dW5rbm93bj4+KCdOZ3BEYXRlUGlja2VyVG9rZW4nKTtcblxuLyoqXG4gKiBJbmplY3QgdGhlIERhdGVQaWNrZXIgZGlyZWN0aXZlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REYXRlUGlja2VyPFQ+KCk6IE5ncERhdGVQaWNrZXI8VD4ge1xuICByZXR1cm4gaW5qZWN0KE5ncERhdGVQaWNrZXJUb2tlbikgYXMgTmdwRGF0ZVBpY2tlcjxUPjtcbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { computed, contentChild, Directive } from '@angular/core';
9
+ import { NgpDatePickerDateButtonToken } from '../date-picker-date-button/date-picker-date-button.token';
10
+ import { injectDatePicker } from '../date-picker/date-picker.token';
11
+ import { NgpDatePickerCellToken } from './date-picker-cell.token';
12
+ import * as i0 from "@angular/core";
13
+ export class NgpDatePickerCell {
14
+ constructor() {
15
+ /**
16
+ * Access the date picker.
17
+ */
18
+ this.datePicker = injectDatePicker();
19
+ /**
20
+ * Access the child date picker date button.
21
+ */
22
+ this.datePickerButton = contentChild(NgpDatePickerDateButtonToken, {
23
+ descendants: true,
24
+ });
25
+ /**
26
+ * Access the label id.
27
+ */
28
+ this.labelId = computed(() => this.datePicker.label()?.id());
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerCell, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.1.1", type: NgpDatePickerCell, isStandalone: true, selector: "[ngpDatePickerCell]", host: { attributes: { "role": "gridcell" }, properties: { "attr.data-selected": "datePickerButton()?.selected()", "attr.aria-selected": "datePickerButton()?.selected()", "attr.aria-disabled": "datePickerButton()?.disabled()", "attr.data-disabled": "datePickerButton()?.disabled()", "attr.aria-labelledby": "labelId()" } }, providers: [{ provide: NgpDatePickerCellToken, useExisting: NgpDatePickerCell }], queries: [{ propertyName: "datePickerButton", first: true, predicate: NgpDatePickerDateButtonToken, descendants: true, isSignal: true }], exportAs: ["ngpDatePickerCell"], ngImport: i0 }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerCell, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ standalone: true,
37
+ selector: '[ngpDatePickerCell]',
38
+ exportAs: 'ngpDatePickerCell',
39
+ providers: [{ provide: NgpDatePickerCellToken, useExisting: NgpDatePickerCell }],
40
+ host: {
41
+ role: 'gridcell',
42
+ '[attr.data-selected]': 'datePickerButton()?.selected()',
43
+ '[attr.aria-selected]': 'datePickerButton()?.selected()',
44
+ '[attr.aria-disabled]': 'datePickerButton()?.disabled()',
45
+ '[attr.data-disabled]': 'datePickerButton()?.disabled()',
46
+ '[attr.aria-labelledby]': 'labelId()',
47
+ },
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2VsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci1jZWxsL2RhdGUtcGlja2VyLWNlbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFnQmxFLE1BQU0sT0FBTyxpQkFBaUI7SUFkOUI7UUFlRTs7V0FFRztRQUNjLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ2dCLHFCQUFnQixHQUFHLFlBQVksQ0FBQyw0QkFBNEIsRUFBRTtZQUMvRSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNnQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM1RTs4R0FqQlksaUJBQWlCO2tHQUFqQixpQkFBaUIscVlBVmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLENBQUMsd0VBbUI3Qiw0QkFBNEI7OzJGQVRwRSxpQkFBaUI7a0JBZDdCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztvQkFDaEYsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixzQkFBc0IsRUFBRSxnQ0FBZ0M7d0JBQ3hELHNCQUFzQixFQUFFLGdDQUFnQzt3QkFDeEQsc0JBQXNCLEVBQUUsZ0NBQWdDO3dCQUN4RCxzQkFBc0IsRUFBRSxnQ0FBZ0M7d0JBQ3hELHdCQUF3QixFQUFFLFdBQVc7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBjb21wdXRlZCwgY29udGVudENoaWxkLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ncERhdGVQaWNrZXJEYXRlQnV0dG9uVG9rZW4gfSBmcm9tICcuLi9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi50b2tlbic7XG5pbXBvcnQgeyBpbmplY3REYXRlUGlja2VyIH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIudG9rZW4nO1xuaW1wb3J0IHsgTmdwRGF0ZVBpY2tlckNlbGxUb2tlbiB9IGZyb20gJy4vZGF0ZS1waWNrZXItY2VsbC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BEYXRlUGlja2VyQ2VsbF0nLFxuICBleHBvcnRBczogJ25ncERhdGVQaWNrZXJDZWxsJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BEYXRlUGlja2VyQ2VsbFRva2VuLCB1c2VFeGlzdGluZzogTmdwRGF0ZVBpY2tlckNlbGwgfV0sXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAnZ3JpZGNlbGwnLFxuICAgICdbYXR0ci5kYXRhLXNlbGVjdGVkXSc6ICdkYXRlUGlja2VyQnV0dG9uKCk/LnNlbGVjdGVkKCknLFxuICAgICdbYXR0ci5hcmlhLXNlbGVjdGVkXSc6ICdkYXRlUGlja2VyQnV0dG9uKCk/LnNlbGVjdGVkKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkYXRlUGlja2VyQnV0dG9uKCk/LmRpc2FibGVkKCknLFxuICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdkYXRlUGlja2VyQnV0dG9uKCk/LmRpc2FibGVkKCknLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2xhYmVsSWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncERhdGVQaWNrZXJDZWxsIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGF0ZSBwaWNrZXIuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVQaWNrZXIgPSBpbmplY3REYXRlUGlja2VyKCk7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgY2hpbGQgZGF0ZSBwaWNrZXIgZGF0ZSBidXR0b24uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZVBpY2tlckJ1dHRvbiA9IGNvbnRlbnRDaGlsZChOZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvblRva2VuLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGxhYmVsIGlkLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsSWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGVQaWNrZXIubGFiZWwoKT8uaWQoKSk7XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { InjectionToken, inject } from '@angular/core';
9
+ export const NgpDatePickerCellToken = new InjectionToken('NgpDatePickerCellToken');
10
+ /**
11
+ * Inject the DatePickerCell directive instance
12
+ */
13
+ export function injectDatePickerCell() {
14
+ return inject(NgpDatePickerCellToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2VsbC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZGF0ZS1waWNrZXIvc3JjL2RhdGUtcGlja2VyLWNlbGwvZGF0ZS1waWNrZXItY2VsbC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsT0FBTyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE5ncERhdGVQaWNrZXJDZWxsIH0gZnJvbSAnLi9kYXRlLXBpY2tlci1jZWxsLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBOZ3BEYXRlUGlja2VyQ2VsbFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5ncERhdGVQaWNrZXJDZWxsPihcbiAgJ05ncERhdGVQaWNrZXJDZWxsVG9rZW4nLFxuKTtcblxuLyoqXG4gKiBJbmplY3QgdGhlIERhdGVQaWNrZXJDZWxsIGRpcmVjdGl2ZSBpbnN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RGF0ZVBpY2tlckNlbGwoKTogTmdwRGF0ZVBpY2tlckNlbGwge1xuICByZXR1cm4gaW5qZWN0KE5ncERhdGVQaWNrZXJDZWxsVG9rZW4pO1xufVxuIl19
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { Directive, inject, Injector, TemplateRef, ViewContainerRef, } from '@angular/core';
9
+ import { injectDatePickerWeek } from '../date-picker-row-render/date-picker-row-render.token';
10
+ import { NgpDatePickerCellDateToken, NgpDatePickerCellRenderToken, } from './date-picker-cell-render.token';
11
+ import * as i0 from "@angular/core";
12
+ export class NgpDatePickerCellRender {
13
+ // Make sure the template checker knows the type of the context with which the
14
+ // template of this directive will be rendered
15
+ static ngTemplateContextGuard(_, context) {
16
+ return true;
17
+ }
18
+ constructor() {
19
+ /**
20
+ * Access the template ref for the cell.
21
+ */
22
+ this.templateRef = inject(TemplateRef);
23
+ /**
24
+ * Access the view container ref.
25
+ */
26
+ this.viewContainerRef = inject(ViewContainerRef);
27
+ /**
28
+ * Access the dates in the week.
29
+ */
30
+ this.dates = injectDatePickerWeek();
31
+ /**
32
+ * Store the view refs for the dates.
33
+ */
34
+ this.viewRefs = [];
35
+ this.renderDates();
36
+ }
37
+ /**
38
+ * Render the dates in the week.
39
+ */
40
+ renderDates() {
41
+ this.viewRefs.forEach(viewRef => viewRef.destroy());
42
+ for (const date of this.dates) {
43
+ const viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, {
44
+ $implicit: date,
45
+ }, {
46
+ injector: Injector.create({
47
+ parent: this.viewContainerRef.injector,
48
+ providers: [{ provide: NgpDatePickerCellDateToken, useValue: date }],
49
+ }),
50
+ });
51
+ this.viewRefs.push(viewRef);
52
+ }
53
+ }
54
+ /**
55
+ * Destroy the view refs.
56
+ */
57
+ ngOnDestroy() {
58
+ this.viewRefs.forEach(viewRef => viewRef.destroy());
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerCellRender, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpDatePickerCellRender, isStandalone: true, selector: "[ngpDatePickerCellRender]", providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }], exportAs: ["ngpDatePickerCellRender"], ngImport: i0 }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerCellRender, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ standalone: true,
67
+ selector: '[ngpDatePickerCellRender]',
68
+ exportAs: 'ngpDatePickerCellRender',
69
+ providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }],
70
+ }]
71
+ }], ctorParameters: () => [] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2VsbC1yZW5kZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9kYXRlLXBpY2tlci9zcmMvZGF0ZS1waWNrZXItY2VsbC1yZW5kZXIvZGF0ZS1waWNrZXItY2VsbC1yZW5kZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFDTCxTQUFTLEVBRVQsTUFBTSxFQUNOLFFBQVEsRUFFUixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsNEJBQTRCLEdBQzdCLE1BQU0saUNBQWlDLENBQUM7O0FBUXpDLE1BQU0sT0FBTyx1QkFBdUI7SUFxQmxDLDhFQUE4RTtJQUM5RSw4Q0FBOEM7SUFDOUMsTUFBTSxDQUFDLHNCQUFzQixDQUMzQixDQUE2QixFQUM3QixPQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDtRQTdCQTs7V0FFRztRQUNjLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5EOztXQUVHO1FBQ2MscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0Q7O1dBRUc7UUFDYyxVQUFLLEdBQUcsb0JBQW9CLEVBQUssQ0FBQztRQUVuRDs7V0FFRztRQUNjLGFBQVEsR0FBbUQsRUFBRSxDQUFDO1FBWTdFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFcEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUN0RCxJQUFJLENBQUMsV0FBVyxFQUNoQjtnQkFDRSxTQUFTLEVBQUUsSUFBSTthQUNoQixFQUNEO2dCQUNFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVE7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDckUsQ0FBQzthQUNILENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDOzhHQTlEVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix3RUFGdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQzs7MkZBRWpGLHVCQUF1QjtrQkFObkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxDQUFDO2lCQUM3RiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RGF0ZVBpY2tlcldlZWsgfSBmcm9tICcuLi9kYXRlLXBpY2tlci1yb3ctcmVuZGVyL2RhdGUtcGlja2VyLXJvdy1yZW5kZXIudG9rZW4nO1xuaW1wb3J0IHtcbiAgTmdwRGF0ZVBpY2tlckNlbGxEYXRlVG9rZW4sXG4gIE5ncERhdGVQaWNrZXJDZWxsUmVuZGVyVG9rZW4sXG59IGZyb20gJy4vZGF0ZS1waWNrZXItY2VsbC1yZW5kZXIudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmdwRGF0ZVBpY2tlckNlbGxSZW5kZXJdJyxcbiAgZXhwb3J0QXM6ICduZ3BEYXRlUGlja2VyQ2VsbFJlbmRlcicsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwRGF0ZVBpY2tlckNlbGxSZW5kZXJUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncERhdGVQaWNrZXJDZWxsUmVuZGVyIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BEYXRlUGlja2VyQ2VsbFJlbmRlcjxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIHRlbXBsYXRlIHJlZiBmb3IgdGhlIGNlbGwuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSB2aWV3IGNvbnRhaW5lciByZWYuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGF0ZXMgaW4gdGhlIHdlZWsuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVzID0gaW5qZWN0RGF0ZVBpY2tlcldlZWs8VD4oKTtcblxuICAvKipcbiAgICogU3RvcmUgdGhlIHZpZXcgcmVmcyBmb3IgdGhlIGRhdGVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3UmVmczogRW1iZWRkZWRWaWV3UmVmPE5ncERhdGVQaWNrZXJDZWxsQ29udGV4dDxUPj5bXSA9IFtdO1xuXG4gIC8vIE1ha2Ugc3VyZSB0aGUgdGVtcGxhdGUgY2hlY2tlciBrbm93cyB0aGUgdHlwZSBvZiB0aGUgY29udGV4dCB3aXRoIHdoaWNoIHRoZVxuICAvLyB0ZW1wbGF0ZSBvZiB0aGlzIGRpcmVjdGl2ZSB3aWxsIGJlIHJlbmRlcmVkXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgIF86IE5ncERhdGVQaWNrZXJDZWxsUmVuZGVyPFQ+LFxuICAgIGNvbnRleHQ6IHVua25vd24sXG4gICk6IGNvbnRleHQgaXMgTmdwRGF0ZVBpY2tlckNlbGxDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucmVuZGVyRGF0ZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGRhdGVzIGluIHRoZSB3ZWVrLlxuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJEYXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdSZWZzLmZvckVhY2godmlld1JlZiA9PiB2aWV3UmVmLmRlc3Ryb3koKSk7XG5cbiAgICBmb3IgKGNvbnN0IGRhdGUgb2YgdGhpcy5kYXRlcykge1xuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoXG4gICAgICAgIHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICAgIHtcbiAgICAgICAgICAkaW1wbGljaXQ6IGRhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BEYXRlUGlja2VyQ2VsbERhdGVUb2tlbiwgdXNlVmFsdWU6IGRhdGUgfV0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgdGhpcy52aWV3UmVmcy5wdXNoKHZpZXdSZWYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95IHRoZSB2aWV3IHJlZnMuXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdSZWZzLmZvckVhY2godmlld1JlZiA9PiB2aWV3UmVmLmRlc3Ryb3koKSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIE5ncERhdGVQaWNrZXJDZWxsQ29udGV4dDxUPiB7XG4gICRpbXBsaWNpdDogVDtcbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { InjectionToken, inject } from '@angular/core';
9
+ export const NgpDatePickerCellRenderToken = new InjectionToken('NgpDatePickerCellRenderToken');
10
+ /**
11
+ * Inject the DatePickerCell directive instance
12
+ */
13
+ export function injectDatePickerCellRender() {
14
+ return inject(NgpDatePickerCellRenderToken);
15
+ }
16
+ export const NgpDatePickerCellDateToken = new InjectionToken('NgpDatePickerCellDateToken');
17
+ /**
18
+ * Inject current cell date
19
+ */
20
+ export function injectDatePickerCellDate() {
21
+ return inject(NgpDatePickerCellDateToken);
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2VsbC1yZW5kZXIudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci1jZWxsLXJlbmRlci9kYXRlLXBpY2tlci1jZWxsLXJlbmRlci50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsOEJBQThCLENBQy9CLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTyxNQUFNLENBQUMsNEJBQTRCLENBQStCLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFVLDRCQUE0QixDQUFDLENBQUM7QUFFcEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLDBCQUEwQixDQUFNLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3BEYXRlUGlja2VyQ2VsbFJlbmRlciB9IGZyb20gJy4vZGF0ZS1waWNrZXItY2VsbC1yZW5kZXIuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IE5ncERhdGVQaWNrZXJDZWxsUmVuZGVyVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdwRGF0ZVBpY2tlckNlbGxSZW5kZXI8dW5rbm93bj4+KFxuICAnTmdwRGF0ZVBpY2tlckNlbGxSZW5kZXJUb2tlbicsXG4pO1xuXG4vKipcbiAqIEluamVjdCB0aGUgRGF0ZVBpY2tlckNlbGwgZGlyZWN0aXZlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REYXRlUGlja2VyQ2VsbFJlbmRlcjxUPigpOiBOZ3BEYXRlUGlja2VyQ2VsbFJlbmRlcjxUPiB7XG4gIHJldHVybiBpbmplY3QoTmdwRGF0ZVBpY2tlckNlbGxSZW5kZXJUb2tlbikgYXMgTmdwRGF0ZVBpY2tlckNlbGxSZW5kZXI8VD47XG59XG5cbmV4cG9ydCBjb25zdCBOZ3BEYXRlUGlja2VyQ2VsbERhdGVUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjx1bmtub3duPignTmdwRGF0ZVBpY2tlckNlbGxEYXRlVG9rZW4nKTtcblxuLyoqXG4gKiBJbmplY3QgY3VycmVudCBjZWxsIGRhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERhdGVQaWNrZXJDZWxsRGF0ZTxUPigpOiBUIHtcbiAgcmV0dXJuIGluamVjdChOZ3BEYXRlUGlja2VyQ2VsbERhdGVUb2tlbikgYXMgVDtcbn1cbiJdfQ==