@onemrvapublic/design-system 20.11.3 → 21.0.0-develop.2

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 (205) hide show
  1. package/README.md +5 -9
  2. package/fesm2022/onemrvapublic-design-system-flag-icon.mjs +14 -20
  3. package/fesm2022/onemrvapublic-design-system-flag-icon.mjs.map +1 -1
  4. package/fesm2022/onemrvapublic-design-system-layout.mjs +207 -290
  5. package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
  6. package/fesm2022/onemrvapublic-design-system-mat-address.mjs +19 -25
  7. package/fesm2022/onemrvapublic-design-system-mat-address.mjs.map +1 -1
  8. package/fesm2022/onemrvapublic-design-system-mat-avatar.mjs +58 -223
  9. package/fesm2022/onemrvapublic-design-system-mat-avatar.mjs.map +1 -1
  10. package/fesm2022/onemrvapublic-design-system-mat-breadcrumb.mjs +47 -53
  11. package/fesm2022/onemrvapublic-design-system-mat-breadcrumb.mjs.map +1 -1
  12. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs +50 -71
  13. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs.map +1 -1
  14. package/fesm2022/onemrvapublic-design-system-mat-choice-chip.mjs +27 -29
  15. package/fesm2022/onemrvapublic-design-system-mat-choice-chip.mjs.map +1 -1
  16. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs +24 -42
  17. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs.map +1 -1
  18. package/fesm2022/onemrvapublic-design-system-mat-country-item.mjs +8 -12
  19. package/fesm2022/onemrvapublic-design-system-mat-country-item.mjs.map +1 -1
  20. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs +4 -4
  21. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs.map +1 -1
  22. package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs +10 -18
  23. package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs.map +1 -1
  24. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs +98 -173
  25. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs.map +1 -1
  26. package/fesm2022/onemrvapublic-design-system-mat-input-address.mjs +32 -52
  27. package/fesm2022/onemrvapublic-design-system-mat-input-address.mjs.map +1 -1
  28. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs +10 -13
  29. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs.map +1 -1
  30. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs +10 -13
  31. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs.map +1 -1
  32. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs +24 -44
  33. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs.map +1 -1
  34. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs +22 -40
  35. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs.map +1 -1
  36. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs +26 -39
  37. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs.map +1 -1
  38. package/fesm2022/onemrvapublic-design-system-mat-message-box.mjs +45 -180
  39. package/fesm2022/onemrvapublic-design-system-mat-message-box.mjs.map +1 -1
  40. package/fesm2022/onemrvapublic-design-system-mat-multi-select.mjs +38 -63
  41. package/fesm2022/onemrvapublic-design-system-mat-multi-select.mjs.map +1 -1
  42. package/fesm2022/onemrvapublic-design-system-mat-navigation.mjs +40 -65
  43. package/fesm2022/onemrvapublic-design-system-mat-navigation.mjs.map +1 -1
  44. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs +19 -59
  45. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs.map +1 -1
  46. package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs +23 -49
  47. package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs.map +1 -1
  48. package/fesm2022/onemrvapublic-design-system-mat-panel.mjs +61 -101
  49. package/fesm2022/onemrvapublic-design-system-mat-panel.mjs.map +1 -1
  50. package/fesm2022/onemrvapublic-design-system-mat-pop-over.mjs +30 -50
  51. package/fesm2022/onemrvapublic-design-system-mat-pop-over.mjs.map +1 -1
  52. package/fesm2022/onemrvapublic-design-system-mat-progress-bar.mjs +26 -38
  53. package/fesm2022/onemrvapublic-design-system-mat-progress-bar.mjs.map +1 -1
  54. package/fesm2022/onemrvapublic-design-system-mat-select-search.mjs +66 -105
  55. package/fesm2022/onemrvapublic-design-system-mat-select-search.mjs.map +1 -1
  56. package/fesm2022/onemrvapublic-design-system-mat-selectable-box.mjs +23 -43
  57. package/fesm2022/onemrvapublic-design-system-mat-selectable-box.mjs.map +1 -1
  58. package/fesm2022/onemrvapublic-design-system-mat-side-menu.mjs +15 -26
  59. package/fesm2022/onemrvapublic-design-system-mat-side-menu.mjs.map +1 -1
  60. package/fesm2022/onemrvapublic-design-system-mat-skeleton.mjs +62 -177
  61. package/fesm2022/onemrvapublic-design-system-mat-skeleton.mjs.map +1 -1
  62. package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs +17 -21
  63. package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs.map +1 -1
  64. package/fesm2022/onemrvapublic-design-system-mat-stepper.mjs +14 -22
  65. package/fesm2022/onemrvapublic-design-system-mat-stepper.mjs.map +1 -1
  66. package/fesm2022/onemrvapublic-design-system-mat-sticker.mjs +8 -8
  67. package/fesm2022/onemrvapublic-design-system-mat-sticker.mjs.map +1 -1
  68. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs +79 -93
  69. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs.map +1 -1
  70. package/fesm2022/onemrvapublic-design-system-mat-task-list.mjs +59 -94
  71. package/fesm2022/onemrvapublic-design-system-mat-task-list.mjs.map +1 -1
  72. package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs +178 -245
  73. package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs.map +1 -1
  74. package/fesm2022/onemrvapublic-design-system-mat-toast.mjs +7 -7
  75. package/fesm2022/onemrvapublic-design-system-mat-toast.mjs.map +1 -1
  76. package/fesm2022/onemrvapublic-design-system-mat-tooltip.mjs +33 -43
  77. package/fesm2022/onemrvapublic-design-system-mat-tooltip.mjs.map +1 -1
  78. package/fesm2022/onemrvapublic-design-system-page-error.mjs +33 -39
  79. package/fesm2022/onemrvapublic-design-system-page-error.mjs.map +1 -1
  80. package/fesm2022/onemrvapublic-design-system-page-not-found.mjs +38 -42
  81. package/fesm2022/onemrvapublic-design-system-page-not-found.mjs.map +1 -1
  82. package/fesm2022/onemrvapublic-design-system-shared.mjs +188 -312
  83. package/fesm2022/onemrvapublic-design-system-shared.mjs.map +1 -1
  84. package/fesm2022/onemrvapublic-design-system-utils.mjs.map +1 -1
  85. package/mat-choice-chip/src/onemrva-mat-choice-chip.component.scss +13 -3
  86. package/mat-empty-row/src/onemrva-mat-empty-row.component.scss +2 -2
  87. package/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.scss +1 -1
  88. package/mat-input-phone/src/onemrva-mat-input-phone.component.scss +1 -1
  89. package/mat-panel/src/onemrva-mat-panel-content.scss +1 -1
  90. package/mat-skeleton/src/onemrva-mat-skeleton.component.scss +1 -1
  91. package/mat-table-of-content/src/onemrva-mat-table-of-content.component.scss +10 -2
  92. package/package.json +72 -62
  93. package/theme/index.scss +230 -0
  94. package/theme/overrides/_autocomplete.scss +9 -0
  95. package/theme/overrides/_button-toggle.scss +14 -0
  96. package/theme/overrides/_button.scss +140 -0
  97. package/theme/overrides/_card.scss +34 -0
  98. package/theme/overrides/_carousel.scss +13 -0
  99. package/theme/overrides/_checkbox.scss +49 -0
  100. package/theme/overrides/_chips.scss +42 -0
  101. package/theme/overrides/_datepicker.scss +10 -0
  102. package/theme/overrides/_dialogs.scss +118 -0
  103. package/theme/overrides/_divider.scss +9 -0
  104. package/theme/overrides/_drag-and-drop.scss +74 -0
  105. package/theme/overrides/_expansion.scss +51 -0
  106. package/theme/overrides/_fab.scss +45 -0
  107. package/theme/overrides/_form-field.scss +223 -0
  108. package/theme/overrides/_icon-button.scss +24 -0
  109. package/theme/overrides/_icon.scss +97 -0
  110. package/theme/overrides/_input.scss +18 -0
  111. package/theme/overrides/_layout.scss +35 -0
  112. package/theme/overrides/_menu.scss +45 -0
  113. package/theme/overrides/_option.scss +15 -0
  114. package/theme/overrides/_panel.scss +59 -0
  115. package/theme/overrides/_progress-bar.scss +29 -0
  116. package/theme/overrides/_radio.scss +16 -0
  117. package/theme/overrides/_select.scss +124 -0
  118. package/theme/overrides/_sidenav.scss +13 -0
  119. package/theme/overrides/_slide-toggle.scss +53 -0
  120. package/theme/overrides/_stepper.scss +196 -0
  121. package/theme/overrides/_stickers.scss +13 -0
  122. package/theme/overrides/_table.scss +115 -0
  123. package/theme/overrides/_tabs.scss +20 -0
  124. package/theme/overrides/_toast.scss +16 -0
  125. package/theme/overrides/_toc.scss +26 -0
  126. package/theme/overrides/_toolbar.scss +26 -0
  127. package/theme/overrides/_tooltip.scss +19 -0
  128. package/theme/palettes/_palette.scss +189 -0
  129. package/theme/utilities/_animations.scss +54 -0
  130. package/theme/utilities/_container.scss +14 -0
  131. package/theme/utilities/_fonts.scss +170 -0
  132. package/theme/utilities/_grid.scss +75 -0
  133. package/theme/utilities/_media.scss +33 -0
  134. package/theme/utilities/_palettes.scss +120 -0
  135. package/theme/utilities/_spacing.scss +86 -0
  136. package/theme/utilities/_tokens.scss +123 -0
  137. package/theme/utilities/_utilities.scss +351 -0
  138. package/theme/utilities/_variables.scss +42 -0
  139. package/types/onemrvapublic-design-system-flag-icon.d.ts +18 -0
  140. package/types/onemrvapublic-design-system-layout.d.ts +305 -0
  141. package/{mat-address/index.d.ts → types/onemrvapublic-design-system-mat-address.d.ts} +8 -8
  142. package/types/onemrvapublic-design-system-mat-avatar.d.ts +67 -0
  143. package/{mat-breadcrumb/index.d.ts → types/onemrvapublic-design-system-mat-breadcrumb.d.ts} +8 -6
  144. package/types/onemrvapublic-design-system-mat-carousel.d.ts +52 -0
  145. package/types/onemrvapublic-design-system-mat-choice-chip.d.ts +23 -0
  146. package/types/onemrvapublic-design-system-mat-copy-to-clipboard.d.ts +25 -0
  147. package/types/onemrvapublic-design-system-mat-country-item.d.ts +10 -0
  148. package/types/onemrvapublic-design-system-mat-empty-row.d.ts +18 -0
  149. package/{mat-file-upload/index.d.ts → types/onemrvapublic-design-system-mat-file-upload.d.ts} +53 -51
  150. package/types/onemrvapublic-design-system-mat-input-address.d.ts +32 -0
  151. package/{mat-input-birthplace/index.d.ts → types/onemrvapublic-design-system-mat-input-birthplace.d.ts} +10 -10
  152. package/{mat-input-country/index.d.ts → types/onemrvapublic-design-system-mat-input-country.d.ts} +2 -2
  153. package/types/onemrvapublic-design-system-mat-input-enterprise-number.d.ts +37 -0
  154. package/{mat-input-iban/index.d.ts → types/onemrvapublic-design-system-mat-input-iban.d.ts} +12 -13
  155. package/{mat-input-phone/index.d.ts → types/onemrvapublic-design-system-mat-input-phone.d.ts} +12 -12
  156. package/types/onemrvapublic-design-system-mat-message-box.d.ts +29 -0
  157. package/types/onemrvapublic-design-system-mat-multi-select.d.ts +57 -0
  158. package/types/onemrvapublic-design-system-mat-navigation.d.ts +55 -0
  159. package/types/onemrvapublic-design-system-mat-notification.d.ts +23 -0
  160. package/types/onemrvapublic-design-system-mat-paginator.d.ts +58 -0
  161. package/types/onemrvapublic-design-system-mat-panel.d.ts +66 -0
  162. package/types/onemrvapublic-design-system-mat-pop-over.d.ts +40 -0
  163. package/types/onemrvapublic-design-system-mat-progress-bar.d.ts +16 -0
  164. package/{mat-select-search/index.d.ts → types/onemrvapublic-design-system-mat-select-search.d.ts} +35 -35
  165. package/types/onemrvapublic-design-system-mat-selectable-box.d.ts +26 -0
  166. package/{mat-side-menu/index.d.ts → types/onemrvapublic-design-system-mat-side-menu.d.ts} +6 -6
  167. package/types/onemrvapublic-design-system-mat-skeleton.d.ts +82 -0
  168. package/{mat-spinner/index.d.ts → types/onemrvapublic-design-system-mat-spinner.d.ts} +3 -4
  169. package/{mat-stepper/index.d.ts → types/onemrvapublic-design-system-mat-stepper.d.ts} +3 -6
  170. package/types/onemrvapublic-design-system-mat-table-of-content.d.ts +85 -0
  171. package/types/onemrvapublic-design-system-mat-task-list.d.ts +56 -0
  172. package/{mat-timepicker/index.d.ts → types/onemrvapublic-design-system-mat-timepicker.d.ts} +50 -66
  173. package/types/onemrvapublic-design-system-mat-tooltip.d.ts +40 -0
  174. package/types/onemrvapublic-design-system-page-error.d.ts +29 -0
  175. package/{page-not-found/index.d.ts → types/onemrvapublic-design-system-page-not-found.d.ts} +6 -6
  176. package/{shared/index.d.ts → types/onemrvapublic-design-system-shared.d.ts} +47 -71
  177. package/flag-icon/index.d.ts +0 -18
  178. package/layout/index.d.ts +0 -295
  179. package/mat-avatar/index.d.ts +0 -187
  180. package/mat-carousel/index.d.ts +0 -52
  181. package/mat-choice-chip/index.d.ts +0 -21
  182. package/mat-copy-to-clipboard/index.d.ts +0 -25
  183. package/mat-country-item/index.d.ts +0 -10
  184. package/mat-empty-row/index.d.ts +0 -19
  185. package/mat-input-address/index.d.ts +0 -32
  186. package/mat-input-enterprise-number/index.d.ts +0 -37
  187. package/mat-message-box/index.d.ts +0 -101
  188. package/mat-multi-select/index.d.ts +0 -57
  189. package/mat-navigation/index.d.ts +0 -54
  190. package/mat-notification/index.d.ts +0 -43
  191. package/mat-paginator/index.d.ts +0 -58
  192. package/mat-panel/index.d.ts +0 -66
  193. package/mat-pop-over/index.d.ts +0 -40
  194. package/mat-progress-bar/index.d.ts +0 -18
  195. package/mat-selectable-box/index.d.ts +0 -29
  196. package/mat-skeleton/index.d.ts +0 -100
  197. package/mat-table-of-content/index.d.ts +0 -84
  198. package/mat-task-list/index.d.ts +0 -57
  199. package/mat-tooltip/index.d.ts +0 -40
  200. package/page-error/index.d.ts +0 -34
  201. /package/{mat-datepicker-header/index.d.ts → types/onemrvapublic-design-system-mat-datepicker-header.d.ts} +0 -0
  202. /package/{mat-sticker/index.d.ts → types/onemrvapublic-design-system-mat-sticker.d.ts} +0 -0
  203. /package/{mat-toast/index.d.ts → types/onemrvapublic-design-system-mat-toast.d.ts} +0 -0
  204. /package/{utils/index.d.ts → types/onemrvapublic-design-system-utils.d.ts} +0 -0
  205. /package/{index.d.ts → types/onemrvapublic-design-system.d.ts} +0 -0
