@mozaic-ds/angular 0.24.0-beta.3 → 0.24.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/adeo/assets/tokens/adeo/css/_variables.scss +50 -200
  2. package/adeo/assets/tokens/adeo/js/tokens.js +575 -575
  3. package/adeo/assets/tokens/adeo/js/tokensObject.js +12457 -9652
  4. package/adeo/assets/tokens/adeo/scss/_tokens.scss +240 -239
  5. package/adeo/components/header/header.component.d.ts +18 -7
  6. package/adeo/components/header/header.module.d.ts +2 -1
  7. package/adeo/components/header/index.d.ts +1 -0
  8. package/adeo/components/kpi/public-api.d.ts +1 -0
  9. package/adeo/components/public-api.d.ts +1 -1
  10. package/adeo/esm2020/components/header/header.component.mjs +89 -23
  11. package/adeo/esm2020/components/header/header.module.mjs +5 -4
  12. package/adeo/esm2020/components/header/index.mjs +2 -1
  13. package/adeo/esm2020/components/kpi/public-api.mjs +2 -0
  14. package/adeo/esm2020/components/public-api.mjs +2 -2
  15. package/adeo/fesm2015/mozaic-ds-angular.mjs +92 -32
  16. package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  17. package/adeo/fesm2020/mozaic-ds-angular.mjs +91 -31
  18. package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  19. package/adeo/package.json +1 -1
  20. package/assets/tokens/adeo/css/_variables.scss +50 -200
  21. package/assets/tokens/adeo/js/tokens.js +575 -575
  22. package/assets/tokens/adeo/js/tokensObject.js +12457 -9652
  23. package/assets/tokens/adeo/scss/_tokens.scss +240 -239
  24. package/components/header/header.component.d.ts +18 -7
  25. package/components/header/header.module.d.ts +2 -1
  26. package/components/header/index.d.ts +1 -0
  27. package/components/kpi/public-api.d.ts +1 -0
  28. package/components/public-api.d.ts +1 -1
  29. package/esm2020/components/header/header.component.mjs +89 -23
  30. package/esm2020/components/header/header.module.mjs +5 -4
  31. package/esm2020/components/header/index.mjs +2 -1
  32. package/esm2020/components/kpi/public-api.mjs +2 -0
  33. package/esm2020/components/public-api.mjs +2 -2
  34. package/fesm2015/mozaic-ds-angular.mjs +92 -32
  35. package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  36. package/fesm2020/mozaic-ds-angular.mjs +91 -31
  37. package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  38. package/package.json +1 -1
  39. package/adeo/components/header/header-animation.d.ts +0 -1
  40. package/adeo/esm2020/components/header/header-animation.mjs +0 -7
  41. package/components/header/header-animation.d.ts +0 -1
  42. package/esm2020/components/header/header-animation.mjs +0 -7
@@ -4,8 +4,8 @@ import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
5
  import * as i2 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, FormsModule, NgControl, FormControlName, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';
7
- import { fromEvent, shareReplay, BehaviorSubject, Subject, startWith, map, of, tap, catchError, throwError, finalize, first, debounceTime, filter, switchMap, takeUntil, merge, combineLatest, delay as delay$1, throttleTime, pairwise, distinctUntilChanged, share } from 'rxjs';
8
- import { trigger, transition, group, query, style, animate, state } from '@angular/animations';
7
+ import { fromEvent, shareReplay, BehaviorSubject, Subject, startWith, map, of, tap, catchError, throwError, finalize, first, debounceTime, filter, switchMap, takeUntil, merge, combineLatest, delay as delay$1, pairwise } from 'rxjs';
8
+ import { trigger, transition, group, query, style, animate } from '@angular/animations';
9
9
  import { delay } from 'rxjs/operators';
10
10
  import * as i1$1 from '@angular/common/http';
11
11
  import * as i1$2 from '@angular/router';
@@ -4020,15 +4020,10 @@ var Direction;
4020
4020
  Direction["Down"] = "Down";
4021
4021
  })(Direction || (Direction = {}));
4022
4022
 
