@bravura/ui 1.15.2 → 1.17.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 (36) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/alert/alert-container.component.d.ts +69 -0
  3. package/alert/alert-message.component.d.ts +46 -0
  4. package/alert/alert.module.d.ts +14 -0
  5. package/alert/bravura-ui-alert.d.ts +5 -0
  6. package/alert/package.json +10 -0
  7. package/alert/public-api.d.ts +1 -0
  8. package/bundles/bravura-ui-alert.umd.js +736 -0
  9. package/bundles/bravura-ui-alert.umd.js.map +1 -0
  10. package/bundles/bravura-ui-common.umd.js +30 -0
  11. package/bundles/bravura-ui-common.umd.js.map +1 -0
  12. package/bundles/bravura-ui-radio-panel.umd.js +1 -1
  13. package/bundles/bravura-ui-stepper.umd.js +6 -7
  14. package/bundles/bravura-ui-stepper.umd.js.map +1 -1
  15. package/common/bravura-ui-common.d.ts +5 -0
  16. package/common/common-utils.d.ts +2 -0
  17. package/common/package.json +10 -0
  18. package/common/public-api.d.ts +1 -0
  19. package/esm2015/alert/alert-container.component.js +220 -0
  20. package/esm2015/alert/alert-message.component.js +98 -0
  21. package/esm2015/alert/alert.module.js +22 -0
  22. package/esm2015/alert/bravura-ui-alert.js +5 -0
  23. package/esm2015/alert/public-api.js +2 -0
  24. package/esm2015/common/bravura-ui-common.js +5 -0
  25. package/esm2015/common/common-utils.js +13 -0
  26. package/esm2015/common/public-api.js +2 -0
  27. package/esm2015/radio-panel/radio-panel-item.component.js +1 -1
  28. package/esm2015/stepper/stepper.component.js +7 -8
  29. package/fesm2015/bravura-ui-alert.js +337 -0
  30. package/fesm2015/bravura-ui-alert.js.map +1 -0
  31. package/fesm2015/bravura-ui-common.js +19 -0
  32. package/fesm2015/bravura-ui-common.js.map +1 -0
  33. package/fesm2015/bravura-ui-radio-panel.js +1 -1
  34. package/fesm2015/bravura-ui-stepper.js +6 -7
  35. package/fesm2015/bravura-ui-stepper.js.map +1 -1
  36. package/package.json +1 -1
