@odx/angular 5.3.4 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/components/footer/README.md +3 -0
  3. package/components/footer/index.d.ts +3 -0
  4. package/components/footer/lib/footer.component.d.ts +23 -0
  5. package/components/footer/lib/footer.config.d.ts +30 -0
  6. package/components/footer/lib/footer.i18n.d.ts +3 -0
  7. package/components/footer/lib/helpers/create-footer-links.d.ts +12 -0
  8. package/components/footer/lib/helpers/index.d.ts +1 -0
  9. package/components/footer/lib/models/footer-link.d.ts +4 -0
  10. package/components/footer/lib/models/footer-variant.d.ts +5 -0
  11. package/components/footer/lib/models/index.d.ts +2 -0
  12. package/components/header/lib/header.component.d.ts +1 -1
  13. package/components/header-navigation/README.md +3 -0
  14. package/components/header-navigation/index.d.ts +3 -0
  15. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +11 -0
  16. package/components/header-navigation/lib/directives/index.d.ts +1 -0
  17. package/components/header-navigation/lib/header-navigation.component.d.ts +8 -0
  18. package/components/header-navigation/lib/header-navigation.module.d.ts +9 -0
  19. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +2 -1
  20. package/components/main-menu/lib/main-menu.component.d.ts +5 -5
  21. package/components/main-menu/lib/main-menu.config.d.ts +1 -0
  22. package/components/notification/README.md +3 -0
  23. package/components/notification/index.d.ts +7 -0
  24. package/components/notification/lib/components/index.d.ts +2 -0
  25. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +19 -0
  26. package/components/notification/lib/components/notification-item/notification-item.component.d.ts +37 -0
  27. package/components/notification/lib/directives/index.d.ts +1 -0
  28. package/components/notification/lib/directives/notification-center.directive.d.ts +69 -0
  29. package/components/notification/lib/features/index.d.ts +5 -0
  30. package/components/notification/lib/features/with-browser-notifications.d.ts +17 -0
  31. package/components/notification/lib/features/with-load-notifications.d.ts +18 -0
  32. package/components/notification/lib/features/with-notification-transformer.d.ts +26 -0
  33. package/components/notification/lib/features/with-peristent-notifications.d.ts +63 -0
  34. package/components/notification/lib/features/with-save-notifications.d.ts +11 -0
  35. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +2 -0
  36. package/components/notification/lib/helpers/index.d.ts +3 -0
  37. package/components/notification/lib/helpers/sort-notifications.d.ts +3 -0
  38. package/components/notification/lib/helpers/to-notification-collection.d.ts +3 -0
  39. package/components/notification/lib/models/index.d.ts +8 -0
  40. package/components/notification/lib/models/notification-action.d.ts +2 -0
  41. package/components/notification/lib/models/notification-collection.d.ts +6 -0
  42. package/components/notification/lib/models/notification-feature.d.ts +5 -0
  43. package/components/notification/lib/models/notification-options.d.ts +7 -0
  44. package/components/notification/lib/models/notification-query.d.ts +2 -0
  45. package/components/notification/lib/models/notification-sort-fn.d.ts +2 -0
  46. package/components/notification/lib/models/notification.d.ts +6 -0
  47. package/components/notification/lib/models/notification.ref.d.ts +9 -0
  48. package/components/notification/lib/notification.config.d.ts +11 -0
  49. package/components/notification/lib/notification.i18n.d.ts +3 -0
  50. package/components/notification/lib/notification.logger.d.ts +3 -0
  51. package/components/notification/lib/notification.service.d.ts +110 -0
  52. package/components/notification/lib/notification.tokens.d.ts +4 -0
  53. package/components/notification/lib/services/index.d.ts +1 -0
  54. package/components/notification/lib/services/notification-center.service.d.ts +69 -0
  55. package/components/notification/testing/README.md +3 -0
  56. package/components/notification/testing/index.d.ts +1 -0
  57. package/components/notification/testing/lib/test-helpers.d.ts +5 -0
  58. package/components/toast/lib/toast.service.d.ts +30 -2
  59. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +3 -2
  60. package/esm2022/components/footer/index.mjs +4 -0
  61. package/esm2022/components/footer/lib/footer.component.mjs +51 -0
  62. package/esm2022/components/footer/lib/footer.config.mjs +29 -0
  63. package/esm2022/components/footer/lib/footer.i18n.mjs +19 -0
  64. package/esm2022/components/footer/lib/helpers/create-footer-links.mjs +25 -0
  65. package/esm2022/components/footer/lib/helpers/index.mjs +2 -0
  66. package/esm2022/components/footer/lib/models/footer-link.mjs +2 -0
  67. package/esm2022/components/footer/lib/models/footer-variant.mjs +5 -0
  68. package/esm2022/components/footer/lib/models/index.mjs +3 -0
  69. package/esm2022/components/footer/odx-angular-components-footer.mjs +5 -0
  70. package/esm2022/components/header/lib/header.component.mjs +3 -3
  71. package/esm2022/components/header-navigation/index.mjs +4 -0
  72. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +37 -0
  73. package/esm2022/components/header-navigation/lib/directives/index.mjs +2 -0
  74. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +28 -0
  75. package/esm2022/components/header-navigation/lib/header-navigation.module.mjs +19 -0
  76. package/esm2022/components/header-navigation/odx-angular-components-header-navigation.mjs +5 -0
  77. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +7 -4
  78. package/esm2022/components/main-menu/lib/main-menu.component.mjs +9 -11
  79. package/esm2022/components/main-menu/lib/main-menu.config.mjs +1 -1
  80. package/esm2022/components/notification/index.mjs +8 -0
  81. package/esm2022/components/notification/lib/components/index.mjs +3 -0
  82. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +65 -0
  83. package/esm2022/components/notification/lib/components/notification-item/notification-item.component.mjs +65 -0
  84. package/esm2022/components/notification/lib/directives/index.mjs +2 -0
  85. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +142 -0
  86. package/esm2022/components/notification/lib/features/index.mjs +6 -0
  87. package/esm2022/components/notification/lib/features/with-browser-notifications.mjs +75 -0
  88. package/esm2022/components/notification/lib/features/with-load-notifications.mjs +45 -0
  89. package/esm2022/components/notification/lib/features/with-notification-transformer.mjs +34 -0
  90. package/esm2022/components/notification/lib/features/with-peristent-notifications.mjs +94 -0
  91. package/esm2022/components/notification/lib/features/with-save-notifications.mjs +45 -0
  92. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +7 -0
  93. package/esm2022/components/notification/lib/helpers/index.mjs +4 -0
  94. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +10 -0
  95. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +9 -0
  96. package/esm2022/components/notification/lib/models/index.mjs +9 -0
  97. package/esm2022/components/notification/lib/models/notification-action.mjs +2 -0
  98. package/esm2022/components/notification/lib/models/notification-collection.mjs +2 -0
  99. package/esm2022/components/notification/lib/models/notification-feature.mjs +4 -0
  100. package/esm2022/components/notification/lib/models/notification-options.mjs +2 -0
  101. package/esm2022/components/notification/lib/models/notification-query.mjs +2 -0
  102. package/esm2022/components/notification/lib/models/notification-sort-fn.mjs +2 -0
  103. package/esm2022/components/notification/lib/models/notification.mjs +2 -0
  104. package/esm2022/components/notification/lib/models/notification.ref.mjs +2 -0
  105. package/esm2022/components/notification/lib/notification.config.mjs +11 -0
  106. package/esm2022/components/notification/lib/notification.i18n.mjs +11 -0
  107. package/esm2022/components/notification/lib/notification.logger.mjs +3 -0
  108. package/esm2022/components/notification/lib/notification.service.mjs +168 -0
  109. package/esm2022/components/notification/lib/notification.tokens.mjs +7 -0
  110. package/esm2022/components/notification/lib/services/index.mjs +2 -0
  111. package/esm2022/components/notification/lib/services/notification-center.service.mjs +96 -0
  112. package/esm2022/components/notification/odx-angular-components-notification.mjs +5 -0
  113. package/esm2022/components/notification/testing/index.mjs +2 -0
  114. package/esm2022/components/notification/testing/lib/test-helpers.mjs +33 -0
  115. package/esm2022/components/notification/testing/odx-angular-components-notification-testing.mjs +5 -0
  116. package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +6 -6
  117. package/esm2022/components/toast/lib/toast.service.mjs +38 -8
  118. package/esm2022/utils/lib/helpers/array.mjs +24 -1
  119. package/esm2022/utils/lib/helpers/build-website-url.mjs +24 -1
  120. package/fesm2022/odx-angular-breakpoints.mjs +2 -1
  121. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  122. package/fesm2022/odx-angular-components-footer.mjs +131 -0
  123. package/fesm2022/odx-angular-components-footer.mjs.map +1 -0
  124. package/fesm2022/odx-angular-components-header-navigation.mjs +84 -0
  125. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -0
  126. package/fesm2022/odx-angular-components-header.mjs +2 -2
  127. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  128. package/fesm2022/odx-angular-components-main-menu.mjs +11 -9
  129. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  130. package/fesm2022/odx-angular-components-notification-testing.mjs +39 -0
  131. package/fesm2022/odx-angular-components-notification-testing.mjs.map +1 -0
  132. package/fesm2022/odx-angular-components-notification.mjs +832 -0
  133. package/fesm2022/odx-angular-components-notification.mjs.map +1 -0
  134. package/fesm2022/odx-angular-components-toast.mjs +42 -11
  135. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  136. package/fesm2022/odx-angular-utils.mjs +46 -0
  137. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  138. package/package.json +25 -1
  139. package/utils/lib/helpers/array.d.ts +23 -0
  140. package/utils/lib/helpers/build-website-url.d.ts +23 -0
