cmat 0.0.84 → 0.0.86

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 (164) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +3 -3
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +12 -12
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +9 -9
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +3 -3
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +3 -3
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-custom-formly.mjs +91 -92
  16. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  17. package/fesm2022/cmat-components-date-range.mjs +3 -3
  18. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  19. package/fesm2022/cmat-components-date-time-display.mjs +3 -3
  20. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  21. package/fesm2022/cmat-components-drawer.mjs +6 -6
  22. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  23. package/fesm2022/cmat-components-empty-state.mjs +3 -3
  24. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  25. package/fesm2022/cmat-components-file-preview.mjs +3 -3
  26. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  27. package/fesm2022/cmat-components-filter-toolbar.mjs +3 -3
  28. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  29. package/fesm2022/cmat-components-form-actions.mjs +3 -3
  30. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  31. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  32. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  33. package/fesm2022/cmat-components-highlight.mjs +6 -6
  34. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  35. package/fesm2022/cmat-components-image-viewer.mjs +3 -3
  36. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  37. package/fesm2022/cmat-components-inline-loading.mjs +3 -3
  38. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  39. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  40. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  41. package/fesm2022/cmat-components-knob-input.mjs +3 -3
  42. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  43. package/fesm2022/cmat-components-masonry.mjs +3 -3
  44. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  45. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  46. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  47. package/fesm2022/cmat-components-material-datetimepicker.mjs +42 -42
  48. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  49. package/fesm2022/cmat-components-navigation.mjs +39 -39
  50. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  51. package/fesm2022/cmat-components-opt-input.mjs +3 -3
  52. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  53. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  54. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  55. package/fesm2022/cmat-components-page-header.mjs +3 -3
  56. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  57. package/fesm2022/cmat-components-pagination.mjs +12 -12
  58. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  59. package/fesm2022/cmat-components-password-strength.mjs +9 -9
  60. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  61. package/fesm2022/cmat-components-popover.mjs +9 -9
  62. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  63. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  64. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  65. package/fesm2022/cmat-components-qrcode.mjs +3 -3
  66. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  67. package/fesm2022/cmat-components-rating.mjs +3 -3
  68. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  69. package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
  70. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  71. package/fesm2022/cmat-components-select-search.mjs +9 -9
  72. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  73. package/fesm2022/cmat-components-select-table.mjs +3 -3
  74. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-tree.mjs +3 -3
  76. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  77. package/fesm2022/cmat-components-skeleton.mjs +3 -3
  78. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  79. package/fesm2022/cmat-components-speed-dial.mjs +9 -9
  80. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  81. package/fesm2022/cmat-components-status-tag.mjs +3 -3
  82. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  83. package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
  84. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  85. package/fesm2022/cmat-components-timeline.mjs +12 -12
  86. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  87. package/fesm2022/cmat-components-toast.mjs +9 -9
  88. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  89. package/fesm2022/cmat-components-transfer-picker.mjs +18 -18
  90. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  91. package/fesm2022/cmat-components-treetable.mjs +6 -6
  92. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  93. package/fesm2022/cmat-components-upload.mjs +30 -17
  94. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  95. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  96. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  97. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  98. package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
  99. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  100. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  101. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  102. package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
  103. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  104. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  105. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  106. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  107. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  108. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  109. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  110. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +3 -3
  111. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  112. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  113. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  114. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  115. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  116. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  117. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  118. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  119. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  120. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  121. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  122. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  123. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  124. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  125. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  126. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  127. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  128. package/fesm2022/cmat-services-alert.mjs +3 -3
  129. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  130. package/fesm2022/cmat-services-config.mjs +6 -6
  131. package/fesm2022/cmat-services-config.mjs.map +1 -1
  132. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  133. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  134. package/fesm2022/cmat-services-data.mjs +3 -3
  135. package/fesm2022/cmat-services-data.mjs.map +1 -1
  136. package/fesm2022/cmat-services-export-as.mjs +3 -3
  137. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  138. package/fesm2022/cmat-services-loading.mjs +6 -6
  139. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  140. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  141. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  142. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  143. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  144. package/fesm2022/cmat-services-platform.mjs +3 -3
  145. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  146. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  147. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  148. package/fesm2022/cmat-services-title.mjs +3 -3
  149. package/fesm2022/cmat-services-title.mjs.map +1 -1
  150. package/fesm2022/cmat-services-translation.mjs +3 -3
  151. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  152. package/fesm2022/cmat-services-utils.mjs +3 -3
  153. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  154. package/fesm2022/cmat.mjs +556 -544
  155. package/fesm2022/cmat.mjs.map +1 -1
  156. package/package.json +16 -16
  157. package/types/cmat-components-custom-formly.d.ts +2 -2
  158. package/types/cmat-components-fullscreen.d.ts +1 -1
  159. package/types/cmat-components-highlight.d.ts +1 -1
  160. package/types/cmat-components-popover.d.ts +2 -2
  161. package/types/cmat-components-upload.d.ts +49 -51
  162. package/types/cmat-components-x6-angular-shape.d.ts +2 -2
  163. package/types/cmat-pipes-find-by-key.d.ts +1 -0
  164. package/types/cmat.d.ts +44 -46
@@ -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: "21.2.9", ngImport: i0, type: CNativeDatetimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
236
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CNativeDatetimeAdapter }); }
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CNativeDatetimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
236
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CNativeDatetimeAdapter }); }
237
237
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CNativeDatetimeAdapter, decorators: [{
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", 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: "21.2.9", ngImport: i0, type: DayjsDatetimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
339
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DayjsDatetimeAdapter }); }
338
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DayjsDatetimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
339
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DayjsDatetimeAdapter }); }
340
340
  }
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", 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: "21.2.9", ngImport: i0, type: DayjsDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
529
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DayjsDateAdapter }); }
528
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DayjsDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
529
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DayjsDateAdapter }); }
530
530
  }