4023
- const headerAnimation = trigger('widthGrow', [
4024
- state('closed', style({ opacity: 0, transform: 'translateY(-100%)' })),
4025
- state('open', style({ opacity: 1, transform: 'translateY(0)' })),
4026
- transition('* => *', animate('300ms ease-in')),
4027
- ]);
4028
-
4029
4023
  class HeaderComponent {
4030
- constructor(cdRef) {
4024
+ constructor(cdRef, elementRef) {
4031
4025
  this.cdRef = cdRef;
4026
+ this.elementRef = elementRef;
4032
4027
  this.title = '';
4033
4028
  this.subtitle = '';
4034
4029
  this.badgeType = 'information';
@@ -4037,31 +4032,85 @@ class HeaderComponent {
4037
4032
  this.showShadow = true;
4038
4033
  this.sticky = false;
4039
4034
  this.animate = false;
4040
- this.showParent = true;
4041
- this.state = 'open';
4035
+ this.showBack = false;
4036
+ this.backButtonLabel = 'Back';
4037
+ this.backEvent = new EventEmitter();
4038
+ this.directionChangeEvent = new EventEmitter();
4039
+ this.direction = Direction.Up;
4040
+ this.showTabs = true;
4041
+ this.showBreadcrumb = true;
4042
4042
  }
4043
4043
  ngAfterViewInit() {
4044
- if (this.parentRef?.nativeElement.children &&
4045
- this.parentRef?.nativeElement.children.length === 0) {
4046
- this.showParent = false;
4044
+ if (this.tabsRef == null ||
4045
+ (this.tabsRef?.nativeElement.children && this.tabsRef?.nativeElement.children.length === 0)) {
4046
+ this.showTabs = false;
4047
4047
  }
4048
- if (this.animate && this.sticky) {
4049
- fromEvent(window, 'scroll')
4050
- .pipe(throttleTime(50), map(() => window.pageYOffset), pairwise(), map(([y1, y2]) => (y2 < y1 ? Direction.Up : Direction.Down)), distinctUntilChanged(), share())
4051
- .subscribe((x) => {
4052
- this.state === 'closed' ? (this.state = 'open') : (this.state = 'closed');
4053
- this.cdRef.detectChanges();
4054
- });
4048
+ if (this.breadcrumbRef == null ||
4049
+ (this.breadcrumbRef?.nativeElement.children &&
4050
+ this.breadcrumbRef?.nativeElement.children.length === 0)) {
4051
+ this.showBreadcrumb = false;
4055
4052
  }
4053
+ this.scroll();
4056
4054
  this.cdRef.detectChanges();
4057
4055
  }
4056
+ onParentScroll(parentElement) {
4057
+ let lastScrollTop = parentElement.scrollTop || 0;
4058
+ const handleScroll = () => {
4059
+ const currentScrollTop = parentElement.scrollTop || 0;
4060
+ if (currentScrollTop > lastScrollTop) {
4061
+ this.direction = Direction.Down;
4062
+ }
4063
+ else {
4064
+ this.direction = Direction.Up;
4065
+ }
4066
+ this.directionChangeEvent.emit(this.direction);
4067
+ lastScrollTop = currentScrollTop;
4068
+ this.cdRef.detectChanges();
4069
+ };
4070
+ parentElement.addEventListener('scroll', handleScroll);
4071
+ }
4072
+ scroll() {
4073
+ if (this.animate && this.sticky) {
4074
+ const parentElement = this.findParentWithScroll(this.elementRef.nativeElement);
4075
+ if (parentElement) {
4076
+ this.onParentScroll(parentElement);
4077
+ }
4078
+ else {
4079
+ fromEvent(window, 'scroll')
4080
+ .pipe(map(() => window.scrollY), pairwise(), map(([y1, y2]) => {
4081
+ return y2 < y1 ? Direction.Up : Direction.Down;
4082
+ }))
4083
+ .subscribe((direction) => {
4084
+ this.direction = direction;
4085
+ this.directionChangeEvent.emit(this.direction);
4086
+ this.cdRef.detectChanges();
4087
+ });
4088
+ }
4089
+ }
4090
+ }
4091
+ findParentWithScroll(element) {
4092
+ if (element.parentElement) {
4093
+ const parent = element.parentElement;
4094
+ const hasOverflow = window.getComputedStyle(parent).overflow;
4095
+ if (hasOverflow === 'auto' || hasOverflow === 'scroll') {
4096
+ return parent;
4097
+ }
4098
+ else {
4099
+ return this.findParentWithScroll(parent);
4100
+ }
4101
+ }
4102
+ return null;
4103
+ }
4104
+ back() {
4105
+ this.backEvent.emit(true);
4106
+ }
4058
4107
  }
4059
- HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4060
- HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: HeaderComponent, selector: "moz-header", inputs: { title: "title", subtitle: "subtitle", badgeType: "badgeType", badgeContent: "badgeContent", size: "size", showShadow: "showShadow", sticky: "sticky", animate: "animate" }, viewQueries: [{ propertyName: "parentRef", first: true, predicate: ["parentRef"], descendants: true }], ngImport: i0, template: "<div\n class=\"mc-header\"\n [ngClass]=\"[showShadow ? 'mc-header--shadow' : '', sticky ? 'mc-header--sticky' : '']\"\n [@widthGrow]=\"state\"\n>\n <div class=\"mc-header__container\">\n <ng-container ngProjectAs=\"'moz-breadcrumb'\">\n <ng-content select=\"moz-breadcrumb\"></ng-content>\n </ng-container>\n <div class=\"mc-header__actions\">\n <div class=\"mc-header__icons\">\n <ng-content select=\"[icons]\"></ng-content>\n </div>\n <div class=\"mc-header__selector\">\n <ng-content select=\"[selector]\"></ng-content>\n </div>\n </div>\n <div class=\"mc-header__content\">\n <div class=\"mc-header__content-main\">\n <h1 class=\"mc-header__title mc-header__title--{{ size }}\">{{ title }}</h1>\n </div>\n <div class=\"mc-header__content-aside\">\n <span class=\"mc-header__subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n <div *ngIf=\"badgeContent\" moz-badge [type]=\"badgeType || 'information'\">\n {{ badgeContent }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"mc-header__tabs mc-divider-top mc-divider-top--light\" #parentRef *ngIf=\"showParent\">\n <ng-container ngProjectAs=\"'moz-tabs'\">\n <ng-content select=\"moz-tabs\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-divider{position:relative}.mc-divider-top{border-top:1px solid #666666}.mc-divider-top--lightest{border-top-color:#fff}.mc-divider-top--light{border-top-color:#b3b3b3}.mc-divider-top--dark{border-top-color:#000}.mc-divider-top--m{border-top-width:.25rem}.mc-divider-top--l{border-top-width:.5rem}.mc-divider-right{border-right:1px solid #666666}.mc-divider-right--lightest{border-right-color:#fff}.mc-divider-right--light{border-right-color:#b3b3b3}.mc-divider-right--dark{border-right-color:#000}.mc-divider-right--m{border-right-width:.25rem}.mc-divider-right--l{border-right-width:.5rem}.mc-divider-bottom{border-bottom:1px solid #666666}.mc-divider-bottom--lightest{border-bottom-color:#fff}.mc-divider-bottom--light{border-bottom-color:#b3b3b3}.mc-divider-bottom--dark{border-bottom-color:#000}.mc-divider-bottom--m{border-bottom-width:.25rem}.mc-divider-bottom--l{border-bottom-width:.5rem}.mc-divider-left{border-left:1px solid #666666}.mc-divider-left--lightest{border-left-color:#fff}.mc-divider-left--light{border-left-color:#b3b3b3}.mc-divider-left--dark{border-left-color:#000}.mc-divider-left--m{border-left-width:.25rem}.mc-divider-left--l{border-left-width:.5rem}.mc-header{font-family:Roboto,sans-serif;font-weight:400;background-color:#fff;z-index:5}.mc-header__container{padding:.5rem 2rem 1rem;display:grid}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__container{padding-left:3rem;padding-right:3rem}}.mc-header__breadcrumb{grid-column:1;grid-row:auto}.mc-header__content{color:#000;grid-column:1;grid-row:auto;padding-top:.5rem}.mc-header__content-main{display:flex;align-items:center;gap:1rem}.mc-header__content-main:not(:only-child){margin-bottom:.25rem}.mc-header__content-aside{display:flex;align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.mc-header__content-aside.can-navigate{padding-left:3rem}@media screen and (min-width: 1024px){.mc-header__content-aside{align-items:center;flex-direction:row;gap:1rem;padding-bottom:0}}.mc-header__back{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;justify-content:center;color:currentColor;display:flex;height:2rem;width:2rem}.mc-header__back-icon{color:#333;height:1.5rem;width:1.5rem}.mc-header__back-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-header__title{font-size:1.75rem;line-height:1.2857142857;font-weight:700;margin-top:0;margin-bottom:0}.mc-header__title--s{font-size:1.4375rem;line-height:1.3913043478}.mc-header__title--l{font-size:2.125rem;line-height:1.2941176471}.mc-header__title--xl{font-size:2.5625rem;line-height:1.3658536585}.mc-header__subtitle{font-size:1rem;line-height:1.375}.mc-header__actions,.mc-header__icons{display:flex;gap:1.5rem}.mc-header__actions{align-items:flex-end;align-self:flex-start;grid-column:1;grid-row:1;justify-self:end;margin-bottom:.5rem;min-height:2.5rem}@media screen and (min-width: 1024px){.mc-header__actions{grid-column:2;grid-row:1;margin-bottom:0}}.mc-header__selector:not(:only-child){padding-left:1.5625rem;position:relative}.mc-header__selector:not(:only-child):before{background:#b3b3b3;content:\"\";display:block;width:1px;height:100%;position:absolute;top:50%;transform:translateY(-50%);left:0}.mc-header__tabs{padding-left:2rem;padding-right:2rem}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__tabs{padding-left:3rem;padding-right:3rem}}.mc-header--shadow{box-shadow:0 1px 5px #19191933}.mc-header--animate{left:0;position:absolute;right:0;transition:transform ease-out .4s}.mc-header--sticky{position:sticky;top:0}.mc-header--up{transform:translateY(0)}.mc-header--down{transform:translateY(calc(-100% - 5px))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BadgeComponent, selector: "[moz-badge]", inputs: ["type"] }], animations: [headerAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4108
+ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
4109
+ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: HeaderComponent, selector: "moz-header", inputs: { title: "title", subtitle: "subtitle", badgeType: "badgeType", badgeContent: "badgeContent", size: "size", showShadow: "showShadow", sticky: "sticky", animate: "animate", showBack: "showBack", backButtonLabel: "backButtonLabel" }, outputs: { backEvent: "backEvent", directionChangeEvent: "directionChangeEvent" }, viewQueries: [{ propertyName: "tabsRef", first: true, predicate: ["tabsRef"], descendants: true }, { propertyName: "breadcrumbRef", first: true, predicate: ["breadcrumbRef"], descendants: true }], ngImport: i0, template: "<div\n class=\"mc-header\"\n [ngClass]=\"[\n showShadow ? 'mc-header--shadow' : '',\n sticky ? 'mc-header--sticky' : '',\n animate ? 'mc-header--animate' : '',\n animate ? (direction === 'Up' ? 'mc-header--up' : 'mc-header--down') : ''\n ]\"\n>\n <div class=\"mc-header__container\">\n <ng-container ngProjectAs=\"'moz-breadcrumb'\" #breadcrumbRef *ngIf=\"showBreadcrumb && !showBack\">\n <ng-content select=\"moz-breadcrumb\"></ng-content>\n </ng-container>\n <div class=\"mc-header__actions\">\n <div class=\"mc-header__icons\">\n <ng-content select=\"[icons]\"></ng-content>\n </div>\n <div class=\"mc-header__selector\">\n <ng-content select=\"[selector]\"></ng-content>\n </div>\n </div>\n <div class=\"mc-header__content\">\n <div class=\"mc-header__content-main\">\n <button\n class=\"mc-header__back\"\n type=\"button\"\n *ngIf=\"showBack && !showBreadcrumb\"\n (click)=\"back()\"\n >\n <moz-icon iconName=\"Navigation_Arrow_Back_24px\"></moz-icon>\n <span class=\"mc-header__back-label\">{{ backButtonLabel }}</span>\n </button>\n <h1 class=\"mc-header__title mc-header__title--{{ size }}\">{{ title }}</h1>\n </div>\n <div\n class=\"mc-header__content-aside\"\n [ngClass]=\"[showBack && !showBreadcrumb ? 'can-navigate' : '']\"\n >\n <span class=\"mc-header__subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n <div *ngIf=\"badgeContent\" moz-badge [type]=\"badgeType || 'information'\">\n {{ badgeContent }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"mc-header__tabs mc-divider-top mc-divider-top--light\" #tabsRef *ngIf=\"showTabs\">\n <ng-container ngProjectAs=\"'moz-tabs'\">\n <ng-content select=\"moz-tabs\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-divider{position:relative}.mc-divider-top{border-top:1px solid #666666}.mc-divider-top--lightest{border-top-color:#fff}.mc-divider-top--light{border-top-color:#b3b3b3}.mc-divider-top--dark{border-top-color:#000}.mc-divider-top--m{border-top-width:.25rem}.mc-divider-top--l{border-top-width:.5rem}.mc-divider-right{border-right:1px solid #666666}.mc-divider-right--lightest{border-right-color:#fff}.mc-divider-right--light{border-right-color:#b3b3b3}.mc-divider-right--dark{border-right-color:#000}.mc-divider-right--m{border-right-width:.25rem}.mc-divider-right--l{border-right-width:.5rem}.mc-divider-bottom{border-bottom:1px solid #666666}.mc-divider-bottom--lightest{border-bottom-color:#fff}.mc-divider-bottom--light{border-bottom-color:#b3b3b3}.mc-divider-bottom--dark{border-bottom-color:#000}.mc-divider-bottom--m{border-bottom-width:.25rem}.mc-divider-bottom--l{border-bottom-width:.5rem}.mc-divider-left{border-left:1px solid #666666}.mc-divider-left--lightest{border-left-color:#fff}.mc-divider-left--light{border-left-color:#b3b3b3}.mc-divider-left--dark{border-left-color:#000}.mc-divider-left--m{border-left-width:.25rem}.mc-divider-left--l{border-left-width:.5rem}.mc-header{font-family:Roboto,sans-serif;font-weight:400;background-color:#fff;z-index:5}.mc-header__container{padding:.5rem 2rem 1rem;display:grid}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__container{padding-left:3rem;padding-right:3rem}}.mc-header__breadcrumb{grid-column:1;grid-row:auto}.mc-header__content{color:#000;grid-column:1;grid-row:auto;padding-top:.5rem}.mc-header__content-main{display:flex;align-items:center;gap:1rem}.mc-header__content-main:not(:only-child){margin-bottom:.25rem}.mc-header__content-aside{display:flex;align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.mc-header__content-aside.can-navigate{padding-left:3rem}@media screen and (min-width: 1024px){.mc-header__content-aside{align-items:center;flex-direction:row;gap:1rem;padding-bottom:0}}.mc-header__back{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;justify-content:center;color:currentColor;display:flex;height:2rem;width:2rem}.mc-header__back-icon{color:#333;height:1.5rem;width:1.5rem}.mc-header__back-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-header__title{font-size:1.75rem;line-height:1.2857142857;font-weight:700;margin-top:0;margin-bottom:0}.mc-header__title--s{font-size:1.4375rem;line-height:1.3913043478}.mc-header__title--l{font-size:2.125rem;line-height:1.2941176471}.mc-header__title--xl{font-size:2.5625rem;line-height:1.3658536585}.mc-header__subtitle{font-size:1rem;line-height:1.375}.mc-header__actions,.mc-header__icons{display:flex;gap:1.5rem}.mc-header__actions{align-items:flex-end;align-self:flex-start;grid-column:1;grid-row:1;justify-self:end;margin-bottom:.5rem;min-height:2.5rem}@media screen and (min-width: 1024px){.mc-header__actions{grid-column:2;grid-row:1;margin-bottom:0}}.mc-header__selector:not(:only-child){padding-left:1.5625rem;position:relative}.mc-header__selector:not(:only-child):before{background:#b3b3b3;content:\"\";display:block;width:1px;height:100%;position:absolute;top:50%;transform:translateY(-50%);left:0}.mc-header__tabs{padding-left:2rem;padding-right:2rem}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__tabs{padding-left:3rem;padding-right:3rem}}.mc-header--shadow{box-shadow:0 1px 5px #19191933}.mc-header--animate{left:0;position:absolute;right:0;transition:transform ease-out .4s}.mc-header--sticky{position:sticky;top:0}.mc-header--up{transform:translateY(0)}.mc-header--down{transform:translateY(calc(-100% - 5px))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BadgeComponent, selector: "[moz-badge]", inputs: ["type"] }, { kind: "component", type: IconComponent, selector: "moz-icon", inputs: ["iconName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4061
4110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderComponent, decorators: [{
4062
4111
  type: Component,
4063
- args: [{ selector: 'moz-header', changeDetection: ChangeDetectionStrategy.OnPush, animations: [headerAnimation], template: "<div\n class=\"mc-header\"\n [ngClass]=\"[showShadow ? 'mc-header--shadow' : '', sticky ? 'mc-header--sticky' : '']\"\n [@widthGrow]=\"state\"\n>\n <div class=\"mc-header__container\">\n <ng-container ngProjectAs=\"'moz-breadcrumb'\">\n <ng-content select=\"moz-breadcrumb\"></ng-content>\n </ng-container>\n <div class=\"mc-header__actions\">\n <div class=\"mc-header__icons\">\n <ng-content select=\"[icons]\"></ng-content>\n </div>\n <div class=\"mc-header__selector\">\n <ng-content select=\"[selector]\"></ng-content>\n </div>\n </div>\n <div class=\"mc-header__content\">\n <div class=\"mc-header__content-main\">\n <h1 class=\"mc-header__title mc-header__title--{{ size }}\">{{ title }}</h1>\n </div>\n <div class=\"mc-header__content-aside\">\n <span class=\"mc-header__subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n <div *ngIf=\"badgeContent\" moz-badge [type]=\"badgeType || 'information'\">\n {{ badgeContent }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"mc-header__tabs mc-divider-top mc-divider-top--light\" #parentRef *ngIf=\"showParent\">\n <ng-container ngProjectAs=\"'moz-tabs'\">\n <ng-content select=\"moz-tabs\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-divider{position:relative}.mc-divider-top{border-top:1px solid #666666}.mc-divider-top--lightest{border-top-color:#fff}.mc-divider-top--light{border-top-color:#b3b3b3}.mc-divider-top--dark{border-top-color:#000}.mc-divider-top--m{border-top-width:.25rem}.mc-divider-top--l{border-top-width:.5rem}.mc-divider-right{border-right:1px solid #666666}.mc-divider-right--lightest{border-right-color:#fff}.mc-divider-right--light{border-right-color:#b3b3b3}.mc-divider-right--dark{border-right-color:#000}.mc-divider-right--m{border-right-width:.25rem}.mc-divider-right--l{border-right-width:.5rem}.mc-divider-bottom{border-bottom:1px solid #666666}.mc-divider-bottom--lightest{border-bottom-color:#fff}.mc-divider-bottom--light{border-bottom-color:#b3b3b3}.mc-divider-bottom--dark{border-bottom-color:#000}.mc-divider-bottom--m{border-bottom-width:.25rem}.mc-divider-bottom--l{border-bottom-width:.5rem}.mc-divider-left{border-left:1px solid #666666}.mc-divider-left--lightest{border-left-color:#fff}.mc-divider-left--light{border-left-color:#b3b3b3}.mc-divider-left--dark{border-left-color:#000}.mc-divider-left--m{border-left-width:.25rem}.mc-divider-left--l{border-left-width:.5rem}.mc-header{font-family:Roboto,sans-serif;font-weight:400;background-color:#fff;z-index:5}.mc-header__container{padding:.5rem 2rem 1rem;display:grid}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__container{padding-left:3rem;padding-right:3rem}}.mc-header__breadcrumb{grid-column:1;grid-row:auto}.mc-header__content{color:#000;grid-column:1;grid-row:auto;padding-top:.5rem}.mc-header__content-main{display:flex;align-items:center;gap:1rem}.mc-header__content-main:not(:only-child){margin-bottom:.25rem}.mc-header__content-aside{display:flex;align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.mc-header__content-aside.can-navigate{padding-left:3rem}@media screen and (min-width: 1024px){.mc-header__content-aside{align-items:center;flex-direction:row;gap:1rem;padding-bottom:0}}.mc-header__back{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;justify-content:center;color:currentColor;display:flex;height:2rem;width:2rem}.mc-header__back-icon{color:#333;height:1.5rem;width:1.5rem}.mc-header__back-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-header__title{font-size:1.75rem;line-height:1.2857142857;font-weight:700;margin-top:0;margin-bottom:0}.mc-header__title--s{font-size:1.4375rem;line-height:1.3913043478}.mc-header__title--l{font-size:2.125rem;line-height:1.2941176471}.mc-header__title--xl{font-size:2.5625rem;line-height:1.3658536585}.mc-header__subtitle{font-size:1rem;line-height:1.375}.mc-header__actions,.mc-header__icons{display:flex;gap:1.5rem}.mc-header__actions{align-items:flex-end;align-self:flex-start;grid-column:1;grid-row:1;justify-self:end;margin-bottom:.5rem;min-height:2.5rem}@media screen and (min-width: 1024px){.mc-header__actions{grid-column:2;grid-row:1;margin-bottom:0}}.mc-header__selector:not(:only-child){padding-left:1.5625rem;position:relative}.mc-header__selector:not(:only-child):before{background:#b3b3b3;content:\"\";display:block;width:1px;height:100%;position:absolute;top:50%;transform:translateY(-50%);left:0}.mc-header__tabs{padding-left:2rem;padding-right:2rem}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__tabs{padding-left:3rem;padding-right:3rem}}.mc-header--shadow{box-shadow:0 1px 5px #19191933}.mc-header--animate{left:0;position:absolute;right:0;transition:transform ease-out .4s}.mc-header--sticky{position:sticky;top:0}.mc-header--up{transform:translateY(0)}.mc-header--down{transform:translateY(calc(-100% - 5px))}\n"] }]
4064
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
4112
+ args: [{ selector: 'moz-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"mc-header\"\n [ngClass]=\"[\n showShadow ? 'mc-header--shadow' : '',\n sticky ? 'mc-header--sticky' : '',\n animate ? 'mc-header--animate' : '',\n animate ? (direction === 'Up' ? 'mc-header--up' : 'mc-header--down') : ''\n ]\"\n>\n <div class=\"mc-header__container\">\n <ng-container ngProjectAs=\"'moz-breadcrumb'\" #breadcrumbRef *ngIf=\"showBreadcrumb && !showBack\">\n <ng-content select=\"moz-breadcrumb\"></ng-content>\n </ng-container>\n <div class=\"mc-header__actions\">\n <div class=\"mc-header__icons\">\n <ng-content select=\"[icons]\"></ng-content>\n </div>\n <div class=\"mc-header__selector\">\n <ng-content select=\"[selector]\"></ng-content>\n </div>\n </div>\n <div class=\"mc-header__content\">\n <div class=\"mc-header__content-main\">\n <button\n class=\"mc-header__back\"\n type=\"button\"\n *ngIf=\"showBack && !showBreadcrumb\"\n (click)=\"back()\"\n >\n <moz-icon iconName=\"Navigation_Arrow_Back_24px\"></moz-icon>\n <span class=\"mc-header__back-label\">{{ backButtonLabel }}</span>\n </button>\n <h1 class=\"mc-header__title mc-header__title--{{ size }}\">{{ title }}</h1>\n </div>\n <div\n class=\"mc-header__content-aside\"\n [ngClass]=\"[showBack && !showBreadcrumb ? 'can-navigate' : '']\"\n >\n <span class=\"mc-header__subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n <div *ngIf=\"badgeContent\" moz-badge [type]=\"badgeType || 'information'\">\n {{ badgeContent }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"mc-header__tabs mc-divider-top mc-divider-top--light\" #tabsRef *ngIf=\"showTabs\">\n <ng-container ngProjectAs=\"'moz-tabs'\">\n <ng-content select=\"moz-tabs\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-divider{position:relative}.mc-divider-top{border-top:1px solid #666666}.mc-divider-top--lightest{border-top-color:#fff}.mc-divider-top--light{border-top-color:#b3b3b3}.mc-divider-top--dark{border-top-color:#000}.mc-divider-top--m{border-top-width:.25rem}.mc-divider-top--l{border-top-width:.5rem}.mc-divider-right{border-right:1px solid #666666}.mc-divider-right--lightest{border-right-color:#fff}.mc-divider-right--light{border-right-color:#b3b3b3}.mc-divider-right--dark{border-right-color:#000}.mc-divider-right--m{border-right-width:.25rem}.mc-divider-right--l{border-right-width:.5rem}.mc-divider-bottom{border-bottom:1px solid #666666}.mc-divider-bottom--lightest{border-bottom-color:#fff}.mc-divider-bottom--light{border-bottom-color:#b3b3b3}.mc-divider-bottom--dark{border-bottom-color:#000}.mc-divider-bottom--m{border-bottom-width:.25rem}.mc-divider-bottom--l{border-bottom-width:.5rem}.mc-divider-left{border-left:1px solid #666666}.mc-divider-left--lightest{border-left-color:#fff}.mc-divider-left--light{border-left-color:#b3b3b3}.mc-divider-left--dark{border-left-color:#000}.mc-divider-left--m{border-left-width:.25rem}.mc-divider-left--l{border-left-width:.5rem}.mc-header{font-family:Roboto,sans-serif;font-weight:400;background-color:#fff;z-index:5}.mc-header__container{padding:.5rem 2rem 1rem;display:grid}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__container{padding-left:3rem;padding-right:3rem}}.mc-header__breadcrumb{grid-column:1;grid-row:auto}.mc-header__content{color:#000;grid-column:1;grid-row:auto;padding-top:.5rem}.mc-header__content-main{display:flex;align-items:center;gap:1rem}.mc-header__content-main:not(:only-child){margin-bottom:.25rem}.mc-header__content-aside{display:flex;align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.mc-header__content-aside.can-navigate{padding-left:3rem}@media screen and (min-width: 1024px){.mc-header__content-aside{align-items:center;flex-direction:row;gap:1rem;padding-bottom:0}}.mc-header__back{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;justify-content:center;color:currentColor;display:flex;height:2rem;width:2rem}.mc-header__back-icon{color:#333;height:1.5rem;width:1.5rem}.mc-header__back-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-header__title{font-size:1.75rem;line-height:1.2857142857;font-weight:700;margin-top:0;margin-bottom:0}.mc-header__title--s{font-size:1.4375rem;line-height:1.3913043478}.mc-header__title--l{font-size:2.125rem;line-height:1.2941176471}.mc-header__title--xl{font-size:2.5625rem;line-height:1.3658536585}.mc-header__subtitle{font-size:1rem;line-height:1.375}.mc-header__actions,.mc-header__icons{display:flex;gap:1.5rem}.mc-header__actions{align-items:flex-end;align-self:flex-start;grid-column:1;grid-row:1;justify-self:end;margin-bottom:.5rem;min-height:2.5rem}@media screen and (min-width: 1024px){.mc-header__actions{grid-column:2;grid-row:1;margin-bottom:0}}.mc-header__selector:not(:only-child){padding-left:1.5625rem;position:relative}.mc-header__selector:not(:only-child):before{background:#b3b3b3;content:\"\";display:block;width:1px;height:100%;position:absolute;top:50%;transform:translateY(-50%);left:0}.mc-header__tabs{padding-left:2rem;padding-right:2rem}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__tabs{padding-left:3rem;padding-right:3rem}}.mc-header--shadow{box-shadow:0 1px 5px #19191933}.mc-header--animate{left:0;position:absolute;right:0;transition:transform ease-out .4s}.mc-header--sticky{position:sticky;top:0}.mc-header--up{transform:translateY(0)}.mc-header--down{transform:translateY(calc(-100% - 5px))}\n"] }]
4113
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
4065
4114
  type: Input
4066
4115
  }], subtitle: [{
4067
4116
  type: Input
@@ -4077,21 +4126,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4077
4126
  type: Input
4078
4127
  }], animate: [{
4079
4128
  type: Input
4080
- }], parentRef: [{
4129
+ }], showBack: [{
4130
+ type: Input
4131
+ }], backButtonLabel: [{
4132
+ type: Input
4133
+ }], backEvent: [{
4134
+ type: Output
4135
+ }], directionChangeEvent: [{
4136
+ type: Output
4137
+ }], tabsRef: [{
4081
4138
  type: ViewChild,
4082
- args: ['parentRef']
4139
+ args: ['tabsRef']
4140
+ }], breadcrumbRef: [{
4141
+ type: ViewChild,
4142
+ args: ['breadcrumbRef']
4083
4143
  }] } });
4084
4144
 
4085
4145
  class HeaderModule {
4086
4146
  }
4087
4147
  HeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4088
- HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: HeaderModule, declarations: [HeaderComponent], imports: [CommonModule, BadgeModule], exports: [HeaderComponent] });
4089
- HeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderModule, imports: [CommonModule, BadgeModule] });
4148
+ HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: HeaderModule, declarations: [HeaderComponent], imports: [CommonModule, BadgeModule, IconModule], exports: [HeaderComponent] });
4149
+ HeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderModule, imports: [CommonModule, BadgeModule, IconModule] });
4090
4150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HeaderModule, decorators: [{
4091
4151
  type: NgModule,
4092
4152
  args: [{
4093
4153
  declarations: [HeaderComponent],
4094
- imports: [CommonModule, BadgeModule],
4154
+ imports: [CommonModule, BadgeModule, IconModule],
4095
4155
  exports: [HeaderComponent],
4096
4156
  }]
4097
4157
  }] });
