@odx/angular 12.23.1 → 12.25.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 12.25.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 817749e: add support for institution assignment dc-plugin
8
+
9
+ ## 12.24.0
10
+
11
+ ### Minor Changes
12
+
13
+ - b68c1a1: ngOptimizedImage can now be used in the odx-card
14
+
3
15
  ## 12.23.1
4
16
 
5
17
  ### Patch Changes
@@ -3,6 +3,7 @@ export interface CardConfig {
3
3
  variant?: CardVariant;
4
4
  maxImageHeight?: string;
5
5
  imageRatio?: string;
6
+ objectFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
6
7
  }
7
8
  /**
8
9
  * Tools for customizing configuration for the card component
@@ -24,20 +25,25 @@ export declare const CardConfig: import("@angular/core").InjectionToken<Partial<
24
25
  variant: CardVariant;
25
26
  maxImageHeight: string;
26
27
  imageRatio: string;
28
+ objectFit: string;
27
29
  }>>, CardDefaultConfig: {
28
30
  variant: CardVariant;
29
31
  maxImageHeight: string;
30
32
  imageRatio: string;
33
+ objectFit: string;
31
34
  }, injectCardConfig: () => {
32
35
  variant: CardVariant;
33
36
  maxImageHeight: string;
34
37
  imageRatio: string;
38
+ objectFit: string;
35
39
  }, provideCardConfig: <D extends import("@odx/angular/utils").ConfigDependencies = import("@odx/angular/utils").ConfigDependencies<Partial<{
36
40
  variant: CardVariant;
37
41
  maxImageHeight: string;
38
42
  imageRatio: string;
43
+ objectFit: string;
39
44
  }>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<{
40
45
  variant: CardVariant;
41
46
  maxImageHeight: string;
42
47
  imageRatio: string;
48
+ objectFit: string;
43
49
  }>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
@@ -1,26 +1,25 @@
1
+ import { AfterViewInit, ChangeDetectorRef } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
2
3
  /**
3
4
  * Represents a card image component.
4
5
  */
5
- export declare class CardImageComponent {
6
+ export declare class CardImageComponent implements AfterViewInit {
7
+ private readonly cdr;
6
8
  private readonly config;
9
+ private readonly platformId;
10
+ private readonly _hasFill;
7
11
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
8
- /**
9
- * The ratio of the card image.
10
- *
11
- * @type {string}
12
- * @default 'auto'
13
- */
14
- imageRatio: string;
15
- /**
16
- * The maximum height of the card image.
17
- *
18
- * @type {string}
19
- * @default 'auto'
20
- */
21
- maxImageHeight: string;
22
- protected get getMaxImageHeight(): string;
23
- protected get getImageAspectRatio(): string;
12
+ readonly imageRatio: import("@angular/core").InputSignal<string>;
13
+ readonly maxImageHeight: import("@angular/core").InputSignal<string>;
14
+ readonly objectFit: import("@angular/core").InputSignal<string>;
15
+ constructor(cdr: ChangeDetectorRef);
16
+ get maxImageHeightStyle(): string;
17
+ get imageAspectRatioStyle(): string;
18
+ get objectFitStyle(): string;
19
+ get isAspectAuto(): boolean;
20
+ get hasFill(): boolean;
21
+ ngAfterViewInit(): void;
22
+ private getHostElement;
24
23
  static ɵfac: i0.ɵɵFactoryDeclaration<CardImageComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<CardImageComponent, "odx-card-image", never, { "imageRatio": { "alias": "imageRatio"; "required": false; }; "maxImageHeight": { "alias": "maxImageHeight"; "required": false; }; }, {}, never, ["odx-chip", "img"], true, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardImageComponent, "odx-card-image", never, { "imageRatio": { "alias": "imageRatio"; "required": false; "isSignal": true; }; "maxImageHeight": { "alias": "maxImageHeight"; "required": false; "isSignal": true; }; "objectFit": { "alias": "objectFit"; "required": false; "isSignal": true; }; }, {}, never, ["odx-chip", "img"], true, never>;
26
25
  }
@@ -5,5 +5,5 @@ import * as i0 from "@angular/core";
5
5
  export declare class HeaderComponent {
6
6
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "odx-header", never, {}, {}, never, ["button[odxMainMenuButton]", "odx-header-title", "*", "odx-search-bar", "odx-action-group, odx-auth", "[odxHeaderAvatar]"], true, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "odx-header", never, {}, {}, never, ["button[odxMainMenuButton]", "odx-header-title", "*", "odx-search-bar", "odx-action-group, odx-auth, odx-institution-assignment", "[odxHeaderAvatar]"], true, never>;
9
9
  }
@@ -65,7 +65,7 @@ let CardComponent = class CardComponent {
65
65
  }
66
66
  }
67
67
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardComponent, isStandalone: true, selector: "odx-card", inputs: { variant: "variant", menuIcon: "menuIcon" }, outputs: { interact: "interact" }, queries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "buttons", first: true, predicate: ActionGroupComponent, descendants: true }, { propertyName: "footer", first: true, predicate: CardFooterComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "menuHost", first: true, predicate: MenuDirective, descendants: true }], hostDirectives: [{ directive: i1.InteractiveDirective }], ngImport: i0, template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "ngmodule", type: MenuModule }, { kind: "directive", type: i3.MenuDirective, selector: "[odxMenu]", inputs: ["odxMenu", "odxMenuPosition"], exportAs: ["odxMenu"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardComponent, isStandalone: true, selector: "odx-card", inputs: { variant: "variant", menuIcon: "menuIcon" }, outputs: { interact: "interact" }, queries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "buttons", first: true, predicate: ActionGroupComponent, descendants: true }, { propertyName: "footer", first: true, predicate: CardFooterComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "menuHost", first: true, predicate: MenuDirective, descendants: true }], hostDirectives: [{ directive: i1.InteractiveDirective }], ngImport: i0, template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\">\n <odx-icon [name]=\"menuIcon\" iconSet=\"core\" aria-hidden=\"true\" />\n </button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "ngmodule", type: MenuModule }, { kind: "directive", type: i3.MenuDirective, selector: "[odxMenu]", inputs: ["odxMenu", "odxMenuPosition"], exportAs: ["odxMenu"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
69
69
  };