@@ -0,0 +1,11 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { NotificationAction, NotificationFeature, NotificationOptions, NotificationSortFn } from './models';
3
+ export interface NotificationConfig {
4
+ defaultIdPrefix: string;
5
+ options: NotificationOptions;
6
+ sortFn: NotificationSortFn;
7
+ tagToIconMap?: Record<string, string>;
8
+ actionMap?: Record<string, NotificationAction>;
9
+ }
10
+ export declare const NotificationConfig: import("@angular/core").InjectionToken<Partial<NotificationConfig>>, NotificationDefaultConfig: NotificationConfig, injectNotificationConfig: () => NotificationConfig, provideNotificationConfig: <D extends import("@odx/angular/utils").ConfigDependencies<unknown> = import("@odx/angular/utils").ConfigDependencies<Partial<NotificationConfig>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<NotificationConfig>, D>) => import("@angular/core").ValueProvider | import("@angular/core").FactoryProvider;
11
+ export declare function provideNotifications(config?: Partial<NotificationConfig>, ...features: NotificationFeature[]): EnvironmentProviders;
@@ -0,0 +1,3 @@
1
+ import { TranslationObject } from '@odx/angular/internal/translate';
2
+ declare const _default: TranslationObject;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { Logger } from '@odx/angular/internal';
2
+ declare const _default: Logger;
3
+ export default _default;
@@ -0,0 +1,110 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Notification, NotificationCollection, NotificationOptions, NotificationQuery, NotificationRef, NotificationSortFn } from './models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NotificationService {
5
+ private readonly config;
6
+ private readonly localizationService;
7
+ private readonly queue;
8
+ private readonly injector;
9
+ readonly notifications$: Observable<NotificationCollection>;
10
+ readonly unseenNotifications$: Observable<NotificationCollection>;
11
+ readonly onNotificationAdd$: Observable<NotificationRef>;
12
+ readonly onNotificationRemove$: Observable<NotificationRef>;
13
+ readonly onNotificationUpdate$: Observable<NotificationRef>;
14
+ readonly onNotificationSeen$: Observable<NotificationRef>;
15
+ /**
16
+ * Fetches notifications filtered by a specified query and optionally sorted by a custom sort function.
17
+ *
18
+ * @param {NotificationQuery} query - A function or object to filter notifications.
19
+ * @param {NotificationSortFn} [sortFn] - An optional sorting function to order the filtered notifications.
20
+ * @returns {Observable<NotificationCollection>} An observable stream of the filtered (and optionally sorted) notification collection.
21
+ * @example
22
+ * // Fetch notifications with a specific tag, sorted by creation date
23
+ * const sortedNotifications$ = notificationService.getNotificationsBy$(
24
+ * notification => notification.tags.includes('important'),
25
+ * (a, b) => b.createdAt - a.createdAt
26
+ * );
27
+ */
28
+ getNotificationsBy$(query: NotificationQuery, sortFn?: NotificationSortFn): Observable<NotificationCollection>;
29
+ /**
30
+ * Loads a list of notifications into the service.
31
+ *
32
+ * @param {NotificationRef[]} refs - An array of notification references to be loaded.
33
+ * @example
34
+ * // Load multiple notifications at once
35
+ * notificationService.load([
36
+ * { id: '1', item: { title: 'Notification 1' }, options: {dismissable: true, icon: 'plus', tags: ['important']}, hasBeenSeen: false, createdAt: Date.now() },
37
+ * { id: '2', item: { title: 'Notification 2' }, options: {dismissable: true, icon: 'plus', tags: ['important']}, hasBeenSeen: false, createdAt: Date.now() }
38
+ * ]);
39
+ */
40
+ load(refs: NotificationRef[]): void;
41
+ /**
42
+ * Creates a new notification and adds it to the notification queue.
43
+ *
44
+ * @param {Notification} item - The notification to create.
45
+ * @param {Partial<NotificationOptions>} [options] - Optional settings for the notification.
46
+ * @example
47
+ * // Create a new notification with custom options
48
+ * notificationService.create(
49
+ * { title: 'New Notification' },
50
+ * { dismissable: true, icon: 'plus', tags: ['important'] }
51
+ * );
52
+ */
53
+ create(item: Notification, options?: Partial<NotificationOptions>): void;
54
+ /**
55
+ * Marks a specific notification as seen.
56
+ *
57
+ * @param {NotificationRef} notificationRef - The reference to the notification to mark as seen.
58
+ * @example
59
+ * // Mark a notification as seen by its reference
60
+ * notificationService.markAsSeen(notificationRef);
61
+ */
62
+ markAsSeen(notificationRef: NotificationRef): void;
63
+ /**
64
+ * Marks all notifications that match a specific query as seen.
65
+ *
66
+ * @param {NotificationQuery} query - The query to match notifications to mark as seen.
67
+ * @example
68
+ * // Mark all notifications with a specific tag as seen
69
+ * notificationService.markAsSeenBy(notification => notification.tags.includes('important'));
70
+ */
71
+ markAsSeenBy(query: NotificationQuery): void;
72
+ /**
73
+ * Dismisses a specific notification.
74
+ *
75
+ * @param {NotificationRef} notificationRef - The reference to the notification to dismiss.
76
+ * @example
77
+ * // Dismiss a notification by its reference
78
+ * notificationService.dismiss(notificationRef);
79
+ */
80
+ dismiss(notificationRef: NotificationRef): void;
81
+ /**
82
+ * Dismisses all notifications that match a specific query.
83
+ *
84
+ * @param {NotificationQuery} query - The query to match notifications to dismiss.
85
+ * @example
86
+ * // Dismiss all notifications with a specific tag
87
+ * notificationService.dismissBy(notification => notification.tags.includes('expired'));
88
+ */
89
+ dismissBy(query: NotificationQuery): void;
90
+ /**
91
+ * Dismisses all notifications.
92
+ *
93
+ * @example
94
+ * // Dismiss all notifications
95
+ * notificationService.dismissAll();
96
+ */
97
+ dismissAll(): void;
98
+ /**
99
+ * Executes the action associated with a specific notification.
100
+ *
101
+ * @param {NotificationRef} notificationRef - The reference to the notification whose action to execute.
102
+ * @example
103
+ * // Execute action for a notification
104
+ * notificationService.executeAction(notificationRef);
105
+ */
106
+ executeAction(notificationRef: NotificationRef): void;
107
+ private resolveOptions;
108
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
109
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
110
+ }
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { Queue } from '@odx/angular/utils';
3
+ import { NotificationRef } from './models';
4
+ export declare const ODX_NOTIFICATION_QUEUE: InjectionToken<Queue<NotificationRef>>;
@@ -0,0 +1 @@
1
+ export * from './notification-center.service';
@@ -0,0 +1,69 @@
1
+ import { DynamicTextContent } from '@odx/angular/cdk/dynamic-view';
2
+ import { Observable } from 'rxjs';
3
+ import { NotificationRef, NotificationSortFn } from '../models';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * A service for managing the notification center. This service provides functionalities
7
+ * to filter, sort, and manage actions on notifications.
8
+ */
9
+ export declare class NotificationCenterService {
10
+ private readonly currentTag;
11
+ private readonly currentSortFn;
12
+ private readonly notificationService;
13
+ private readonly notificationQuery;
14
+ private readonly title;
15
+ readonly title$: Observable<string | null>;
16
+ readonly notifications$: Observable<import("../models").NotificationCollection>;
17
+ readonly unseenNotifications$: Observable<import("../models").NotificationCollection>;
18
+ onNotificationAdd$: Observable<NotificationRef>;
19
+ onNotificationUpdate$: Observable<NotificationRef>;
20
+ onNotificationRemove$: Observable<NotificationRef>;
21
+ onNotificationSeen$: Observable<NotificationRef>;
22
+ /**
23
+ * Sets the title for the notification center. The title can be static text or an observable for dynamic content.
24
+ *
25
+ * @param {DynamicTextContent | null} [value] - The title content for the notification center.
26
+ */
27
+ setTitle(value?: DynamicTextContent | null): void;
28
+ /**
29
+ * Sets the current tag to filter notifications. Only notifications with this tag will be included.
30
+ *
31
+ * @param {string | null} [value] - The tag to filter notifications by.
32
+ */
33
+ setTag(value?: string | null): void;
34
+ /**
35
+ * Sets the sort function used to order the notifications.
36
+ *
37
+ * @param {NotificationSortFn} [value] - The sort function to apply to the notifications.
38
+ */
39
+ setSortFn(value?: NotificationSortFn): void;
40
+ /**
41
+ * Marks a given notification as seen. This does not remove the notification but updates its seen status.
42
+ *
43
+ * @param {NotificationRef} notificationRef - The reference to the notification to be marked as seen.
44
+ */
45
+ markAsSeen(notificationRef: NotificationRef): void;
46
+ /**
47
+ * Marks all current filtered notifications as seen.
48
+ */
49
+ markAllAsSeen(): void;
50
+ /**
51
+ * Dismisses a specific notification.
52
+ *
53
+ * @param {NotificationRef} notificationRef - The reference to the notification to dismiss.
54
+ */
55
+ dismiss(notificationRef: NotificationRef): void;
56
+ /**
57
+ * Dismisses all notifications that match the current filter criteria.
58
+ */
59
+ dismissAll(): void;
60
+ /**
61
+ * Executes the action associated with a specific notification and marks it as seen.
62
+ *
63
+ * @param {NotificationRef} notificationRef - The reference to the notification whose action to execute.
64
+ */
65
+ executeAction(notificationRef: NotificationRef): void;
66
+ private queryEvent;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationCenterService, never>;
68
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationCenterService>;
69
+ }
@@ -0,0 +1,3 @@
1
+ # @odx/angular/components/notification/testing
2
+
3
+ Secondary entry point of `@odx/angular`. It can be used by importing from `@odx/angular/components/notification/testing`.
@@ -0,0 +1 @@
1
+ export * from './lib/test-helpers';
@@ -0,0 +1,5 @@
1
+ import { Notification, NotificationCollection, NotificationOptions, NotificationRef } from '@odx/angular/components/notification';
2
+ export declare function mockNotification(props?: Partial<Notification>): Notification;
3
+ export declare function mockNotificationOptions(props?: Partial<NotificationOptions>): NotificationOptions;
4
+ export declare function mockNotificationRef(props?: Partial<NotificationRef>): NotificationRef;
5
+ export declare function mockNotificationCollection(refs: NotificationRef[]): NotificationCollection;
@@ -2,15 +2,43 @@ import { Toast, ToastOptions, ToastRef } from './models';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ToastService {
4
4
  private readonly queue;
5
- private readonly onRemove$$;
6
5
  private readonly defaultOptions;
6
+ readonly toasts$: import("rxjs").Observable<(ToastRef & {
7
+ id: string | number;
8
+ })[]>;
9
+ readonly onUpdate$: import("rxjs").Observable<ToastRef>;
10
+ readonly onToastAdd$: import("rxjs").Observable<ToastRef>;
11
+ readonly onToastUpdate$: import("rxjs").Observable<ToastRef>;
12
+ readonly onToastRemove$: import("rxjs").Observable<ToastRef>;
13
+ /**
14
+ * @deprecated Use `toasts$` instead
15
+ */
7
16
  readonly queue$: import("rxjs").Observable<(ToastRef & {
8
17
  id: string | number;
9
18
  })[]>;
19
+ /**
20
+ * @deprecated Use `onToastAdd$` instead
21
+ */
22
+ readonly onAdd$: import("rxjs").Observable<ToastRef>;
23
+ /**
24
+ * @deprecated Use `onToastRemove$` instead
25
+ */
10
26
  readonly onRemove$: import("rxjs").Observable<ToastRef>;
27
+ /**
28
+ * @deprecated Use `create` instead
29
+ */
11
30
  add(item: Toast, options?: Partial<ToastOptions>): ToastRef;
12
- remove(itemRef: ToastRef): void;
31
+ create(item: Toast, options?: Partial<ToastOptions>): ToastRef;
32
+ /**
33
+ * @deprecated Use `dismiss` instead
34
+ */
35
+ remove(refOrId: ToastRef | ToastRef['id']): ToastRef | null;
36
+ dismiss(refOrId: ToastRef | ToastRef['id']): ToastRef | null;
37
+ /**
38
+ * @deprecated Use `dismissAll` instead
39
+ */
13
40
  clear(): void;
41
+ dismissAll(): void;
14
42
  static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
15
43
  static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
16
44
  }