@@ -4572,5 +4632,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4572
4632
  * Generated bundle index. Do not edit.
4573
4633
  */
4574
4634
 
4575
- export { AutocompleteComponent, AutocompleteModule, BadgeComponent, BadgeModule, BreadcrumbComponent, BreadcrumbModule, BuiltItMenuComponent, BuiltItMenuModule, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CardComponent, CardModule, CheckboxComponent, CheckboxModule, DIALOG_CONFIG, DIALOG_DATA, DIALOG_REF, DialogComponent, DialogModule, DialogService, DropdownComponent, DropdownModule, FieldComponent, FieldErrorComponent, FieldModule, FileUploaderComponent, FileUploaderModule, HeaderComponent, HeaderModule, HeadingComponent, HeadingModule, IconComponent, IconModule, IconService, InputIconDirective, KpiComponent, KpiIcon, KpiModule, LAYER_CONFIG, LAYER_DATA, LAYER_REF, LayerComponent, LayerModule, LayerService, LinkComponent, LinkModule, ListboxComponent, ListboxModule, LoaderComponent, LoaderModule, LoaderService, MOZ_INPUT_ICON, MozDatatableCaptionComponent, MozDatatableComponent, MozDatatableContentCellComponent, MozDatatableFooterComponent, MozDatatableHeaderCellComponent, MozDatatableManagementComponent, MozDatatableManagementContentComponent, MozDatatableManagementModule, MozDatatableModule, MozDatatableRowExpansionContentComponent, MozDatatableSelectionComponent, MozDatatableSortDirective, MozDragNDropDirective, NOTIFICATION_CONFIG, NotificationComponent, NotificationConfigFactory, NotificationContainerComponent, NotificationFooterComponent, NotificationMessageComponent, NotificationModule, NotificationService, NotificationTitleComponent, PAGINATION_CONTROL_VALUE_ACCESSOR, PaginationComponent, PaginationModule, PhoneNumberComponent, PhoneNumberModule, ProgressBarComponent, ProgressBarModule, QuantitySelectorComponent, QuantitySelectorModule, SelectComponent, SelectModule, StepComponent, StepperComponent, StepperModule, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabsComponent, TabsModule, TagComponent, TagModule, TaglistComponent, TaglistLayerContentComponent, TaglistModule, TextAreaComponent, TextAreaModule, TextInputComponent, TextInputModule, ToggleComponent, ToggleModule, TooltipComponent, TooltipDirective, TooltipModule, UploadedFilesComponent, castBooleanProperty, generateId, getRandomNumber, overwriteStyle };
4635
+ export { AutocompleteComponent, AutocompleteModule, BadgeComponent, BadgeModule, BreadcrumbComponent, BreadcrumbModule, BuiltItMenuComponent, BuiltItMenuModule, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CardComponent, CardModule, CheckboxComponent, CheckboxModule, DIALOG_CONFIG, DIALOG_DATA, DIALOG_REF, DialogComponent, DialogModule, DialogService, Direction, DropdownComponent, DropdownModule, FieldComponent, FieldErrorComponent, FieldModule, FileUploaderComponent, FileUploaderModule, HeaderComponent, HeaderModule, HeadingComponent, HeadingModule, IconComponent, IconModule, IconService, InputIconDirective, KpiComponent, KpiIcon, KpiModule, LAYER_CONFIG, LAYER_DATA, LAYER_REF, LayerComponent, LayerModule, LayerService, LinkComponent, LinkModule, ListboxComponent, ListboxModule, LoaderComponent, LoaderModule, LoaderService, MOZ_INPUT_ICON, MozDatatableCaptionComponent, MozDatatableComponent, MozDatatableContentCellComponent, MozDatatableFooterComponent, MozDatatableHeaderCellComponent, MozDatatableManagementComponent, MozDatatableManagementContentComponent, MozDatatableManagementModule, MozDatatableModule, MozDatatableRowExpansionContentComponent, MozDatatableSelectionComponent, MozDatatableSortDirective, MozDragNDropDirective, NOTIFICATION_CONFIG, NotificationComponent, NotificationConfigFactory, NotificationContainerComponent, NotificationFooterComponent, NotificationMessageComponent, NotificationModule, NotificationService, NotificationTitleComponent, PAGINATION_CONTROL_VALUE_ACCESSOR, PaginationComponent, PaginationModule, PhoneNumberComponent, PhoneNumberModule, ProgressBarComponent, ProgressBarModule, QuantitySelectorComponent, QuantitySelectorModule, SelectComponent, SelectModule, StepComponent, StepperComponent, StepperModule, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabsComponent, TabsModule, TagComponent, TagModule, TaglistComponent, TaglistLayerContentComponent, TaglistModule, TextAreaComponent, TextAreaModule, TextInputComponent, TextInputModule, ToggleComponent, ToggleModule, TooltipComponent, TooltipDirective, TooltipModule, UploadedFilesComponent, castBooleanProperty, generateId, getRandomNumber, overwriteStyle };
4576
4636
  //# sourceMappingURL=mozaic-ds-angular.mjs.map