ng-primitives 0.2.1 → 0.4.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 (70) hide show
  1. package/accordion/accordion/accordion.directive.d.ts +1 -1
  2. package/date-picker/README.md +3 -0
  3. package/date-picker/date-picker/date-picker.directive.d.ts +61 -0
  4. package/date-picker/date-picker/date-picker.token.d.ts +14 -0
  5. package/date-picker/date-picker-cell/date-picker-cell.directive.d.ts +17 -0
  6. package/date-picker/date-picker-cell/date-picker-cell.token.d.ts +14 -0
  7. package/date-picker/date-picker-cell-render/date-picker-cell-render.directive.d.ts +43 -0
  8. package/date-picker/date-picker-cell-render/date-picker-cell-render.token.d.ts +19 -0
  9. package/date-picker/date-picker-date-button/date-picker-date-button.directive.d.ts +99 -0
  10. package/date-picker/date-picker-date-button/date-picker-date-button.token.d.ts +14 -0
  11. package/date-picker/date-picker-grid/date-picker-grid.directive.d.ts +13 -0
  12. package/date-picker/date-picker-grid/date-picker-grid.token.d.ts +14 -0
  13. package/date-picker/date-picker-label/date-picker-label.directive.d.ts +17 -0
  14. package/date-picker/date-picker-label/date-picker-label.token.d.ts +14 -0
  15. package/date-picker/date-picker-next-month/date-picker-next-month.directive.d.ts +32 -0
  16. package/date-picker/date-picker-next-month/date-picker-next-month.token.d.ts +14 -0
  17. package/date-picker/date-picker-previous-month/date-picker-previous-month.directive.d.ts +32 -0
  18. package/date-picker/date-picker-previous-month/date-picker-previous-month.token.d.ts +14 -0
  19. package/date-picker/date-picker-row-render/date-picker-row-render.directive.d.ts +49 -0
  20. package/date-picker/date-picker-row-render/date-picker-row-render.token.d.ts +19 -0
  21. package/date-picker/index.d.ts +25 -0
  22. package/date-time/README.md +3 -0
  23. package/date-time/date-adapter/date-adapter.d.ts +169 -0
  24. package/date-time/date-adapter/date-adapter.token.d.ts +18 -0
  25. package/date-time/index.d.ts +9 -0
  26. package/date-time/native-date-adapter/native-date-adapter.d.ts +106 -0
  27. package/esm2022/date-picker/date-picker/date-picker.directive.mjs +117 -0
  28. package/esm2022/date-picker/date-picker/date-picker.token.mjs +16 -0
  29. package/esm2022/date-picker/date-picker-cell/date-picker-cell.directive.mjs +50 -0
  30. package/esm2022/date-picker/date-picker-cell/date-picker-cell.token.mjs +16 -0
  31. package/esm2022/date-picker/date-picker-cell-render/date-picker-cell-render.directive.mjs +72 -0
  32. package/esm2022/date-picker/date-picker-cell-render/date-picker-cell-render.token.mjs +23 -0
  33. package/esm2022/date-picker/date-picker-date-button/date-picker-date-button.directive.mjs +277 -0
  34. package/esm2022/date-picker/date-picker-date-button/date-picker-date-button.token.mjs +16 -0
  35. package/esm2022/date-picker/date-picker-grid/date-picker-grid.directive.mjs +40 -0
  36. package/esm2022/date-picker/date-picker-grid/date-picker-grid.token.mjs +16 -0
  37. package/esm2022/date-picker/date-picker-label/date-picker-label.directive.mjs +47 -0
  38. package/esm2022/date-picker/date-picker-label/date-picker-label.token.mjs +16 -0
  39. package/esm2022/date-picker/date-picker-next-month/date-picker-next-month.directive.mjs +103 -0
  40. package/esm2022/date-picker/date-picker-next-month/date-picker-next-month.token.mjs +16 -0
  41. package/esm2022/date-picker/date-picker-previous-month/date-picker-previous-month.directive.mjs +104 -0
  42. package/esm2022/date-picker/date-picker-previous-month/date-picker-previous-month.token.mjs +16 -0
  43. package/esm2022/date-picker/date-picker-row-render/date-picker-row-render.directive.mjs +118 -0
  44. package/esm2022/date-picker/date-picker-row-render/date-picker-row-render.token.mjs +23 -0
  45. package/esm2022/date-picker/index.mjs +26 -0
  46. package/esm2022/date-picker/ng-primitives-date-picker.mjs +5 -0
  47. package/esm2022/date-time/date-adapter/date-adapter.mjs +9 -0
  48. package/esm2022/date-time/date-adapter/date-adapter.token.mjs +24 -0
  49. package/esm2022/date-time/index.mjs +9 -0
  50. package/esm2022/date-time/native-date-adapter/native-date-adapter.mjs +149 -0
  51. package/esm2022/date-time/ng-primitives-date-time.mjs +5 -0
  52. package/esm2022/interactions/hover/hover.directive.mjs +9 -10
  53. package/esm2022/search/index.mjs +3 -1
  54. package/esm2022/search/search-field/search-field.directive.mjs +1 -1
  55. package/esm2022/search/search-field-clear/search-field-clear.directive.mjs +44 -0
  56. package/esm2022/search/search-field-clear/search-field-clear.token.mjs +16 -0
  57. package/fesm2022/ng-primitives-date-picker.mjs +1044 -0
  58. package/fesm2022/ng-primitives-date-picker.mjs.map +1 -0
  59. package/fesm2022/ng-primitives-date-time.mjs +187 -0
  60. package/fesm2022/ng-primitives-date-time.mjs.map +1 -0
  61. package/fesm2022/ng-primitives-interactions.mjs +8 -10
  62. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  63. package/fesm2022/ng-primitives-search.mjs +57 -2
  64. package/fesm2022/ng-primitives-search.mjs.map +1 -1
  65. package/interactions/hover/hover.directive.d.ts +3 -3
  66. package/package.json +24 -7
  67. package/search/index.d.ts +2 -0
  68. package/search/search-field/search-field.directive.d.ts +2 -2
  69. package/search/search-field-clear/search-field-clear.directive.d.ts +13 -0
  70. package/search/search-field-clear/search-field-clear.token.d.ts +14 -0