@@ -1,64 +1,58 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, input, effect, Component, NgModule } from '@angular/core';
3
- import { BehaviorSubject, of } from 'rxjs';
2
+ import { inject, DestroyRef, signal, Injectable, input, effect, Component, NgModule } from '@angular/core';
4
3
  import { Router, NavigationEnd, RouterLink, RouterModule } from '@angular/router';
5
4
  import { filter } from 'rxjs/operators';
6
- import { NgStyle, AsyncPipe, CommonModule } from '@angular/common';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
6
  import { MatIcon, MatIconModule } from '@angular/material/icon';
8
7
  import { TranslatePipe } from '@ngx-translate/core';
8
+ import { CommonModule } from '@angular/common';
9
9
 
10
10
  class OnemrvaMatBreadcrumbService {
11
11
  constructor() {
12
12
  this.router = inject(Router);
13
- // Subject emitting the breadcrumb hierarchy
14
- this._breadcrumbs$ = new BehaviorSubject([]);
15
- // Observable exposing the breadcrumb hierarchy
16
- this.breadcrumbs$ = this._breadcrumbs$.asObservable();
13
+ this.destroyRef = inject(DestroyRef);
14
+ this._breadcrumbs = signal(this.buildFromSnapshot(), ...(ngDevMode ? [{ debugName: "_breadcrumbs" }] : []));
15
+ /** Readonly signal for consumers (components/templates) */
16
+ this.breadcrumbs = this._breadcrumbs.asReadonly();
17
+ // Keep it in sync after navigations
17
18
  this.router.events
18
- .pipe(
19
- // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end
20
- filter(event => event instanceof NavigationEnd))
19
+ .pipe(filter((e) => e instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef))
21
20
  .subscribe(() => {
22
- // Construct the breadcrumb hierarchy
23
- const root = this.router.routerState.snapshot.root;
24
- const breadcrumbs = [];
25
- this.addBreadcrumb(root, [], breadcrumbs);
26
- // Emit the new hierarchy
27
- this._breadcrumbs$.next(breadcrumbs);
21
+ this._breadcrumbs.set(this.buildFromSnapshot());
28
22
  });
29
23
  }
24
+ buildFromSnapshot() {
25
+ const root = this.router.routerState.snapshot.root;
26
+ const breadcrumbs = [];
27
+ this.addBreadcrumb(root, [], breadcrumbs);
28
+ return breadcrumbs;
29
+ }
30
30
  addBreadcrumb(route, parentUrl, breadcrumbs) {
31
- if (route) {
32
- // Construct the route URL
33
- const routeUrl = parentUrl.concat(route.url.map(url => url.path));
34
- // Add an element for the current route part
35
- if (route.data['navigationTitle']) {
36
- const url = '/' + routeUrl.join('/');
37
- const breadcrumb = {
38
- label: route.data['navigationTitle'],
39
- url,
40
- translate: route.data['translate'] ? route.data['translate'] : false,
41
- };
42
- if (breadcrumbs.length > 0 &&
43
- url === breadcrumbs[breadcrumbs.length - 1].url) {
44
- breadcrumbs[breadcrumbs.length - 1] = breadcrumb;
45
- }
46
- else {
47
- breadcrumbs.push(breadcrumb);
48
- }
49
- }
50
- // Add another element for the next route part
51
- this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
31
+ if (!route)
32
+ return;
33
+ const routeUrl = parentUrl.concat(route.url.map(u => u.path));
34
+ const navigationTitle = route.data?.['navigationTitle'];
35
+ if (navigationTitle) {
36
+ const url = '/' + routeUrl.join('/');
37
+ const breadcrumb = {
38
+ label: navigationTitle,
39
+ url,
40
+ translate: !!route.data?.['translate'],
41
+ };
42
+ const last = breadcrumbs[breadcrumbs.length - 1];
43
+ if (last && last.url === url)
44
+ breadcrumbs[breadcrumbs.length - 1] = breadcrumb;
45
+ else
46
+ breadcrumbs.push(breadcrumb);
52
47
  }
48
+ this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
53
49
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbService, providedIn: 'root' }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
51
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbService, providedIn: 'root' }); }
56
52
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbService, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbService, decorators: [{
58
54
  type: Injectable,
59
- args: [{
60
- providedIn: 'root',
61
- }]
55
+ args: [{ providedIn: 'root' }]
62
56
  }], ctorParameters: () => [] });