@@ -90,13 +90,9 @@ export class StepperComponent extends CdkStepper {
90
90
  /** @ignore */
91
91
  _widthChanged(w) {
92
92
  const narrow = w < BREAKPOINT;
93
- if (this._narrow === narrow) {
94
- return;
95
- }
96
- this._narrow = narrow;
97
93
  const cls = 'bui-stepper-narrow';
98
94
  const classList = this._buiElRef.nativeElement.classList;
99
- if (this._narrow) {
95
+ if (narrow) {
100
96
  this._leftDrawerState = 'void';
101
97
  classList.add(cls);
102
98
  }
@@ -104,7 +100,10 @@ export class StepperComponent extends CdkStepper {
104
100
  this._topDrawerState = 'void';
105
101
  classList.remove(cls);
106
102
  }
107
- this._stateChanged();
103
+ if (this._narrow !== narrow) {
104
+ this._narrow = narrow;
105
+ this._stateChanged();
106
+ }
108
107
  }
109
108
  }
110
109
  StepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: StepperComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: STEPPER_GLOBAL_OPTIONS, self: true }, { token: STEPPER_GLOBAL_OPTIONS, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
@@ -114,7 +113,7 @@ StepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
114
113
  { provide: MatHorizontalStepper, useExisting: StepperComponent },
115
114
  { provide: MatVerticalStepper, useExisting: StepperComponent },
116
115
  { provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }
117
- ], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper{display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-content-header-label{font-size:larger;font-weight:bold;margin-bottom:32px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-number{color:var(--bui-bg-card)}.bui-stepper-top-header-container{display:flex;align-items:stretch}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-progress-spinner-light circle{stroke:var(--bui-color-divider)!important}.bui-stepper-top-header-progress{position:relative;display:flex;justify-content:center;align-items:center;margin-right:16px}.bui-stepper-top-header-progress>.mat-progress-spinner{position:absolute}.bui-stepper-top-header-progress .bui-stepper-top-header-indicator{color:var(--bui-color-muted)}.bui-stepper-top-header-titles-wrapper{display:flex;flex-basis:max-content;flex-direction:column;justify-content:space-evenly}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted)}.bui-stepper-content-container{flex:1 1 100%;padding:16px;display:flex;flex-direction:column}.cdk-high-contrast-active .bui-stepper-content-container{outline:solid 1px}.bui-stepper-content-wrapper{flex:1 1 100%;overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"], components: [{ type: i2.MatStepHeader, selector: "mat-step-header", inputs: ["color", "state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple"] }, { type: i3.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
116
+ ], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper{display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-content-header-label{font-size:larger;font-weight:bold;margin-bottom:32px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-number{color:var(--bui-bg-card)}.bui-stepper-top-header-container{display:flex;align-items:stretch}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-progress-spinner-light circle{stroke:var(--bui-color-divider)!important}.bui-stepper-top-header-progress{position:relative;display:flex;justify-content:center;align-items:center;margin-right:16px}[dir=rtl] .bui-stepper-top-header-progress{margin-right:unset;margin-left:16px}.bui-stepper-top-header-progress>.mat-progress-spinner{position:absolute}.bui-stepper-top-header-progress .bui-stepper-top-header-indicator{color:var(--bui-color-muted)}.bui-stepper-top-header-titles-wrapper{display:flex;flex-basis:max-content;flex-direction:column;justify-content:space-evenly}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted)}.bui-stepper-content-container{flex:1 1 100%;padding:16px;display:flex;flex-direction:column}.cdk-high-contrast-active .bui-stepper-content-container{outline:solid 1px}.bui-stepper-content-wrapper{flex:1 1 100%;overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"], components: [{ type: i2.MatStepHeader, selector: "mat-step-header", inputs: ["color", "state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple"] }, { type: i3.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
118
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: StepperComponent, decorators: [{
119
118
  type: Component,
120
119
  args: [{
@@ -179,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
179
178
  type: ViewChild,
180
179
  args: ['editIconTemplate', { static: true }]
181
180
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQTRDLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTixvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxFQUVkLGtCQUFrQixFQUNsQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQUU1QyxjQUFjO0FBQ2QsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBRXZCOzs7Ozs7O0dBT0c7QUF1QkgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUE2RC9DLFlBQ2EsR0FBbUIsRUFDL0IsaUJBQW9DLEVBQzVCLFNBQWtDLEVBQ3hCLFNBQWMsRUFDUSxjQUE4QixFQUNkLHFCQUFzQztRQUU5RixL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QUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7OzBCQStERSxRQUFROzswQkFHUixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDckMsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxzQkFBc0I7NENBakVqQixXQUFXO3NCQUFoRCxZQUFZO3VCQUFDLGFBQWE7Z0JBRytCLE1BQU07c0JBQS9ELGVBQWU7dUJBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFNUyxNQUFNO3NCQUE3RCxlQUFlO3VCQUFDLGNBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBR25DLGFBQWE7c0JBQS9CLE1BQU07Z0JBR0UsYUFBYTtzQkFBckIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkE2QkUsaUJBQWlCO3NCQUR4QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IENka1N0ZXBwZXIsIFN0ZXBDb250ZW50UG9zaXRpb25TdGF0ZSwgU3RlcHBlck9wdGlvbnMsIFNURVBQRVJfR0xPQkFMX09QVElPTlMgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkcmVuLFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdE9wdGlvbmFsLFxuXHRPdXRwdXQsXG5cdFF1ZXJ5TGlzdCxcblx0U2VsZixcblx0U2tpcFNlbGYsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDaGlsZHJlbixcblx0Vmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG5cdE1hdEhvcml6b250YWxTdGVwcGVyLFxuXHRNYXRTdGVwLFxuXHRNYXRTdGVwSGVhZGVyLFxuXHRNYXRTdGVwcGVyLFxuXHRNYXRTdGVwcGVySWNvbixcblx0TWF0U3RlcHBlckljb25Db250ZXh0LFxuXHRNYXRWZXJ0aWNhbFN0ZXBwZXJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgYW5pbWF0aW9uIGZyb20gJy4vc3RlcHBlci1hbmltYXRpb24nO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgQlJFQUtQT0lOVCA9IDc2ODtcblxuLyoqXG4gKiBbQW5ndWxhciBNYXRlcmlhbCdzIHN0ZXBwZXJdKGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9jb21wb25lbnRzL3N0ZXBwZXIvb3ZlcnZpZXcpIHByb3ZpZGVzIGEgd2l6YXJkLWxpa2Ugd29ya2Zsb3cgYnkgZGl2aWRpbmdcbiAqIGNvbnRlbnQgaW50byBsb2dpY2FsIHN0ZXBzLlxuICpcbiAqIFRoaXMgc3RlcHBlciBleHRlbmRzIEFuZ3VsYXIncyB0byBjdXN0b21pc2UgdGhlIHByZXNlbnRhdGlvbiBvZiBpdHMgaGVhZGVycyB0byBhY2hpZXZlIGEgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZSBpbiBib3RoIG1vYmlsZSBhbmRcbiAqIGRlc2t0b3AgYnJvd3NlcnMuXG4gKlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdidWktc3RlcHBlciwgW2J1aVN0ZXBwZXJdJyxcblx0ZXhwb3J0QXM6ICdidWlTdGVwcGVyLCBtYXRTdGVwcGVyLCBtYXRWZXJ0aWNhbFN0ZXBwZXIsIG1hdEhvcml6b250YWxTdGVwcGVyJyxcblx0dGVtcGxhdGVVcmw6ICcuL3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGlucHV0czogWydzZWxlY3RlZEluZGV4J10sXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2J1aS1zdGVwcGVyIGJ1aS1ob3N0Jyxcblx0XHQnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nLFxuXHRcdHJvbGU6ICd0YWJsaXN0J1xuXHR9LFxuXHRhbmltYXRpb25zOiBbYW5pbWF0aW9uLnN0ZXBUcmFuc2l0aW9uLCBhbmltYXRpb24ubGVmdERyYXdlciwgYW5pbWF0aW9uLnRvcERyYXdlcl0sXG5cdHByb3ZpZGVyczogW1xuXHRcdHsgcHJvdmlkZTogTWF0U3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50IH0sXG5cdFx0eyBwcm92aWRlOiBNYXRIb3Jpem9udGFsU3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IE1hdFZlcnRpY2FsU3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IFNURVBQRVJfR0xPQkFMX09QVElPTlMsIHVzZVZhbHVlOiB7IGRpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZTogZmFsc2UgfSB9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwcGVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cdC8qKiBAaWdub3JlIFRoZSBsaXN0IG9mIHN0ZXAgaGVhZGVycyBvZiB0aGUgc3RlcHMgaW4gdGhlIHN0ZXBwZXIuICovXG5cdEBWaWV3Q2hpbGRyZW4oTWF0U3RlcEhlYWRlcikgb3ZlcnJpZGUgX3N0ZXBIZWFkZXIhOiBRdWVyeUxpc3Q8TWF0U3RlcEhlYWRlcj47XG5cblx0LyoqIEBpZ25vcmUgRnVsbCBsaXN0IG9mIHN0ZXBzIGluc2lkZSB0aGUgc3RlcHBlciwgaW5jbHVkaW5nIGluc2lkZSBuZXN0ZWQgc3RlcHBlcnMuICovXG5cdEBDb250ZW50Q2hpbGRyZW4oTWF0U3RlcCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBvdmVycmlkZSBfc3RlcHMhOiBRdWVyeUxpc3Q8TWF0U3RlcD47XG5cblx0LyoqIEBpZ25vcmUgU3RlcHMgdGhhdCBiZWxvbmcgdG8gdGhlIGN1cnJlbnQgc3RlcHBlciwgZXhjbHVkaW5nIG9uZXMgZnJvbSBuZXN0ZWQgc3RlcHBlcnMuICovXG5cdG92ZXJyaWRlIHJlYWRvbmx5IHN0ZXBzOiBRdWVyeUxpc3Q8TWF0U3RlcD4gPSBuZXcgUXVlcnlMaXN0PE1hdFN0ZXA+KCk7XG5cblx0LyoqIEBpZ25vcmUgQ3VzdG9tIGljb24gb3ZlcnJpZGVzIHBhc3NlZCBpbiBieSB0aGUgY29uc3VtZXIuICovXG5cdEBDb250ZW50Q2hpbGRyZW4oTWF0U3RlcHBlckljb24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgX2ljb25zITogUXVlcnlMaXN0PE1hdFN0ZXBwZXJJY29uPjtcblxuXHQvKiogQGlnbm9yZSBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGN1cnJlbnQgc3RlcCBpcyBkb25lIHRyYW5zaXRpb25pbmcgaW4uICovXG5cdEBPdXRwdXQoKSByZWFkb25seSBhbmltYXRpb25Eb25lOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0LyoqIFdoZXRoZXIgcmlwcGxlcyBzaG91bGQgYmUgZGlzYWJsZWQgZm9yIHRoZSBzdGVwIGhlYWRlcnMuICovXG5cdEBJbnB1dCgpIGRpc2FibGVSaXBwbGU/OiBib29sZWFuO1xuXG5cdC8qKiBUaGVtZSBjb2xvciBmb3IgYWxsIG9mIHRoZSBzdGVwcyBpbiBzdGVwcGVyLiAqL1xuXHRASW5wdXQoKSBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG5cdC8qKlxuXHQgKiBBIGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyB0aGUgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgY3ljbGUgZm9yIHRoZSAnbmFycm93JyB2aWV3LlxuXHQgKlxuXHQgKiBEZWZhdWx0IHZhbHVlOiBgJ3tzZWxlY3RlZCBzdGVwfSBvZiB7dG90YWwgbnVtYmVyIG9mIHN0ZXBzfSdgXG5cdCAqL1xuXHRASW5wdXQoKSBpbmRpY2F0b3JGb3JtYXR0ZXI6IChpbmRleDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSA9PiBzdHJpbmc7XG5cblx0LyoqIFRoZSB0ZXh0IHRoYXQgcHJlY2VkZXMgdGhlIG5hbWUgb2YgdGhlIG5leHQgc3RlcCBsYWJlbCwgdXNlZCBpbiB0aGUgJ25hcnJvdycgdmlldy4gICAqL1xuXHRASW5wdXQoKSBuZXh0U3RlcExhYmVsUHJlZml4ID0gJ05leHQ6ICc7XG5cblx0LyoqIEBpZ25vcmUgQ29uc3VtZXItc3BlY2lmaWVkIHRlbXBsYXRlLXJlZnMgdG8gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgaGVhZGVyIGljb25zLiAqL1xuXHRfaWNvbk92ZXJyaWRlczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8TWF0U3RlcHBlckljb25Db250ZXh0Pj4gPSB7fTtcblxuXHQvKiogQGlnbm9yZSBTdHJlYW0gb2YgYW5pbWF0aW9uIGBkb25lYCBldmVudHMgd2hlbiB0aGUgYm9keSBleHBhbmRzL2NvbGxhcHNlcy4gKi9cblx0cmVhZG9ubHkgX2FuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblxuXHQvKiogQGlnbm9yZSBXaGV0aGVyIHRoZSBzdGVwcGVyIGlzIGluIGEgbmFycm93IGNvbnRhaW5lciAqL1xuXHRfbmFycm93ID0gZmFsc2U7XG5cblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGRyYXdlciBoYXMgc3RhcnRlZCBhbmltYXRpbmcuICovXG5cdHJlYWRvbmx5IF9sZWZ0RHJhd2VyU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGlzIGRvbmUgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfbGVmdERyYXdlckVuZGVkID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cdC8qKiBAaWdub3JlIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHNpZGVuYXYgYW5pbWF0aW9uLiAqL1xuXHRfbGVmdERyYXdlclN0YXRlOiAnb3Blbi1pbnN0YW50JyB8ICdvcGVuJyB8ICd2b2lkJyA9ICdvcGVuLWluc3RhbnQnO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaGFzIHN0YXJ0ZWQgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfdG9wRHJhd2VyU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGlzIGRvbmUgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfdG9wRHJhd2VyRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgQ3VycmVudCBzdGF0ZSBvZiB0aGUgc2lkZW5hdiBhbmltYXRpb24uICovXG5cdF90b3BEcmF3ZXJTdGF0ZTogJ29wZW4taW5zdGFudCcgfCAnb3BlbicgfCAndm9pZCcgPSAndm9pZCc7XG5cblx0LyoqIEBpZ25vcmUgKi8gcmVhZG9ubHkgX3Byb2dyZXNzQ2lyY2xlU2l6ZSA9IDgwO1xuXHQvKiogQGlnbm9yZSAqLyByZWFkb25seSBfcHJvZ3Jlc3NDaXJjbGVXaWR0aCA9IDU7XG5cblx0QFZpZXdDaGlsZCgnZWRpdEljb25UZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHByaXZhdGUgX2VkaXRJY29uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksXG5cdFx0Y2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHByaXZhdGUgX2J1aUVsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBfZG9jdW1lbnQ6IGFueSxcblx0XHRAU2VsZigpIEBJbmplY3QoU1RFUFBFUl9HTE9CQUxfT1BUSU9OUykgc3RlcHBlck9wdGlvbnM6IFN0ZXBwZXJPcHRpb25zLFxuXHRcdEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBJbmplY3QoU1RFUFBFUl9HTE9CQUxfT1BUSU9OUykgZGVmYXVsdFN0ZXBwZXJPcHRpb25zPzogU3RlcHBlck9wdGlvbnNcblx0KSB7XG5cdFx0c3VwZXIoZGlyLCBjaGFuZ2VEZXRlY3RvclJlZiwgX2J1aUVsUmVmLCBfZG9jdW1lbnQpO1xuXHRcdHRoaXMub3JpZW50YXRpb24gPSAndmVydGljYWwnO1xuXHRcdHRoaXMuaW5kaWNhdG9yRm9ybWF0dGVyID0gKGluZGV4LCB0b3RhbCkgPT4gYCR7aW5kZXh9IG9mICR7dG90YWx9YDtcblx0XHRPYmplY3Qua2V5cyhkZWZhdWx0U3RlcHBlck9wdGlvbnMgfHwge30pXG5cdFx0XHQuZmlsdGVyKGsgPT4gayAhPT0gJ2Rpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZScpXG5cdFx0XHQuZm9yRWFjaCgoKGs6IGtleW9mIFN0ZXBwZXJPcHRpb25zKSA9PiAoc3RlcHBlck9wdGlvbnNba10gPSBkZWZhdWx0U3RlcHBlck9wdGlvbnMhW2tdKSkgYXMgYW55KTtcblx0fVxuXG5cdG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHRzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblx0XHR0aGlzLl9pY29ucy5mb3JFYWNoKCh7IG5hbWUsIHRlbXBsYXRlUmVmIH0pID0+ICh0aGlzLl9pY29uT3ZlcnJpZGVzW25hbWVdID0gdGVtcGxhdGVSZWYpKTtcblxuXHRcdC8vIE1hcmsgdGhlIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiB3aGVuZXZlciB0aGUgY29udGVudCBjaGlsZHJlbiBxdWVyeSBjaGFuZ2VzXG5cdFx0dGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX2FuaW1hdGlvbkRvbmVcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdFx0XHRpZiAoKGV2ZW50LnRvU3RhdGUgYXMgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlKSA9PT0gJ2N1cnJlbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9sZWZ0RHJhd2VyRW5kZWRcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0ZmlsdGVyKGV2ID0+IGV2LnRvU3RhdGUgPT09ICd2b2lkJyAmJiBldi50b1N0YXRlICE9PSBldi5mcm9tU3RhdGUpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3RvcERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl90b3BEcmF3ZXJFbmRlZFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4LmZyb21TdGF0ZSA9PT0geS5mcm9tU3RhdGUgJiYgeC50b1N0YXRlID09PSB5LnRvU3RhdGUpLFxuXHRcdFx0XHRmaWx0ZXIoZXYgPT4gZXYudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIGV2LnRvU3RhdGUgIT09IGV2LmZyb21TdGF0ZSksXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0ID0gdGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0IHx8IHRoaXMuX2VkaXRJY29uVGVtcGxhdGU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfc3RlcElzTmF2aWdhYmxlKGluZGV4OiBudW1iZXIsIHN0ZXA6IE1hdFN0ZXApOiBib29sZWFuIHtcblx0XHRyZXR1cm4gc3RlcC5jb21wbGV0ZWQgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSBpbmRleCB8fCAhdGhpcy5saW5lYXI7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfd2lkdGhDaGFuZ2VkKHc6IG51bWJlcikge1xuXHRcdGNvbnN0IG5hcnJvdyA9IHcgPCBCUkVBS1BPSU5UO1xuXHRcdGlmICh0aGlzLl9uYXJyb3cgPT09IG5hcnJvdykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9uYXJyb3cgPSBuYXJyb3c7XG5cdFx0Y29uc3QgY2xzID0gJ2J1aS1zdGVwcGVyLW5hcnJvdyc7XG5cdFx0Y29uc3QgY2xhc3NMaXN0ID0gdGhpcy5fYnVpRWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7XG5cdFx0aWYgKHRoaXMuX25hcnJvdykge1xuXHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ3ZvaWQnO1xuXHRcdFx0Y2xhc3NMaXN0LmFkZChjbHMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl90b3BEcmF3ZXJTdGF0ZSA9ICd2b2lkJztcblx0XHRcdGNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcblx0XHR9XG5cdFx0dGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJidWktc3RlcHBlci13cmFwcGVyXCIgI3NpemVNb25pdG9yPlxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJidWktc3RlcHBlci1sZWZ0LWhlYWRlci1jb250YWluZXJcIlxuXHRcdFtAbGVmdERyYXdlcl09XCJfbGVmdERyYXdlclN0YXRlXCJcblx0XHQoQGxlZnREcmF3ZXIuc3RhcnQpPVwiX2xlZnREcmF3ZXJTdGFydGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0KEBsZWZ0RHJhd2VyLmRvbmUpPVwiX2xlZnREcmF3ZXJFbmRlZC5uZXh0KCRldmVudClcIlxuXHQ+XG5cdFx0PGRpdlxuXHRcdFx0Km5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCJcblx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItaGVhZGVyLXdyYXBwZXJcIlxuXHRcdFx0W2NsYXNzLmJ1aS1zdGVwcGVyLXZlcnRpY2FsLWxpbmVdPVwiIWlzTGFzdFwiXG5cdFx0PlxuXHRcdFx0PG1hdC1zdGVwLWhlYWRlclxuXHRcdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLWhlYWRlclwiXG5cdFx0XHRcdChjbGljayk9XCJzdGVwLnNlbGVjdCgpXCJcblx0XHRcdFx0KGtleWRvd24pPVwiX29uS2V5ZG93bigkZXZlbnQpXCJcblx0XHRcdFx0W3RhYkluZGV4XT1cIl9nZXRGb2N1c0luZGV4KCkgPT09IGkgPyAwIDogLTFcIlxuXHRcdFx0XHRbaWRdPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1wb3NpbnNldF09XCJpICsgMVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtc2V0c2l6ZV09XCJzdGVwcy5sZW5ndGhcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIl9nZXRTdGVwQ29udGVudElkKGkpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09IGlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cInN0ZXAuYXJpYUxhYmVsIHx8IG51bGxcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXN0ZXAuYXJpYUxhYmVsICYmIHN0ZXAuYXJpYUxhYmVsbGVkYnkgPyBzdGVwLmFyaWFMYWJlbGxlZGJ5IDogbnVsbFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKSA/IG51bGwgOiB0cnVlXCJcblx0XHRcdFx0W2luZGV4XT1cImlcIlxuXHRcdFx0XHRbc3RhdGVdPVwiX2dldEluZGljYXRvclR5cGUoaSwgc3RlcC5zdGF0ZSlcIlxuXHRcdFx0XHRbbGFiZWxdPVwic3RlcC5zdGVwTGFiZWwgfHwgc3RlcC5sYWJlbFwiXG5cdFx0XHRcdFtzZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcblx0XHRcdFx0W2FjdGl2ZV09XCJfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApXCJcblx0XHRcdFx0W29wdGlvbmFsXT1cInN0ZXAub3B0aW9uYWxcIlxuXHRcdFx0XHRbZXJyb3JNZXNzYWdlXT1cInN0ZXAuZXJyb3JNZXNzYWdlXCJcblx0XHRcdFx0W2ljb25PdmVycmlkZXNdPVwiX2ljb25PdmVycmlkZXNcIlxuXHRcdFx0XHRbZGlzYWJsZVJpcHBsZV09XCJkaXNhYmxlUmlwcGxlIHx8ICFfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApXCJcblx0XHRcdFx0W2NvbG9yXT1cInN0ZXAuY29sb3IgfHwgY29sb3JcIlxuXHRcdFx0PjwvbWF0LXN0ZXAtaGVhZGVyPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC1jb250YWluZXJcIiBbYnVpU2l6aW5nQnldPVwic2l6ZU1vbml0b3JcIiAoYnVpUmVzaXplZCk9XCJfd2lkdGhDaGFuZ2VkKCRldmVudC53aWR0aClcIj5cblx0XHQ8ZGl2XG5cdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItY29udGFpbmVyXCJcblx0XHRcdFtjbGFzcy5idWktc3RlcHBlci1oZWFkZXItYWN0aXZlXT1cIl9sZWZ0RHJhd2VyU3RhdGUgPT09ICd2b2lkJ1wiXG5cdFx0XHRbQHRvcERyYXdlcl09XCJfdG9wRHJhd2VyU3RhdGVcIlxuXHRcdFx0KEB0b3BEcmF3ZXIuc3RhcnQpPVwiX3RvcERyYXdlclN0YXJ0ZWQubmV4dCgkZXZlbnQpXCJcblx0XHRcdChAdG9wRHJhd2VyLmRvbmUpPVwiX3RvcERyYXdlckVuZGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0PlxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItcHJvZ3Jlc3NcIlxuXHRcdFx0XHRbc3R5bGVdPVwiJ2hlaWdodDonICsgX3Byb2dyZXNzQ2lyY2xlU2l6ZSArICdweDsgd2lkdGg6JyArIF9wcm9ncmVzc0NpcmNsZVNpemUgKyAncHgnXCJcblx0XHRcdD5cblx0XHRcdFx0PG1hdC1wcm9ncmVzcy1zcGlubmVyXG5cdFx0XHRcdFx0Y2xhc3M9XCJidWktcHJvZ3Jlc3Mtc3Bpbm5lci1saWdodFwiXG5cdFx0XHRcdFx0W3ZhbHVlXT1cIjEwMFwiXG5cdFx0XHRcdFx0W2RpYW1ldGVyXT1cIl9wcm9ncmVzc0NpcmNsZVNpemVcIlxuXHRcdFx0XHRcdFtzdHJva2VXaWR0aF09XCJfcHJvZ3Jlc3NDaXJjbGVXaWR0aFwiXG5cdFx0XHRcdD48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuXHRcdFx0XHQ8bWF0LXByb2dyZXNzLXNwaW5uZXJcblx0XHRcdFx0XHRbY29sb3JdPVwiY29sb3JcIlxuXHRcdFx0XHRcdFt2YWx1ZV09XCIoKHNlbGVjdGVkSW5kZXggKyAxKSAqIDEwMCkgLyBzdGVwcy5sZW5ndGhcIlxuXHRcdFx0XHRcdFtkaWFtZXRlcl09XCJfcHJvZ3Jlc3NDaXJjbGVTaXplXCJcblx0XHRcdFx0XHRbc3Ryb2tlV2lkdGhdPVwiX3Byb2dyZXNzQ2lyY2xlV2lkdGhcIlxuXHRcdFx0XHQ+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLWluZGljYXRvclwiPlxuXHRcdFx0XHRcdHt7IGluZGljYXRvckZvcm1hdHRlcihzZWxlY3RlZEluZGV4ICsgMSwgc3RlcHMubGVuZ3RoKSB9fVxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXRpdGxlcy13cmFwcGVyXCIgKm5nSWY9XCJzZWxlY3RlZFwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci10aXRsZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHNlbGVjdGVkIH1cIlxuXHRcdFx0XHRcdD48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItdGl0bGUtbmV4dFwiICpuZ0lmPVwic2VsZWN0ZWRJbmRleCA8IHN0ZXBzLmxlbmd0aCAtIDFcIj5cblx0XHRcdFx0XHR7eyBuZXh0U3RlcExhYmVsUHJlZml4IH19XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCJcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RlcHMuZ2V0KHNlbGVjdGVkSW5kZXggKyAxKSB9XCJcblx0XHRcdFx0XHQ+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC13cmFwcGVyXCI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4XCJcblx0XHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci1jb250ZW50XCJcblx0XHRcdFx0cm9sZT1cInRhYnBhbmVsXCJcblx0XHRcdFx0W0BzdGVwVHJhbnNpdGlvbl09XCJfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGkpXCJcblx0XHRcdFx0KEBzdGVwVHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KVwiXG5cdFx0XHRcdFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC1oZWFkZXItbGFiZWxcIiAqbmdJZj1cIiFfbmFycm93XCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0ZXAgfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic3RlcC5jb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGUgbGV0LXN0ZXA+XG5cdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzdGVwLnN0ZXBMYWJlbFwiIFtuZ0lmRWxzZV09XCJzdHJpbmdMYWJlbFRlbXBsXCI+XG5cdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXAuc3RlcExhYmVsLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0PC9uZy10ZW1wbGF0ZT5cblx0PG5nLXRlbXBsYXRlICNzdHJpbmdMYWJlbFRlbXBsPnt7IHN0ZXAubGFiZWwgfX08L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0SWNvblRlbXBsYXRlIGxldC1pbmRleD1cImluZGV4XCI+XG5cdDxzcGFuPnt7IGluZGV4ICsgMSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQTRDLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTixvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxFQUVkLGtCQUFrQixFQUNsQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQUU1QyxjQUFjO0FBQ2QsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBRXZCOzs7Ozs7O0dBT0c7QUF1QkgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUE2RC9DLFlBQ2EsR0FBbUIsRUFDL0IsaUJBQW9DLEVBQzVCLFNBQWtDLEVBQ3hCLFNBQWMsRUFDUSxjQUE4QixFQUNkLHFCQUFzQztRQUU5RixL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QkFDL0M7OzBCQStERSxRQUFROzswQkFHUixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDckMsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxzQkFBc0I7NENBakVqQixXQUFXO3NCQUFoRCxZQUFZO3VCQUFDLGFBQWE7Z0JBRytCLE1BQU07c0JBQS9ELGVBQWU7dUJBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFNUyxNQUFNO3NCQUE3RCxlQUFlO3VCQUFDLGNBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBR25DLGFBQWE7c0JBQS9CLE1BQU07Z0JBR0UsYUFBYTtzQkFBckIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkE2QkUsaUJBQWlCO3NCQUR4QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IENka1N0ZXBwZXIsIFN0ZXBDb250ZW50UG9zaXRpb25TdGF0ZSwgU3RlcHBlck9wdGlvbnMsIFNURVBQRVJfR0xPQkFMX09QVElPTlMgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkcmVuLFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdE9wdGlvbmFsLFxuXHRPdXRwdXQsXG5cdFF1ZXJ5TGlzdCxcblx0U2VsZixcblx0U2tpcFNlbGYsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDaGlsZHJlbixcblx0Vmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG5cdE1hdEhvcml6b250YWxTdGVwcGVyLFxuXHRNYXRTdGVwLFxuXHRNYXRTdGVwSGVhZGVyLFxuXHRNYXRTdGVwcGVyLFxuXHRNYXRTdGVwcGVySWNvbixcblx0TWF0U3RlcHBlckljb25Db250ZXh0LFxuXHRNYXRWZXJ0aWNhbFN0ZXBwZXJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgYW5pbWF0aW9uIGZyb20gJy4vc3RlcHBlci1hbmltYXRpb24nO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgQlJFQUtQT0lOVCA9IDc2ODtcblxuLyoqXG4gKiBbQW5ndWxhciBNYXRlcmlhbCdzIHN0ZXBwZXJdKGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9jb21wb25lbnRzL3N0ZXBwZXIvb3ZlcnZpZXcpIHByb3ZpZGVzIGEgd2l6YXJkLWxpa2Ugd29ya2Zsb3cgYnkgZGl2aWRpbmdcbiAqIGNvbnRlbnQgaW50byBsb2dpY2FsIHN0ZXBzLlxuICpcbiAqIFRoaXMgc3RlcHBlciBleHRlbmRzIEFuZ3VsYXIncyB0byBjdXN0b21pc2UgdGhlIHByZXNlbnRhdGlvbiBvZiBpdHMgaGVhZGVycyB0byBhY2hpZXZlIGEgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZSBpbiBib3RoIG1vYmlsZSBhbmRcbiAqIGRlc2t0b3AgYnJvd3NlcnMuXG4gKlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdidWktc3RlcHBlciwgW2J1aVN0ZXBwZXJdJyxcblx0ZXhwb3J0QXM6ICdidWlTdGVwcGVyLCBtYXRTdGVwcGVyLCBtYXRWZXJ0aWNhbFN0ZXBwZXIsIG1hdEhvcml6b250YWxTdGVwcGVyJyxcblx0dGVtcGxhdGVVcmw6ICcuL3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGlucHV0czogWydzZWxlY3RlZEluZGV4J10sXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2J1aS1zdGVwcGVyIGJ1aS1ob3N0Jyxcblx0XHQnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nLFxuXHRcdHJvbGU6ICd0YWJsaXN0J1xuXHR9LFxuXHRhbmltYXRpb25zOiBbYW5pbWF0aW9uLnN0ZXBUcmFuc2l0aW9uLCBhbmltYXRpb24ubGVmdERyYXdlciwgYW5pbWF0aW9uLnRvcERyYXdlcl0sXG5cdHByb3ZpZGVyczogW1xuXHRcdHsgcHJvdmlkZTogTWF0U3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50IH0sXG5cdFx0eyBwcm92aWRlOiBNYXRIb3Jpem9udGFsU3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IE1hdFZlcnRpY2FsU3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IFNURVBQRVJfR0xPQkFMX09QVElPTlMsIHVzZVZhbHVlOiB7IGRpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZTogZmFsc2UgfSB9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwcGVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cdC8qKiBAaWdub3JlIFRoZSBsaXN0IG9mIHN0ZXAgaGVhZGVycyBvZiB0aGUgc3RlcHMgaW4gdGhlIHN0ZXBwZXIuICovXG5cdEBWaWV3Q2hpbGRyZW4oTWF0U3RlcEhlYWRlcikgb3ZlcnJpZGUgX3N0ZXBIZWFkZXIhOiBRdWVyeUxpc3Q8TWF0U3RlcEhlYWRlcj47XG5cblx0LyoqIEBpZ25vcmUgRnVsbCBsaXN0IG9mIHN0ZXBzIGluc2lkZSB0aGUgc3RlcHBlciwgaW5jbHVkaW5nIGluc2lkZSBuZXN0ZWQgc3RlcHBlcnMuICovXG5cdEBDb250ZW50Q2hpbGRyZW4oTWF0U3RlcCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBvdmVycmlkZSBfc3RlcHMhOiBRdWVyeUxpc3Q8TWF0U3RlcD47XG5cblx0LyoqIEBpZ25vcmUgU3RlcHMgdGhhdCBiZWxvbmcgdG8gdGhlIGN1cnJlbnQgc3RlcHBlciwgZXhjbHVkaW5nIG9uZXMgZnJvbSBuZXN0ZWQgc3RlcHBlcnMuICovXG5cdG92ZXJyaWRlIHJlYWRvbmx5IHN0ZXBzOiBRdWVyeUxpc3Q8TWF0U3RlcD4gPSBuZXcgUXVlcnlMaXN0PE1hdFN0ZXA+KCk7XG5cblx0LyoqIEBpZ25vcmUgQ3VzdG9tIGljb24gb3ZlcnJpZGVzIHBhc3NlZCBpbiBieSB0aGUgY29uc3VtZXIuICovXG5cdEBDb250ZW50Q2hpbGRyZW4oTWF0U3RlcHBlckljb24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgX2ljb25zITogUXVlcnlMaXN0PE1hdFN0ZXBwZXJJY29uPjtcblxuXHQvKiogQGlnbm9yZSBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGN1cnJlbnQgc3RlcCBpcyBkb25lIHRyYW5zaXRpb25pbmcgaW4uICovXG5cdEBPdXRwdXQoKSByZWFkb25seSBhbmltYXRpb25Eb25lOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0LyoqIFdoZXRoZXIgcmlwcGxlcyBzaG91bGQgYmUgZGlzYWJsZWQgZm9yIHRoZSBzdGVwIGhlYWRlcnMuICovXG5cdEBJbnB1dCgpIGRpc2FibGVSaXBwbGU/OiBib29sZWFuO1xuXG5cdC8qKiBUaGVtZSBjb2xvciBmb3IgYWxsIG9mIHRoZSBzdGVwcyBpbiBzdGVwcGVyLiAqL1xuXHRASW5wdXQoKSBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG5cdC8qKlxuXHQgKiBBIGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyB0aGUgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgY3ljbGUgZm9yIHRoZSAnbmFycm93JyB2aWV3LlxuXHQgKlxuXHQgKiBEZWZhdWx0IHZhbHVlOiBgJ3tzZWxlY3RlZCBzdGVwfSBvZiB7dG90YWwgbnVtYmVyIG9mIHN0ZXBzfSdgXG5cdCAqL1xuXHRASW5wdXQoKSBpbmRpY2F0b3JGb3JtYXR0ZXI6IChpbmRleDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSA9PiBzdHJpbmc7XG5cblx0LyoqIFRoZSB0ZXh0IHRoYXQgcHJlY2VkZXMgdGhlIG5hbWUgb2YgdGhlIG5leHQgc3RlcCBsYWJlbCwgdXNlZCBpbiB0aGUgJ25hcnJvdycgdmlldy4gICAqL1xuXHRASW5wdXQoKSBuZXh0U3RlcExhYmVsUHJlZml4ID0gJ05leHQ6ICc7XG5cblx0LyoqIEBpZ25vcmUgQ29uc3VtZXItc3BlY2lmaWVkIHRlbXBsYXRlLXJlZnMgdG8gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgaGVhZGVyIGljb25zLiAqL1xuXHRfaWNvbk92ZXJyaWRlczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8TWF0U3RlcHBlckljb25Db250ZXh0Pj4gPSB7fTtcblxuXHQvKiogQGlnbm9yZSBTdHJlYW0gb2YgYW5pbWF0aW9uIGBkb25lYCBldmVudHMgd2hlbiB0aGUgYm9keSBleHBhbmRzL2NvbGxhcHNlcy4gKi9cblx0cmVhZG9ubHkgX2FuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblxuXHQvKiogQGlnbm9yZSBXaGV0aGVyIHRoZSBzdGVwcGVyIGlzIGluIGEgbmFycm93IGNvbnRhaW5lciAqL1xuXHRfbmFycm93ID0gZmFsc2U7XG5cblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGRyYXdlciBoYXMgc3RhcnRlZCBhbmltYXRpbmcuICovXG5cdHJlYWRvbmx5IF9sZWZ0RHJhd2VyU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGlzIGRvbmUgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfbGVmdERyYXdlckVuZGVkID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cdC8qKiBAaWdub3JlIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHNpZGVuYXYgYW5pbWF0aW9uLiAqL1xuXHRfbGVmdERyYXdlclN0YXRlOiAnb3Blbi1pbnN0YW50JyB8ICdvcGVuJyB8ICd2b2lkJyA9ICdvcGVuLWluc3RhbnQnO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaGFzIHN0YXJ0ZWQgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfdG9wRHJhd2VyU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGlzIGRvbmUgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfdG9wRHJhd2VyRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgQ3VycmVudCBzdGF0ZSBvZiB0aGUgc2lkZW5hdiBhbmltYXRpb24uICovXG5cdF90b3BEcmF3ZXJTdGF0ZTogJ29wZW4taW5zdGFudCcgfCAnb3BlbicgfCAndm9pZCcgPSAndm9pZCc7XG5cblx0LyoqIEBpZ25vcmUgKi8gcmVhZG9ubHkgX3Byb2dyZXNzQ2lyY2xlU2l6ZSA9IDgwO1xuXHQvKiogQGlnbm9yZSAqLyByZWFkb25seSBfcHJvZ3Jlc3NDaXJjbGVXaWR0aCA9IDU7XG5cblx0QFZpZXdDaGlsZCgnZWRpdEljb25UZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHByaXZhdGUgX2VkaXRJY29uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksXG5cdFx0Y2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHByaXZhdGUgX2J1aUVsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBfZG9jdW1lbnQ6IGFueSxcblx0XHRAU2VsZigpIEBJbmplY3QoU1RFUFBFUl9HTE9CQUxfT1BUSU9OUykgc3RlcHBlck9wdGlvbnM6IFN0ZXBwZXJPcHRpb25zLFxuXHRcdEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBJbmplY3QoU1RFUFBFUl9HTE9CQUxfT1BUSU9OUykgZGVmYXVsdFN0ZXBwZXJPcHRpb25zPzogU3RlcHBlck9wdGlvbnNcblx0KSB7XG5cdFx0c3VwZXIoZGlyLCBjaGFuZ2VEZXRlY3RvclJlZiwgX2J1aUVsUmVmLCBfZG9jdW1lbnQpO1xuXHRcdHRoaXMub3JpZW50YXRpb24gPSAndmVydGljYWwnO1xuXHRcdHRoaXMuaW5kaWNhdG9yRm9ybWF0dGVyID0gKGluZGV4LCB0b3RhbCkgPT4gYCR7aW5kZXh9IG9mICR7dG90YWx9YDtcblx0XHRPYmplY3Qua2V5cyhkZWZhdWx0U3RlcHBlck9wdGlvbnMgfHwge30pXG5cdFx0XHQuZmlsdGVyKGsgPT4gayAhPT0gJ2Rpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZScpXG5cdFx0XHQuZm9yRWFjaCgoKGs6IGtleW9mIFN0ZXBwZXJPcHRpb25zKSA9PiAoc3RlcHBlck9wdGlvbnNba10gPSBkZWZhdWx0U3RlcHBlck9wdGlvbnMhW2tdKSkgYXMgYW55KTtcblx0fVxuXG5cdG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHRzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblx0XHR0aGlzLl9pY29ucy5mb3JFYWNoKCh7IG5hbWUsIHRlbXBsYXRlUmVmIH0pID0+ICh0aGlzLl9pY29uT3ZlcnJpZGVzW25hbWVdID0gdGVtcGxhdGVSZWYpKTtcblxuXHRcdC8vIE1hcmsgdGhlIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiB3aGVuZXZlciB0aGUgY29udGVudCBjaGlsZHJlbiBxdWVyeSBjaGFuZ2VzXG5cdFx0dGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX2FuaW1hdGlvbkRvbmVcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdFx0XHRpZiAoKGV2ZW50LnRvU3RhdGUgYXMgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlKSA9PT0gJ2N1cnJlbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9sZWZ0RHJhd2VyRW5kZWRcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0ZmlsdGVyKGV2ID0+IGV2LnRvU3RhdGUgPT09ICd2b2lkJyAmJiBldi50b1N0YXRlICE9PSBldi5mcm9tU3RhdGUpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3RvcERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl90b3BEcmF3ZXJFbmRlZFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4LmZyb21TdGF0ZSA9PT0geS5mcm9tU3RhdGUgJiYgeC50b1N0YXRlID09PSB5LnRvU3RhdGUpLFxuXHRcdFx0XHRmaWx0ZXIoZXYgPT4gZXYudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIGV2LnRvU3RhdGUgIT09IGV2LmZyb21TdGF0ZSksXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0ID0gdGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0IHx8IHRoaXMuX2VkaXRJY29uVGVtcGxhdGU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfc3RlcElzTmF2aWdhYmxlKGluZGV4OiBudW1iZXIsIHN0ZXA6IE1hdFN0ZXApOiBib29sZWFuIHtcblx0XHRyZXR1cm4gc3RlcC5jb21wbGV0ZWQgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSBpbmRleCB8fCAhdGhpcy5saW5lYXI7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfd2lkdGhDaGFuZ2VkKHc6IG51bWJlcikge1xuXHRcdGNvbnN0IG5hcnJvdyA9IHcgPCBCUkVBS1BPSU5UO1xuXHRcdGNvbnN0IGNscyA9ICdidWktc3RlcHBlci1uYXJyb3cnO1xuXHRcdGNvbnN0IGNsYXNzTGlzdCA9IHRoaXMuX2J1aUVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xuXHRcdGlmIChuYXJyb3cpIHtcblx0XHRcdHRoaXMuX2xlZnREcmF3ZXJTdGF0ZSA9ICd2b2lkJztcblx0XHRcdGNsYXNzTGlzdC5hZGQoY2xzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fdG9wRHJhd2VyU3RhdGUgPSAndm9pZCc7XG5cdFx0XHRjbGFzc0xpc3QucmVtb3ZlKGNscyk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9uYXJyb3cgIT09IG5hcnJvdykge1xuXHRcdFx0dGhpcy5fbmFycm93ID0gbmFycm93O1xuXHRcdFx0dGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG5cdFx0fVxuXHR9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItd3JhcHBlclwiICNzaXplTW9uaXRvcj5cblx0PGRpdlxuXHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItbGVmdC1oZWFkZXItY29udGFpbmVyXCJcblx0XHRbQGxlZnREcmF3ZXJdPVwiX2xlZnREcmF3ZXJTdGF0ZVwiXG5cdFx0KEBsZWZ0RHJhd2VyLnN0YXJ0KT1cIl9sZWZ0RHJhd2VyU3RhcnRlZC5uZXh0KCRldmVudClcIlxuXHRcdChAbGVmdERyYXdlci5kb25lKT1cIl9sZWZ0RHJhd2VyRW5kZWQubmV4dCgkZXZlbnQpXCJcblx0PlxuXHRcdDxkaXZcblx0XHRcdCpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiXG5cdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLWhlYWRlci13cmFwcGVyXCJcblx0XHRcdFtjbGFzcy5idWktc3RlcHBlci12ZXJ0aWNhbC1saW5lXT1cIiFpc0xhc3RcIlxuXHRcdD5cblx0XHRcdDxtYXQtc3RlcC1oZWFkZXJcblx0XHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci1oZWFkZXJcIlxuXHRcdFx0XHQoY2xpY2spPVwic3RlcC5zZWxlY3QoKVwiXG5cdFx0XHRcdChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG5cdFx0XHRcdFt0YWJJbmRleF09XCJfZ2V0Rm9jdXNJbmRleCgpID09PSBpID8gMCA6IC0xXCJcblx0XHRcdFx0W2lkXT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaSArIDFcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLXNldHNpemVdPVwic3RlcHMubGVuZ3RoXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1jb250cm9sc109XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PSBpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJzdGVwLmFyaWFMYWJlbCB8fCBudWxsXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIiFzdGVwLmFyaWFMYWJlbCAmJiBzdGVwLmFyaWFMYWJlbGxlZGJ5ID8gc3RlcC5hcmlhTGFiZWxsZWRieSA6IG51bGxcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWRpc2FibGVkXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcCkgPyBudWxsIDogdHJ1ZVwiXG5cdFx0XHRcdFtpbmRleF09XCJpXCJcblx0XHRcdFx0W3N0YXRlXT1cIl9nZXRJbmRpY2F0b3JUeXBlKGksIHN0ZXAuc3RhdGUpXCJcblx0XHRcdFx0W2xhYmVsXT1cInN0ZXAuc3RlcExhYmVsIHx8IHN0ZXAubGFiZWxcIlxuXHRcdFx0XHRbc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG5cdFx0XHRcdFthY3RpdmVdPVwiX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKVwiXG5cdFx0XHRcdFtvcHRpb25hbF09XCJzdGVwLm9wdGlvbmFsXCJcblx0XHRcdFx0W2Vycm9yTWVzc2FnZV09XCJzdGVwLmVycm9yTWVzc2FnZVwiXG5cdFx0XHRcdFtpY29uT3ZlcnJpZGVzXT1cIl9pY29uT3ZlcnJpZGVzXCJcblx0XHRcdFx0W2Rpc2FibGVSaXBwbGVdPVwiZGlzYWJsZVJpcHBsZSB8fCAhX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKVwiXG5cdFx0XHRcdFtjb2xvcl09XCJzdGVwLmNvbG9yIHx8IGNvbG9yXCJcblx0XHRcdD48L21hdC1zdGVwLWhlYWRlcj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cblx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLWNvbnRlbnQtY29udGFpbmVyXCIgW2J1aVNpemluZ0J5XT1cInNpemVNb25pdG9yXCIgKGJ1aVJlc2l6ZWQpPVwiX3dpZHRoQ2hhbmdlZCgkZXZlbnQud2lkdGgpXCI+XG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLWNvbnRhaW5lclwiXG5cdFx0XHRbY2xhc3MuYnVpLXN0ZXBwZXItaGVhZGVyLWFjdGl2ZV09XCJfbGVmdERyYXdlclN0YXRlID09PSAndm9pZCdcIlxuXHRcdFx0W0B0b3BEcmF3ZXJdPVwiX3RvcERyYXdlclN0YXRlXCJcblx0XHRcdChAdG9wRHJhd2VyLnN0YXJ0KT1cIl90b3BEcmF3ZXJTdGFydGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0XHQoQHRvcERyYXdlci5kb25lKT1cIl90b3BEcmF3ZXJFbmRlZC5uZXh0KCRldmVudClcIlxuXHRcdD5cblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXByb2dyZXNzXCJcblx0XHRcdFx0W3N0eWxlXT1cIidoZWlnaHQ6JyArIF9wcm9ncmVzc0NpcmNsZVNpemUgKyAncHg7IHdpZHRoOicgKyBfcHJvZ3Jlc3NDaXJjbGVTaXplICsgJ3B4J1wiXG5cdFx0XHQ+XG5cdFx0XHRcdDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuXHRcdFx0XHRcdGNsYXNzPVwiYnVpLXByb2dyZXNzLXNwaW5uZXItbGlnaHRcIlxuXHRcdFx0XHRcdFt2YWx1ZV09XCIxMDBcIlxuXHRcdFx0XHRcdFtkaWFtZXRlcl09XCJfcHJvZ3Jlc3NDaXJjbGVTaXplXCJcblx0XHRcdFx0XHRbc3Ryb2tlV2lkdGhdPVwiX3Byb2dyZXNzQ2lyY2xlV2lkdGhcIlxuXHRcdFx0XHQ+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cblx0XHRcdFx0PG1hdC1wcm9ncmVzcy1zcGlubmVyXG5cdFx0XHRcdFx0W2NvbG9yXT1cImNvbG9yXCJcblx0XHRcdFx0XHRbdmFsdWVdPVwiKChzZWxlY3RlZEluZGV4ICsgMSkgKiAxMDApIC8gc3RlcHMubGVuZ3RoXCJcblx0XHRcdFx0XHRbZGlhbWV0ZXJdPVwiX3Byb2dyZXNzQ2lyY2xlU2l6ZVwiXG5cdFx0XHRcdFx0W3N0cm9rZVdpZHRoXT1cIl9wcm9ncmVzc0NpcmNsZVdpZHRoXCJcblx0XHRcdFx0PjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci1pbmRpY2F0b3JcIj5cblx0XHRcdFx0XHR7eyBpbmRpY2F0b3JGb3JtYXR0ZXIoc2VsZWN0ZWRJbmRleCArIDEsIHN0ZXBzLmxlbmd0aCkgfX1cblx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci10aXRsZXMtd3JhcHBlclwiICpuZ0lmPVwic2VsZWN0ZWRcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItdGl0bGVcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIlxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzZWxlY3RlZCB9XCJcblx0XHRcdFx0XHQ+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXRpdGxlLW5leHRcIiAqbmdJZj1cInNlbGVjdGVkSW5kZXggPCBzdGVwcy5sZW5ndGggLSAxXCI+XG5cdFx0XHRcdFx0e3sgbmV4dFN0ZXBMYWJlbFByZWZpeCB9fVxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0ZXBzLmdldChzZWxlY3RlZEluZGV4ICsgMSkgfVwiXG5cdFx0XHRcdFx0PjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLWNvbnRlbnQtd3JhcHBlclwiPlxuXHRcdFx0PGRpdlxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiXG5cdFx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudFwiXG5cdFx0XHRcdHJvbGU9XCJ0YWJwYW5lbFwiXG5cdFx0XHRcdFtAc3RlcFRyYW5zaXRpb25dPVwiX2dldEFuaW1hdGlvbkRpcmVjdGlvbihpKVwiXG5cdFx0XHRcdChAc3RlcFRyYW5zaXRpb24uZG9uZSk9XCJfYW5pbWF0aW9uRG9uZS5uZXh0KCRldmVudClcIlxuXHRcdFx0XHRbaWRdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1leHBhbmRlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcblx0XHRcdD5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLWNvbnRlbnQtaGVhZGVyLWxhYmVsXCIgKm5nSWY9XCIhX25hcnJvd1wiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGVwIH1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXAuY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlIGxldC1zdGVwPlxuXHQ8bmctdGVtcGxhdGUgW25nSWZdPVwic3RlcC5zdGVwTGFiZWxcIiBbbmdJZkVsc2VdPVwic3RyaW5nTGFiZWxUZW1wbFwiPlxuXHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLnN0ZXBMYWJlbC50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG5cdDwvbmctdGVtcGxhdGU+XG5cdDxuZy10ZW1wbGF0ZSAjc3RyaW5nTGFiZWxUZW1wbD57eyBzdGVwLmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdEljb25UZW1wbGF0ZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxuXHQ8c3Bhbj57eyBpbmRleCArIDEgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,337 @@
1
+ import * as i3$1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, HostBinding, NgModule } from '@angular/core';
5
+ import * as i2 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i3 from '@bravura/ui/icon-font';
8
+ import { IconFontModule } from '@bravura/ui/icon-font';
9
+ import { __awaiter } from 'tslib';
10
+ import { trigger, transition, style, animate, state } from '@angular/animations';
11
+ import { generateID, isElementInViewport } from '@bravura/ui/common';
12
+ import { Subject, timer } from 'rxjs';
13
+ import { takeUntil, take, tap, delay } from 'rxjs/operators';
14
+ import * as i1$1 from '@angular/cdk/scrolling';
15
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
16
+ import * as i1 from '@angular/material/icon';
17
+
18
+ /** @ignore */
19
+ const ICONS = {
20
+ success: 'check_circle',
21
+ info: 'info',
22
+ warn: 'report_problem',
23
+ error: 'cancel'
24
+ };
25
+ /**
26
+ * An alert style message usually appears in a global notification area.
27
+ *
28
+ * The base color of the message is determined by the `type` of the message and a list of predefined
29
+ * CSS custom properties.
30
+ *
31
+ * ```scss
32
+ * --bui-color-success: #519602;
33
+ * --bui-color-info: #0dcaf0;
34
+ * --bui-color-warning: #ffc107;
35
+ * --bui-color-error: #dc3545;
36
+ * ```
37
+ *
38
+ *
39
+ */
40
+ class AlertMessageComponent {
41
+ constructor() {
42
+ /** The type of the message, used to derive the icon and base color. */
43
+ this.type = 'error';
44
+ /** The message to be displayed, HTML supported. */
45
+ this.message = '';
46
+ /** To be emitted when the user choose to dismiss the message. The event object is the ID of the element. */
47
+ this.dismissed = new EventEmitter();
48
+ /** To be emitted when the component finishes initialisation. The event object is the ID of the element. */
49
+ this.initialised = new EventEmitter();
50
+ /** @ignore */
51
+ this._id = `bui-alert-${generateID()}`;
52
+ this._dismissible = false;
53
+ this._blink = false;
54
+ }
55
+ /** Whether to display the button to fire the `dismissed` event. */
56
+ get dismissible() {
57
+ return this._dismissible;
58
+ }
59
+ set dismissible(value) {
60
+ this._dismissible = coerceBooleanProperty(value);
61
+ }
62
+ ngOnInit() {
63
+ this.initialised.emit(this._id);
64
+ }
65
+ /** @ignore */
66
+ get iconName() {
67
+ return ICONS[this.type];
68
+ }
69
+ /** @ignore */
70
+ _dismiss() {
71
+ this.dismissed.emit(this._id);
72
+ }
73
+ }
74
+ AlertMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
+ AlertMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: AlertMessageComponent, selector: "bui-alert", inputs: { type: "type", message: "message", dismissible: "dismissible", _id: ["id", "_id"] }, outputs: { dismissed: "dismissed", initialised: "initialised" }, host: { attributes: { "role": "alert" }, properties: { "class": "'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')", "id": "this._id" } }, ngImport: i0, template: "<div class=\"bui-alert-backdrop\"></div>\n<div class=\"bui-alert-frame\"></div>\n\n<div class=\"bui-alert-wrapper\">\n\t<div class=\"bui-alert-icon-area\">\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\n\t</div>\n\t<div class=\"bui-alert-content\"><div [innerHTML]=\"message\"></div></div>\n</div>\n\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\n\t<div class=\"bui-alert-button-backdrop\"></div>\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\"><mat-icon>cancel</mat-icon></button>\n</div>\n", styles: [":host(:not([hidden])){display:block;padding:12px 14px 12px 19px;position:relative;border-radius:5px}:host-context([dir=rtl]) :host(:not([hidden])){padding:12px 19px 12px 14px}:host(:not([hidden])),:host(:not([hidden])) *{box-sizing:border-box}.bui-alert-backdrop,.bui-alert-frame{position:absolute;top:0;right:0;bottom:0;left:0}.bui-alert-backdrop{opacity:.1}:host(.bui-alert-dismissible) .bui-alert-backdrop{-webkit-clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 18.75px) 18.75px,100% 25px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 18.75px) 18.75px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-backdrop{-webkit-clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0,18.75px 18.75px);clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0,18.75px 18.75px)}.bui-alert-frame{border-radius:5px;border-width:1px 1px 1px 5px;border-style:solid}:host-context([dir=rtl]) .bui-alert-frame{border-width:1px 5px 1px 1px}:host(.bui-alert-dismissible) .bui-alert-frame{-webkit-clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 25px) 25px,100% 25px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 25px) 25px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-frame{-webkit-clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0);clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0)}.bui-alert-button-area{position:absolute;right:-15px;top:-15px;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center}:host-context([dir=rtl]) .bui-alert-button-area{right:unset;left:-15px}.bui-alert-button-backdrop{position:absolute;border-radius:20px;width:100%;height:100%;-webkit-clip-path:polygon(0 15px,25px 15px,25px 100%,0% 100%);clip-path:polygon(0 15px,25px 15px,25px 100%,0% 100%)}:host-context([dir=rtl]) .bui-alert-button-backdrop{-webkit-clip-path:polygon(15px 15px,15px 100%,100% 100%,100% 15px);clip-path:polygon(15px 15px,15px 100%,100% 100%,100% 15px)}.bui-alert-wrapper{display:flex;align-items:stretch}.bui-alert-icon-area{flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:5px;width:30px;height:30px;margin-right:14px;color:var(--bui-bg-card)}:host-context([dir=rtl]) .bui-alert-icon-area{margin-right:unset;margin-left:14px}.bui-alert-content{display:flex;align-items:center}:host(.bui-alert-dismissible) .bui-alert-content{-webkit-clip-path:polygon(0 0,calc(100% - 11px) 0,100% 13px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 11px) 0,100% 13px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-content{-webkit-clip-path:polygon(0 13px,0 100%,100% 100%,100% 0,11px 0);clip-path:polygon(0 13px,0 100%,100% 100%,100% 0,11px 0)}:host(.bui-alert-success) .bui-alert-frame{border-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-backdrop,:host(.bui-alert-success) .bui-alert-icon-area{background-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-button-backdrop{border:1px var(--bui-color-success) solid}:host(.bui-alert-success) .bui-alert-button{color:var(--bui-color-success)}:host(.bui-alert-info) .bui-alert-frame{border-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-backdrop,:host(.bui-alert-info) .bui-alert-icon-area{background-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-button-backdrop{border:1px var(--bui-color-info) solid}:host(.bui-alert-info) .bui-alert-button{color:var(--bui-color-info)}:host(.bui-alert-warning) .bui-alert-frame{border-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-backdrop,:host(.bui-alert-warning) .bui-alert-icon-area{background-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-button-backdrop{border:1px var(--bui-color-warning) solid}:host(.bui-alert-warning) .bui-alert-button{color:var(--bui-color-warning)}:host(.bui-alert-error) .bui-alert-frame{border-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-backdrop,:host(.bui-alert-error) .bui-alert-icon-area{background-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-button-backdrop{border:1px var(--bui-color-error) solid}:host(.bui-alert-error) .bui-alert-button{color:var(--bui-color-error)}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertMessageComponent, decorators: [{
77
+ type: Component,
78
+ args: [{
79
+ selector: 'bui-alert',
80
+ templateUrl: './alert-message.component.html',
81
+ styleUrls: ['./alert-message.component.scss'],
82
+ host: {
83
+ '[class]': `'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')`,
84
+ role: 'alert'
85
+ },
86
+ changeDetection: ChangeDetectionStrategy.OnPush
87
+ }]
88
+ }], ctorParameters: function () { return []; }, propDecorators: { type: [{
89
+ type: Input
90
+ }], message: [{
91
+ type: Input
92
+ }], dismissible: [{
93
+ type: Input
94
+ }], dismissed: [{
95
+ type: Output
96
+ }], initialised: [{
97
+ type: Output
98
+ }],
99
+ /** @ignore */
100
+ _id: [{
101
+ type: Input,
102
+ args: ['id']
103
+ }, {
104
+ type: HostBinding,
105
+ args: ['id']
106
+ }] } });
107
+
108
+ /**@internal */
109
+ class InternalAlertOject {
110
+ constructor(type, message) {
111
+ this.type = type;
112
+ this.message = message;
113
+ this.deleted = false;
114
+ this.id = `bui-alert-cont-alert-${generateID()}`;
115
+ }
116
+ }
117
+ /**
118
+ * Use this component in a designated area of a page for displaying notification messages
119
+ *
120
+ */
121
+ class AlertContainerComponent {
122
+ constructor(zone, cdRef, _elementRef, scroll) {
123
+ this.zone = zone;
124
+ this.cdRef = cdRef;
125
+ this._elementRef = _elementRef;
126
+ this.scroll = scroll;
127
+ /** The maximum number of messages displayed in the container area. */
128
+ this.max = 5;
129
+ /**
130
+ * This property determines the behavior for displaying the notifications when the container is outside the viewport.
131
+ *
132
+ * `scroll`: The component will try to scroll to reveal the new notifications.
133
+ * `float`: The component will float the alert panel to the center of the screen for a couple of seconds and move it back to the original position.
134
+ */
135
+ this.outsideViewportBehavior = 'float';
136
+ /**
137
+ * The number of milliseconds for which the alert container will be floated when new notification arrives.
138
+ *
139
+ * This will only take effect when `outsideViewportBehavior` is set to `float` and the container is outside the viewport.
140
+ */
141
+ this.floatDuration = 2000;
142
+ /**@internal */
143
+ this._alerts = [];
144
+ /**@internal */
145
+ this._floated = false;
146
+ /**@internal */
147
+ this._floatPanelHidden = true;
148
+ /** @ignore Emits whenever the animation is started. */
149
+ this._animationStarted = new Subject();
150
+ /** @ignore Emits whenever the animation is done. */
151
+ this._animationEnded = new Subject();
152
+ this._destroyed$ = new Subject();
153
+ }
154
+ ngOnInit() {
155
+ const checkScroll = () => {
156
+ if (isElementInViewport(this._elementRef.nativeElement)) {
157
+ this._endFloating();
158
+ }
159
+ };
160
+ this.scroll
161
+ .ancestorScrolled(this._elementRef.nativeElement)
162
+ .pipe(takeUntil(this._destroyed$))
163
+ .subscribe(checkScroll);
164
+ checkScroll();
165
+ }
166
+ ngOnDestroy() {
167
+ var _b;
168
+ this._destroyed$.next();
169
+ this._destroyed$.complete();
170
+ (_b = this._endFloatingSub) === null || _b === void 0 ? void 0 : _b.unsubscribe();
171
+ }
172
+ /**@internal */
173
+ get _remaining() {
174
+ return this._alerts.filter(a => !a.deleted);
175
+ }
176
+ /**@internal */
177
+ get _width() {
178
+ return this._elementRef.nativeElement.clientWidth;
179
+ }
180
+ /** Add a message to the notification area */
181
+ notify(type, message) {
182
+ var _b;
183
+ return __awaiter(this, void 0, void 0, function* () {
184
+ (_b = this._endFloatingSub) === null || _b === void 0 ? void 0 : _b.unsubscribe();
185
+ const duplicate = this._remaining.find(_a => message === _a.message);
186
+ if (duplicate) {
187
+ this._dismiss(duplicate);
188
+ }
189
+ const remaining = this._remaining;
190
+ if (remaining.length >= this.max) {
191
+ this._dismiss(remaining[0]);
192
+ }
193
+ const a = new InternalAlertOject(type, message);
194
+ yield this._checkViewport();
195
+ this.zone.run(() => {
196
+ this._alerts.push(a);
197
+ this.cdRef.markForCheck();
198
+ });
199
+ });
200
+ }
201
+ /**@ignore */
202
+ _checkViewport() {
203
+ return __awaiter(this, void 0, void 0, function* () {
204
+ if (!isElementInViewport(this._elementRef.nativeElement)) {
205
+ if (this.outsideViewportBehavior === 'float') {
206
+ const d = this._floated ? 0 : 100;
207
+ this._floated = true;
208
+ this._floatPanelHidden = false;
209
+ this._endFloating(this.floatDuration);
210
+ this.cdRef.markForCheck();
211
+ yield timer(d).toPromise();
212
+ }
213
+ else {
214
+ this._elementRef.nativeElement.scrollIntoView({ block: 'start', behavior: 'smooth' });
215
+ }
216
+ }
217
+ });
218
+ }
219
+ /**@ignore */
220
+ _dismiss(a) {
221
+ return __awaiter(this, void 0, void 0, function* () {
222
+ const id = a.id;
223
+ a.deleted = true;
224
+ this.cdRef.markForCheck();
225
+ yield this._animationEnded.pipe(take(1)).toPromise();
226
+ this.zone.run(() => {
227
+ this._alerts = this._alerts.filter(_a => _a.id !== id);
228
+ this.cdRef.markForCheck();
229
+ });
230
+ });
231
+ }
232
+ /** Remove all messages currently displayed. */
233
+ clear() {
234
+ return __awaiter(this, void 0, void 0, function* () {
235
+ yield Promise.all(this._remaining.map(a => this._dismiss(a)));
236
+ this._endFloating();
237
+ });
238
+ }
239
+ _endFloating(_delay = 0) {
240
+ var _b;
241
+ if (!this._floated) {
242
+ return;
243
+ }
244
+ (_b = this._endFloatingSub) === null || _b === void 0 ? void 0 : _b.unsubscribe();
245
+ this._endFloatingSub = timer(_delay)
246
+ .pipe(tap(() => {
247
+ this._floated = false;
248
+ this.zone.run(() => this.cdRef.markForCheck());
249
+ }), delay(400))
250
+ .subscribe(() => {
251
+ this._floatPanelHidden = true;
252
+ this.zone.run(() => this.cdRef.markForCheck());
253
+ });
254
+ }
255
+ }
256
+ AlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertContainerComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component });
257
+ AlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: AlertContainerComponent, selector: "bui-alert-container", inputs: { max: "max", outsideViewportBehavior: "outsideViewportBehavior", floatDuration: "floatDuration" }, host: { properties: { "class": "'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')" } }, ngImport: i0, template: "<div\n\tclass=\"bui-alert-fixed-panel\"\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\n>\n\t<bui-alert\n\t\t*ngFor=\"let a of _alerts\"\n\t\t[id]=\"a.id\"\n\t\t[type]=\"a.type\"\n\t\t[message]=\"a.message\"\n\t\tdismissible\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\n\t\t(dismissed)=\"_dismiss(a)\"\n\t></bui-alert>\n</div>\n\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\n\t\t<bui-alert\n\t\t\t*ngFor=\"let a of _alerts\"\n\t\t\t[id]=\"a.id\"\n\t\t\t[type]=\"a.type\"\n\t\t\t[message]=\"a.message\"\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t></bui-alert>\n\t</div>\n</div>\n", styles: [".bui-alert:not(:first-of-type){margin-top:.5rem}:host(:not([hidden])){display:block}.bui-alert-fixed-panel{transition:opacity .2s ease-in}.bui-alert-fixed-panel.bui-alert-fixed-panel-blink .bui-alert:last-of-type{-webkit-animation:blink 1s ease-in forwards;animation:blink 1s ease-in forwards}.bui-alert-float-panel-frame{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;transition:background-color .4s cubic-bezier(.25,0,.55,.2)}.bui-alert-float-panel-frame:not([hidden]){display:flex}.bui-alert-float-panel-frame.bui-alert-float-panel-shaded{background-color:#00000080}.bui-alert-float-panel-frame .bui-alert{background-color:var(--bui-bg-card)}@-webkit-keyframes blink{60%{opacity:1}70%{opacity:0}80%{opacity:1}90%{opacity:0}}@keyframes blink{60%{opacity:1}70%{opacity:0}80%{opacity:1}90%{opacity:0}}\n"], components: [{ type: AlertMessageComponent, selector: "bui-alert", inputs: ["type", "message", "dismissible", "id"], outputs: ["dismissed", "initialised"] }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
258
+ trigger('floatTransition', [
259
+ transition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),
260
+ transition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])
261
+ ]),
262
+ trigger('alertTransition', [
263
+ state('visible', style({})),
264
+ state('hidden', style({
265
+ height: 0,
266
+ overflow: 'hidden',
267
+ transform: 'scaleY(0)',
268
+ opacity: 0,
269
+ 'margin-top': '-1rem'
270
+ })),
271
+ transition('void => visible', [
272
+ style({ transform: 'translateY(100%)', height: 0, opacity: '0' }),
273
+ animate('250ms cubic-bezier(0.42, 0.0, 0.58, 1.0)')
274
+ ]),
275
+ transition('visible => hidden', [animate('250ms cubic-bezier(0.25, 0, 0.3, 1.0)')])
276
+ ])
277
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertContainerComponent, decorators: [{
279
+ type: Component,
280
+ args: [{
281
+ selector: 'bui-alert-container',
282
+ templateUrl: './alert-container.component.html',
283
+ styleUrls: ['./alert-container.component.scss'],
284
+ host: {
285
+ '[class]': `'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')`
286
+ },
287
+ changeDetection: ChangeDetectionStrategy.OnPush,
288
+ animations: [
289
+ trigger('floatTransition', [
290
+ transition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),
291
+ transition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])
292
+ ]),
293
+ trigger('alertTransition', [
294
+ state('visible', style({})),
295
+ state('hidden', style({
296
+ height: 0,
297
+ overflow: 'hidden',
298
+ transform: 'scaleY(0)',
299
+ opacity: 0,
300
+ 'margin-top': '-1rem'
301
+ })),
302
+ transition('void => visible', [
303
+ style({ transform: 'translateY(100%)', height: 0, opacity: '0' }),
304
+ animate('250ms cubic-bezier(0.42, 0.0, 0.58, 1.0)')
305
+ ]),
306
+ transition('visible => hidden', [animate('250ms cubic-bezier(0.25, 0, 0.3, 1.0)')])
307
+ ])
308
+ ]
309
+ }]
310
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$1.ScrollDispatcher }]; }, propDecorators: { max: [{
311
+ type: Input
312
+ }], outsideViewportBehavior: [{
313
+ type: Input
314
+ }], floatDuration: [{
315
+ type: Input
316
+ }] } });
317
+
318
+ class AlertModule {
319
+ }
320
+ AlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
321
+ AlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertModule, declarations: [AlertMessageComponent, AlertContainerComponent], imports: [CommonModule, IconFontModule, MatButtonModule], exports: [AlertMessageComponent, AlertContainerComponent] });
322
+ AlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertModule, imports: [[CommonModule, IconFontModule, MatButtonModule]] });
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AlertModule, decorators: [{
324
+ type: NgModule,
325
+ args: [{
326
+ declarations: [AlertMessageComponent, AlertContainerComponent],
327
+ imports: [CommonModule, IconFontModule, MatButtonModule],
328
+ exports: [AlertMessageComponent, AlertContainerComponent]
329
+ }]
330
+ }] });
331
+
332
+ /**
333
+ * Generated bundle index. Do not edit.
334
+ */
335
+
336
+ export { AlertContainerComponent, AlertMessageComponent, AlertModule };
337
+ //# sourceMappingURL=bravura-ui-alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bravura-ui-alert.js","sources":["../../../projects/ui/alert/alert-message.component.ts","../../../projects/ui/alert/alert-message.component.html","../../../projects/ui/alert/alert-container.component.ts","../../../projects/ui/alert/alert-container.component.html","../../../projects/ui/alert/alert.module.ts","../../../projects/ui/alert/bravura-ui-alert.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { generateID } from '@bravura/ui/common';\n\n/** @ignore */\nconst ICONS: any = {\n\tsuccess: 'check_circle',\n\tinfo: 'info',\n\twarn: 'report_problem',\n\terror: 'cancel'\n};\n\n/**\n * An alert style message usually appears in a global notification area.\n *\n * The base color of the message is determined by the `type` of the message and a list of predefined\n * CSS custom properties.\n *\n * ```scss\n * --bui-color-success: #519602;\n * --bui-color-info: #0dcaf0;\n * --bui-color-warning: #ffc107;\n * --bui-color-error: #dc3545;\n * ```\n *\n *\n */\n@Component({\n\tselector: 'bui-alert',\n\ttemplateUrl: './alert-message.component.html',\n\tstyleUrls: ['./alert-message.component.scss'],\n\thost: {\n\t\t'[class]': `'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')`,\n\t\trole: 'alert'\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertMessageComponent implements OnInit {\n\t/** @ignore */\n\tstatic ngAcceptInputType_dismissible: boolean | string | null | undefined;\n\t/** @ignore */\n\tstatic ngAcceptInputType_blink: boolean | string | null | undefined;\n\n\t/** The type of the message, used to derive the icon and base color. */\n\t@Input()\n\ttype: 'success' | 'info' | 'warn' | 'error' = 'error';\n\n\t/** The message to be displayed, HTML supported. */\n\t@Input()\n\tmessage = '';\n\n\t/** Whether to display the button to fire the `dismissed` event. */\n\t@Input()\n\tget dismissible() {\n\t\treturn this._dismissible;\n\t}\n\tset dismissible(value: any) {\n\t\tthis._dismissible = coerceBooleanProperty(value);\n\t}\n\n\t/** To be emitted when the user choose to dismiss the message. The event object is the ID of the element. */\n\t@Output()\n\tdismissed = new EventEmitter<string>();\n\n\t/** To be emitted when the component finishes initialisation. The event object is the ID of the element. */\n\t@Output()\n\tinitialised = new EventEmitter<string>();\n\n\t@Input('id')\n\t@HostBinding('id')\n\t/** @ignore */\n\t_id = `bui-alert-${generateID()}`;\n\n\tprivate _dismissible = false;\n\tprivate _blink = false;\n\n\tconstructor() {}\n\n\tngOnInit(): void {\n\t\tthis.initialised.emit(this._id);\n\t}\n\n\t/** @ignore */\n\tget iconName(): string {\n\t\treturn ICONS[this.type];\n\t}\n\n\t/** @ignore */\n\t_dismiss() {\n\t\tthis.dismissed.emit(this._id);\n\t}\n}\n","<div class=\"bui-alert-backdrop\"></div>\n<div class=\"bui-alert-frame\"></div>\n\n<div class=\"bui-alert-wrapper\">\n\t<div class=\"bui-alert-icon-area\">\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\n\t</div>\n\t<div class=\"bui-alert-content\"><div [innerHTML]=\"message\"></div></div>\n</div>\n\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\n\t<div class=\"bui-alert-button-backdrop\"></div>\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\"><mat-icon>cancel</mat-icon></button>\n</div>\n","import { animate, state, style, transition, trigger, AnimationEvent } from '@angular/animations';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tInput,\n\tNgZone,\n\tOnDestroy,\n\tOnInit\n} from '@angular/core';\nimport { generateID, isElementInViewport } from '@bravura/ui/common';\nimport { Subject, Subscription, timer } from 'rxjs';\nimport { delay, take, takeUntil, tap } from 'rxjs/operators';\n\n/**@internal */\nclass InternalAlertOject {\n\tid: string;\n\tdeleted = false;\n\tconstructor(public readonly type: 'success' | 'info' | 'warn' | 'error', public readonly message: string) {\n\t\tthis.id = `bui-alert-cont-alert-${generateID()}`;\n\t}\n}\n\n/**\n * Use this component in a designated area of a page for displaying notification messages\n *\n */\n@Component({\n\tselector: 'bui-alert-container',\n\ttemplateUrl: './alert-container.component.html',\n\tstyleUrls: ['./alert-container.component.scss'],\n\thost: {\n\t\t'[class]': `'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')`\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tanimations: [\n\t\ttrigger('floatTransition', [\n\t\t\ttransition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),\n\t\t\ttransition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])\n\t\t]),\n\t\ttrigger('alertTransition', [\n\t\t\tstate('visible', style({})),\n\t\t\tstate(\n\t\t\t\t'hidden',\n\t\t\t\tstyle({\n\t\t\t\t\theight: 0,\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\ttransform: 'scaleY(0)',\n\t\t\t\t\topacity: 0,\n\t\t\t\t\t'margin-top': '-1rem'\n\t\t\t\t})\n\t\t\t),\n\t\t\ttransition('void => visible', [\n\t\t\t\tstyle({ transform: 'translateY(100%)', height: 0, opacity: '0' }),\n\t\t\t\tanimate('250ms cubic-bezier(0.42, 0.0, 0.58, 1.0)')\n\t\t\t]),\n\t\t\ttransition('visible => hidden', [animate('250ms cubic-bezier(0.25, 0, 0.3, 1.0)')])\n\t\t])\n\t]\n})\nexport class AlertContainerComponent implements OnInit, OnDestroy {\n\t/** The maximum number of messages displayed in the container area. */\n\t@Input()\n\tmax = 5;\n\n\t/**\n\t * This property determines the behavior for displaying the notifications when the container is outside the viewport.\n\t *\n\t * `scroll`: The component will try to scroll to reveal the new notifications.\n\t * `float`: The component will float the alert panel to the center of the screen for a couple of seconds and move it back to the original position.\n\t */\n\t@Input()\n\toutsideViewportBehavior: 'scroll' | 'float' = 'float';\n\n\t/**\n\t * The number of milliseconds for which the alert container will be floated when new notification arrives.\n\t *\n\t * This will only take effect when `outsideViewportBehavior` is set to `float` and the container is outside the viewport.\n\t */\n\t@Input()\n\tfloatDuration = 2000;\n\n\t/**@internal */\n\t_alerts: InternalAlertOject[] = [];\n\t/**@internal */\n\t_floated = false;\n\t/**@internal */\n\t_floatPanelHidden = true;\n\n\t/** @ignore Emits whenever the animation is started. */\n\treadonly _animationStarted = new Subject<AnimationEvent>();\n\t/** @ignore Emits whenever the animation is done. */\n\treadonly _animationEnded = new Subject<AnimationEvent>();\n\n\tprivate _destroyed$ = new Subject<void>();\n\tprivate _endFloatingSub?: Subscription;\n\n\tconstructor(\n\t\tprivate zone: NgZone,\n\t\tprivate cdRef: ChangeDetectorRef,\n\t\tprivate _elementRef: ElementRef<HTMLElement>,\n\t\tprivate scroll: ScrollDispatcher\n\t) {}\n\n\tngOnInit(): void {\n\t\tconst checkScroll = () => {\n\t\t\tif (isElementInViewport(this._elementRef.nativeElement)) {\n\t\t\t\tthis._endFloating();\n\t\t\t}\n\t\t};\n\t\tthis.scroll\n\t\t\t.ancestorScrolled(this._elementRef.nativeElement)\n\t\t\t.pipe(takeUntil(this._destroyed$))\n\t\t\t.subscribe(checkScroll);\n\t\tcheckScroll();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed$.next();\n\t\tthis._destroyed$.complete();\n\t\tthis._endFloatingSub?.unsubscribe();\n\t}\n\n\t/**@internal */\n\tget _remaining() {\n\t\treturn this._alerts.filter(a => !a.deleted);\n\t}\n\n\t/**@internal */\n\tget _width() {\n\t\treturn this._elementRef.nativeElement.clientWidth;\n\t}\n\n\t/** Add a message to the notification area */\n\tasync notify(type: 'success' | 'info' | 'warn' | 'error', message: string) {\n\t\tthis._endFloatingSub?.unsubscribe();\n\t\tconst duplicate = this._remaining.find(_a => message === _a.message);\n\t\tif (duplicate) {\n\t\t\tthis._dismiss(duplicate);\n\t\t}\n\n\t\tconst remaining = this._remaining;\n\t\tif (remaining.length >= this.max) {\n\t\t\tthis._dismiss(remaining[0]);\n\t\t}\n\n\t\tconst a = new InternalAlertOject(type, message);\n\t\tawait this._checkViewport();\n\t\tthis.zone.run(() => {\n\t\t\tthis._alerts.push(a);\n\t\t\tthis.cdRef.markForCheck();\n\t\t});\n\t}\n\n\t/**@ignore */\n\tasync _checkViewport() {\n\t\tif (!isElementInViewport(this._elementRef.nativeElement)) {\n\t\t\tif (this.outsideViewportBehavior === 'float') {\n\t\t\t\tconst d = this._floated ? 0 : 100;\n\t\t\t\tthis._floated = true;\n\t\t\t\tthis._floatPanelHidden = false;\n\t\t\t\tthis._endFloating(this.floatDuration);\n\t\t\t\tthis.cdRef.markForCheck();\n\t\t\t\tawait timer(d).toPromise();\n\t\t\t} else {\n\t\t\t\tthis._elementRef.nativeElement.scrollIntoView({ block: 'start', behavior: 'smooth' });\n\t\t\t}\n\t\t}\n\t}\n\n\t/**@ignore */\n\tasync _dismiss(a: InternalAlertOject) {\n\t\tconst id = a.id;\n\t\ta.deleted = true;\n\t\tthis.cdRef.markForCheck();\n\t\tawait this._animationEnded.pipe(take(1)).toPromise();\n\t\tthis.zone.run(() => {\n\t\t\tthis._alerts = this._alerts.filter(_a => _a.id !== id);\n\t\t\tthis.cdRef.markForCheck();\n\t\t});\n\t}\n\n\t/** Remove all messages currently displayed. */\n\tasync clear() {\n\t\tawait Promise.all(this._remaining.map(a => this._dismiss(a)));\n\t\tthis._endFloating();\n\t}\n\n\tprivate _endFloating(_delay = 0) {\n\t\tif (!this._floated) {\n\t\t\treturn;\n\t\t}\n\t\tthis._endFloatingSub?.unsubscribe();\n\t\tthis._endFloatingSub = timer(_delay)\n\t\t\t.pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis._floated = false;\n\t\t\t\t\tthis.zone.run(() => this.cdRef.markForCheck());\n\t\t\t\t}),\n\t\t\t\tdelay(400)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._floatPanelHidden = true;\n\t\t\t\tthis.zone.run(() => this.cdRef.markForCheck());\n\t\t\t});\n\t}\n}\n","<div\n\tclass=\"bui-alert-fixed-panel\"\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\n>\n\t<bui-alert\n\t\t*ngFor=\"let a of _alerts\"\n\t\t[id]=\"a.id\"\n\t\t[type]=\"a.type\"\n\t\t[message]=\"a.message\"\n\t\tdismissible\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\n\t\t(dismissed)=\"_dismiss(a)\"\n\t></bui-alert>\n</div>\n\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\n\t\t<bui-alert\n\t\t\t*ngFor=\"let a of _alerts\"\n\t\t\t[id]=\"a.id\"\n\t\t\t[type]=\"a.type\"\n\t\t\t[message]=\"a.message\"\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t></bui-alert>\n\t</div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { IconFontModule } from '@bravura/ui/icon-font';\nimport { AlertContainerComponent } from './alert-container.component';\nimport { AlertMessageComponent } from './alert-message.component';\n\n@NgModule({\n\tdeclarations: [AlertMessageComponent, AlertContainerComponent],\n\timports: [CommonModule, IconFontModule, MatButtonModule],\n\texports: [AlertMessageComponent, AlertContainerComponent]\n})\nexport class AlertModule {}\n\nexport { AlertMessageComponent, AlertContainerComponent };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ function generateID() {
2
+ return btoa(`${(Math.round(Math.random() * 1000) + Date.now() * 1000) % 1000000}`)
3
+ .replace(/[^\w\d]/g, '')
4
+ .toLowerCase();
5
+ }
6
+ function isElementInViewport(el) {
7
+ const rect = el.getBoundingClientRect();
8
+ return (rect.top >= 0 &&
9
+ rect.left >= 0 &&
10
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
11
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth));
12
+ }
13
+
14
+ /**
15
+ * Generated bundle index. Do not edit.
16
+ */
17
+
18
+ export { generateID, isElementInViewport };
19
+ //# sourceMappingURL=bravura-ui-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bravura-ui-common.js","sources":["../../../projects/ui/common/common-utils.ts","../../../projects/ui/common/bravura-ui-common.ts"],"sourcesContent":["export function generateID() {\n\treturn btoa(`${(Math.round(Math.random() * 1000) + Date.now() * 1000) % 1000000}`)\n\t\t.replace(/[^\\w\\d]/g, '')\n\t\t.toLowerCase();\n}\n\nexport function isElementInViewport(el: HTMLElement) {\n\tconst rect = el.getBoundingClientRect();\n\n\treturn (\n\t\trect.top >= 0 &&\n\t\trect.left >= 0 &&\n\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"SAAgB,UAAU;IACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;SAChF,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACjB,CAAC;SAEe,mBAAmB,CAAC,EAAe;IAClD,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IAExC,QACC,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,IAAI,IAAI,CAAC;QACd,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;QAC5E,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,EACxE;AACH;;ACfA;;;;;;"}