70
70
  __decorate([
71
71
  CSSModifier(),
@@ -78,7 +78,7 @@ CardComponent = __decorate([
78
78
  export { CardComponent };
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardComponent, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
81
+ args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\">\n <odx-icon [name]=\"menuIcon\" iconSet=\"core\" aria-hidden=\"true\" />\n </button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
82
82
  }], ctorParameters: () => [], propDecorators: { menu: [{
83
83
  type: ContentChild,
84
84
  args: [MenuComponent]
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
98
98
  }], interact: [{
99
99
  type: Output
100
100
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRXZDOzs7Ozs7R0FNRztBQVdJ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YWhELE9BQU87c0JBRGIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgSW50ZXJhY3RpdmVEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIE1lbnVEaXJlY3RpdmUsIE1lbnVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgY29udGFpbnNFbGVtZW50LCBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBpbmplY3RDYXJkQ29uZmlnIH0gZnJvbSAnLi9jYXJkLmNvbmZpZyc7XG5pbXBvcnQgeyBDYXJkRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IENhcmRWYXJpYW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjYXJkIGNvbXBvbmVudC5cbiAqIEl0IGNhbiBjb250YWluIGEgaGVhZGVyLCBib2R5LCBhbmQgZm9vdGVyLiBUaGUgY2FyZCBjb21wb25lbnQgY2FuIGFsc28gaGF2ZSBhIG1lbnUgYW5kIGFjdGlvbiBidXR0b25zLlxuICogSGFzIGhvc3QgZGlyZWN0aXZlIGZvciBpbnRlcmFjdGl2aXR5LlxuICpcbiAqIEBzZWUge0ludGVyYWN0aXZlRGlyZWN0aXZlfVxuICovXG5AQ1NTQ29tcG9uZW50KCdjYXJkJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTWVudU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnRdLFxuICBob3N0RGlyZWN0aXZlczogW0ludGVyYWN0aXZlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJhY3RpdmVEaXJlY3RpdmUgPSBpbmplY3QoSW50ZXJhY3RpdmVEaXJlY3RpdmUsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdENhcmRDb25maWcoKTtcblxuICBwcm90ZWN0ZWQgY2FyZFZhcmlhbnQgPSBDYXJkVmFyaWFudDtcblxuICBAQ29udGVudENoaWxkKE1lbnVDb21wb25lbnQpXG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51PzogTWVudUNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFjdGlvbkdyb3VwQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnV0dG9ucz86IEFjdGlvbkdyb3VwQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoTWVudURpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVIb3N0PzogTWVudURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKENhcmRGb290ZXJDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9vdGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcHVibGljIGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgdmFyaWFudCBvZiB0aGUgY2FyZC5cbiAgICpcbiAgICogQHR5cGUge0NhcmRWYXJpYW50fVxuICAgKiBAZGVmYXVsdCBDYXJkVmFyaWFudC5ERUZBVUxUXG4gICAqL1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YXJpYW50OiBDYXJkVmFyaWFudCA9IHRoaXMuY29uZmlnLnZhcmlhbnQgPz8gQ2FyZFZhcmlhbnQuREVGQVVMVDtcblxuICAvKipcbiAgICogTWVudSBpY29uIG5hbWUuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdtb3JlJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVJY29uID0gJ21vcmUnO1xuXG4gIC8qKlxuICAgKiBJbnRlcmFjdGl2aXR5IGV2ZW50IGVtaXR0ZXIuXG4gICAqXG4gICAqIEBlbWl0cyB7RXZlbnR9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGludGVyYWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZ2V0IGxhdW5jaFRpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudCA9PT0gQ2FyZFZhcmlhbnQuTEFVTkNIX1RJTEUgfHwgdGhpcy52YXJpYW50ID09PSBDYXJkVmFyaWFudC5MQVVOQ0hfVElMRV9DRU5URVJFRDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW50ZXJhY3RpdmVEaXJlY3RpdmUuaW50ZXJhY3QucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnN0b3BFdmVudHMoZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRXZlbnRzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCBpc0Zvb3RlckV2ZW50ID0gY29udGFpbnNFbGVtZW50KHRoaXMuZm9vdGVyPy5uYXRpdmVFbGVtZW50LCB0YXJnZXQsIGZhbHNlKTtcbiAgICBjb25zdCBpc01lbnVFdmVudCA9IGNvbnRhaW5zRWxlbWVudCh0aGlzLm1lbnVIb3N0Py5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRhcmdldCk7XG4gICAgY29uc3QgaXNIZWFkZXJCdXR0b25FdmVudCA9IGNvbnRhaW5zRWxlbWVudCh0aGlzLmJ1dHRvbnM/LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGFyZ2V0KTtcblxuICAgIGlmICghaXNGb290ZXJFdmVudCAmJiAhaXNNZW51RXZlbnQgJiYgIXRoaXMubWVudUhvc3Q/LmlzT3BlbigpICYmICFpc0hlYWRlckJ1dHRvbkV2ZW50KSB7XG4gICAgICB0aGlzLmludGVyYWN0LmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmICghbGF1bmNoVGlsZSkge1xuICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1jYXJkLWltYWdlXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX3RpdGxlIG9keC1oZWFkaW5nLTVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4Q2FyZENvbnRlbnRdLCBvZHgtY2FyZC1jb250ZW50XCIgLz5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cIm9keC1jYXJkX19jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtYXZhdGFyXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvZHgtY2FyZF9fdGl0bGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtbGF1bmNoLWNhcmQtc3VidGl0bGVcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWNhcmQtZm9vdGVyXCIgLz5cblxuQGlmIChtZW51KSB7XG4gIDxvZHgtYWN0aW9uLWdyb3VwIGNsYXNzPVwib2R4LWNhcmRfX21lbnVcIj5cbiAgICA8YnV0dG9uIG9keEJ1dHRvbiBbb2R4TWVudV09XCJtZW51VHBsXCIgb2R4TWVudVBvc2l0aW9uPVwiYm90dG9tLWVuZFwiPjxvZHgtaWNvbiBbbmFtZV09XCJtZW51SWNvblwiIGljb25TZXQ9XCJjb3JlXCIgLz48L2J1dHRvbj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWVudVRwbD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1tZW51XCIgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L29keC1hY3Rpb24tZ3JvdXA+XG59IEBlbHNlIGlmIChidXR0b25zKSB7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hY3Rpb24tZ3JvdXBcIiAvPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50IC8+XG48L25nLXRlbXBsYXRlPlxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRXZDOzs7Ozs7R0FNRztBQVdJ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YWhELE9BQU87c0JBRGIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgSW50ZXJhY3RpdmVEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIE1lbnVEaXJlY3RpdmUsIE1lbnVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgY29udGFpbnNFbGVtZW50LCBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBpbmplY3RDYXJkQ29uZmlnIH0gZnJvbSAnLi9jYXJkLmNvbmZpZyc7XG5pbXBvcnQgeyBDYXJkRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IENhcmRWYXJpYW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjYXJkIGNvbXBvbmVudC5cbiAqIEl0IGNhbiBjb250YWluIGEgaGVhZGVyLCBib2R5LCBhbmQgZm9vdGVyLiBUaGUgY2FyZCBjb21wb25lbnQgY2FuIGFsc28gaGF2ZSBhIG1lbnUgYW5kIGFjdGlvbiBidXR0b25zLlxuICogSGFzIGhvc3QgZGlyZWN0aXZlIGZvciBpbnRlcmFjdGl2aXR5LlxuICpcbiAqIEBzZWUge0ludGVyYWN0aXZlRGlyZWN0aXZlfVxuICovXG5AQ1NTQ29tcG9uZW50KCdjYXJkJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTWVudU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnRdLFxuICBob3N0RGlyZWN0aXZlczogW0ludGVyYWN0aXZlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJhY3RpdmVEaXJlY3RpdmUgPSBpbmplY3QoSW50ZXJhY3RpdmVEaXJlY3RpdmUsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdENhcmRDb25maWcoKTtcblxuICBwcm90ZWN0ZWQgY2FyZFZhcmlhbnQgPSBDYXJkVmFyaWFudDtcblxuICBAQ29udGVudENoaWxkKE1lbnVDb21wb25lbnQpXG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51PzogTWVudUNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFjdGlvbkdyb3VwQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnV0dG9ucz86IEFjdGlvbkdyb3VwQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoTWVudURpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVIb3N0PzogTWVudURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKENhcmRGb290ZXJDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9vdGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcHVibGljIGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgdmFyaWFudCBvZiB0aGUgY2FyZC5cbiAgICpcbiAgICogQHR5cGUge0NhcmRWYXJpYW50fVxuICAgKiBAZGVmYXVsdCBDYXJkVmFyaWFudC5ERUZBVUxUXG4gICAqL1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YXJpYW50OiBDYXJkVmFyaWFudCA9IHRoaXMuY29uZmlnLnZhcmlhbnQgPz8gQ2FyZFZhcmlhbnQuREVGQVVMVDtcblxuICAvKipcbiAgICogTWVudSBpY29uIG5hbWUuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdtb3JlJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVJY29uID0gJ21vcmUnO1xuXG4gIC8qKlxuICAgKiBJbnRlcmFjdGl2aXR5IGV2ZW50IGVtaXR0ZXIuXG4gICAqXG4gICAqIEBlbWl0cyB7RXZlbnR9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGludGVyYWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZ2V0IGxhdW5jaFRpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudCA9PT0gQ2FyZFZhcmlhbnQuTEFVTkNIX1RJTEUgfHwgdGhpcy52YXJpYW50ID09PSBDYXJkVmFyaWFudC5MQVVOQ0hfVElMRV9DRU5URVJFRDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW50ZXJhY3RpdmVEaXJlY3RpdmUuaW50ZXJhY3QucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnN0b3BFdmVudHMoZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRXZlbnRzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCBpc0Zvb3RlckV2ZW50ID0gY29udGFpbnNFbGVtZW50KHRoaXMuZm9vdGVyPy5uYXRpdmVFbGVtZW50LCB0YXJnZXQsIGZhbHNlKTtcbiAgICBjb25zdCBpc01lbnVFdmVudCA9IGNvbnRhaW5zRWxlbWVudCh0aGlzLm1lbnVIb3N0Py5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRhcmdldCk7XG4gICAgY29uc3QgaXNIZWFkZXJCdXR0b25FdmVudCA9IGNvbnRhaW5zRWxlbWVudCh0aGlzLmJ1dHRvbnM/LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGFyZ2V0KTtcblxuICAgIGlmICghaXNGb290ZXJFdmVudCAmJiAhaXNNZW51RXZlbnQgJiYgIXRoaXMubWVudUhvc3Q/LmlzT3BlbigpICYmICFpc0hlYWRlckJ1dHRvbkV2ZW50KSB7XG4gICAgICB0aGlzLmludGVyYWN0LmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmICghbGF1bmNoVGlsZSkge1xuICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1jYXJkLWltYWdlXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX3RpdGxlIG9keC1oZWFkaW5nLTVcIiByb2xlPVwiaGVhZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhDYXJkQ29udGVudF0sIG9keC1jYXJkLWNvbnRlbnRcIiAvPlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hdmF0YXJcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtY2FyZF9fY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm9keC1jYXJkX190aXRsZVwiIHJvbGU9XCJoZWFkaW5nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWxhdW5jaC1jYXJkLXN1YnRpdGxlXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1jYXJkLWZvb3RlclwiIC8+XG5cbkBpZiAobWVudSkge1xuICA8b2R4LWFjdGlvbi1ncm91cCBjbGFzcz1cIm9keC1jYXJkX19tZW51XCI+XG4gICAgPGJ1dHRvbiBvZHhCdXR0b24gW29keE1lbnVdPVwibWVudVRwbFwiIG9keE1lbnVQb3NpdGlvbj1cImJvdHRvbS1lbmRcIj5cbiAgICAgIDxvZHgtaWNvbiBbbmFtZV09XCJtZW51SWNvblwiIGljb25TZXQ9XCJjb3JlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWVudVRwbD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1tZW51XCIgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L29keC1hY3Rpb24tZ3JvdXA+XG59IEBlbHNlIGlmIChidXR0b25zKSB7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hY3Rpb24tZ3JvdXBcIiAvPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50IC8+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -20,5 +20,6 @@ export const { CardConfig, CardDefaultConfig, injectCardConfig, provideCardConfi
20
20
  variant: CardVariant.DEFAULT,
21
21
  maxImageHeight: 'auto',
22
22
  imageRatio: 'auto',
23
+ objectFit: 'cover',
23
24
  });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSw4QkFBOEIsRUFBRTtJQUMvSSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQXNCO0lBQzNDLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFVBQVUsRUFBRSxNQUFNO0NBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDYXJkVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJkQ29uZmlnIHtcbiAgdmFyaWFudD86IENhcmRWYXJpYW50O1xuICBtYXhJbWFnZUhlaWdodD86IHN0cmluZztcbiAgaW1hZ2VSYXRpbz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUb29scyBmb3IgY3VzdG9taXppbmcgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcmQgY29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBAQ29tcG9uZW50KHtcbiAqICAuLi5cbiAqICBwcm92aWRlcnM6IFtwcm92aWRlQ2FyZENvbmZpZyh7aW1hZ2VSYXRpbzogJzUvMycsIG1heEltYWdlSGVpZ2h0OiAnMjAwcHgnfSldXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15Q2FyZENvbXBvbmVudCB7fVxuICogYGBgXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqICBjb25zdHJ1Y3RvcihASW5qZWN0KENhcmRDb25maWcpIHByaXZhdGUgcmVhZG9ubHkgY2FyZENvbmZpZzogQ2FyZENvbmZpZykge31cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgeyBDYXJkQ29uZmlnLCBDYXJkRGVmYXVsdENvbmZpZywgaW5qZWN0Q2FyZENvbmZpZywgcHJvdmlkZUNhcmRDb25maWcgfSA9IGNyZWF0ZUNvbmZpZ1Rva2VucygnQ2FyZCcsICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkJywge1xuICB2YXJpYW50OiBDYXJkVmFyaWFudC5ERUZBVUxUIGFzIENhcmRWYXJpYW50LFxuICBtYXhJbWFnZUhlaWdodDogJ2F1dG8nLFxuICBpbWFnZVJhdGlvOiAnYXV0bycsXG59KTtcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVN2Qzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSw4QkFBOEIsRUFBRTtJQUMvSSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQXNCO0lBQzNDLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFNBQVMsRUFBRSxPQUFPO0NBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDYXJkVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJkQ29uZmlnIHtcbiAgdmFyaWFudD86IENhcmRWYXJpYW50O1xuICBtYXhJbWFnZUhlaWdodD86IHN0cmluZztcbiAgaW1hZ2VSYXRpbz86IHN0cmluZztcbiAgb2JqZWN0Rml0PzogJ2NvdmVyJyB8ICdjb250YWluJyB8ICdmaWxsJyB8ICdub25lJyB8ICdzY2FsZS1kb3duJztcbn1cblxuLyoqXG4gKiBUb29scyBmb3IgY3VzdG9taXppbmcgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcmQgY29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBAQ29tcG9uZW50KHtcbiAqICAuLi5cbiAqICBwcm92aWRlcnM6IFtwcm92aWRlQ2FyZENvbmZpZyh7aW1hZ2VSYXRpbzogJzUvMycsIG1heEltYWdlSGVpZ2h0OiAnMjAwcHgnfSldXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15Q2FyZENvbXBvbmVudCB7fVxuICogYGBgXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqICBjb25zdHJ1Y3RvcihASW5qZWN0KENhcmRDb25maWcpIHByaXZhdGUgcmVhZG9ubHkgY2FyZENvbmZpZzogQ2FyZENvbmZpZykge31cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgeyBDYXJkQ29uZmlnLCBDYXJkRGVmYXVsdENvbmZpZywgaW5qZWN0Q2FyZENvbmZpZywgcHJvdmlkZUNhcmRDb25maWcgfSA9IGNyZWF0ZUNvbmZpZ1Rva2VucygnQ2FyZCcsICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkJywge1xuICB2YXJpYW50OiBDYXJkVmFyaWFudC5ERUZBVUxUIGFzIENhcmRWYXJpYW50LFxuICBtYXhJbWFnZUhlaWdodDogJ2F1dG8nLFxuICBpbWFnZVJhdGlvOiAnYXV0bycsXG4gIG9iamVjdEZpdDogJ2NvdmVyJyxcbn0pO1xuIl19
@@ -1,5 +1,6 @@
1
- import { __decorate } from "tslib";
2
- import { Component, HostBinding, Input } from '@angular/core';
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input, PLATFORM_ID, signal } from '@angular/core';
3
4
  import { ChipListRowComponent } from '@odx/angular/components/chip';
4
5
  import { CSSComponent } from '@odx/angular/internal';
5
6
  import { injectElement } from '@odx/angular/utils';
@@ -9,49 +10,74 @@ import * as i0 from "@angular/core";
9
10
  * Represents a card image component.
10
11
  */
11
12
  let CardImageComponent = class CardImageComponent {
12
- constructor() {
13
+ constructor(cdr) {
14
+ this.cdr = cdr;
13
15
  this.config = injectCardConfig();
16
+ this.platformId = inject(PLATFORM_ID);
17
+ this._hasFill = signal(false);
14
18
  this.element = injectElement();
15
- /**
16
- * The ratio of the card image.
17
- *
18
- * @type {string}
19
- * @default 'auto'
20
- */
21
- this.imageRatio = this.config.imageRatio ?? 'auto';
22
- /**
23
- * The maximum height of the card image.
24
- *
25
- * @type {string}
26
- * @default 'auto'
27
- */
28
- this.maxImageHeight = this.config.maxImageHeight ?? 'auto';
29
- }
30
- get getMaxImageHeight() {
31
- return this.maxImageHeight ?? this.config.maxImageHeight ?? 'auto';
32
- }
33
- get getImageAspectRatio() {
34
- return this.imageRatio ?? this.config.imageRatio ?? 'auto';
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CardImageComponent, isStandalone: true, selector: "odx-card-image", inputs: { imageRatio: "imageRatio", maxImageHeight: "maxImageHeight" }, host: { properties: { "style.--odx-card-image-max-height": "this.getMaxImageHeight", "style.--odx-card-image-aspect-ratio": "this.getImageAspectRatio" } }, ngImport: i0, template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n", dependencies: [{ kind: "component", type: ChipListRowComponent, selector: "odx-chip-list-row" }] }); }
19
+ this.imageRatio = input(this.config.imageRatio ?? 'auto');
20
+ this.maxImageHeight = input(this.config.maxImageHeight ?? 'auto');
21
+ this.objectFit = input(this.config.objectFit ?? 'cover');
22
+ }
23
+ get maxImageHeightStyle() {
24
+ return this.maxImageHeight() ?? this.config.maxImageHeight ?? 'auto';
25
+ }
26
+ get imageAspectRatioStyle() {
27
+ return this.imageRatio() ?? this.config.imageRatio ?? 'auto';
28
+ }
29
+ get objectFitStyle() {
30
+ return this.objectFit() ?? this.config.objectFit ?? 'auto';
31
+ }
32
+ get isAspectAuto() {
33
+ return this.imageRatio() === 'auto';
34
+ }
35
+ get hasFill() {
36
+ return this._hasFill();
37
+ }
38
+ ngAfterViewInit() {
39
+ try {
40
+ if (!isPlatformBrowser(this.platformId)) {
41
+ return;
42
+ }
43
+ const hostEl = this.getHostElement(this.element);
44
+ if (!hostEl) {
45
+ return;
46
+ }
47
+ const found = !!hostEl.querySelector?.('img[fill], img[ng-reflect-fill]');
48
+ this._hasFill.set(found);
49
+ this.cdr.markForCheck();
50
+ }
51
+ catch { }
52
+ }
53
+ getHostElement(el) {
54
+ if (!el)
55
+ return null;
56
+ if (typeof el === 'object' && el !== null && 'nativeElement' in el) {
57
+ const candidate = el.nativeElement;
58
+ if (candidate instanceof HTMLElement)
59
+ return candidate;
60
+ }
61
+ if (el instanceof HTMLElement)
62
+ return el;
63
+ return null;
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardImageComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CardImageComponent, isStandalone: true, selector: "odx-card-image", inputs: { imageRatio: { classPropertyName: "imageRatio", publicName: "imageRatio", isSignal: true, isRequired: false, transformFunction: null }, maxImageHeight: { classPropertyName: "maxImageHeight", publicName: "maxImageHeight", isSignal: true, isRequired: false, transformFunction: null }, objectFit: { classPropertyName: "objectFit", publicName: "objectFit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--odx-card-image-max-height": "maxImageHeightStyle", "style.--odx-card-image-aspect-ratio": "imageAspectRatioStyle", "style.--odx-card-image-object-fit": "objectFitStyle", "class.has-aspect-auto": "isAspectAuto", "class.has-fill": "hasFill" } }, ngImport: i0, template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n", dependencies: [{ kind: "component", type: ChipListRowComponent, selector: "odx-chip-list-row" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
67
  };
39
68
  CardImageComponent = __decorate([
40
- CSSComponent('card-image')
69
+ CSSComponent('card-image'),
70
+ __metadata("design:paramtypes", [ChangeDetectorRef])
41
71
  ], CardImageComponent);
42
72
  export { CardImageComponent };
43
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardImageComponent, decorators: [{
44
74
  type: Component,
45
- args: [{ selector: 'odx-card-image', standalone: true, imports: [ChipListRowComponent], template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n" }]
46
- }], propDecorators: { imageRatio: [{
47
- type: Input
48
- }], maxImageHeight: [{
49
- type: Input
50
- }], getMaxImageHeight: [{
51
- type: HostBinding,
52
- args: [`style.--odx-card-image-max-height`]
53
- }], getImageAspectRatio: [{
54
- type: HostBinding,
55
- args: [`style.--odx-card-image-aspect-ratio`]
56
- }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWltYWdlL2NhcmQtaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1pbWFnZS9jYXJkLWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFRSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUF4QjtRQUNZLFdBQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUUxQzs7Ozs7V0FLRztRQUVJLGVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUM7UUFFckQ7Ozs7O1dBS0c7UUFFSSxtQkFBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQztLQVc5RDtJQVRDLElBQ2MsaUJBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUM7SUFDckUsQ0FBQztJQUVELElBQ2MsbUJBQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUM7SUFDN0QsQ0FBQzsrR0E5QlUsa0JBQWtCO21HQUFsQixrQkFBa0IsOFNDaEIvQixrTUFPQSw0Q0RPWSxvQkFBb0I7O0FBRW5CLGtCQUFrQjtJQVA5QixZQUFZLENBQUMsWUFBWSxDQUFDO0dBT2Qsa0JBQWtCLENBK0I5Qjs7NEZBL0JZLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FFZCxJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsQ0FBQzs4QkFheEIsVUFBVTtzQkFEaEIsS0FBSztnQkFVQyxjQUFjO3NCQURwQixLQUFLO2dCQUlRLGlCQUFpQjtzQkFEOUIsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBTWxDLG1CQUFtQjtzQkFEaEMsV0FBVzt1QkFBQyxxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hpcExpc3RSb3dDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jaGlwJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGluamVjdENhcmRDb25maWcgfSBmcm9tICcuLi8uLi9jYXJkLmNvbmZpZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNhcmQgaW1hZ2UgY29tcG9uZW50LlxuICovXG5AQ1NTQ29tcG9uZW50KCdjYXJkLWltYWdlJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYXJkLWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2hpcExpc3RSb3dDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkSW1hZ2VDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdENhcmRDb25maWcoKTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIFRoZSByYXRpbyBvZiB0aGUgY2FyZCBpbWFnZS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ2F1dG8nXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW1hZ2VSYXRpbyA9IHRoaXMuY29uZmlnLmltYWdlUmF0aW8gPz8gJ2F1dG8nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBoZWlnaHQgb2YgdGhlIGNhcmQgaW1hZ2UuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdhdXRvJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1heEltYWdlSGVpZ2h0ID0gdGhpcy5jb25maWcubWF4SW1hZ2VIZWlnaHQgPz8gJ2F1dG8nO1xuXG4gIEBIb3N0QmluZGluZyhgc3R5bGUuLS1vZHgtY2FyZC1pbWFnZS1tYXgtaGVpZ2h0YClcbiAgcHJvdGVjdGVkIGdldCBnZXRNYXhJbWFnZUhlaWdodCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1heEltYWdlSGVpZ2h0ID8/IHRoaXMuY29uZmlnLm1heEltYWdlSGVpZ2h0ID8/ICdhdXRvJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhgc3R5bGUuLS1vZHgtY2FyZC1pbWFnZS1hc3BlY3QtcmF0aW9gKVxuICBwcm90ZWN0ZWQgZ2V0IGdldEltYWdlQXNwZWN0UmF0aW8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbWFnZVJhdGlvID8/IHRoaXMuY29uZmlnLmltYWdlUmF0aW8gPz8gJ2F1dG8nO1xuICB9XG59XG4iLCI8b2R4LWNoaXAtbGlzdC1yb3c+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwib2R4LWNoaXBcIiBzZWxlY3Q9XCJvZHgtY2hpcFwiIC8+XG48L29keC1jaGlwLWxpc3Qtcm93PlxuXG48ZmlndXJlIGNsYXNzPVwib2R4LWNhcmQtaW1hZ2VfX2ltZ1wiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJpbWdcIiAvPlxuPC9maWd1cmU+XG4iXX0=
75
+ args: [{ selector: 'odx-card-image', standalone: true, imports: [ChipListRowComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
76
+ '[style.--odx-card-image-max-height]': 'maxImageHeightStyle',
77
+ '[style.--odx-card-image-aspect-ratio]': 'imageAspectRatioStyle',
78
+ '[style.--odx-card-image-object-fit]': 'objectFitStyle',
79
+ '[class.has-aspect-auto]': 'isAspectAuto',
80
+ '[class.has-fill]': 'hasFill',
81
+ }, template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n" }]
82
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWltYWdlL2NhcmQtaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1pbWFnZS9jYXJkLWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFnQkksSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBa0I7SUFVN0IsWUFBNkIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFUbEMsV0FBTSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUUxQixlQUFVLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQzdELG1CQUFjLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLGNBQVMsR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUM7SUFFdEIsQ0FBQztJQUV2RCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQVcscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztJQUNaLENBQUM7SUFFTyxjQUFjLENBQUMsRUFBVztRQUNoQyxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JCLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksZUFBZSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ25FLE1BQU0sU0FBUyxHQUFJLEVBQWlDLENBQUMsYUFBYSxDQUFDO1lBQ25FLElBQUksU0FBUyxZQUFZLFdBQVc7Z0JBQUUsT0FBTyxTQUFTLENBQUM7UUFDekQsQ0FBQztRQUNELElBQUksRUFBRSxZQUFZLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBdkRVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHV3QkN6Qi9CLGtNQU9BLDRDRFFZLG9CQUFvQjs7QUFVbkIsa0JBQWtCO0lBZjlCLFlBQVksQ0FBQyxZQUFZLENBQUM7cUNBeUJTLGlCQUFpQjtHQVZ4QyxrQkFBa0IsQ0F3RDlCOzs0RkF4RFksa0JBQWtCO2tCQWQ5QixTQUFTOytCQUNFLGdCQUFnQixjQUVkLElBQUksV0FDUCxDQUFDLG9CQUFvQixDQUFDLG1CQUNkLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0oscUNBQXFDLEVBQUUscUJBQXFCO3dCQUM1RCx1Q0FBdUMsRUFBRSx1QkFBdUI7d0JBQ2hFLHFDQUFxQyxFQUFFLGdCQUFnQjt3QkFDdkQseUJBQXlCLEVBQUUsY0FBYzt3QkFDekMsa0JBQWtCLEVBQUUsU0FBUztxQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgUExBVEZPUk1fSUQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hpcExpc3RSb3dDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jaGlwJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGluamVjdENhcmRDb25maWcgfSBmcm9tICcuLi8uLi9jYXJkLmNvbmZpZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNhcmQgaW1hZ2UgY29tcG9uZW50LlxuICovXG5AQ1NTQ29tcG9uZW50KCdjYXJkLWltYWdlJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYXJkLWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2hpcExpc3RSb3dDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbc3R5bGUuLS1vZHgtY2FyZC1pbWFnZS1tYXgtaGVpZ2h0XSc6ICdtYXhJbWFnZUhlaWdodFN0eWxlJyxcbiAgICAnW3N0eWxlLi0tb2R4LWNhcmQtaW1hZ2UtYXNwZWN0LXJhdGlvXSc6ICdpbWFnZUFzcGVjdFJhdGlvU3R5bGUnLFxuICAgICdbc3R5bGUuLS1vZHgtY2FyZC1pbWFnZS1vYmplY3QtZml0XSc6ICdvYmplY3RGaXRTdHlsZScsXG4gICAgJ1tjbGFzcy5oYXMtYXNwZWN0LWF1dG9dJzogJ2lzQXNwZWN0QXV0bycsXG4gICAgJ1tjbGFzcy5oYXMtZmlsbF0nOiAnaGFzRmlsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENhcmRJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdENhcmRDb25maWcoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGFzRmlsbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZVJhdGlvID0gaW5wdXQ8c3RyaW5nPih0aGlzLmNvbmZpZy5pbWFnZVJhdGlvID8/ICdhdXRvJyk7XG4gIHB1YmxpYyByZWFkb25seSBtYXhJbWFnZUhlaWdodCA9IGlucHV0PHN0cmluZz4odGhpcy5jb25maWcubWF4SW1hZ2VIZWlnaHQgPz8gJ2F1dG8nKTtcbiAgcHVibGljIHJlYWRvbmx5IG9iamVjdEZpdCA9IGlucHV0PHN0cmluZz4odGhpcy5jb25maWcub2JqZWN0Rml0ID8/ICdjb3ZlcicpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBwdWJsaWMgZ2V0IG1heEltYWdlSGVpZ2h0U3R5bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYXhJbWFnZUhlaWdodCgpID8/IHRoaXMuY29uZmlnLm1heEltYWdlSGVpZ2h0ID8/ICdhdXRvJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW1hZ2VBc3BlY3RSYXRpb1N0eWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW1hZ2VSYXRpbygpID8/IHRoaXMuY29uZmlnLmltYWdlUmF0aW8gPz8gJ2F1dG8nO1xuICB9XG5cbiAgcHVibGljIGdldCBvYmplY3RGaXRTdHlsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9iamVjdEZpdCgpID8/IHRoaXMuY29uZmlnLm9iamVjdEZpdCA/PyAnYXV0byc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQXNwZWN0QXV0bygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbWFnZVJhdGlvKCkgPT09ICdhdXRvJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzRmlsbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzRmlsbCgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQodGhpcy5lbGVtZW50KTtcbiAgICAgIGlmICghaG9zdEVsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZvdW5kID0gISFob3N0RWwucXVlcnlTZWxlY3Rvcj8uKCdpbWdbZmlsbF0sIGltZ1tuZy1yZWZsZWN0LWZpbGxdJyk7XG4gICAgICB0aGlzLl9oYXNGaWxsLnNldChmb3VuZCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9IGNhdGNoIHt9XG4gIH1cblxuICBwcml2YXRlIGdldEhvc3RFbGVtZW50KGVsOiB1bmtub3duKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIWVsKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGVsID09PSAnb2JqZWN0JyAmJiBlbCAhPT0gbnVsbCAmJiAnbmF0aXZlRWxlbWVudCcgaW4gZWwpIHtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IChlbCBhcyB7IG5hdGl2ZUVsZW1lbnQ6IHVua25vd24gfSkubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmIChjYW5kaWRhdGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICB9XG4gICAgaWYgKGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHJldHVybiBlbDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIiwiPG9keC1jaGlwLWxpc3Qtcm93PlxuICA8bmctY29udGVudCBuZ1Byb2plY3RBcz1cIm9keC1jaGlwXCIgc2VsZWN0PVwib2R4LWNoaXBcIiAvPlxuPC9vZHgtY2hpcC1saXN0LXJvdz5cblxuPGZpZ3VyZSBjbGFzcz1cIm9keC1jYXJkLWltYWdlX19pbWdcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW1nXCIgLz5cbjwvZmlndXJlPlxuIl19
@@ -12,7 +12,7 @@ let HeaderComponent = class HeaderComponent {
12
12
  this.element = injectElement();
13
13
  }
14
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\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 }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth, odx-institution-assignment\" />\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 }); }
16
16
  };
17
17
  HeaderComponent = __decorate([
18
18
  CSSComponent('header')
@@ -20,6 +20,6 @@ HeaderComponent = __decorate([
20
20
  export { HeaderComponent };
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, decorators: [{
22
22
  type: Component,
23
- 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n" }]
23
+ 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth, odx-institution-assignment\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n" }]
24
24
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlci9zcmMvbGliL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXIvc3JjL2xpYi9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRW5EOztHQUVHO0FBVUksSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUFyQjtRQUNXLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztLQUMzQzsrR0FGWSxlQUFlO21HQUFmLGVBQWUsc0VDakI1QixrWEFTQSw0Q0RHWSxhQUFhOztBQUtaLGVBQWU7SUFUM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQztHQVNWLGVBQWUsQ0FFM0I7OzRGQUZZLGVBQWU7a0JBUjNCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFlBQVksV0FDYixDQUFDLGFBQWEsQ0FBQyxpQkFFVCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ29EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2dvJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBoZWFkZXIgY29tcG9uZW50LlxuICovXG5AQ1NTQ29tcG9uZW50KCdoZWFkZXInKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWhlYWRlcicsXG4gIGltcG9ydHM6IFtMb2dvRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltvZHhNYWluTWVudUJ1dHRvbl1cIiAvPlxuPG9keC1sb2dvIC8+XG48bmctY29udGVudCBzZWxlY3Q9XCJvZHgtaGVhZGVyLXRpdGxlXCIgLz5cbjxkaXYgY2xhc3M9XCJvZHgtaGVhZGVyX19jb250ZW50XCI+XG4gIDxzcGFuIGNsYXNzPVwib2R4LWhlYWRlcl9fY29udGVudC1jb250YWluZXJcIj48bmctY29udGVudCAvPjwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LXNlYXJjaC1iYXJcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWFjdGlvbi1ncm91cCwgb2R4LWF1dGhcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW29keEhlYWRlckF2YXRhcl1cIiAvPlxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlci9zcmMvbGliL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXIvc3JjL2xpYi9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRW5EOztHQUVHO0FBVUksSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUFyQjtRQUNXLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztLQUMzQzsrR0FGWSxlQUFlO21HQUFmLGVBQWUsc0VDakI1Qiw4WUFTQSw0Q0RHWSxhQUFhOztBQUtaLGVBQWU7SUFUM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQztHQVNWLGVBQWUsQ0FFM0I7OzRGQUZZLGVBQWU7a0JBUjNCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFlBQVksV0FDYixDQUFDLGFBQWEsQ0FBQyxpQkFFVCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ29EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2dvJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBoZWFkZXIgY29tcG9uZW50LlxuICovXG5AQ1NTQ29tcG9uZW50KCdoZWFkZXInKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWhlYWRlcicsXG4gIGltcG9ydHM6IFtMb2dvRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltvZHhNYWluTWVudUJ1dHRvbl1cIiAvPlxuPG9keC1sb2dvIC8+XG48bmctY29udGVudCBzZWxlY3Q9XCJvZHgtaGVhZGVyLXRpdGxlXCIgLz5cbjxkaXYgY2xhc3M9XCJvZHgtaGVhZGVyX19jb250ZW50XCI+XG4gIDxzcGFuIGNsYXNzPVwib2R4LWhlYWRlcl9fY29udGVudC1jb250YWluZXJcIj48bmctY29udGVudCAvPjwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LXNlYXJjaC1iYXJcIiAvPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWFjdGlvbi1ncm91cCwgb2R4LWF1dGgsIG9keC1pbnN0aXR1dGlvbi1hc3NpZ25tZW50XCIgLz5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhIZWFkZXJBdmF0YXJdXCIgLz5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { ViewEncapsulation, ChangeDetectionStrategy, Component, HostBinding, Input, inject, EventEmitter, ElementRef, Output, ContentChild, ViewChild, Directive, NgModule } from '@angular/core';
3
+ import { ViewEncapsulation, ChangeDetectionStrategy, Component, inject, PLATFORM_ID, signal, input, ChangeDetectorRef, EventEmitter, ElementRef, Output, Input, ContentChild, ViewChild, Directive, NgModule } from '@angular/core';
4
4
  import * as i1 from '@odx/angular/cdk/a11y';
5
5
  import { InteractiveDirective, A11yModule } from '@odx/angular/cdk/a11y';
6
6
  import { ActionGroupComponent } from '@odx/angular/components/action-group';
@@ -10,8 +10,9 @@ import * as i3 from '@odx/angular/components/menu';
10
10
  import { MenuModule, MenuDirective, MenuComponent } from '@odx/angular/components/menu';
11
11
  import { CSSComponent, CSSModifier } from '@odx/angular/internal';
12
12
  import { createConfigTokens, injectElement, untilDestroyed, containsElement } from '@odx/angular/utils';
13
- import { ChipListRowComponent } from '@odx/angular/components/chip';
14
13
  import * as i2 from '@angular/common';
14
+ import { isPlatformBrowser } from '@angular/common';
15
+ import { ChipListRowComponent } from '@odx/angular/components/chip';
15
16
  import { CoreModule } from '@odx/angular';
16
17
 
17
18
  const CardVariant = {
@@ -41,6 +42,7 @@ const { CardConfig, CardDefaultConfig, injectCardConfig, provideCardConfig } = c
41
42
  variant: CardVariant.DEFAULT,
42
43
  maxImageHeight: 'auto',
43
44
  imageRatio: 'auto',
45
+ objectFit: 'cover',
44
46
  });
45
47
 
46
48
  /**
@@ -61,50 +63,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
61
63
  * Represents a card image component.
62
64
  */
63
65
  let CardImageComponent = class CardImageComponent {
64
- constructor() {
66
+ constructor(cdr) {
67
+ this.cdr = cdr;
65
68
  this.config = injectCardConfig();
69
+ this.platformId = inject(PLATFORM_ID);
70
+ this._hasFill = signal(false);
66
71
  this.element = injectElement();
67
- /**
68
- * The ratio of the card image.
69
- *
70
- * @type {string}
71
- * @default 'auto'
72
- */
73
- this.imageRatio = this.config.imageRatio ?? 'auto';
74
- /**
75
- * The maximum height of the card image.
76
- *
77
- * @type {string}
78
- * @default 'auto'
79
- */
80
- this.maxImageHeight = this.config.maxImageHeight ?? 'auto';
72
+ this.imageRatio = input(this.config.imageRatio ?? 'auto');
73
+ this.maxImageHeight = input(this.config.maxImageHeight ?? 'auto');
74
+ this.objectFit = input(this.config.objectFit ?? 'cover');
81
75
  }
82
- get getMaxImageHeight() {
83
- return this.maxImageHeight ?? this.config.maxImageHeight ?? 'auto';
76
+ get maxImageHeightStyle() {
77
+ return this.maxImageHeight() ?? this.config.maxImageHeight ?? 'auto';
84
78
  }
85
- get getImageAspectRatio() {
86
- return this.imageRatio ?? this.config.imageRatio ?? 'auto';
79
+ get imageAspectRatioStyle() {
80
+ return this.imageRatio() ?? this.config.imageRatio ?? 'auto';
87
81
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CardImageComponent, isStandalone: true, selector: "odx-card-image", inputs: { imageRatio: "imageRatio", maxImageHeight: "maxImageHeight" }, host: { properties: { "style.--odx-card-image-max-height": "this.getMaxImageHeight", "style.--odx-card-image-aspect-ratio": "this.getImageAspectRatio" } }, ngImport: i0, template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n", dependencies: [{ kind: "component", type: ChipListRowComponent, selector: "odx-chip-list-row" }] }); }
82
+ get objectFitStyle() {
83
+ return this.objectFit() ?? this.config.objectFit ?? 'auto';
84
+ }
85
+ get isAspectAuto() {
86
+ return this.imageRatio() === 'auto';
87
+ }
88
+ get hasFill() {
89
+ return this._hasFill();
90
+ }
91
+ ngAfterViewInit() {
92
+ try {
93
+ if (!isPlatformBrowser(this.platformId)) {
94
+ return;
95
+ }
96
+ const hostEl = this.getHostElement(this.element);
97
+ if (!hostEl) {
98
+ return;
99
+ }
100
+ const found = !!hostEl.querySelector?.('img[fill], img[ng-reflect-fill]');
101
+ this._hasFill.set(found);
102
+ this.cdr.markForCheck();
103
+ }
104
+ catch { }
105
+ }
106
+ getHostElement(el) {
107
+ if (!el)
108
+ return null;
109
+ if (typeof el === 'object' && el !== null && 'nativeElement' in el) {
110
+ const candidate = el.nativeElement;
111
+ if (candidate instanceof HTMLElement)
112
+ return candidate;
113
+ }
114
+ if (el instanceof HTMLElement)
115
+ return el;
116
+ return null;
117
+ }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardImageComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CardImageComponent, isStandalone: true, selector: "odx-card-image", inputs: { imageRatio: { classPropertyName: "imageRatio", publicName: "imageRatio", isSignal: true, isRequired: false, transformFunction: null }, maxImageHeight: { classPropertyName: "maxImageHeight", publicName: "maxImageHeight", isSignal: true, isRequired: false, transformFunction: null }, objectFit: { classPropertyName: "objectFit", publicName: "objectFit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--odx-card-image-max-height": "maxImageHeightStyle", "style.--odx-card-image-aspect-ratio": "imageAspectRatioStyle", "style.--odx-card-image-object-fit": "objectFitStyle", "class.has-aspect-auto": "isAspectAuto", "class.has-fill": "hasFill" } }, ngImport: i0, template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n", dependencies: [{ kind: "component", type: ChipListRowComponent, selector: "odx-chip-list-row" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
120
  };
91
121
  CardImageComponent = __decorate([
92
- CSSComponent('card-image')
122
+ CSSComponent('card-image'),
123
+ __metadata("design:paramtypes", [ChangeDetectorRef])
93
124
  ], CardImageComponent);
94
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardImageComponent, decorators: [{
95
126
  type: Component,
96
- args: [{ selector: 'odx-card-image', standalone: true, imports: [ChipListRowComponent], template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n" }]
97
- }], propDecorators: { imageRatio: [{
98
- type: Input
99
- }], maxImageHeight: [{
100
- type: Input
101
- }], getMaxImageHeight: [{
102
- type: HostBinding,
103
- args: [`style.--odx-card-image-max-height`]
104
- }], getImageAspectRatio: [{
105
- type: HostBinding,
106
- args: [`style.--odx-card-image-aspect-ratio`]
107
- }] } });
127
+ args: [{ selector: 'odx-card-image', standalone: true, imports: [ChipListRowComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
128
+ '[style.--odx-card-image-max-height]': 'maxImageHeightStyle',
129
+ '[style.--odx-card-image-aspect-ratio]': 'imageAspectRatioStyle',
130
+ '[style.--odx-card-image-object-fit]': 'objectFitStyle',
131
+ '[class.has-aspect-auto]': 'isAspectAuto',
132
+ '[class.has-fill]': 'hasFill',
133
+ }, template: "<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n" }]
134
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
108
135
 
109
136
  /**
110
137
  * Represents a launch card subtitle component.
@@ -171,7 +198,7 @@ let CardComponent = class CardComponent {
171
198
  }
172
199
  }
173
200
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardComponent, isStandalone: true, selector: "odx-card", inputs: { variant: "variant", menuIcon: "menuIcon" }, outputs: { interact: "interact" }, queries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "buttons", first: true, predicate: ActionGroupComponent, descendants: true }, { propertyName: "footer", first: true, predicate: CardFooterComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "menuHost", first: true, predicate: MenuDirective, descendants: true }], hostDirectives: [{ directive: i1.InteractiveDirective }], ngImport: i0, template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "ngmodule", type: MenuModule }, { kind: "directive", type: i3.MenuDirective, selector: "[odxMenu]", inputs: ["odxMenu", "odxMenuPosition"], exportAs: ["odxMenu"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardComponent, isStandalone: true, selector: "odx-card", inputs: { variant: "variant", menuIcon: "menuIcon" }, outputs: { interact: "interact" }, queries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "buttons", first: true, predicate: ActionGroupComponent, descendants: true }, { propertyName: "footer", first: true, predicate: CardFooterComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "menuHost", first: true, predicate: MenuDirective, descendants: true }], hostDirectives: [{ directive: i1.InteractiveDirective }], ngImport: i0, template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\">\n <odx-icon [name]=\"menuIcon\" iconSet=\"core\" aria-hidden=\"true\" />\n </button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "ngmodule", type: MenuModule }, { kind: "directive", type: i3.MenuDirective, selector: "[odxMenu]", inputs: ["odxMenu", "odxMenuPosition"], exportAs: ["odxMenu"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
202
  };
176
203
  __decorate([
177
204
  CSSModifier(),
@@ -183,7 +210,7 @@ CardComponent = __decorate([
183
210
  ], CardComponent);
184
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardComponent, decorators: [{
185
212
  type: Component,
186
- args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
213
+ args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\">\n <odx-icon [name]=\"menuIcon\" iconSet=\"core\" aria-hidden=\"true\" />\n </button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
187
214
  }], ctorParameters: () => [], propDecorators: { menu: [{
188
215
  type: ContentChild,
189
216
  args: [MenuComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-card.mjs","sources":["../../../../libs/angular/components/card/src/lib/models/card-variant.ts","../../../../libs/angular/components/card/src/lib/card.config.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.html","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.ts","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.html","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.ts","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.html","../../../../libs/angular/components/card/src/lib/card.component.ts","../../../../libs/angular/components/card/src/lib/card.component.html","../../../../libs/angular/components/card/src/lib/directives/card-content.directive.ts","../../../../libs/angular/components/card/src/lib/card.module.ts","../../../../libs/angular/components/card/src/odx-angular-components-card.ts"],"sourcesContent":["export type CardVariant = (typeof CardVariant)[keyof typeof CardVariant];\n\nexport const CardVariant = {\n DEFAULT: 'default',\n LAUNCH_TILE: 'launch-tile',\n LAUNCH_TILE_CENTERED: 'launch-tile-centered',\n IMAGE_CARD: 'image-card',\n} as const;\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { CardVariant } from './models';\n\nexport interface CardConfig {\n variant?: CardVariant;\n maxImageHeight?: string;\n imageRatio?: string;\n}\n\n/**\n * Tools for customizing configuration for the card component\n *\n * @example\n * ```ts\n * @Component({\n * ...\n * providers: [provideCardConfig({imageRatio: '5/3', maxImageHeight: '200px'})]\n * })\n * export class MyCardComponent {}\n * ```\n * @example\n * ```ts\n * constructor(@Inject(CardConfig) private readonly cardConfig: CardConfig) {}\n * ```\n */\nexport const { CardConfig, CardDefaultConfig, injectCardConfig, provideCardConfig } = createConfigTokens('Card', '@odx/angular/components/card', {\n variant: CardVariant.DEFAULT as CardVariant,\n maxImageHeight: 'auto',\n imageRatio: 'auto',\n});\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a card footer component.\n */\n@Component({\n selector: 'odx-card-footer',\n templateUrl: './card-footer.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__footer]': 'true',\n },\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ChipListRowComponent } from '@odx/angular/components/chip';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { injectCardConfig } from '../../card.config';\n\n/**\n * Represents a card image component.\n */\n@CSSComponent('card-image')\n@Component({\n selector: 'odx-card-image',\n templateUrl: './card-image.component.html',\n standalone: true,\n imports: [ChipListRowComponent],\n})\nexport class CardImageComponent {\n private readonly config = injectCardConfig();\n public readonly element = injectElement();\n\n /**\n * The ratio of the card image.\n *\n * @type {string}\n * @default 'auto'\n */\n @Input()\n public imageRatio = this.config.imageRatio ?? 'auto';\n\n /**\n * The maximum height of the card image.\n *\n * @type {string}\n * @default 'auto'\n */\n @Input()\n public maxImageHeight = this.config.maxImageHeight ?? 'auto';\n\n @HostBinding(`style.--odx-card-image-max-height`)\n protected get getMaxImageHeight(): string {\n return this.maxImageHeight ?? this.config.maxImageHeight ?? 'auto';\n }\n\n @HostBinding(`style.--odx-card-image-aspect-ratio`)\n protected get getImageAspectRatio(): string {\n return this.imageRatio ?? this.config.imageRatio ?? 'auto';\n }\n}\n","<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a launch card subtitle component.\n */\n@Component({\n selector: 'odx-launch-card-subtitle',\n templateUrl: './launch-card-subtitle.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__subtitle]': 'true',\n },\n})\nexport class LaunchCardSubtitleComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, inject, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { A11yModule, InteractiveDirective } from '@odx/angular/cdk/a11y';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { MenuComponent, MenuDirective, MenuModule } from '@odx/angular/components/menu';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { containsElement, injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { injectCardConfig } from './card.config';\nimport { CardFooterComponent } from './components';\nimport { CardVariant } from './models';\n\n/**\n * Represents a card component.\n * It can contain a header, body, and footer. The card component can also have a menu and action buttons.\n * Has host directive for interactivity.\n *\n * @see {InteractiveDirective}\n */\n@CSSComponent('card')\n@Component({\n selector: 'odx-card',\n templateUrl: './card.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent],\n hostDirectives: [InteractiveDirective],\n})\nexport class CardComponent {\n private readonly interactiveDirective = inject(InteractiveDirective, { host: true });\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly config = injectCardConfig();\n\n protected cardVariant = CardVariant;\n\n @ContentChild(MenuComponent)\n protected readonly menu?: MenuComponent;\n\n @ContentChild(ActionGroupComponent)\n protected readonly buttons?: ActionGroupComponent;\n\n @ViewChild(MenuDirective)\n protected readonly menuHost?: MenuDirective;\n\n @ContentChild(CardFooterComponent, { read: ElementRef })\n protected readonly footer?: ElementRef<HTMLElement>;\n\n public element = injectElement();\n /**\n * The variant of the card.\n *\n * @type {CardVariant}\n * @default CardVariant.DEFAULT\n */\n\n @CSSModifier()\n @Input()\n public variant: CardVariant = this.config.variant ?? CardVariant.DEFAULT;\n\n /**\n * Menu icon name.\n *\n * @type {string}\n * @default 'more'\n */\n @Input()\n public menuIcon = 'more';\n\n /**\n * Interactivity event emitter.\n *\n * @emits {Event}\n */\n @Output()\n public interact = new EventEmitter<Event>();\n\n public get launchTile(): boolean {\n return this.variant === CardVariant.LAUNCH_TILE || this.variant === CardVariant.LAUNCH_TILE_CENTERED;\n }\n\n constructor() {\n this.interactiveDirective.interact.pipe(this.takeUntilDestroyed()).subscribe((event) => {\n this.stopEvents(event);\n });\n }\n\n private stopEvents(event: Event): void {\n const target = event.target as Element | null;\n const isFooterEvent = containsElement(this.footer?.nativeElement, target, false);\n const isMenuEvent = containsElement(this.menuHost?.element.nativeElement, target);\n const isHeaderButtonEvent = containsElement(this.buttons?.element.nativeElement, target);\n\n if (!isFooterEvent && !isMenuEvent && !this.menuHost?.isOpen() && !isHeaderButtonEvent) {\n this.interact.emit(event);\n }\n }\n}\n","@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for displaying the content of a card.\n */\n@Directive({\n selector: '[odxCardContent], odx-card-content',\n standalone: true,\n host: {\n '[class.odx-card__content]': 'true',\n },\n})\nexport class CardContentDirective {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CardComponent } from './card.component';\nimport { CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent } from './components';\nimport { CardContentDirective } from './directives';\n\nconst modules = [CardComponent, CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent, CardContentDirective];\n\n@NgModule({\n imports: [modules],\n exports: [CoreModule, ...modules],\n})\nexport class CardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-card.mjs","sources":["../../../../libs/angular/components/card/src/lib/models/card-variant.ts","../../../../libs/angular/components/card/src/lib/card.config.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.html","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.ts","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.html","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.ts","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.html","../../../../libs/angular/components/card/src/lib/card.component.ts","../../../../libs/angular/components/card/src/lib/card.component.html","../../../../libs/angular/components/card/src/lib/directives/card-content.directive.ts","../../../../libs/angular/components/card/src/lib/card.module.ts","../../../../libs/angular/components/card/src/odx-angular-components-card.ts"],"sourcesContent":["export type CardVariant = (typeof CardVariant)[keyof typeof CardVariant];\n\nexport const CardVariant = {\n DEFAULT: 'default',\n LAUNCH_TILE: 'launch-tile',\n LAUNCH_TILE_CENTERED: 'launch-tile-centered',\n IMAGE_CARD: 'image-card',\n} as const;\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { CardVariant } from './models';\n\nexport interface CardConfig {\n variant?: CardVariant;\n maxImageHeight?: string;\n imageRatio?: string;\n objectFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';\n}\n\n/**\n * Tools for customizing configuration for the card component\n *\n * @example\n * ```ts\n * @Component({\n * ...\n * providers: [provideCardConfig({imageRatio: '5/3', maxImageHeight: '200px'})]\n * })\n * export class MyCardComponent {}\n * ```\n * @example\n * ```ts\n * constructor(@Inject(CardConfig) private readonly cardConfig: CardConfig) {}\n * ```\n */\nexport const { CardConfig, CardDefaultConfig, injectCardConfig, provideCardConfig } = createConfigTokens('Card', '@odx/angular/components/card', {\n variant: CardVariant.DEFAULT as CardVariant,\n maxImageHeight: 'auto',\n imageRatio: 'auto',\n objectFit: 'cover',\n});\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a card footer component.\n */\n@Component({\n selector: 'odx-card-footer',\n templateUrl: './card-footer.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__footer]': 'true',\n },\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input, PLATFORM_ID, signal } from '@angular/core';\nimport { ChipListRowComponent } from '@odx/angular/components/chip';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { injectCardConfig } from '../../card.config';\n\n/**\n * Represents a card image component.\n */\n@CSSComponent('card-image')\n@Component({\n selector: 'odx-card-image',\n templateUrl: './card-image.component.html',\n standalone: true,\n imports: [ChipListRowComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--odx-card-image-max-height]': 'maxImageHeightStyle',\n '[style.--odx-card-image-aspect-ratio]': 'imageAspectRatioStyle',\n '[style.--odx-card-image-object-fit]': 'objectFitStyle',\n '[class.has-aspect-auto]': 'isAspectAuto',\n '[class.has-fill]': 'hasFill',\n },\n})\nexport class CardImageComponent implements AfterViewInit {\n private readonly config = injectCardConfig();\n private readonly platformId = inject(PLATFORM_ID);\n private readonly _hasFill = signal<boolean>(false);\n public readonly element = injectElement();\n\n public readonly imageRatio = input<string>(this.config.imageRatio ?? 'auto');\n public readonly maxImageHeight = input<string>(this.config.maxImageHeight ?? 'auto');\n public readonly objectFit = input<string>(this.config.objectFit ?? 'cover');\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n public get maxImageHeightStyle(): string {\n return this.maxImageHeight() ?? this.config.maxImageHeight ?? 'auto';\n }\n\n public get imageAspectRatioStyle(): string {\n return this.imageRatio() ?? this.config.imageRatio ?? 'auto';\n }\n\n public get objectFitStyle(): string {\n return this.objectFit() ?? this.config.objectFit ?? 'auto';\n }\n\n public get isAspectAuto(): boolean {\n return this.imageRatio() === 'auto';\n }\n\n public get hasFill(): boolean {\n return this._hasFill();\n }\n\n public ngAfterViewInit(): void {\n try {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const hostEl = this.getHostElement(this.element);\n if (!hostEl) {\n return;\n }\n const found = !!hostEl.querySelector?.('img[fill], img[ng-reflect-fill]');\n this._hasFill.set(found);\n this.cdr.markForCheck();\n } catch {}\n }\n\n private getHostElement(el: unknown): HTMLElement | null {\n if (!el) return null;\n if (typeof el === 'object' && el !== null && 'nativeElement' in el) {\n const candidate = (el as { nativeElement: unknown }).nativeElement;\n if (candidate instanceof HTMLElement) return candidate;\n }\n if (el instanceof HTMLElement) return el;\n return null;\n }\n}\n","<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a launch card subtitle component.\n */\n@Component({\n selector: 'odx-launch-card-subtitle',\n templateUrl: './launch-card-subtitle.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__subtitle]': 'true',\n },\n})\nexport class LaunchCardSubtitleComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, inject, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { A11yModule, InteractiveDirective } from '@odx/angular/cdk/a11y';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { MenuComponent, MenuDirective, MenuModule } from '@odx/angular/components/menu';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { containsElement, injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { injectCardConfig } from './card.config';\nimport { CardFooterComponent } from './components';\nimport { CardVariant } from './models';\n\n/**\n * Represents a card component.\n * It can contain a header, body, and footer. The card component can also have a menu and action buttons.\n * Has host directive for interactivity.\n *\n * @see {InteractiveDirective}\n */\n@CSSComponent('card')\n@Component({\n selector: 'odx-card',\n templateUrl: './card.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent],\n hostDirectives: [InteractiveDirective],\n})\nexport class CardComponent {\n private readonly interactiveDirective = inject(InteractiveDirective, { host: true });\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly config = injectCardConfig();\n\n protected cardVariant = CardVariant;\n\n @ContentChild(MenuComponent)\n protected readonly menu?: MenuComponent;\n\n @ContentChild(ActionGroupComponent)\n protected readonly buttons?: ActionGroupComponent;\n\n @ViewChild(MenuDirective)\n protected readonly menuHost?: MenuDirective;\n\n @ContentChild(CardFooterComponent, { read: ElementRef })\n protected readonly footer?: ElementRef<HTMLElement>;\n\n public element = injectElement();\n /**\n * The variant of the card.\n *\n * @type {CardVariant}\n * @default CardVariant.DEFAULT\n */\n\n @CSSModifier()\n @Input()\n public variant: CardVariant = this.config.variant ?? CardVariant.DEFAULT;\n\n /**\n * Menu icon name.\n *\n * @type {string}\n * @default 'more'\n */\n @Input()\n public menuIcon = 'more';\n\n /**\n * Interactivity event emitter.\n *\n * @emits {Event}\n */\n @Output()\n public interact = new EventEmitter<Event>();\n\n public get launchTile(): boolean {\n return this.variant === CardVariant.LAUNCH_TILE || this.variant === CardVariant.LAUNCH_TILE_CENTERED;\n }\n\n constructor() {\n this.interactiveDirective.interact.pipe(this.takeUntilDestroyed()).subscribe((event) => {\n this.stopEvents(event);\n });\n }\n\n private stopEvents(event: Event): void {\n const target = event.target as Element | null;\n const isFooterEvent = containsElement(this.footer?.nativeElement, target, false);\n const isMenuEvent = containsElement(this.menuHost?.element.nativeElement, target);\n const isHeaderButtonEvent = containsElement(this.buttons?.element.nativeElement, target);\n\n if (!isFooterEvent && !isMenuEvent && !this.menuHost?.isOpen() && !isHeaderButtonEvent) {\n this.interact.emit(event);\n }\n }\n}\n","@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\" role=\"heading\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\">\n <odx-icon [name]=\"menuIcon\" iconSet=\"core\" aria-hidden=\"true\" />\n </button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for displaying the content of a card.\n */\n@Directive({\n selector: '[odxCardContent], odx-card-content',\n standalone: true,\n host: {\n '[class.odx-card__content]': 'true',\n },\n})\nexport class CardContentDirective {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CardComponent } from './card.component';\nimport { CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent } from './components';\nimport { CardContentDirective } from './directives';\n\nconst modules = [CardComponent, CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent, CardContentDirective];\n\n@NgModule({\n imports: [modules],\n exports: [CoreModule, ...modules],\n})\nexport class CardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -62,14 +62,14 @@ let HeaderComponent = class HeaderComponent {
62
62
  this.element = injectElement();
63
63
  }
64
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\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 }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth, odx-institution-assignment\" />\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 }); }
66
66
  };
67
67
  HeaderComponent = __decorate([
68
68
  CSSComponent('header')
69
69
  ], HeaderComponent);
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, decorators: [{
71
71
  type: Component,
72
- 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n" }]
72
+ 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 <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth, odx-institution-assignment\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n" }]
73
73
  }] });
74
74
 
75
75
  const modules = [
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-header.mjs","sources":["../../../../libs/angular/components/header/src/lib/directives/header-avatar.directive.ts","../../../../libs/angular/components/header/src/lib/directives/header-title.directive.ts","../../../../libs/angular/components/header/src/lib/header.component.ts","../../../../libs/angular/components/header/src/lib/header.component.html","../../../../libs/angular/components/header/src/lib/header.module.ts","../../../../libs/angular/components/header/src/odx-angular-components-header.ts"],"sourcesContent":["import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { ButtonComponent, ButtonVariant } from '@odx/angular/components/button';\n\n/**\n * Directive for the header avatar component.\n * This directive is responsible for customizing the appearance of the header avatar button.\n */\n@Directive({\n standalone: true,\n selector: 'button[odxButton][odxHeaderAvatar]',\n host: {\n '[class.odx-header__avatar]': 'true',\n },\n})\nexport class HeaderAvatarDirective implements AfterViewInit {\n private readonly button = inject(ButtonComponent, { self: true });\n\n public ngAfterViewInit(): void {\n this.button.variant = ButtonVariant.GHOST;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for displaying the title in the header component.\n */\n@Directive({\n selector: 'odx-header-title',\n standalone: true,\n host: {\n '[class.odx-header__title]': 'true',\n },\n})\nexport class HeaderTitleDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { LogoDirective } from '@odx/angular/components/logo';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Represents the header component.\n */\n@CSSComponent('header')\n@Component({\n standalone: true,\n selector: 'odx-header',\n imports: [LogoDirective],\n templateUrl: './header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n public readonly element = injectElement();\n}\n","<ng-content select=\"button[odxMainMenuButton]\" />\n<odx-logo />\n<ng-content select=\"odx-header-title\" />\n<div class=\"odx-header__content\">\n <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AvatarComponent } from '@odx/angular/components/avatar';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { MainMenuModule } from '@odx/angular/components/main-menu';\nimport { HeaderAvatarDirective, HeaderTitleDirective } from './directives';\nimport { HeaderComponent } from './header.component';\n\nconst modules = [\n HeaderComponent,\n HeaderTitleDirective,\n HeaderAvatarDirective,\n MainMenuModule,\n ActionGroupComponent,\n IconComponent,\n ButtonComponent,\n AvatarComponent,\n];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class HeaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-header.mjs","sources":["../../../../libs/angular/components/header/src/lib/directives/header-avatar.directive.ts","../../../../libs/angular/components/header/src/lib/directives/header-title.directive.ts","../../../../libs/angular/components/header/src/lib/header.component.ts","../../../../libs/angular/components/header/src/lib/header.component.html","../../../../libs/angular/components/header/src/lib/header.module.ts","../../../../libs/angular/components/header/src/odx-angular-components-header.ts"],"sourcesContent":["import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { ButtonComponent, ButtonVariant } from '@odx/angular/components/button';\n\n/**\n * Directive for the header avatar component.\n * This directive is responsible for customizing the appearance of the header avatar button.\n */\n@Directive({\n standalone: true,\n selector: 'button[odxButton][odxHeaderAvatar]',\n host: {\n '[class.odx-header__avatar]': 'true',\n },\n})\nexport class HeaderAvatarDirective implements AfterViewInit {\n private readonly button = inject(ButtonComponent, { self: true });\n\n public ngAfterViewInit(): void {\n this.button.variant = ButtonVariant.GHOST;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for displaying the title in the header component.\n */\n@Directive({\n selector: 'odx-header-title',\n standalone: true,\n host: {\n '[class.odx-header__title]': 'true',\n },\n})\nexport class HeaderTitleDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { LogoDirective } from '@odx/angular/components/logo';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Represents the header component.\n */\n@CSSComponent('header')\n@Component({\n standalone: true,\n selector: 'odx-header',\n imports: [LogoDirective],\n templateUrl: './header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n public readonly element = injectElement();\n}\n","<ng-content select=\"button[odxMainMenuButton]\" />\n<odx-logo />\n<ng-content select=\"odx-header-title\" />\n<div class=\"odx-header__content\">\n <span class=\"odx-header__content-container\"><ng-content /></span>\n</div>\n<ng-content select=\"odx-search-bar\" />\n<ng-content select=\"odx-action-group, odx-auth, odx-institution-assignment\" />\n<ng-content select=\"[odxHeaderAvatar]\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AvatarComponent } from '@odx/angular/components/avatar';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { MainMenuModule } from '@odx/angular/components/main-menu';\nimport { HeaderAvatarDirective, HeaderTitleDirective } from './directives';\nimport { HeaderComponent } from './header.component';\n\nconst modules = [\n HeaderComponent,\n HeaderTitleDirective,\n HeaderAvatarDirective,\n MainMenuModule,\n ActionGroupComponent,\n IconComponent,\n ButtonComponent,\n AvatarComponent,\n];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class HeaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "12.23.1",
3
+ "version": "12.25.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -286,23 +286,17 @@
286
286
  "esm": "./esm2022/components/daterangepicker/odx-angular-components-daterangepicker.mjs",
287
287
  "default": "./fesm2022/odx-angular-components-daterangepicker.mjs"
288
288
  },
289
- "./components/dropdown": {
290
- "types": "./components/dropdown/index.d.ts",
291
- "esm2022": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
292
- "esm": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
293
- "default": "./fesm2022/odx-angular-components-dropdown.mjs"
294
- },
295
289
  "./components/error-page": {
296
290
  "types": "./components/error-page/index.d.ts",
297
291
  "esm2022": "./esm2022/components/error-page/odx-angular-components-error-page.mjs",
298
292
  "esm": "./esm2022/components/error-page/odx-angular-components-error-page.mjs",
299
293
  "default": "./fesm2022/odx-angular-components-error-page.mjs"
300
294
  },
301
- "./components/footer": {
302
- "types": "./components/footer/index.d.ts",
303
- "esm2022": "./esm2022/components/footer/odx-angular-components-footer.mjs",
304
- "esm": "./esm2022/components/footer/odx-angular-components-footer.mjs",
305
- "default": "./fesm2022/odx-angular-components-footer.mjs"
295
+ "./components/dropdown": {
296
+ "types": "./components/dropdown/index.d.ts",
297
+ "esm2022": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
298
+ "esm": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
299
+ "default": "./fesm2022/odx-angular-components-dropdown.mjs"
306
300
  },
307
301
  "./components/form-field": {
308
302
  "types": "./components/form-field/index.d.ts",
@@ -310,6 +304,12 @@
310
304
  "esm": "./esm2022/components/form-field/odx-angular-components-form-field.mjs",
311
305
  "default": "./fesm2022/odx-angular-components-form-field.mjs"
312
306
  },
307
+ "./components/footer": {
308
+ "types": "./components/footer/index.d.ts",
309
+ "esm2022": "./esm2022/components/footer/odx-angular-components-footer.mjs",
310
+ "esm": "./esm2022/components/footer/odx-angular-components-footer.mjs",
311
+ "default": "./fesm2022/odx-angular-components-footer.mjs"
312
+ },
313
313
  "./components/header": {
314
314
  "types": "./components/header/index.d.ts",
315
315
  "esm2022": "./esm2022/components/header/odx-angular-components-header.mjs",
@@ -346,18 +346,18 @@
346
346
  "esm": "./esm2022/components/list/odx-angular-components-list.mjs",
347
347
  "default": "./fesm2022/odx-angular-components-list.mjs"
348
348
  },
349
- "./components/loading-spinner": {
350
- "types": "./components/loading-spinner/index.d.ts",
351
- "esm2022": "./esm2022/components/loading-spinner/odx-angular-components-loading-spinner.mjs",
352
- "esm": "./esm2022/components/loading-spinner/odx-angular-components-loading-spinner.mjs",
353
- "default": "./fesm2022/odx-angular-components-loading-spinner.mjs"
354
- },
355
349
  "./components/logo": {
356
350
  "types": "./components/logo/index.d.ts",
357
351
  "esm2022": "./esm2022/components/logo/odx-angular-components-logo.mjs",
358
352
  "esm": "./esm2022/components/logo/odx-angular-components-logo.mjs",
359
353
  "default": "./fesm2022/odx-angular-components-logo.mjs"
360
354
  },
355
+ "./components/loading-spinner": {
356
+ "types": "./components/loading-spinner/index.d.ts",
357
+ "esm2022": "./esm2022/components/loading-spinner/odx-angular-components-loading-spinner.mjs",
358
+ "esm": "./esm2022/components/loading-spinner/odx-angular-components-loading-spinner.mjs",
359
+ "default": "./fesm2022/odx-angular-components-loading-spinner.mjs"
360
+ },
361
361
  "./components/main-menu": {
362
362
  "types": "./components/main-menu/index.d.ts",
363
363
  "esm2022": "./esm2022/components/main-menu/odx-angular-components-main-menu.mjs",