@bravura/ui 1.16.1 → 1.17.2

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 (48) 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-discrete-input.umd.js +1 -0
  13. package/bundles/bravura-ui-discrete-input.umd.js.map +1 -1
  14. package/bundles/bravura-ui-file-upload.umd.js +1 -1
  15. package/bundles/bravura-ui-file-upload.umd.js.map +1 -1
  16. package/bundles/bravura-ui-radio-panel.umd.js +7 -7
  17. package/bundles/bravura-ui-radio-panel.umd.js.map +1 -1
  18. package/bundles/bravura-ui-stepper.umd.js +5 -6
  19. package/bundles/bravura-ui-stepper.umd.js.map +1 -1
  20. package/common/bravura-ui-common.d.ts +5 -0
  21. package/common/common-utils.d.ts +2 -0
  22. package/common/package.json +10 -0
  23. package/common/public-api.d.ts +1 -0
  24. package/esm2015/alert/alert-container.component.js +220 -0
  25. package/esm2015/alert/alert-message.component.js +98 -0
  26. package/esm2015/alert/alert.module.js +22 -0
  27. package/esm2015/alert/bravura-ui-alert.js +5 -0
  28. package/esm2015/alert/public-api.js +2 -0
  29. package/esm2015/common/bravura-ui-common.js +5 -0
  30. package/esm2015/common/common-utils.js +13 -0
  31. package/esm2015/common/public-api.js +2 -0
  32. package/esm2015/discrete-input/discrete-input.component.js +2 -1
  33. package/esm2015/file-upload/file-upload.component.js +2 -2
  34. package/esm2015/radio-panel/radio-panel-item.component.js +4 -4
  35. package/esm2015/stepper/stepper.component.js +6 -7
  36. package/fesm2015/bravura-ui-alert.js +337 -0
  37. package/fesm2015/bravura-ui-alert.js.map +1 -0
  38. package/fesm2015/bravura-ui-common.js +19 -0
  39. package/fesm2015/bravura-ui-common.js.map +1 -0
  40. package/fesm2015/bravura-ui-discrete-input.js +1 -0
  41. package/fesm2015/bravura-ui-discrete-input.js.map +1 -1
  42. package/fesm2015/bravura-ui-file-upload.js +1 -1
  43. package/fesm2015/bravura-ui-file-upload.js.map +1 -1
  44. package/fesm2015/bravura-ui-radio-panel.js +4 -4
  45. package/fesm2015/bravura-ui-radio-panel.js.map +1 -1
  46. package/fesm2015/bravura-ui-stepper.js +5 -6
  47. package/fesm2015/bravura-ui-stepper.js.map +1 -1
  48. package/package.json +1 -1
@@ -5,8 +5,8 @@ import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/cdk/a11y";
6
6
  import * as i2 from "@angular/cdk/collections";
7
7
  import * as i3 from "@angular/material/icon";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "@angular/material/core";
8
+ import * as i4 from "@angular/material/core";
9
+ import * as i5 from "@angular/common";
10
10
  import * as i6 from "@angular/material/radio";