63
57
 
64
58
  class OnemrvaMatBreadcrumbComponent {
@@ -67,33 +61,33 @@ class OnemrvaMatBreadcrumbComponent {
67
61
  this.breadcrumbService = inject(OnemrvaMatBreadcrumbService);
68
62
  effect(() => {
69
63
  if (this.paths() && this.paths().length > 0) {
70
- this.breadcrumbs$ = of(this.paths());
64
+ this.breadcrumbs = this.paths;
71
65
  }
72
66
  else {
73
- this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;
67
+ this.breadcrumbs = this.breadcrumbService.breadcrumbs;
74
68
  }
75
69
  });
76
70
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: OnemrvaMatBreadcrumbComponent, isStandalone: true, selector: "onemrva-mat-breadcrumb", inputs: { paths: { classPropertyName: "paths", publicName: "paths", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n", styles: [".onemrva-mat-breadcrumb{display:flex;list-style:none;padding:0;align-items:baseline}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container{margin-right:8px}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container .chevron-right{margin:0 var(--spacer);font-family:var(--icon-font);content:\"\\e5e1\";line-height:1rem;font-size:1rem;vertical-align:middle;height:1rem;width:.25rem}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child) .onemrva-mat-breadcrumb-link{text-decoration:none;color:var(--mat-sys-primary);display:inline-block;font:var(--mat-sys-body-small-size)}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child):hover .onemrva-mat-breadcrumb-link{text-decoration:underline;color:var(--mat-sys-primary);cursor:pointer}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link{display:inline-block;text-decoration:none}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link:hover{cursor:default}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child:hover{cursor:default}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: OnemrvaMatBreadcrumbComponent, isStandalone: true, selector: "onemrva-mat-breadcrumb", inputs: { paths: { classPropertyName: "paths", publicName: "paths", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (breadcrumbs()) {\n <ng-container>\n @if (breadcrumbs().length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (\n breadcrumb of breadcrumbs();\n track breadcrumb.label;\n let bridx = $index\n ) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [style.display]=\"\n breadcrumbs().length <= 6 || bridx <= 2 ? 'list-item' : 'none'\n \"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < breadcrumbs().length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (breadcrumbs().length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (breadcrumbs()[breadcrumbs().length - 1].url) {\n <div\n [routerLink]=\"breadcrumbs()[breadcrumbs().length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ breadcrumbs()[breadcrumbs().length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ breadcrumbs()[breadcrumbs().length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n", styles: [".onemrva-mat-breadcrumb{display:flex;list-style:none;padding:0;align-items:baseline}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container{margin-right:8px}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container .chevron-right{margin:0 var(--spacer);font-family:var(--icon-font);content:\"\\e5e1\";line-height:1rem;font-size:1rem;vertical-align:middle;height:1rem;width:.25rem}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child) .onemrva-mat-breadcrumb-link{text-decoration:none;color:var(--mat-sys-primary);display:inline-block;font:var(--mat-sys-body-small-size)}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child):hover .onemrva-mat-breadcrumb-link{text-decoration:underline;color:var(--mat-sys-primary);cursor:pointer}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link{display:inline-block;text-decoration:none}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link:hover{cursor:default}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child:hover{cursor:default}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
79
73
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbComponent, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbComponent, decorators: [{
81
75
  type: Component,
82
- args: [{ selector: 'onemrva-mat-breadcrumb', imports: [NgStyle, RouterLink, MatIcon, AsyncPipe, TranslatePipe], standalone: true, template: "@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n", styles: [".onemrva-mat-breadcrumb{display:flex;list-style:none;padding:0;align-items:baseline}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container{margin-right:8px}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container .chevron-right{margin:0 var(--spacer);font-family:var(--icon-font);content:\"\\e5e1\";line-height:1rem;font-size:1rem;vertical-align:middle;height:1rem;width:.25rem}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child) .onemrva-mat-breadcrumb-link{text-decoration:none;color:var(--mat-sys-primary);display:inline-block;font:var(--mat-sys-body-small-size)}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child):hover .onemrva-mat-breadcrumb-link{text-decoration:underline;color:var(--mat-sys-primary);cursor:pointer}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link{display:inline-block;text-decoration:none}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link:hover{cursor:default}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child:hover{cursor:default}\n"] }]
76
+ args: [{ selector: 'onemrva-mat-breadcrumb', imports: [RouterLink, MatIcon, TranslatePipe], standalone: true, template: "@if (breadcrumbs()) {\n <ng-container>\n @if (breadcrumbs().length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (\n breadcrumb of breadcrumbs();\n track breadcrumb.label;\n let bridx = $index\n ) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [style.display]=\"\n breadcrumbs().length <= 6 || bridx <= 2 ? 'list-item' : 'none'\n \"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < breadcrumbs().length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (breadcrumbs().length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (breadcrumbs()[breadcrumbs().length - 1].url) {\n <div\n [routerLink]=\"breadcrumbs()[breadcrumbs().length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ breadcrumbs()[breadcrumbs().length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ breadcrumbs()[breadcrumbs().length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n", styles: [".onemrva-mat-breadcrumb{display:flex;list-style:none;padding:0;align-items:baseline}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container{margin-right:8px}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container .chevron-right{margin:0 var(--spacer);font-family:var(--icon-font);content:\"\\e5e1\";line-height:1rem;font-size:1rem;vertical-align:middle;height:1rem;width:.25rem}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child) .onemrva-mat-breadcrumb-link{text-decoration:none;color:var(--mat-sys-primary);display:inline-block;font:var(--mat-sys-body-small-size)}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:not(:last-child):hover .onemrva-mat-breadcrumb-link{text-decoration:underline;color:var(--mat-sys-primary);cursor:pointer}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link{display:inline-block;text-decoration:none}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child .onemrva-mat-breadcrumb-link:hover{cursor:default}.onemrva-mat-breadcrumb .onemrva-mat-breadcrumb-link-container:last-child:hover{cursor:default}\n"] }]
83
77
  }], ctorParameters: () => [], propDecorators: { paths: [{ type: i0.Input, args: [{ isSignal: true, alias: "paths", required: false }] }] } });
84
78
 
85
79
  class OnemrvaMatBreadcrumbModule {
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
87
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbModule, imports: [CommonModule,
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
81
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbModule, imports: [CommonModule,
88
82
  MatIconModule,
89
83
  RouterModule,
90
84
  OnemrvaMatBreadcrumbComponent] }); }
91
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbModule, imports: [CommonModule,
85
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbModule, imports: [CommonModule,
92
86
  MatIconModule,
93
87
  RouterModule,
94
88
  OnemrvaMatBreadcrumbComponent] }); }
95
89
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatBreadcrumbModule, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatBreadcrumbModule, decorators: [{
97
91
  type: NgModule,
98
92
  args: [{
99
93
  declarations: [],
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-breadcrumb.mjs","sources":["../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.html","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/index.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/onemrvapublic-design-system-mat-breadcrumb.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatBreadcrumbService {\n private router = inject(Router);\n\n // Subject emitting the breadcrumb hierarchy\n private readonly _breadcrumbs$ = new BehaviorSubject<OnemrvaBreadcrumb[]>([]);\n\n // Observable exposing the breadcrumb hierarchy\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor() {\n this.router.events\n .pipe(\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\n filter(event => event instanceof NavigationEnd),\n )\n .subscribe(() => {\n // Construct the breadcrumb hierarchy\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: OnemrvaBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n // Emit the new hierarchy\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot | null,\n parentUrl: string[],\n breadcrumbs: OnemrvaBreadcrumb[],\n ) {\n if (route) {\n // Construct the route URL\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n\n // Add an element for the current route part\n if (route.data['navigationTitle']) {\n const url = '/' + routeUrl.join('/');\n const breadcrumb = {\n label: route.data['navigationTitle'],\n url,\n translate: route.data['translate'] ? route.data['translate'] : false,\n };\n\n if (\n breadcrumbs.length > 0 &&\n url === breadcrumbs[breadcrumbs.length - 1].url\n ) {\n breadcrumbs[breadcrumbs.length - 1] = breadcrumb;\n } else {\n breadcrumbs.push(breadcrumb);\n }\n }\n\n // Add another element for the next route part\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","import { Component, effect, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\nimport { OnemrvaMatBreadcrumbService } from './onemrva-mat-breadcrumb.service';\nimport { AsyncPipe, NgStyle } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-breadcrumb',\n templateUrl: 'onemrva-mat-breadcrumb.component.html',\n styleUrls: ['onemrva-mat-breadcrumb.component.scss'],\n imports: [NgStyle, RouterLink, MatIcon, AsyncPipe, TranslatePipe],\n standalone: true,\n})\nexport class OnemrvaMatBreadcrumbComponent {\n public paths = input<OnemrvaBreadcrumb[]>([]);\n\n breadcrumbs$!: Observable<OnemrvaBreadcrumb[]>;\n\n breadcrumbService = inject(OnemrvaMatBreadcrumbService);\n\n constructor() {\n effect(() => {\n if (this.paths() && this.paths().length > 0) {\n this.breadcrumbs$ = of(this.paths());\n } else {\n this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n }\n });\n }\n // ngOnInit(): void {\n // if (this.fakePath) {\n // this.breadcrumbs$ = of(\n // this.fakePath.map(path => ({\n // label: path,\n // url: path,\n // translate: false,\n // })),\n // );\n // } else {\n // this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n // }\n // }\n}\n","@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { OnemrvaMatBreadcrumbComponent } from './onemrva-mat-breadcrumb.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n OnemrvaMatBreadcrumbComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatBreadcrumbModule {}\n","/*\n * Public API Surface of mat-breadcrumb\n */\n\nexport * from './src/onemrva-mat-breadcrumb.component';\nexport * from './src/onemrva-mat-breadcrumb.module';\nexport * from './src/onemrva-mat-breadcrumb.model';\nexport * from './src/onemrva-mat-breadcrumb.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-breadcrumb.mjs","sources":["../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.html","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/index.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/onemrvapublic-design-system-mat-breadcrumb.ts"],"sourcesContent":["import { DestroyRef, Injectable, Signal, inject, signal } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\n\n@Injectable({ providedIn: 'root' })\nexport class OnemrvaMatBreadcrumbService {\n private readonly router = inject(Router);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly _breadcrumbs = signal<OnemrvaBreadcrumb[]>(\n this.buildFromSnapshot(),\n );\n\n /** Readonly signal for consumers (components/templates) */\n readonly breadcrumbs: Signal<OnemrvaBreadcrumb[]> =\n this._breadcrumbs.asReadonly();\n\n constructor() {\n // Keep it in sync after navigations\n this.router.events\n .pipe(\n filter((e): e is NavigationEnd => e instanceof NavigationEnd),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this._breadcrumbs.set(this.buildFromSnapshot());\n });\n }\n\n private buildFromSnapshot(): OnemrvaBreadcrumb[] {\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: OnemrvaBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n return breadcrumbs;\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot | null,\n parentUrl: string[],\n breadcrumbs: OnemrvaBreadcrumb[],\n ): void {\n if (!route) return;\n\n const routeUrl = parentUrl.concat(route.url.map(u => u.path));\n\n const navigationTitle = route.data?.['navigationTitle'];\n if (navigationTitle) {\n const url = '/' + routeUrl.join('/');\n\n const breadcrumb: OnemrvaBreadcrumb = {\n label: navigationTitle,\n url,\n translate: !!route.data?.['translate'],\n };\n\n const last = breadcrumbs[breadcrumbs.length - 1];\n if (last && last.url === url)\n breadcrumbs[breadcrumbs.length - 1] = breadcrumb;\n else breadcrumbs.push(breadcrumb);\n }\n\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n}\n","import { Component, effect, inject, input, Signal } from '@angular/core';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\nimport { OnemrvaMatBreadcrumbService } from './onemrva-mat-breadcrumb.service';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-breadcrumb',\n templateUrl: 'onemrva-mat-breadcrumb.component.html',\n styleUrls: ['onemrva-mat-breadcrumb.component.scss'],\n imports: [RouterLink, MatIcon, TranslatePipe],\n standalone: true,\n})\nexport class OnemrvaMatBreadcrumbComponent {\n public paths = input<OnemrvaBreadcrumb[]>([]);\n\n breadcrumbs!: Signal<OnemrvaBreadcrumb[]>;\n\n breadcrumbService = inject(OnemrvaMatBreadcrumbService);\n\n constructor() {\n effect(() => {\n if (this.paths() && this.paths().length > 0) {\n this.breadcrumbs = this.paths;\n } else {\n this.breadcrumbs = this.breadcrumbService.breadcrumbs;\n }\n });\n }\n}\n","@if (breadcrumbs()) {\n <ng-container>\n @if (breadcrumbs().length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (\n breadcrumb of breadcrumbs();\n track breadcrumb.label;\n let bridx = $index\n ) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [style.display]=\"\n breadcrumbs().length <= 6 || bridx <= 2 ? 'list-item' : 'none'\n \"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < breadcrumbs().length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (breadcrumbs().length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (breadcrumbs()[breadcrumbs().length - 1].url) {\n <div\n [routerLink]=\"breadcrumbs()[breadcrumbs().length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ breadcrumbs()[breadcrumbs().length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ breadcrumbs()[breadcrumbs().length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { OnemrvaMatBreadcrumbComponent } from './onemrva-mat-breadcrumb.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n OnemrvaMatBreadcrumbComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatBreadcrumbModule {}\n","/*\n * Public API Surface of mat-breadcrumb\n */\n\nexport * from './src/onemrva-mat-breadcrumb.component';\nexport * from './src/onemrva-mat-breadcrumb.module';\nexport * from './src/onemrva-mat-breadcrumb.model';\nexport * from './src/onemrva-mat-breadcrumb.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,45 +1,43 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, TemplateRef, HostBinding, ViewChild, Component, Renderer2, HostListener, Input, ContentChildren, ViewEncapsulation } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
2
+ import { viewChild, TemplateRef, signal, inject, ElementRef, Component, contentChildren, input, Renderer2, ViewEncapsulation } from '@angular/core';
3
+ import { NgStyle } from '@angular/common';
5
4
  import { AnimationBuilder, animate, style, trigger, transition } from '@angular/animations';
6
- import * as i2 from '@angular/material/button';
5
+ import * as i1 from '@angular/material/button';
7
6
  import { MatButtonModule } from '@angular/material/button';
8
- import * as i3 from '@angular/material/icon';
7
+ import * as i2 from '@angular/material/icon';
9
8
  import { MatIconModule } from '@angular/material/icon';
10
- import * as i4 from '@ngx-translate/core';
9
+ import * as i3 from '@ngx-translate/core';
11
10
  import { TranslateModule } from '@ngx-translate/core';
12
11
  import { Subject, interval, takeUntil } from 'rxjs';
13
12
  import { MatTooltip } from '@angular/material/tooltip';
14
13
 
15
14
  class OnemrvaMatCarouselItemComponent {
16
15
  constructor() {
16
+ this.tpl = viewChild.required(TemplateRef);
17
+ this.show = signal(false, ...(ngDevMode ? [{ debugName: "show" }] : []));
17
18
  this.element = inject(ElementRef);
18
- this.show = false;
19
19
  this.nativeElement = this.element.nativeElement;
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatCarouselItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: OnemrvaMatCarouselItemComponent, isStandalone: true, selector: "onemrva-mat-carousel-item", host: { properties: { "class.show": "this.show" } }, viewQueries: [{ propertyName: "tpl", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content></ng-content>\n", styles: [":host{vertical-align:top;position:relative;display:inline-block;opacity:1;transition:opacity .5s ease-in-out}:host.semiTransparent{opacity:.3}\n"] }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatCarouselItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.1", type: OnemrvaMatCarouselItemComponent, isStandalone: true, selector: "onemrva-mat-carousel-item", host: { properties: { "class.show": "show()" } }, viewQueries: [{ propertyName: "tpl", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content />\n", styles: [":host{vertical-align:top;position:relative;display:inline-block;opacity:1;transition:opacity .5s ease-in-out}:host.semiTransparent{opacity:.3}\n"] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatCarouselItemComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatCarouselItemComponent, decorators: [{
25
25
  type: Component,
26
- args: [{ selector: 'onemrva-mat-carousel-item', standalone: true, imports: [], template: "<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content></ng-content>\n", styles: [":host{vertical-align:top;position:relative;display:inline-block;opacity:1;transition:opacity .5s ease-in-out}:host.semiTransparent{opacity:.3}\n"] }]
27
- }], ctorParameters: () => [], propDecorators: { tpl: [{
28
- type: ViewChild,
29
- args: [TemplateRef]
30
- }], show: [{
31
- type: HostBinding,
32
- args: ['class.show']
33
- }] } });
26
+ args: [{ selector: 'onemrva-mat-carousel-item', standalone: true, imports: [], host: {
27
+ '[class.show]': 'show()',
28
+ }, template: "<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content />\n", styles: [":host{vertical-align:top;position:relative;display:inline-block;opacity:1;transition:opacity .5s ease-in-out}:host.semiTransparent{opacity:.3}\n"] }]
29
+ }], ctorParameters: () => [], propDecorators: { tpl: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
34
30
 
35
31
  class OnemrvaMatCarouselComponent {
36
32
  constructor() {
37
- this.timing = '250ms ease-in';
38
- this.gap = 32;
39
- this.padding = 64;
40
- this.showControls = true;
41
- this.autoplay = 0;
42
- this.showDots = true;
33
+ this.items = contentChildren(OnemrvaMatCarouselItemComponent, ...(ngDevMode ? [{ debugName: "items" }] : []));
34
+ this.carousel = viewChild.required('carouselWrapper');
35
+ this.timing = input('250ms ease-in', ...(ngDevMode ? [{ debugName: "timing" }] : []));
36
+ this.gap = input(32, ...(ngDevMode ? [{ debugName: "gap" }] : []));
37
+ this.padding = input(64, ...(ngDevMode ? [{ debugName: "padding" }] : []));
38
+ this.showControls = input(true, ...(ngDevMode ? [{ debugName: "showControls" }] : []));
39
+ this.autoplay = input(0, ...(ngDevMode ? [{ debugName: "autoplay" }] : []));
40
+ this.showDots = input(true, ...(ngDevMode ? [{ debugName: "showDots" }] : []));
43
41
  this.currentSlide = 0;
44
42
  this.carouselWrapperStyle = {};
45
43
  this.width = 0;
@@ -50,8 +48,8 @@ class OnemrvaMatCarouselComponent {
50
48
  this.nativeElement = this.element.nativeElement;
51
49
  }
52
50
  ngOnInit() {
53
- if (this.autoplay > 0) {
54
- interval(this.autoplay)
51
+ if (this.autoplay() > 0) {
52
+ interval(this.autoplay())
55
53
  .pipe(takeUntil(this.destroyed))
56
54
  .subscribe(_i => {
57
55
  this.next();
@@ -63,21 +61,21 @@ class OnemrvaMatCarouselComponent {
63
61
  this.destroyed.complete();
64
62
  }
65
63
  onResize(_event) {
66
- this.width = this.nativeElement.offsetWidth - 2 * this.padding;
67
- this.items.forEach(item => {
64
+ this.width = this.nativeElement.offsetWidth - 2 * this.padding();
65
+ this.items().forEach(item => {
68
66
  this.renderer.setStyle(item.nativeElement, 'width', `${this.width}px`);
69
- this.renderer.setStyle(item.nativeElement, 'margin-right', `${this.gap}px`);
67
+ this.renderer.setStyle(item.nativeElement, 'margin-right', `${this.gap()}px`);
70
68
  this.animate();
71
69
  });
72
70
  this.resize();
73
71
  }
74
72
  buildAnimation(offset) {
75
73
  return this.builder.build([
76
- animate(this.timing, style({ transform: `translateX(-${offset}px)` })),
74
+ animate(this.timing(), style({ transform: `translateX(-${offset}px)` })),
77
75
  ]);
78
76
  }
79
77
  goto(index) {
80
- if (index >= 0 && index < this.items.length) {
78
+ if (index >= 0 && index < this.items().length) {
81
79
  this.currentSlide = index;
82
80
  this.animate();
83
81
  this.opacify();
@@ -85,7 +83,7 @@ class OnemrvaMatCarouselComponent {
85
83
  }
86
84
  next() {
87
85
  //if( this.currentSlide + 1 === this.items.length ) return;
88
- this.currentSlide = (this.currentSlide + 1) % this.items.length;
86
+ this.currentSlide = (this.currentSlide + 1) % this.items().length;
89
87
  this.currentSlide = isNaN(this.currentSlide) ? 1 : this.currentSlide;
90
88
  this.animate();
91
89
  this.opacify();
@@ -94,14 +92,14 @@ class OnemrvaMatCarouselComponent {
94
92
  if (this.currentSlide === 0)
95
93
  return;
96
94
  this.currentSlide =
97
- (this.currentSlide - 1 + this.items.length) % this.items.length;
95
+ (this.currentSlide - 1 + this.items().length) % this.items().length;
98
96
  this.animate();
99
97
  this.opacify();
100
98
  }
101
99
  animate() {
102
- const offset = this.currentSlide * (this.width + this.gap);
100
+ const offset = this.currentSlide * (this.width + this.gap());
103
101
  const myAnimation = this.buildAnimation(offset);
104
- this.player = myAnimation.create(this.carousel.nativeElement);
102
+ this.player = myAnimation.create(this.carousel().nativeElement);
105
103
  this.player.play();
106
104
  }
107
105
  ngAfterViewInit() {
@@ -112,15 +110,15 @@ class OnemrvaMatCarouselComponent {
112
110
  this.opacify();
113
111
  }
114
112
  hasPrev() {
115
- return this.items.length > 0 && this.showControls && this.currentSlide > 0;
113
+ return (this.items().length > 0 && this.showControls() && this.currentSlide > 0);
116
114
  }
117
115
  hasNext() {
118
- return (this.items.length > 0 &&
119
- this.showControls &&
120
- this.currentSlide < this.items.length - 1);
116
+ return (this.items().length > 0 &&
117
+ this.showControls() &&
118
+ this.currentSlide < this.items().length - 1);
121
119
  }
122
120
  opacify() {
123
- this.items.forEach((item, index) => {
121
+ this.items().forEach((item, index) => {
124
122
  if (index !== this.currentSlide) {
125
123
  item.nativeElement.className = 'semiTransparent';
126
124
  }
@@ -131,20 +129,20 @@ class OnemrvaMatCarouselComponent {
131
129
  }
132
130
  resize() {
133
131
  let biggest = 80;
134
- this.items.forEach(item => {
132
+ this.items().forEach(item => {
135
133
  item.nativeElement.style.height = 'auto';
136
134
  });
137
- this.items.forEach(item => {
135
+ this.items().forEach(item => {
138
136
  if (item.nativeElement.offsetHeight > biggest) {
139
137
  biggest = item.nativeElement.offsetHeight;
140
138
  }
141
139
  });
142
- this.items.forEach(item => {
140
+ this.items().forEach(item => {
143
141
  item.nativeElement.style.height = biggest + 'px';
144
142
  });
145
143
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: OnemrvaMatCarouselComponent, isStandalone: true, selector: "onemrva-mat-carousel", inputs: { timing: "timing", gap: "gap", padding: "padding", showControls: "showControls", autoplay: "autoplay", showDots: "showDots" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "items", predicate: OnemrvaMatCarouselItemComponent }], viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carouselWrapper"], descendants: true }], ngImport: i0, template: "@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content></ng-content>\n</section>\n\n@if (showDots) {\n <div class=\"dots\">\n @for (item of items; track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n", styles: [":host{position:relative;display:block;width:calc(100% - 128px);overflow:hidden;padding:0 calc(var(--spacer) * 8)}:host .carousel-wrapper{display:block;width:60000px;position:relative;overflow:hidden;margin:0;padding:0}:host .controls{position:absolute;top:calc(50% - 2rem);z-index:6}:host .controls.next{float:right;right:2rem}:host .controls.previous{float:left;left:2rem}:host .dots{text-align:center;margin-top:var(--spacer)}:host .dots .dot{cursor:pointer;width:.75rem;height:.75rem;margin:var(--spacer);background-color:var(--mat-sys-outline-variant);border-radius:50%;display:inline-block;transition:background-color .6s ease}:host .dots .dot.active{background-color:var(--mat-sys-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: OnemrvaMatCarouselComponent, isStandalone: true, selector: "onemrva-mat-carousel", inputs: { timing: { classPropertyName: "timing", publicName: "timing", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, showControls: { classPropertyName: "showControls", publicName: "showControls", isSignal: true, isRequired: false, transformFunction: null }, autoplay: { classPropertyName: "autoplay", publicName: "autoplay", isSignal: true, isRequired: false, transformFunction: null }, showDots: { classPropertyName: "showDots", publicName: "showDots", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "items", predicate: OnemrvaMatCarouselItemComponent, isSignal: true }], viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carouselWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content />\n</section>\n\n@if (showDots()) {\n <div class=\"dots\">\n @for (item of items(); track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items().length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items().length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n", styles: [":host{position:relative;display:block;width:calc(100% - 128px);overflow:hidden;padding:0 calc(var(--spacer) * 8)}:host .carousel-wrapper{display:block;width:60000px;position:relative;overflow:hidden;margin:0;padding:0}:host .controls{position:absolute;top:calc(50% - 2rem);z-index:6}:host .controls.next{float:right;right:2rem}:host .controls.previous{float:left;left:2rem}:host .dots{text-align:center;margin-top:var(--spacer)}:host .dots .dot{cursor:pointer;width:.75rem;height:.75rem;margin:var(--spacer);background-color:var(--mat-sys-outline-variant);border-radius:50%;display:inline-block;transition:background-color .6s ease}:host .dots .dot.active{background-color:var(--mat-sys-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [
148
146
  trigger('inOutAnimation', [
149
147
  transition(':enter', [
150
148
  style({ opacity: 0 }),
@@ -157,15 +155,17 @@ class OnemrvaMatCarouselComponent {
157
155
  ]),
158
156
  ] }); }
159
157
  }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OnemrvaMatCarouselComponent, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OnemrvaMatCarouselComponent, decorators: [{
161
159
  type: Component,
162
160
  args: [{ selector: 'onemrva-mat-carousel', standalone: true, imports: [
163
- CommonModule,
164
161
  MatButtonModule,
165
162
  MatIconModule,
166
163
  TranslateModule,
167
164
  MatTooltip,
168
- ], encapsulation: ViewEncapsulation.Emulated, animations: [
165
+ NgStyle,
166
+ ], encapsulation: ViewEncapsulation.Emulated, host: {
167
+ '(window:resize)': 'onResize($event)',
168
+ }, animations: [
169
169
  trigger('inOutAnimation', [
170
170
  transition(':enter', [
171
171
  style({ opacity: 0 }),
@@ -176,29 +176,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
176
176
  animate('1000ms ease-in', style({ opacity: 0 })),
177
177
  ]),
178
178
  ]),
179
- ], template: "@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content></ng-content>\n</section>\n\n@if (showDots) {\n <div class=\"dots\">\n @for (item of items; track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n", styles: [":host{position:relative;display:block;width:calc(100% - 128px);overflow:hidden;padding:0 calc(var(--spacer) * 8)}:host .carousel-wrapper{display:block;width:60000px;position:relative;overflow:hidden;margin:0;padding:0}:host .controls{position:absolute;top:calc(50% - 2rem);z-index:6}:host .controls.next{float:right;right:2rem}:host .controls.previous{float:left;left:2rem}:host .dots{text-align:center;margin-top:var(--spacer)}:host .dots .dot{cursor:pointer;width:.75rem;height:.75rem;margin:var(--spacer);background-color:var(--mat-sys-outline-variant);border-radius:50%;display:inline-block;transition:background-color .6s ease}:host .dots .dot.active{background-color:var(--mat-sys-primary)}\n"] }]
180
- }], ctorParameters: () => [], propDecorators: { items: [{
181
- type: ContentChildren,
182
- args: [OnemrvaMatCarouselItemComponent]
183
- }], carousel: [{
184
- type: ViewChild,
185
- args: ['carouselWrapper']
186
- }], timing: [{
187
- type: Input
188
- }], gap: [{
189
- type: Input
190
- }], padding: [{
191
- type: Input
192
- }], showControls: [{
193
- type: Input
194
- }], autoplay: [{
195
- type: Input
196
- }], showDots: [{
197
- type: Input
198
- }], onResize: [{
199
- type: HostListener,
200
- args: ['window:resize', ['$event']]
201
- }] } });
179
+ ], template: "@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content />\n</section>\n\n@if (showDots()) {\n <div class=\"dots\">\n @for (item of items(); track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items().length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items().length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n", styles: [":host{position:relative;display:block;width:calc(100% - 128px);overflow:hidden;padding:0 calc(var(--spacer) * 8)}:host .carousel-wrapper{display:block;width:60000px;position:relative;overflow:hidden;margin:0;padding:0}:host .controls{position:absolute;top:calc(50% - 2rem);z-index:6}:host .controls.next{float:right;right:2rem}:host .controls.previous{float:left;left:2rem}:host .dots{text-align:center;margin-top:var(--spacer)}:host .dots .dot{cursor:pointer;width:.75rem;height:.75rem;margin:var(--spacer);background-color:var(--mat-sys-outline-variant);border-radius:50%;display:inline-block;transition:background-color .6s ease}:host .dots .dot.active{background-color:var(--mat-sys-primary)}\n"] }]
180
+ }], ctorParameters: () => [], propDecorators: { items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => OnemrvaMatCarouselItemComponent), { isSignal: true }] }], carousel: [{ type: i0.ViewChild, args: ['carouselWrapper', { isSignal: true }] }], timing: [{ type: i0.Input, args: [{ isSignal: true, alias: "timing", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], showControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControls", required: false }] }], autoplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoplay", required: false }] }], showDots: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDots", required: false }] }] } });
202
181
 
203
182
  /**
204
183
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-carousel.mjs","sources":["../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.html","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.html","../../../../projects/onemrva/design-system/mat-carousel/onemrvapublic-design-system-mat-carousel.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n HostBinding,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-mat-carousel-item',\n standalone: true,\n imports: [],\n templateUrl: './onemrva-mat-carousel-item.component.html',\n styleUrl: './onemrva-mat-carousel-item.component.scss',\n})\nexport class OnemrvaMatCarouselItemComponent {\n @ViewChild(TemplateRef) tpl!: TemplateRef<any>;\n\n public nativeElement: HTMLElement;\n\n element: ElementRef = inject(ElementRef);\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n @HostBinding('class.show')\n public show = false;\n}\n","<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content></ng-content>\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OnemrvaMatCarouselItemComponent } from './mat-carousel-item/onemrva-mat-carousel-item.component';\nimport {\n animate,\n AnimationBuilder,\n AnimationFactory,\n AnimationPlayer,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { interval, Subject, takeUntil } from 'rxjs';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'onemrva-mat-carousel',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n MatTooltip,\n ],\n templateUrl: './onemrva-mat-carousel.component.html',\n styleUrl: './onemrva-mat-carousel.component.scss',\n encapsulation: ViewEncapsulation.Emulated,\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('1000ms ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('1000ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class OnemrvaMatCarouselComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n @ContentChildren(OnemrvaMatCarouselItemComponent)\n items!: QueryList<OnemrvaMatCarouselItemComponent>;\n\n nativeElement: HTMLElement;\n\n @ViewChild('carouselWrapper')\n carousel!: ElementRef;\n\n private player?: AnimationPlayer;\n\n @Input() timing = '250ms ease-in';\n @Input() gap = 32;\n @Input() padding = 64;\n @Input() showControls = true;\n @Input() autoplay = 0;\n @Input() showDots = true;\n\n public currentSlide = 0;\n carouselWrapperStyle = {};\n\n width = 0;\n destroyed: Subject<any> = new Subject<any>();\n\n builder: AnimationBuilder = inject(AnimationBuilder);\n element: ElementRef = inject(ElementRef);\n renderer: Renderer2 = inject(Renderer2);\n\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n ngOnInit() {\n if (this.autoplay > 0) {\n interval(this.autoplay)\n .pipe(takeUntil(this.destroyed))\n .subscribe(_i => {\n this.next();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed.next(null);\n this.destroyed.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(_event: any) {\n this.width = this.nativeElement.offsetWidth - 2 * this.padding;\n this.items.forEach(item => {\n this.renderer.setStyle(item.nativeElement, 'width', `${this.width}px`);\n this.renderer.setStyle(\n item.nativeElement,\n 'margin-right',\n `${this.gap}px`,\n );\n this.animate();\n });\n this.resize();\n }\n\n buildAnimation(offset: number) {\n return this.builder.build([\n animate(this.timing, style({ transform: `translateX(-${offset}px)` })),\n ]);\n }\n\n goto(index: number) {\n if (index >= 0 && index < this.items.length) {\n this.currentSlide = index;\n this.animate();\n this.opacify();\n }\n }\n\n next() {\n //if( this.currentSlide + 1 === this.items.length ) return;\n this.currentSlide = (this.currentSlide + 1) % this.items.length;\n this.currentSlide = isNaN(this.currentSlide) ? 1 : this.currentSlide;\n\n this.animate();\n this.opacify();\n }\n\n prev() {\n if (this.currentSlide === 0) return;\n this.currentSlide =\n (this.currentSlide - 1 + this.items.length) % this.items.length;\n this.animate();\n this.opacify();\n }\n\n animate() {\n const offset = this.currentSlide * (this.width + this.gap);\n const myAnimation: AnimationFactory = this.buildAnimation(offset);\n this.player = myAnimation.create(this.carousel.nativeElement);\n this.player.play();\n }\n\n ngAfterViewInit() {\n this.width = this.nativeElement.offsetWidth;\n setTimeout(() => {\n this.onResize(null);\n }, 10);\n this.opacify();\n }\n\n hasPrev() {\n return this.items.length > 0 && this.showControls && this.currentSlide > 0;\n }\n\n hasNext() {\n return (\n this.items.length > 0 &&\n this.showControls &&\n this.currentSlide < this.items.length - 1\n );\n }\n\n opacify() {\n this.items.forEach((item, index) => {\n if (index !== this.currentSlide) {\n item.nativeElement.className = 'semiTransparent';\n } else {\n item.nativeElement.className = '';\n }\n });\n }\n resize() {\n let biggest = 80;\n\n this.items.forEach(item => {\n item.nativeElement.style.height = 'auto';\n });\n this.items.forEach(item => {\n if (item.nativeElement.offsetHeight > biggest) {\n biggest = item.nativeElement.offsetHeight;\n }\n });\n this.items.forEach(item => {\n item.nativeElement.style.height = biggest + 'px';\n });\n }\n}\n","@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content></ng-content>\n</section>\n\n@if (showDots) {\n <div class=\"dots\">\n @for (item of items; track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-carousel.mjs","sources":["../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.html","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.html","../../../../projects/onemrva/design-system/mat-carousel/onemrvapublic-design-system-mat-carousel.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n TemplateRef,\n inject,\n viewChild,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-mat-carousel-item',\n standalone: true,\n imports: [],\n templateUrl: './onemrva-mat-carousel-item.component.html',\n styleUrl: './onemrva-mat-carousel-item.component.scss',\n host: {\n '[class.show]': 'show()',\n },\n})\nexport class OnemrvaMatCarouselItemComponent {\n readonly tpl = viewChild.required(TemplateRef);\n\n public nativeElement: HTMLElement;\n\n readonly show = signal(false);\n\n element: ElementRef = inject(ElementRef);\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n}\n","<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content />\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n inject,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n input,\n contentChildren,\n viewChild,\n} from '@angular/core';\nimport { NgStyle } from '@angular/common';\nimport { OnemrvaMatCarouselItemComponent } from './mat-carousel-item/onemrva-mat-carousel-item.component';\nimport {\n animate,\n AnimationBuilder,\n AnimationFactory,\n AnimationPlayer,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { interval, Subject, takeUntil } from 'rxjs';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'onemrva-mat-carousel',\n standalone: true,\n imports: [\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n MatTooltip,\n NgStyle,\n ],\n templateUrl: './onemrva-mat-carousel.component.html',\n styleUrl: './onemrva-mat-carousel.component.scss',\n encapsulation: ViewEncapsulation.Emulated,\n host: {\n '(window:resize)': 'onResize($event)',\n },\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('1000ms ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('1000ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class OnemrvaMatCarouselComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n readonly items = contentChildren(OnemrvaMatCarouselItemComponent);\n\n nativeElement: HTMLElement;\n\n readonly carousel = viewChild.required<ElementRef>('carouselWrapper');\n\n private player?: AnimationPlayer;\n\n readonly timing = input('250ms ease-in');\n readonly gap = input(32);\n readonly padding = input(64);\n readonly showControls = input(true);\n readonly autoplay = input(0);\n readonly showDots = input(true);\n\n public currentSlide = 0;\n carouselWrapperStyle = {};\n\n width = 0;\n destroyed: Subject<any> = new Subject<any>();\n\n builder: AnimationBuilder = inject(AnimationBuilder);\n element: ElementRef = inject(ElementRef);\n renderer: Renderer2 = inject(Renderer2);\n\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n ngOnInit() {\n if (this.autoplay() > 0) {\n interval(this.autoplay())\n .pipe(takeUntil(this.destroyed))\n .subscribe(_i => {\n this.next();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed.next(null);\n this.destroyed.complete();\n }\n\n onResize(_event: any) {\n this.width = this.nativeElement.offsetWidth - 2 * this.padding();\n this.items().forEach(item => {\n this.renderer.setStyle(item.nativeElement, 'width', `${this.width}px`);\n this.renderer.setStyle(\n item.nativeElement,\n 'margin-right',\n `${this.gap()}px`,\n );\n this.animate();\n });\n this.resize();\n }\n\n buildAnimation(offset: number) {\n return this.builder.build([\n animate(this.timing(), style({ transform: `translateX(-${offset}px)` })),\n ]);\n }\n\n goto(index: number) {\n if (index >= 0 && index < this.items().length) {\n this.currentSlide = index;\n this.animate();\n this.opacify();\n }\n }\n\n next() {\n //if( this.currentSlide + 1 === this.items.length ) return;\n this.currentSlide = (this.currentSlide + 1) % this.items().length;\n this.currentSlide = isNaN(this.currentSlide) ? 1 : this.currentSlide;\n\n this.animate();\n this.opacify();\n }\n\n prev() {\n if (this.currentSlide === 0) return;\n this.currentSlide =\n (this.currentSlide - 1 + this.items().length) % this.items().length;\n this.animate();\n this.opacify();\n }\n\n animate() {\n const offset = this.currentSlide * (this.width + this.gap());\n const myAnimation: AnimationFactory = this.buildAnimation(offset);\n this.player = myAnimation.create(this.carousel().nativeElement);\n this.player.play();\n }\n\n ngAfterViewInit() {\n this.width = this.nativeElement.offsetWidth;\n setTimeout(() => {\n this.onResize(null);\n }, 10);\n this.opacify();\n }\n\n hasPrev() {\n return (\n this.items().length > 0 && this.showControls() && this.currentSlide > 0\n );\n }\n\n hasNext() {\n return (\n this.items().length > 0 &&\n this.showControls() &&\n this.currentSlide < this.items().length - 1\n );\n }\n\n opacify() {\n this.items().forEach((item, index) => {\n if (index !== this.currentSlide) {\n item.nativeElement.className = 'semiTransparent';\n } else {\n item.nativeElement.className = '';\n }\n });\n }\n resize() {\n let biggest = 80;\n\n this.items().forEach(item => {\n item.nativeElement.style.height = 'auto';\n });\n this.items().forEach(item => {\n if (item.nativeElement.offsetHeight > biggest) {\n biggest = item.nativeElement.offsetHeight;\n }\n });\n this.items().forEach(item => {\n item.nativeElement.style.height = biggest + 'px';\n });\n }\n}\n","@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content />\n</section>\n\n@if (showDots()) {\n <div class=\"dots\">\n @for (item of items(); track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items().length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items().length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}