@bravura/ui 2.6.1 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/behavior/await.directive.d.ts +10 -6
  3. package/behavior/behavior.module.d.ts +6 -4
  4. package/behavior/observe-content-class.directive.d.ts +29 -0
  5. package/behavior/public-api.d.ts +1 -0
  6. package/behavior/sizing.directive.d.ts +2 -0
  7. package/esm2020/behavior/await.directive.mjs +22 -14
  8. package/esm2020/behavior/behavior.module.mjs +18 -6
  9. package/esm2020/behavior/observe-content-class.directive.mjs +63 -0
  10. package/esm2020/behavior/public-api.mjs +2 -1
  11. package/esm2020/behavior/sizing.directive.mjs +13 -4
  12. package/esm2020/panel/panel.component.mjs +14 -9
  13. package/esm2020/panel/panel.module.mjs +6 -5
  14. package/esm2020/panel/tinted.directive.mjs +60 -0
  15. package/esm2020/tooltip/public-api.mjs +2 -1
  16. package/esm2020/tooltip/tooltip.directive.mjs +30 -4
  17. package/fesm2015/bravura-ui-behavior.mjs +111 -22
  18. package/fesm2015/bravura-ui-behavior.mjs.map +1 -1
  19. package/fesm2015/bravura-ui-panel.mjs +78 -13
  20. package/fesm2015/bravura-ui-panel.mjs.map +1 -1
  21. package/fesm2015/bravura-ui-tooltip.mjs +30 -4
  22. package/fesm2015/bravura-ui-tooltip.mjs.map +1 -1
  23. package/fesm2020/bravura-ui-behavior.mjs +111 -22
  24. package/fesm2020/bravura-ui-behavior.mjs.map +1 -1
  25. package/fesm2020/bravura-ui-panel.mjs +74 -13
  26. package/fesm2020/bravura-ui-panel.mjs.map +1 -1
  27. package/fesm2020/bravura-ui-tooltip.mjs +30 -4
  28. package/fesm2020/bravura-ui-tooltip.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/panel/panel.component.d.ts +6 -2
  31. package/panel/panel.module.d.ts +7 -5
  32. package/panel/tinted.directive.d.ts +26 -0
  33. package/tooltip/public-api.d.ts +1 -0
  34. package/tooltip/tooltip.directive.d.ts +8 -2
@@ -1,7 +1,8 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Host, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/material/card";
4
- import * as i2 from "@bravura/ui/behavior";
3
+ import * as i1 from "./tinted.directive";
4
+ import * as i2 from "@angular/material/card";
5
+ import * as i3 from "@bravura/ui/behavior";
5
6
  /**
6
7
  * A `bui-panel` consists of a `mat-card` and a tinted backdrop.
7
8
  *
@@ -15,8 +16,9 @@ import * as i2 from "@bravura/ui/behavior";
15
16
  *
16
17
  */