@@ -0,0 +1,277 @@
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 { FocusMonitor } from '@angular/cdk/a11y';
9
+ import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';
10
+ import { NgpButton } from 'ng-primitives/button';
11
+ import { injectDateAdapter } from 'ng-primitives/date-time';
12
+ import { NgpDisabledToken } from 'ng-primitives/internal';
13
+ import { injectDatePickerCellDate } from '../date-picker-cell-render/date-picker-cell-render.token';
14
+ import { injectDatePicker } from '../date-picker/date-picker.token';
15
+ import { NgpDatePickerDateButtonToken } from './date-picker-date-button.token';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "ng-primitives/button";
18
+ export class NgpDatePickerDateButton {
19
+ constructor() {
20
+ /**
21
+ * Access the element ref.
22
+ */
23
+ this.elementRef = inject(ElementRef);
24
+ /**
25
+ * Access the focus monitor.
26
+ */
27
+ this.focusMonitor = inject(FocusMonitor);
28
+ /**
29
+ * Access the date picker.
30
+ */
31
+ this.datePicker = injectDatePicker();
32
+ /**
33
+ * Access the date adapter.
34
+ */
35
+ this.dateAdapter = injectDateAdapter();
36
+ /**
37
+ * The date this cell represents.
38
+ */
39
+ this.date = injectDatePickerCellDate();
40
+ /**
41
+ * Determine if this is the focused date.
42
+ */
43
+ this.focused = computed(() => this.dateAdapter.isSameDay(this.date, this.datePicker.focusedDate()));
44
+ /**
45
+ * Determine if this is the selected date.
46
+ * @internal
47
+ */
48
+ this.selected = computed(() => {
49
+ const selected = this.datePicker.date();
50
+ return selected && this.dateAdapter.isSameDay(this.date, selected);
51
+ });
52
+ /**
53
+ * Determine if this date is outside the current month.
54
+ */
55
+ this.outside = computed(() => !this.dateAdapter.isSameMonth(this.date, this.datePicker.focusedDate()));
56
+ /**
57
+ * Determine if this date is today.
58
+ */
59
+ this.today = computed(() => this.dateAdapter.isSameDay(this.date, this.dateAdapter.now()));
60
+ /**
61
+ * Determine if this date is disabled.
62
+ * @internal
63
+ */
64
+ this.disabled = computed(() => {
65
+ const min = this.datePicker.min();
66
+ const max = this.datePicker.max();
67
+ if (this.datePicker.disabled() || this.datePicker.dateDisabled()(this.date)) {
68
+ return true;
69
+ }
70
+ if (min && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), min) < 0) {
71
+ return true;
72
+ }
73
+ if (max && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), max) > 0) {
74
+ return true;
75
+ }
76
+ return false;
77
+ });
78
+ /**
79
+ * Determine if the element is a button.
80
+ */
81
+ this.isButton = this.elementRef.nativeElement.tagName === 'BUTTON';
82
+ }
83
+ /**
84
+ * When the button is clicked, select the date.
85
+ */
86
+ select(event) {
87
+ // if the button is disabled, or is already selected, do nothing.
88
+ if (this.disabled() || this.selected()) {
89
+ return;
90
+ }
91
+ // because this may not be a button, we should stop the event from firing twice due to
92
+ // us listening to both the click and the keydown.enter event.
93
+ if (event) {
94
+ event.preventDefault();
95
+ event.stopPropagation();
96
+ }
97
+ this.datePicker.date.set(this.date);
98
+ this.datePicker.setFocusedDate(this.date, 'mouse', 'forward');
99
+ }
100
+ /**
101
+ * Focus if this is the current focused date.
102
+ * @internal
103
+ */
104
+ focus() {
105
+ if (this.dateAdapter.isSameDay(this.date, this.datePicker.focusedDate())) {
106
+ this.focusMonitor.focusVia(this.elementRef, 'keyboard');
107
+ }
108
+ }
109
+ /**
110
+ * Focus the previous cell.
111
+ */
112
+ focusPrevious(event) {
113
+ event.preventDefault();
114
+ event.stopPropagation();
115
+ // in rtl, the arrow keys are reversed.
116
+ if (this.getDirection() === 'rtl') {
117
+ this.focusDate(this.dateAdapter.add(this.datePicker.focusedDate(), { days: 1 }), 'forward');
118
+ }
119
+ else {
120
+ this.focusDate(this.dateAdapter.subtract(this.datePicker.focusedDate(), { days: 1 }), 'backward');
121
+ }
122
+ }
123
+ /**
124
+ * Focus the next cell.
125
+ */
126
+ focusNext(event) {
127
+ event.preventDefault();
128
+ event.stopPropagation();
129
+ // in rtl, the arrow keys are reversed.
130
+ if (this.getDirection() === 'rtl') {
131
+ this.focusDate(this.dateAdapter.subtract(this.datePicker.focusedDate(), { days: 1 }), 'backward');
132
+ }
133
+ else {
134
+ this.focusDate(this.dateAdapter.add(this.datePicker.focusedDate(), { days: 1 }), 'forward');
135
+ }
136
+ }
137
+ /**
138
+ * Focus the above cell.
139
+ */
140
+ focusAbove(event) {
141
+ event.preventDefault();
142
+ event.stopPropagation();
143
+ this.focusDate(this.dateAdapter.subtract(this.datePicker.focusedDate(), { days: 7 }), 'backward');
144
+ }
145
+ /**
146
+ * Focus the below cell.
147
+ */
148
+ focusBelow(event) {
149
+ event.preventDefault();
150
+ event.stopPropagation();
151
+ this.focusDate(this.dateAdapter.add(this.datePicker.focusedDate(), { days: 7 }), 'forward');
152
+ }
153
+ /**
154
+ * Focus the first date of the month.
155
+ */
156
+ focusFirst(event) {
157
+ event.preventDefault();
158
+ event.stopPropagation();
159
+ this.focusDate(this.dateAdapter.startOfMonth(this.datePicker.focusedDate()), 'forward');
160
+ }
161
+ /**
162
+ * Focus the last date of the month.
163
+ */
164
+ focusLast(event) {
165
+ event.preventDefault();
166
+ event.stopPropagation();
167
+ this.focusDate(this.dateAdapter.endOfMonth(this.datePicker.focusedDate()), 'backward');
168
+ }
169
+ /**
170
+ * Focus the same date in the previous month.
171
+ */
172
+ focusPreviousMonth(event) {
173
+ event.preventDefault();
174
+ event.stopPropagation();
175
+ const date = this.dateAdapter.getDate(this.datePicker.focusedDate());
176
+ let previousMonthTarget = this.dateAdapter.startOfMonth(this.datePicker.focusedDate());
177
+ previousMonthTarget = this.dateAdapter.subtract(previousMonthTarget, { months: 1 });
178
+ const lastDay = this.dateAdapter.endOfMonth(previousMonthTarget);
179
+ // if we are on a date that does not exist in the previous month, we should focus the last day of the month.
180
+ if (date > this.dateAdapter.getDate(lastDay)) {
181
+ this.focusDate(lastDay, 'forward');
182
+ return;
183
+ }
184
+ else {
185
+ this.focusDate(this.dateAdapter.set(previousMonthTarget, { day: date }), 'forward');
186
+ }
187
+ }
188
+ /**
189
+ * Focus the same date in the next month.
190
+ */
191
+ focusNextMonth(event) {
192
+ event.preventDefault();
193
+ event.stopPropagation();
194
+ const date = this.dateAdapter.getDate(this.datePicker.focusedDate());
195
+ let nextMonthTarget = this.dateAdapter.startOfMonth(this.datePicker.focusedDate());
196
+ nextMonthTarget = this.dateAdapter.add(nextMonthTarget, { months: 1 });
197
+ const lastDay = this.dateAdapter.endOfMonth(nextMonthTarget);
198
+ // if we are on a date that does not exist in the next month, we should focus the last day of the month.
199
+ if (date > this.dateAdapter.getDate(lastDay)) {
200
+ this.focusDate(lastDay, 'backward');
201
+ return;
202
+ }
203
+ else {
204
+ this.focusDate(this.dateAdapter.set(nextMonthTarget, { day: date }), 'backward');
205
+ }
206
+ }
207
+ focusDate(date, direction) {
208
+ this.datePicker.setFocusedDate(date, 'keyboard', direction);
209
+ }
210
+ /**
211
+ * Get the direction of the element.
212
+ */
213
+ getDirection() {
214
+ return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';
215
+ }
216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerDateButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
217
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpDatePickerDateButton, isStandalone: true, selector: "[ngpDatePickerDateButton]", host: { listeners: { "click": "select()", "keydown.enter": "select($event)", "keydown.space": "select($event)", "keydown.arrowLeft": "focusPrevious($event)", "keydown.arrowRight": "focusNext($event)", "keydown.arrowUp": "focusAbove($event)", "keydown.arrowDown": "focusBelow($event)", "keydown.home": "focusFirst($event)", "keydown.end": "focusLast($event)", "keydown.pageUp": "focusPreviousMonth($event)", "keydown.pageDown": "focusNextMonth($event)" }, properties: { "attr.role": "!isButton ? \"button\" : null", "attr.tabindex": "focused() ? 0 : -1", "attr.data-selected": "selected()", "attr.data-disabled": "disabled()", "attr.aria-disabled": "disabled()", "attr.data-outside-month": "outside()", "attr.data-today": "today()" } }, providers: [
218
+ { provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton },
219
+ { provide: NgpDisabledToken, useExisting: NgpDatePickerDateButton },
220
+ ], exportAs: ["ngpDatePickerDateButton"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
221
+ }
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerDateButton, decorators: [{
223
+ type: Directive,
224
+ args: [{
225
+ standalone: true,
226
+ selector: '[ngpDatePickerDateButton]',
227
+ exportAs: 'ngpDatePickerDateButton',
228
+ providers: [
229
+ { provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton },
230
+ { provide: NgpDisabledToken, useExisting: NgpDatePickerDateButton },
231
+ ],
232
+ host: {
233
+ '[attr.role]': '!isButton ? "button" : null',
234
+ '[attr.tabindex]': 'focused() ? 0 : -1',
235
+ '[attr.data-selected]': 'selected()',
236
+ '[attr.data-disabled]': 'disabled()',
237
+ '[attr.aria-disabled]': 'disabled()',
238
+ '[attr.data-outside-month]': 'outside()',
239
+ '[attr.data-today]': 'today()',
240
+ },
241
+ hostDirectives: [NgpButton],
242
+ }]
243
+ }], propDecorators: { select: [{
244
+ type: HostListener,
245
+ args: ['click']
246
+ }, {
247
+ type: HostListener,
248
+ args: ['keydown.enter', ['$event']]
249
+ }, {
250
+ type: HostListener,
251
+ args: ['keydown.space', ['$event']]
252
+ }], focusPrevious: [{
253
+ type: HostListener,
254
+ args: ['keydown.arrowLeft', ['$event']]
255
+ }], focusNext: [{
256
+ type: HostListener,
257
+ args: ['keydown.arrowRight', ['$event']]
258
+ }], focusAbove: [{
259
+ type: HostListener,
260
+ args: ['keydown.arrowUp', ['$event']]
261
+ }], focusBelow: [{
262
+ type: HostListener,
263
+ args: ['keydown.arrowDown', ['$event']]
264
+ }], focusFirst: [{
265
+ type: HostListener,
266
+ args: ['keydown.home', ['$event']]
267
+ }], focusLast: [{
268
+ type: HostListener,
269
+ args: ['keydown.end', ['$event']]
270
+ }], focusPreviousMonth: [{
271
+ type: HostListener,
272
+ args: ['keydown.pageUp', ['$event']]
273
+ }], focusNextMonth: [{
274
+ type: HostListener,
275
+ args: ['keydown.pageDown', ['$event']]
276
+ }] } });
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItZGF0ZS1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9kYXRlLXBpY2tlci9zcmMvZGF0ZS1waWNrZXItZGF0ZS1idXR0b24vZGF0ZS1waWNrZXItZGF0ZS1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFxQi9FLE1BQU0sT0FBTyx1QkFBdUI7SUFuQnBDO1FBb0JFOztXQUVHO1FBQ2MsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFFMUU7O1dBRUc7UUFDYyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLGVBQVUsR0FBRyxnQkFBZ0IsRUFBSyxDQUFDO1FBRXBEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxpQkFBaUIsRUFBSyxDQUFDO1FBRXREOztXQUVHO1FBQ2MsU0FBSSxHQUFHLHdCQUF3QixF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O2lCQUM1Qjs4QkEyRlcsTUFBTTtzQkFIZixZQUFZO3VCQUFDLE9BQU87O3NCQUNwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdDL0IsYUFBYTtzQkFEdEIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvQm5DLFNBQVM7c0JBRGxCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0JwQyxVQUFVO3NCQURuQixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWVqQyxVQUFVO3NCQURuQixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVluQyxVQUFVO3NCQURuQixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXOUIsU0FBUztzQkFEbEIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVzdCLGtCQUFrQjtzQkFEM0IsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF5QmhDLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3BCdXR0b24gfSBmcm9tICduZy1wcmltaXRpdmVzL2J1dHRvbic7XG5pbXBvcnQgeyBpbmplY3REYXRlQWRhcHRlciB9IGZyb20gJ25nLXByaW1pdGl2ZXMvZGF0ZS10aW1lJztcbmltcG9ydCB7IE5ncENhbkRpc2FibGUsIE5ncERpc2FibGVkVG9rZW4gfSBmcm9tICduZy1wcmltaXRpdmVzL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdERhdGVQaWNrZXJDZWxsRGF0ZSB9IGZyb20gJy4uL2RhdGUtcGlja2VyLWNlbGwtcmVuZGVyL2RhdGUtcGlja2VyLWNlbGwtcmVuZGVyLnRva2VuJztcbmltcG9ydCB7IGluamVjdERhdGVQaWNrZXIgfSBmcm9tICcuLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci50b2tlbic7XG5pbXBvcnQgeyBOZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvblRva2VuIH0gZnJvbSAnLi9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvbl0nLFxuICBleHBvcnRBczogJ25ncERhdGVQaWNrZXJEYXRlQnV0dG9uJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvblRva2VuLCB1c2VFeGlzdGluZzogTmdwRGF0ZVBpY2tlckRhdGVCdXR0b24gfSxcbiAgICB7IHByb3ZpZGU6IE5ncERpc2FibGVkVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvbiB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJvbGVdJzogJyFpc0J1dHRvbiA/IFwiYnV0dG9uXCIgOiBudWxsJyxcbiAgICAnW2F0dHIudGFiaW5kZXhdJzogJ2ZvY3VzZWQoKSA/IDAgOiAtMScsXG4gICAgJ1thdHRyLmRhdGEtc2VsZWN0ZWRdJzogJ3NlbGVjdGVkKCknLFxuICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgJ1thdHRyLmRhdGEtb3V0c2lkZS1tb250aF0nOiAnb3V0c2lkZSgpJyxcbiAgICAnW2F0dHIuZGF0YS10b2RheV0nOiAndG9kYXkoKScsXG4gIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbTmdwQnV0dG9uXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdwRGF0ZVBpY2tlckRhdGVCdXR0b248VD4gaW1wbGVtZW50cyBOZ3BDYW5EaXNhYmxlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZWxlbWVudCByZWYuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGZvY3VzIG1vbml0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRhdGUgcGlja2VyLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkYXRlUGlja2VyID0gaW5qZWN0RGF0ZVBpY2tlcjxUPigpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRhdGUgYWRhcHRlci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0ZUFkYXB0ZXIgPSBpbmplY3REYXRlQWRhcHRlcjxUPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSB0aGlzIGNlbGwgcmVwcmVzZW50cy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0ZSA9IGluamVjdERhdGVQaWNrZXJDZWxsRGF0ZTxUPigpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhpcyBpcyB0aGUgZm9jdXNlZCBkYXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvY3VzZWQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZGF0ZUFkYXB0ZXIuaXNTYW1lRGF5KHRoaXMuZGF0ZSwgdGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpLFxuICApO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhpcyBpcyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGF0ZVBpY2tlci5kYXRlKCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkICYmIHRoaXMuZGF0ZUFkYXB0ZXIuaXNTYW1lRGF5KHRoaXMuZGF0ZSwgc2VsZWN0ZWQpO1xuICB9KTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoaXMgZGF0ZSBpcyBvdXRzaWRlIHRoZSBjdXJyZW50IG1vbnRoLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG91dHNpZGUgPSBjb21wdXRlZChcbiAgICAoKSA9PiAhdGhpcy5kYXRlQWRhcHRlci5pc1NhbWVNb250aCh0aGlzLmRhdGUsIHRoaXMuZGF0ZVBpY2tlci5mb2N1c2VkRGF0ZSgpKSxcbiAgKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoaXMgZGF0ZSBpcyB0b2RheS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSB0b2RheSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5kYXRlQWRhcHRlci5pc1NhbWVEYXkodGhpcy5kYXRlLCB0aGlzLmRhdGVBZGFwdGVyLm5vdygpKSxcbiAgKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoaXMgZGF0ZSBpcyBkaXNhYmxlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtaW4gPSB0aGlzLmRhdGVQaWNrZXIubWluKCk7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5kYXRlUGlja2VyLm1heCgpO1xuXG4gICAgaWYgKHRoaXMuZGF0ZVBpY2tlci5kaXNhYmxlZCgpIHx8IHRoaXMuZGF0ZVBpY2tlci5kYXRlRGlzYWJsZWQoKSh0aGlzLmRhdGUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIHRoaXMuZGF0ZUFkYXB0ZXIuY29tcGFyZSh0aGlzLmRhdGVBZGFwdGVyLnN0YXJ0T2ZEYXkodGhpcy5kYXRlKSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChtYXggJiYgdGhpcy5kYXRlQWRhcHRlci5jb21wYXJlKHRoaXMuZGF0ZUFkYXB0ZXIuc3RhcnRPZkRheSh0aGlzLmRhdGUpLCBtYXgpID4gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBlbGVtZW50IGlzIGEgYnV0dG9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzQnV0dG9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0JVVFRPTic7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLCBzZWxlY3QgdGhlIGRhdGUuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIHNlbGVjdChldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBpZiB0aGUgYnV0dG9uIGlzIGRpc2FibGVkLCBvciBpcyBhbHJlYWR5IHNlbGVjdGVkLCBkbyBub3RoaW5nLlxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5zZWxlY3RlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYmVjYXVzZSB0aGlzIG1heSBub3QgYmUgYSBidXR0b24sIHdlIHNob3VsZCBzdG9wIHRoZSBldmVudCBmcm9tIGZpcmluZyB0d2ljZSBkdWUgdG9cbiAgICAvLyB1cyBsaXN0ZW5pbmcgdG8gYm90aCB0aGUgY2xpY2sgYW5kIHRoZSBrZXlkb3duLmVudGVyIGV2ZW50LlxuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZVBpY2tlci5kYXRlLnNldCh0aGlzLmRhdGUpO1xuICAgIHRoaXMuZGF0ZVBpY2tlci5zZXRGb2N1c2VkRGF0ZSh0aGlzLmRhdGUsICdtb3VzZScsICdmb3J3YXJkJyk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXMgaWYgdGhpcyBpcyB0aGUgY3VycmVudCBmb2N1c2VkIGRhdGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZUFkYXB0ZXIuaXNTYW1lRGF5KHRoaXMuZGF0ZSwgdGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpKSB7XG4gICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmVsZW1lbnRSZWYsICdrZXlib2FyZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1cyB0aGUgcHJldmlvdXMgY2VsbC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dMZWZ0JywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGZvY3VzUHJldmlvdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgLy8gaW4gcnRsLCB0aGUgYXJyb3cga2V5cyBhcmUgcmV2ZXJzZWQuXG4gICAgaWYgKHRoaXMuZ2V0RGlyZWN0aW9uKCkgPT09ICdydGwnKSB7XG4gICAgICB0aGlzLmZvY3VzRGF0ZSh0aGlzLmRhdGVBZGFwdGVyLmFkZCh0aGlzLmRhdGVQaWNrZXIuZm9jdXNlZERhdGUoKSwgeyBkYXlzOiAxIH0pLCAnZm9yd2FyZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzRGF0ZShcbiAgICAgICAgdGhpcy5kYXRlQWRhcHRlci5zdWJ0cmFjdCh0aGlzLmRhdGVQaWNrZXIuZm9jdXNlZERhdGUoKSwgeyBkYXlzOiAxIH0pLFxuICAgICAgICAnYmFja3dhcmQnLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9jdXMgdGhlIG5leHQgY2VsbC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dSaWdodCcsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBmb2N1c05leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgLy8gaW4gcnRsLCB0aGUgYXJyb3cga2V5cyBhcmUgcmV2ZXJzZWQuXG4gICAgaWYgKHRoaXMuZ2V0RGlyZWN0aW9uKCkgPT09ICdydGwnKSB7XG4gICAgICB0aGlzLmZvY3VzRGF0ZShcbiAgICAgICAgdGhpcy5kYXRlQWRhcHRlci5zdWJ0cmFjdCh0aGlzLmRhdGVQaWNrZXIuZm9jdXNlZERhdGUoKSwgeyBkYXlzOiAxIH0pLFxuICAgICAgICAnYmFja3dhcmQnLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c0RhdGUodGhpcy5kYXRlQWRhcHRlci5hZGQodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCksIHsgZGF5czogMSB9KSwgJ2ZvcndhcmQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9jdXMgdGhlIGFib3ZlIGNlbGwuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93VXAnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgZm9jdXNBYm92ZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmZvY3VzRGF0ZShcbiAgICAgIHRoaXMuZGF0ZUFkYXB0ZXIuc3VidHJhY3QodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCksIHsgZGF5czogNyB9KSxcbiAgICAgICdiYWNrd2FyZCcsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1cyB0aGUgYmVsb3cgY2VsbC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dEb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGZvY3VzQmVsb3coZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5mb2N1c0RhdGUodGhpcy5kYXRlQWRhcHRlci5hZGQodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCksIHsgZGF5czogNyB9KSwgJ2ZvcndhcmQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1cyB0aGUgZmlyc3QgZGF0ZSBvZiB0aGUgbW9udGguXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmhvbWUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgZm9jdXNGaXJzdChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5mb2N1c0RhdGUodGhpcy5kYXRlQWRhcHRlci5zdGFydE9mTW9udGgodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpLCAnZm9yd2FyZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzIHRoZSBsYXN0IGRhdGUgb2YgdGhlIG1vbnRoLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbmQnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgZm9jdXNMYXN0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZvY3VzRGF0ZSh0aGlzLmRhdGVBZGFwdGVyLmVuZE9mTW9udGgodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpLCAnYmFja3dhcmQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1cyB0aGUgc2FtZSBkYXRlIGluIHRoZSBwcmV2aW91cyBtb250aC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24ucGFnZVVwJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGZvY3VzUHJldmlvdXNNb250aChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlQWRhcHRlci5nZXREYXRlKHRoaXMuZGF0ZVBpY2tlci5mb2N1c2VkRGF0ZSgpKTtcblxuICAgIGxldCBwcmV2aW91c01vbnRoVGFyZ2V0ID0gdGhpcy5kYXRlQWRhcHRlci5zdGFydE9mTW9udGgodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpO1xuICAgIHByZXZpb3VzTW9udGhUYXJnZXQgPSB0aGlzLmRhdGVBZGFwdGVyLnN1YnRyYWN0KHByZXZpb3VzTW9udGhUYXJnZXQsIHsgbW9udGhzOiAxIH0pO1xuXG4gICAgY29uc3QgbGFzdERheSA9IHRoaXMuZGF0ZUFkYXB0ZXIuZW5kT2ZNb250aChwcmV2aW91c01vbnRoVGFyZ2V0KTtcblxuICAgIC8vIGlmIHdlIGFyZSBvbiBhIGRhdGUgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgcHJldmlvdXMgbW9udGgsIHdlIHNob3VsZCBmb2N1cyB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgIGlmIChkYXRlID4gdGhpcy5kYXRlQWRhcHRlci5nZXREYXRlKGxhc3REYXkpKSB7XG4gICAgICB0aGlzLmZvY3VzRGF0ZShsYXN0RGF5LCAnZm9yd2FyZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzRGF0ZSh0aGlzLmRhdGVBZGFwdGVyLnNldChwcmV2aW91c01vbnRoVGFyZ2V0LCB7IGRheTogZGF0ZSB9KSwgJ2ZvcndhcmQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9jdXMgdGhlIHNhbWUgZGF0ZSBpbiB0aGUgbmV4dCBtb250aC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24ucGFnZURvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgZm9jdXNOZXh0TW9udGgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmRhdGVQaWNrZXIuZm9jdXNlZERhdGUoKSk7XG5cbiAgICBsZXQgbmV4dE1vbnRoVGFyZ2V0ID0gdGhpcy5kYXRlQWRhcHRlci5zdGFydE9mTW9udGgodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpO1xuICAgIG5leHRNb250aFRhcmdldCA9IHRoaXMuZGF0ZUFkYXB0ZXIuYWRkKG5leHRNb250aFRhcmdldCwgeyBtb250aHM6IDEgfSk7XG5cbiAgICBjb25zdCBsYXN0RGF5ID0gdGhpcy5kYXRlQWRhcHRlci5lbmRPZk1vbnRoKG5leHRNb250aFRhcmdldCk7XG5cbiAgICAvLyBpZiB3ZSBhcmUgb24gYSBkYXRlIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG5leHQgbW9udGgsIHdlIHNob3VsZCBmb2N1cyB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgIGlmIChkYXRlID4gdGhpcy5kYXRlQWRhcHRlci5nZXREYXRlKGxhc3REYXkpKSB7XG4gICAgICB0aGlzLmZvY3VzRGF0ZShsYXN0RGF5LCAnYmFja3dhcmQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c0RhdGUodGhpcy5kYXRlQWRhcHRlci5zZXQobmV4dE1vbnRoVGFyZ2V0LCB7IGRheTogZGF0ZSB9KSwgJ2JhY2t3YXJkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0RhdGUoZGF0ZTogVCwgZGlyZWN0aW9uOiAnZm9yd2FyZCcgfCAnYmFja3dhcmQnKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlUGlja2VyLnNldEZvY3VzZWREYXRlKGRhdGUsICdrZXlib2FyZCcsIGRpcmVjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkaXJlY3Rpb24gb2YgdGhlIGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIGdldERpcmVjdGlvbigpOiAnbHRyJyB8ICdydGwnIHtcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZGlyZWN0aW9uID09PSAncnRsJyA/ICdydGwnIDogJ2x0cic7XG4gIH1cbn1cbiJdfQ==
@@ -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 NgpDatePickerDateButtonToken = new InjectionToken('NgpDatePickerDateButtonToken');
10
+ /**
11
+ * Inject the DatePickerDateButton directive instance
12
+ */
13
+ export function injectDatePickerDateButton() {
14
+ return inject(NgpDatePickerDateButtonToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItZGF0ZS1idXR0b24udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi9kYXRlLXBpY2tlci1kYXRlLWJ1dHRvbi50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsOEJBQThCLENBQy9CLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTyxNQUFNLENBQUMsNEJBQTRCLENBQStCLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvbiB9IGZyb20gJy4vZGF0ZS1waWNrZXItZGF0ZS1idXR0b24uZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IE5ncERhdGVQaWNrZXJEYXRlQnV0dG9uVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdwRGF0ZVBpY2tlckRhdGVCdXR0b248dW5rbm93bj4+KFxuICAnTmdwRGF0ZVBpY2tlckRhdGVCdXR0b25Ub2tlbicsXG4pO1xuXG4vKipcbiAqIEluamVjdCB0aGUgRGF0ZVBpY2tlckRhdGVCdXR0b24gZGlyZWN0aXZlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REYXRlUGlja2VyRGF0ZUJ1dHRvbjxUPigpOiBOZ3BEYXRlUGlja2VyRGF0ZUJ1dHRvbjxUPiB7XG4gIHJldHVybiBpbmplY3QoTmdwRGF0ZVBpY2tlckRhdGVCdXR0b25Ub2tlbikgYXMgTmdwRGF0ZVBpY2tlckRhdGVCdXR0b248VD47XG59XG4iXX0=
@@ -0,0 +1,40 @@
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, Directive } from '@angular/core';
9
+ import { injectDatePicker } from '../date-picker/date-picker.token';
10
+ import { NgpDatePickerGridToken } from './date-picker-grid.token';
11
+ import * as i0 from "@angular/core";
12
+ export class NgpDatePickerGrid {
13
+ constructor() {
14
+ /**
15
+ * Access the date picker.
16
+ */
17
+ this.datePicker = injectDatePicker();
18
+ /**
19
+ * Determine the id for the label.
20
+ */
21
+ this.labelId = computed(() => this.datePicker.label()?.id());
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerGrid, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpDatePickerGrid, isStandalone: true, selector: "[ngpDatePickerGrid]", host: { attributes: { "role": "grid" }, properties: { "attr.aria-labelledby": "labelId()", "attr.data-disabled": "datePicker.disabled()" } }, providers: [{ provide: NgpDatePickerGridToken, useExisting: NgpDatePickerGrid }], exportAs: ["ngpDatePickerGrid"], ngImport: i0 }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerGrid, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ standalone: true,
30
+ selector: '[ngpDatePickerGrid]',
31
+ exportAs: 'ngpDatePickerGrid',
32
+ providers: [{ provide: NgpDatePickerGridToken, useExisting: NgpDatePickerGrid }],
33
+ host: {
34
+ role: 'grid',
35
+ '[attr.aria-labelledby]': 'labelId()',
36
+ '[attr.data-disabled]': 'datePicker.disabled()',
37
+ },
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci1ncmlkL2RhdGUtcGlja2VyLWdyaWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWFsRSxNQUFNLE9BQU8saUJBQWlCO0lBWDlCO1FBWUU7O1dBRUc7UUFDYyxlQUFVLEdBQUcsZ0JBQWdCLEVBQUssQ0FBQztRQUVwRDs7V0FFRztRQUNnQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM1RTs4R0FWWSxpQkFBaUI7a0dBQWpCLGlCQUFpQixnTkFQakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQzs7MkZBT3JFLGlCQUFpQjtrQkFYN0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxDQUFDO29CQUNoRixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLE1BQU07d0JBQ1osd0JBQXdCLEVBQUUsV0FBVzt3QkFDckMsc0JBQXNCLEVBQUUsdUJBQXVCO3FCQUNoRDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RGF0ZVBpY2tlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnRva2VuJztcbmltcG9ydCB7IE5ncERhdGVQaWNrZXJHcmlkVG9rZW4gfSBmcm9tICcuL2RhdGUtcGlja2VyLWdyaWQudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmdwRGF0ZVBpY2tlckdyaWRdJyxcbiAgZXhwb3J0QXM6ICduZ3BEYXRlUGlja2VyR3JpZCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwRGF0ZVBpY2tlckdyaWRUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncERhdGVQaWNrZXJHcmlkIH1dLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ2dyaWQnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2xhYmVsSWQoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2RhdGVQaWNrZXIuZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncERhdGVQaWNrZXJHcmlkPFQ+IHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGF0ZSBwaWNrZXIuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVQaWNrZXIgPSBpbmplY3REYXRlUGlja2VyPFQ+KCk7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgaWQgZm9yIHRoZSBsYWJlbC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBsYWJlbElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRlUGlja2VyLmxhYmVsKCk/LmlkKCkpO1xufVxuIl19
@@ -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 NgpDatePickerGridToken = new InjectionToken('NgpDatePickerGridToken');
10
+ /**
11
+ * Inject the DatePickerGrid directive instance
12
+ */
13
+ export function injectDatePickerGrid() {
14
+ return inject(NgpDatePickerGridToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItZ3JpZC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZGF0ZS1waWNrZXIvc3JjL2RhdGUtcGlja2VyLWdyaWQvZGF0ZS1waWNrZXItZ3JpZC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsT0FBTyxNQUFNLENBQUMsc0JBQXNCLENBQXlCLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3BEYXRlUGlja2VyR3JpZCB9IGZyb20gJy4vZGF0ZS1waWNrZXItZ3JpZC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgTmdwRGF0ZVBpY2tlckdyaWRUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3BEYXRlUGlja2VyR3JpZDx1bmtub3duPj4oXG4gICdOZ3BEYXRlUGlja2VyR3JpZFRva2VuJyxcbik7XG5cbi8qKlxuICogSW5qZWN0IHRoZSBEYXRlUGlja2VyR3JpZCBkaXJlY3RpdmUgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERhdGVQaWNrZXJHcmlkPFQ+KCk6IE5ncERhdGVQaWNrZXJHcmlkPFQ+IHtcbiAgcmV0dXJuIGluamVjdChOZ3BEYXRlUGlja2VyR3JpZFRva2VuKSBhcyBOZ3BEYXRlUGlja2VyR3JpZDxUPjtcbn1cbiJdfQ==
@@ -0,0 +1,47 @@
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, input } from '@angular/core';
9
+ import { uniqueId } from 'ng-primitives/utils';
10
+ import { injectDatePicker } from '../date-picker/date-picker.token';
11
+ import { NgpDatePickerLabelToken } from './date-picker-label.token';
12
+ import * as i0 from "@angular/core";
13
+ export class NgpDatePickerLabel {
14
+ constructor() {
15
+ /**
16
+ * Access the date picker.
17
+ */
18
+ this.datePicker = injectDatePicker();
19
+ /**
20
+ * Define a unique id for the label.
21
+ */
22
+ this.id = input(uniqueId('ngp-date-picker-label'));
23
+ /**
24
+ * Define the aria live attribute.
25
+ */
26
+ this.ariaLive = input('polite', {
27
+ alias: 'aria-live',
28
+ });
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDatePickerLabel, isStandalone: true, selector: "[ngpDatePickerLabel]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLive: { classPropertyName: "ariaLive", publicName: "aria-live", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()", "attr.aria-live": "ariaLive()", "attr.data-disabled": "datePicker.disabled()" } }, providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }], exportAs: ["ngpDatePickerLabel"], ngImport: i0 }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerLabel, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ standalone: true,
37
+ selector: '[ngpDatePickerLabel]',
38
+ exportAs: 'ngpDatePickerLabel',
39
+ providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }],
40
+ host: {
41
+ '[id]': 'id()',
42
+ '[attr.aria-live]': 'ariaLive()',
43
+ '[attr.data-disabled]': 'datePicker.disabled()',
44
+ },
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbGFiZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9kYXRlLXBpY2tlci9zcmMvZGF0ZS1waWNrZXItbGFiZWwvZGF0ZS1waWNrZXItbGFiZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFhcEUsTUFBTSxPQUFPLGtCQUFrQjtJQVgvQjtRQVlFOztXQUVHO1FBQ2dCLGVBQVUsR0FBRyxnQkFBZ0IsRUFBVyxDQUFDO1FBRTVEOztXQUVHO1FBQ00sT0FBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEMsS0FBSyxFQUFFLFdBQVc7U0FDbkIsQ0FBQyxDQUFDO0tBQ0o7OEdBakJZLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHViQVBsQixDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDOzsyRkFPdkUsa0JBQWtCO2tCQVg5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLG9CQUFvQixFQUFFLENBQUM7b0JBQ2xGLElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsTUFBTTt3QkFDZCxrQkFBa0IsRUFBRSxZQUFZO3dCQUNoQyxzQkFBc0IsRUFBRSx1QkFBdUI7cUJBQ2hEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJ25nLXByaW1pdGl2ZXMvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0RGF0ZVBpY2tlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnRva2VuJztcbmltcG9ydCB7IE5ncERhdGVQaWNrZXJMYWJlbFRva2VuIH0gZnJvbSAnLi9kYXRlLXBpY2tlci1sYWJlbC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BEYXRlUGlja2VyTGFiZWxdJyxcbiAgZXhwb3J0QXM6ICduZ3BEYXRlUGlja2VyTGFiZWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5ncERhdGVQaWNrZXJMYWJlbFRva2VuLCB1c2VFeGlzdGluZzogTmdwRGF0ZVBpY2tlckxhYmVsIH1dLFxuICBob3N0OiB7XG4gICAgJ1tpZF0nOiAnaWQoKScsXG4gICAgJ1thdHRyLmFyaWEtbGl2ZV0nOiAnYXJpYUxpdmUoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2RhdGVQaWNrZXIuZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncERhdGVQaWNrZXJMYWJlbCB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRhdGUgcGlja2VyLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVQaWNrZXIgPSBpbmplY3REYXRlUGlja2VyPHVua25vd24+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZSBhIHVuaXF1ZSBpZCBmb3IgdGhlIGxhYmVsLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQgPSBpbnB1dCh1bmlxdWVJZCgnbmdwLWRhdGUtcGlja2VyLWxhYmVsJykpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGFyaWEgbGl2ZSBhdHRyaWJ1dGUuXG4gICAqL1xuICByZWFkb25seSBhcmlhTGl2ZSA9IGlucHV0KCdwb2xpdGUnLCB7XG4gICAgYWxpYXM6ICdhcmlhLWxpdmUnLFxuICB9KTtcbn1cbiJdfQ==
@@ -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 NgpDatePickerLabelToken = new InjectionToken('NgpDatePickerLabelToken');
10
+ /**
11
+ * Inject the DatePickerLabel directive instance
12
+ */
13
+ export function injectDatePickerLabel() {
14
+ return inject(NgpDatePickerLabelToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbGFiZWwudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci1sYWJlbC9kYXRlLXBpY2tlci1sYWJlbC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQseUJBQXlCLENBQzFCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE5ncERhdGVQaWNrZXJMYWJlbCB9IGZyb20gJy4vZGF0ZS1waWNrZXItbGFiZWwuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IE5ncERhdGVQaWNrZXJMYWJlbFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5ncERhdGVQaWNrZXJMYWJlbD4oXG4gICdOZ3BEYXRlUGlja2VyTGFiZWxUb2tlbicsXG4pO1xuXG4vKipcbiAqIEluamVjdCB0aGUgRGF0ZVBpY2tlckxhYmVsIGRpcmVjdGl2ZSBpbnN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RGF0ZVBpY2tlckxhYmVsKCk6IE5ncERhdGVQaWNrZXJMYWJlbCB7XG4gIHJldHVybiBpbmplY3QoTmdwRGF0ZVBpY2tlckxhYmVsVG9rZW4pO1xufVxuIl19
@@ -0,0 +1,103 @@
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, Directive, ElementRef, HostListener, inject } from '@angular/core';
9
+ import { NgpButton } from 'ng-primitives/button';
10
+ import { injectDateAdapter } from 'ng-primitives/date-time';
11
+ import { NgpDisabledToken } from 'ng-primitives/internal';
12
+ import { injectDatePicker } from '../date-picker/date-picker.token';
13
+ import { NgpDatePickerNextMonthToken } from './date-picker-next-month.token';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "ng-primitives/button";
16
+ export class NgpDatePickerNextMonth {
17
+ constructor() {
18
+ /**
19
+ * Access the element ref.
20
+ */
21
+ this.elementRef = inject(ElementRef);
22
+ /**
23
+ * Access the date adapter.
24
+ */
25
+ this.dateAdapter = injectDateAdapter();
26
+ /**
27
+ * Access the date picker.
28
+ */
29
+ this.datePicker = injectDatePicker();
30
+ /**
31
+ * Determine if this is a button element
32
+ */
33
+ this.isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';
34
+ /**
35
+ * Determine if the next month is disabled.
36
+ * @internal
37
+ */
38
+ this.disabled = computed(() => {
39
+ if (this.datePicker.disabled()) {
40
+ return true;
41
+ }
42
+ const maxDate = this.datePicker.max();
43
+ const lastDay = this.dateAdapter.set(this.dateAdapter.endOfMonth(this.datePicker.focusedDate()), {
44
+ hour: 23,
45
+ minute: 59,
46
+ second: 59,
47
+ millisecond: 999,
48
+ });
49
+ // if there is a max date and it is equal to or before the last day of the month, disable it.
50
+ if (maxDate && this.dateAdapter.compare(maxDate, lastDay) <= 0) {
51
+ return true;
52
+ }
53
+ return false;
54
+ });
55
+ }
56
+ /**
57
+ * Navigate to the next month.
58
+ */
59
+ navigateToNextMonth() {
60
+ if (this.disabled()) {
61
+ return;
62
+ }
63
+ // move focus to the first day of the next month.
64
+ let date = this.datePicker.focusedDate();
65
+ date = this.dateAdapter.add(date, { months: 1 });
66
+ date = this.dateAdapter.set(date, {
67
+ day: 1,
68
+ hour: 0,
69
+ minute: 0,
70
+ second: 0,
71
+ millisecond: 0,
72
+ });
73
+ this.datePicker.setFocusedDate(date, 'mouse', 'forward');
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerNextMonth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
76
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpDatePickerNextMonth, isStandalone: true, selector: "[ngpDatePickerNextMonth]", host: { listeners: { "click": "navigateToNextMonth()" }, properties: { "attr.data-disabled": "disabled()", "attr.aria-disabled": "disabled()", "attr.disabled": "isButton && disabled() ? true : null", "attr.type": "isButton ? \"button\" : null" } }, providers: [
77
+ { provide: NgpDatePickerNextMonthToken, useExisting: NgpDatePickerNextMonth },
78
+ { provide: NgpDisabledToken, useExisting: NgpDatePickerNextMonth },
79
+ ], exportAs: ["ngpDatePickerNextMonth"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDatePickerNextMonth, decorators: [{
82
+ type: Directive,
83
+ args: [{
84
+ standalone: true,
85
+ selector: '[ngpDatePickerNextMonth]',
86
+ exportAs: 'ngpDatePickerNextMonth',
87
+ providers: [
88
+ { provide: NgpDatePickerNextMonthToken, useExisting: NgpDatePickerNextMonth },
89
+ { provide: NgpDisabledToken, useExisting: NgpDatePickerNextMonth },
90
+ ],
91
+ hostDirectives: [NgpButton],
92
+ host: {
93
+ '[attr.data-disabled]': 'disabled()',
94
+ '[attr.aria-disabled]': 'disabled()',
95
+ '[attr.disabled]': 'isButton && disabled() ? true : null',
96
+ '[attr.type]': 'isButton ? "button" : null',
97
+ },
98
+ }]
99
+ }], propDecorators: { navigateToNextMonth: [{
100
+ type: HostListener,
101
+ args: ['click']
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmV4dC1tb250aC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci1uZXh0LW1vbnRoL2RhdGUtcGlja2VyLW5leHQtbW9udGguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQWtCN0UsTUFBTSxPQUFPLHNCQUFzQjtJQWhCbkM7UUFpQkU7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNjLGdCQUFXLEdBQUcsaUJBQWlCLEVBQUssQ0FBQztRQUV0RDs7V0FFRztRQUNjLGVBQVUsR0FBRyxnQkFBZ0IsRUFBSyxDQUFDO1FBRXBEOztXQUVHO1FBQ2dCLGFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxDQUFDO1FBRS9GOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUMvQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQzFEO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxFQUFFO2dCQUNWLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxHQUFHO2FBQ2pCLENBQ0YsQ0FBQztZQUVGLDZGQUE2RjtZQUM3RixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQy9ELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7S0F3Qko7SUF0QkM7O09BRUc7SUFFTyxtQkFBbUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELGlEQUFpRDtRQUNqRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ2hDLEdBQUcsRUFBRSxDQUFDO1lBQ04sSUFBSSxFQUFFLENBQUM7WUFDUCxNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNELENBQUM7OEdBdEVVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGdVQVp0QjtZQUNULEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUM3RSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7U0FDbkU7OzJGQVNVLHNCQUFzQjtrQkFoQmxDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3dCQUM3RSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3FCQUNuRTtvQkFDRCxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQzNCLElBQUksRUFBRTt3QkFDSixzQkFBc0IsRUFBRSxZQUFZO3dCQUNwQyxzQkFBc0IsRUFBRSxZQUFZO3dCQUNwQyxpQkFBaUIsRUFBRSxzQ0FBc0M7d0JBQ3pELGFBQWEsRUFBRSw0QkFBNEI7cUJBQzVDO2lCQUNGOzhCQXNEVyxtQkFBbUI7c0JBRDVCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ncEJ1dHRvbiB9IGZyb20gJ25nLXByaW1pdGl2ZXMvYnV0dG9uJztcbmltcG9ydCB7IGluamVjdERhdGVBZGFwdGVyIH0gZnJvbSAnbmctcHJpbWl0aXZlcy9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgTmdwQ2FuRGlzYWJsZSwgTmdwRGlzYWJsZWRUb2tlbiB9IGZyb20gJ25nLXByaW1pdGl2ZXMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaW5qZWN0RGF0ZVBpY2tlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnRva2VuJztcbmltcG9ydCB7IE5ncERhdGVQaWNrZXJOZXh0TW9udGhUb2tlbiB9IGZyb20gJy4vZGF0ZS1waWNrZXItbmV4dC1tb250aC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BEYXRlUGlja2VyTmV4dE1vbnRoXScsXG4gIGV4cG9ydEFzOiAnbmdwRGF0ZVBpY2tlck5leHRNb250aCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTmdwRGF0ZVBpY2tlck5leHRNb250aFRva2VuLCB1c2VFeGlzdGluZzogTmdwRGF0ZVBpY2tlck5leHRNb250aCB9LFxuICAgIHsgcHJvdmlkZTogTmdwRGlzYWJsZWRUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncERhdGVQaWNrZXJOZXh0TW9udGggfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOZ3BCdXR0b25dLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2lzQnV0dG9uICYmIGRpc2FibGVkKCkgPyB0cnVlIDogbnVsbCcsXG4gICAgJ1thdHRyLnR5cGVdJzogJ2lzQnV0dG9uID8gXCJidXR0b25cIiA6IG51bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BEYXRlUGlja2VyTmV4dE1vbnRoPFQ+IGltcGxlbWVudHMgTmdwQ2FuRGlzYWJsZSB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQgcmVmLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkYXRlIGFkYXB0ZXIuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVBZGFwdGVyID0gaW5qZWN0RGF0ZUFkYXB0ZXI8VD4oKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkYXRlIHBpY2tlci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0ZVBpY2tlciA9IGluamVjdERhdGVQaWNrZXI8VD4oKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBidXR0b24gZWxlbWVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzQnV0dG9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBuZXh0IG1vbnRoIGlzIGRpc2FibGVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuZGF0ZVBpY2tlci5tYXgoKTtcbiAgICBjb25zdCBsYXN0RGF5ID0gdGhpcy5kYXRlQWRhcHRlci5zZXQoXG4gICAgICB0aGlzLmRhdGVBZGFwdGVyLmVuZE9mTW9udGgodGhpcy5kYXRlUGlja2VyLmZvY3VzZWREYXRlKCkpLFxuICAgICAge1xuICAgICAgICBob3VyOiAyMyxcbiAgICAgICAgbWludXRlOiA1OSxcbiAgICAgICAgc2Vjb25kOiA1OSxcbiAgICAgICAgbWlsbGlzZWNvbmQ6IDk5OSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIGEgbWF4IGRhdGUgYW5kIGl0IGlzIGVxdWFsIHRvIG9yIGJlZm9yZSB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLCBkaXNhYmxlIGl0LlxuICAgIGlmIChtYXhEYXRlICYmIHRoaXMuZGF0ZUFkYXB0ZXIuY29tcGFyZShtYXhEYXRlLCBsYXN0RGF5KSA8PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSB0byB0aGUgbmV4dCBtb250aC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIG5hdmlnYXRlVG9OZXh0TW9udGgoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG1vdmUgZm9jdXMgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgbmV4dCBtb250aC5cbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZVBpY2tlci5mb2N1c2VkRGF0ZSgpO1xuICAgIGRhdGUgPSB0aGlzLmRhdGVBZGFwdGVyLmFkZChkYXRlLCB7IG1vbnRoczogMSB9KTtcbiAgICBkYXRlID0gdGhpcy5kYXRlQWRhcHRlci5zZXQoZGF0ZSwge1xuICAgICAgZGF5OiAxLFxuICAgICAgaG91cjogMCxcbiAgICAgIG1pbnV0ZTogMCxcbiAgICAgIHNlY29uZDogMCxcbiAgICAgIG1pbGxpc2Vjb25kOiAwLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRlUGlja2VyLnNldEZvY3VzZWREYXRlKGRhdGUsICdtb3VzZScsICdmb3J3YXJkJyk7XG4gIH1cbn1cbiJdfQ==
@@ -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 NgpDatePickerNextMonthToken = new InjectionToken('NgpDatePickerNextMonthToken');
10
+ /**
11
+ * Inject the DatePickerNextMonth directive instance
12
+ */
13
+ export function injectDatePickerNextMonth() {
14
+ return inject(NgpDatePickerNextMonthToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmV4dC1tb250aC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZGF0ZS1waWNrZXIvc3JjL2RhdGUtcGlja2VyLW5leHQtbW9udGgvZGF0ZS1waWNrZXItbmV4dC1tb250aC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsNkJBQTZCLENBQzlCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTyxNQUFNLENBQUMsMkJBQTJCLENBQThCLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3BEYXRlUGlja2VyTmV4dE1vbnRoIH0gZnJvbSAnLi9kYXRlLXBpY2tlci1uZXh0LW1vbnRoLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBOZ3BEYXRlUGlja2VyTmV4dE1vbnRoVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdwRGF0ZVBpY2tlck5leHRNb250aDx1bmtub3duPj4oXG4gICdOZ3BEYXRlUGlja2VyTmV4dE1vbnRoVG9rZW4nLFxuKTtcblxuLyoqXG4gKiBJbmplY3QgdGhlIERhdGVQaWNrZXJOZXh0TW9udGggZGlyZWN0aXZlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REYXRlUGlja2VyTmV4dE1vbnRoPFQ+KCk6IE5ncERhdGVQaWNrZXJOZXh0TW9udGg8VD4ge1xuICByZXR1cm4gaW5qZWN0KE5ncERhdGVQaWNrZXJOZXh0TW9udGhUb2tlbikgYXMgTmdwRGF0ZVBpY2tlck5leHRNb250aDxUPjtcbn1cbiJdfQ==