531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DayjsDateAdapter, decorators: [{
531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", 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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"}
@@ -6,10 +6,10 @@ import { ActivatedRoute, Router, GuardsCheckEnd, RouterLink } from '@angular/rou
6
6
  import { filter } from 'rxjs/operators';
7
7
 
8
8
  class CmatBreadcrumbItemDirective {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: CmatBreadcrumbItemDirective, isStandalone: true, selector: "[cmatBreadcrumbItem]", ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.10", type: CmatBreadcrumbItemDirective, isStandalone: true, selector: "[cmatBreadcrumbItem]", ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbItemDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbItemDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cmatBreadcrumbItem]'
@@ -270,10 +270,10 @@ class CmatBreadcrumbService {
270
270
  _publishCurrentBreadcrumbs() {
271
271
  this._breadcrumbs.set(this._currentBreadcrumbs.filter(item => !item.skip));
272
272
  }
273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
274
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbService, providedIn: 'root' }); }
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
274
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbService, providedIn: 'root' }); }
275
275
  }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbService, decorators: [{
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbService, decorators: [{
277
277
  type: Injectable,
278
278
  args: [{
279
279
  providedIn: 'root',
@@ -311,10 +311,10 @@ class CmatBreadcrumbComponent {
311
311
  get separator() {
312
312
  return this._separator;
313
313
  }
314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CmatBreadcrumbComponent, isStandalone: true, selector: "cmat-breadcrumb", inputs: { autoGenerate: "autoGenerate", preserveQueryParams: "preserveQueryParams", preserveFragment: "preserveFragment", class: "class", anchorTarget: "anchorTarget", separator: "separator" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: CmatBreadcrumbItemDirective, descendants: true, read: TemplateRef }], 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 }\" [attr.aria-disabled]=\"breadcrumb.disable\"\r\n [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" [routerLink]=\"\r\n breadcrumb.routeInterceptor\r\n ? breadcrumb.routeInterceptor( breadcrumb,breadcrumb.routeLink)\r\n : breadcrumb.routeLink\" [queryParams]=\"preserveQueryParams ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget ? anchorTarget : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\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>\r\n", 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", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: CmatBreadcrumbComponent, isStandalone: true, selector: "cmat-breadcrumb", inputs: { autoGenerate: "autoGenerate", preserveQueryParams: "preserveQueryParams", preserveFragment: "preserveFragment", class: "class", anchorTarget: "anchorTarget", separator: "separator" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: CmatBreadcrumbItemDirective, descendants: true, read: TemplateRef }], 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 }\" [attr.aria-disabled]=\"breadcrumb.disable\"\r\n [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" [routerLink]=\"\r\n breadcrumb.routeInterceptor\r\n ? breadcrumb.routeInterceptor( breadcrumb,breadcrumb.routeLink)\r\n : breadcrumb.routeLink\" [queryParams]=\"preserveQueryParams ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget ? anchorTarget : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\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>\r\n", 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", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
316
316
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatBreadcrumbComponent, decorators: [{
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatBreadcrumbComponent, decorators: [{
318
318
  type: Component,
319
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 [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" [routerLink]=\"\r\n breadcrumb.routeInterceptor\r\n ? breadcrumb.routeInterceptor( breadcrumb,breadcrumb.routeLink)\r\n : breadcrumb.routeLink\" [queryParams]=\"preserveQueryParams ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget ? anchorTarget : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\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>\r\n", 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"] }]
320
320
  }], propDecorators: { itemTemplate: [{
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-breadcrumb.mjs","sources":["../../../projects/cmat/components/breadcrumb/breadcrumb-item.directive.ts","../../../projects/cmat/components/breadcrumb/breadcrumb.service.ts","../../../projects/cmat/components/breadcrumb/breadcrumb.component.ts","../../../projects/cmat/components/breadcrumb/breadcrumb.component.html","../../../projects/cmat/components/breadcrumb/cmat-components-breadcrumb.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[cmatBreadcrumbItem]'\r\n})\r\nexport class CmatBreadcrumbItemDirective {\r\n}\r\n","import { DestroyRef, Injectable, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, GuardsCheckEnd, Route, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatBreadcrumb } from './types/breadcrumb';\r\nimport { CmatBreadcrumbFunction, CmatBreadcrumbObject } from './types/breadcrumb.config';\r\n\r\ntype CmatBreadcrumbConfig = CmatBreadcrumbObject | CmatBreadcrumbFunction | string;\r\ntype StoreMatcherKey = 'routeLink' | 'routeRegex' | 'alias';\r\nexport type CmatBreadcrumbDefinition = CmatBreadcrumb & CmatBreadcrumbObject;\r\n\r\ninterface CmatBreadcrumbRouteConfig {\r\n path?: string | null;\r\n loadChildren?: unknown;\r\n _loadedRoutes?: Route[];\r\n data?: {\r\n breadcrumb?: CmatBreadcrumbConfig;\r\n };\r\n children?: Route[];\r\n}\r\n\r\ninterface CmatBreadcrumbRouteData {\r\n path?: string;\r\n breadcrumb: CmatBreadcrumbObject;\r\n}\r\n\r\ntype BreadcrumbRouteDataInput = CmatBreadcrumbConfig | undefined;\r\n\r\ninterface CmatBreadcrumbStore {\r\n alias: Map<string, CmatBreadcrumbDefinition>;\r\n routeLink: Map<string, CmatBreadcrumbDefinition>;\r\n routeRegex: Map<string, CmatBreadcrumbDefinition>;\r\n}\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nconst PATH_PARAM = {\r\n PREFIX: ':',\r\n REGEX_IDENTIFIER: '/:[^/]+',\r\n REGEX_REPLACER: '/[^/]+',\r\n};\r\n\r\n\r\nconst ALIAS_PREFIX = '@';\r\nconst isNonEmpty = (obj: object | undefined): boolean => !!obj && Object.keys(obj).length > 0;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CmatBreadcrumbService {\r\n private _activatedRoute = inject(ActivatedRoute);\r\n private _router = inject(Router);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _baseHref = '/';\r\n\r\n \r\n private readonly _dynamicBreadcrumbStore: CmatBreadcrumbStore = {\r\n alias: new Map<string, CmatBreadcrumbDefinition>(),\r\n routeLink: new Map<string, CmatBreadcrumbDefinition>(),\r\n routeRegex: new Map<string, CmatBreadcrumbDefinition>(),\r\n };\r\n\r\n \r\n private _currentBreadcrumbs: CmatBreadcrumbDefinition[] = [];\r\n private _previousBreadcrumbs: CmatBreadcrumbDefinition[] = [];\r\n\r\n \r\n private _breadcrumbs = signal<CmatBreadcrumbDefinition[]>([]);\r\n private readonly _breadcrumbs$ = toObservable(this._breadcrumbs);\r\n\r\n \r\n\r\n constructor() {\r\n this._detectRouteChanges();\r\n }\r\n\r\n get breadcrumbs$(): Observable<CmatBreadcrumbDefinition[]> {\r\n return this._breadcrumbs$;\r\n }\r\n\r\n \r\n set(key: string, breadcrumb: string | CmatBreadcrumbObject): void {\r\n const breadcrumbObject = this._extractObject(breadcrumb);\r\n let updateArgs: [StoreMatcherKey, CmatBreadcrumbDefinition];\r\n\r\n if (key.startsWith(ALIAS_PREFIX)) {\r\n updateArgs = ['alias', { ...breadcrumbObject, alias: key.slice(1) }];\r\n } else if (key.includes(PATH_PARAM.PREFIX)) {\r\n updateArgs = [\r\n 'routeRegex',\r\n { ...breadcrumbObject, routeRegex: this._buildRegex(key) },\r\n ];\r\n } else {\r\n updateArgs = [\r\n 'routeLink',\r\n { ...breadcrumbObject, routeLink: this._ensureLeadingSlash(key) },\r\n ];\r\n }\r\n updateArgs[1].isAutoGeneratedLabel = false;\r\n\r\n this._updateStore(...updateArgs);\r\n this._updateCurrentBreadcrumbs(...updateArgs);\r\n }\r\n\r\n\r\n\r\n \r\n private _detectRouteChanges(): void {\r\n this._setupBreadcrumbs(this._activatedRoute.snapshot);\r\n\r\n this._router.events\r\n .pipe(\r\n takeUntilDestroyed(this._destroyRef),\r\n filter((event): event is GuardsCheckEnd => event instanceof GuardsCheckEnd))\r\n .subscribe((event) => {\r\n if (event.shouldActivate) {\r\n this._setupBreadcrumbs(event.state.root);\r\n }\r\n });\r\n }\r\n\r\n private _setupBreadcrumbs(activatedRouteSnapshot: ActivatedRouteSnapshot): void {\r\n this._previousBreadcrumbs = this._currentBreadcrumbs;\r\n const rootBreadcrumb = this._getRootBreadcrumb();\r\n this._currentBreadcrumbs = rootBreadcrumb ? [rootBreadcrumb] : [];\r\n this._prepareBreadcrumbList(activatedRouteSnapshot, this._baseHref);\r\n }\r\n\r\n private _getRootBreadcrumb(): CmatBreadcrumb | void {\r\n const rootConfig = this._router.config.find(config => config.path === '');\r\n const rootBreadcrumb = this._extractObject(rootConfig?.data?.['breadcrumb'] as CmatBreadcrumbConfig | undefined);\r\n const storeItem = this._getFromStore('/', rootBreadcrumb.alias);\r\n\r\n if (isNonEmpty(rootBreadcrumb) || isNonEmpty(storeItem as object | undefined)) {\r\n return {\r\n ...storeItem,\r\n ...rootBreadcrumb,\r\n routeLink: this._baseHref,\r\n ...this._getQueryParamsFromPreviousList('/'),\r\n };\r\n }\r\n }\r\n\r\n private _prepareBreadcrumbItem(\r\n activatedRouteSnapshot: ActivatedRouteSnapshot,\r\n routeLinkPrefix: string\r\n ): CmatBreadcrumbDefinition {\r\n const routeData = this._parseRouteData(\r\n activatedRouteSnapshot.routeConfig\r\n );\r\n\r\n if (!routeData) {\r\n return {\r\n label: '',\r\n routeLink: routeLinkPrefix,\r\n isAutoGeneratedLabel: true,\r\n };\r\n }\r\n\r\n const { path, breadcrumb } = routeData;\r\n\r\n const resolvedSegment = this._resolvePathSegment(path ?? '', activatedRouteSnapshot);\r\n const routeLink = `${routeLinkPrefix}${resolvedSegment}`;\r\n const storeItem = this._getFromStore(routeLink, breadcrumb.alias);\r\n\r\n const label = this._extractLabel(\r\n storeItem?.label ?? breadcrumb?.label ?? '',\r\n resolvedSegment\r\n );\r\n let isAutoGeneratedLabel = false;\r\n let autoGeneratedLabel = '';\r\n if (!label) {\r\n isAutoGeneratedLabel = true;\r\n autoGeneratedLabel = resolvedSegment;\r\n }\r\n\r\n return {\r\n ...storeItem,\r\n ...breadcrumb,\r\n label: isAutoGeneratedLabel ? autoGeneratedLabel : (label ?? ''),\r\n routeLink,\r\n isAutoGeneratedLabel,\r\n ...this._getQueryParamsFromPreviousList(routeLink),\r\n };\r\n }\r\n\r\n private _prepareBreadcrumbList(\r\n activatedRouteSnapshot: ActivatedRouteSnapshot,\r\n routeLinkPrefix: string\r\n ): CmatBreadcrumb[] | void {\r\n if (activatedRouteSnapshot.routeConfig?.path) {\r\n const breadcrumbItem = this._prepareBreadcrumbItem(\r\n activatedRouteSnapshot,\r\n routeLinkPrefix\r\n );\r\n this._currentBreadcrumbs.push(breadcrumbItem);\r\n\r\n if (activatedRouteSnapshot.firstChild) {\r\n return this._prepareBreadcrumbList(\r\n activatedRouteSnapshot.firstChild,\r\n breadcrumbItem.routeLink + '/'\r\n );\r\n }\r\n } else if (activatedRouteSnapshot.firstChild) {\r\n return this._prepareBreadcrumbList(\r\n activatedRouteSnapshot.firstChild,\r\n routeLinkPrefix\r\n );\r\n }\r\n const lastCrumb = this._currentBreadcrumbs[\r\n this._currentBreadcrumbs.length - 1\r\n ];\r\n this._setQueryParamsForActiveBreadcrumb(lastCrumb, activatedRouteSnapshot);\r\n const breadcrumbsToShow = this._currentBreadcrumbs.filter(\r\n item => !item.skip\r\n );\r\n this._breadcrumbs.set([...breadcrumbsToShow]);\r\n\r\n return void 0;\r\n }\r\n\r\n private _getFromStore(routeLink: string, alias?: string): CmatBreadcrumbDefinition | void {\r\n if (alias) {\r\n const aliasBreadcrumb = this._dynamicBreadcrumbStore.alias.get(alias);\r\n\r\n if (aliasBreadcrumb) {\r\n return aliasBreadcrumb;\r\n }\r\n }\r\n\r\n const routeLinkBreadcrumb = this._dynamicBreadcrumbStore.routeLink.get(routeLink);\r\n\r\n if (routeLinkBreadcrumb) {\r\n return routeLinkBreadcrumb;\r\n }\r\n\r\n for (const breadcrumb of this._dynamicBreadcrumbStore.routeRegex.values()) {\r\n if (this._matchRegex(routeLink, breadcrumb.routeRegex)) {\r\n return breadcrumb;\r\n }\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n \r\n private _matchRegex(routeLink?: string, routeRegex?: string): boolean | null {\r\n if (routeRegex && routeLink) {\r\n const match = new RegExp(routeRegex).exec(routeLink);\r\n return match?.[0] === routeLink;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n \r\n private _resolvePathSegment(segment: string, activatedRouteSnapshot: ActivatedRouteSnapshot): string {\r\n if (segment.includes(PATH_PARAM.PREFIX)) {\r\n Object.entries(activatedRouteSnapshot.params).forEach(([key, value]) => {\r\n segment = segment.replace(`:${key}`, `${value}`);\r\n });\r\n }\r\n return segment;\r\n }\r\n\r\n \r\n private _getQueryParamsFromPreviousList(routeLink: string): CmatBreadcrumb {\r\n const { queryParams, fragment } =\r\n this._previousBreadcrumbs.find(item => item.routeLink === routeLink) ??\r\n {};\r\n return { queryParams, fragment };\r\n }\r\n\r\n \r\n private _setQueryParamsForActiveBreadcrumb(\r\n lastItem: CmatBreadcrumb,\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): void {\r\n if (lastItem) {\r\n const { queryParams, fragment } = activatedRouteSnapshot;\r\n lastItem.queryParams = queryParams ? { ...queryParams } : undefined;\r\n lastItem.fragment = fragment ?? void 0;\r\n }\r\n }\r\n\r\n \r\n private _parseRouteData(routeConfig: Route | null): CmatBreadcrumbRouteData | void {\r\n if (!routeConfig) {\r\n return void 0;\r\n }\r\n\r\n const { path, data } = routeConfig;\r\n const breadcrumb = this._mergeWithBaseChildData(\r\n routeConfig,\r\n data?.['breadcrumb'] as BreadcrumbRouteDataInput\r\n );\r\n\r\n return { path, breadcrumb };\r\n }\r\n\r\n \r\n private _mergeWithBaseChildData(\r\n routeConfig: CmatBreadcrumbRouteConfig | null,\r\n config: BreadcrumbRouteDataInput\r\n ): CmatBreadcrumbObject {\r\n if (!routeConfig) {\r\n return this._extractObject(config);\r\n }\r\n\r\n let baseChild: Route | void = void 0;\r\n if (routeConfig.loadChildren) {\r\n baseChild = routeConfig._loadedRoutes?.find(route => route.path === '');\r\n } else if (routeConfig.children) {\r\n baseChild = routeConfig.children.find(route => route.path === '');\r\n }\r\n\r\n const childConfig = baseChild?.data?.['breadcrumb'] as BreadcrumbRouteDataInput;\r\n return childConfig\r\n ? this._mergeWithBaseChildData(baseChild ?? null, {\r\n ...this._extractObject(config),\r\n ...this._extractObject(childConfig),\r\n })\r\n : this._extractObject(config);\r\n }\r\n\r\n \r\n private _updateStore(key: StoreMatcherKey, breadcrumb: CmatBreadcrumbDefinition): void {\r\n if (key === 'alias' && breadcrumb.alias) {\r\n this._dynamicBreadcrumbStore.alias.set(breadcrumb.alias, { ...this._dynamicBreadcrumbStore.alias.get(breadcrumb.alias), ...breadcrumb });\r\n return;\r\n }\r\n\r\n if (key === 'routeLink' && breadcrumb.routeLink) {\r\n this._dynamicBreadcrumbStore.routeLink.set(breadcrumb.routeLink, { ...this._dynamicBreadcrumbStore.routeLink.get(breadcrumb.routeLink), ...breadcrumb });\r\n return;\r\n }\r\n\r\n if (key === 'routeRegex' && breadcrumb.routeRegex) {\r\n this._dynamicBreadcrumbStore.routeRegex.set(breadcrumb.routeRegex, { ...this._dynamicBreadcrumbStore.routeRegex.get(breadcrumb.routeRegex), ...breadcrumb });\r\n }\r\n }\r\n\r\n \r\n private _updateCurrentBreadcrumbs(\r\n key: StoreMatcherKey,\r\n breadcrumb: CmatBreadcrumbDefinition\r\n ): void {\r\n const itemIndex = this._currentBreadcrumbs.findIndex((item) => {\r\n if (key === 'routeRegex') {\r\n return this._matchRegex(item.routeLink, breadcrumb.routeRegex);\r\n }\r\n\r\n if (key === 'alias') {\r\n return item.alias === breadcrumb.alias;\r\n }\r\n\r\n return item.routeLink === breadcrumb.routeLink;\r\n });\r\n\r\n if (itemIndex > -1) {\r\n this._currentBreadcrumbs[itemIndex] = {\r\n ...this._currentBreadcrumbs[itemIndex],\r\n ...breadcrumb,\r\n };\r\n this._publishCurrentBreadcrumbs();\r\n }\r\n }\r\n\r\n \r\n private _buildRegex(path: string): string {\r\n return this._ensureLeadingSlash(path).replace(\r\n new RegExp(PATH_PARAM.REGEX_IDENTIFIER, 'g'),\r\n PATH_PARAM.REGEX_REPLACER\r\n );\r\n }\r\n\r\n private _ensureLeadingSlash(path: string): string {\r\n return path.startsWith('/') ? path : `/${path}`;\r\n }\r\n\r\n \r\n private _extractLabel(config: CmatBreadcrumbConfig | undefined, resolvedParam?: string): string | undefined {\r\n if (!config) {\r\n return undefined;\r\n }\r\n\r\n const label = typeof config === 'object' ? config.label : config;\r\n if (typeof label === 'function') {\r\n return label(resolvedParam);\r\n }\r\n return label;\r\n }\r\n\r\n private _extractObject(config: CmatBreadcrumbConfig | undefined): CmatBreadcrumbObject {\r\n if (\r\n config &&\r\n (typeof config === 'string' || typeof config === 'function')\r\n ) {\r\n return { label: config };\r\n }\r\n return (config as CmatBreadcrumbObject) || {};\r\n }\r\n\r\n private _publishCurrentBreadcrumbs(): void {\r\n this._breadcrumbs.set(this._currentBreadcrumbs.filter(item => !item.skip));\r\n }\r\n}\r\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation, computed, inject, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { RouterLink } from '@angular/router';\r\nimport { CmatBreadcrumbItemDirective } from './breadcrumb-item.directive';\r\nimport { CmatBreadcrumbDefinition, CmatBreadcrumbService } from './breadcrumb.service';\r\nimport { CmatBreadcrumbFunction } from './types/breadcrumb.config';\r\n\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\n\r\ninterface CmatBreadcrumbTemplateContext {\r\n $implicit: string | undefined | CmatBreadcrumbFunction;\r\n info: unknown;\r\n last: boolean;\r\n first: boolean;\r\n index: number;\r\n count: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatBreadcrumb',\r\n imports: [NgClass, RouterLink, NgTemplateOutlet]\r\n})\r\nexport class CmatBreadcrumbComponent {\r\n @ContentChild(CmatBreadcrumbItemDirective, { static: false, read: TemplateRef })\r\n itemTemplate: TemplateRef<CmatBreadcrumbTemplateContext> | null = null;\r\n\r\n\r\n @Input()\r\n set autoGenerate(value: boolean) {\r\n this._autoGenerate.set(value);\r\n }\r\n\r\n get autoGenerate(): boolean {\r\n return this._autoGenerate();\r\n }\r\n\r\n\r\n @Input() preserveQueryParams = true;\r\n\r\n\r\n @Input() preserveFragment = true;\r\n\r\n\r\n @Input() class = '';\r\n\r\n\r\n @Input() anchorTarget: '_blank' | void;\r\n\r\n separatorTemplate: TemplateRef<void> | null = null;\r\n\r\n readonly breadcrumbs = computed(() => {\r\n const breadcrumbs = this._breadcrumbItems();\r\n\r\n if (this._autoGenerate()) {\r\n return breadcrumbs;\r\n }\r\n\r\n return breadcrumbs.filter(breadcrumb => !breadcrumb.isAutoGeneratedLabel);\r\n });\r\n\r\n private readonly _breadcrumbService = inject(CmatBreadcrumbService);\r\n private readonly _autoGenerate = signal(true);\r\n private readonly _breadcrumbItems = toSignal(this._breadcrumbService.breadcrumbs$, { initialValue: [] as CmatBreadcrumbDefinition[] });\r\n @Input()\r\n set separator(value: string | void) {\r\n this._separator = value;\r\n }\r\n\r\n get separator(): string | void {\r\n return this._separator;\r\n }\r\n\r\n private _separator: string | void = '/';\r\n}\r\n","<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 [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" [routerLink]=\"\r\n breadcrumb.routeInterceptor\r\n ? breadcrumb.routeInterceptor( breadcrumb,breadcrumb.routeLink)\r\n : breadcrumb.routeLink\" [queryParams]=\"preserveQueryParams ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget ? anchorTarget : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\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>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-breadcrumb.mjs","sources":["../../../projects/cmat/components/breadcrumb/breadcrumb-item.directive.ts","../../../projects/cmat/components/breadcrumb/breadcrumb.service.ts","../../../projects/cmat/components/breadcrumb/breadcrumb.component.ts","../../../projects/cmat/components/breadcrumb/breadcrumb.component.html","../../../projects/cmat/components/breadcrumb/cmat-components-breadcrumb.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[cmatBreadcrumbItem]'\r\n})\r\nexport class CmatBreadcrumbItemDirective {\r\n}\r\n","import { DestroyRef, Injectable, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, GuardsCheckEnd, Route, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatBreadcrumb } from './types/breadcrumb';\r\nimport { CmatBreadcrumbFunction, CmatBreadcrumbObject } from './types/breadcrumb.config';\r\n\r\ntype CmatBreadcrumbConfig = CmatBreadcrumbObject | CmatBreadcrumbFunction | string;\r\ntype StoreMatcherKey = 'routeLink' | 'routeRegex' | 'alias';\r\nexport type CmatBreadcrumbDefinition = CmatBreadcrumb & CmatBreadcrumbObject;\r\n\r\ninterface CmatBreadcrumbRouteConfig {\r\n path?: string | null;\r\n loadChildren?: unknown;\r\n _loadedRoutes?: Route[];\r\n data?: {\r\n breadcrumb?: CmatBreadcrumbConfig;\r\n };\r\n children?: Route[];\r\n}\r\n\r\ninterface CmatBreadcrumbRouteData {\r\n path?: string;\r\n breadcrumb: CmatBreadcrumbObject;\r\n}\r\n\r\ntype BreadcrumbRouteDataInput = CmatBreadcrumbConfig | undefined;\r\n\r\ninterface CmatBreadcrumbStore {\r\n alias: Map<string, CmatBreadcrumbDefinition>;\r\n routeLink: Map<string, CmatBreadcrumbDefinition>;\r\n routeRegex: Map<string, CmatBreadcrumbDefinition>;\r\n}\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nconst PATH_PARAM = {\r\n PREFIX: ':',\r\n REGEX_IDENTIFIER: '/:[^/]+',\r\n REGEX_REPLACER: '/[^/]+',\r\n};\r\n\r\n\r\nconst ALIAS_PREFIX = '@';\r\nconst isNonEmpty = (obj: object | undefined): boolean => !!obj && Object.keys(obj).length > 0;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CmatBreadcrumbService {\r\n private _activatedRoute = inject(ActivatedRoute);\r\n private _router = inject(Router);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _baseHref = '/';\r\n\r\n \r\n private readonly _dynamicBreadcrumbStore: CmatBreadcrumbStore = {\r\n alias: new Map<string, CmatBreadcrumbDefinition>(),\r\n routeLink: new Map<string, CmatBreadcrumbDefinition>(),\r\n routeRegex: new Map<string, CmatBreadcrumbDefinition>(),\r\n };\r\n\r\n \r\n private _currentBreadcrumbs: CmatBreadcrumbDefinition[] = [];\r\n private _previousBreadcrumbs: CmatBreadcrumbDefinition[] = [];\r\n\r\n \r\n private _breadcrumbs = signal<CmatBreadcrumbDefinition[]>([]);\r\n private readonly _breadcrumbs$ = toObservable(this._breadcrumbs);\r\n\r\n \r\n\r\n constructor() {\r\n this._detectRouteChanges();\r\n }\r\n\r\n get breadcrumbs$(): Observable<CmatBreadcrumbDefinition[]> {\r\n return this._breadcrumbs$;\r\n }\r\n\r\n \r\n set(key: string, breadcrumb: string | CmatBreadcrumbObject): void {\r\n const breadcrumbObject = this._extractObject(breadcrumb);\r\n let updateArgs: [StoreMatcherKey, CmatBreadcrumbDefinition];\r\n\r\n if (key.startsWith(ALIAS_PREFIX)) {\r\n updateArgs = ['alias', { ...breadcrumbObject, alias: key.slice(1) }];\r\n } else if (key.includes(PATH_PARAM.PREFIX)) {\r\n updateArgs = [\r\n 'routeRegex',\r\n { ...breadcrumbObject, routeRegex: this._buildRegex(key) },\r\n ];\r\n } else {\r\n updateArgs = [\r\n 'routeLink',\r\n { ...breadcrumbObject, routeLink: this._ensureLeadingSlash(key) },\r\n ];\r\n }\r\n updateArgs[1].isAutoGeneratedLabel = false;\r\n\r\n this._updateStore(...updateArgs);\r\n this._updateCurrentBreadcrumbs(...updateArgs);\r\n }\r\n\r\n\r\n\r\n \r\n private _detectRouteChanges(): void {\r\n this._setupBreadcrumbs(this._activatedRoute.snapshot);\r\n\r\n this._router.events\r\n .pipe(\r\n takeUntilDestroyed(this._destroyRef),\r\n filter((event): event is GuardsCheckEnd => event instanceof GuardsCheckEnd))\r\n .subscribe((event) => {\r\n if (event.shouldActivate) {\r\n this._setupBreadcrumbs(event.state.root);\r\n }\r\n });\r\n }\r\n\r\n private _setupBreadcrumbs(activatedRouteSnapshot: ActivatedRouteSnapshot): void {\r\n this._previousBreadcrumbs = this._currentBreadcrumbs;\r\n const rootBreadcrumb = this._getRootBreadcrumb();\r\n this._currentBreadcrumbs = rootBreadcrumb ? [rootBreadcrumb] : [];\r\n this._prepareBreadcrumbList(activatedRouteSnapshot, this._baseHref);\r\n }\r\n\r\n private _getRootBreadcrumb(): CmatBreadcrumb | void {\r\n const rootConfig = this._router.config.find(config => config.path === '');\r\n const rootBreadcrumb = this._extractObject(rootConfig?.data?.['breadcrumb'] as CmatBreadcrumbConfig | undefined);\r\n const storeItem = this._getFromStore('/', rootBreadcrumb.alias);\r\n\r\n if (isNonEmpty(rootBreadcrumb) || isNonEmpty(storeItem as object | undefined)) {\r\n return {\r\n ...storeItem,\r\n ...rootBreadcrumb,\r\n routeLink: this._baseHref,\r\n ...this._getQueryParamsFromPreviousList('/'),\r\n };\r\n }\r\n }\r\n\r\n private _prepareBreadcrumbItem(\r\n activatedRouteSnapshot: ActivatedRouteSnapshot,\r\n routeLinkPrefix: string\r\n ): CmatBreadcrumbDefinition {\r\n const routeData = this._parseRouteData(\r\n activatedRouteSnapshot.routeConfig\r\n );\r\n\r\n if (!routeData) {\r\n return {\r\n label: '',\r\n routeLink: routeLinkPrefix,\r\n isAutoGeneratedLabel: true,\r\n };\r\n }\r\n\r\n const { path, breadcrumb } = routeData;\r\n\r\n const resolvedSegment = this._resolvePathSegment(path ?? '', activatedRouteSnapshot);\r\n const routeLink = `${routeLinkPrefix}${resolvedSegment}`;\r\n const storeItem = this._getFromStore(routeLink, breadcrumb.alias);\r\n\r\n const label = this._extractLabel(\r\n storeItem?.label ?? breadcrumb?.label ?? '',\r\n resolvedSegment\r\n );\r\n let isAutoGeneratedLabel = false;\r\n let autoGeneratedLabel = '';\r\n if (!label) {\r\n isAutoGeneratedLabel = true;\r\n autoGeneratedLabel = resolvedSegment;\r\n }\r\n\r\n return {\r\n ...storeItem,\r\n ...breadcrumb,\r\n label: isAutoGeneratedLabel ? autoGeneratedLabel : (label ?? ''),\r\n routeLink,\r\n isAutoGeneratedLabel,\r\n ...this._getQueryParamsFromPreviousList(routeLink),\r\n };\r\n }\r\n\r\n private _prepareBreadcrumbList(\r\n activatedRouteSnapshot: ActivatedRouteSnapshot,\r\n routeLinkPrefix: string\r\n ): CmatBreadcrumb[] | void {\r\n if (activatedRouteSnapshot.routeConfig?.path) {\r\n const breadcrumbItem = this._prepareBreadcrumbItem(\r\n activatedRouteSnapshot,\r\n routeLinkPrefix\r\n );\r\n this._currentBreadcrumbs.push(breadcrumbItem);\r\n\r\n if (activatedRouteSnapshot.firstChild) {\r\n return this._prepareBreadcrumbList(\r\n activatedRouteSnapshot.firstChild,\r\n breadcrumbItem.routeLink + '/'\r\n );\r\n }\r\n } else if (activatedRouteSnapshot.firstChild) {\r\n return this._prepareBreadcrumbList(\r\n activatedRouteSnapshot.firstChild,\r\n routeLinkPrefix\r\n );\r\n }\r\n const lastCrumb = this._currentBreadcrumbs[\r\n this._currentBreadcrumbs.length - 1\r\n ];\r\n this._setQueryParamsForActiveBreadcrumb(lastCrumb, activatedRouteSnapshot);\r\n const breadcrumbsToShow = this._currentBreadcrumbs.filter(\r\n item => !item.skip\r\n );\r\n this._breadcrumbs.set([...breadcrumbsToShow]);\r\n\r\n return void 0;\r\n }\r\n\r\n private _getFromStore(routeLink: string, alias?: string): CmatBreadcrumbDefinition | void {\r\n if (alias) {\r\n const aliasBreadcrumb = this._dynamicBreadcrumbStore.alias.get(alias);\r\n\r\n if (aliasBreadcrumb) {\r\n return aliasBreadcrumb;\r\n }\r\n }\r\n\r\n const routeLinkBreadcrumb = this._dynamicBreadcrumbStore.routeLink.get(routeLink);\r\n\r\n if (routeLinkBreadcrumb) {\r\n return routeLinkBreadcrumb;\r\n }\r\n\r\n for (const breadcrumb of this._dynamicBreadcrumbStore.routeRegex.values()) {\r\n if (this._matchRegex(routeLink, breadcrumb.routeRegex)) {\r\n return breadcrumb;\r\n }\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n \r\n private _matchRegex(routeLink?: string, routeRegex?: string): boolean | null {\r\n if (routeRegex && routeLink) {\r\n const match = new RegExp(routeRegex).exec(routeLink);\r\n return match?.[0] === routeLink;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n \r\n private _resolvePathSegment(segment: string, activatedRouteSnapshot: ActivatedRouteSnapshot): string {\r\n if (segment.includes(PATH_PARAM.PREFIX)) {\r\n Object.entries(activatedRouteSnapshot.params).forEach(([key, value]) => {\r\n segment = segment.replace(`:${key}`, `${value}`);\r\n });\r\n }\r\n return segment;\r\n }\r\n\r\n \r\n private _getQueryParamsFromPreviousList(routeLink: string): CmatBreadcrumb {\r\n const { queryParams, fragment } =\r\n this._previousBreadcrumbs.find(item => item.routeLink === routeLink) ??\r\n {};\r\n return { queryParams, fragment };\r\n }\r\n\r\n \r\n private _setQueryParamsForActiveBreadcrumb(\r\n lastItem: CmatBreadcrumb,\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): void {\r\n if (lastItem) {\r\n const { queryParams, fragment } = activatedRouteSnapshot;\r\n lastItem.queryParams = queryParams ? { ...queryParams } : undefined;\r\n lastItem.fragment = fragment ?? void 0;\r\n }\r\n }\r\n\r\n \r\n private _parseRouteData(routeConfig: Route | null): CmatBreadcrumbRouteData | void {\r\n if (!routeConfig) {\r\n return void 0;\r\n }\r\n\r\n const { path, data } = routeConfig;\r\n const breadcrumb = this._mergeWithBaseChildData(\r\n routeConfig,\r\n data?.['breadcrumb'] as BreadcrumbRouteDataInput\r\n );\r\n\r\n return { path, breadcrumb };\r\n }\r\n\r\n \r\n private _mergeWithBaseChildData(\r\n routeConfig: CmatBreadcrumbRouteConfig | null,\r\n config: BreadcrumbRouteDataInput\r\n ): CmatBreadcrumbObject {\r\n if (!routeConfig) {\r\n return this._extractObject(config);\r\n }\r\n\r\n let baseChild: Route | void = void 0;\r\n if (routeConfig.loadChildren) {\r\n baseChild = routeConfig._loadedRoutes?.find(route => route.path === '');\r\n } else if (routeConfig.children) {\r\n baseChild = routeConfig.children.find(route => route.path === '');\r\n }\r\n\r\n const childConfig = baseChild?.data?.['breadcrumb'] as BreadcrumbRouteDataInput;\r\n return childConfig\r\n ? this._mergeWithBaseChildData(baseChild ?? null, {\r\n ...this._extractObject(config),\r\n ...this._extractObject(childConfig),\r\n })\r\n : this._extractObject(config);\r\n }\r\n\r\n \r\n private _updateStore(key: StoreMatcherKey, breadcrumb: CmatBreadcrumbDefinition): void {\r\n if (key === 'alias' && breadcrumb.alias) {\r\n this._dynamicBreadcrumbStore.alias.set(breadcrumb.alias, { ...this._dynamicBreadcrumbStore.alias.get(breadcrumb.alias), ...breadcrumb });\r\n return;\r\n }\r\n\r\n if (key === 'routeLink' && breadcrumb.routeLink) {\r\n this._dynamicBreadcrumbStore.routeLink.set(breadcrumb.routeLink, { ...this._dynamicBreadcrumbStore.routeLink.get(breadcrumb.routeLink), ...breadcrumb });\r\n return;\r\n }\r\n\r\n if (key === 'routeRegex' && breadcrumb.routeRegex) {\r\n this._dynamicBreadcrumbStore.routeRegex.set(breadcrumb.routeRegex, { ...this._dynamicBreadcrumbStore.routeRegex.get(breadcrumb.routeRegex), ...breadcrumb });\r\n }\r\n }\r\n\r\n \r\n private _updateCurrentBreadcrumbs(\r\n key: StoreMatcherKey,\r\n breadcrumb: CmatBreadcrumbDefinition\r\n ): void {\r\n const itemIndex = this._currentBreadcrumbs.findIndex((item) => {\r\n if (key === 'routeRegex') {\r\n return this._matchRegex(item.routeLink, breadcrumb.routeRegex);\r\n }\r\n\r\n if (key === 'alias') {\r\n return item.alias === breadcrumb.alias;\r\n }\r\n\r\n return item.routeLink === breadcrumb.routeLink;\r\n });\r\n\r\n if (itemIndex > -1) {\r\n this._currentBreadcrumbs[itemIndex] = {\r\n ...this._currentBreadcrumbs[itemIndex],\r\n ...breadcrumb,\r\n };\r\n this._publishCurrentBreadcrumbs();\r\n }\r\n }\r\n\r\n \r\n private _buildRegex(path: string): string {\r\n return this._ensureLeadingSlash(path).replace(\r\n new RegExp(PATH_PARAM.REGEX_IDENTIFIER, 'g'),\r\n PATH_PARAM.REGEX_REPLACER\r\n );\r\n }\r\n\r\n private _ensureLeadingSlash(path: string): string {\r\n return path.startsWith('/') ? path : `/${path}`;\r\n }\r\n\r\n \r\n private _extractLabel(config: CmatBreadcrumbConfig | undefined, resolvedParam?: string): string | undefined {\r\n if (!config) {\r\n return undefined;\r\n }\r\n\r\n const label = typeof config === 'object' ? config.label : config;\r\n if (typeof label === 'function') {\r\n return label(resolvedParam);\r\n }\r\n return label;\r\n }\r\n\r\n private _extractObject(config: CmatBreadcrumbConfig | undefined): CmatBreadcrumbObject {\r\n if (\r\n config &&\r\n (typeof config === 'string' || typeof config === 'function')\r\n ) {\r\n return { label: config };\r\n }\r\n return (config as CmatBreadcrumbObject) || {};\r\n }\r\n\r\n private _publishCurrentBreadcrumbs(): void {\r\n this._breadcrumbs.set(this._currentBreadcrumbs.filter(item => !item.skip));\r\n }\r\n}\r\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation, computed, inject, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { RouterLink } from '@angular/router';\r\nimport { CmatBreadcrumbItemDirective } from './breadcrumb-item.directive';\r\nimport { CmatBreadcrumbDefinition, CmatBreadcrumbService } from './breadcrumb.service';\r\nimport { CmatBreadcrumbFunction } from './types/breadcrumb.config';\r\n\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\n\r\ninterface CmatBreadcrumbTemplateContext {\r\n $implicit: string | undefined | CmatBreadcrumbFunction;\r\n info: unknown;\r\n last: boolean;\r\n first: boolean;\r\n index: number;\r\n count: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatBreadcrumb',\r\n imports: [NgClass, RouterLink, NgTemplateOutlet]\r\n})\r\nexport class CmatBreadcrumbComponent {\r\n @ContentChild(CmatBreadcrumbItemDirective, { static: false, read: TemplateRef })\r\n itemTemplate: TemplateRef<CmatBreadcrumbTemplateContext> | null = null;\r\n\r\n\r\n @Input()\r\n set autoGenerate(value: boolean) {\r\n this._autoGenerate.set(value);\r\n }\r\n\r\n get autoGenerate(): boolean {\r\n return this._autoGenerate();\r\n }\r\n\r\n\r\n @Input() preserveQueryParams = true;\r\n\r\n\r\n @Input() preserveFragment = true;\r\n\r\n\r\n @Input() class = '';\r\n\r\n\r\n @Input() anchorTarget: '_blank' | void;\r\n\r\n separatorTemplate: TemplateRef<void> | null = null;\r\n\r\n readonly breadcrumbs = computed(() => {\r\n const breadcrumbs = this._breadcrumbItems();\r\n\r\n if (this._autoGenerate()) {\r\n return breadcrumbs;\r\n }\r\n\r\n return breadcrumbs.filter(breadcrumb => !breadcrumb.isAutoGeneratedLabel);\r\n });\r\n\r\n private readonly _breadcrumbService = inject(CmatBreadcrumbService);\r\n private readonly _autoGenerate = signal(true);\r\n private readonly _breadcrumbItems = toSignal(this._breadcrumbService.breadcrumbs$, { initialValue: [] as CmatBreadcrumbDefinition[] });\r\n @Input()\r\n set separator(value: string | void) {\r\n this._separator = value;\r\n }\r\n\r\n get separator(): string | void {\r\n return this._separator;\r\n }\r\n\r\n private _separator: string | void = '/';\r\n}\r\n","<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 [attr.tabIndex]=\"breadcrumb.disable ? -1 : 0\" [routerLink]=\"\r\n breadcrumb.routeInterceptor\r\n ? breadcrumb.routeInterceptor( breadcrumb,breadcrumb.routeLink)\r\n : breadcrumb.routeLink\" [queryParams]=\"preserveQueryParams ? breadcrumb.queryParams : undefined\"\r\n [fragment]=\"preserveFragment ? breadcrumb.fragment : undefined\"\r\n [target]=\"anchorTarget ? anchorTarget : '_self'\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\r\n }\r\n </a>\r\n }\r\n @if (isLast) {\r\n <span class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: breadcrumb.label, info: breadcrumb.info, last: isLast, first: isFirst, index: index, count: count }\"></ng-container>\r\n @if (!itemTemplate) {\r\n {{\r\n breadcrumb.label\r\n }}\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>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -26,10 +26,10 @@ class CmatCardComponent {
26
26
  this.flippable = coerceBooleanProperty(changes['flippable'].currentValue);
27
27
  }
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CmatCardComponent, isStandalone: true, selector: "cmat-card", inputs: { expanded: "expanded", face: "face", flippable: "flippable" }, host: { properties: { "class": "this.classList" } }, exportAs: ["cmatCard"], usesOnChanges: true, ngImport: i0, template: "\r\n@if (flippable) {\r\n\r\n<div class=\"cmat-card-front\">\r\n <ng-content select=\"[cmatCardFront]\"></ng-content>\r\n</div>\r\n\r\n<div class=\"cmat-card-back overflow-y-auto scrollbar-custom\">\r\n <ng-content select=\"[cmatCardBack]\"></ng-content>\r\n</div>\r\n}\r\n\r\n\r\n@if (!flippable) {\r\n\r\n<ng-content></ng-content>\r\n\r\n@if (expanded) {\r\n<div class=\"cmat-card-expansion expand-collapse-animation\" animate.leave=\"expand-collapse-animation-leaving\">\r\n <div>\r\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\r\n </div>\r\n</div>\r\n}\r\n}", styles: ["cmat-card{position:relative;display:flex;overflow:hidden;border-radius:1rem}cmat-card.cmat-card-flippable{border-width:0!important;border-radius:1rem;overflow:visible;transform-style:preserve-3d;transition:transform 1s;perspective:600px;background:transparent!important}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-back{visibility:visible;opacity:1;transform:rotateY(360deg)}cmat-card.cmat-card-flippable .cmat-card-front,cmat-card.cmat-card-flippable .cmat-card-back{display:flex;flex-direction:column;flex:1 1 auto;z-index:10;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;backface-visibility:hidden;border-radius:1rem}cmat-card.cmat-card-flippable .cmat-card-front{position:relative;opacity:1;visibility:visible;transform:rotateY(0);overflow:hidden}cmat-card.cmat-card-flippable .cmat-card-back{position:absolute;inset:0;opacity:0;visibility:hidden;transform:rotateY(180deg)}\n", ".expand-collapse-animation{display:grid!important;grid-template-rows:1fr;overflow:hidden;transition:grid-template-rows 225ms cubic-bezier(.4,0,.2,1)}@starting-style{.expand-collapse-animation{grid-template-rows:0fr}}.expand-collapse-animation>div{min-height:0;transition:opacity 225ms ease-in-out}.expand-collapse-animation.collapsed{grid-template-rows:0fr}.expand-collapse-animation.collapsed>div{opacity:0}.expand-collapse-animation-leaving{grid-template-rows:0fr}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: CmatCardComponent, isStandalone: true, selector: "cmat-card", inputs: { expanded: "expanded", face: "face", flippable: "flippable" }, host: { properties: { "class": "this.classList" } }, exportAs: ["cmatCard"], usesOnChanges: true, ngImport: i0, template: "\r\n@if (flippable) {\r\n\r\n<div class=\"cmat-card-front\">\r\n <ng-content select=\"[cmatCardFront]\"></ng-content>\r\n</div>\r\n\r\n<div class=\"cmat-card-back overflow-y-auto scrollbar-custom\">\r\n <ng-content select=\"[cmatCardBack]\"></ng-content>\r\n</div>\r\n}\r\n\r\n\r\n@if (!flippable) {\r\n\r\n<ng-content></ng-content>\r\n\r\n@if (expanded) {\r\n<div class=\"cmat-card-expansion expand-collapse-animation\" animate.leave=\"expand-collapse-animation-leaving\">\r\n <div>\r\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\r\n </div>\r\n</div>\r\n}\r\n}", styles: ["cmat-card{position:relative;display:flex;overflow:hidden;border-radius:1rem}cmat-card.cmat-card-flippable{border-width:0!important;border-radius:1rem;overflow:visible;transform-style:preserve-3d;transition:transform 1s;perspective:600px;background:transparent!important}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-back{visibility:visible;opacity:1;transform:rotateY(360deg)}cmat-card.cmat-card-flippable .cmat-card-front,cmat-card.cmat-card-flippable .cmat-card-back{display:flex;flex-direction:column;flex:1 1 auto;z-index:10;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;backface-visibility:hidden;border-radius:1rem}cmat-card.cmat-card-flippable .cmat-card-front{position:relative;opacity:1;visibility:visible;transform:rotateY(0);overflow:hidden}cmat-card.cmat-card-flippable .cmat-card-back{position:absolute;inset:0;opacity:0;visibility:hidden;transform:rotateY(180deg)}\n", ".expand-collapse-animation{display:grid!important;grid-template-rows:1fr;overflow:hidden;transition:grid-template-rows 225ms cubic-bezier(.4,0,.2,1)}@starting-style{.expand-collapse-animation{grid-template-rows:0fr}}.expand-collapse-animation>div{min-height:0;transition:opacity 225ms ease-in-out}.expand-collapse-animation.collapsed{grid-template-rows:0fr}.expand-collapse-animation.collapsed>div{opacity:0}.expand-collapse-animation-leaving{grid-template-rows:0fr}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatCardComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatCardComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'cmat-card', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCard', imports: [], template: "\r\n@if (flippable) {\r\n\r\n<div class=\"cmat-card-front\">\r\n <ng-content select=\"[cmatCardFront]\"></ng-content>\r\n</div>\r\n\r\n<div class=\"cmat-card-back overflow-y-auto scrollbar-custom\">\r\n <ng-content select=\"[cmatCardBack]\"></ng-content>\r\n</div>\r\n}\r\n\r\n\r\n@if (!flippable) {\r\n\r\n<ng-content></ng-content>\r\n\r\n@if (expanded) {\r\n<div class=\"cmat-card-expansion expand-collapse-animation\" animate.leave=\"expand-collapse-animation-leaving\">\r\n <div>\r\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\r\n </div>\r\n</div>\r\n}\r\n}", styles: ["cmat-card{position:relative;display:flex;overflow:hidden;border-radius:1rem}cmat-card.cmat-card-flippable{border-width:0!important;border-radius:1rem;overflow:visible;transform-style:preserve-3d;transition:transform 1s;perspective:600px;background:transparent!important}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-back{visibility:visible;opacity:1;transform:rotateY(360deg)}cmat-card.cmat-card-flippable .cmat-card-front,cmat-card.cmat-card-flippable .cmat-card-back{display:flex;flex-direction:column;flex:1 1 auto;z-index:10;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;backface-visibility:hidden;border-radius:1rem}cmat-card.cmat-card-flippable .cmat-card-front{position:relative;opacity:1;visibility:visible;transform:rotateY(0);overflow:hidden}cmat-card.cmat-card-flippable .cmat-card-back{position:absolute;inset:0;opacity:0;visibility:hidden;transform:rotateY(180deg)}\n", ".expand-collapse-animation{display:grid!important;grid-template-rows:1fr;overflow:hidden;transition:grid-template-rows 225ms cubic-bezier(.4,0,.2,1)}@starting-style{.expand-collapse-animation{grid-template-rows:0fr}}.expand-collapse-animation>div{min-height:0;transition:opacity 225ms ease-in-out}.expand-collapse-animation.collapsed{grid-template-rows:0fr}.expand-collapse-animation.collapsed>div{opacity:0}.expand-collapse-animation-leaving{grid-template-rows:0fr}\n"] }]
35
35
  }], propDecorators: { expanded: [{
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-card.mjs","sources":["../../../projects/cmat/components/card/card.component.ts","../../../projects/cmat/components/card/card.component.html","../../../projects/cmat/components/card/cmat-components-card.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CmatCardFace } from './card.types';\r\n\r\n@Component({\r\n selector: 'cmat-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss', '../../animations/expand-collapse.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCard',\r\n imports: []\r\n})\r\nexport class CmatCardComponent implements OnChanges {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n static ngAcceptInputType_expanded: BooleanInput;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n static ngAcceptInputType_flippable: BooleanInput;\r\n\r\n @Input() expanded: boolean = false;\r\n @Input() face: CmatCardFace = 'front';\r\n @Input() flippable: boolean = false;\r\n @HostBinding('class') get classList(): Record<string, boolean> {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n return {\r\n 'cmat-card-expanded': this.expanded,\r\n 'cmat-card-face-back': this.flippable && this.face === 'back',\r\n 'cmat-card-face-front': this.flippable && this.face === 'front',\r\n 'cmat-card-flippable': this.flippable\r\n };\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('expanded' in changes) {\r\n this.expanded = coerceBooleanProperty(changes['expanded'].currentValue);\r\n }\r\n if ('flippable' in changes) {\r\n this.flippable = coerceBooleanProperty(changes['flippable'].currentValue);\r\n }\r\n }\r\n}","\r\n@if (flippable) {\r\n\r\n<div class=\"cmat-card-front\">\r\n <ng-content select=\"[cmatCardFront]\"></ng-content>\r\n</div>\r\n\r\n<div class=\"cmat-card-back overflow-y-auto scrollbar-custom\">\r\n <ng-content select=\"[cmatCardBack]\"></ng-content>\r\n</div>\r\n}\r\n\r\n\r\n@if (!flippable) {\r\n\r\n<ng-content></ng-content>\r\n\r\n@if (expanded) {\r\n<div class=\"cmat-card-expansion expand-collapse-animation\" animate.leave=\"expand-collapse-animation-leaving\">\r\n <div>\r\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\r\n </div>\r\n</div>\r\n}\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,iBAAiB,CAAA;AAT9B,IAAA,WAAA,GAAA;QAea,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,IAAI,GAAiB,OAAO;QAC5B,IAAA,CAAA,SAAS,GAAY,KAAK;AAoBtC,IAAA;AAnBG,IAAA,IAA0B,SAAS,GAAA;;QAE/B,OAAO;YACH,oBAAoB,EAAE,IAAI,CAAC,QAAQ;YACnC,qBAAqB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAC7D,sBAAsB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAC/D,qBAAqB,EAAE,IAAI,CAAC;SAC/B;;IAEL;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,UAAU,IAAI,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC;QAC3E;AACA,QAAA,IAAI,WAAW,IAAI,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;QAC7E;IACJ;8GA3BS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,+OCb9B,wkBAwBC,EAAA,MAAA,EAAA,CAAA,kiCAAA,EAAA,sdAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDXY,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;+BACI,WAAW,EAAA,aAAA,EAGN,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,UAAU,EAAA,OAAA,EACX,EAAE,EAAA,QAAA,EAAA,wkBAAA,EAAA,MAAA,EAAA,CAAA,kiCAAA,EAAA,sdAAA,CAAA,EAAA;;sBAQV;;sBACA;;sBACA;;sBACA,WAAW;uBAAC,OAAO;;;AEtBxB;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-components-card.mjs","sources":["../../../projects/cmat/components/card/card.component.ts","../../../projects/cmat/components/card/card.component.html","../../../projects/cmat/components/card/cmat-components-card.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CmatCardFace } from './card.types';\r\n\r\n@Component({\r\n selector: 'cmat-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss', '../../animations/expand-collapse.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCard',\r\n imports: []\r\n})\r\nexport class CmatCardComponent implements OnChanges {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n static ngAcceptInputType_expanded: BooleanInput;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n static ngAcceptInputType_flippable: BooleanInput;\r\n\r\n @Input() expanded: boolean = false;\r\n @Input() face: CmatCardFace = 'front';\r\n @Input() flippable: boolean = false;\r\n @HostBinding('class') get classList(): Record<string, boolean> {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n return {\r\n 'cmat-card-expanded': this.expanded,\r\n 'cmat-card-face-back': this.flippable && this.face === 'back',\r\n 'cmat-card-face-front': this.flippable && this.face === 'front',\r\n 'cmat-card-flippable': this.flippable\r\n };\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('expanded' in changes) {\r\n this.expanded = coerceBooleanProperty(changes['expanded'].currentValue);\r\n }\r\n if ('flippable' in changes) {\r\n this.flippable = coerceBooleanProperty(changes['flippable'].currentValue);\r\n }\r\n }\r\n}","\r\n@if (flippable) {\r\n\r\n<div class=\"cmat-card-front\">\r\n <ng-content select=\"[cmatCardFront]\"></ng-content>\r\n</div>\r\n\r\n<div class=\"cmat-card-back overflow-y-auto scrollbar-custom\">\r\n <ng-content select=\"[cmatCardBack]\"></ng-content>\r\n</div>\r\n}\r\n\r\n\r\n@if (!flippable) {\r\n\r\n<ng-content></ng-content>\r\n\r\n@if (expanded) {\r\n<div class=\"cmat-card-expansion expand-collapse-animation\" animate.leave=\"expand-collapse-animation-leaving\">\r\n <div>\r\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\r\n </div>\r\n</div>\r\n}\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,iBAAiB,CAAA;AAT9B,IAAA,WAAA,GAAA;QAea,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,IAAI,GAAiB,OAAO;QAC5B,IAAA,CAAA,SAAS,GAAY,KAAK;AAoBtC,IAAA;AAnBG,IAAA,IAA0B,SAAS,GAAA;;QAE/B,OAAO;YACH,oBAAoB,EAAE,IAAI,CAAC,QAAQ;YACnC,qBAAqB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAC7D,sBAAsB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAC/D,qBAAqB,EAAE,IAAI,CAAC;SAC/B;;IAEL;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,UAAU,IAAI,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC;QAC3E;AACA,QAAA,IAAI,WAAW,IAAI,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;QAC7E;IACJ;+GA3BS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,+OCb9B,wkBAwBC,EAAA,MAAA,EAAA,CAAA,kiCAAA,EAAA,sdAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDXY,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;+BACI,WAAW,EAAA,aAAA,EAGN,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,UAAU,EAAA,OAAA,EACX,EAAE,EAAA,QAAA,EAAA,wkBAAA,EAAA,MAAA,EAAA,CAAA,kiCAAA,EAAA,sdAAA,CAAA,EAAA;;sBAQV;;sBACA;;sBACA;;sBACA,WAAW;uBAAC,OAAO;;;AEtBxB;;AAEG;;;;"}