17
18
  export class PanelComponent {
18
- constructor(_cd) {
19
+ constructor(_cd, _tinted) {
19
20
  this._cd = _cd;
21
+ this._tinted = _tinted;
20
22
  /**
21
23
  * The width of the host element, at which the panel section container will change its orientation.
22
24
  */
@@ -34,6 +36,7 @@ export class PanelComponent {
34
36
  }
35
37
  set color(value) {
36
38
  this._color = value;
39
+ this._tinted.color = value;
37
40
  this._cd.markForCheck();
38
41
  }
39
42
  /**
@@ -59,16 +62,18 @@ export class PanelComponent {
59
62
  this._cd.markForCheck();
60
63
  }
61
64
  }
62
- PanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: PanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
63
- PanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: PanelComponent, selector: "bui-panel", inputs: { backdropClass: "backdropClass", cardClass: "cardClass", color: "color", appearance: "appearance", breakpoint: "breakpoint" }, host: { properties: { "class.bui-panel-vertical": "_width < breakpoint", "class.bui-panel-horizontal": "_width >= breakpoint" }, classAttribute: "bui-panel bui-host" }, ngImport: i0, template: "<div\n\tclass=\"bui-panel-backdrop {{ backdropClass }} bui-bg-{{ color || 'none' }}\"\n\t[buiSizingBy]=\"'parent'\"\n\t(buiResized)=\"_resized($event.width)\"\n></div>\n<mat-card\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n", styles: [":host{position:relative}:host .bui-panel-backdrop{position:absolute;inset:0;border-radius:4px;opacity:.1}:host .bui-panel-border{border-width:1px;border-style:solid}:host ::ng-deep .bui-panel-section-container{display:flex;box-sizing:border-box!important}:host(:not([hidden])){display:block}:host(:not([hidden])) .mat-card{background-color:transparent}:host(.bui-panel-horizontal) ::ng-deep .bui-panel-section-container{flex-direction:row}:host(.bui-panel-vertical) ::ng-deep .bui-panel-section-container{flex-direction:column}\n"], dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i2.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
+ PanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: PanelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TintedDirective, host: true }], target: i0.ɵɵFactoryTarget.Component });
66
+ PanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: PanelComponent, selector: "bui-panel", inputs: { backdropClass: "backdropClass", cardClass: "cardClass", color: "color", appearance: "appearance", breakpoint: "breakpoint" }, host: { properties: { "class.bui-panel-vertical": "_width < breakpoint", "class.bui-panel-horizontal": "_width >= breakpoint" }, classAttribute: "bui-panel bui-host" }, ngImport: i0, template: "<mat-card\n\t[buiSizingBy]=\"'parent'\"\n\t(buiResized)=\"_resized($event.width)\"\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n", styles: [":host{position:relative}:host .bui-panel-border{border-width:1px;border-style:solid}:host ::ng-deep .bui-panel-section-container{display:flex;box-sizing:border-box!important}:host(:not([hidden])){display:block}:host(:not([hidden])) .mat-card{background-color:transparent}:host(.bui-panel-horizontal) ::ng-deep .bui-panel-section-container{flex-direction:row}:host(.bui-panel-vertical) ::ng-deep .bui-panel-section-container{flex-direction:column}\n"], dependencies: [{ kind: "component", type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i3.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
64
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: PanelComponent, decorators: [{
65
68
  type: Component,
66
69
  args: [{ selector: 'bui-panel', host: {
67
70
  class: 'bui-panel bui-host',
68
71
  '[class.bui-panel-vertical]': `_width < breakpoint`,
69
72
  '[class.bui-panel-horizontal]': `_width >= breakpoint`
70
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n\tclass=\"bui-panel-backdrop {{ backdropClass }} bui-bg-{{ color || 'none' }}\"\n\t[buiSizingBy]=\"'parent'\"\n\t(buiResized)=\"_resized($event.width)\"\n></div>\n<mat-card\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n", styles: [":host{position:relative}:host .bui-panel-backdrop{position:absolute;inset:0;border-radius:4px;opacity:.1}:host .bui-panel-border{border-width:1px;border-style:solid}:host ::ng-deep .bui-panel-section-container{display:flex;box-sizing:border-box!important}:host(:not([hidden])){display:block}:host(:not([hidden])) .mat-card{background-color:transparent}:host(.bui-panel-horizontal) ::ng-deep .bui-panel-section-container{flex-direction:row}:host(.bui-panel-vertical) ::ng-deep .bui-panel-section-container{flex-direction:column}\n"] }]
71
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { backdropClass: [{
73
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card\n\t[buiSizingBy]=\"'parent'\"\n\t(buiResized)=\"_resized($event.width)\"\n\tclass=\"bui-border-{{ color || 'none' }} {{ cardClass }} {{\n\t\tappearance === 'flat' ? 'mat-elevation-z' : appearance === 'outlined' ? 'mat-elevation-z bui-panel-border' : ''\n\t}}\"\n>\n\t<ng-content></ng-content>\n</mat-card>\n", styles: [":host{position:relative}:host .bui-panel-border{border-width:1px;border-style:solid}:host ::ng-deep .bui-panel-section-container{display:flex;box-sizing:border-box!important}:host(:not([hidden])){display:block}:host(:not([hidden])) .mat-card{background-color:transparent}:host(.bui-panel-horizontal) ::ng-deep .bui-panel-section-container{flex-direction:row}:host(.bui-panel-vertical) ::ng-deep .bui-panel-section-container{flex-direction:column}\n"] }]
74
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TintedDirective, decorators: [{
75
+ type: Host
76
+ }] }]; }, propDecorators: { backdropClass: [{
72
77
  type: Input
73
78
  }], cardClass: [{
74
79
  type: Input
@@ -79,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
79
84
  }], breakpoint: [{
80
85
  type: Input
81
86
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcGFuZWwvcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcGFuZWwvcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBR3JHOzs7Ozs7Ozs7OztHQVdHO0FBWUgsTUFBTSxPQUFPLGNBQWM7SUF3RDFCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYjFDOztXQUVHO1FBRUgsZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUVqQixjQUFjO1FBQ2QsV0FBTSxHQUFHLEdBQUcsQ0FBQztRQUVMLFdBQU0sR0FBaUIsU0FBUyxDQUFDO1FBRWpDLGdCQUFXLEdBQW1DLE1BQU0sQ0FBQztJQUVoQixDQUFDO0lBM0M5Qzs7T0FFRztJQUNILElBQ0ksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBbUI7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxJQUNJLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQXFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQWlCRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixjQUFjO0lBQ2QsUUFBUSxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOzsyR0FoRVcsY0FBYzsrRkFBZCxjQUFjLGtXQzFCM0IsK1pBWUE7MkZEY2EsY0FBYztrQkFYMUIsU0FBUzsrQkFDQyxXQUFXLFFBR2Y7d0JBQ0wsS0FBSyxFQUFFLG9CQUFvQjt3QkFDM0IsNEJBQTRCLEVBQUUscUJBQXFCO3dCQUNuRCw4QkFBOEIsRUFBRSxzQkFBc0I7cUJBQ3RELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3dHQU8vQyxhQUFhO3NCQURaLEtBQUs7Z0JBT04sU0FBUztzQkFEUixLQUFLO2dCQU9GLEtBQUs7c0JBRFIsS0FBSztnQkFtQkYsVUFBVTtzQkFEYixLQUFLO2dCQWFOLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuLyoqXG4gKiBBIGBidWktcGFuZWxgIGNvbnNpc3RzIG9mIGEgYG1hdC1jYXJkYCBhbmQgYSB0aW50ZWQgYmFja2Ryb3AuXG4gKlxuICogVW5saWtlIGBtYXQtY2FyZGAsIGBidWktcGFuZWxgIGhhcyBhIGZsYXQgYXBwZWFyYW5jZSBieSBkZWZhdWx0IGFuZCBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQuXG4gKiBUaGUgYmFja2Ryb3AgaXMgbmVhcmx5IHRyYW5zcGFyZW50LCBibGVuZGluZyB0aGUgdGhlbWUgcGFsZXR0ZSBgY29sb3JgXG4gKiBhbmQgdGhlIGVmZmVjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBET00gYW5jZXN0b3JzLlxuICpcbiAqIGBidWktcGFuZWxgIHN1cHBvcnRzIGFsbCB0aGUgY29udGVudCBjaGlsZCBkaXJlY3RpdmVzIG9mIGBtYXQtY2FyZGAgYXMgd2VsbCBhcyBgYnVpLXBhbmVsLXNlY3Rpb25gLlxuICpcbiAqIGBidWktcGFuZWwtc2VjdGlvbmBzIGFyZSBzdWJkaXZpc2lvbnMgb2YgYGJ1aS1wYW5lbGAgdGhhdCByZWFycmFuZ2UgdGhlaXIgb3JpZW50YXRpb24gYmFzZWQgb24gdGhlIHdpZHRoIG9mIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1wYW5lbCcsXG5cdHRlbXBsYXRlVXJsOiAnLi9wYW5lbC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3BhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2J1aS1wYW5lbCBidWktaG9zdCcsXG5cdFx0J1tjbGFzcy5idWktcGFuZWwtdmVydGljYWxdJzogYF93aWR0aCA8IGJyZWFrcG9pbnRgLFxuXHRcdCdbY2xhc3MuYnVpLXBhbmVsLWhvcml6b250YWxdJzogYF93aWR0aCA+PSBicmVha3BvaW50YFxuXHR9LFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdC8qKlxuXHQgKiBBZGRpdGlvbmFsIHN0eWxlIGNsYXNzZXMgb24gdGhlIHRpbnRlZCBiYWNrZHJvcCBlbGVtZW50LlxuXHQgKi9cblx0QElucHV0KClcblx0YmFja2Ryb3BDbGFzcz86IHN0cmluZztcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBzdHlsZSBjbGFzc2VzIG9uIHRoZSBgPG1hdC1jYXJkPmAgZWxlbWVudC5cblx0ICovXG5cdEBJbnB1dCgpXG5cdGNhcmRDbGFzcz86IHN0cmluZztcblxuXHQvKipcblx0ICogVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIHRoZSBiYWNrZ3JvdW5kIChzaGFkZWQpIGFuZCBib3JkZXIgY29sb3JzIG9mIHRoZSBwYW5lbFxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IGNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XG5cdFx0cmV0dXJuIHRoaXMuX2NvbG9yO1xuXHR9XG5cdHNldCBjb2xvcih2YWx1ZTogVGhlbWVQYWxldHRlKSB7XG5cdFx0dGhpcy5fY29sb3IgPSB2YWx1ZTtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbiBjb250cmFzdCB0byB1c2luZyBhIGBtYXQtY2FyZGAgYWxvbmUsIGEgYGJ1aS1wYW5lbGAgZG9lcyBub3QgaGF2ZSBhIGVsZXZhdGVkIGFwcGVhcmFuY2UgYnkgZGVmYXVsdC5cblx0ICpcblx0ICogVGhpcyBwcm9wZXJ0eSBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IGFwcGVhcmFuY2UgdG9cblx0ICpcblx0ICogKiBgcmFpc2VkYCAtIHRoZSBvcmlnaW5hbCBgbWF0LWNhcmRgIGRlZmF1bHRcblx0ICogKiBgb3V0bGluZWAgLSBhIGBtYXQtY2FyZGAgd2l0aCBib3JkZXJzXG5cdCAqICogYGZsYXRgIC0gbm8gYm9yZGVyIG9yIGVsZXZhdGlvblxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IGFwcGVhcmFuY2UoKTogJ291dGxpbmVkJyB8ICdyYWlzZWQnIHwgJ2ZsYXQnIHtcblx0XHRyZXR1cm4gdGhpcy5fYXBwZWFyYW5jZTtcblx0fVxuXHRzZXQgYXBwZWFyYW5jZSh2YWx1ZTogJ291dGxpbmVkJyB8ICdyYWlzZWQnIHwgJ2ZsYXQnKSB7XG5cdFx0dGhpcy5fYXBwZWFyYW5jZSA9IHZhbHVlO1xuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSB3aWR0aCBvZiB0aGUgaG9zdCBlbGVtZW50LCBhdCB3aGljaCB0aGUgcGFuZWwgc2VjdGlvbiBjb250YWluZXIgd2lsbCBjaGFuZ2UgaXRzIG9yaWVudGF0aW9uLlxuXHQgKi9cblx0QElucHV0KClcblx0YnJlYWtwb2ludCA9IDYwMDtcblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfd2lkdGggPSA2MDA7XG5cblx0cHJpdmF0ZSBfY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcblxuXHRwcml2YXRlIF9hcHBlYXJhbmNlOiAnb3V0bGluZWQnIHwgJ3JhaXNlZCcgfCAnZmxhdCcgPSAnZmxhdCc7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfcmVzaXplZCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG5cdFx0dGhpcy5fd2lkdGggPSB3aWR0aDtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0fVxufVxuIiwiPGRpdlxuXHRjbGFzcz1cImJ1aS1wYW5lbC1iYWNrZHJvcCB7eyBiYWNrZHJvcENsYXNzIH19IGJ1aS1iZy17eyBjb2xvciB8fCAnbm9uZScgfX1cIlxuXHRbYnVpU2l6aW5nQnldPVwiJ3BhcmVudCdcIlxuXHQoYnVpUmVzaXplZCk9XCJfcmVzaXplZCgkZXZlbnQud2lkdGgpXCJcbj48L2Rpdj5cbjxtYXQtY2FyZFxuXHRjbGFzcz1cImJ1aS1ib3JkZXIte3sgY29sb3IgfHwgJ25vbmUnIH19IHt7IGNhcmRDbGFzcyB9fSB7e1xuXHRcdGFwcGVhcmFuY2UgPT09ICdmbGF0JyA/ICdtYXQtZWxldmF0aW9uLXonIDogYXBwZWFyYW5jZSA9PT0gJ291dGxpbmVkJyA/ICdtYXQtZWxldmF0aW9uLXogYnVpLXBhbmVsLWJvcmRlcicgOiAnJ1xuXHR9fVwiXG4+XG5cdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcGFuZWwvcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcGFuZWwvcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFJM0c7Ozs7Ozs7Ozs7O0dBV0c7QUFZSCxNQUFNLE9BQU8sY0FBYztJQTJEMUIsWUFBb0IsR0FBc0IsRUFBa0IsT0FBd0I7UUFBaEUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBa0IsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFicEY7O1dBRUc7UUFFSCxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBRWpCLGNBQWM7UUFDZCxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRUwsV0FBTSxHQUFpQixTQUFTLENBQUM7UUFFakMsZ0JBQVcsR0FBbUMsTUFBTSxDQUFDO0lBRTBCLENBQUM7SUE1Q3hGOztPQUVHO0lBQ0gsSUFDSSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxJQUNJLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQXFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQWlCRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixjQUFjO0lBQ2QsUUFBUSxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOzsyR0FuRVcsY0FBYzsrRkFBZCxjQUFjLGtXQzNCM0IsK1RBU0E7MkZEa0JhLGNBQWM7a0JBWDFCLFNBQVM7K0JBQ0MsV0FBVyxRQUdmO3dCQUNMLEtBQUssRUFBRSxvQkFBb0I7d0JBQzNCLDRCQUE0QixFQUFFLHFCQUFxQjt3QkFDbkQsOEJBQThCLEVBQUUsc0JBQXNCO3FCQUN0RCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBNkRGLElBQUk7NENBcERqRCxhQUFhO3NCQURaLEtBQUs7Z0JBT04sU0FBUztzQkFEUixLQUFLO2dCQU9GLEtBQUs7c0JBRFIsS0FBSztnQkFvQkYsVUFBVTtzQkFEYixLQUFLO2dCQWFOLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IFRpbnRlZERpcmVjdGl2ZSB9IGZyb20gJy4vdGludGVkLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQSBgYnVpLXBhbmVsYCBjb25zaXN0cyBvZiBhIGBtYXQtY2FyZGAgYW5kIGEgdGludGVkIGJhY2tkcm9wLlxuICpcbiAqIFVubGlrZSBgbWF0LWNhcmRgLCBgYnVpLXBhbmVsYCBoYXMgYSBmbGF0IGFwcGVhcmFuY2UgYnkgZGVmYXVsdCBhbmQgYSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kLlxuICogVGhlIGJhY2tkcm9wIGlzIG5lYXJseSB0cmFuc3BhcmVudCwgYmxlbmRpbmcgdGhlIHRoZW1lIHBhbGV0dGUgYGNvbG9yYFxuICogYW5kIHRoZSBlZmZlY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgRE9NIGFuY2VzdG9ycy5cbiAqXG4gKiBgYnVpLXBhbmVsYCBzdXBwb3J0cyBhbGwgdGhlIGNvbnRlbnQgY2hpbGQgZGlyZWN0aXZlcyBvZiBgbWF0LWNhcmRgIGFzIHdlbGwgYXMgYGJ1aS1wYW5lbC1zZWN0aW9uYC5cbiAqXG4gKiBgYnVpLXBhbmVsLXNlY3Rpb25gcyBhcmUgc3ViZGl2aXNpb25zIG9mIGBidWktcGFuZWxgIHRoYXQgcmVhcnJhbmdlIHRoZWlyIG9yaWVudGF0aW9uIGJhc2VkIG9uIHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIGVsZW1lbnQuXG4gKlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdidWktcGFuZWwnLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdidWktcGFuZWwgYnVpLWhvc3QnLFxuXHRcdCdbY2xhc3MuYnVpLXBhbmVsLXZlcnRpY2FsXSc6IGBfd2lkdGggPCBicmVha3BvaW50YCxcblx0XHQnW2NsYXNzLmJ1aS1wYW5lbC1ob3Jpem9udGFsXSc6IGBfd2lkdGggPj0gYnJlYWtwb2ludGBcblx0fSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHQvKipcblx0ICogQWRkaXRpb25hbCBzdHlsZSBjbGFzc2VzIG9uIHRoZSB0aW50ZWQgYmFja2Ryb3AgZWxlbWVudC5cblx0ICogQGRlcHJlY2F0ZWRcblx0ICogQGlnbm9yZVxuXHQgKi9cblx0QElucHV0KClcblx0YmFja2Ryb3BDbGFzcz86IHN0cmluZztcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBzdHlsZSBjbGFzc2VzIG9uIHRoZSBgPG1hdC1jYXJkPmAgZWxlbWVudC5cblx0ICovXG5cdEBJbnB1dCgpXG5cdGNhcmRDbGFzcz86IHN0cmluZztcblxuXHQvKipcblx0ICogVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIHRoZSBiYWNrZ3JvdW5kIChzaGFkZWQpIGFuZCBib3JkZXIgY29sb3JzIG9mIHRoZSBwYW5lbFxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IGNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XG5cdFx0cmV0dXJuIHRoaXMuX2NvbG9yO1xuXHR9XG5cdHNldCBjb2xvcih2YWx1ZTogVGhlbWVQYWxldHRlKSB7XG5cdFx0dGhpcy5fY29sb3IgPSB2YWx1ZTtcblx0XHR0aGlzLl90aW50ZWQuY29sb3IgPSB2YWx1ZTtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbiBjb250cmFzdCB0byB1c2luZyBhIGBtYXQtY2FyZGAgYWxvbmUsIGEgYGJ1aS1wYW5lbGAgZG9lcyBub3QgaGF2ZSBhIGVsZXZhdGVkIGFwcGVhcmFuY2UgYnkgZGVmYXVsdC5cblx0ICpcblx0ICogVGhpcyBwcm9wZXJ0eSBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IGFwcGVhcmFuY2UgdG9cblx0ICpcblx0ICogKiBgcmFpc2VkYCAtIHRoZSBvcmlnaW5hbCBgbWF0LWNhcmRgIGRlZmF1bHRcblx0ICogKiBgb3V0bGluZWAgLSBhIGBtYXQtY2FyZGAgd2l0aCBib3JkZXJzXG5cdCAqICogYGZsYXRgIC0gbm8gYm9yZGVyIG9yIGVsZXZhdGlvblxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IGFwcGVhcmFuY2UoKTogJ291dGxpbmVkJyB8ICdyYWlzZWQnIHwgJ2ZsYXQnIHtcblx0XHRyZXR1cm4gdGhpcy5fYXBwZWFyYW5jZTtcblx0fVxuXHRzZXQgYXBwZWFyYW5jZSh2YWx1ZTogJ291dGxpbmVkJyB8ICdyYWlzZWQnIHwgJ2ZsYXQnKSB7XG5cdFx0dGhpcy5fYXBwZWFyYW5jZSA9IHZhbHVlO1xuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSB3aWR0aCBvZiB0aGUgaG9zdCBlbGVtZW50LCBhdCB3aGljaCB0aGUgcGFuZWwgc2VjdGlvbiBjb250YWluZXIgd2lsbCBjaGFuZ2UgaXRzIG9yaWVudGF0aW9uLlxuXHQgKi9cblx0QElucHV0KClcblx0YnJlYWtwb2ludCA9IDYwMDtcblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfd2lkdGggPSA2MDA7XG5cblx0cHJpdmF0ZSBfY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcblxuXHRwcml2YXRlIF9hcHBlYXJhbmNlOiAnb3V0bGluZWQnIHwgJ3JhaXNlZCcgfCAnZmxhdCcgPSAnZmxhdCc7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLCBASG9zdCgpIHByaXZhdGUgX3RpbnRlZDogVGludGVkRGlyZWN0aXZlKSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfcmVzaXplZCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG5cdFx0dGhpcy5fd2lkdGggPSB3aWR0aDtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0fVxufVxuIiwiPG1hdC1jYXJkXG5cdFtidWlTaXppbmdCeV09XCIncGFyZW50J1wiXG5cdChidWlSZXNpemVkKT1cIl9yZXNpemVkKCRldmVudC53aWR0aClcIlxuXHRjbGFzcz1cImJ1aS1ib3JkZXIte3sgY29sb3IgfHwgJ25vbmUnIH19IHt7IGNhcmRDbGFzcyB9fSB7e1xuXHRcdGFwcGVhcmFuY2UgPT09ICdmbGF0JyA/ICdtYXQtZWxldmF0aW9uLXonIDogYXBwZWFyYW5jZSA9PT0gJ291dGxpbmVkJyA/ICdtYXQtZWxldmF0aW9uLXogYnVpLXBhbmVsLWJvcmRlcicgOiAnJ1xuXHR9fVwiXG4+XG5cdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -4,19 +4,20 @@ import { PanelComponent } from './panel.component';
4
4
  import { MatCardModule } from '@angular/material/card';
5
5
  import { BehaviorModule } from '@bravura/ui/behavior';
6
6
  import { PanelSectionComponent } from './panel-section.component';
7
+ import { TintedDirective } from './tinted.directive';
7
8
  import * as i0 from "@angular/core";
8
9
  export class PanelModule {
9
10
  }
10
11
  PanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: PanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- PanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: PanelModule, declarations: [PanelComponent, PanelSectionComponent], imports: [CommonModule, MatCardModule, BehaviorModule], exports: [MatCardModule, PanelComponent, PanelSectionComponent] });
12
+ PanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: PanelModule, declarations: [PanelComponent, PanelSectionComponent, TintedDirective], imports: [CommonModule, MatCardModule, BehaviorModule], exports: [MatCardModule, PanelComponent, PanelSectionComponent, TintedDirective] });
12
13
  PanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: PanelModule, imports: [CommonModule, MatCardModule, BehaviorModule, MatCardModule] });
13
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: PanelModule, decorators: [{
14
15
  type: NgModule,
15
16
  args: [{
16
- declarations: [PanelComponent, PanelSectionComponent],
17
+ declarations: [PanelComponent, PanelSectionComponent, TintedDirective],
17
18
  imports: [CommonModule, MatCardModule, BehaviorModule],
18
- exports: [MatCardModule, PanelComponent, PanelSectionComponent]
19
+ exports: [MatCardModule, PanelComponent, PanelSectionComponent, TintedDirective]
19
20
  }]
20
21
  }] });
21
- export { PanelComponent, PanelSectionComponent };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcGFuZWwvcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQUpSLGNBQWMsRUFBRSxxQkFBcUIsYUFDMUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLGFBQzNDLGFBQWEsRUFBRSxjQUFjLEVBQUUscUJBQXFCO3lHQUVsRCxXQUFXLFlBSGIsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQzNDLGFBQWE7MkZBRVgsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUM7b0JBQ3JELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixDQUFDO2lCQUMvRDs7QUFHRCxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JNb2R1bGUgfSBmcm9tICdAYnJhdnVyYS91aS9iZWhhdmlvcic7XG5pbXBvcnQgeyBQYW5lbFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3BhbmVsLXNlY3Rpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbUGFuZWxDb21wb25lbnQsIFBhbmVsU2VjdGlvbkNvbXBvbmVudF0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdENhcmRNb2R1bGUsIEJlaGF2aW9yTW9kdWxlXSxcblx0ZXhwb3J0czogW01hdENhcmRNb2R1bGUsIFBhbmVsQ29tcG9uZW50LCBQYW5lbFNlY3Rpb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsTW9kdWxlIHt9XG5cbmV4cG9ydCB7IFBhbmVsQ29tcG9uZW50LCBQYW5lbFNlY3Rpb25Db21wb25lbnQgfTtcbiJdfQ==
22
+ export { PanelComponent, PanelSectionComponent, TintedDirective };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcGFuZWwvcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPckQsTUFBTSxPQUFPLFdBQVc7O3dHQUFYLFdBQVc7eUdBQVgsV0FBVyxpQkFKUixjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxhQUMzRCxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsYUFDM0MsYUFBYSxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxlQUFlO3lHQUVuRSxXQUFXLFlBSGIsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQzNDLGFBQWE7MkZBRVgsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxDQUFDO29CQUN0RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLENBQUM7aUJBQ2hGOztBQUdELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JNb2R1bGUgfSBmcm9tICdAYnJhdnVyYS91aS9iZWhhdmlvcic7XG5pbXBvcnQgeyBQYW5lbFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3BhbmVsLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbnRlZERpcmVjdGl2ZSB9IGZyb20gJy4vdGludGVkLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG5cdGRlY2xhcmF0aW9uczogW1BhbmVsQ29tcG9uZW50LCBQYW5lbFNlY3Rpb25Db21wb25lbnQsIFRpbnRlZERpcmVjdGl2ZV0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdENhcmRNb2R1bGUsIEJlaGF2aW9yTW9kdWxlXSxcblx0ZXhwb3J0czogW01hdENhcmRNb2R1bGUsIFBhbmVsQ29tcG9uZW50LCBQYW5lbFNlY3Rpb25Db21wb25lbnQsIFRpbnRlZERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFuZWxNb2R1bGUge31cblxuZXhwb3J0IHsgUGFuZWxDb21wb25lbnQsIFBhbmVsU2VjdGlvbkNvbXBvbmVudCwgVGludGVkRGlyZWN0aXZlIH07XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Directive, Inject, Input } from '@angular/core';
3
+ import { generateID } from '@bravura/ui/common';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * A "tinted" element has a shaded background specified by the `ThemePalette`, which
7
+ * is compatible with both light and dark themes.
8
+ */
9
+ export class TintedDirective {
10
+ constructor(_doc, elemRef) {
11
+ this._doc = _doc;
12
+ this._color = 'default';
13
+ this._addedStyle = this._doc.createElement('style');
14
+ this._attr = 'bui-tinted-' + generateID();
15
+ this._element = elemRef.nativeElement;
16
+ elemRef.nativeElement.setAttribute(this._attr, '');
17
+ }
18
+ /**
19
+ * The base color of the shaded background
20
+ * @default 'primary'
21
+ */
22
+ get color() {
23
+ return this._color;
24
+ }
25
+ set color(c) {
26
+ this._color = c;
27
+ this.generateStyle();
28
+ }
29
+ ngOnInit() {
30
+ this._element.style.position = 'relative';
31
+ this.generateStyle();
32
+ this._element.appendChild(this._addedStyle);
33
+ }
34
+ ngOnDestroy() {
35
+ this._element.removeChild(this._addedStyle);
36
+ }
37
+ generateStyle() {
38
+ this._addedStyle.innerText =
39
+ `[${this._attr}]::after { position: absolute; opacity: 0.1; border-radius: inherit; display: block; content: ''; ` +
40
+ ` background-color: var(--bui-color-${this.color}); top: 0; left: 0; ` +
41
+ ` bottom: 0; right: 0; pointer-events: none; }`;
42
+ }
43
+ }
44
+ TintedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TintedDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
45
+ TintedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: TintedDirective, selector: "[buiTinted], bui-panel", inputs: { color: ["buiTinted", "color"] }, host: { classAttribute: "bui-host" }, exportAs: ["buiTinted"], ngImport: i0 });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TintedDirective, decorators: [{
47
+ type: Directive,
48
+ args: [{
49
+ selector: '[buiTinted], bui-panel',
50
+ host: { class: 'bui-host' },
51
+ exportAs: 'buiTinted'
52
+ }]
53
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
54
+ type: Inject,
55
+ args: [DOCUMENT]
56
+ }] }, { type: i0.ElementRef }]; }, propDecorators: { color: [{
57
+ type: Input,
58
+ args: ['buiTinted']
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGludGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3BhbmVsL3RpbnRlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUVoRDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sZUFBZTtJQW9CM0IsWUFBc0MsSUFBYyxFQUFFLE9BQWdDO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVU7UUFONUMsV0FBTSxHQUFRLFNBQVMsQ0FBQztRQU8vQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUN0QyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUF4QkQ7OztPQUdHO0lBQ0gsSUFDSSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFlO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBZUQsUUFBUTtRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sYUFBYTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxvR0FBb0c7Z0JBQ2xILHNDQUFzQyxJQUFJLENBQUMsS0FBSyxzQkFBc0I7Z0JBQ3RFLCtDQUErQyxDQUFDO0lBQ2xELENBQUM7OzRHQTFDVyxlQUFlLGtCQW9CUCxRQUFRO2dHQXBCaEIsZUFBZTsyRkFBZixlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7b0JBQzNCLFFBQVEsRUFBRSxXQUFXO2lCQUNyQjs7MEJBcUJhLE1BQU07MkJBQUMsUUFBUTtxRUFkeEIsS0FBSztzQkFEUixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IGdlbmVyYXRlSUQgfSBmcm9tICdAYnJhdnVyYS91aS9jb21tb24nO1xuXG4vKipcbiAqIEEgXCJ0aW50ZWRcIiBlbGVtZW50IGhhcyBhIHNoYWRlZCBiYWNrZ3JvdW5kIHNwZWNpZmllZCBieSB0aGUgYFRoZW1lUGFsZXR0ZWAsIHdoaWNoXG4gKiBpcyBjb21wYXRpYmxlIHdpdGggYm90aCBsaWdodCBhbmQgZGFyayB0aGVtZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWlUaW50ZWRdLCBidWktcGFuZWwnLFxuXHRob3N0OiB7IGNsYXNzOiAnYnVpLWhvc3QnIH0sXG5cdGV4cG9ydEFzOiAnYnVpVGludGVkJ1xufSlcbmV4cG9ydCBjbGFzcyBUaW50ZWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cdC8qKlxuXHQgKiAgVGhlIGJhc2UgY29sb3Igb2YgdGhlIHNoYWRlZCBiYWNrZ3JvdW5kXG5cdCAqIEBkZWZhdWx0ICdwcmltYXJ5J1xuXHQgKi9cblx0QElucHV0KCdidWlUaW50ZWQnKVxuXHRnZXQgY29sb3IoKTogVGhlbWVQYWxldHRlIHtcblx0XHRyZXR1cm4gdGhpcy5fY29sb3I7XG5cdH1cblx0c2V0IGNvbG9yKGM6IFRoZW1lUGFsZXR0ZSkge1xuXHRcdHRoaXMuX2NvbG9yID0gYztcblx0XHR0aGlzLmdlbmVyYXRlU3R5bGUoKTtcblx0fVxuXG5cdHByaXZhdGUgX2NvbG9yOiBhbnkgPSAnZGVmYXVsdCc7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfYWRkZWRTdHlsZTogSFRNTFN0eWxlRWxlbWVudDtcblx0cHJpdmF0ZSByZWFkb25seSBfYXR0cjogc3RyaW5nO1xuXHRwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2M6IERvY3VtZW50LCBlbGVtUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuXHRcdHRoaXMuX2FkZGVkU3R5bGUgPSB0aGlzLl9kb2MuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblx0XHR0aGlzLl9hdHRyID0gJ2J1aS10aW50ZWQtJyArIGdlbmVyYXRlSUQoKTtcblx0XHR0aGlzLl9lbGVtZW50ID0gZWxlbVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdGVsZW1SZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5fYXR0ciwgJycpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG5cdFx0dGhpcy5nZW5lcmF0ZVN0eWxlKCk7XG5cdFx0dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9hZGRlZFN0eWxlKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuX2VsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fYWRkZWRTdHlsZSk7XG5cdH1cblxuXHRwcml2YXRlIGdlbmVyYXRlU3R5bGUoKTogdm9pZCB7XG5cdFx0dGhpcy5fYWRkZWRTdHlsZS5pbm5lclRleHQgPVxuXHRcdFx0YFske3RoaXMuX2F0dHJ9XTo6YWZ0ZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDAuMTsgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsgZGlzcGxheTogYmxvY2s7IGNvbnRlbnQ6ICcnOyBgICtcblx0XHRcdGAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnVpLWNvbG9yLSR7dGhpcy5jb2xvcn0pOyB0b3A6IDA7IGxlZnQ6IDA7IGAgK1xuXHRcdFx0YCBib3R0b206IDA7IHJpZ2h0OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfWA7XG5cdH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from './tooltip.module';
2
2
  export * from './tooltip.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3Rvb2x0aXAvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuIl19
3
+ export { BUI_TOOLTIP_TEMPLATE_REF } from './tooltip.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3Rvb2x0aXAvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQlVJX1RPT0xUSVBfVEVNUExBVEVfUkVGIH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Directive, forwardRef, HostListener, Inject, Input, Optional } from '@angular/core';
2
+ import { Directive, forwardRef, HostListener, Inject, Input, Optional, TemplateRef } from '@angular/core';
3
3
  import { MAT_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_SCROLL_STRATEGY, _MatTooltipBase } from '@angular/material/tooltip';
4
+ import { Observable, Subject } from 'rxjs';
4
5
  import { BUI_TOOLTIP_TEMPLATE_REF, TooltipComponent } from './tooltip.component';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/cdk/overlay";
@@ -17,6 +18,7 @@ export class TooltipDirective extends _MatTooltipBase {
17
18
  constructor(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document) {
18
19
  super(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document);
19
20
  this._tooltipComponent = TooltipComponent;
21
+ this._contentSub = new Subject().subscribe();
20
22
  this.touchGestures = 'off';
21
23
  const element = elementRef.nativeElement;
22
24
  element.setAttribute('aria-hidden', 'false');
@@ -44,19 +46,26 @@ export class TooltipDirective extends _MatTooltipBase {
44
46
  return this._templateRef || this.message;
45
47
  }
46
48
  set buiTooltip(value) {
49
+ this._contentSub.unsubscribe();
50
+ this._contentObs = undefined;
51
+ this._templateRef = undefined;
52
+ this.message = '';
47
53
  if (typeof value === 'string') {
48
54
  this.message = value;
49
55
  }
50
- else {
56
+ else if (value instanceof TemplateRef) {
51
57
  this._templateRef = value;
52
58
  if (value) {
53
59
  this.message = '[bui-tooltip-template]';
54
60
  }
55
61
  else {
56
62
  this._templateRef = undefined;
57
- this.message = '';
58
63
  }
59
64
  }
65
+ else if (value instanceof Observable) {
66
+ this.message = '...';
67
+ this._contentObs = value;
68
+ }
60
69
  }
61
70
  /** @ignore */
62
71
  get template() {
@@ -73,6 +82,23 @@ export class TooltipDirective extends _MatTooltipBase {
73
82
  clicked() {
74
83
  this.toggle();
75
84
  }
85
+ /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */
86
+ show(delay = this.showDelay) {
87
+ if (this._contentObs) {
88
+ this._contentSub.unsubscribe();
89
+ this._contentSub = this._contentObs.subscribe(c => {
90
+ this.message = c;
91
+ this._contentSub.unsubscribe();
92
+ super.show(delay);
93
+ });
94
+ }
95
+ else {
96
+ super.show(delay);
97
+ }
98
+ }
99
+ ngOnDestroy() {
100
+ this._contentSub.unsubscribe();
101
+ }
76
102
  }
77
103
  TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i2.Platform }, { token: i3.AriaDescriber }, { token: i3.FocusMonitor }, { token: MAT_TOOLTIP_SCROLL_STRATEGY }, { token: i4.Directionality, optional: true }, { token: MAT_TOOLTIP_DEFAULT_OPTIONS, optional: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
78
104
  TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: TooltipDirective, selector: "[buiTooltip]", inputs: { buiTooltipPosition: "buiTooltipPosition", buiTooltipDisabled: "buiTooltipDisabled", buiTooltip: "buiTooltip", buiTooltipClass: "buiTooltipClass" }, host: { listeners: { "click": "clicked()" }, classAttribute: "mat-tooltip-trigger bui-tooltip-trigger" }, providers: [
@@ -121,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
121
147
  type: HostListener,
122
148
  args: ['click']
123
149
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ04sU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVOLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFFM0IsZUFBZSxFQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUVqRjs7Ozs7R0FLRztBQWNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFpQztJQUl0RSxZQUNDLE9BQWdCLEVBQ2hCLFVBQW1DLEVBQ25DLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsTUFBYyxFQUNkLFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQ1csY0FBbUIsRUFDNUMsR0FBbUIsRUFDa0IsY0FBd0MsRUFDdkUsU0FBYztRQUVoQyxLQUFLLENBQ0osT0FBTyxFQUNQLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixRQUFRLEVBQ1IsYUFBYSxFQUNiLFlBQVksRUFDWixjQUFjLEVBQ2QsR0FBRyxFQUNILGNBQWMsRUFDZCxTQUFTLENBQ1QsQ0FBQztRQTlCZ0Isc0JBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUErQnZELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDekMsT0FBTyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUs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Y3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0SG9zdExpc3RlbmVyLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9wdGlvbmFsLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdE1hdFRvb2x0aXBEZWZhdWx0T3B0aW9ucyxcblx0TUFUX1RPT0xUSVBfREVGQVVMVF9PUFRJT05TLFxuXHRNQVRfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1ksXG5cdFRvb2x0aXBQb3NpdGlvbixcblx0X01hdFRvb2x0aXBCYXNlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQlVJX1RPT0xUSVBfVEVNUExBVEVfUkVGLCBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgZXh0ZW5kcyBbQW5ndWxhciBNYXRlcmlhbCB0b29sdGlwXShodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy90b29sdGlwL292ZXJ2aWV3KSwgd2l0aCB0aGUgYWRkaXRpb25hbCBjYXBhYmlsaXR5IG9mIGRpc3BsYXlpbmdcbiAqIEhUTUwgY29udGVudCBpbiB0aGUgb3ZlcmxheSBhcmVhLlxuICpcbiAqIEFsbCB0aGUgb3RoZXIgZmVhdHVyZXMgYXJlIGlkZW50aWNhbCBhcyB0aG9zZSBpbiBBbmd1bGFyIE1hdGVyaWFsIHRvb2x0aXAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWlUb29sdGlwXScsXG5cdGV4cG9ydEFzOiAnYnVpVG9vbHRpcCcsXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ21hdC10b29sdGlwLXRyaWdnZXIgYnVpLXRvb2x0aXAtdHJpZ2dlcidcblx0fSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQlVJX1RPT0xUSVBfVEVNUExBVEVfUkVGLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVG9vbHRpcERpcmVjdGl2ZSlcblx0XHR9XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBleHRlbmRzIF9NYXRUb29sdGlwQmFzZTxUb29sdGlwQ29tcG9uZW50PiB7XG5cdHByb3RlY3RlZCByZWFkb25seSBfdG9vbHRpcENvbXBvbmVudCA9IFRvb2x0aXBDb21wb25lbnQ7XG5cdHByaXZhdGUgX3RlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRvdmVybGF5OiBPdmVybGF5LFxuXHRcdGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG5cdFx0dmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0XHRuZ1pvbmU6IE5nWm9uZSxcblx0XHRwbGF0Zm9ybTogUGxhdGZvcm0sXG5cdFx0YXJpYURlc2NyaWJlcjogQXJpYURlc2NyaWJlcixcblx0XHRmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcblx0XHRASW5qZWN0KE1BVF9UT09MVElQX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3k6IGFueSxcblx0XHRAT3B0aW9uYWwoKSBkaXI6IERpcmVjdGlvbmFsaXR5LFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX1RPT0xUSVBfREVGQVVMVF9PUFRJT05TKSBkZWZhdWx0T3B0aW9uczogTWF0VG9vbHRpcERlZmF1bHRPcHRpb25zLFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIF9kb2N1bWVudDogYW55XG5cdCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0b3ZlcmxheSxcblx0XHRcdGVsZW1lbnRSZWYsXG5cdFx0XHRzY3JvbGxEaXNwYXRjaGVyLFxuXHRcdFx0dmlld0NvbnRhaW5lclJlZixcblx0XHRcdG5nWm9uZSxcblx0XHRcdHBsYXRmb3JtLFxuXHRcdFx0YXJpYURlc2NyaWJlcixcblx0XHRcdGZvY3VzTW9uaXRvcixcblx0XHRcdHNjcm9sbFN0cmF0ZWd5LFxuXHRcdFx0ZGlyLFxuXHRcdFx0ZGVmYXVsdE9wdGlvbnMsXG5cdFx0XHRfZG9jdW1lbnRcblx0XHQpO1xuXHRcdHRoaXMudG91Y2hHZXN0dXJlcyA9ICdvZmYnO1xuXHRcdGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0ZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7XG5cdFx0aWYgKGVsZW1lbnQudGFiSW5kZXggPT09IC0xKSB7XG5cdFx0XHRlbGVtZW50LnRhYkluZGV4ID0gMDtcblx0XHRcdGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLXJvbGVkZXNjcmlwdGlvbicsICd0b29sdGlwJyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEFsbG93cyB0aGUgdXNlciB0byBkZWZpbmUgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgZWxlbWVudCAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcFBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG5cdFx0cmV0dXJuIHRoaXMucG9zaXRpb247XG5cdH1cblx0c2V0IGJ1aVRvb2x0aXBQb3NpdGlvbih2YWx1ZTogVG9vbHRpcFBvc2l0aW9uKSB7XG5cdFx0dGhpcy5wb3NpdGlvbiA9IHZhbHVlO1xuXHR9XG5cblx0LyoqIERpc2FibGVzIHRoZSBkaXNwbGF5IG9mIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcERpc2FibGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmRpc2FibGVkO1xuXHR9XG5cdHNldCBidWlUb29sdGlwRGlzYWJsZWQodmFsdWUpIHtcblx0XHR0aGlzLmRpc2FibGVkID0gdmFsdWU7XG5cdH1cblxuXHQvKiogVGhlIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcCgpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5fdGVtcGxhdGVSZWYgfHwgdGhpcy5tZXNzYWdlO1xuXHR9XG5cdHNldCBidWlUb29sdGlwKHZhbHVlKSB7XG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHRoaXMubWVzc2FnZSA9IHZhbHVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl90ZW1wbGF0ZVJlZiA9IHZhbHVlO1xuXHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMubWVzc2FnZSA9ICdbYnVpLXRvb2x0aXAtdGVtcGxhdGVdJztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX3RlbXBsYXRlUmVmID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR0aGlzLm1lc3NhZ2UgPSAnJztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX3RlbXBsYXRlUmVmO1xuXHR9XG5cblx0LyoqIENsYXNzZXMgdG8gYmUgcGFzc2VkIHRvIHRoZSB0b29sdGlwLiBTdXBwb3J0cyB0aGUgc2FtZSBzeW50YXggYXMgYG5nQ2xhc3NgLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcENsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLnRvb2x0aXBDbGFzcztcblx0fVxuXHRzZXQgYnVpVG9vbHRpcENsYXNzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuXHRcdHRoaXMudG9vbHRpcENsYXNzID0gdmFsdWU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRASG9zdExpc3RlbmVyKCdjbGljaycpXG5cdGNsaWNrZWQoKSB7XG5cdFx0dGhpcy50b2dnbGUoKTtcblx0fVxufVxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ04sU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsV0FBVyxFQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBRTNCLGVBQWUsRUFDZixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRWpGOzs7OztHQUtHO0FBY0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWlDO0lBTXRFLFlBQ0MsT0FBZ0IsRUFDaEIsVUFBbUMsRUFDbkMsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsYUFBNEIsRUFDNUIsWUFBMEIsRUFDVyxjQUFtQixFQUM1QyxHQUFtQixFQUNrQixjQUF3QyxFQUN2RSxTQUFjO1FBRWhDLEtBQUssQ0FDSixPQUFPLEVBQ1AsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFFBQVEsRUFDUixhQUFhLEVBQ2IsWUFBWSxFQUNaLGNBQWMsRUFDZCxHQUFHLEVBQ0gsY0FBYyxFQUNkLFNBQVMsQ0FDVCxDQUFDO1FBaENnQixzQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUVoRCxnQkFBVyxHQUFpQixJQUFJLE9BQU8sRUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFD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QUNuQixDQUFDLENBQUMsQ0FBQztTQUNIO2FBQU07WUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO0lBQ0YsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OzZHQTFIVyxnQkFBZ0IsME9BZW5CLDJCQUEyQiwyREFFZiwyQkFBMkIsNkJBQ3ZDLFFBQVE7aUdBbEJMLGdCQUFnQiwrU0FQakI7UUFDVjtZQUNDLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvQztLQUNEOzJGQUVXLGdCQUFnQjtrQkFiNUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUseUNBQXlDO3FCQUNoRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUM7eUJBQy9DO3FCQUNEO2lCQUNEOzswQkFnQkUsTUFBTTsyQkFBQywyQkFBMkI7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDJCQUEyQjs7MEJBQzlDLE1BQU07MkJBQUMsUUFBUTs0Q0EyQmIsa0JBQWtCO3NCQURyQixLQUFLO2dCQVVGLGtCQUFrQjtzQkFEckIsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBK0JGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBVU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmlhRGVzY3JpYmVyLCBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE92ZXJsYXksIFNjcm9sbERpc3BhdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGZvcndhcmRSZWYsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPcHRpb25hbCxcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRNYXRUb29sdGlwRGVmYXVsdE9wdGlvbnMsXG5cdE1BVF9UT09MVElQX0RFRkFVTFRfT1BUSU9OUyxcblx0TUFUX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZLFxuXHRUb29sdGlwUG9zaXRpb24sXG5cdF9NYXRUb29sdGlwQmFzZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQlVJX1RPT0xUSVBfVEVNUExBVEVfUkVGLCBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgZXh0ZW5kcyBbQW5ndWxhciBNYXRlcmlhbCB0b29sdGlwXShodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy90b29sdGlwL292ZXJ2aWV3KSwgd2l0aCB0aGUgYWRkaXRpb25hbCBjYXBhYmlsaXR5IG9mIGRpc3BsYXlpbmdcbiAqIEhUTUwgY29udGVudCBpbiB0aGUgb3ZlcmxheSBhcmVhLlxuICpcbiAqIEFsbCB0aGUgb3RoZXIgZmVhdHVyZXMgYXJlIGlkZW50aWNhbCBhcyB0aG9zZSBpbiBBbmd1bGFyIE1hdGVyaWFsIHRvb2x0aXAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWlUb29sdGlwXScsXG5cdGV4cG9ydEFzOiAnYnVpVG9vbHRpcCcsXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ21hdC10b29sdGlwLXRyaWdnZXIgYnVpLXRvb2x0aXAtdHJpZ2dlcidcblx0fSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQlVJX1RPT0xUSVBfVEVNUExBVEVfUkVGLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVG9vbHRpcERpcmVjdGl2ZSlcblx0XHR9XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBleHRlbmRzIF9NYXRUb29sdGlwQmFzZTxUb29sdGlwQ29tcG9uZW50PiB7XG5cdHByb3RlY3RlZCByZWFkb25seSBfdG9vbHRpcENvbXBvbmVudCA9IFRvb2x0aXBDb21wb25lbnQ7XG5cdHByaXZhdGUgX3RlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55Pjtcblx0cHJpdmF0ZSBfY29udGVudFN1YjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YmplY3Q8dm9pZD4oKS5zdWJzY3JpYmUoKTtcblx0cHJpdmF0ZSBfY29udGVudE9icz86IE9ic2VydmFibGU8c3RyaW5nPjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRvdmVybGF5OiBPdmVybGF5LFxuXHRcdGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG5cdFx0dmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0XHRuZ1pvbmU6IE5nWm9uZSxcblx0XHRwbGF0Zm9ybTogUGxhdGZvcm0sXG5cdFx0YXJpYURlc2NyaWJlcjogQXJpYURlc2NyaWJlcixcblx0XHRmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcblx0XHRASW5qZWN0KE1BVF9UT09MVElQX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3k6IGFueSxcblx0XHRAT3B0aW9uYWwoKSBkaXI6IERpcmVjdGlvbmFsaXR5LFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX1RPT0xUSVBfREVGQVVMVF9PUFRJT05TKSBkZWZhdWx0T3B0aW9uczogTWF0VG9vbHRpcERlZmF1bHRPcHRpb25zLFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIF9kb2N1bWVudDogYW55XG5cdCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0b3ZlcmxheSxcblx0XHRcdGVsZW1lbnRSZWYsXG5cdFx0XHRzY3JvbGxEaXNwYXRjaGVyLFxuXHRcdFx0dmlld0NvbnRhaW5lclJlZixcblx0XHRcdG5nWm9uZSxcblx0XHRcdHBsYXRmb3JtLFxuXHRcdFx0YXJpYURlc2NyaWJlcixcblx0XHRcdGZvY3VzTW9uaXRvcixcblx0XHRcdHNjcm9sbFN0cmF0ZWd5LFxuXHRcdFx0ZGlyLFxuXHRcdFx0ZGVmYXVsdE9wdGlvbnMsXG5cdFx0XHRfZG9jdW1lbnRcblx0XHQpO1xuXHRcdHRoaXMudG91Y2hHZXN0dXJlcyA9ICdvZmYnO1xuXHRcdGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0ZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7XG5cdFx0aWYgKGVsZW1lbnQudGFiSW5kZXggPT09IC0xKSB7XG5cdFx0XHRlbGVtZW50LnRhYkluZGV4ID0gMDtcblx0XHRcdGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLXJvbGVkZXNjcmlwdGlvbicsICd0b29sdGlwJyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEFsbG93cyB0aGUgdXNlciB0byBkZWZpbmUgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgZWxlbWVudCAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcFBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG5cdFx0cmV0dXJuIHRoaXMucG9zaXRpb247XG5cdH1cblx0c2V0IGJ1aVRvb2x0aXBQb3NpdGlvbih2YWx1ZTogVG9vbHRpcFBvc2l0aW9uKSB7XG5cdFx0dGhpcy5wb3NpdGlvbiA9IHZhbHVlO1xuXHR9XG5cblx0LyoqIERpc2FibGVzIHRoZSBkaXNwbGF5IG9mIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcERpc2FibGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmRpc2FibGVkO1xuXHR9XG5cdHNldCBidWlUb29sdGlwRGlzYWJsZWQodmFsdWUpIHtcblx0XHR0aGlzLmRpc2FibGVkID0gdmFsdWU7XG5cdH1cblxuXHQvKiogVGhlIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpVG9vbHRpcCgpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgT2JzZXJ2YWJsZTxzdHJpbmc+IHtcblx0XHRyZXR1cm4gdGhpcy5fdGVtcGxhdGVSZWYgfHwgdGhpcy5tZXNzYWdlO1xuXHR9XG5cdHNldCBidWlUb29sdGlwKHZhbHVlKSB7XG5cdFx0dGhpcy5fY29udGVudFN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdHRoaXMuX2NvbnRlbnRPYnMgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5fdGVtcGxhdGVSZWYgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5tZXNzYWdlID0gJyc7XG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHRoaXMubWVzc2FnZSA9IHZhbHVlO1xuXHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuXHRcdFx0dGhpcy5fdGVtcGxhdGVSZWYgPSB2YWx1ZTtcblx0XHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0XHR0aGlzLm1lc3NhZ2UgPSAnW2J1aS10b29sdGlwLXRlbXBsYXRlXSc7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl90ZW1wbGF0ZVJlZiA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuXHRcdFx0dGhpcy5tZXNzYWdlID0gJy4uLic7XG5cdFx0XHR0aGlzLl9jb250ZW50T2JzID0gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0Z2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl90ZW1wbGF0ZVJlZjtcblx0fVxuXG5cdC8qKiBDbGFzc2VzIHRvIGJlIHBhc3NlZCB0byB0aGUgdG9vbHRpcC4gU3VwcG9ydHMgdGhlIHNhbWUgc3ludGF4IGFzIGBuZ0NsYXNzYC4gKi9cblx0QElucHV0KClcblx0Z2V0IGJ1aVRvb2x0aXBDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy50b29sdGlwQ2xhc3M7XG5cdH1cblx0c2V0IGJ1aVRvb2x0aXBDbGFzcyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcblx0XHR0aGlzLnRvb2x0aXBDbGFzcyA9IHZhbHVlO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0QEhvc3RMaXN0ZW5lcignY2xpY2snKVxuXHRjbGlja2VkKCkge1xuXHRcdHRoaXMudG9nZ2xlKCk7XG5cdH1cblxuXHQvKiogU2hvd3MgdGhlIHRvb2x0aXAgYWZ0ZXIgdGhlIGRlbGF5IGluIG1zLCBkZWZhdWx0cyB0byB0b29sdGlwLWRlbGF5LXNob3cgb3IgMG1zIGlmIG5vIGlucHV0ICovXG5cdHNob3coZGVsYXk6IG51bWJlciA9IHRoaXMuc2hvd0RlbGF5KTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX2NvbnRlbnRPYnMpIHtcblx0XHRcdHRoaXMuX2NvbnRlbnRTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuX2NvbnRlbnRTdWIgPSB0aGlzLl9jb250ZW50T2JzLnN1YnNjcmliZShjID0+IHtcblx0XHRcdFx0dGhpcy5tZXNzYWdlID0gYztcblx0XHRcdFx0dGhpcy5fY29udGVudFN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdFx0XHRzdXBlci5zaG93KGRlbGF5KTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzdXBlci5zaG93KGRlbGF5KTtcblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLl9jb250ZW50U3ViLnVuc3Vic2NyaWJlKCk7XG5cdH1cbn1cbiJdfQ==
@@ -6,6 +6,8 @@ import { debounceTime, take } from 'rxjs/operators';
6
6
  import { MatProgressSpinner, MatProgressSpinnerModule } from '@angular/material/progress-spinner';
7
7
  import * as i1 from '@angular/material/button';
8
8
  import { MatButtonModule } from '@angular/material/button';
9
+ import * as i1$1 from '@angular/cdk/observers';
10
+ import { ObserversModule } from '@angular/cdk/observers';
9
11
 
10
12
  /**
11
13
  * Use this directive to designate a target HTML element, based on which the child elements'
@@ -93,6 +95,7 @@ class SizingDirective {
93
95
  this._width = 0;
94
96
  this._height = 0;
95
97
  this._reflowFrameCount = 0;
98
+ this._frameHandlerId = 0;
96
99
  this._element = elemRef.nativeElement;
97
100
  this._monitorTarget = this._element;
98
101
  }
@@ -166,15 +169,22 @@ class SizingDirective {
166
169
  _setUpNodeMonitor() {
167
170
  this._tearDownNodeMonitor();
168
171
  if (this._monitorTarget) {
169
- this._observer = new ResizeObserver(() => this._calculateSize());
172
+ this._observer = new ResizeObserver(() => this._runWithObserver(this._calculateSize.bind(this)));
170
173
  this._observer.observe(this._monitorTarget, { box: 'border-box' });
171
174
  }
172
175
  }
173
176
  _tearDownNodeMonitor() {
174
- if (this._observer) {
177
+ cancelAnimationFrame(this._frameHandlerId);
178
+ this._runWithObserver(() => {
175
179
  this._observer.disconnect();
176
180
  this._observer = undefined;
181
+ });
182
+ }
183
+ _runWithObserver(func) {
184
+ if (this._observer) {
185
+ return func();
177
186
  }
187
+ return undefined;
178
188
  }
179
189
  _calculateSize() {
180
190
  const widthChanged = this._width !== this._monitorTarget.clientWidth;
@@ -233,7 +243,8 @@ class SizingDirective {
233
243
  _reflowHeight() {
234
244
  const cnt = this._reflowFrameCount;
235
245
  if (cnt < 15) {
236
- requestAnimationFrame(this._reflowHeight.bind(this));
246
+ cancelAnimationFrame(this._frameHandlerId);
247
+ this._frameHandlerId = requestAnimationFrame(this._reflowHeight.bind(this));
237
248
  if (cnt === 0) {
238
249
  this._element.style.height = '0';
239
250
  }
@@ -303,9 +314,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
303
314
  * - the button will be disabled by setting the property `disabled` of the `MatButton` instance.
304
315
  */
305
316
  class AwaitDirective {
306
- constructor(_eRef, button, doc, factoryResolver, _viewCont) {
317
+ constructor(_eRef, _button, doc, _viewCont) {
307
318
  this._eRef = _eRef;
308
- this.button = button;
319
+ this._button = _button;
309
320
  this.doc = doc;
310
321
  this._viewCont = _viewCont;
311
322
  /** The ARIA label to be put on the spinner. The default value is `"In progress"`. */
@@ -313,11 +324,11 @@ class AwaitDirective {
313
324
  /** The diameter of the in-progress spinner. The default value is `20`. */
314
325
  this.buiAwaitDiameter = 20;
315
326
  this._processing = false;
316
- if (!button) {
317
- console.error('[buiAwait] can only be used on a MatButton');
327
+ this.button = _button;
328
+ if (!this.button) {
329
+ console.error('[buiAwait] can only be used on a Material button.');
318
330
  return;
319
331
  }
320
- this._factory = factoryResolver.resolveComponentFactory(MatProgressSpinner);
321
332
  }
322
333
  /** @ignore */
323
334
  ngAfterViewInit() {
@@ -327,25 +338,32 @@ class AwaitDirective {
327
338
  this._overlayEl.classList.add('bui-await-overlay');
328
339
  this._overlayEl.style.cssText =
329
340
  'display:flex; position:absolute; top:0; right:0; bottom:0; left:0; align-items: center; justify-content: center';
330
- this._captionWrapper = this._eRef.nativeElement.querySelector('.mat-button-wrapper');
341
+ this._captionWrapper = this._eRef.nativeElement.querySelector('.mat-button-wrapper,.mat-icon');
331
342
  }
332
343
  }
333
344
  /** @ignore */
334
345
  ngDoCheck() {
335
- const inProgress = this.buiAwait === true || (typeof this.buiAwait === 'object' && !this.buiAwait.closed);
346
+ const inProgress = this.buiAwait === true || (typeof this.buiAwait === 'object' && !this.buiAwait.closed) || this._isDeterminate;
336
347
  if (inProgress !== this._processing) {
337
348
  this._processing = inProgress;
338
- this._statusChanged();
349
+ this._statusChanged(this._isDeterminate ? 'determinate' : 'indeterminate');
339
350
  }
351
+ if (this._isDeterminate && this._spinnerRef) {
352
+ this._spinnerRef.setInput('value', this.buiAwait);
353
+ }
354
+ }
355
+ /** @ignore */
356
+ get _isDeterminate() {
357
+ return typeof this.buiAwait === 'number' && this.buiAwait >= 0 && this.buiAwait < 100;
340
358
  }
341
- _statusChanged() {
359
+ _statusChanged(mode) {
342
360
  if (this.button) {
343
361
  this.button.disabled = this._processing;
344
362
  if (this._processing) {
345
- this._spinnerRef = this._viewCont.createComponent(this._factory);
363
+ this._spinnerRef = this._viewCont.createComponent(MatProgressSpinner);
346
364
  const c = this._spinnerRef.instance;
347
365
  c.diameter = this.buiAwaitDiameter;
348
- c.mode = 'indeterminate';
366
+ c.mode = mode;
349
367
  c.color = this.button.color;
350
368
  const e = this._spinnerRef.location.nativeElement;
351
369
  e.setAttribute('aria-label', this.buiAwaitAriaLabel);
@@ -355,12 +373,13 @@ class AwaitDirective {
355
373
  else {
356
374
  this._captionWrapper.style.visibility = '';
357
375
  this._spinnerRef.destroy();
376
+ this._spinnerRef = undefined;
358
377
  this._overlayEl.innerHTML = '';
359
378
  }
360
379
  }
361
380
  }
362
381
  }
363
- AwaitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: AwaitDirective, deps: [{ token: i0.ElementRef }, { token: i1.MatButton, optional: true }, { token: DOCUMENT }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
382
+ AwaitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: AwaitDirective, deps: [{ token: i0.ElementRef }, { token: i1.MatButton, optional: true }, { token: DOCUMENT }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
364
383
  AwaitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: AwaitDirective, selector: "[buiAwait]", inputs: { buiAwait: "buiAwait", buiAwaitAriaLabel: "buiAwaitAriaLabel", buiAwaitDiameter: "buiAwaitDiameter" }, ngImport: i0 });
365
384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: AwaitDirective, decorators: [{
366
385
  type: Directive,
@@ -373,7 +392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
373
392
  }] }, { type: Document, decorators: [{
374
393
  type: Inject,
375
394
  args: [DOCUMENT]
376
- }] }, { type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }];
395
+ }] }, { type: i0.ViewContainerRef }];
377
396
  }, propDecorators: { buiAwait: [{
378
397
  type: Input
379
398
  }], buiAwaitAriaLabel: [{
@@ -382,20 +401,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
382
401
  type: Input
383
402
  }] } });
384
403
 
404
+ /**
405
+ * Use `[bui-class.not-empty]` to specify a style class activated only when the host element has DOM children;
406
+ *
407
+ * use `[bui-class.empty]` for a style class activated when it has no DOM children.
408
+ *
409
+ * Use `[bui-class.no-text]` to specify a style class activated only when the host element has text content;
410
+ *
411
+ * use `[bui-class.has-text]` for a style class activated when it has no text content.
412
+ */
413
+ class ObserveContentClassDirective {
414
+ constructor(observer, elementRef) {
415
+ this.classToRemove = [];
416
+ this.element = elementRef.nativeElement;
417
+ this.subscription = observer.observe(elementRef).subscribe(() => this.checkClass());
418
+ }
419
+ ngOnInit() {
420
+ this.checkClass.bind(this);
421
+ }
422
+ ngOnDestroy() {
423
+ this.subscription.unsubscribe();
424
+ }
425
+ checkClass() {
426
+ this.element.classList.remove(...this.classToRemove);
427
+ this.classToRemove = [];
428
+ this.checkClassWith(this.classEmpty, this.classNotEmpty, () => { var _a; return this.element.childElementCount === 0 && !((_a = this.element.textContent) === null || _a === void 0 ? void 0 : _a.trim()); });
429
+ this.checkClassWith(this.classNoText, this.classHasText, () => { var _a; return !((_a = this.element.textContent) === null || _a === void 0 ? void 0 : _a.trim()); });
430
+ }
431
+ checkClassWith(withoutClass, withClass, isWithout) {
432
+ const without = isWithout();
433
+ this.addClass(without ? withoutClass : withClass);
434
+ }
435
+ addClass(cls) {
436
+ if (cls === null || cls === void 0 ? void 0 : cls.trim()) {
437
+ const classes = cls.trim().split(/\s+/);
438
+ this.element.classList.add(...classes);
439
+ this.classToRemove.push(...classes);
440
+ }
441
+ }
442
+ }
443
+ ObserveContentClassDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ObserveContentClassDirective, deps: [{ token: i1$1.ContentObserver }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
444
+ ObserveContentClassDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: ObserveContentClassDirective, selector: "[bui-class.empty],[bui-class.not-empty],[bui-class.no-text],[bui-class.has-text]", inputs: { classEmpty: ["bui-class.empty", "classEmpty"], classNotEmpty: ["bui-class.not-empty", "classNotEmpty"], classNoText: ["bui-class.no-text", "classNoText"], classHasText: ["bui-class.has-text", "classHasText"] }, ngImport: i0 });
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ObserveContentClassDirective, decorators: [{
446
+ type: Directive,
447
+ args: [{
448
+ selector: '[bui-class.empty],[bui-class.not-empty],[bui-class.no-text],[bui-class.has-text]'
449
+ }]
450
+ }], ctorParameters: function () { return [{ type: i1$1.ContentObserver }, { type: i0.ElementRef }]; }, propDecorators: { classEmpty: [{
451
+ type: Input,
452
+ args: ['bui-class.empty']
453
+ }], classNotEmpty: [{
454
+ type: Input,
455
+ args: ['bui-class.not-empty']
456
+ }], classNoText: [{
457
+ type: Input,
458
+ args: ['bui-class.no-text']
459
+ }], classHasText: [{
460
+ type: Input,
461
+ args: ['bui-class.has-text']
462
+ }] } });
463
+
385
464
  /**
386
465
  * For functionality that cannot be easily achieved via CSS.
387
466
  */
388
467
  class BehaviorModule {
389
468
  }
390
469
  BehaviorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: BehaviorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
391
- BehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: BehaviorModule, declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective], imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule], exports: [SizingDirective, SizingMonitorDirective, AwaitDirective, MatProgressSpinnerModule] });
392
- BehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: BehaviorModule, imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, MatProgressSpinnerModule] });
470
+ BehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: BehaviorModule, declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective, ObserveContentClassDirective], imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, ObserversModule], exports: [SizingDirective,
471
+ SizingMonitorDirective,
472
+ AwaitDirective,
473
+ MatProgressSpinnerModule,
474
+ ObserveContentClassDirective] });
475
+ BehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: BehaviorModule, imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, ObserversModule, MatProgressSpinnerModule] });
393
476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: BehaviorModule, decorators: [{
394
477
  type: NgModule,
395
478
  args: [{
396
- declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective],
397
- imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],
398
- exports: [SizingDirective, SizingMonitorDirective, AwaitDirective, MatProgressSpinnerModule]
479
+ declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective, ObserveContentClassDirective],
480
+ imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, ObserversModule],
481
+ exports: [
482
+ SizingDirective,
483
+ SizingMonitorDirective,
484
+ AwaitDirective,
485
+ MatProgressSpinnerModule,
486
+ ObserveContentClassDirective
487
+ ]
399
488
  }]
400
489
  }] });
401
490
 
@@ -403,5 +492,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
403
492
  * Generated bundle index. Do not edit.
404
493
  */
405
494
 
406
- export { AwaitDirective, BehaviorModule, SizingDirective, SizingMonitorDirective };
495
+ export { AwaitDirective, BehaviorModule, ObserveContentClassDirective, SizingDirective, SizingMonitorDirective };
407
496
  //# sourceMappingURL=bravura-ui-behavior.mjs.map