cmat 0.0.87 → 0.0.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +98 -80
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +26 -34
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-carousel.mjs +467 -556
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +270 -259
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +200 -116
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-code-editor.mjs +85 -38
- package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-color-picker.mjs +841 -0
- package/fesm2022/cmat-components-color-picker.mjs.map +1 -0
- package/fesm2022/cmat-components-custom-formly.mjs +1395 -838
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-data-picker.mjs +996 -0
- package/fesm2022/cmat-components-data-picker.mjs.map +1 -0
- package/fesm2022/cmat-components-date-range.mjs +310 -264
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-date-time-display.mjs +16 -20
- package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +120 -137
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-empty-state.mjs +17 -24
- package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
- package/fesm2022/cmat-components-file-preview.mjs +18 -24
- package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
- package/fesm2022/cmat-components-filter-toolbar.mjs +30 -39
- package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
- package/fesm2022/cmat-components-form-actions.mjs +12 -12
- package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +10 -10
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +48 -41
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +104 -107
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-inline-loading.mjs +12 -15
- package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +118 -75
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-knob-input.mjs +196 -178
- package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +26 -41
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +81 -80
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +1212 -1287
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +467 -450
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-opt-input.mjs +143 -132
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +68 -83
- package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
- package/fesm2022/cmat-components-page-header.mjs +18 -24
- package/fesm2022/cmat-components-page-header.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +220 -136
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +262 -215
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +227 -195
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +15 -34
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-qrcode.mjs +95 -88
- package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +70 -67
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-rich-text-editor.mjs +23 -26
- package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +190 -159
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +276 -213
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +178 -128
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-skeleton.mjs +44 -28
- package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
- package/fesm2022/cmat-components-speed-dial.mjs +107 -163
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-status-tag.mjs +29 -36
- package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
- package/fesm2022/cmat-components-table-toolbar.mjs +14 -18
- package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +111 -118
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +65 -66
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +130 -160
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +32 -39
- package/fesm2022/cmat-components-treetable.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +186 -176
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +25 -28
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-arrow-cursor.mjs +85 -92
- package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
- package/fesm2022/cmat-directives-data-exporter.mjs +49 -50
- package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
- package/fesm2022/cmat-directives-debounce.mjs +16 -19
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
- package/fesm2022/cmat-directives-digit-only.mjs +60 -69
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +31 -30
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
- package/fesm2022/cmat-pipes-secure.mjs +7 -13
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
- package/fesm2022/cmat-services-alert.mjs +26 -27
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +14 -23
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +8 -8
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +6 -10
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-export-as.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +30 -47
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
- package/fesm2022/cmat-services-media-watcher.mjs +43 -34
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +11 -11
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/fesm2022/cmat.mjs +9228 -7507
- package/fesm2022/cmat.mjs.map +1 -1
- package/icons/material-icons/heroicons-outline.svg +3 -0
- package/icons/material-icons/heroicons-solid.svg +3 -0
- package/package.json +10 -1
- package/styles/components/bundle.scss +21 -0
- package/styles/overrides/angular-material.scss +22 -1
- package/tailwind/plugins/theming.js +183 -183
- package/types/cmat-components-breadcrumb.d.ts +40 -37
- package/types/cmat-components-card.d.ts +11 -13
- package/types/cmat-components-carousel.d.ts +87 -113
- package/types/cmat-components-cascade.d.ts +84 -65
- package/types/cmat-components-chip-input.d.ts +29 -24
- package/types/cmat-components-code-editor.d.ts +28 -12
- package/types/cmat-components-color-picker.d.ts +236 -0
- package/types/cmat-components-custom-formly.d.ts +316 -184
- package/types/cmat-components-data-picker.d.ts +372 -0
- package/types/cmat-components-date-range.d.ts +31 -36
- package/types/cmat-components-date-time-display.d.ts +8 -8
- package/types/cmat-components-drawer.d.ts +30 -32
- package/types/cmat-components-empty-state.d.ts +9 -10
- package/types/cmat-components-file-preview.d.ts +9 -9
- package/types/cmat-components-filter-toolbar.d.ts +15 -15
- package/types/cmat-components-form-actions.d.ts +5 -5
- package/types/cmat-components-fullscreen.d.ts +5 -5
- package/types/cmat-components-highlight.d.ts +13 -14
- package/types/cmat-components-image-viewer.d.ts +29 -33
- package/types/cmat-components-inline-loading.d.ts +6 -6
- package/types/cmat-components-json-editor.d.ts +15 -17
- package/types/cmat-components-knob-input.d.ts +58 -55
- package/types/cmat-components-masonry.d.ts +9 -12
- package/types/cmat-components-material-color-picker.d.ts +16 -21
- package/types/cmat-components-material-datetimepicker.d.ts +174 -216
- package/types/cmat-components-navigation.d.ts +34 -39
- package/types/cmat-components-opt-input.d.ts +35 -33
- package/types/cmat-components-org-chart.d.ts +8 -9
- package/types/cmat-components-page-header.d.ts +9 -9
- package/types/cmat-components-pagination.d.ts +36 -40
- package/types/cmat-components-password-strength.d.ts +58 -64
- package/types/cmat-components-popover.d.ts +22 -32
- package/types/cmat-components-progress-bar.d.ts +7 -10
- package/types/cmat-components-qrcode.d.ts +22 -22
- package/types/cmat-components-rating.d.ts +17 -19
- package/types/cmat-components-rich-text-editor.d.ts +11 -12
- package/types/cmat-components-select-search.d.ts +48 -36
- package/types/cmat-components-select-table.d.ts +38 -34
- package/types/cmat-components-select-tree.d.ts +17 -15
- package/types/cmat-components-skeleton.d.ts +27 -10
- package/types/cmat-components-speed-dial.d.ts +24 -33
- package/types/cmat-components-status-tag.d.ts +19 -9
- package/types/cmat-components-table-toolbar.d.ts +7 -7
- package/types/cmat-components-timeline.d.ts +33 -34
- package/types/cmat-components-toast.d.ts +26 -30
- package/types/cmat-components-transfer-picker.d.ts +51 -56
- package/types/cmat-components-treetable.d.ts +12 -13
- package/types/cmat-components-upload.d.ts +33 -38
- package/types/cmat-components-x6-angular-shape.d.ts +1 -1
- package/types/cmat-directives-animate-on-scroll.d.ts +7 -7
- package/types/cmat-directives-arrow-cursor.d.ts +18 -20
- package/types/cmat-directives-data-exporter.d.ts +10 -10
- package/types/cmat-directives-debounce.d.ts +5 -5
- package/types/cmat-directives-digit-only.d.ts +13 -13
- package/types/cmat-directives-seamless-auto-scroll.d.ts +7 -7
- package/types/cmat-pipes-secure.d.ts +1 -3
- package/types/cmat-services-alert.d.ts +11 -12
- package/types/cmat-services-config.d.ts +2 -7
- package/types/cmat-services-confirmation.d.ts +2 -2
- package/types/cmat-services-data.d.ts +0 -1
- package/types/cmat-services-loading.d.ts +14 -22
- package/types/cmat-services-media-watcher.d.ts +5 -5
- package/types/cmat-services-translation.d.ts +4 -5
- package/types/cmat.d.ts +2167 -1746
|
@@ -232,10 +232,10 @@ class CNativeDatetimeAdapter extends DatetimeAdapter {
|
|
|
232
232
|
}
|
|
233
233
|
return result;
|
|
234
234
|
}
|
|
235
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
236
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CNativeDatetimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
236
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CNativeDatetimeAdapter }); }
|
|
237
237
|
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CNativeDatetimeAdapter, decorators: [{
|
|
239
239
|
type: Injectable
|
|
240
240
|
}], ctorParameters: () => [] });
|
|
241
241
|
|
|
@@ -335,10 +335,10 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
|
|
|
335
335
|
_getDateInNextMonth(date) {
|
|
336
336
|
return super.clone(date).date(1).add(1, 'month');
|
|
337
337
|
}
|
|
338
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
339
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
338
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: DayjsDatetimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
339
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: DayjsDatetimeAdapter }); }
|
|
340
340
|
}
|
|
341
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
341
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
|
|
342
342
|
type: Injectable
|
|
343
343
|
}], ctorParameters: () => [] });
|
|
344
344
|
|
|
@@ -525,10 +525,10 @@ class DayjsDateAdapter extends DateAdapter {
|
|
|
525
525
|
dayjs.extend(localeData);
|
|
526
526
|
this.setLocale(dateLocale ?? dayjs.locale());
|
|
527
527
|
}
|
|
528
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
529
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
528
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: DayjsDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
529
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: DayjsDateAdapter }); }
|
|
530
530
|
}
|
|
531
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
531
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: DayjsDateAdapter, decorators: [{
|
|
532
532
|
type: Injectable
|
|
533
533
|
}], ctorParameters: () => [] });
|
|
534
534
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-adapter.mjs","sources":["../../../projects/cmat/components/adapter/datetime-adapter.ts","../../../projects/cmat/components/adapter/datetime-formats.ts","../../../projects/cmat/components/adapter/native-datetime-adapter.ts","../../../projects/cmat/components/adapter/native-datetime-formats.ts","../../../projects/cmat/components/adapter/dayjs-datetime-adapter.ts","../../../projects/cmat/components/adapter/dayjs-datetime-formats.ts","../../../projects/cmat/components/adapter/dayjs-date-adapter.ts","../../../projects/cmat/components/adapter/dayjs-date-formats.ts","../../../projects/cmat/components/adapter/cmat-components-adapter.ts"],"sourcesContent":["import { DateAdapter } from '@angular/material/core';\r\n\r\nexport abstract class DatetimeAdapter<D> extends DateAdapter<D> {\r\n\r\n constructor(protected _delegate: DateAdapter<D>) {\r\n super();\r\n }\r\n\r\n override getValidDateOrNull(obj: unknown): D | null {\r\n return this.isDateInstance(obj) && this.isValid(obj as D) ? (obj as D) : null;\r\n }\r\n\r\n compareDatetime(first: D, second: D, respectMinutePart: boolean = true): number | boolean {\r\n return this.compareDate(first, second) ||\r\n this.getHour(first) - this.getHour(second) ||\r\n (respectMinutePart && this.getMinute(first) - this.getMinute(second));\r\n }\r\n\r\n sameDatetime(first: D | null, second: D | null): boolean {\r\n if (first && second) {\r\n const firstValid = this.isValid(first);\r\n const secondValid = this.isValid(second);\r\n if (firstValid && secondValid) {\r\n return !this.compareDatetime(first, second);\r\n }\r\n return firstValid === secondValid;\r\n }\r\n return first === second;\r\n }\r\n\r\n sameYear(first: D, second: D): boolean {\r\n return first && second && this.getYear(first) === this.getYear(second);\r\n }\r\n\r\n sameDay(first: D, second: D): boolean {\r\n return first && second && this.getDate(first) === this.getDate(second) && this.sameMonthAndYear(first, second);\r\n }\r\n\r\n sameHour(first: D, second: D): boolean {\r\n return first && second && this.getHour(first) === this.getHour(second) && this.sameDay(first, second);\r\n }\r\n\r\n sameMinute(first: D, second: D): boolean {\r\n return first && second && this.getMinute(first) === this.getMinute(second) && this.sameHour(first, second);\r\n }\r\n\r\n sameMonthAndYear(first: D | null, second: D | null): boolean {\r\n if (first && second) {\r\n const firstValid = this.isValid(first);\r\n const secondValid = this.isValid(second);\r\n if (firstValid && secondValid) {\r\n return !(this.getYear(first) - this.getYear(second) ||\r\n this.getMonth(first) - this.getMonth(second));\r\n }\r\n return firstValid === secondValid;\r\n }\r\n return first === second;\r\n }\r\n clone(date: D): D {\r\n return this._delegate.clone(date);\r\n }\r\n\r\n addCalendarYears(date: D, years: number): D {\r\n return this._delegate.addCalendarYears(date, years);\r\n }\r\n\r\n addCalendarMonths(date: D, months: number): D {\r\n return this._delegate.addCalendarMonths(date, months);\r\n }\r\n\r\n addCalendarDays(date: D, days: number): D {\r\n return this._delegate.addCalendarDays(date, days);\r\n }\r\n\r\n getYear(date: D): number {\r\n return this._delegate.getYear(date);\r\n }\r\n\r\n getMonth(date: D): number {\r\n return this._delegate.getMonth(date);\r\n }\r\n\r\n getDate(date: D): number {\r\n return this._delegate.getDate(date);\r\n }\r\n\r\n getDayOfWeek(date: D): number {\r\n return this._delegate.getDayOfWeek(date);\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return this._delegate.getMonthNames(style);\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._delegate.getDateNames();\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return this._delegate.getDayOfWeekNames(style);\r\n }\r\n\r\n getYearName(date: D): string {\r\n return this._delegate.getYearName(date);\r\n }\r\n\r\n getFirstDayOfWeek(): number {\r\n return this._delegate.getFirstDayOfWeek();\r\n }\r\n\r\n getNumDaysInMonth(date: D): number {\r\n return this._delegate.getNumDaysInMonth(date);\r\n }\r\n\r\n createDate(year: number, month: number, date: number): D {\r\n return this._delegate.createDate(year, month, date);\r\n }\r\n\r\n today(): D {\r\n return this._delegate.today();\r\n }\r\n\r\n parse(value: unknown, parseFormat: string): D | null {\r\n return this._delegate.parse(value, parseFormat);\r\n }\r\n\r\n format(date: D, displayFormat: string): string {\r\n return this._delegate.format(date, displayFormat);\r\n }\r\n\r\n toIso8601(date: D): string {\r\n return this._delegate.toIso8601(date);\r\n }\r\n\r\n isDateInstance(obj: unknown): boolean {\r\n return this._delegate.isDateInstance(obj);\r\n }\r\n\r\n isValid(date: D): boolean {\r\n return this._delegate.isValid(date);\r\n }\r\n\r\n invalid(): D {\r\n return this._delegate.invalid();\r\n }\r\n\r\n override clampDate(date: D, min?: D | null, max?: D | null): D {\r\n if (min && (this.compareDatetime(date, min) as number) < 0) {\r\n return min;\r\n }\r\n if (max && (this.compareDatetime(date, max) as number) > 0) {\r\n return max;\r\n }\r\n return date;\r\n }\r\n\r\n abstract getHour(date: D): number;\r\n\r\n abstract getMinute(date: D): number;\r\n\r\n abstract getFirstDateOfMonth(date: D): D;\r\n\r\n\r\n abstract isInNextMonth(startDate: D, endDate: D): boolean;\r\n\r\n abstract getHourNames(): string[];\r\n\r\n abstract getMinuteNames(): string[];\r\n\r\n abstract addCalendarHours(date: D, months: number): D;\r\n\r\n abstract addCalendarMinutes(date: D, months: number): D;\r\n\r\n abstract createDatetime(year: number, month: number, date: number, hour: number, minute: number): D;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface CmatDatetimeFormats {\r\n parse: {\r\n dateInput?: string | Intl.DateTimeFormatOptions;\r\n monthInput?: string | Intl.DateTimeFormatOptions;\r\n timeInput?: string | Intl.DateTimeFormatOptions;\r\n datetimeInput?: string | Intl.DateTimeFormatOptions;\r\n yearInput?: string | Intl.DateTimeFormatOptions;\r\n };\r\n display: {\r\n dateInput: string | Intl.DateTimeFormatOptions;\r\n monthInput: string | Intl.DateTimeFormatOptions;\r\n timeInput: string | Intl.DateTimeFormatOptions;\r\n datetimeInput: string | Intl.DateTimeFormatOptions;\r\n yearInput: string | Intl.DateTimeFormatOptions;\r\n monthYearLabel: string | Intl.DateTimeFormatOptions;\r\n dateA11yLabel: string | Intl.DateTimeFormatOptions;\r\n monthYearA11yLabel: string | Intl.DateTimeFormatOptions;\r\n popupHeaderDateLabel: string | Intl.DateTimeFormatOptions;\r\n };\r\n}\r\n\r\nexport const CMAT_DATETIME_FORMATS = new InjectionToken<CmatDatetimeFormats>('cmat-datetime-formats');","import { Injectable, inject } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { DatetimeAdapter } from './datetime-adapter';\r\n\r\n\r\nconst DEFAULT_HOUR_NAMES = range(24, i => String(i));\r\n\r\n\r\nconst DEFAULT_MINUTE_NAMES = range(60, i => String(i));\r\n\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = new Array<T>(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n@Injectable()\r\nexport class CNativeDatetimeAdapter extends DatetimeAdapter<Date> {\r\n\r\n constructor() {\r\n const matDateLocale = inject(MAT_DATE_LOCALE, { optional: true })!;\r\n const _delegate = inject<DateAdapter<Date>>(DateAdapter);\r\n\r\n super(_delegate);\r\n this.setLocale(matDateLocale);\r\n }\r\n\r\n override clone(date: Date): Date {\r\n return this.createDatetime(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date), this.getMinute(date));\r\n }\r\n\r\n getHour(date: Date): number {\r\n return date.getHours();\r\n }\r\n\r\n getMinute(date: Date): number {\r\n return date.getMinutes();\r\n }\r\n\r\n isInNextMonth(startDate: Date, endDate: Date): boolean {\r\n const nextMonth = this._getDateInNextMonth(startDate);\r\n return this.sameMonthAndYear(nextMonth, endDate);\r\n }\r\n\r\n createDatetime(year: number, month: number, date: number, hour: number, minute: number): Date {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n if (hour < 0 || hour > 23) {\r\n throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\r\n }\r\n\r\n if (minute < 0 || minute > 59) {\r\n throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\r\n }\r\n\r\n const result = this._createDateWithOverflow(year, month, date, hour, minute);\r\n if (result.getMonth() !== month) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getFirstDateOfMonth(date: Date): Date {\r\n const result = new Date();\r\n result.setFullYear(date.getFullYear(), date.getMonth(), 1);\r\n return result;\r\n }\r\n\r\n getHourNames(): string[] {\r\n return DEFAULT_HOUR_NAMES;\r\n }\r\n\r\n getMinuteNames(): string[] {\r\n return DEFAULT_MINUTE_NAMES;\r\n }\r\n\r\n override addCalendarYears(date: Date, years: number): Date {\r\n return this.addCalendarMonths(date, years * 12);\r\n }\r\n\r\n override addCalendarMonths(date: Date, months: number): Date {\r\n let newDate = this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date) + months, this.getDate(date), this.getHour(date), this.getMinute(date));\r\n if (this.getMonth(newDate) !== ((this.getMonth(date) + months) % 12 + 12) % 12) {\r\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0, this.getHour(date), this.getMinute(date));\r\n }\r\n\r\n return newDate;\r\n }\r\n\r\n override addCalendarDays(date: Date, days: number): Date {\r\n return this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date), this.getDate(date) + days, this.getHour(date), this.getMinute(date));\r\n }\r\n\r\n addCalendarHours(date: Date, hours: number): Date {\r\n return this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date), this.getDate(date),\r\n this.getHour(date) + hours, this.getMinute(date));\r\n }\r\n\r\n addCalendarMinutes(date: Date, minutes: number): Date {\r\n return this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date), this.getDate(date),\r\n this.getHour(date), this.getMinute(date) + minutes);\r\n }\r\n\r\n override toIso8601(date: Date): string {\r\n return super.toIso8601(date) + 'T' + [\r\n this._2digit(date.getUTCHours()),\r\n this._2digit(date.getUTCMinutes())\r\n ].join(':');\r\n }\r\n\r\n private _getDateInNextMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 1,\r\n date.getHours(), date.getMinutes());\r\n }\r\n\r\n\r\n \r\n private _2digit(n: number): string {\r\n return ('00' + n).slice(-2);\r\n }\r\n\r\n /* Creates a date but allows the month and date to overflow. */\r\n private _createDateWithOverflow(year: number, month: number, date: number,\r\n hours: number, minutes: number): Date {\r\n const result = new Date(year, month, date, hours, minutes);\r\n if (year >= 0 && year < 100) {\r\n result.setFullYear(this.getYear(result) - 1900);\r\n }\r\n return result;\r\n }\r\n}\r\n","import { CmatDatetimeFormats } from './datetime-formats';\r\n\r\nexport const CMAT_NATIVE_DATETIME_FORMATS: CmatDatetimeFormats = {\r\n parse: {},\r\n display: {\r\n dateInput: { year: 'numeric', month: '2-digit', day: '2-digit' },\r\n monthInput: { month: 'long' },\r\n datetimeInput: { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' },\r\n timeInput: { hour: '2-digit', minute: '2-digit' },\r\n yearInput: { year: 'numeric' },\r\n monthYearLabel: { year: 'numeric', month: 'short' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: 'MMMM yyyy',\r\n popupHeaderDateLabel: 'EEE, MMM dd'\r\n }\r\n};\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport localeData from 'dayjs/plugin/localeData';\r\nimport { DatetimeAdapter } from './datetime-adapter';\r\n\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = new Array<T>(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n@Injectable()\r\nexport class DayjsDatetimeAdapter extends DatetimeAdapter<Dayjs> {\r\n\r\n private _localeData: {\r\n firstDayOfWeek: number;\r\n longMonths: string[];\r\n shortMonths: string[];\r\n dates: string[];\r\n hours: string[];\r\n minutes: string[];\r\n longDaysOfWeek: string[];\r\n shortDaysOfWeek: string[];\r\n narrowDaysOfWeek: string[];\r\n };\r\n\r\n constructor() {\r\n const matDateLocale = inject(MAT_DATE_LOCALE, { optional: true });\r\n const _delegate = inject<DateAdapter<Dayjs>>(DateAdapter);\r\n const locale = typeof matDateLocale === 'string' ? matDateLocale : dayjs.locale();\r\n\r\n super(_delegate);\r\n this.setLocale(locale);\r\n dayjs.extend(localeData);\r\n }\r\n\r\n override setLocale(locale: string): void {\r\n super.setLocale(locale);\r\n\r\n const dayjsLocaleData = dayjs.localeData();\r\n this._localeData = {\r\n firstDayOfWeek: dayjsLocaleData.firstDayOfWeek(),\r\n longMonths: dayjsLocaleData.months(),\r\n shortMonths: dayjsLocaleData.monthsShort(),\r\n dates: range(31, i => super.createDate(2017, 0, i + 1).format('D')),\r\n hours: range(24, i => this.createDatetime(2017, 0, 1, i, 0).format('H')),\r\n minutes: range(60, i => this.createDatetime(2017, 0, 1, 1, i).format('m')),\r\n longDaysOfWeek: dayjsLocaleData.weekdays(),\r\n shortDaysOfWeek: dayjsLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: dayjsLocaleData.weekdaysMin()\r\n };\r\n }\r\n\r\n getHour(date: Dayjs): number {\r\n return super.clone(date).hour();\r\n }\r\n\r\n getMinute(date: Dayjs): number {\r\n return super.clone(date).minute();\r\n }\r\n\r\n isInNextMonth(startDate: Dayjs, endDate: Dayjs): boolean {\r\n const nextMonth = this._getDateInNextMonth(startDate);\r\n return super.sameMonthAndYear(nextMonth, endDate);\r\n }\r\n\r\n createDatetime(year: number, month: number, date: number, hour: number, minute: number): Dayjs {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n if (hour < 0 || hour > 23) {\r\n throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\r\n }\r\n\r\n if (minute < 0 || minute > 59) {\r\n throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\r\n }\r\n\r\n const result = dayjs(new Date(year, month, date, hour, minute));\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getFirstDateOfMonth(date: Dayjs): Dayjs {\r\n return super.clone(date).startOf('month');\r\n }\r\n\r\n getHourNames(): string[] {\r\n return this._localeData.hours;\r\n }\r\n\r\n getMinuteNames(): string[] {\r\n return this._localeData.minutes;\r\n }\r\n\r\n addCalendarHours(date: Dayjs, hours: number): Dayjs {\r\n return super.clone(date).add(hours, 'hour');\r\n }\r\n\r\n addCalendarMinutes(date: Dayjs, minutes: number): Dayjs {\r\n return super.clone(date).add(minutes, 'minute');\r\n }\r\n\r\n override deserialize(value: unknown): Dayjs | null {\r\n return this._delegate.deserialize(value);\r\n }\r\n\r\n private _getDateInNextMonth(date: Dayjs): Dayjs {\r\n return super.clone(date).date(1).add(1, 'month');\r\n }\r\n}\r\n","import { CmatDatetimeFormats } from './datetime-formats';\r\n\r\nexport const CMAT_DAYJS_DATETIME_FORMATS: CmatDatetimeFormats = {\r\n parse: {\r\n dateInput: 'L',\r\n monthInput: 'MMMM',\r\n timeInput: 'LT',\r\n datetimeInput: 'L LT',\r\n yearInput: 'YYYY'\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthInput: 'MMMM',\r\n datetimeInput: 'L LT',\r\n timeInput: 'LT',\r\n yearInput: 'YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n popupHeaderDateLabel: 'MMM DD, ddd'\r\n }\r\n};\r\n","import { Injectable, InjectionToken, inject } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport dayjs, { Dayjs, ConfigType } from 'dayjs';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport localeData from 'dayjs/plugin/localeData';\r\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\n\r\nexport interface DayJsDateAdapterOptions {\r\n \r\n useUtc?: boolean;\r\n}\r\n\r\n\r\nexport const CMAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\r\n 'CMAT_DAYJS_DATE_ADAPTER_OPTIONS', {\r\n providedIn: 'root',\r\n factory: CMAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function CMAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\r\n return {\r\n useUtc: false\r\n };\r\n}\r\n\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = new Array<T>(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n@Injectable()\r\n\r\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\r\n private _options = inject<DayJsDateAdapterOptions>(CMAT_DAYJS_DATE_ADAPTER_OPTIONS, { optional: true });\r\n\r\n private _localeData: {\r\n firstDayOfWeek: number;\r\n longMonths: string[];\r\n shortMonths: string[];\r\n dates: string[];\r\n longDaysOfWeek: string[];\r\n shortDaysOfWeek: string[];\r\n narrowDaysOfWeek: string[];\r\n };\r\n\r\n \r\n\r\n constructor() {\r\n super();\r\n const dateLocale = inject(MAT_DATE_LOCALE, {optional: true}) as string | null;\r\n\r\n this._initializeParser(dateLocale ?? undefined);\r\n }\r\n private get _shouldUseUtc(): boolean {\r\n const { useUtc }: DayJsDateAdapterOptions = this._options ?? {};\r\n return !!useUtc;\r\n }\r\n\r\n override setLocale(locale: string): void {\r\n super.setLocale(locale);\r\n\r\n const dayJsLocaleData = this._dayJs().localeData();\r\n this._localeData = {\r\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\r\n longMonths: dayJsLocaleData.months(),\r\n shortMonths: dayJsLocaleData.monthsShort(),\r\n dates: range(31, i => this.createDate(2017, 0, i + 1).format('D')),\r\n longDaysOfWeek: range(7, i => this._dayJs().set('day', i).format('dddd')),\r\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\r\n };\r\n }\r\n\r\n getYear(date: Dayjs): number {\r\n return this._dayJs(date).year();\r\n }\r\n\r\n getMonth(date: Dayjs): number {\r\n return this._dayJs(date).month();\r\n }\r\n\r\n getDate(date: Dayjs): number {\r\n return this._dayJs(date).date();\r\n }\r\n\r\n getDayOfWeek(date: Dayjs): number {\r\n return this._dayJs(date).day();\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return style === 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._localeData.dates;\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style === 'long') {\r\n return this._localeData.longDaysOfWeek;\r\n }\r\n if (style === 'short') {\r\n return this._localeData.shortDaysOfWeek;\r\n }\r\n return this._localeData.narrowDaysOfWeek;\r\n }\r\n\r\n getYearName(date: Dayjs): string {\r\n return this._dayJs(date).format('YYYY');\r\n }\r\n\r\n getFirstDayOfWeek(): number {\r\n return this._localeData.firstDayOfWeek;\r\n }\r\n\r\n getNumDaysInMonth(date: Dayjs): number {\r\n return this._dayJs(date).daysInMonth();\r\n }\r\n\r\n clone(date: Dayjs): Dayjs {\r\n return date.clone();\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Dayjs {\r\n const returnDayjs = this._dayJs()\r\n .set('year', year)\r\n .set('month', month)\r\n .set('date', date);\r\n return returnDayjs;\r\n }\r\n\r\n today(): Dayjs {\r\n return this._dayJs();\r\n }\r\n\r\n parse(value: unknown, parseFormat: string): Dayjs | null {\r\n const locale = this.locale as string;\r\n\r\n if (value && typeof value === 'string') {\r\n return this._dayJs(value, parseFormat, locale);\r\n }\r\n if (value instanceof Date || dayjs.isDayjs(value)) {\r\n return this._dayJs(value).locale(locale);\r\n }\r\n return null;\r\n }\r\n\r\n format(date: Dayjs, displayFormat: string): string {\r\n if (!this.isValid(date)) {\r\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\r\n }\r\n return date.locale(this.locale as string).format(displayFormat);\r\n }\r\n\r\n addCalendarYears(date: Dayjs, years: number): Dayjs {\r\n return date.add(years, 'year');\r\n }\r\n\r\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\r\n return date.add(months, 'month');\r\n }\r\n\r\n addCalendarDays(date: Dayjs, days: number): Dayjs {\r\n return date.add(days, 'day');\r\n }\r\n\r\n toIso8601(date: Dayjs): string {\r\n return date.toISOString();\r\n }\r\n\r\n \r\n override deserialize(value: unknown): Dayjs | null {\r\n let date: Dayjs | null | undefined;\r\n if (value instanceof Date) {\r\n date = this._dayJs(value);\r\n } else if (this.isDateInstance(value)) {\r\n return this.clone(value);\r\n }\r\n if (typeof value === 'string') {\r\n if (!value) {\r\n return null;\r\n }\r\n date = this._dayJs(value);\r\n }\r\n if (date && this.isValid(date)) {\r\n return this._dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\r\n }\r\n return super.deserialize(value);\r\n }\r\n\r\n isDateInstance(obj: unknown): obj is Dayjs {\r\n return dayjs.isDayjs(obj);\r\n }\r\n\r\n isValid(date: Dayjs): boolean {\r\n return this._dayJs(date).isValid();\r\n }\r\n\r\n invalid(): Dayjs {\r\n return this._dayJs(null);\r\n }\r\n\r\n private _dayJs(input?: ConfigType, format?: string, locale?: string): Dayjs {\r\n if (!this._shouldUseUtc) {\r\n return dayjs(input, format, locale);\r\n }\r\n\r\n const utcDate = format ? dayjs.utc(input, format) : dayjs.utc(input);\r\n return locale ? utcDate.locale(locale) : utcDate;\r\n }\r\n\r\n private _initializeParser(dateLocale: string | undefined): void {\r\n if (this._shouldUseUtc) {\r\n dayjs.extend(utc);\r\n }\r\n\r\n dayjs.extend(LocalizedFormat);\r\n dayjs.extend(customParseFormat);\r\n dayjs.extend(localeData);\r\n\r\n this.setLocale(dateLocale ?? dayjs.locale());\r\n }\r\n}\r\n","import { MatDateFormats } from '@angular/material/core';\r\n\r\nexport const CMAT_DAYJS_DATE_FORMATS: MatDateFormats = {\r\n parse: {\r\n dateInput: 'YYYY/MM/DD',\r\n },\r\n display: {\r\n dateInput: 'YYYY/MM/DD',\r\n monthYearLabel: 'YYYY MMM',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY MMMM',\r\n }\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["range"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-adapter.mjs","sources":["../../../projects/cmat/components/adapter/datetime-adapter.ts","../../../projects/cmat/components/adapter/datetime-formats.ts","../../../projects/cmat/components/adapter/native-datetime-adapter.ts","../../../projects/cmat/components/adapter/native-datetime-formats.ts","../../../projects/cmat/components/adapter/dayjs-datetime-adapter.ts","../../../projects/cmat/components/adapter/dayjs-datetime-formats.ts","../../../projects/cmat/components/adapter/dayjs-date-adapter.ts","../../../projects/cmat/components/adapter/dayjs-date-formats.ts","../../../projects/cmat/components/adapter/cmat-components-adapter.ts"],"sourcesContent":["import { DateAdapter } from '@angular/material/core';\r\n\r\nexport abstract class DatetimeAdapter<D> extends DateAdapter<D> {\r\n\r\n constructor(protected _delegate: DateAdapter<D>) {\r\n super();\r\n }\r\n\r\n override getValidDateOrNull(obj: unknown): D | null {\r\n return this.isDateInstance(obj) && this.isValid(obj as D) ? (obj as D) : null;\r\n }\r\n\r\n compareDatetime(first: D, second: D, respectMinutePart: boolean = true): number | boolean {\r\n return this.compareDate(first, second) ||\r\n this.getHour(first) - this.getHour(second) ||\r\n (respectMinutePart && this.getMinute(first) - this.getMinute(second));\r\n }\r\n\r\n sameDatetime(first: D | null, second: D | null): boolean {\r\n if (first && second) {\r\n const firstValid = this.isValid(first);\r\n const secondValid = this.isValid(second);\r\n if (firstValid && secondValid) {\r\n return !this.compareDatetime(first, second);\r\n }\r\n return firstValid === secondValid;\r\n }\r\n return first === second;\r\n }\r\n\r\n sameYear(first: D, second: D): boolean {\r\n return first && second && this.getYear(first) === this.getYear(second);\r\n }\r\n\r\n sameDay(first: D, second: D): boolean {\r\n return first && second && this.getDate(first) === this.getDate(second) && this.sameMonthAndYear(first, second);\r\n }\r\n\r\n sameHour(first: D, second: D): boolean {\r\n return first && second && this.getHour(first) === this.getHour(second) && this.sameDay(first, second);\r\n }\r\n\r\n sameMinute(first: D, second: D): boolean {\r\n return first && second && this.getMinute(first) === this.getMinute(second) && this.sameHour(first, second);\r\n }\r\n\r\n sameMonthAndYear(first: D | null, second: D | null): boolean {\r\n if (first && second) {\r\n const firstValid = this.isValid(first);\r\n const secondValid = this.isValid(second);\r\n if (firstValid && secondValid) {\r\n return !(this.getYear(first) - this.getYear(second) ||\r\n this.getMonth(first) - this.getMonth(second));\r\n }\r\n return firstValid === secondValid;\r\n }\r\n return first === second;\r\n }\r\n clone(date: D): D {\r\n return this._delegate.clone(date);\r\n }\r\n\r\n addCalendarYears(date: D, years: number): D {\r\n return this._delegate.addCalendarYears(date, years);\r\n }\r\n\r\n addCalendarMonths(date: D, months: number): D {\r\n return this._delegate.addCalendarMonths(date, months);\r\n }\r\n\r\n addCalendarDays(date: D, days: number): D {\r\n return this._delegate.addCalendarDays(date, days);\r\n }\r\n\r\n getYear(date: D): number {\r\n return this._delegate.getYear(date);\r\n }\r\n\r\n getMonth(date: D): number {\r\n return this._delegate.getMonth(date);\r\n }\r\n\r\n getDate(date: D): number {\r\n return this._delegate.getDate(date);\r\n }\r\n\r\n getDayOfWeek(date: D): number {\r\n return this._delegate.getDayOfWeek(date);\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return this._delegate.getMonthNames(style);\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._delegate.getDateNames();\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return this._delegate.getDayOfWeekNames(style);\r\n }\r\n\r\n getYearName(date: D): string {\r\n return this._delegate.getYearName(date);\r\n }\r\n\r\n getFirstDayOfWeek(): number {\r\n return this._delegate.getFirstDayOfWeek();\r\n }\r\n\r\n getNumDaysInMonth(date: D): number {\r\n return this._delegate.getNumDaysInMonth(date);\r\n }\r\n\r\n createDate(year: number, month: number, date: number): D {\r\n return this._delegate.createDate(year, month, date);\r\n }\r\n\r\n today(): D {\r\n return this._delegate.today();\r\n }\r\n\r\n parse(value: unknown, parseFormat: string): D | null {\r\n return this._delegate.parse(value, parseFormat);\r\n }\r\n\r\n format(date: D, displayFormat: string): string {\r\n return this._delegate.format(date, displayFormat);\r\n }\r\n\r\n toIso8601(date: D): string {\r\n return this._delegate.toIso8601(date);\r\n }\r\n\r\n isDateInstance(obj: unknown): boolean {\r\n return this._delegate.isDateInstance(obj);\r\n }\r\n\r\n isValid(date: D): boolean {\r\n return this._delegate.isValid(date);\r\n }\r\n\r\n invalid(): D {\r\n return this._delegate.invalid();\r\n }\r\n\r\n override clampDate(date: D, min?: D | null, max?: D | null): D {\r\n if (min && (this.compareDatetime(date, min) as number) < 0) {\r\n return min;\r\n }\r\n if (max && (this.compareDatetime(date, max) as number) > 0) {\r\n return max;\r\n }\r\n return date;\r\n }\r\n\r\n abstract getHour(date: D): number;\r\n\r\n abstract getMinute(date: D): number;\r\n\r\n abstract getFirstDateOfMonth(date: D): D;\r\n\r\n\r\n abstract isInNextMonth(startDate: D, endDate: D): boolean;\r\n\r\n abstract getHourNames(): string[];\r\n\r\n abstract getMinuteNames(): string[];\r\n\r\n abstract addCalendarHours(date: D, months: number): D;\r\n\r\n abstract addCalendarMinutes(date: D, months: number): D;\r\n\r\n abstract createDatetime(year: number, month: number, date: number, hour: number, minute: number): D;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface CmatDatetimeFormats {\r\n parse: {\r\n dateInput?: string | Intl.DateTimeFormatOptions;\r\n monthInput?: string | Intl.DateTimeFormatOptions;\r\n timeInput?: string | Intl.DateTimeFormatOptions;\r\n datetimeInput?: string | Intl.DateTimeFormatOptions;\r\n yearInput?: string | Intl.DateTimeFormatOptions;\r\n };\r\n display: {\r\n dateInput: string | Intl.DateTimeFormatOptions;\r\n monthInput: string | Intl.DateTimeFormatOptions;\r\n timeInput: string | Intl.DateTimeFormatOptions;\r\n datetimeInput: string | Intl.DateTimeFormatOptions;\r\n yearInput: string | Intl.DateTimeFormatOptions;\r\n monthYearLabel: string | Intl.DateTimeFormatOptions;\r\n dateA11yLabel: string | Intl.DateTimeFormatOptions;\r\n monthYearA11yLabel: string | Intl.DateTimeFormatOptions;\r\n popupHeaderDateLabel: string | Intl.DateTimeFormatOptions;\r\n };\r\n}\r\n\r\nexport const CMAT_DATETIME_FORMATS = new InjectionToken<CmatDatetimeFormats>('cmat-datetime-formats');","import { Injectable, inject } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { DatetimeAdapter } from './datetime-adapter';\r\n\r\n\r\nconst DEFAULT_HOUR_NAMES = range(24, i => String(i));\r\n\r\n\r\nconst DEFAULT_MINUTE_NAMES = range(60, i => String(i));\r\n\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = new Array<T>(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n@Injectable()\r\nexport class CNativeDatetimeAdapter extends DatetimeAdapter<Date> {\r\n\r\n constructor() {\r\n const matDateLocale = inject(MAT_DATE_LOCALE, { optional: true })!;\r\n const _delegate = inject<DateAdapter<Date>>(DateAdapter);\r\n\r\n super(_delegate);\r\n this.setLocale(matDateLocale);\r\n }\r\n\r\n override clone(date: Date): Date {\r\n return this.createDatetime(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date), this.getMinute(date));\r\n }\r\n\r\n getHour(date: Date): number {\r\n return date.getHours();\r\n }\r\n\r\n getMinute(date: Date): number {\r\n return date.getMinutes();\r\n }\r\n\r\n isInNextMonth(startDate: Date, endDate: Date): boolean {\r\n const nextMonth = this._getDateInNextMonth(startDate);\r\n return this.sameMonthAndYear(nextMonth, endDate);\r\n }\r\n\r\n createDatetime(year: number, month: number, date: number, hour: number, minute: number): Date {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n if (hour < 0 || hour > 23) {\r\n throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\r\n }\r\n\r\n if (minute < 0 || minute > 59) {\r\n throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\r\n }\r\n\r\n const result = this._createDateWithOverflow(year, month, date, hour, minute);\r\n if (result.getMonth() !== month) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getFirstDateOfMonth(date: Date): Date {\r\n const result = new Date();\r\n result.setFullYear(date.getFullYear(), date.getMonth(), 1);\r\n return result;\r\n }\r\n\r\n getHourNames(): string[] {\r\n return DEFAULT_HOUR_NAMES;\r\n }\r\n\r\n getMinuteNames(): string[] {\r\n return DEFAULT_MINUTE_NAMES;\r\n }\r\n\r\n override addCalendarYears(date: Date, years: number): Date {\r\n return this.addCalendarMonths(date, years * 12);\r\n }\r\n\r\n override addCalendarMonths(date: Date, months: number): Date {\r\n let newDate = this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date) + months, this.getDate(date), this.getHour(date), this.getMinute(date));\r\n if (this.getMonth(newDate) !== ((this.getMonth(date) + months) % 12 + 12) % 12) {\r\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0, this.getHour(date), this.getMinute(date));\r\n }\r\n\r\n return newDate;\r\n }\r\n\r\n override addCalendarDays(date: Date, days: number): Date {\r\n return this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date), this.getDate(date) + days, this.getHour(date), this.getMinute(date));\r\n }\r\n\r\n addCalendarHours(date: Date, hours: number): Date {\r\n return this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date), this.getDate(date),\r\n this.getHour(date) + hours, this.getMinute(date));\r\n }\r\n\r\n addCalendarMinutes(date: Date, minutes: number): Date {\r\n return this._createDateWithOverflow(\r\n this.getYear(date), this.getMonth(date), this.getDate(date),\r\n this.getHour(date), this.getMinute(date) + minutes);\r\n }\r\n\r\n override toIso8601(date: Date): string {\r\n return super.toIso8601(date) + 'T' + [\r\n this._2digit(date.getUTCHours()),\r\n this._2digit(date.getUTCMinutes())\r\n ].join(':');\r\n }\r\n\r\n private _getDateInNextMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 1,\r\n date.getHours(), date.getMinutes());\r\n }\r\n\r\n\r\n \r\n private _2digit(n: number): string {\r\n return ('00' + n).slice(-2);\r\n }\r\n\r\n /* Creates a date but allows the month and date to overflow. */\r\n private _createDateWithOverflow(year: number, month: number, date: number,\r\n hours: number, minutes: number): Date {\r\n const result = new Date(year, month, date, hours, minutes);\r\n if (year >= 0 && year < 100) {\r\n result.setFullYear(this.getYear(result) - 1900);\r\n }\r\n return result;\r\n }\r\n}\r\n","import { CmatDatetimeFormats } from './datetime-formats';\r\n\r\nexport const CMAT_NATIVE_DATETIME_FORMATS: CmatDatetimeFormats = {\r\n parse: {},\r\n display: {\r\n dateInput: { year: 'numeric', month: '2-digit', day: '2-digit' },\r\n monthInput: { month: 'long' },\r\n datetimeInput: { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' },\r\n timeInput: { hour: '2-digit', minute: '2-digit' },\r\n yearInput: { year: 'numeric' },\r\n monthYearLabel: { year: 'numeric', month: 'short' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: 'MMMM yyyy',\r\n popupHeaderDateLabel: 'EEE, MMM dd'\r\n }\r\n};\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport localeData from 'dayjs/plugin/localeData';\r\nimport { DatetimeAdapter } from './datetime-adapter';\r\n\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = new Array<T>(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n@Injectable()\r\nexport class DayjsDatetimeAdapter extends DatetimeAdapter<Dayjs> {\r\n\r\n private _localeData: {\r\n firstDayOfWeek: number;\r\n longMonths: string[];\r\n shortMonths: string[];\r\n dates: string[];\r\n hours: string[];\r\n minutes: string[];\r\n longDaysOfWeek: string[];\r\n shortDaysOfWeek: string[];\r\n narrowDaysOfWeek: string[];\r\n };\r\n\r\n constructor() {\r\n const matDateLocale = inject(MAT_DATE_LOCALE, { optional: true });\r\n const _delegate = inject<DateAdapter<Dayjs>>(DateAdapter);\r\n const locale = typeof matDateLocale === 'string' ? matDateLocale : dayjs.locale();\r\n\r\n super(_delegate);\r\n this.setLocale(locale);\r\n dayjs.extend(localeData);\r\n }\r\n\r\n override setLocale(locale: string): void {\r\n super.setLocale(locale);\r\n\r\n const dayjsLocaleData = dayjs.localeData();\r\n this._localeData = {\r\n firstDayOfWeek: dayjsLocaleData.firstDayOfWeek(),\r\n longMonths: dayjsLocaleData.months(),\r\n shortMonths: dayjsLocaleData.monthsShort(),\r\n dates: range(31, i => super.createDate(2017, 0, i + 1).format('D')),\r\n hours: range(24, i => this.createDatetime(2017, 0, 1, i, 0).format('H')),\r\n minutes: range(60, i => this.createDatetime(2017, 0, 1, 1, i).format('m')),\r\n longDaysOfWeek: dayjsLocaleData.weekdays(),\r\n shortDaysOfWeek: dayjsLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: dayjsLocaleData.weekdaysMin()\r\n };\r\n }\r\n\r\n getHour(date: Dayjs): number {\r\n return super.clone(date).hour();\r\n }\r\n\r\n getMinute(date: Dayjs): number {\r\n return super.clone(date).minute();\r\n }\r\n\r\n isInNextMonth(startDate: Dayjs, endDate: Dayjs): boolean {\r\n const nextMonth = this._getDateInNextMonth(startDate);\r\n return super.sameMonthAndYear(nextMonth, endDate);\r\n }\r\n\r\n createDatetime(year: number, month: number, date: number, hour: number, minute: number): Dayjs {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n if (hour < 0 || hour > 23) {\r\n throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\r\n }\r\n\r\n if (minute < 0 || minute > 59) {\r\n throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\r\n }\r\n\r\n const result = dayjs(new Date(year, month, date, hour, minute));\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getFirstDateOfMonth(date: Dayjs): Dayjs {\r\n return super.clone(date).startOf('month');\r\n }\r\n\r\n getHourNames(): string[] {\r\n return this._localeData.hours;\r\n }\r\n\r\n getMinuteNames(): string[] {\r\n return this._localeData.minutes;\r\n }\r\n\r\n addCalendarHours(date: Dayjs, hours: number): Dayjs {\r\n return super.clone(date).add(hours, 'hour');\r\n }\r\n\r\n addCalendarMinutes(date: Dayjs, minutes: number): Dayjs {\r\n return super.clone(date).add(minutes, 'minute');\r\n }\r\n\r\n override deserialize(value: unknown): Dayjs | null {\r\n return this._delegate.deserialize(value);\r\n }\r\n\r\n private _getDateInNextMonth(date: Dayjs): Dayjs {\r\n return super.clone(date).date(1).add(1, 'month');\r\n }\r\n}\r\n","import { CmatDatetimeFormats } from './datetime-formats';\r\n\r\nexport const CMAT_DAYJS_DATETIME_FORMATS: CmatDatetimeFormats = {\r\n parse: {\r\n dateInput: 'L',\r\n monthInput: 'MMMM',\r\n timeInput: 'LT',\r\n datetimeInput: 'L LT',\r\n yearInput: 'YYYY'\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthInput: 'MMMM',\r\n datetimeInput: 'L LT',\r\n timeInput: 'LT',\r\n yearInput: 'YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n popupHeaderDateLabel: 'MMM DD, ddd'\r\n }\r\n};\r\n","import { Injectable, InjectionToken, inject } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport dayjs, { Dayjs, ConfigType } from 'dayjs';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport localeData from 'dayjs/plugin/localeData';\r\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\n\r\nexport interface DayJsDateAdapterOptions {\r\n \r\n useUtc?: boolean;\r\n}\r\n\r\n\r\nexport const CMAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\r\n 'CMAT_DAYJS_DATE_ADAPTER_OPTIONS', {\r\n providedIn: 'root',\r\n factory: CMAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function CMAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\r\n return {\r\n useUtc: false\r\n };\r\n}\r\n\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = new Array<T>(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n@Injectable()\r\n\r\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\r\n private _options = inject<DayJsDateAdapterOptions>(CMAT_DAYJS_DATE_ADAPTER_OPTIONS, { optional: true });\r\n\r\n private _localeData: {\r\n firstDayOfWeek: number;\r\n longMonths: string[];\r\n shortMonths: string[];\r\n dates: string[];\r\n longDaysOfWeek: string[];\r\n shortDaysOfWeek: string[];\r\n narrowDaysOfWeek: string[];\r\n };\r\n\r\n \r\n\r\n constructor() {\r\n super();\r\n const dateLocale = inject(MAT_DATE_LOCALE, {optional: true}) as string | null;\r\n\r\n this._initializeParser(dateLocale ?? undefined);\r\n }\r\n private get _shouldUseUtc(): boolean {\r\n const { useUtc }: DayJsDateAdapterOptions = this._options ?? {};\r\n return !!useUtc;\r\n }\r\n\r\n override setLocale(locale: string): void {\r\n super.setLocale(locale);\r\n\r\n const dayJsLocaleData = this._dayJs().localeData();\r\n this._localeData = {\r\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\r\n longMonths: dayJsLocaleData.months(),\r\n shortMonths: dayJsLocaleData.monthsShort(),\r\n dates: range(31, i => this.createDate(2017, 0, i + 1).format('D')),\r\n longDaysOfWeek: range(7, i => this._dayJs().set('day', i).format('dddd')),\r\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\r\n };\r\n }\r\n\r\n getYear(date: Dayjs): number {\r\n return this._dayJs(date).year();\r\n }\r\n\r\n getMonth(date: Dayjs): number {\r\n return this._dayJs(date).month();\r\n }\r\n\r\n getDate(date: Dayjs): number {\r\n return this._dayJs(date).date();\r\n }\r\n\r\n getDayOfWeek(date: Dayjs): number {\r\n return this._dayJs(date).day();\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return style === 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._localeData.dates;\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style === 'long') {\r\n return this._localeData.longDaysOfWeek;\r\n }\r\n if (style === 'short') {\r\n return this._localeData.shortDaysOfWeek;\r\n }\r\n return this._localeData.narrowDaysOfWeek;\r\n }\r\n\r\n getYearName(date: Dayjs): string {\r\n return this._dayJs(date).format('YYYY');\r\n }\r\n\r\n getFirstDayOfWeek(): number {\r\n return this._localeData.firstDayOfWeek;\r\n }\r\n\r\n getNumDaysInMonth(date: Dayjs): number {\r\n return this._dayJs(date).daysInMonth();\r\n }\r\n\r\n clone(date: Dayjs): Dayjs {\r\n return date.clone();\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Dayjs {\r\n const returnDayjs = this._dayJs()\r\n .set('year', year)\r\n .set('month', month)\r\n .set('date', date);\r\n return returnDayjs;\r\n }\r\n\r\n today(): Dayjs {\r\n return this._dayJs();\r\n }\r\n\r\n parse(value: unknown, parseFormat: string): Dayjs | null {\r\n const locale = this.locale as string;\r\n\r\n if (value && typeof value === 'string') {\r\n return this._dayJs(value, parseFormat, locale);\r\n }\r\n if (value instanceof Date || dayjs.isDayjs(value)) {\r\n return this._dayJs(value).locale(locale);\r\n }\r\n return null;\r\n }\r\n\r\n format(date: Dayjs, displayFormat: string): string {\r\n if (!this.isValid(date)) {\r\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\r\n }\r\n return date.locale(this.locale as string).format(displayFormat);\r\n }\r\n\r\n addCalendarYears(date: Dayjs, years: number): Dayjs {\r\n return date.add(years, 'year');\r\n }\r\n\r\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\r\n return date.add(months, 'month');\r\n }\r\n\r\n addCalendarDays(date: Dayjs, days: number): Dayjs {\r\n return date.add(days, 'day');\r\n }\r\n\r\n toIso8601(date: Dayjs): string {\r\n return date.toISOString();\r\n }\r\n\r\n \r\n override deserialize(value: unknown): Dayjs | null {\r\n let date: Dayjs | null | undefined;\r\n if (value instanceof Date) {\r\n date = this._dayJs(value);\r\n } else if (this.isDateInstance(value)) {\r\n return this.clone(value);\r\n }\r\n if (typeof value === 'string') {\r\n if (!value) {\r\n return null;\r\n }\r\n date = this._dayJs(value);\r\n }\r\n if (date && this.isValid(date)) {\r\n return this._dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\r\n }\r\n return super.deserialize(value);\r\n }\r\n\r\n isDateInstance(obj: unknown): obj is Dayjs {\r\n return dayjs.isDayjs(obj);\r\n }\r\n\r\n isValid(date: Dayjs): boolean {\r\n return this._dayJs(date).isValid();\r\n }\r\n\r\n invalid(): Dayjs {\r\n return this._dayJs(null);\r\n }\r\n\r\n private _dayJs(input?: ConfigType, format?: string, locale?: string): Dayjs {\r\n if (!this._shouldUseUtc) {\r\n return dayjs(input, format, locale);\r\n }\r\n\r\n const utcDate = format ? dayjs.utc(input, format) : dayjs.utc(input);\r\n return locale ? utcDate.locale(locale) : utcDate;\r\n }\r\n\r\n private _initializeParser(dateLocale: string | undefined): void {\r\n if (this._shouldUseUtc) {\r\n dayjs.extend(utc);\r\n }\r\n\r\n dayjs.extend(LocalizedFormat);\r\n dayjs.extend(customParseFormat);\r\n dayjs.extend(localeData);\r\n\r\n this.setLocale(dateLocale ?? dayjs.locale());\r\n }\r\n}\r\n","import { MatDateFormats } from '@angular/material/core';\r\n\r\nexport const CMAT_DAYJS_DATE_FORMATS: MatDateFormats = {\r\n parse: {\r\n dateInput: 'YYYY/MM/DD',\r\n },\r\n display: {\r\n dateInput: 'YYYY/MM/DD',\r\n monthYearLabel: 'YYYY MMM',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY MMMM',\r\n }\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["range"],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, inject, DestroyRef,
|
|
2
|
+
import { Directive, signal, inject, DestroyRef, Injectable, contentChild, TemplateRef, input, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
3
|
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
4
|
-
import { toObservable, takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
5
4
|
import { ActivatedRoute, Router, GuardsCheckEnd, RouterLink } from '@angular/router';
|
|
5
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { filter } from 'rxjs/operators';
|
|
7
7
|
|
|
8
8
|
class CmatBreadcrumbItemDirective {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatBreadcrumbItemDirective, isStandalone: true, selector: "[cmatBreadcrumbItem]", ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbItemDirective, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[cmatBreadcrumbItem]'
|
|
@@ -23,13 +23,19 @@ const PATH_PARAM = {
|
|
|
23
23
|
REGEX_REPLACER: '/[^/]+',
|
|
24
24
|
};
|
|
25
25
|
const ALIAS_PREFIX = '@';
|
|
26
|
+
const BREADCRUMB_DATA_KEY = 'breadcrumb';
|
|
26
27
|
const isNonEmpty = (obj) => !!obj && Object.keys(obj).length > 0;
|
|
27
28
|
class CmatBreadcrumbService {
|
|
28
29
|
constructor() {
|
|
30
|
+
this._breadcrumbs = signal([], /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "_breadcrumbs" }] : /* istanbul ignore next */ []));
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
33
|
+
this.breadcrumbs = this._breadcrumbs.asReadonly();
|
|
29
34
|
this._activatedRoute = inject(ActivatedRoute);
|
|
30
35
|
this._router = inject(Router);
|
|
31
36
|
this._destroyRef = inject(DestroyRef);
|
|
32
37
|
this._baseHref = '/';
|
|
38
|
+
this._compiledRegexCache = new Map();
|
|
33
39
|
this._dynamicBreadcrumbStore = {
|
|
34
40
|
alias: new Map(),
|
|
35
41
|
routeLink: new Map(),
|
|
@@ -37,18 +43,18 @@ class CmatBreadcrumbService {
|
|
|
37
43
|
};
|
|
38
44
|
this._currentBreadcrumbs = [];
|
|
39
45
|
this._previousBreadcrumbs = [];
|
|
40
|
-
this._breadcrumbs = signal([], ...(ngDevMode ? [{ debugName: "_breadcrumbs" }] : /* istanbul ignore next */ []));
|
|
41
|
-
this._breadcrumbs$ = toObservable(this._breadcrumbs);
|
|
42
46
|
this._detectRouteChanges();
|
|
43
47
|
}
|
|
44
|
-
get breadcrumbs$() {
|
|
45
|
-
return this._breadcrumbs$;
|
|
46
|
-
}
|
|
47
48
|
set(key, breadcrumb) {
|
|
48
49
|
const breadcrumbObject = this._extractObject(breadcrumb);
|
|
49
50
|
let updateArgs;
|
|
50
51
|
if (key.startsWith(ALIAS_PREFIX)) {
|
|
51
|
-
|
|
52
|
+
const aliasName = key.slice(1);
|
|
53
|
+
// 简单冲突检测
|
|
54
|
+
if (this._dynamicBreadcrumbStore.routeLink.has(aliasName) || this._dynamicBreadcrumbStore.routeRegex.has(aliasName)) {
|
|
55
|
+
console.warn(`CmatBreadcrumbService: Alias '${aliasName}' conflicts with an existing route link or regex.`);
|
|
56
|
+
}
|
|
57
|
+
updateArgs = ['alias', { ...breadcrumbObject, alias: aliasName }];
|
|
52
58
|
}
|
|
53
59
|
else if (key.includes(PATH_PARAM.PREFIX)) {
|
|
54
60
|
updateArgs = [
|
|
@@ -57,9 +63,13 @@ class CmatBreadcrumbService {
|
|
|
57
63
|
];
|
|
58
64
|
}
|
|
59
65
|
else {
|
|
66
|
+
const normalizedKey = this._ensureLeadingSlash(key);
|
|
67
|
+
if (this._dynamicBreadcrumbStore.alias.has(normalizedKey)) {
|
|
68
|
+
console.warn(`CmatBreadcrumbService: Route link '${normalizedKey}' conflicts with an existing alias.`);
|
|
69
|
+
}
|
|
60
70
|
updateArgs = [
|
|
61
71
|
'routeLink',
|
|
62
|
-
{ ...breadcrumbObject, routeLink:
|
|
72
|
+
{ ...breadcrumbObject, routeLink: normalizedKey },
|
|
63
73
|
];
|
|
64
74
|
}
|
|
65
75
|
updateArgs[1].isAutoGeneratedLabel = false;
|
|
@@ -127,7 +137,9 @@ class CmatBreadcrumbService {
|
|
|
127
137
|
_prepareBreadcrumbList(activatedRouteSnapshot, routeLinkPrefix) {
|
|
128
138
|
if (activatedRouteSnapshot.routeConfig?.path) {
|
|
129
139
|
const breadcrumbItem = this._prepareBreadcrumbItem(activatedRouteSnapshot, routeLinkPrefix);
|
|
130
|
-
|
|
140
|
+
if (!breadcrumbItem.skip) {
|
|
141
|
+
this._currentBreadcrumbs.push(breadcrumbItem);
|
|
142
|
+
}
|
|
131
143
|
if (activatedRouteSnapshot.firstChild) {
|
|
132
144
|
return this._prepareBreadcrumbList(activatedRouteSnapshot.firstChild, breadcrumbItem.routeLink + '/');
|
|
133
145
|
}
|
|
@@ -137,9 +149,7 @@ class CmatBreadcrumbService {
|
|
|
137
149
|
}
|
|
138
150
|
const lastCrumb = this._currentBreadcrumbs[this._currentBreadcrumbs.length - 1];
|
|
139
151
|
this._setQueryParamsForActiveBreadcrumb(lastCrumb, activatedRouteSnapshot);
|
|
140
|
-
|
|
141
|
-
this._breadcrumbs.set([...breadcrumbsToShow]);
|
|
142
|
-
return void 0;
|
|
152
|
+
this._breadcrumbs.set([...this._currentBreadcrumbs]);
|
|
143
153
|
}
|
|
144
154
|
_getFromStore(routeLink, alias) {
|
|
145
155
|
if (alias) {
|
|
@@ -160,16 +170,23 @@ class CmatBreadcrumbService {
|
|
|
160
170
|
return void 0;
|
|
161
171
|
}
|
|
162
172
|
_matchRegex(routeLink, routeRegex) {
|
|
163
|
-
if (routeRegex
|
|
164
|
-
|
|
165
|
-
|
|
173
|
+
if (!routeRegex || !routeLink) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
let regex = this._compiledRegexCache.get(routeRegex);
|
|
177
|
+
if (!regex) {
|
|
178
|
+
regex = new RegExp(routeRegex);
|
|
179
|
+
this._compiledRegexCache.set(routeRegex, regex);
|
|
166
180
|
}
|
|
167
|
-
|
|
181
|
+
const match = regex.exec(routeLink);
|
|
182
|
+
return match?.[0] === routeLink;
|
|
168
183
|
}
|
|
169
184
|
_resolvePathSegment(segment, activatedRouteSnapshot) {
|
|
170
185
|
if (segment.includes(PATH_PARAM.PREFIX)) {
|
|
171
186
|
Object.entries(activatedRouteSnapshot.params).forEach(([key, value]) => {
|
|
172
|
-
|
|
187
|
+
const paramPattern = `:${key}`;
|
|
188
|
+
const regex = new RegExp(`(?<=^|/)${paramPattern}(?=/|$)`);
|
|
189
|
+
segment = segment.replace(regex, String(value));
|
|
173
190
|
});
|
|
174
191
|
}
|
|
175
192
|
return segment;
|
|
@@ -191,7 +208,7 @@ class CmatBreadcrumbService {
|
|
|
191
208
|
return void 0;
|
|
192
209
|
}
|
|
193
210
|
const { path, data } = routeConfig;
|
|
194
|
-
const breadcrumb = this._mergeWithBaseChildData(routeConfig, data?.[
|
|
211
|
+
const breadcrumb = this._mergeWithBaseChildData(routeConfig, data?.[BREADCRUMB_DATA_KEY]);
|
|
195
212
|
return { path, breadcrumb };
|
|
196
213
|
}
|
|
197
214
|
_mergeWithBaseChildData(routeConfig, config) {
|
|
@@ -199,13 +216,13 @@ class CmatBreadcrumbService {
|
|
|
199
216
|
return this._extractObject(config);
|
|
200
217
|
}
|
|
201
218
|
let baseChild = void 0;
|
|
202
|
-
if (routeConfig.
|
|
203
|
-
baseChild = routeConfig._loadedRoutes?.find(route => route.path === '');
|
|
204
|
-
}
|
|
205
|
-
else if (routeConfig.children) {
|
|
219
|
+
if (routeConfig.children) {
|
|
206
220
|
baseChild = routeConfig.children.find(route => route.path === '');
|
|
207
221
|
}
|
|
208
|
-
|
|
222
|
+
if (!baseChild && routeConfig.loadChildren && routeConfig._loadedRoutes) {
|
|
223
|
+
baseChild = routeConfig._loadedRoutes.find((route) => route.path === '');
|
|
224
|
+
}
|
|
225
|
+
const childConfig = baseChild?.data?.[BREADCRUMB_DATA_KEY];
|
|
209
226
|
return childConfig
|
|
210
227
|
? this._mergeWithBaseChildData(baseChild ?? null, {
|
|
211
228
|
...this._extractObject(config),
|
|
@@ -215,15 +232,18 @@ class CmatBreadcrumbService {
|
|
|
215
232
|
}
|
|
216
233
|
_updateStore(key, breadcrumb) {
|
|
217
234
|
if (key === 'alias' && breadcrumb.alias) {
|
|
218
|
-
|
|
235
|
+
const existing = this._dynamicBreadcrumbStore.alias.get(breadcrumb.alias);
|
|
236
|
+
this._dynamicBreadcrumbStore.alias.set(breadcrumb.alias, { ...(existing ?? {}), ...breadcrumb });
|
|
219
237
|
return;
|
|
220
238
|
}
|
|
221
239
|
if (key === 'routeLink' && breadcrumb.routeLink) {
|
|
222
|
-
|
|
240
|
+
const existing = this._dynamicBreadcrumbStore.routeLink.get(breadcrumb.routeLink);
|
|
241
|
+
this._dynamicBreadcrumbStore.routeLink.set(breadcrumb.routeLink, { ...(existing ?? {}), ...breadcrumb });
|
|
223
242
|
return;
|
|
224
243
|
}
|
|
225
244
|
if (key === 'routeRegex' && breadcrumb.routeRegex) {
|
|
226
|
-
|
|
245
|
+
const existing = this._dynamicBreadcrumbStore.routeRegex.get(breadcrumb.routeRegex);
|
|
246
|
+
this._dynamicBreadcrumbStore.routeRegex.set(breadcrumb.routeRegex, { ...(existing ?? {}), ...breadcrumb });
|
|
227
247
|
}
|
|
228
248
|
}
|
|
229
249
|
_updateCurrentBreadcrumbs(key, breadcrumb) {
|
|
@@ -268,12 +288,12 @@ class CmatBreadcrumbService {
|
|
|
268
288
|
return config || {};
|
|
269
289
|
}
|
|
270
290
|
_publishCurrentBreadcrumbs() {
|
|
271
|
-
this._breadcrumbs.set(this._currentBreadcrumbs
|
|
291
|
+
this._breadcrumbs.set(this._currentBreadcrumbs);
|
|
272
292
|
}
|
|
273
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
274
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
293
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
294
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbService, providedIn: 'root' }); }
|
|
275
295
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbService, decorators: [{
|
|
277
297
|
type: Injectable,
|
|
278
298
|
args: [{
|
|
279
299
|
providedIn: 'root',
|
|
@@ -282,57 +302,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
282
302
|
|
|
283
303
|
class CmatBreadcrumbComponent {
|
|
284
304
|
constructor() {
|
|
285
|
-
this.itemTemplate =
|
|
286
|
-
this.
|
|
287
|
-
|
|
288
|
-
this.
|
|
289
|
-
|
|
305
|
+
this.itemTemplate = contentChild(CmatBreadcrumbItemDirective, { ...(ngDevMode ? { debugName: "itemTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
306
|
+
this.autoGenerate = input(true, /* @ts-ignore */
|
|
307
|
+
...(ngDevMode ? [{ debugName: "autoGenerate" }] : /* istanbul ignore next */ []));
|
|
308
|
+
this.preserveQueryParams = input(true, /* @ts-ignore */
|
|
309
|
+
...(ngDevMode ? [{ debugName: "preserveQueryParams" }] : /* istanbul ignore next */ []));
|
|
310
|
+
this.preserveFragment = input(true, /* @ts-ignore */
|
|
311
|
+
...(ngDevMode ? [{ debugName: "preserveFragment" }] : /* istanbul ignore next */ []));
|
|
312
|
+
this.class = input('', /* @ts-ignore */
|
|
313
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
314
|
+
this.anchorTarget = input(undefined, /* @ts-ignore */
|
|
315
|
+
...(ngDevMode ? [{ debugName: "anchorTarget" }] : /* istanbul ignore next */ []));
|
|
316
|
+
this.separatorTemplate = signal(null, /* @ts-ignore */
|
|
317
|
+
...(ngDevMode ? [{ debugName: "separatorTemplate" }] : /* istanbul ignore next */ []));
|
|
318
|
+
this.separator = input(undefined, /* @ts-ignore */
|
|
319
|
+
...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
|
|
290
320
|
this.breadcrumbs = computed(() => {
|
|
291
|
-
const
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
return
|
|
296
|
-
|
|
321
|
+
const items = this._breadcrumbItems();
|
|
322
|
+
const filtered = this._autoGenerate()
|
|
323
|
+
? items
|
|
324
|
+
: items.filter(breadcrumb => !breadcrumb.isAutoGeneratedLabel);
|
|
325
|
+
return filtered.map(item => ({
|
|
326
|
+
...item,
|
|
327
|
+
label: item.label,
|
|
328
|
+
finalRouteLink: item.routeInterceptor
|
|
329
|
+
? item.routeInterceptor(item, item.routeLink)
|
|
330
|
+
: item.routeLink
|
|
331
|
+
}));
|
|
332
|
+
}, /* @ts-ignore */
|
|
333
|
+
...(ngDevMode ? [{ debugName: "breadcrumbs" }] : /* istanbul ignore next */ []));
|
|
297
334
|
this._breadcrumbService = inject(CmatBreadcrumbService);
|
|
298
|
-
this._autoGenerate = signal(true,
|
|
299
|
-
|
|
300
|
-
this.
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
this._separator = value;
|
|
310
|
-
}
|
|
311
|
-
get separator() {
|
|
312
|
-
return this._separator;
|
|
335
|
+
this._autoGenerate = signal(true, /* @ts-ignore */
|
|
336
|
+
...(ngDevMode ? [{ debugName: "_autoGenerate" }] : /* istanbul ignore next */ []));
|
|
337
|
+
this._breadcrumbItems = this._breadcrumbService.breadcrumbs;
|
|
338
|
+
effect(() => {
|
|
339
|
+
if (this.separator() instanceof TemplateRef) {
|
|
340
|
+
this.separatorTemplate.set(this.separator());
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
this.separatorTemplate.set(null);
|
|
344
|
+
}
|
|
345
|
+
});
|
|
313
346
|
}
|
|
314
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
315
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
347
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: CmatBreadcrumbComponent, isStandalone: true, selector: "cmat-breadcrumb", inputs: { autoGenerate: { classPropertyName: "autoGenerate", publicName: "autoGenerate", isSignal: true, isRequired: false, transformFunction: null }, preserveQueryParams: { classPropertyName: "preserveQueryParams", publicName: "preserveQueryParams", isSignal: true, isRequired: false, transformFunction: null }, preserveFragment: { classPropertyName: "preserveFragment", publicName: "preserveFragment", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, anchorTarget: { classPropertyName: "anchorTarget", publicName: "anchorTarget", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: CmatBreadcrumbItemDirective, descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["cmatBreadcrumb"], ngImport: i0, template: "<nav aria-label=\"breadcrumb\" class=\"m-0\" [ngClass]=\"class\">\r\n <ol class=\"flex items-center flex-wrap m-0 p-0\">\r\n @for (\r\n breadcrumb of breadcrumbs(); track\r\n breadcrumb.routeLink ?? $index; let isLast = $last; let isFirst = $first; let index = $index; let count = $count) {\r\n <li class=\"list-none\">\r\n @if (!isLast) {\r\n <a class=\"cmat-breadcrumb-link\"\r\n rel=\"noopener noreferrer\"\r\n [ngClass]=\"{ 'pointer-events-none cursor-not-allowed': breadcrumb.disable }\" \r\n [attr.aria-disabled]=\"breadcrumb.disable\"\r\n [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" \r\n [routerLink]=\"breadcrumb.finalRouteLink\" \r\n [queryParams]=\"preserveQueryParams() ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment() ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget() === '_blank' ? '_blank' : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()\"></ng-container>\r\n @if (!itemTemplate()) {\r\n {{ breadcrumb.label }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()\"></ng-container>\r\n @if (!itemTemplate()) {\r\n {{ breadcrumb.label }}\r\n }\r\n </span>\r\n }\r\n </li>\r\n @if (!isLast) {\r\n <li class=\"flex select-none mx-4\" aria-hidden=\"true\" role=\"separator\">\r\n <ng-container *ngTemplateOutlet=\"separatorTemplate()\"></ng-container>\r\n @if (separatorTemplate===null) {\r\n {{ separator() }}\r\n }\r\n </li>\r\n }\r\n }\r\n </ol>\r\n</nav>", styles: ["cmat-breadcrumb .cmat-breadcrumb-link{display:flex;align-items:center;white-space:nowrap;color:inherit;text-decoration:none;transition:text-decoration .3s;cursor:pointer}cmat-breadcrumb .cmat-breadcrumb-link:hover{text-decoration-line:underline}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
316
349
|
}
|
|
317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBreadcrumbComponent, decorators: [{
|
|
318
351
|
type: Component,
|
|
319
|
-
args: [{ selector: 'cmat-breadcrumb', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatBreadcrumb', imports: [NgClass, RouterLink, NgTemplateOutlet], template: "<nav aria-label=\"breadcrumb\" class=\"m-0\" [ngClass]=\"class\">\r\n <ol class=\"flex items-center flex-wrap m-0 p-0\">\r\n @for (\r\n breadcrumb of breadcrumbs(); track\r\n breadcrumb.routeLink ?? $index; let isLast = $last; let isFirst = $first; let index = $index; let count = $count) {\r\n <li class=\"list-none\">\r\n @if (!isLast) {\r\n <a class=\"cmat-breadcrumb-link\"\r\n rel=\"noopener noreferrer\"\r\n [ngClass]=\"{ 'pointer-events-none cursor-not-allowed': breadcrumb.disable }\" [attr.aria-disabled]=\"breadcrumb.disable\"\r\n
|
|
320
|
-
}], propDecorators: { itemTemplate: [{
|
|
321
|
-
type: ContentChild,
|
|
322
|
-
args: [CmatBreadcrumbItemDirective, { static: false, read: TemplateRef }]
|
|
323
|
-
}], autoGenerate: [{
|
|
324
|
-
type: Input
|
|
325
|
-
}], preserveQueryParams: [{
|
|
326
|
-
type: Input
|
|
327
|
-
}], preserveFragment: [{
|
|
328
|
-
type: Input
|
|
329
|
-
}], class: [{
|
|
330
|
-
type: Input
|
|
331
|
-
}], anchorTarget: [{
|
|
332
|
-
type: Input
|
|
333
|
-
}], separator: [{
|
|
334
|
-
type: Input
|
|
335
|
-
}] } });
|
|
352
|
+
args: [{ selector: 'cmat-breadcrumb', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatBreadcrumb', imports: [NgClass, RouterLink, NgTemplateOutlet], template: "<nav aria-label=\"breadcrumb\" class=\"m-0\" [ngClass]=\"class\">\r\n <ol class=\"flex items-center flex-wrap m-0 p-0\">\r\n @for (\r\n breadcrumb of breadcrumbs(); track\r\n breadcrumb.routeLink ?? $index; let isLast = $last; let isFirst = $first; let index = $index; let count = $count) {\r\n <li class=\"list-none\">\r\n @if (!isLast) {\r\n <a class=\"cmat-breadcrumb-link\"\r\n rel=\"noopener noreferrer\"\r\n [ngClass]=\"{ 'pointer-events-none cursor-not-allowed': breadcrumb.disable }\" \r\n [attr.aria-disabled]=\"breadcrumb.disable\"\r\n [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" \r\n [routerLink]=\"breadcrumb.finalRouteLink\" \r\n [queryParams]=\"preserveQueryParams() ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment() ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget() === '_blank' ? '_blank' : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()\"></ng-container>\r\n @if (!itemTemplate()) {\r\n {{ breadcrumb.label }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()\"></ng-container>\r\n @if (!itemTemplate()) {\r\n {{ breadcrumb.label }}\r\n }\r\n </span>\r\n }\r\n </li>\r\n @if (!isLast) {\r\n <li class=\"flex select-none mx-4\" aria-hidden=\"true\" role=\"separator\">\r\n <ng-container *ngTemplateOutlet=\"separatorTemplate()\"></ng-container>\r\n @if (separatorTemplate===null) {\r\n {{ separator() }}\r\n }\r\n </li>\r\n }\r\n }\r\n </ol>\r\n</nav>", styles: ["cmat-breadcrumb .cmat-breadcrumb-link{display:flex;align-items:center;white-space:nowrap;color:inherit;text-decoration:none;transition:text-decoration .3s;cursor:pointer}cmat-breadcrumb .cmat-breadcrumb-link:hover{text-decoration-line:underline}\n"] }]
|
|
353
|
+
}], ctorParameters: () => [], propDecorators: { itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatBreadcrumbItemDirective), { ...{ read: TemplateRef }, isSignal: true }] }], autoGenerate: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoGenerate", required: false }] }], preserveQueryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "preserveQueryParams", required: false }] }], preserveFragment: [{ type: i0.Input, args: [{ isSignal: true, alias: "preserveFragment", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], anchorTarget: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchorTarget", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
336
354
|
|
|
337
355
|
/**
|
|
338
356
|
* Generated bundle index. Do not edit.
|