11
11
  /**
12
12
  * Use `bui-radio-panel-item` instead of `mat-radio-button` in a `bui-radio-panel` to display an option.
@@ -28,7 +28,7 @@ export class RadioPanelItemComponent extends MatRadioButton {
28
28
  }
29
29
  }
30
30
  RadioPanelItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: RadioPanelItemComponent, deps: [{ token: MAT_RADIO_GROUP, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i2.UniqueSelectionDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_RADIO_DEFAULT_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
31
- RadioPanelItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: RadioPanelItemComponent, selector: "bui-radio-panel-item", inputs: { disableRipple: "disableRipple", tabIndex: "tabIndex", title: "title", _tickPosition: "_tickPosition", tickPosition: "tickPosition" }, host: { listeners: { "focus": "_inputElement.nativeElement.focus()" }, properties: { "class.bui-radio-checked": "checked", "class.bui-disabled": "disabled", "class._mat-animation-noopable": "_noopAnimations", "class.mat-primary": "color === \"primary\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "attr.tabindex": "null", "attr.id": "id", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "bui-radio-panel-item" }, exportAs: ["matRadioButton"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" #label class=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\">\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\n\t\t<div matRipple matRippleColor=\"rgba(128,128,128,.1)\" class=\"bui-ripple\" *ngIf=\"!disabled\"></div>\n\t\t<div class=\"bui-label-header\">\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\n\t\t\t\t<span class=\"bui-persistent-ripple\"></span>\n\t\t\t\t<mat-icon [color]=\"color\" *ngIf=\"checked\">check_circle</mat-icon>\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t</span>\n\t\t</div>\n\t\t<!-- The actual 'radio' part of the control. -->\n\t\t<span class=\"radio-container\">\n\t\t\t<input\n\t\t\t\t#input\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[id]=\"inputId\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[tabIndex]=\"tabIndex\"\n\t\t\t\t[attr.name]=\"name\"\n\t\t\t\t[attr.value]=\"value\"\n\t\t\t\t[required]=\"required\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\n\t\t\t\t(click)=\"_onInputClick($event)\"\n\t\t\t/>\n\t\t</span>\n\n\t\t<div class=\"bui-label-content-gap\"></div>\n\t\t<!-- The label content for radio control. -->\n\t\t<div class=\"bui-label-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</label>\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;top:0;right:0;bottom:0;left:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:32px;height:32px}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 8px) calc(1rem - 8px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 8px) 1rem 0 calc(1rem - 8px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{margin-right:.25rem;order:-1}:host-context([dir=rtl]) :host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{margin-right:unset;margin-left:.25rem}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 8px)}:host .bui-label-title{font-size:larger;font-weight:bold}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 8px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}:host(:not(:first-child)){margin-top:1rem}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleRadius", "matRippleDisabled", "matRippleTrigger", "matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleAnimation"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ RadioPanelItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: RadioPanelItemComponent, selector: "bui-radio-panel-item", inputs: { disableRipple: "disableRipple", tabIndex: "tabIndex", title: "title", _tickPosition: "_tickPosition", tickPosition: "tickPosition" }, host: { listeners: { "focus": "_inputElement.nativeElement.focus()" }, properties: { "class.bui-radio-checked": "checked", "class.bui-disabled": "disabled", "class._mat-animation-noopable": "_noopAnimations", "class.mat-primary": "color === \"primary\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "attr.tabindex": "null", "attr.id": "id", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "bui-radio-panel-item" }, exportAs: ["matRadioButton"], usesInheritance: true, ngImport: i0, template: "<label\n\tmatRipple\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t[matRippleDisabled]=\"disabled\"\n\t[attr.for]=\"inputId\"\n\t#label\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\n>\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\n\t\t<div class=\"bui-label-header\">\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\tmatRipple\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t*ngIf=\"!disabled\"\n\t\t\t\t></span>\n\t\t\t\t<mat-icon [color]=\"color\" *ngIf=\"checked\">check_circle</mat-icon>\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t</span>\n\t\t</div>\n\t\t<!-- The actual 'radio' part of the control. -->\n\t\t<span class=\"radio-container\">\n\t\t\t<input\n\t\t\t\t#input\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[id]=\"inputId\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[tabIndex]=\"tabIndex\"\n\t\t\t\t[attr.name]=\"name\"\n\t\t\t\t[attr.value]=\"value\"\n\t\t\t\t[required]=\"required\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\n\t\t\t\t(click)=\"_onInputClick($event)\"\n\t\t\t/>\n\t\t</span>\n\n\t\t<div class=\"bui-label-content-gap\"></div>\n\t\t<!-- The label content for radio control. -->\n\t\t<div class=\"bui-label-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</label>\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;top:0;right:0;bottom:0;left:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) 1rem 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:bold}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}:host(:not(:first-child)){margin-top:1rem}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleRadius", "matRippleDisabled", "matRippleTrigger", "matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleAnimation"], exportAs: ["matRipple"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: RadioPanelItemComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
85
85
  }], tickPosition: [{
86
86
  type: Input
87
87
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9yYWRpby1wYW5lbC9yYWRpby1wYW5lbC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3JhZGlvLXBhbmVsL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNOLFNBQVMsRUFDVCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixjQUFjLEVBR2QseUJBQXlCLEVBQ3pCLGVBQWUsRUFDZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztBQUU3RTs7R0FFRztBQThCSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQWtCMUQsWUFDc0MsVUFBeUIsRUFDOUQsVUFBc0IsRUFDdEIsZUFBa0MsRUFDbEMsYUFBMkIsRUFDM0IsZ0JBQTJDLEVBQ0EsYUFBc0IsRUFHakUsaUJBQTBDLEVBQ25CLFFBQWlCO1FBRXhDLEtBQUssQ0FDSixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsUUFBUSxDQUNSLENBQUM7UUF0Q0g7O1dBRUc7UUFFSCxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBbUNYLENBQUM7SUE5QkQsSUFDSSxZQUFZOztRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSSxNQUFDLElBQUksQ0FBQyxVQUFrQiwwQ0FBRSxZQUFZLENBQUEsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsR0FBb0I7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs7b0hBaEJXLHVCQUF1QixrQkFtQmQsZUFBZSw2SkFLZixxQkFBcUIsNkJBRWpDLHlCQUF5Qiw2QkFFdEIsVUFBVTt3R0E1QlYsdUJBQXVCLHN3QkNyRHBDLG1zREF3Q0E7MkZEYWEsdUJBQXVCO2tCQTdCbkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsbUNBQW1DO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDaEQsd0RBQXdEO29CQUN4RCxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDO29CQUNyQyxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixzREFBc0Q7b0JBQ3RELElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsc0JBQXNCO3dCQUM3QiwyQkFBMkIsRUFBRSxTQUFTO3dCQUN0QyxzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxpQ0FBaUMsRUFBRSxpQkFBaUI7d0JBQ3BELHFCQUFxQixFQUFFLHFCQUFxQjt3QkFDNUMsb0JBQW9CLEVBQUUsb0JBQW9CO3dCQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0I7d0JBQ3RDLHFFQUFxRTt3QkFDckUsaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLHdCQUF3QixFQUFFLE1BQU07d0JBQ2hDLHlCQUF5QixFQUFFLE1BQU07d0JBQ2pDLHdGQUF3Rjt3QkFDeEYsNEZBQTRGO3dCQUM1RixtQ0FBbUM7d0JBQ25DLFNBQVMsRUFBRSxxQ0FBcUM7cUJBQ2hEO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7MEJBb0JFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBS2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzswQkFDeEMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx5QkFBeUI7OzBCQUVoQyxTQUFTOzJCQUFDLFVBQVU7NENBdkJ0QixLQUFLO3NCQURKLEtBQUs7Z0JBSVcsYUFBYTtzQkFBN0IsS0FBSztnQkFHRixZQUFZO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7XG5cdEF0dHJpYnV0ZSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0TWF0UmFkaW9CdXR0b24sXG5cdE1hdFJhZGlvRGVmYXVsdE9wdGlvbnMsXG5cdE1hdFJhZGlvR3JvdXAsXG5cdE1BVF9SQURJT19ERUZBVUxUX09QVElPTlMsXG5cdE1BVF9SQURJT19HUk9VUFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBBTklNQVRJT05fTU9EVUxFX1RZUEUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuXG4vKipcbiAqIFVzZSBgYnVpLXJhZGlvLXBhbmVsLWl0ZW1gIGluc3RlYWQgb2YgYG1hdC1yYWRpby1idXR0b25gIGluIGEgYGJ1aS1yYWRpby1wYW5lbGAgdG8gZGlzcGxheSBhbiBvcHRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1yYWRpby1wYW5lbC1pdGVtJyxcblx0dGVtcGxhdGVVcmw6ICcuL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9yYWRpby1wYW5lbC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG5cdGlucHV0czogWydkaXNhYmxlUmlwcGxlJywgJ3RhYkluZGV4J10sXG5cdGV4cG9ydEFzOiAnbWF0UmFkaW9CdXR0b24nLFxuXHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnVpLXJhZGlvLXBhbmVsLWl0ZW0nLFxuXHRcdCdbY2xhc3MuYnVpLXJhZGlvLWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxuXHRcdCdbY2xhc3MuYnVpLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG5cdFx0J1tjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0nOiAnX25vb3BBbmltYXRpb25zJyxcblx0XHQnW2NsYXNzLm1hdC1wcmltYXJ5XSc6ICdjb2xvciA9PT0gXCJwcmltYXJ5XCInLFxuXHRcdCdbY2xhc3MubWF0LWFjY2VudF0nOiAnY29sb3IgPT09IFwiYWNjZW50XCInLFxuXHRcdCdbY2xhc3MubWF0LXdhcm5dJzogJ2NvbG9yID09PSBcIndhcm5cIicsXG5cdFx0Ly8gTmVlZHMgdG8gYmUgcmVtb3ZlZCBzaW5jZSBpdCBjYXVzZXMgc29tZSBhMTF5IGlzc3VlcyAoc2VlICMyMTI2NikuXG5cdFx0J1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcblx0XHQnW2F0dHIuaWRdJzogJ2lkJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ251bGwnLFxuXHRcdC8vIE5vdGU6IHVuZGVyIG5vcm1hbCBjb25kaXRpb25zIGZvY3VzIHNob3VsZG4ndCBsYW5kIG9uIHRoaXMgZWxlbWVudCwgaG93ZXZlciBpdCBtYXkgYmVcblx0XHQvLyBwcm9ncmFtbWF0aWNhbGx5IHNldCwgZm9yIGV4YW1wbGUgaW5zaWRlIG9mIGEgZm9jdXMgdHJhcCwgaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gZm9yd2FyZFxuXHRcdC8vIHRoZSBmb2N1cyB0byB0aGUgbmF0aXZlIGVsZW1lbnQuXG5cdFx0Jyhmb2N1cyknOiAnX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCknXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvUGFuZWxJdGVtQ29tcG9uZW50IGV4dGVuZHMgTWF0UmFkaW9CdXR0b24ge1xuXHQvKipcblx0ICogVGhpcyB3aWxsIGJlIGRpc3BsYXllZCBhcyB0aGUgcGFuZWwgaGVhZGVyXG5cdCAqL1xuXHRASW5wdXQoKVxuXHR0aXRsZSA9ICcnO1xuXG5cdC8qKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgJ3RpY2snIGljb24gcmVsYXRpdmUgdG8gdGhlIHRpdGxlLiAqL1xuXHRASW5wdXQoKSBwcml2YXRlIF90aWNrUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IHVuZGVmaW5lZDtcblxuXHRASW5wdXQoKVxuXHRnZXQgdGlja1Bvc2l0aW9uKCk6ICdzdGFydCcgfCAnZW5kJyB7XG5cdFx0cmV0dXJuIHRoaXMuX3RpY2tQb3NpdGlvbiB8fCAodGhpcy5yYWRpb0dyb3VwIGFzIGFueSk/LnRpY2tQb3NpdGlvbjtcblx0fVxuXHRzZXQgdGlja1Bvc2l0aW9uKHBvczogJ3N0YXJ0JyB8ICdlbmQnKSB7XG5cdFx0dGhpcy5fdGlja1Bvc2l0aW9uID0gcG9zO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QE9wdGlvbmFsKCkgQEluamVjdChNQVRfUkFESU9fR1JPVVApIHJhZGlvR3JvdXA6IE1hdFJhZGlvR3JvdXAsXG5cdFx0ZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcblx0XHRfcmFkaW9EaXNwYXRjaGVyOiBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoQU5JTUFUSU9OX01PRFVMRV9UWVBFKSBhbmltYXRpb25Nb2RlPzogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpXG5cdFx0QEluamVjdChNQVRfUkFESU9fREVGQVVMVF9PUFRJT05TKVxuXHRcdF9wcm92aWRlck92ZXJyaWRlPzogTWF0UmFkaW9EZWZhdWx0T3B0aW9ucyxcblx0XHRAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4Pzogc3RyaW5nXG5cdCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0cmFkaW9Hcm91cCxcblx0XHRcdGVsZW1lbnRSZWYsXG5cdFx0XHRfY2hhbmdlRGV0ZWN0b3IsXG5cdFx0XHRfZm9jdXNNb25pdG9yLFxuXHRcdFx0X3JhZGlvRGlzcGF0Y2hlcixcblx0XHRcdGFuaW1hdGlvbk1vZGUsXG5cdFx0XHRfcHJvdmlkZXJPdmVycmlkZSxcblx0XHRcdHRhYkluZGV4XG5cdFx0KTtcblx0fVxufVxuIiwiPGxhYmVsIFthdHRyLmZvcl09XCJpbnB1dElkXCIgI2xhYmVsIGNsYXNzPVwiYnVpLXJhZGlvLXBhbmVsLWl0ZW0tbGFiZWwgYnVpLWJvcmRlci17eyBjaGVja2VkID8gY29sb3IgOiAnZGVmYXVsdCcgfX1cIj5cblx0PGRpdiBjbGFzcz1cImJ1aS1yYWRpby1wYW5lbC1pdGVtLXdyYXBwZXJcIiBbY2xhc3MuYnVpLXJhZGlvLXRpY2stYXQtZW5kXT1cInRpY2tQb3NpdGlvbiA9PT0gJ2VuZCdcIj5cblx0XHQ8ZGl2IG1hdFJpcHBsZSBtYXRSaXBwbGVDb2xvcj1cInJnYmEoMTI4LDEyOCwxMjgsLjEpXCIgY2xhc3M9XCJidWktcmlwcGxlXCIgKm5nSWY9XCIhZGlzYWJsZWRcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLWxhYmVsLWhlYWRlclwiPlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJidWktbGFiZWwtdGl0bGVcIiBbaW5uZXJIVE1MXT1cInRpdGxlXCI+PC9zcGFuPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J1aVJhZGlvSXRlbUhlYWRpbmdFbmRdXCI+PC9uZy1jb250ZW50PlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJidWktcmFkaW8tcGFuZWwtaXRlbS1jaXJjbGVcIj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidWktcGVyc2lzdGVudC1yaXBwbGVcIj48L3NwYW4+XG5cdFx0XHRcdDxtYXQtaWNvbiBbY29sb3JdPVwiY29sb3JcIiAqbmdJZj1cImNoZWNrZWRcIj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxuXHRcdFx0XHQ8bWF0LWljb24gKm5nSWY9XCIhY2hlY2tlZFwiIGNsYXNzPVwiYnVpLXJhZGlvLXBhbmVsLWl0ZW0tY2lyY2xlLXVuY2hlY2tlZFwiPnJhZGlvX2J1dHRvbl91bmNoZWNrZWQ8L21hdC1pY29uPlxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvZGl2PlxuXHRcdDwhLS0gVGhlIGFjdHVhbCAncmFkaW8nIHBhcnQgb2YgdGhlIGNvbnRyb2wuIC0tPlxuXHRcdDxzcGFuIGNsYXNzPVwicmFkaW8tY29udGFpbmVyXCI+XG5cdFx0XHQ8aW5wdXRcblx0XHRcdFx0I2lucHV0XG5cdFx0XHRcdGNsYXNzPVwibWF0LXJhZGlvLWlucHV0IGNkay12aXN1YWxseS1oaWRkZW5cIlxuXHRcdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0XHRbaWRdPVwiaW5wdXRJZFwiXG5cdFx0XHRcdFtjaGVja2VkXT1cImNoZWNrZWRcIlxuXHRcdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxuXHRcdFx0XHRbYXR0ci5uYW1lXT1cIm5hbWVcIlxuXHRcdFx0XHRbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG5cdFx0XHRcdFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcblx0XHRcdFx0W2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuXHRcdFx0XHQoY2hhbmdlKT1cIl9vbklucHV0SW50ZXJhY3Rpb24oJGV2ZW50KVwiXG5cdFx0XHRcdChjbGljayk9XCJfb25JbnB1dENsaWNrKCRldmVudClcIlxuXHRcdFx0Lz5cblx0XHQ8L3NwYW4+XG5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLWxhYmVsLWNvbnRlbnQtZ2FwXCI+PC9kaXY+XG5cdFx0PCEtLSBUaGUgbGFiZWwgY29udGVudCBmb3IgcmFkaW8gY29udHJvbC4gLS0+XG5cdFx0PGRpdiBjbGFzcz1cImJ1aS1sYWJlbC1jb250ZW50XCI+XG5cdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9yYWRpby1wYW5lbC9yYWRpby1wYW5lbC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3JhZGlvLXBhbmVsL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNOLFNBQVMsRUFDVCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixjQUFjLEVBR2QseUJBQXlCLEVBQ3pCLGVBQWUsRUFDZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztBQUU3RTs7R0FFRztBQThCSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQWtCMUQsWUFDc0MsVUFBeUIsRUFDOUQsVUFBc0IsRUFDdEIsZUFBa0MsRUFDbEMsYUFBMkIsRUFDM0IsZ0JBQTJDLEVBQ0EsYUFBc0IsRUFHakUsaUJBQTBDLEVBQ25CLFFBQWlCO1FBRXhDLEtBQUssQ0FDSixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsUUFBUSxDQUNSLENBQUM7UUF0Q0g7O1dBRUc7UUFFSCxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBbUNYLENBQUM7SUE5QkQsSUFDSSxZQUFZOztRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSSxNQUFDLElBQUksQ0FBQyxVQUFrQiwwQ0FBRSxZQUFZLENBQUEsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsR0FBb0I7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs7b0hBaEJXLHVCQUF1QixrQkFtQmQsZUFBZSw2SkFLZixxQkFBcUIsNkJBRWpDLHlCQUF5Qiw2QkFFdEIsVUFBVTt3R0E1QlYsdUJBQXVCLHN3QkNyRHBDLHU5REF1REE7MkZERmEsdUJBQXVCO2tCQTdCbkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsbUNBQW1DO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDaEQsd0RBQXdEO29CQUN4RCxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDO29CQUNyQyxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixzREFBc0Q7b0JBQ3RELElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsc0JBQXNCO3dCQUM3QiwyQkFBMkIsRUFBRSxTQUFTO3dCQUN0QyxzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxpQ0FBaUMsRUFBRSxpQkFBaUI7d0JBQ3BELHFCQUFxQixFQUFFLHFCQUFxQjt3QkFDNUMsb0JBQW9CLEVBQUUsb0JBQW9CO3dCQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0I7d0JBQ3RDLHFFQUFxRTt3QkFDckUsaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLHdCQUF3QixFQUFFLE1BQU07d0JBQ2hDLHlCQUF5QixFQUFFLE1BQU07d0JBQ2pDLHdGQUF3Rjt3QkFDeEYsNEZBQTRGO3dCQUM1RixtQ0FBbUM7d0JBQ25DLFNBQVMsRUFBRSxxQ0FBcUM7cUJBQ2hEO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7MEJBb0JFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBS2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzswQkFDeEMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx5QkFBeUI7OzBCQUVoQyxTQUFTOzJCQUFDLFVBQVU7NENBdkJ0QixLQUFLO3NCQURKLEtBQUs7Z0JBSVcsYUFBYTtzQkFBN0IsS0FBSztnQkFHRixZQUFZO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7XG5cdEF0dHJpYnV0ZSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0TWF0UmFkaW9CdXR0b24sXG5cdE1hdFJhZGlvRGVmYXVsdE9wdGlvbnMsXG5cdE1hdFJhZGlvR3JvdXAsXG5cdE1BVF9SQURJT19ERUZBVUxUX09QVElPTlMsXG5cdE1BVF9SQURJT19HUk9VUFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBBTklNQVRJT05fTU9EVUxFX1RZUEUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuXG4vKipcbiAqIFVzZSBgYnVpLXJhZGlvLXBhbmVsLWl0ZW1gIGluc3RlYWQgb2YgYG1hdC1yYWRpby1idXR0b25gIGluIGEgYGJ1aS1yYWRpby1wYW5lbGAgdG8gZGlzcGxheSBhbiBvcHRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1yYWRpby1wYW5lbC1pdGVtJyxcblx0dGVtcGxhdGVVcmw6ICcuL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9yYWRpby1wYW5lbC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG5cdGlucHV0czogWydkaXNhYmxlUmlwcGxlJywgJ3RhYkluZGV4J10sXG5cdGV4cG9ydEFzOiAnbWF0UmFkaW9CdXR0b24nLFxuXHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnVpLXJhZGlvLXBhbmVsLWl0ZW0nLFxuXHRcdCdbY2xhc3MuYnVpLXJhZGlvLWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxuXHRcdCdbY2xhc3MuYnVpLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG5cdFx0J1tjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0nOiAnX25vb3BBbmltYXRpb25zJyxcblx0XHQnW2NsYXNzLm1hdC1wcmltYXJ5XSc6ICdjb2xvciA9PT0gXCJwcmltYXJ5XCInLFxuXHRcdCdbY2xhc3MubWF0LWFjY2VudF0nOiAnY29sb3IgPT09IFwiYWNjZW50XCInLFxuXHRcdCdbY2xhc3MubWF0LXdhcm5dJzogJ2NvbG9yID09PSBcIndhcm5cIicsXG5cdFx0Ly8gTmVlZHMgdG8gYmUgcmVtb3ZlZCBzaW5jZSBpdCBjYXVzZXMgc29tZSBhMTF5IGlzc3VlcyAoc2VlICMyMTI2NikuXG5cdFx0J1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcblx0XHQnW2F0dHIuaWRdJzogJ2lkJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ251bGwnLFxuXHRcdC8vIE5vdGU6IHVuZGVyIG5vcm1hbCBjb25kaXRpb25zIGZvY3VzIHNob3VsZG4ndCBsYW5kIG9uIHRoaXMgZWxlbWVudCwgaG93ZXZlciBpdCBtYXkgYmVcblx0XHQvLyBwcm9ncmFtbWF0aWNhbGx5IHNldCwgZm9yIGV4YW1wbGUgaW5zaWRlIG9mIGEgZm9jdXMgdHJhcCwgaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gZm9yd2FyZFxuXHRcdC8vIHRoZSBmb2N1cyB0byB0aGUgbmF0aXZlIGVsZW1lbnQuXG5cdFx0Jyhmb2N1cyknOiAnX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCknXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvUGFuZWxJdGVtQ29tcG9uZW50IGV4dGVuZHMgTWF0UmFkaW9CdXR0b24ge1xuXHQvKipcblx0ICogVGhpcyB3aWxsIGJlIGRpc3BsYXllZCBhcyB0aGUgcGFuZWwgaGVhZGVyXG5cdCAqL1xuXHRASW5wdXQoKVxuXHR0aXRsZSA9ICcnO1xuXG5cdC8qKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgJ3RpY2snIGljb24gcmVsYXRpdmUgdG8gdGhlIHRpdGxlLiAqL1xuXHRASW5wdXQoKSBwcml2YXRlIF90aWNrUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IHVuZGVmaW5lZDtcblxuXHRASW5wdXQoKVxuXHRnZXQgdGlja1Bvc2l0aW9uKCk6ICdzdGFydCcgfCAnZW5kJyB7XG5cdFx0cmV0dXJuIHRoaXMuX3RpY2tQb3NpdGlvbiB8fCAodGhpcy5yYWRpb0dyb3VwIGFzIGFueSk/LnRpY2tQb3NpdGlvbjtcblx0fVxuXHRzZXQgdGlja1Bvc2l0aW9uKHBvczogJ3N0YXJ0JyB8ICdlbmQnKSB7XG5cdFx0dGhpcy5fdGlja1Bvc2l0aW9uID0gcG9zO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QE9wdGlvbmFsKCkgQEluamVjdChNQVRfUkFESU9fR1JPVVApIHJhZGlvR3JvdXA6IE1hdFJhZGlvR3JvdXAsXG5cdFx0ZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcblx0XHRfcmFkaW9EaXNwYXRjaGVyOiBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoQU5JTUFUSU9OX01PRFVMRV9UWVBFKSBhbmltYXRpb25Nb2RlPzogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpXG5cdFx0QEluamVjdChNQVRfUkFESU9fREVGQVVMVF9PUFRJT05TKVxuXHRcdF9wcm92aWRlck92ZXJyaWRlPzogTWF0UmFkaW9EZWZhdWx0T3B0aW9ucyxcblx0XHRAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4Pzogc3RyaW5nXG5cdCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0cmFkaW9Hcm91cCxcblx0XHRcdGVsZW1lbnRSZWYsXG5cdFx0XHRfY2hhbmdlRGV0ZWN0b3IsXG5cdFx0XHRfZm9jdXNNb25pdG9yLFxuXHRcdFx0X3JhZGlvRGlzcGF0Y2hlcixcblx0XHRcdGFuaW1hdGlvbk1vZGUsXG5cdFx0XHRfcHJvdmlkZXJPdmVycmlkZSxcblx0XHRcdHRhYkluZGV4XG5cdFx0KTtcblx0fVxufVxuIiwiPGxhYmVsXG5cdG1hdFJpcHBsZVxuXHRtYXRSaXBwbGVDb2xvcj1cInJnYmEoMTI4LDEyOCwxMjgsLjEpXCJcblx0W21hdFJpcHBsZURpc2FibGVkXT1cImRpc2FibGVkXCJcblx0W2F0dHIuZm9yXT1cImlucHV0SWRcIlxuXHQjbGFiZWxcblx0Y2xhc3M9XCJidWktcmFkaW8tcGFuZWwtaXRlbS1sYWJlbCBidWktYm9yZGVyLXt7IGNoZWNrZWQgPyBjb2xvciA6ICdkZWZhdWx0JyB9fVwiXG4+XG5cdDxkaXYgY2xhc3M9XCJidWktcmFkaW8tcGFuZWwtaXRlbS13cmFwcGVyXCIgW2NsYXNzLmJ1aS1yYWRpby10aWNrLWF0LWVuZF09XCJ0aWNrUG9zaXRpb24gPT09ICdlbmQnXCI+XG5cdFx0PGRpdiBjbGFzcz1cImJ1aS1sYWJlbC1oZWFkZXJcIj5cblx0XHRcdDxzcGFuIGNsYXNzPVwiYnVpLWxhYmVsLXRpdGxlXCIgW2lubmVySFRNTF09XCJ0aXRsZVwiPjwvc3Bhbj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltidWlSYWRpb0l0ZW1IZWFkaW5nRW5kXVwiPjwvbmctY29udGVudD5cblx0XHRcdDxzcGFuIGNsYXNzPVwiYnVpLXJhZGlvLXBhbmVsLWl0ZW0tY2lyY2xlXCI+XG5cdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0Y2xhc3M9XCJidWktcGVyc2lzdGVudC1yaXBwbGVcIlxuXHRcdFx0XHRcdG1hdFJpcHBsZVxuXHRcdFx0XHRcdG1hdFJpcHBsZUNvbG9yPVwicmdiYSgxMjgsMTI4LDEyOCwuMSlcIlxuXHRcdFx0XHRcdFttYXRSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcblx0XHRcdFx0XHRbbWF0UmlwcGxlVW5ib3VuZGVkXT1cInRydWVcIlxuXHRcdFx0XHRcdFttYXRSaXBwbGVUcmlnZ2VyXT1cImxhYmVsXCJcblx0XHRcdFx0XHRbbWF0UmlwcGxlUmFkaXVzXT1cIjIwXCJcblx0XHRcdFx0XHQqbmdJZj1cIiFkaXNhYmxlZFwiXG5cdFx0XHRcdD48L3NwYW4+XG5cdFx0XHRcdDxtYXQtaWNvbiBbY29sb3JdPVwiY29sb3JcIiAqbmdJZj1cImNoZWNrZWRcIj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxuXHRcdFx0XHQ8bWF0LWljb24gKm5nSWY9XCIhY2hlY2tlZFwiIGNsYXNzPVwiYnVpLXJhZGlvLXBhbmVsLWl0ZW0tY2lyY2xlLXVuY2hlY2tlZFwiPnJhZGlvX2J1dHRvbl91bmNoZWNrZWQ8L21hdC1pY29uPlxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvZGl2PlxuXHRcdDwhLS0gVGhlIGFjdHVhbCAncmFkaW8nIHBhcnQgb2YgdGhlIGNvbnRyb2wuIC0tPlxuXHRcdDxzcGFuIGNsYXNzPVwicmFkaW8tY29udGFpbmVyXCI+XG5cdFx0XHQ8aW5wdXRcblx0XHRcdFx0I2lucHV0XG5cdFx0XHRcdGNsYXNzPVwibWF0LXJhZGlvLWlucHV0IGNkay12aXN1YWxseS1oaWRkZW5cIlxuXHRcdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0XHRbaWRdPVwiaW5wdXRJZFwiXG5cdFx0XHRcdFtjaGVja2VkXT1cImNoZWNrZWRcIlxuXHRcdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxuXHRcdFx0XHRbYXR0ci5uYW1lXT1cIm5hbWVcIlxuXHRcdFx0XHRbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG5cdFx0XHRcdFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcblx0XHRcdFx0W2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuXHRcdFx0XHQoY2hhbmdlKT1cIl9vbklucHV0SW50ZXJhY3Rpb24oJGV2ZW50KVwiXG5cdFx0XHRcdChjbGljayk9XCJfb25JbnB1dENsaWNrKCRldmVudClcIlxuXHRcdFx0Lz5cblx0XHQ8L3NwYW4+XG5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLWxhYmVsLWNvbnRlbnQtZ2FwXCI+PC9kaXY+XG5cdFx0PCEtLSBUaGUgbGFiZWwgY29udGVudCBmb3IgcmFkaW8gY29udHJvbC4gLS0+XG5cdFx0PGRpdiBjbGFzcz1cImJ1aS1sYWJlbC1jb250ZW50XCI+XG5cdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==
@@ -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 });
@@ -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;z-index:1000;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