@@ -25,7 +25,8 @@ export class MatchBreakpointsDirective {
25
25
  this.viewContainer.clear();
26
26
  const template = matchesBreakpoints ? this.template : this.elseTemplate;
27
27
  if (template) {
28
- this.viewContainer.createEmbeddedView(template);
28
+ const viewRef = this.viewContainer.createEmbeddedView(template);
29
+ viewRef.markForCheck();
29
30
  }
30
31
  }
31
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatchBreakpointsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -44,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
44
45
  type: Input,
45
46
  args: ['odxMatchBreakpointsElse']
46
47
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtYnJlYWtwb2ludHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFrcG9pbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9tYXRjaC1icmVha3BvaW50cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUttQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUMxRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFPMUQsMkRBQTJEO1FBRXBELGlCQUFZLEdBQWlDLElBQUksQ0FBQztLQW1CMUQ7SUExQkMsSUFDVyxXQUFXLENBQUMsS0FBMkQ7UUFDaEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFNTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWE7YUFDZixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3hFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFDNUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBMkI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN4RSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDOytHQWhDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtDQUFrQztpQkFDN0M7OEJBU1ksV0FBVztzQkFEckIsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBT3JCLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludHNTZXJ2aWNlIH0gZnJvbSAnLi4vYnJlYWtwb2ludHMuc2VydmljZSc7XG5pbXBvcnQgeyBCcmVha3BvaW50TmFtZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW29keE1hdGNoQnJlYWtwb2ludHNdJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Y2hCcmVha3BvaW50c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludHMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWtwb2ludE5hbWVbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRzU2VydmljZSA9IGluamVjdChCcmVha3BvaW50c1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgQElucHV0KCdvZHhNYXRjaEJyZWFrcG9pbnRzJylcbiAgcHVibGljIHNldCBicmVha3BvaW50cyh2YWx1ZTogQnJlYWtwb2ludE5hbWUgfCBCcmVha3BvaW50TmFtZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYnJlYWtwb2ludHMkJC5uZXh0KGNvZXJjZUFycmF5KHZhbHVlID8/IFtdKSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keE1hdGNoQnJlYWtwb2ludHNFbHNlJylcbiAgcHVibGljIGVsc2VUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnJlYWtwb2ludHMkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoYnJlYWtwb2ludHMpID0+IHRoaXMuYnJlYWtwb2ludHNTZXJ2aWNlLm9ic2VydmUoYnJlYWtwb2ludHMpKSxcbiAgICAgICAgdGFwKChtYXRjaGVzQnJlYWtwb2ludHMpID0+IHRoaXMucmVuZGVyKG1hdGNoZXNCcmVha3BvaW50cykpLFxuICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXIobWF0Y2hlc0JyZWFrcG9pbnRzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgY29uc3QgdGVtcGxhdGUgPSBtYXRjaGVzQnJlYWtwb2ludHMgPyB0aGlzLnRlbXBsYXRlIDogdGhpcy5lbHNlVGVtcGxhdGU7XG4gICAgaWYgKHRlbXBsYXRlKSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtYnJlYWtwb2ludHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFrcG9pbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9tYXRjaC1icmVha3BvaW50cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUttQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUMxRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFPMUQsMkRBQTJEO1FBRXBELGlCQUFZLEdBQWlDLElBQUksQ0FBQztLQW9CMUQ7SUEzQkMsSUFDVyxXQUFXLENBQUMsS0FBMkQ7UUFDaEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFNTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWE7YUFDZixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3hFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFDNUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBMkI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN4RSxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEUsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzsrR0FqQ1UseUJBQXlCO21HQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQ0FBa0M7aUJBQzdDOzhCQVNZLFdBQVc7c0JBRHJCLEtBQUs7dUJBQUMscUJBQXFCO2dCQU9yQixZQUFZO3NCQURsQixLQUFLO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyZWFrcG9pbnRzU2VydmljZSB9IGZyb20gJy4uL2JyZWFrcG9pbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE5hbWUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtvZHhNYXRjaEJyZWFrcG9pbnRzXScsXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoQnJlYWtwb2ludHNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFrcG9pbnROYW1lW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBicmVha3BvaW50c1NlcnZpY2UgPSBpbmplY3QoQnJlYWtwb2ludHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIEBJbnB1dCgnb2R4TWF0Y2hCcmVha3BvaW50cycpXG4gIHB1YmxpYyBzZXQgYnJlYWtwb2ludHModmFsdWU6IEJyZWFrcG9pbnROYW1lIHwgQnJlYWtwb2ludE5hbWVbXSB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmJyZWFrcG9pbnRzJCQubmV4dChjb2VyY2VBcnJheSh2YWx1ZSA/PyBbXSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdvZHhNYXRjaEJyZWFrcG9pbnRzRWxzZScpXG4gIHB1YmxpYyBlbHNlVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJyZWFrcG9pbnRzJCRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGJyZWFrcG9pbnRzKSA9PiB0aGlzLmJyZWFrcG9pbnRzU2VydmljZS5vYnNlcnZlKGJyZWFrcG9pbnRzKSksXG4gICAgICAgIHRhcCgobWF0Y2hlc0JyZWFrcG9pbnRzKSA9PiB0aGlzLnJlbmRlcihtYXRjaGVzQnJlYWtwb2ludHMpKSxcbiAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKG1hdGNoZXNCcmVha3BvaW50czogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gbWF0Y2hlc0JyZWFrcG9pbnRzID8gdGhpcy50ZW1wbGF0ZSA6IHRoaXMuZWxzZVRlbXBsYXRlO1xuICAgIGlmICh0ZW1wbGF0ZSkge1xuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUpO1xuICAgICAgdmlld1JlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './lib/footer.component';
2
+ export * from './lib/footer.config';
3
+ export * from './lib/models';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2Zvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9vdGVyLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuIl19
@@ -0,0 +1,51 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
4
+ import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
5
+ import { LinkDirective } from '@odx/angular/components/link';
6
+ import { LogoDirective } from '@odx/angular/components/logo';
7
+ import { CSSComponent, CSSModifier } from '@odx/angular/internal';
8
+ import { TranslatePipe, provideTranslations } from '@odx/angular/internal/translate';
9
+ import { injectElement, trackByIndex } from '@odx/angular/utils';
10
+ import footerTranslations from './footer.i18n';
11
+ import { createFooterLinks$ } from './helpers';
12
+ import { FooterVariant } from './models';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/common";
15
+ /**
16
+ * Represents the footer component of an application, dynamically generating links and supporting various styles.
17
+ * This component integrates dynamic and static content for the footer, including a logo, navigational links, and a customizable description.
18
+ *
19
+ * @usage `<odx-footer [description]="dynamicOrStaticContent" [variant]="'light'|'dark'"></odx-footer>`
20
+ *
21
+ * @input
22
+ * - `description` - Accepts dynamic content (observable or static string) for displaying a custom description in the footer.
23
+ * - `variant` - Sets the footer's appearance theme, supporting `light` and `dark` variants as defined by `FooterVariant`.
24
+ */
25
+ export let FooterComponent = class FooterComponent {
26
+ constructor() {
27
+ this.footerLinks$ = createFooterLinks$();
28
+ this.trackByIndex = trackByIndex;
29
+ this.element = injectElement();
30
+ this.description = null;
31
+ this.variant = FooterVariant.LIGHT;
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FooterComponent, isStandalone: true, selector: "odx-footer", inputs: { description: "description", variant: "variant" }, providers: [provideTranslations(footerTranslations)], ngImport: i0, template: "<div class=\"odx-footer__inner\">\n <div class=\"odx-footer__content\">\n <ng-content></ng-content>\n </div>\n <nav class=\"odx-footer__navigation\">\n <ng-content select=\"[odxLink]\" />\n <a odxLink [href]=\"link.url\" target=\"_blank\" *ngFor=\"let link of footerLinks$ | async; trackBy: trackByIndex\">\n {{ link.name | odxTranslate | async }}\n </a>\n </nav>\n <p class=\"odx-footer__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\"></ng-template>\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: LinkDirective, selector: "a[odxLink]" }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "odxTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
35
+ };
36
+ __decorate([
37
+ CSSModifier(),
38
+ __metadata("design:type", String)
39
+ ], FooterComponent.prototype, "variant", void 0);
40
+ FooterComponent = __decorate([
41
+ CSSComponent('footer')
42
+ ], FooterComponent);
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FooterComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ standalone: true, selector: 'odx-footer', imports: [LinkDirective, LogoDirective, DynamicViewDirective, CommonModule, TranslatePipe], providers: [provideTranslations(footerTranslations)], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"odx-footer__inner\">\n <div class=\"odx-footer__content\">\n <ng-content></ng-content>\n </div>\n <nav class=\"odx-footer__navigation\">\n <ng-content select=\"[odxLink]\" />\n <a odxLink [href]=\"link.url\" target=\"_blank\" *ngFor=\"let link of footerLinks$ | async; trackBy: trackByIndex\">\n {{ link.name | odxTranslate | async }}\n </a>\n </nav>\n <p class=\"odx-footer__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\"></ng-template>\n </p>\n</div>\n" }]
46
+ }], propDecorators: { description: [{
47
+ type: Input
48
+ }], variant: [{
49
+ type: Input
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvb3Rlci9zcmMvbGliL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2xpYi9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQXNCLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sa0JBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFFekM7Ozs7Ozs7OztHQVNHO0FBWUksV0FBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUFyQjtRQUNjLGlCQUFZLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNwQyxpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUMvQixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFHbkMsZ0JBQVcsR0FBK0IsSUFBSSxDQUFDO1FBSS9DLFlBQU8sR0FBa0IsYUFBYSxDQUFDLEtBQUssQ0FBQztLQUNyRDsrR0FYWSxlQUFlO21HQUFmLGVBQWUscUhBSmYsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLDBCQzdCdEQscWhCQWNBLDRDRGFZLGFBQWEsdURBQWlCLG9CQUFvQixzSkFBRSxZQUFZLGdUQUFFLGFBQWE7O0FBZ0JsRjtJQUZOLFdBQVcsRUFBRTs7Z0RBRXNDO0FBVnpDLGVBQWU7SUFWM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQztHQVVWLGVBQWUsQ0FXM0I7NEZBWFksZUFBZTtrQkFUM0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxXQUNiLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLGFBRS9FLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxtQkFDbkMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFROUIsV0FBVztzQkFEakIsS0FBSztnQkFLQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljVGV4dENvbnRlbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgTGlua0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xpbmsnO1xuaW1wb3J0IHsgTG9nb0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvZ28nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBwcm92aWRlVHJhbnNsYXRpb25zIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCB0cmFja0J5SW5kZXggfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IGZvb3RlclRyYW5zbGF0aW9ucyBmcm9tICcuL2Zvb3Rlci5pMThuJztcbmltcG9ydCB7IGNyZWF0ZUZvb3RlckxpbmtzJCB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBGb290ZXJWYXJpYW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZvb3RlciBjb21wb25lbnQgb2YgYW4gYXBwbGljYXRpb24sIGR5bmFtaWNhbGx5IGdlbmVyYXRpbmcgbGlua3MgYW5kIHN1cHBvcnRpbmcgdmFyaW91cyBzdHlsZXMuXG4gKiBUaGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVzIGR5bmFtaWMgYW5kIHN0YXRpYyBjb250ZW50IGZvciB0aGUgZm9vdGVyLCBpbmNsdWRpbmcgYSBsb2dvLCBuYXZpZ2F0aW9uYWwgbGlua3MsIGFuZCBhIGN1c3RvbWl6YWJsZSBkZXNjcmlwdGlvbi5cbiAqXG4gKiBAdXNhZ2UgYDxvZHgtZm9vdGVyIFtkZXNjcmlwdGlvbl09XCJkeW5hbWljT3JTdGF0aWNDb250ZW50XCIgW3ZhcmlhbnRdPVwiJ2xpZ2h0J3wnZGFyaydcIj48L29keC1mb290ZXI+YFxuICpcbiAqIEBpbnB1dFxuICogLSBgZGVzY3JpcHRpb25gIC0gQWNjZXB0cyBkeW5hbWljIGNvbnRlbnQgKG9ic2VydmFibGUgb3Igc3RhdGljIHN0cmluZykgZm9yIGRpc3BsYXlpbmcgYSBjdXN0b20gZGVzY3JpcHRpb24gaW4gdGhlIGZvb3Rlci5cbiAqIC0gYHZhcmlhbnRgIC0gU2V0cyB0aGUgZm9vdGVyJ3MgYXBwZWFyYW5jZSB0aGVtZSwgc3VwcG9ydGluZyBgbGlnaHRgIGFuZCBgZGFya2AgdmFyaWFudHMgYXMgZGVmaW5lZCBieSBgRm9vdGVyVmFyaWFudGAuXG4gKi9cblxuQENTU0NvbXBvbmVudCgnZm9vdGVyJylcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC1mb290ZXInLFxuICBpbXBvcnRzOiBbTGlua0RpcmVjdGl2ZSwgTG9nb0RpcmVjdGl2ZSwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIENvbW1vbk1vZHVsZSwgVHJhbnNsYXRlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtwcm92aWRlVHJhbnNsYXRpb25zKGZvb3RlclRyYW5zbGF0aW9ucyldLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvb3RlckxpbmtzJCA9IGNyZWF0ZUZvb3RlckxpbmtzJCgpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhY2tCeUluZGV4ID0gdHJhY2tCeUluZGV4O1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVzY3JpcHRpb24/OiBEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsID0gbnVsbDtcblxuICBAQ1NTTW9kaWZpZXIoKVxuICBASW5wdXQoKVxuICBwdWJsaWMgdmFyaWFudDogRm9vdGVyVmFyaWFudCA9IEZvb3RlclZhcmlhbnQuTElHSFQ7XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LWZvb3Rlcl9faW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm9keC1mb290ZXJfX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8bmF2IGNsYXNzPVwib2R4LWZvb3Rlcl9fbmF2aWdhdGlvblwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhMaW5rXVwiIC8+XG4gICAgPGEgb2R4TGluayBbaHJlZl09XCJsaW5rLnVybFwiIHRhcmdldD1cIl9ibGFua1wiICpuZ0Zvcj1cImxldCBsaW5rIG9mIGZvb3RlckxpbmtzJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgIHt7IGxpbmsubmFtZSB8IG9keFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgPC9hPlxuICA8L25hdj5cbiAgPHAgY2xhc3M9XCJvZHgtZm9vdGVyX19kZXNjcmlwdGlvblwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj5cbiAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cImRlc2NyaXB0aW9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { buildWebsiteUrl, createConfigTokens } from '@odx/angular/utils';
2
+ /**
3
+ * Creates configuration tokens for the footer links, providing a structured way to inject and manage footer link configurations.
4
+ * This utility function encapsulates the configuration for footer links, including defaults and the ability to inject custom configurations.
5
+ *
6
+ * @returns {Object} An object containing configuration tokens for footer links:
7
+ * - `FooterLinksConfig`: A token for injecting the footer links configuration.
8
+ * - `FooterLinksDefaultConfig`: A token representing the default configuration values.
9
+ * - `injectFooterLinksConfig`: A function to inject the current footer links configuration.
10
+ * - `provideFooterLinksConfig`: A function to provide a custom configuration for footer links.
11
+ *
12
+ * @example
13
+ * // In your module or component
14
+ * @NgModule({
15
+ * providers: [
16
+ * provideFooterLinksConfig({
17
+ * legalNoticeUrl: 'https://www.custom-url/legal-notice',
18
+ * providerIdentificationUrl: 'https://www.custom-url/provider-identification',
19
+ * dynamicLinks: myDynamicLinksObservable
20
+ * })
21
+ * ]
22
+ * })
23
+ * export class MyModule {}
24
+ */
25
+ export const { FooterLinksConfig, FooterLinksDefaultConfig, injectFooterLinksConfig, provideFooterLinksConfig } = createConfigTokens('FooterLinks', '@odx/angular/components/footer', {
26
+ providerIdentificationUrl: buildWebsiteUrl('provideridentification'),
27
+ legalNoticeUrl: buildWebsiteUrl('legalnotice'),
28
+ });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvb3Rlci9zcmMvbGliL2Zvb3Rlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBUXpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxHQUFHLGtCQUFrQixDQUNsSSxhQUFhLEVBQ2IsZ0NBQWdDLEVBQ2hDO0lBQ0UseUJBQXlCLEVBQUUsZUFBZSxDQUFDLHdCQUF3QixDQUFDO0lBQ3BFLGNBQWMsRUFBRSxlQUFlLENBQUMsYUFBYSxDQUFDO0NBQzFCLENBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYWluTWVudUxpbmtzQ29uZmlnIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbWFpbi1tZW51JztcbmltcG9ydCB7IGJ1aWxkV2Vic2l0ZVVybCwgY3JlYXRlQ29uZmlnVG9rZW5zIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvb3RlckxpbmsgfSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTGlua3NDb25maWcgZXh0ZW5kcyBNYWluTWVudUxpbmtzQ29uZmlnIHtcbiAgZHluYW1pY0xpbmtzPzogT2JzZXJ2YWJsZTxGb290ZXJMaW5rW10+O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgY29uZmlndXJhdGlvbiB0b2tlbnMgZm9yIHRoZSBmb290ZXIgbGlua3MsIHByb3ZpZGluZyBhIHN0cnVjdHVyZWQgd2F5IHRvIGluamVjdCBhbmQgbWFuYWdlIGZvb3RlciBsaW5rIGNvbmZpZ3VyYXRpb25zLlxuICogVGhpcyB1dGlsaXR5IGZ1bmN0aW9uIGVuY2Fwc3VsYXRlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgZm9vdGVyIGxpbmtzLCBpbmNsdWRpbmcgZGVmYXVsdHMgYW5kIHRoZSBhYmlsaXR5IHRvIGluamVjdCBjdXN0b20gY29uZmlndXJhdGlvbnMuXG4gKlxuICogQHJldHVybnMge09iamVjdH0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29uZmlndXJhdGlvbiB0b2tlbnMgZm9yIGZvb3RlciBsaW5rczpcbiAqIC0gYEZvb3RlckxpbmtzQ29uZmlnYDogQSB0b2tlbiBmb3IgaW5qZWN0aW5nIHRoZSBmb290ZXIgbGlua3MgY29uZmlndXJhdGlvbi5cbiAqIC0gYEZvb3RlckxpbmtzRGVmYXVsdENvbmZpZ2A6IEEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzLlxuICogLSBgaW5qZWN0Rm9vdGVyTGlua3NDb25maWdgOiBBIGZ1bmN0aW9uIHRvIGluamVjdCB0aGUgY3VycmVudCBmb290ZXIgbGlua3MgY29uZmlndXJhdGlvbi5cbiAqIC0gYHByb3ZpZGVGb290ZXJMaW5rc0NvbmZpZ2A6IEEgZnVuY3Rpb24gdG8gcHJvdmlkZSBhIGN1c3RvbSBjb25maWd1cmF0aW9uIGZvciBmb290ZXIgbGlua3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEluIHlvdXIgbW9kdWxlIG9yIGNvbXBvbmVudFxuICogQE5nTW9kdWxlKHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZUZvb3RlckxpbmtzQ29uZmlnKHtcbiAqICAgICAgIGxlZ2FsTm90aWNlVXJsOiAnaHR0cHM6Ly93d3cuY3VzdG9tLXVybC9sZWdhbC1ub3RpY2UnLFxuICogICAgICAgcHJvdmlkZXJJZGVudGlmaWNhdGlvblVybDogJ2h0dHBzOi8vd3d3LmN1c3RvbS11cmwvcHJvdmlkZXItaWRlbnRpZmljYXRpb24nLFxuICogICAgICAgZHluYW1pY0xpbmtzOiBteUR5bmFtaWNMaW5rc09ic2VydmFibGVcbiAqICAgICB9KVxuICogICBdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15TW9kdWxlIHt9XG4gKi9cbmV4cG9ydCBjb25zdCB7IEZvb3RlckxpbmtzQ29uZmlnLCBGb290ZXJMaW5rc0RlZmF1bHRDb25maWcsIGluamVjdEZvb3RlckxpbmtzQ29uZmlnLCBwcm92aWRlRm9vdGVyTGlua3NDb25maWcgfSA9IGNyZWF0ZUNvbmZpZ1Rva2VucyhcbiAgJ0Zvb3RlckxpbmtzJyxcbiAgJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Zvb3RlcicsXG4gIHtcbiAgICBwcm92aWRlcklkZW50aWZpY2F0aW9uVXJsOiBidWlsZFdlYnNpdGVVcmwoJ3Byb3ZpZGVyaWRlbnRpZmljYXRpb24nKSxcbiAgICBsZWdhbE5vdGljZVVybDogYnVpbGRXZWJzaXRlVXJsKCdsZWdhbG5vdGljZScpLFxuICB9IGFzIEZvb3RlckxpbmtzQ29uZmlnLFxuKTtcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ export default {
2
+ en: {
3
+ legalNotice: 'Legal notice',
4
+ providerIdentification: 'Provider identification',
5
+ dataProtection: 'Data protection',
6
+ openSource: 'Open-source licenses',
7
+ termsAndConditions: 'Terms and Conditions',
8
+ status: 'Status',
9
+ },
10
+ de: {
11
+ legalNotice: 'Rechtliche Hinweise',
12
+ providerIdentification: 'Impressum',
13
+ dataProtection: 'Datenschutz',
14
+ openSource: 'Open-Source-Lizenzen',
15
+ termsAndConditions: 'Allgemeine Geschäftsbedingungen',
16
+ status: 'Status',
17
+ },
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2xpYi9mb290ZXIuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxlQUFlO0lBQ2IsRUFBRSxFQUFFO1FBQ0YsV0FBVyxFQUFFLGNBQWM7UUFDM0Isc0JBQXNCLEVBQUUseUJBQXlCO1FBQ2pELGNBQWMsRUFBRSxpQkFBaUI7UUFDakMsVUFBVSxFQUFFLHNCQUFzQjtRQUNsQyxrQkFBa0IsRUFBRSxzQkFBc0I7UUFDMUMsTUFBTSxFQUFFLFFBQVE7S0FDakI7SUFDRCxFQUFFLEVBQUU7UUFDRixXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLHNCQUFzQixFQUFFLFdBQVc7UUFDbkMsY0FBYyxFQUFFLGFBQWE7UUFDN0IsVUFBVSxFQUFFLHNCQUFzQjtRQUNsQyxrQkFBa0IsRUFBRSxpQ0FBaUM7UUFDckQsTUFBTSxFQUFFLFFBQVE7S0FDakI7Q0FDbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9uT2JqZWN0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZW46IHtcbiAgICBsZWdhbE5vdGljZTogJ0xlZ2FsIG5vdGljZScsXG4gICAgcHJvdmlkZXJJZGVudGlmaWNhdGlvbjogJ1Byb3ZpZGVyIGlkZW50aWZpY2F0aW9uJyxcbiAgICBkYXRhUHJvdGVjdGlvbjogJ0RhdGEgcHJvdGVjdGlvbicsXG4gICAgb3BlblNvdXJjZTogJ09wZW4tc291cmNlIGxpY2Vuc2VzJyxcbiAgICB0ZXJtc0FuZENvbmRpdGlvbnM6ICdUZXJtcyBhbmQgQ29uZGl0aW9ucycsXG4gICAgc3RhdHVzOiAnU3RhdHVzJyxcbiAgfSxcbiAgZGU6IHtcbiAgICBsZWdhbE5vdGljZTogJ1JlY2h0bGljaGUgSGlud2Vpc2UnLFxuICAgIHByb3ZpZGVySWRlbnRpZmljYXRpb246ICdJbXByZXNzdW0nLFxuICAgIGRhdGFQcm90ZWN0aW9uOiAnRGF0ZW5zY2h1dHonLFxuICAgIG9wZW5Tb3VyY2U6ICdPcGVuLVNvdXJjZS1MaXplbnplbicsXG4gICAgdGVybXNBbmRDb25kaXRpb25zOiAnQWxsZ2VtZWluZSBHZXNjaMOkZnRzYmVkaW5ndW5nZW4nLFxuICAgIHN0YXR1czogJ1N0YXR1cycsXG4gIH0sXG59IGFzIFRyYW5zbGF0aW9uT2JqZWN0O1xuIl19
@@ -0,0 +1,25 @@
1
+ import { combineLatest, map, of } from 'rxjs';
2
+ import { injectFooterLinksConfig } from '../footer.config';
3
+ /**
4
+ * Creates an observable stream of footer links, combining statically configured links with dynamically provided ones.
5
+ * It leverages the footer links configuration injected from `injectFooterLinksConfig` and optionally includes
6
+ * dynamic links if provided. All links are filtered to include only those with a non-empty URL.
7
+ *
8
+ * @function createFooterLinks$
9
+ * @returns {Observable<FooterLink[]>} An Observable that emits an array of `FooterLink` objects. Each `FooterLink`
10
+ * contains a `name` and a `url`. The observable emits updates if the set of dynamic links changes.
11
+ */
12
+ export function createFooterLinks$() {
13
+ const { legalNoticeUrl, providerIdentificationUrl, dataProtectionUrl, openSourceUrl, termsAndConditionsUrl, statusUrl, dynamicLinks } = injectFooterLinksConfig();
14
+ const dynamicLinks$ = dynamicLinks ?? of([]);
15
+ const links = [
16
+ { name: 'status', url: statusUrl },
17
+ { name: 'termsAndConditions', url: termsAndConditionsUrl },
18
+ { name: 'providerIdentification', url: providerIdentificationUrl },
19
+ { name: 'openSource', url: openSourceUrl },
20
+ { name: 'dataProtection', url: dataProtectionUrl },
21
+ { name: 'legalNotice', url: legalNoticeUrl },
22
+ ];
23
+ return combineLatest([dynamicLinks$, of(links)]).pipe(map((links) => links.flat().filter((link) => !!link.url)));
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvb3Rlci1saW5rcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2Zvb3Rlci9zcmMvbGliL2hlbHBlcnMvY3JlYXRlLWZvb3Rlci1saW5rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHM0Q7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE1BQU0sRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FDbkksdUJBQXVCLEVBQUUsQ0FBQztJQUM1QixNQUFNLGFBQWEsR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sS0FBSyxHQUFHO1FBQ1osRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUU7UUFDbEMsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixFQUFFO1FBQzFELEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEdBQUcsRUFBRSx5QkFBeUIsRUFBRTtRQUNsRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtRQUMxQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUU7UUFDbEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUU7S0FDN0MsQ0FBQztJQUVGLE9BQU8sYUFBYSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RGb290ZXJMaW5rc0NvbmZpZyB9IGZyb20gJy4uL2Zvb3Rlci5jb25maWcnO1xuaW1wb3J0IHsgRm9vdGVyTGluayB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvYnNlcnZhYmxlIHN0cmVhbSBvZiBmb290ZXIgbGlua3MsIGNvbWJpbmluZyBzdGF0aWNhbGx5IGNvbmZpZ3VyZWQgbGlua3Mgd2l0aCBkeW5hbWljYWxseSBwcm92aWRlZCBvbmVzLlxuICogSXQgbGV2ZXJhZ2VzIHRoZSBmb290ZXIgbGlua3MgY29uZmlndXJhdGlvbiBpbmplY3RlZCBmcm9tIGBpbmplY3RGb290ZXJMaW5rc0NvbmZpZ2AgYW5kIG9wdGlvbmFsbHkgaW5jbHVkZXNcbiAqIGR5bmFtaWMgbGlua3MgaWYgcHJvdmlkZWQuIEFsbCBsaW5rcyBhcmUgZmlsdGVyZWQgdG8gaW5jbHVkZSBvbmx5IHRob3NlIHdpdGggYSBub24tZW1wdHkgVVJMLlxuICpcbiAqIEBmdW5jdGlvbiBjcmVhdGVGb290ZXJMaW5rcyRcbiAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEZvb3RlckxpbmtbXT59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBgRm9vdGVyTGlua2Agb2JqZWN0cy4gRWFjaCBgRm9vdGVyTGlua2BcbiAqIGNvbnRhaW5zIGEgYG5hbWVgIGFuZCBhIGB1cmxgLiBUaGUgb2JzZXJ2YWJsZSBlbWl0cyB1cGRhdGVzIGlmIHRoZSBzZXQgb2YgZHluYW1pYyBsaW5rcyBjaGFuZ2VzLlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb290ZXJMaW5rcyQoKTogT2JzZXJ2YWJsZTxGb290ZXJMaW5rW10+IHtcbiAgY29uc3QgeyBsZWdhbE5vdGljZVVybCwgcHJvdmlkZXJJZGVudGlmaWNhdGlvblVybCwgZGF0YVByb3RlY3Rpb25VcmwsIG9wZW5Tb3VyY2VVcmwsIHRlcm1zQW5kQ29uZGl0aW9uc1VybCwgc3RhdHVzVXJsLCBkeW5hbWljTGlua3MgfSA9XG4gICAgaW5qZWN0Rm9vdGVyTGlua3NDb25maWcoKTtcbiAgY29uc3QgZHluYW1pY0xpbmtzJCA9IGR5bmFtaWNMaW5rcyA/PyBvZihbXSk7XG4gIGNvbnN0IGxpbmtzID0gW1xuICAgIHsgbmFtZTogJ3N0YXR1cycsIHVybDogc3RhdHVzVXJsIH0sXG4gICAgeyBuYW1lOiAndGVybXNBbmRDb25kaXRpb25zJywgdXJsOiB0ZXJtc0FuZENvbmRpdGlvbnNVcmwgfSxcbiAgICB7IG5hbWU6ICdwcm92aWRlcklkZW50aWZpY2F0aW9uJywgdXJsOiBwcm92aWRlcklkZW50aWZpY2F0aW9uVXJsIH0sXG4gICAgeyBuYW1lOiAnb3BlblNvdXJjZScsIHVybDogb3BlblNvdXJjZVVybCB9LFxuICAgIHsgbmFtZTogJ2RhdGFQcm90ZWN0aW9uJywgdXJsOiBkYXRhUHJvdGVjdGlvblVybCB9LFxuICAgIHsgbmFtZTogJ2xlZ2FsTm90aWNlJywgdXJsOiBsZWdhbE5vdGljZVVybCB9LFxuICBdO1xuXG4gIHJldHVybiBjb21iaW5lTGF0ZXN0KFtkeW5hbWljTGlua3MkLCBvZihsaW5rcyldKS5waXBlKG1hcCgobGlua3MpID0+IGxpbmtzLmZsYXQoKS5maWx0ZXIoKGxpbmspOiBsaW5rIGlzIEZvb3RlckxpbmsgPT4gISFsaW5rLnVybCkpKTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './create-footer-links';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1mb290ZXItbGlua3MnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2xpYi9tb2RlbHMvZm9vdGVyLWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTGluayB7XG4gIG5hbWU6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export const FooterVariant = {
2
+ LIGHT: 'light',
3
+ DARK: 'dark',
4
+ };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXZhcmlhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2xpYi9tb2RlbHMvZm9vdGVyLXZhcmlhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRm9vdGVyVmFyaWFudCA9ICh0eXBlb2YgRm9vdGVyVmFyaWFudClba2V5b2YgdHlwZW9mIEZvb3RlclZhcmlhbnRdO1xuXG5leHBvcnQgY29uc3QgRm9vdGVyVmFyaWFudCA9IHtcbiAgTElHSFQ6ICdsaWdodCcsXG4gIERBUks6ICdkYXJrJyxcbn0gYXMgY29uc3Q7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './footer-link';
2
+ export * from './footer-variant';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9vdGVyLWxpbmsnO1xuZXhwb3J0ICogZnJvbSAnLi9mb290ZXItdmFyaWFudCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1mb290ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9mb290ZXIvc3JjL29keC1hbmd1bGFyLWNvbXBvbmVudHMtZm9vdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -9,13 +9,13 @@ export let HeaderComponent = class HeaderComponent {
9
9
  this.element = injectElement();
10
10
  }
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HeaderComponent, isStandalone: true, selector: "odx-header", ngImport: i0, template: "<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-header-title\"></ng-content>\n<ng-content select=\"odx-action-group, odx-auth\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n", dependencies: [{ kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HeaderComponent, isStandalone: true, selector: "odx-header", ngImport: i0, template: "<ng-content select=\"button[odxMainMenuButton]\" />\n<odx-logo />\n<ng-content select=\"odx-header-title\" />\n<div class=\"odx-header__content\">\n <ng-content />\n</div>\n<ng-content select=\"odx-action-group, odx-auth\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n", dependencies: [{ kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
13
13
  };
14
14
  HeaderComponent = __decorate([
15
15
  CSSComponent('header')
16
16
  ], HeaderComponent);
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ standalone: true, selector: 'odx-header', imports: [LogoDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-header-title\"></ng-content>\n<ng-content select=\"odx-action-group, odx-auth\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n" }]
19
+ args: [{ standalone: true, selector: 'odx-header', imports: [LogoDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"button[odxMainMenuButton]\" />\n<odx-logo />\n<ng-content select=\"odx-header-title\" />\n<div class=\"odx-header__content\">\n <ng-content />\n</div>\n<ng-content select=\"odx-action-group, odx-auth\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n" }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlci9zcmMvbGliL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXIvc3JjL2xpYi9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVzVDLFdBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFBckI7UUFDVyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FDM0M7K0dBRlksZUFBZTttR0FBZixlQUFlLHNFQ2Q1Qix5UUFLQSw0Q0RJWSxhQUFhOztBQUtaLGVBQWU7SUFUM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQztHQVNWLGVBQWUsQ0FFM0I7NEZBRlksZUFBZTtrQkFSM0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxXQUNiLENBQUMsYUFBYSxDQUFDLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nb0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvZ28nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdoZWFkZXInKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWhlYWRlcicsXG4gIGltcG9ydHM6IFtMb2dvRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltvZHhNYWluTWVudUJ1dHRvbl1cIj48L25nLWNvbnRlbnQ+XG48b2R4LWxvZ28+PC9vZHgtbG9nbz5cbjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1oZWFkZXItdGl0bGVcIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJvZHgtYWN0aW9uLWdyb3VwLCBvZHgtYXV0aFwiPjwvbmctY29udGVudD5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhIZWFkZXJBdmF0YXJdXCI+PC9uZy1jb250ZW50PlxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlci9zcmMvbGliL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXIvc3JjL2xpYi9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVzVDLFdBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFBckI7UUFDVyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FDM0M7K0dBRlksZUFBZTttR0FBZixlQUFlLHNFQ2Q1QixtUkFRQSw0Q0RDWSxhQUFhOztBQUtaLGVBQWU7SUFUM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQztHQVNWLGVBQWUsQ0FFM0I7NEZBRlksZUFBZTtrQkFSM0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxXQUNiLENBQUMsYUFBYSxDQUFDLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nb0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvZ28nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdoZWFkZXInKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWhlYWRlcicsXG4gIGltcG9ydHM6IFtMb2dvRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltvZHhNYWluTWVudUJ1dHRvbl1cIiAvPlxuPG9keC1sb2dvIC8+XG48bmctY29udGVudCBzZWxlY3Q9XCJvZHgtaGVhZGVyLXRpdGxlXCIgLz5cbjxkaXYgY2xhc3M9XCJvZHgtaGVhZGVyX19jb250ZW50XCI+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hY3Rpb24tZ3JvdXAsIG9keC1hdXRoXCIgLz5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhIZWFkZXJBdmF0YXJdXCIgLz5cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './lib/directives';
2
+ export * from './lib/header-navigation.component';
3
+ export * from './lib/header-navigation.module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXItbmF2aWdhdGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWFkZXItbmF2aWdhdGlvbi5tb2R1bGUnO1xuIl19
@@ -0,0 +1,37 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { RouterLinkActive } from '@angular/router';
3
+ import { reactiveClassBinding } from '@odx/angular/utils';
4
+ import { distinctUntilChanged, startWith } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ export class HeaderNavigationRouterLinkDirective {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderNavigationRouterLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: HeaderNavigationRouterLinkDirective, isStandalone: true, selector: "[routerLink][odxHeaderNavigationLink]", hostDirectives: [{ directive: i1.RouterLinkActive, inputs: ["routerLinkActiveOptions", "routerLinkActiveOptions"] }], ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderNavigationRouterLinkDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ standalone: true,
15
+ selector: '[routerLink][odxHeaderNavigationLink]',
16
+ hostDirectives: [{ directive: RouterLinkActive, inputs: ['routerLinkActiveOptions'] }],
17
+ }]
18
+ }] });
19
+ export class HeaderNavigationLinkDirective {
20
+ constructor() {
21
+ const routerLinkActive = inject(RouterLinkActive, { self: true, optional: true });
22
+ if (!routerLinkActive)
23
+ return;
24
+ const isActive$ = routerLinkActive.isActiveChange.pipe(startWith(routerLinkActive.isActive), distinctUntilChanged());
25
+ reactiveClassBinding(isActive$, 'is-active');
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderNavigationLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
28
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: HeaderNavigationLinkDirective, isStandalone: true, selector: "[odxHeaderNavigationLink]", ngImport: i0 }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderNavigationLinkDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ standalone: true,
34
+ selector: '[odxHeaderNavigationLink]',
35
+ }]
36
+ }], ctorParameters: function () { return []; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW5hdmlnYXRpb24tbGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXItbmF2aWdhdGlvbi9zcmMvbGliL2RpcmVjdGl2ZXMvaGVhZGVyLW5hdmlnYXRpb24tbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBT3ZELE1BQU0sT0FBTyxtQ0FBbUM7K0dBQW5DLG1DQUFtQzttR0FBbkMsbUNBQW1DOzs0RkFBbkMsbUNBQW1DO2tCQUwvQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsdUNBQXVDO29CQUNqRCxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7aUJBQ3ZGOztBQU9ELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEM7UUFDRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU87UUFDOUIsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3JILG9CQUFvQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDOytHQU5VLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHJlYWN0aXZlQ2xhc3NCaW5kaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3JvdXRlckxpbmtdW29keEhlYWRlck5hdmlnYXRpb25MaW5rXScsXG4gIGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IFJvdXRlckxpbmtBY3RpdmUsIGlucHV0czogWydyb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucyddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJOYXZpZ2F0aW9uUm91dGVyTGlua0RpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbb2R4SGVhZGVyTmF2aWdhdGlvbkxpbmtdJyxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyTmF2aWdhdGlvbkxpbmtEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCByb3V0ZXJMaW5rQWN0aXZlID0gaW5qZWN0KFJvdXRlckxpbmtBY3RpdmUsIHsgc2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgaWYgKCFyb3V0ZXJMaW5rQWN0aXZlKSByZXR1cm47XG4gICAgY29uc3QgaXNBY3RpdmUkID0gcm91dGVyTGlua0FjdGl2ZS5pc0FjdGl2ZUNoYW5nZS5waXBlKHN0YXJ0V2l0aChyb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgcmVhY3RpdmVDbGFzc0JpbmRpbmcoaXNBY3RpdmUkLCAnaXMtYWN0aXZlJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './header-navigation-link.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXItbmF2aWdhdGlvbi9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaGVhZGVyLW5hdmlnYXRpb24tbGluay5kaXJlY3RpdmUnO1xuIl19