@energycap/components 0.38.8-ECAP-19884-ucp-theme-updates.20231027-1555 → 0.38.8-ECAP-20257-allow-dialogs-with-aligntotop.20231030-1612

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.
@@ -219,13 +219,13 @@ export class DialogComponent {
219
219
  }
220
220
  }
221
221
  DialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.WindowService }, { token: i2.DialogService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
222
- DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DialogComponent, selector: "ec-dialog", inputs: { size: "size", content: "content", context: "context", options: "options", dialogOpenStartEventId: "dialogOpenStartEventId" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "onOverlayClick($event)" }, properties: { "class": "dialogSizeClass", "style.--ec-dialog-width.px": "width", "class.is-open": "this.isOpen", "class.fade-in": "this.fadeIn", "class.fade-out": "this.fadeOut", "class.is-panel": "this.displayAsPanel", "class.is-top-aligned": "this.alignToTop", "class.is-transparent": "this.transparentMask", "class.no-mask": "this.noMask" } }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', isInline: true, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:20vh;max-height:75vh}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
222
+ DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DialogComponent, selector: "ec-dialog", inputs: { size: "size", content: "content", context: "context", options: "options", dialogOpenStartEventId: "dialogOpenStartEventId" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "onOverlayClick($event)" }, properties: { "class": "dialogSizeClass", "style.--ec-dialog-width.px": "width", "class.is-open": "this.isOpen", "class.fade-in": "this.fadeIn", "class.fade-out": "this.fadeOut", "class.is-panel": "this.displayAsPanel", "class.is-top-aligned": "this.alignToTop", "style.--ec-dialog-margin-align-to-top": "this.alignToTopMargin", "class.is-transparent": "this.transparentMask", "class.no-mask": "this.noMask" } }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', isInline: true, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
223
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DialogComponent, decorators: [{
224
224
  type: Component,
225
225
  args: [{ selector: 'ec-dialog', template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', host: {
226
226
  '[class]': 'dialogSizeClass',
227
227
  '[style.--ec-dialog-width.px]': 'width'
228
- }, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:20vh;max-height:75vh}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"] }]
228
+ }, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"] }]
229
229
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.WindowService }, { type: i2.DialogService }, { type: Document, decorators: [{
230
230
  type: Inject,
231
231
  args: [DOCUMENT]
@@ -244,6 +244,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
244
244
  }], alignToTop: [{
245
245
  type: HostBinding,
246
246
  args: ['class.is-top-aligned']
247
+ }], alignToTopMargin: [{
248
+ type: HostBinding,
249
+ args: ['style.--ec-dialog-margin-align-to-top']
247
250
  }], transparentMask: [{
248
251
  type: HostBinding,
249
252
  args: ['class.is-transparent']
@@ -271,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
271
274
  type: ViewChild,
272
275
  args: ['content', { read: ViewContainerRef, static: true }]
273
276
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUEwQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFRLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUE2QixZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHL0csaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFXLEdBQUcsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBVyxHQUFHLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsR0FBRyxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFXLEdBQUcsQ0FBQztBQVc5QyxNQUFNLE9BQU8sZUFBZTtJQTJCZ0IsY0FBYyxDQUFDLEtBQWlCO1FBQ3hFLElBQWtCLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzlFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNyQztJQUNI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QUFXO3VCQUFDLGVBQWU7Z0JBRWMsY0FBYztzQkFBdkQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2IsSUFBSTtzQkFBdkIsS0FBSztnQkF1QkcsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUtXLE1BQU07c0JBQXRCLE1BQU07Z0JBS1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFLZ0UsZ0JBQWdCO3NCQUF0RixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV2luZG93U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvd2luZG93LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb250ZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGVudCc7XHJcbmltcG9ydCB7IERpYWxvZ09wZW5FbmRFdmVudCwgRGlhbG9nQ2xvc2VFdmVudCwgRGlhbG9nU2l6ZSwgRGlhbG9nT3B0aW9ucywgRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi9kaWFsb2ctdHlwZXMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG4vKiogVGhlc2UgdmFsdWVzIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggZGlhbG9nLWJhc2Uuc2NzcyAqL1xyXG5leHBvcnQgY29uc3QgRGlhbG9nT3BlbkR1cmF0aW9uOiBudW1iZXIgPSAxMjU7XHJcbmV4cG9ydCBjb25zdCBEaWFsb2dDbG9zZUR1cmF0aW9uOiBudW1iZXIgPSAxMDA7XHJcbmV4cG9ydCBjb25zdCBQYW5lbE9wZW5EdXJhdGlvbjogbnVtYmVyID0gMjUwO1xyXG5leHBvcnQgY29uc3QgUGFuZWxDbG9zZUR1cmF0aW9uOiBudW1iZXIgPSAyMjU7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWRpYWxvZycsXHJcbiAgdGVtcGxhdGU6ICc8YXJ0aWNsZSBbc3R5bGUubWluLXdpZHRoXT1cIm1pbldpZHRoXCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPjxuZy10ZW1wbGF0ZSAjY29udGVudD48L25nLXRlbXBsYXRlPjwvYXJ0aWNsZT4nLFxyXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3NdJzogJ2RpYWxvZ1NpemVDbGFzcycsXHJcbiAgICAnW3N0eWxlLi0tZWMtZGlhbG9nLXdpZHRoLnB4XSc6ICd3aWR0aCdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIEFkZC9yZW1vdmUgdGhlIGlzLW9wZW4gY3NzIGNsYXNzIHRvIHRoZSBob3N0IGVsZW1lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5lZC9jbG9zZWQuXHJcbiAgICogU3R5bGVzIHVzZSB0aGUgaXMtb3BlbiBjbGFzcyB0byBzaG93L2hpZGUgdGhlIGRpYWxvZy5cclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKSBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgZmFkZS1pbiBjc3MgY2xhc3MgdG8gdGhlIGhvc3QgZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgaXMgb3BlbmluZy4gUmVtb3ZlIHdoZW4gdHJhbnNpdGlvbiBpcyBjb21wbGV0ZS5cclxuICAgKiBTdHlsZXMgdXNlIHRoZSBmYWRlLWluIGNsYXNzIHRvIGFwcGx5IGEgZmFkZS1pbiB0cmFuc2l0aW9uIHdoaWxlIHRoZSBkaWFsb2cgaXMgb3BlbmluZy5cclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZhZGUtaW4nKSBwdWJsaWMgZmFkZUluID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgZmFkZS1vdXQgY3NzIGNsYXNzIHRvIHRoZSBob3N0IGVsZW1lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NpbmcuIFJlbW92ZSB3aGVuIHRyYW5zaXRpb24gaXMgY29tcGxldGUuXHJcbiAgICogU3R5bGVzIHVzZSB0aGUgZmFkZS1vdXQgY2xhc3MgdG8gYXBwbHkgYSBmYWRlLW91dCB0cmFuc2l0aW9uIHdoaWxlIHRoZSBkaWFsb2cgaXMgY2xvc2luZy5cclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZhZGUtb3V0JykgcHVibGljIGZhZGVPdXQgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1wYW5lbCcpIHB1YmxpYyBkaXNwbGF5QXNQYW5lbCA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXRvcC1hbGlnbmVkJykgcHVibGljIGFsaWduVG9Ub3AgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy10cmFuc3BhcmVudCcpIHB1YmxpYyB0cmFuc3BhcmVudE1hc2sgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uby1tYXNrJykgcHVibGljIG5vTWFzayA9IGZhbHNlO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIHB1YmxpYyBvbk92ZXJsYXlDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCg8SFRNTEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS50YWdOYW1lID09PSAnRUMtRElBTE9HJyAmJiB0aGlzLmRpc3BsYXlBc1BhbmVsKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UobmV3IERpYWxvZ1Jlc3VsdChmYWxzZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGRpYWxvZyAoaGVpZ2h0IGlzIGF1dG8pLiBDYW4gYmUgYSBudW1iZXIgdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBwaXhlbHMsIG9yIHhzbWFsbCgzMjBweCksIHNtYWxsKDQ4MHB4KSwgbWVkaXVtKDY0MHB4KSwgb3IgbGFyZ2UoMTAyNHB4KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2l6ZSh2YWx1ZTogRGlhbG9nU2l6ZSkge1xyXG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xyXG4gICAgLy8gSWYgdGhlIHNpemUgaXMgYSBzdHJpbmcsIHNldCB0aGUgZGlhbG9nIGNsYXNzLiBPdGhlcndpc2UsIGNsZWFyIGl0LlxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLmRpYWxvZ1NpemVDbGFzcyA9IGBkaWFsb2ctJHt2YWx1ZX1gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaWFsb2dTaXplQ2xhc3MgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IHNpemUoKTogRGlhbG9nU2l6ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGRpYWxvZyAoaGVpZ2h0IGlzIGF1dG8pLiBDYW4gYmUgYSBudW1iZXIgdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBwaXhlbHMsIG9yIHhzbWFsbCgzMjBweCksIHNtYWxsKDQ4MHB4KSwgbWVkaXVtKDY0MHB4KSwgb3IgbGFyZ2UoMTAyNHB4KVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NpemU6IERpYWxvZ1NpemUgPSAnc21hbGwnO1xyXG5cclxuICAvKipcclxuICAgKiBCb3VuZCB0byB0aGUgaG9zdC4gVGhlIGNsYXNzZXMgc2V0IHRoZSAtLWVjLWRpYWxvZy13aWR0aCB2YXJpYWJsZSB0byBvdXIgZGVmYXVsdCAnc21hbGwnLCAnbWVkaXVtJywgZXRjLiBzaXplcy5cclxuICAgKiBVbmRlZmluZWQgd2hlbiB0aGUgc2l6ZSBpcyBhIG51bWJlciwgd2hpY2ggaXMgdXNlZCBmb3IgY3VzdG9tIHNpemVzLlxyXG4gICAqL1xyXG4gIGRpYWxvZ1NpemVDbGFzcz86IHN0cmluZyA9IGBkaWFsb2ctJHt0aGlzLl9zaXplfWA7XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRlbnQ/OiBUeXBlPERpYWxvZ0NvbnRlbnQ8YW55Pj4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGNvbnRleHQ/OiBhbnk7XHJcbiAgQElucHV0KCkgb3B0aW9ucz86IERpYWxvZ09wdGlvbnM7XHJcblxyXG4gIC8qKk9ubHkgc2V0IGlmIHRoaXMgcGFydGljdWxhciBpbnN0YW5jZSBvZiBhIGRpYWxvZyBzaG91bGQgYmUgaWRlbnRpZmllZCBzZXBhcmF0ZWx5IGZyb20gb3RoZXJzLlxyXG4gICAqIElmIHByb3ZpZGVkLCB0aGlzIGlzIGVtaXR0ZWQgdG8gdGhlIGRpYWxvZyBzZXJ2aWNlIHdpdGggT3BlbkVuZCBhbmQgQ2xvc2UgZXZlbnRzLiBEaXJlY3QgdXNhZ2VcclxuICAgKiBvZiB0aGUgRGlhbG9nQ29tcG9uZW50IGZyb20gb3V0c2lkZSBhIERpYWxvZ0dyb3VwIGRvZXMgbm90IHVzdWFsbHkgcmVxdWlyZSB1c2luZyB0aGlzIHBhcmFtZXRlciBhc1xyXG4gICAqIHRoZSBkaWFsb2cgcmVmZXJlbmNlIGl0c2VsZiBmdW5jdGlvbnMgYXMgdGhlIGlkZW50aWZpZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBkaWFsb2dPcGVuU3RhcnRFdmVudElkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBkaWFsb2cgaXMgb3BlbmVkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvcGVuZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxEaWFsb2dSZXN1bHQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBvbmVudCB3aWxsIGJlIGxvYWRlZFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgY29udGVudENvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSB3aWR0aCBvZiB0aGUgZGlhbG9nIGluIHBpeGVscy4gU2V0IGJ5IGRlZmluaW5nIHRoZSBzaXplIHByb3BlcnR5XHJcbiAgICogYXMgYSBudW1iZXIgdmFsdWUuXHJcbiAgICovXHJcbiAgcHVibGljIHdpZHRoPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gbWluLXdpZHRoIG9mIHRoZSBkaWFsb2cuIE9ubHkgdGFrZXMgZWZmZWN0IGlmIHNpemUgaXMgc2V0IHRvIGR5bmFtaWMuXHJcbiAgICogTXVzdCBpbmNsdWRlIHVuaXRzLCBpLmUuIFwiMzJyZW1cIiBvciBcIjY0MHB4XCJcclxuICAgKi9cclxuICBwdWJsaWMgbWluV2lkdGg/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgcmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgb25jZSBpdCBoYXMgYmVlbiBsb2FkZWRcclxuICAgKi9cclxuICBwdWJsaWMgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPGFueT47XHJcblxyXG4gIHByaXZhdGUgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIHdpbmRvd1NlcnZpY2U6IFdpbmRvd1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50UmVmOiBEb2N1bWVudFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xyXG4gICAgICB0aGlzLm9wZW4odGhpcy5jb250ZW50LCB0aGlzLmNvbnRleHQsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vIFJlc3RvcmUgZm9jdXMgdG8gdGhlIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBkZXN0cm95ZWQuXHJcbiAgICAvLyBOZWVkIHRvIGRvIHRoaXMgaGVyZSBhbmQgbm90IGluIGNsb3NlKCkgYmVjYXVzZSBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSdzIHJlLWZvY3VzIGhhcHBlbnMgaW4gbmdPbkRlc3Ryb3kuXHJcbiAgICAvLyBUaGlzIGRvZXNuJ3Qgd29yayBmb3IgZGlhbG9nIGltcGxlbWVudGF0aW9ucyBvdXRzaWRlIG9mIHRoZSBkaWFsb2cgc2VydmljZSBiZWNhdXNlIG5nT25EZXN0cm95IGlzbid0IGNhbGxlZCB3aGVuXHJcbiAgICAvLyB0aGUgZGlhbG9nIGlzIGNsb3NlZCBpbiB0aG9zZSBjYXNlcy5cclxuICAgIGlmICh0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgYW5kIHByZXZpb3VzbHkgbG9hZGVkIGNvbnRlbnRcclxuICAgKiBMb2FkIHRoZSBjb21wb25lbnRcclxuICAgKiBTYXZlIGEgcmVmZXJlbmNlIG9mIHRoZSBsb2FkZWQgY29tcG9uZW50XHJcbiAgICogU2hvdyB0aGUgZGlhbG9nIGFuZCBmYWRlIGluXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIG9wZW48VD4oY29tcG9uZW50OiBUeXBlPERpYWxvZ0NvbnRlbnQ8VD4+IHwgVGVtcGxhdGVSZWY8YW55PiwgY29udGV4dD86IFQsIG9wdGlvbnM/OiBEaWFsb2dPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XHJcbiAgICAgIFxyXG4gICAgICAvLyBDYXB0dXJlIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50LCBhbHNvIGxvb2tpbmcgaW4gdGhlIHNoYWRvdyBkb20uIEZvY3VzIGlzIHJlc3RvcmVkIHRvIHRoaXMgZWxlbWVudCBvbmNlIHRoZSBkaWFsb2cgaXNcclxuICAgICAgLy8gZGVzdHJveWVkLiBTZWUgbmdPbkRlc3Ryb3koKS4gV2UgbmVlZCB0byBkbyB0aGlzIGhlcmUgaW4gYWRkaXRpb24gdG8gdGhlIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIGJlY2F1c2Ugc29tZXRpbWVzIHRoZSBkaWFsb2cnc1xyXG4gICAgICAvLyBjb250ZW50IGlzIGRyYXduIGFuZCBncmFicyBmb2N1cyBiZWZvcmUgdGhlIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIGlzIGFibGUgdG8gcmVhZCB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQuXHJcbiAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSA8SFRNTEVsZW1lbnQgfCBudWxsPnRoaXMuZG9jdW1lbnRSZWY/LmFjdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gPEhUTUxFbGVtZW50PmFjdGl2ZUVsZW1lbnQ/LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQgfHwgYWN0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYWxpZ25Ub1RvcCkge1xyXG4gICAgICAgICAgdGhpcy5hbGlnblRvVG9wID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmRpc3BsYXlBc1BhbmVsKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlBc1BhbmVsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudHJhbnNwYXJlbnRNYXNrID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRyYW5zcGFyZW50TWFzayAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zcGFyZW50TWFzayA9IG9wdGlvbnMudHJhbnNwYXJlbnRNYXNrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubm9NYXNrICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubm9NYXNrID0gb3B0aW9ucy5ub01hc2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5jYW5PcGVuRGlhbG9nICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGNvbnN0IGNhbk9wZW4gPSBhd2FpdCBvcHRpb25zLmNhbk9wZW5EaWFsb2coKTtcclxuICAgICAgICAgIGlmICghY2FuT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKG5ldyBEaWFsb2dSZXN1bHQoZmFsc2UpKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gc2V0IHRoZSBzaXplIGJlZm9yZSBvcGVuaW5nXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5zaXplID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB0aGlzLnNpemU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gUmVzZXQgdGhlIHdpZHRoIGlmIHRoZSBzaXplIGlzIG5vdCBhIG51bWJlci4gVGhpcyBpcyB0byBwcmV2ZW50IHRoZSB3aWR0aCBwcm9wZXJ0eSBjb25mbGljdGluZyB3aXRoIHRoZSBzaXplLlxyXG4gICAgICAgIHRoaXMud2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubWluV2lkdGggPSBvcHRpb25zPy5taW5XaWR0aDtcclxuXHJcbiAgICAgIHRoaXMuZmFkZUluID0gdHJ1ZTtcclxuICAgICAgaWYgKGNvbXBvbmVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhjb21wb25lbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMub3BlbkRpYWxvZ0NvbXBvbmVudDxUPihjb250ZXh0KTtcclxuXHJcbiAgICAgIC8vIE9uY2UgdGhlIGFuaW1hdGlvbiBpcyBjb21wbGV0ZSB3ZSBjYW4gcmVtb3ZlIHRoZSBhbmltYXRpb24gY2xhc3MgYW5kXHJcbiAgICAgIC8vIGVtaXQgdGhlIG9wZW5lZCBldmVudCwgYm90aCB0byB0aGUgaG9zdGluZyBjb21wb25lbnQgYW5kIHZpYSBEaWFsb2dTZXJ2aWNlXHJcbiAgICAgIGF3YWl0IHRpbWVyKHRoaXMuZGlzcGxheUFzUGFuZWwgPyBQYW5lbE9wZW5EdXJhdGlvbiA6IERpYWxvZ09wZW5EdXJhdGlvbikucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkaWFsb2dJZCA9IHRoaXMuZ2V0RGlhbG9nSWQoKTtcclxuICAgICAgICAgIHRoaXMuZmFkZUluID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm9wZW5lZC5lbWl0KGRpYWxvZ0lkKTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50cmlnZ2VyRXZlbnQobmV3IERpYWxvZ09wZW5FbmRFdmVudCh0aGlzLmRpYWxvZ09wZW5TdGFydEV2ZW50SWQsIGRpYWxvZ0lkKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIHRoaXMuaGFuZGxlQ2xvc2VPblJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmFkZSB0aGUgZGlhbG9nIG91dCBhbmQgaGlkZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbG9zZTxUPihyZXN1bHQ/OiBEaWFsb2dSZXN1bHQ8VD4pOiB2b2lkIHtcclxuICAgIHRoaXMuZmFkZU91dCA9IHRydWU7XHJcbiAgICBjb25zdCBkaWFsb2dJZCA9IHRoaXMuZ2V0RGlhbG9nSWQoKTsgIC8vY2FsbCBiZWZvcmUgd2lwaW5nIG91dCB0aGUgY29udGVudFxyXG5cclxuICAgIC8vIFdoZW4gdGhlIGZhZGUgb3V0IGFuaW1hdGlvbiBpcyBjb21wbGV0ZSB3ZSB3aWxsIGhpZGUgdGhlIGRpYWxvZ1xyXG4gICAgLy8gYW5kIHJlbW92ZSB0aGUgYW5pbWF0aW9uIGNsYXNzIGFzIHdlbGwgYXMgbGV0IHRoZSB3b3JsZCBrbm93IHRoYXRcclxuICAgIC8vIHdlJ3JlIGNsb3NlZCBzbyB0aGV5IGNhbiBjb21wbGV0ZSBhbnkgb3RoZXIgY2xlYW51cFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZmFkZU91dCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvbnRlbnRDb250YWluZXI/LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KHJlc3VsdCk7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50cmlnZ2VyRXZlbnQobmV3IERpYWxvZ0Nsb3NlRXZlbnQodGhpcy5kaWFsb2dPcGVuU3RhcnRFdmVudElkLCBkaWFsb2dJZCwgcmVzdWx0Py5zYXZlLCByZXN1bHQ/LmNvbnRleHQpKTtcclxuICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcclxuICAgIH0sIHRoaXMuZGlzcGxheUFzUGFuZWwgPyBQYW5lbENsb3NlRHVyYXRpb24gOiBEaWFsb2dDbG9zZUR1cmF0aW9uKVxyXG4gIH1cclxuXHJcbiAgLyoqT3BlbiB0aGUgZGlhbG9nIGFuZCBhdHRhY2ggaGFuZGxlcnMgdG8gdGhlIGNhbmNlbCBhbmQgc2F2ZSBldmVudHMgdG8gY2xvc2UgaXQgYW5kIG5vdGlmeSB0aGUgaG9zdGluZyBwYWdlICovXHJcbiAgcHJpdmF0ZSBvcGVuRGlhbG9nQ29tcG9uZW50PFQ+KGNvbnRleHQ/OiBUKSB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgJiYgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgY29uc3QgZGlhbG9nQ29udGVudCA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIERpYWxvZ0NvbnRlbnQ8VD47XHJcblxyXG4gICAgICAvLyBPbk9wZW4gaXMgb3B0aW9uYWwgLSBjcmVhdGUgZGlhbG9ncyBkb24ndCBuZWNlc3NhcmlseSBkZWZpbmUgaXRcclxuICAgICAgaWYgKGRpYWxvZ0NvbnRlbnQub25PcGVuKSB7XHJcbiAgICAgICAgZGlhbG9nQ29udGVudC5vbk9wZW4oY29udGV4dCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpYWxvZ0NvbnRlbnQub25EaWFsb2dDYW5jZWwucGlwZSh0YWtlVW50aWwodGhpcy5jbG9zZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2U8VD4obmV3IERpYWxvZ1Jlc3VsdDxUPihmYWxzZSkpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGRpYWxvZ0NvbnRlbnQub25EaWFsb2dTYXZlLnBpcGUodGFrZVVudGlsKHRoaXMuY2xvc2VkKSkuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZTxUPihuZXcgRGlhbG9nUmVzdWx0PFQ+KHRydWUsIHZhbCkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IG9wdGlvbnMgc28gdGhleSBkb24ndCBwZXJzaXN0IG5leHQgdGltZSB0aGVcclxuICAgKiByb290IGRpYWxvZyBpcyBvcGVuZWRcclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzZXRPcHRpb25zKCkge1xyXG4gICAgdGhpcy5hbGlnblRvVG9wID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpc3BsYXlBc1BhbmVsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiogSWYgdGhleSB0dXJuZWQgb24gY2xvc2VPblJlc2l6ZSwgYXV0b21hdGljYWxseSBjbG9zZSB0aGUgZGlhbG9nIGFueSB0aW1lIHNvbWVib2R5IHJlc2l6ZXMgdGhlIHdpbmRvdy5cclxuICAgICogVGhpcyBpcyB1c2VmdWwgZm9yIHJlc3BvbnNpdmUgbGF5b3V0cyB0byBwcmV2ZW50IGhhdmluZyB0aGUgZGlhbG9nQ29udGVudCBvbiB0aGUgc2NyZWVuIHR3aWNlICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVDbG9zZU9uUmVzaXplKCkge1xyXG4gICAgaWYodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5jbG9zZU9uUmVzaXplKXtcclxuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlc2l6ZWQhLnBpcGUodGFrZVVudGlsKHRoaXMuY2xvc2VkKSwgdGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsb3NlKG5ldyBEaWFsb2dSZXN1bHQoZmFsc2UpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipFeHRyYWN0IHRoZSBkaWFsb2dJZCBmcm9tIHRoZSBkaWFsb2cgY29udGVudCwgaWYgaXQgaGFzIG9uZS4gVGVtcGxhdGUtYmFzZWQgZGlhbG9ncyBnZW5lcmFsbHkgZG9uJ3QuXHJcbiAgICogV2UgZmFsbCBiYWNrIHRvIGVtcHR5IHN0cmluZyB0byBhbGxvdyBhbnlib2R5IGxpc3RlbmluZyBmb3IgZGlhbG9nRXZlbnRzIHRvIHN0aWxsIHJlY29yZCB0aGUgb3Blbi9jbG9zZSBldmVuIGlmXHJcbiAgICogdGhlIGRpYWxvZyBpdHNlbGYgZG9lcyBub3Qgc2F5IHdoYXQgdGhlIG5hbWUgaXMuIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0RGlhbG9nSWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlLmRpYWxvZ0lkIHx8ICcnO1xyXG4gIH1cclxufVxyXG4iXX0=
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUEwQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFRLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUE2QixZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHL0csaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFXLEdBQUcsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBVyxHQUFHLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsR0FBRyxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFXLEdBQUcsQ0FBQztBQVc5QyxNQUFNLE9BQU8sZUFBZTtJQTZCZ0IsY0FBYyxDQUFDLEtBQWlCO1FBQ3hFLElBQWtCLEtBQUssQ0FBQyxNQUFPLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzlFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNyQztJQUNI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RCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFFRSxNQUFNO3NCQUExQyxXQUFXO3VCQUFDLGVBQWU7Z0JBRWMsY0FBYztzQkFBdkQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2IsSUFBSTtzQkFBdkIsS0FBSztnQkF1QkcsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUtXLE1BQU07c0JBQXRCLE1BQU07Z0JBS1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFLZ0UsZ0JBQWdCO3NCQUF0RixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV2luZG93U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvd2luZG93LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb250ZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGVudCc7XHJcbmltcG9ydCB7IERpYWxvZ09wZW5FbmRFdmVudCwgRGlhbG9nQ2xvc2VFdmVudCwgRGlhbG9nU2l6ZSwgRGlhbG9nT3B0aW9ucywgRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi9kaWFsb2ctdHlwZXMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG4vKiogVGhlc2UgdmFsdWVzIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggZGlhbG9nLWJhc2Uuc2NzcyAqL1xyXG5leHBvcnQgY29uc3QgRGlhbG9nT3BlbkR1cmF0aW9uOiBudW1iZXIgPSAxMjU7XHJcbmV4cG9ydCBjb25zdCBEaWFsb2dDbG9zZUR1cmF0aW9uOiBudW1iZXIgPSAxMDA7XHJcbmV4cG9ydCBjb25zdCBQYW5lbE9wZW5EdXJhdGlvbjogbnVtYmVyID0gMjUwO1xyXG5leHBvcnQgY29uc3QgUGFuZWxDbG9zZUR1cmF0aW9uOiBudW1iZXIgPSAyMjU7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWRpYWxvZycsXHJcbiAgdGVtcGxhdGU6ICc8YXJ0aWNsZSBbc3R5bGUubWluLXdpZHRoXT1cIm1pbldpZHRoXCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPjxuZy10ZW1wbGF0ZSAjY29udGVudD48L25nLXRlbXBsYXRlPjwvYXJ0aWNsZT4nLFxyXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3NdJzogJ2RpYWxvZ1NpemVDbGFzcycsXHJcbiAgICAnW3N0eWxlLi0tZWMtZGlhbG9nLXdpZHRoLnB4XSc6ICd3aWR0aCdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIEFkZC9yZW1vdmUgdGhlIGlzLW9wZW4gY3NzIGNsYXNzIHRvIHRoZSBob3N0IGVsZW1lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5lZC9jbG9zZWQuXHJcbiAgICogU3R5bGVzIHVzZSB0aGUgaXMtb3BlbiBjbGFzcyB0byBzaG93L2hpZGUgdGhlIGRpYWxvZy5cclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKSBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgZmFkZS1pbiBjc3MgY2xhc3MgdG8gdGhlIGhvc3QgZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgaXMgb3BlbmluZy4gUmVtb3ZlIHdoZW4gdHJhbnNpdGlvbiBpcyBjb21wbGV0ZS5cclxuICAgKiBTdHlsZXMgdXNlIHRoZSBmYWRlLWluIGNsYXNzIHRvIGFwcGx5IGEgZmFkZS1pbiB0cmFuc2l0aW9uIHdoaWxlIHRoZSBkaWFsb2cgaXMgb3BlbmluZy5cclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZhZGUtaW4nKSBwdWJsaWMgZmFkZUluID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgZmFkZS1vdXQgY3NzIGNsYXNzIHRvIHRoZSBob3N0IGVsZW1lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NpbmcuIFJlbW92ZSB3aGVuIHRyYW5zaXRpb24gaXMgY29tcGxldGUuXHJcbiAgICogU3R5bGVzIHVzZSB0aGUgZmFkZS1vdXQgY2xhc3MgdG8gYXBwbHkgYSBmYWRlLW91dCB0cmFuc2l0aW9uIHdoaWxlIHRoZSBkaWFsb2cgaXMgY2xvc2luZy5cclxuICAgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZhZGUtb3V0JykgcHVibGljIGZhZGVPdXQgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1wYW5lbCcpIHB1YmxpYyBkaXNwbGF5QXNQYW5lbCA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXRvcC1hbGlnbmVkJykgcHVibGljIGFsaWduVG9Ub3AgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWVjLWRpYWxvZy1tYXJnaW4tYWxpZ24tdG8tdG9wJykgcHVibGljIGFsaWduVG9Ub3BNYXJnaW4/OiBzdHJpbmc7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtdHJhbnNwYXJlbnQnKSBwdWJsaWMgdHJhbnNwYXJlbnRNYXNrID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Mubm8tbWFzaycpIHB1YmxpYyBub01hc2sgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBwdWJsaWMgb25PdmVybGF5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICgoPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkudGFnTmFtZSA9PT0gJ0VDLURJQUxPRycgJiYgdGhpcy5kaXNwbGF5QXNQYW5lbCkge1xyXG4gICAgICB0aGlzLmNsb3NlKG5ldyBEaWFsb2dSZXN1bHQoZmFsc2UpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2cgKGhlaWdodCBpcyBhdXRvKS4gQ2FuIGJlIGEgbnVtYmVyIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gcGl4ZWxzLCBvciB4c21hbGwoMzIwcHgpLCBzbWFsbCg0ODBweCksIG1lZGl1bSg2NDBweCksIG9yIGxhcmdlKDEwMjRweClcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNpemUodmFsdWU6IERpYWxvZ1NpemUpIHtcclxuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcclxuICAgIC8vIElmIHRoZSBzaXplIGlzIGEgc3RyaW5nLCBzZXQgdGhlIGRpYWxvZyBjbGFzcy4gT3RoZXJ3aXNlLCBjbGVhciBpdC5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5kaWFsb2dTaXplQ2xhc3MgPSBgZGlhbG9nLSR7dmFsdWV9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2l6ZUNsYXNzID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgcHVibGljIGdldCBzaXplKCk6IERpYWxvZ1NpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2cgKGhlaWdodCBpcyBhdXRvKS4gQ2FuIGJlIGEgbnVtYmVyIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gcGl4ZWxzLCBvciB4c21hbGwoMzIwcHgpLCBzbWFsbCg0ODBweCksIG1lZGl1bSg2NDBweCksIG9yIGxhcmdlKDEwMjRweClcclxuICAgKi9cclxuICBwcml2YXRlIF9zaXplOiBEaWFsb2dTaXplID0gJ3NtYWxsJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm91bmQgdG8gdGhlIGhvc3QuIFRoZSBjbGFzc2VzIHNldCB0aGUgLS1lYy1kaWFsb2ctd2lkdGggdmFyaWFibGUgdG8gb3VyIGRlZmF1bHQgJ3NtYWxsJywgJ21lZGl1bScsIGV0Yy4gc2l6ZXMuXHJcbiAgICogVW5kZWZpbmVkIHdoZW4gdGhlIHNpemUgaXMgYSBudW1iZXIsIHdoaWNoIGlzIHVzZWQgZm9yIGN1c3RvbSBzaXplcy5cclxuICAgKi9cclxuICBkaWFsb2dTaXplQ2xhc3M/OiBzdHJpbmcgPSBgZGlhbG9nLSR7dGhpcy5fc2l6ZX1gO1xyXG5cclxuICBASW5wdXQoKSBjb250ZW50PzogVHlwZTxEaWFsb2dDb250ZW50PGFueT4+IHwgVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBjb250ZXh0PzogYW55O1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBEaWFsb2dPcHRpb25zO1xyXG5cclxuICAvKipPbmx5IHNldCBpZiB0aGlzIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYSBkaWFsb2cgc2hvdWxkIGJlIGlkZW50aWZpZWQgc2VwYXJhdGVseSBmcm9tIG90aGVycy5cclxuICAgKiBJZiBwcm92aWRlZCwgdGhpcyBpcyBlbWl0dGVkIHRvIHRoZSBkaWFsb2cgc2VydmljZSB3aXRoIE9wZW5FbmQgYW5kIENsb3NlIGV2ZW50cy4gRGlyZWN0IHVzYWdlXHJcbiAgICogb2YgdGhlIERpYWxvZ0NvbXBvbmVudCBmcm9tIG91dHNpZGUgYSBEaWFsb2dHcm91cCBkb2VzIG5vdCB1c3VhbGx5IHJlcXVpcmUgdXNpbmcgdGhpcyBwYXJhbWV0ZXIgYXNcclxuICAgKiB0aGUgZGlhbG9nIHJlZmVyZW5jZSBpdHNlbGYgZnVuY3Rpb25zIGFzIHRoZSBpZGVudGlmaWVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlhbG9nT3BlblN0YXJ0RXZlbnRJZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5lZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb3BlbmVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2VkOiBFdmVudEVtaXR0ZXI8RGlhbG9nUmVzdWx0PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgY29udGFpbmVyIHdoZXJlIHRoZSBjb21wb25lbnQgd2lsbCBiZSBsb2FkZWRcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdjb250ZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIGNvbnRlbnRDb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gd2lkdGggb2YgdGhlIGRpYWxvZyBpbiBwaXhlbHMuIFNldCBieSBkZWZpbmluZyB0aGUgc2l6ZSBwcm9wZXJ0eVxyXG4gICAqIGFzIGEgbnVtYmVyIHZhbHVlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB3aWR0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIG1pbi13aWR0aCBvZiB0aGUgZGlhbG9nLiBPbmx5IHRha2VzIGVmZmVjdCBpZiBzaXplIGlzIHNldCB0byBkeW5hbWljLlxyXG4gICAqIE11c3QgaW5jbHVkZSB1bml0cywgaS5lLiBcIjMycmVtXCIgb3IgXCI2NDBweFwiXHJcbiAgICovXHJcbiAgcHVibGljIG1pbldpZHRoPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBBIHJlZmVyZW5jZSBvZiB0aGUgY29tcG9uZW50IG9uY2UgaXQgaGFzIGJlZW4gbG9hZGVkXHJcbiAgICovXHJcbiAgcHVibGljIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuICBwcml2YXRlIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudFJlZjogRG9jdW1lbnRcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcclxuICAgICAgdGhpcy5vcGVuKHRoaXMuY29udGVudCwgdGhpcy5jb250ZXh0LCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQgZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgaXMgZGVzdHJveWVkLlxyXG4gICAgLy8gTmVlZCB0byBkbyB0aGlzIGhlcmUgYW5kIG5vdCBpbiBjbG9zZSgpIGJlY2F1c2UgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUncyByZS1mb2N1cyBoYXBwZW5zIGluIG5nT25EZXN0cm95LlxyXG4gICAgLy8gVGhpcyBkb2Vzbid0IHdvcmsgZm9yIGRpYWxvZyBpbXBsZW1lbnRhdGlvbnMgb3V0c2lkZSBvZiB0aGUgZGlhbG9nIHNlcnZpY2UgYmVjYXVzZSBuZ09uRGVzdHJveSBpc24ndCBjYWxsZWQgd2hlblxyXG4gICAgLy8gdGhlIGRpYWxvZyBpcyBjbG9zZWQgaW4gdGhvc2UgY2FzZXMuXHJcbiAgICBpZiAodGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGFuZCBwcmV2aW91c2x5IGxvYWRlZCBjb250ZW50XHJcbiAgICogTG9hZCB0aGUgY29tcG9uZW50XHJcbiAgICogU2F2ZSBhIHJlZmVyZW5jZSBvZiB0aGUgbG9hZGVkIGNvbXBvbmVudFxyXG4gICAqIFNob3cgdGhlIGRpYWxvZyBhbmQgZmFkZSBpblxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBvcGVuPFQ+KGNvbXBvbmVudDogVHlwZTxEaWFsb2dDb250ZW50PFQ+PiB8IFRlbXBsYXRlUmVmPGFueT4sIGNvbnRleHQ/OiBULCBvcHRpb25zPzogRGlhbG9nT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICBcclxuICAgICAgLy8gQ2FwdHVyZSB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCwgYWxzbyBsb29raW5nIGluIHRoZSBzaGFkb3cgZG9tLiBGb2N1cyBpcyByZXN0b3JlZCB0byB0aGlzIGVsZW1lbnQgb25jZSB0aGUgZGlhbG9nIGlzXHJcbiAgICAgIC8vIGRlc3Ryb3llZC4gU2VlIG5nT25EZXN0cm95KCkuIFdlIG5lZWQgdG8gZG8gdGhpcyBoZXJlIGluIGFkZGl0aW9uIHRvIHRoZSBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSBiZWNhdXNlIHNvbWV0aW1lcyB0aGUgZGlhbG9nJ3NcclxuICAgICAgLy8gY29udGVudCBpcyBkcmF3biBhbmQgZ3JhYnMgZm9jdXMgYmVmb3JlIHRoZSBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSBpcyBhYmxlIHRvIHJlYWQgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50LlxyXG4gICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gPEhUTUxFbGVtZW50IHwgbnVsbD50aGlzLmRvY3VtZW50UmVmPy5hY3RpdmVFbGVtZW50O1xyXG4gICAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IDxIVE1MRWxlbWVudD5hY3RpdmVFbGVtZW50Py5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IHx8IGFjdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgIGlmIChvcHRpb25zLmFsaWduVG9Ub3ApIHtcclxuICAgICAgICAgIHRoaXMuYWxpZ25Ub1RvcCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5kaXNwbGF5QXNQYW5lbCkge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5QXNQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zcGFyZW50TWFzayA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy50cmFuc3BhcmVudE1hc2sgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy50cmFuc3BhcmVudE1hc2sgPSBvcHRpb25zLnRyYW5zcGFyZW50TWFzaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm5vTWFzayAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLm5vTWFzayA9IG9wdGlvbnMubm9NYXNrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuY2FuT3BlbkRpYWxvZyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBjYW5PcGVuID0gYXdhaXQgb3B0aW9ucy5jYW5PcGVuRGlhbG9nKCk7XHJcbiAgICAgICAgICBpZiAoIWNhbk9wZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZShuZXcgRGlhbG9nUmVzdWx0KGZhbHNlKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHNldCB0aGUgc2l6ZSBiZWZvcmUgb3BlbmluZ1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuc2l6ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICB0aGlzLndpZHRoID0gdGhpcy5zaXplO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFJlc2V0IHRoZSB3aWR0aCBpZiB0aGUgc2l6ZSBpcyBub3QgYSBudW1iZXIuIFRoaXMgaXMgdG8gcHJldmVudCB0aGUgd2lkdGggcHJvcGVydHkgY29uZmxpY3Rpbmcgd2l0aCB0aGUgc2l6ZS5cclxuICAgICAgICB0aGlzLndpZHRoID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm1pbldpZHRoID0gb3B0aW9ucz8ubWluV2lkdGg7XHJcblxyXG4gICAgICB0aGlzLmZhZGVJbiA9IHRydWU7XHJcbiAgICAgIGlmIChjb21wb25lbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xyXG4gICAgICAgIHRoaXMuY29udGVudENvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoY29tcG9uZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRlbnRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLm9wZW5EaWFsb2dDb21wb25lbnQ8VD4oY29udGV4dCk7XHJcblxyXG4gICAgICAvLyBPbmNlIHRoZSBhbmltYXRpb24gaXMgY29tcGxldGUgd2UgY2FuIHJlbW92ZSB0aGUgYW5pbWF0aW9uIGNsYXNzIGFuZFxyXG4gICAgICAvLyBlbWl0IHRoZSBvcGVuZWQgZXZlbnQsIGJvdGggdG8gdGhlIGhvc3RpbmcgY29tcG9uZW50IGFuZCB2aWEgRGlhbG9nU2VydmljZVxyXG4gICAgICBhd2FpdCB0aW1lcih0aGlzLmRpc3BsYXlBc1BhbmVsID8gUGFuZWxPcGVuRHVyYXRpb24gOiBEaWFsb2dPcGVuRHVyYXRpb24pLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZGlhbG9nSWQgPSB0aGlzLmdldERpYWxvZ0lkKCk7XHJcbiAgICAgICAgICB0aGlzLmZhZGVJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5vcGVuZWQuZW1pdChkaWFsb2dJZCk7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudHJpZ2dlckV2ZW50KG5ldyBEaWFsb2dPcGVuRW5kRXZlbnQodGhpcy5kaWFsb2dPcGVuU3RhcnRFdmVudElkLCBkaWFsb2dJZCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgICB0aGlzLmhhbmRsZUNsb3NlT25SZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZhZGUgdGhlIGRpYWxvZyBvdXQgYW5kIGhpZGVcclxuICAgKi9cclxuICBwdWJsaWMgY2xvc2U8VD4ocmVzdWx0PzogRGlhbG9nUmVzdWx0PFQ+KTogdm9pZCB7XHJcbiAgICB0aGlzLmZhZGVPdXQgPSB0cnVlO1xyXG4gICAgY29uc3QgZGlhbG9nSWQgPSB0aGlzLmdldERpYWxvZ0lkKCk7ICAvL2NhbGwgYmVmb3JlIHdpcGluZyBvdXQgdGhlIGNvbnRlbnRcclxuXHJcbiAgICAvLyBXaGVuIHRoZSBmYWRlIG91dCBhbmltYXRpb24gaXMgY29tcGxldGUgd2Ugd2lsbCBoaWRlIHRoZSBkaWFsb2dcclxuICAgIC8vIGFuZCByZW1vdmUgdGhlIGFuaW1hdGlvbiBjbGFzcyBhcyB3ZWxsIGFzIGxldCB0aGUgd29ybGQga25vdyB0aGF0XHJcbiAgICAvLyB3ZSdyZSBjbG9zZWQgc28gdGhleSBjYW4gY29tcGxldGUgYW55IG90aGVyIGNsZWFudXBcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZhZGVPdXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyPy5jbGVhcigpO1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5jbG9zZWQuZW1pdChyZXN1bHQpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudHJpZ2dlckV2ZW50KG5ldyBEaWFsb2dDbG9zZUV2ZW50KHRoaXMuZGlhbG9nT3BlblN0YXJ0RXZlbnRJZCwgZGlhbG9nSWQsIHJlc3VsdD8uc2F2ZSwgcmVzdWx0Py5jb250ZXh0KSk7XHJcbiAgICAgIHRoaXMucmVzZXRPcHRpb25zKCk7XHJcbiAgICB9LCB0aGlzLmRpc3BsYXlBc1BhbmVsID8gUGFuZWxDbG9zZUR1cmF0aW9uIDogRGlhbG9nQ2xvc2VEdXJhdGlvbilcclxuICB9XHJcblxyXG4gIC8qKk9wZW4gdGhlIGRpYWxvZyBhbmQgYXR0YWNoIGhhbmRsZXJzIHRvIHRoZSBjYW5jZWwgYW5kIHNhdmUgZXZlbnRzIHRvIGNsb3NlIGl0IGFuZCBub3RpZnkgdGhlIGhvc3RpbmcgcGFnZSAqL1xyXG4gIHByaXZhdGUgb3BlbkRpYWxvZ0NvbXBvbmVudDxUPihjb250ZXh0PzogVCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbnRlbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBEaWFsb2dDb250ZW50PFQ+O1xyXG5cclxuICAgICAgLy8gT25PcGVuIGlzIG9wdGlvbmFsIC0gY3JlYXRlIGRpYWxvZ3MgZG9uJ3QgbmVjZXNzYXJpbHkgZGVmaW5lIGl0XHJcbiAgICAgIGlmIChkaWFsb2dDb250ZW50Lm9uT3Blbikge1xyXG4gICAgICAgIGRpYWxvZ0NvbnRlbnQub25PcGVuKGNvbnRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkaWFsb2dDb250ZW50Lm9uRGlhbG9nQ2FuY2VsLnBpcGUodGFrZVVudGlsKHRoaXMuY2xvc2VkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsb3NlPFQ+KG5ldyBEaWFsb2dSZXN1bHQ8VD4oZmFsc2UpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkaWFsb2dDb250ZW50Lm9uRGlhbG9nU2F2ZS5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCkpLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2U8VD4obmV3IERpYWxvZ1Jlc3VsdDxUPih0cnVlLCB2YWwpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBvcHRpb25zIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCBuZXh0IHRpbWUgdGhlXHJcbiAgICogcm9vdCBkaWFsb2cgaXMgb3BlbmVkXHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2V0T3B0aW9ucygpIHtcclxuICAgIHRoaXMuYWxpZ25Ub1RvcCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNwbGF5QXNQYW5lbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIElmIHRoZXkgdHVybmVkIG9uIGNsb3NlT25SZXNpemUsIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIGRpYWxvZyBhbnkgdGltZSBzb21lYm9keSByZXNpemVzIHRoZSB3aW5kb3cuXHJcbiAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciByZXNwb25zaXZlIGxheW91dHMgdG8gcHJldmVudCBoYXZpbmcgdGhlIGRpYWxvZ0NvbnRlbnQgb24gdGhlIHNjcmVlbiB0d2ljZSAqL1xyXG4gIHByaXZhdGUgaGFuZGxlQ2xvc2VPblJlc2l6ZSgpIHtcclxuICAgIGlmKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuY2xvc2VPblJlc2l6ZSl7XHJcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5yZXNpemVkIS5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCksIHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZShuZXcgRGlhbG9nUmVzdWx0KGZhbHNlKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqRXh0cmFjdCB0aGUgZGlhbG9nSWQgZnJvbSB0aGUgZGlhbG9nIGNvbnRlbnQsIGlmIGl0IGhhcyBvbmUuIFRlbXBsYXRlLWJhc2VkIGRpYWxvZ3MgZ2VuZXJhbGx5IGRvbid0LlxyXG4gICAqIFdlIGZhbGwgYmFjayB0byBlbXB0eSBzdHJpbmcgdG8gYWxsb3cgYW55Ym9keSBsaXN0ZW5pbmcgZm9yIGRpYWxvZ0V2ZW50cyB0byBzdGlsbCByZWNvcmQgdGhlIG9wZW4vY2xvc2UgZXZlbiBpZlxyXG4gICAqIHRoZSBkaWFsb2cgaXRzZWxmIGRvZXMgbm90IHNheSB3aGF0IHRoZSBuYW1lIGlzLiBcclxuICAgKi9cclxuICBwcml2YXRlIGdldERpYWxvZ0lkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZS5kaWFsb2dJZCB8fCAnJztcclxuICB9XHJcbn1cclxuIl19
@@ -5480,13 +5480,13 @@ class DialogComponent {
5480
5480
  }
5481
5481
  }
5482
5482
  DialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: WindowService }, { token: DialogService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
5483
- DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DialogComponent, selector: "ec-dialog", inputs: { size: "size", content: "content", context: "context", options: "options", dialogOpenStartEventId: "dialogOpenStartEventId" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "onOverlayClick($event)" }, properties: { "class": "dialogSizeClass", "style.--ec-dialog-width.px": "width", "class.is-open": "this.isOpen", "class.fade-in": "this.fadeIn", "class.fade-out": "this.fadeOut", "class.is-panel": "this.displayAsPanel", "class.is-top-aligned": "this.alignToTop", "class.is-transparent": "this.transparentMask", "class.no-mask": "this.noMask" } }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', isInline: true, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:20vh;max-height:75vh}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
5483
+ DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DialogComponent, selector: "ec-dialog", inputs: { size: "size", content: "content", context: "context", options: "options", dialogOpenStartEventId: "dialogOpenStartEventId" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "onOverlayClick($event)" }, properties: { "class": "dialogSizeClass", "style.--ec-dialog-width.px": "width", "class.is-open": "this.isOpen", "class.fade-in": "this.fadeIn", "class.fade-out": "this.fadeOut", "class.is-panel": "this.displayAsPanel", "class.is-top-aligned": "this.alignToTop", "style.--ec-dialog-margin-align-to-top": "this.alignToTopMargin", "class.is-transparent": "this.transparentMask", "class.no-mask": "this.noMask" } }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', isInline: true, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
5484
5484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DialogComponent, decorators: [{
5485
5485
  type: Component,
5486
5486
  args: [{ selector: 'ec-dialog', template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', host: {
5487
5487
  '[class]': 'dialogSizeClass',
5488
5488
  '[style.--ec-dialog-width.px]': 'width'
5489
- }, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:20vh;max-height:75vh}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"] }]
5489
+ }, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"] }]
5490
5490
  }], ctorParameters: function () {
5491
5491
  return [{ type: i0.ComponentFactoryResolver }, { type: WindowService }, { type: DialogService }, { type: Document, decorators: [{
5492
5492
  type: Inject,
@@ -5507,6 +5507,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5507
5507
  }], alignToTop: [{
5508
5508
  type: HostBinding,
5509
5509
  args: ['class.is-top-aligned']
5510
+ }], alignToTopMargin: [{
5511
+ type: HostBinding,
5512
+ args: ['style.--ec-dialog-margin-align-to-top']
5510
5513
  }], transparentMask: [{
5511
5514
  type: HostBinding,
5512
5515
  args: ['class.is-transparent']