@agnos-ui/angular
Version:
Bootstrap-based widget library for Angular.
441 lines • 46.7 kB
JavaScript
import { __decorate } from "tslib";
import { BaseWidgetDirective, CachedProperty, ComponentTemplate, SlotDefaultDirective, SlotDirective, UseDirective, auBooleanAttribute, callWidgetFactory, createModal, mergeDirectives, } from '@agnos-ui/angular-headless';
import { writable } from '@amadeus-it-group/tansu';
import { ChangeDetectionStrategy, Component, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, ViewChild, inject, } from '@angular/core';
import * as i0 from "@angular/core";
const _c0 = ["header"];
const _c1 = ["structure"];
function ModalDefaultSlotsComponent_ng_template_0_ng_template_1_Template(rf, ctx) { }
function ModalDefaultSlotsComponent_ng_template_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
const _r10 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "button", 7);
i0.ɵɵlistener("click", function ModalDefaultSlotsComponent_ng_template_0_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const widget_r5 = i0.ɵɵnextContext().widget; return i0.ɵɵresetView(widget_r5.actions.closeButtonClick($event)); });
i0.ɵɵelementEnd();
} if (rf & 2) {
const state_r4 = i0.ɵɵnextContext().state;
i0.ɵɵattribute("aria-label", state_r4.ariaCloseButtonLabel);
} }
const _c2 = (a0, a1) => ({ state: a0, widget: a1 });
function ModalDefaultSlotsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "h5", 4);
i0.ɵɵtemplate(1, ModalDefaultSlotsComponent_ng_template_0_ng_template_1_Template, 0, 0, "ng-template", 5);
i0.ɵɵelementEnd();
i0.ɵɵtemplate(2, ModalDefaultSlotsComponent_ng_template_0_Conditional_2_Template, 1, 1, "button", 6);
} if (rf & 2) {
const state_r4 = ctx.state;
const widget_r5 = ctx.widget;
i0.ɵɵadvance();
i0.ɵɵproperty("auSlot", state_r4.slotTitle)("auSlotProps", i0.ɵɵpureFunction2(3, _c2, state_r4, widget_r5));
i0.ɵɵadvance();
i0.ɵɵconditional(2, state_r4.closeButton ? 2 : -1);
} }
function ModalDefaultSlotsComponent_ng_template_2_Conditional_0_ng_template_1_Template(rf, ctx) { }
function ModalDefaultSlotsComponent_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 11);
i0.ɵɵtemplate(1, ModalDefaultSlotsComponent_ng_template_2_Conditional_0_ng_template_1_Template, 0, 0, "ng-template", 5);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r18 = i0.ɵɵnextContext();
const state_r12 = ctx_r18.state;
const widget_r13 = ctx_r18.widget;
i0.ɵɵadvance();
i0.ɵɵproperty("auSlot", state_r12.slotHeader)("auSlotProps", i0.ɵɵpureFunction2(2, _c2, state_r12, widget_r13));
} }
function ModalDefaultSlotsComponent_ng_template_2_ng_template_2_Template(rf, ctx) { }
function ModalDefaultSlotsComponent_ng_template_2_Conditional_3_ng_template_1_Template(rf, ctx) { }
function ModalDefaultSlotsComponent_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 12);
i0.ɵɵtemplate(1, ModalDefaultSlotsComponent_ng_template_2_Conditional_3_ng_template_1_Template, 0, 0, "ng-template", 5);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r20 = i0.ɵɵnextContext();
const state_r12 = ctx_r20.state;
const widget_r13 = ctx_r20.widget;
i0.ɵɵadvance();
i0.ɵɵproperty("auSlot", state_r12.slotFooter)("auSlotProps", i0.ɵɵpureFunction2(2, _c2, state_r12, widget_r13));
} }
function ModalDefaultSlotsComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, ModalDefaultSlotsComponent_ng_template_2_Conditional_0_Template, 2, 5, "div", 8);
i0.ɵɵelementStart(1, "div", 9);
i0.ɵɵtemplate(2, ModalDefaultSlotsComponent_ng_template_2_ng_template_2_Template, 0, 0, "ng-template", 5);
i0.ɵɵelementEnd();
i0.ɵɵtemplate(3, ModalDefaultSlotsComponent_ng_template_2_Conditional_3_Template, 2, 5, "div", 10);
} if (rf & 2) {
const state_r12 = ctx.state;
const widget_r13 = ctx.widget;
i0.ɵɵconditional(0, state_r12.slotTitle ? 0 : -1);
i0.ɵɵadvance(2);
i0.ɵɵproperty("auSlot", state_r12.slotDefault)("auSlotProps", i0.ɵɵpureFunction2(4, _c2, state_r12, widget_r13));
i0.ɵɵadvance();
i0.ɵɵconditional(3, state_r12.slotFooter ? 3 : -1);
} }
const _c3 = ["auModal", ""];
function ModalComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵprojection(0);
} }
function ModalComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "div", 2);
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵclassMapInterpolate1("modal-backdrop ", ctx_r1.state().backdropClass, "");
i0.ɵɵproperty("auUse", ctx_r1.backdropDirective);
} }
function ModalComponent_Conditional_2_ng_template_3_Template(rf, ctx) { }
function ModalComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
const _r5 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 3);
i0.ɵɵlistener("click", function ModalComponent_Conditional_2_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.widget.actions.modalClick($event)); });
i0.ɵɵelementStart(1, "div", 4)(2, "div", 5);
i0.ɵɵtemplate(3, ModalComponent_Conditional_2_ng_template_3_Template, 0, 0, "ng-template", 6);
i0.ɵɵelementEnd()()();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵclassMapInterpolate1("modal d-block ", ctx_r2.state().className, "");
i0.ɵɵproperty("auUse", ctx_r2.modalDirective);
i0.ɵɵadvance(3);
i0.ɵɵproperty("auSlot", ctx_r2.state().slotStructure)("auSlotProps", i0.ɵɵpureFunction2(6, _c2, ctx_r2.state(), ctx_r2.widget));
} }
const _c4 = ["*"];
/**
* Directive to provide the slot structure for the modal widget.
*/
export class ModalStructureDirective {
constructor() {
this.templateRef = inject((TemplateRef));
}
static ngTemplateContextGuard(dir, context) {
return true;
}
static { this.ɵfac = function ModalStructureDirective_Factory(t) { return new (t || ModalStructureDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalStructureDirective, selectors: [["ng-template", "auModalStructure", ""]], standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalStructureDirective, [{
type: Directive,
args: [{ selector: 'ng-template[auModalStructure]', standalone: true }]
}], null, null); })();
/**
* Directive to provide the slot header for the modal widget.
*/
export class ModalHeaderDirective {
constructor() {
this.templateRef = inject((TemplateRef));
}
static ngTemplateContextGuard(_dir, context) {
return true;
}
static { this.ɵfac = function ModalHeaderDirective_Factory(t) { return new (t || ModalHeaderDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalHeaderDirective, selectors: [["ng-template", "auModalHeader", ""]], standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalHeaderDirective, [{
type: Directive,
args: [{ selector: 'ng-template[auModalHeader]', standalone: true }]
}], null, null); })();
/**
* Directive to provide the slot title for the modal widget.
*/
export class ModalTitleDirective {
constructor() {
this.templateRef = inject((TemplateRef));
}
static ngTemplateContextGuard(_dir, context) {
return true;
}
static { this.ɵfac = function ModalTitleDirective_Factory(t) { return new (t || ModalTitleDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalTitleDirective, selectors: [["ng-template", "auModalTitle", ""]], standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalTitleDirective, [{
type: Directive,
args: [{ selector: 'ng-template[auModalTitle]', standalone: true }]
}], null, null); })();
/**
* Directive to provide the default slot for the modal widget.
*/
export class ModalBodyDirective {
constructor() {
this.templateRef = inject((TemplateRef));
}
static ngTemplateContextGuard(_dir, context) {
return true;
}
static { this.ɵfac = function ModalBodyDirective_Factory(t) { return new (t || ModalBodyDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalBodyDirective, selectors: [["ng-template", "auModalBody", ""]], standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalBodyDirective, [{
type: Directive,
args: [{ selector: 'ng-template[auModalBody]', standalone: true }]
}], null, null); })();
/**
* Directive to provide the slot footer for the modal widget.
*/
export class ModalFooterDirective {
constructor() {
this.templateRef = inject((TemplateRef));
}
static ngTemplateContextGuard(_dir, context) {
return true;
}
static { this.ɵfac = function ModalFooterDirective_Factory(t) { return new (t || ModalFooterDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalFooterDirective, selectors: [["ng-template", "auModalFooter", ""]], standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalFooterDirective, [{
type: Directive,
args: [{ selector: 'ng-template[auModalFooter]', standalone: true }]
}], null, null); })();
/**
* Component containing the default slots for the modal.
*/
export class ModalDefaultSlotsComponent {
static { this.ɵfac = function ModalDefaultSlotsComponent_Factory(t) { return new (t || ModalDefaultSlotsComponent)(); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ModalDefaultSlotsComponent, selectors: [["ng-component"]], viewQuery: function ModalDefaultSlotsComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 7);
i0.ɵɵviewQuery(_c1, 7);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.header = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.structure = _t.first);
} }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["auModalHeader", ""], ["header", ""], ["auModalStructure", ""], ["structure", ""], [1, "modal-title"], [3, "auSlot", "auSlotProps"], ["type", "button", "class", "btn-close"], ["type", "button", 1, "btn-close", 3, "click"], ["class", "modal-header"], [1, "modal-body"], ["class", "modal-footer"], [1, "modal-header"], [1, "modal-footer"]], template: function ModalDefaultSlotsComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, ModalDefaultSlotsComponent_ng_template_0_Template, 3, 6, "ng-template", 0, 1, i0.ɵɵtemplateRefExtractor)(2, ModalDefaultSlotsComponent_ng_template_2_Template, 4, 7, "ng-template", 2, 3, i0.ɵɵtemplateRefExtractor);
} }, dependencies: [SlotDirective, ModalHeaderDirective, ModalStructureDirective], encapsulation: 2, changeDetection: 0 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalDefaultSlotsComponent, [{
type: Component,
args: [{
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [SlotDirective, ModalHeaderDirective, ModalStructureDirective],
template: `
<ng-template auModalHeader #header let-state="state" let-widget="widget">
<h5 class="modal-title">
<ng-template [auSlot]="state.slotTitle" [auSlotProps]="{state, widget}"></ng-template>
</h5>
(state.closeButton) {
<button
type="button"
class="btn-close"
[attr.aria-label]="state.ariaCloseButtonLabel"
(click)="widget.actions.closeButtonClick($event)"
></button>
}
</ng-template>
<ng-template auModalStructure #structure let-state="state" let-widget="widget">
(state.slotTitle) {
<div class="modal-header">
<ng-template [auSlot]="state.slotHeader" [auSlotProps]="{state, widget}"></ng-template>
</div>
}
<div class="modal-body">
<ng-template [auSlot]="state.slotDefault" [auSlotProps]="{state, widget}"></ng-template>
</div>
(state.slotFooter) {
<div class="modal-footer">
<ng-template [auSlot]="state.slotFooter" [auSlotProps]="{state, widget}"></ng-template>
</div>
}
</ng-template>
`,
}]
}], null, { header: [{
type: ViewChild,
args: ['header', { static: true }]
}], structure: [{
type: ViewChild,
args: ['structure', { static: true }]
}] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModalDefaultSlotsComponent, { className: "ModalDefaultSlotsComponent", filePath: "components/modal/modal.component.ts", lineNumber: 122 }); })();
/**
* Default slot for modal header.
*/
export const modalDefaultSlotHeader = new ComponentTemplate(ModalDefaultSlotsComponent, 'header');
/**
* Default slot for modal structure.
*/
export const modalDefaultSlotStructure = new ComponentTemplate(ModalDefaultSlotsComponent, 'structure');
const defaultConfig = {
slotHeader: modalDefaultSlotHeader,
slotStructure: modalDefaultSlotStructure,
};
/**
* Modal component.
*/
export class ModalComponent extends BaseWidgetDirective {
constructor() {
super(...arguments);
/**
* Event to be triggered when the visible property changes.
*/
this.visibleChange = new EventEmitter();
/**
* Event to be triggered when the modal is about to be closed (i.e. the close method was called).
*/
this.beforeClose = new EventEmitter();
/**
* Event to be triggered when the transition is completed and the modal is not visible.
*/
this.hidden = new EventEmitter();
/**
* Event to be triggered when the transition is completed and the modal is visible.
*/
this.shown = new EventEmitter();
this.defaultSlots = writable(defaultConfig);
this._widget = callWidgetFactory({
factory: createModal,
widgetName: 'modal',
defaultConfig: this.defaultSlots,
events: {
onShown: () => this.shown.emit(),
onHidden: () => this.hidden.emit(),
onBeforeClose: (event) => this.beforeClose.emit(event),
onVisibleChange: (event) => this.visibleChange.emit(event),
},
});
}
get modalDirective() {
return mergeDirectives(this._widget.directives.modalPortalDirective, this._widget.directives.modalDirective);
}
get backdropDirective() {
return mergeDirectives(this._widget.directives.backdropPortalDirective, this._widget.directives.backdropDirective);
}
ngAfterContentChecked() {
this._widget.patchSlots({
slotDefault: this.slotDefaultFromContent?.templateRef,
slotFooter: this.slotFooterFromContent?.templateRef,
slotHeader: this.slotHeaderFromContent?.templateRef,
slotStructure: this.slotStructureFromContent?.templateRef,
slotTitle: this.slotTitleFromContent?.templateRef,
});
}
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵModalComponent_BaseFactory; return function ModalComponent_Factory(t) { return (ɵModalComponent_BaseFactory || (ɵModalComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ModalComponent)))(t || ModalComponent); }; })(); }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ModalComponent, selectors: [["", "auModal", ""]], contentQueries: function ModalComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
i0.ɵɵcontentQuery(dirIndex, ModalStructureDirective, 5);
i0.ɵɵcontentQuery(dirIndex, ModalHeaderDirective, 5);
i0.ɵɵcontentQuery(dirIndex, ModalTitleDirective, 5);
i0.ɵɵcontentQuery(dirIndex, ModalBodyDirective, 5);
i0.ɵɵcontentQuery(dirIndex, ModalFooterDirective, 5);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotStructureFromContent = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotHeaderFromContent = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotTitleFromContent = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotDefaultFromContent = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotFooterFromContent = _t.first);
} }, inputs: { animation: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auAnimation", "animation", auBooleanAttribute], backdropTransition: [i0.ɵɵInputFlags.None, "auBackdropTransition", "backdropTransition"], modalTransition: [i0.ɵɵInputFlags.None, "auModalTransition", "modalTransition"], visible: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auVisible", "visible", auBooleanAttribute], backdrop: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auBackdrop", "backdrop", auBooleanAttribute], closeOnOutsideClick: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auCloseOnOutsideClick", "closeOnOutsideClick", auBooleanAttribute], container: [i0.ɵɵInputFlags.None, "auContainer", "container"], ariaCloseButtonLabel: [i0.ɵɵInputFlags.None, "auAriaCloseButtonLabel", "ariaCloseButtonLabel"], backdropClass: [i0.ɵɵInputFlags.None, "auBackdropClass", "backdropClass"], closeButton: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auCloseButton", "closeButton", auBooleanAttribute], className: [i0.ɵɵInputFlags.None, "auClassName", "className"], slotStructure: [i0.ɵɵInputFlags.None, "auSlotStructure", "slotStructure"], slotHeader: [i0.ɵɵInputFlags.None, "auSlotHeader", "slotHeader"], slotTitle: [i0.ɵɵInputFlags.None, "auSlotTitle", "slotTitle"], slotDefault: [i0.ɵɵInputFlags.None, "auSlotDefault", "slotDefault"], slotFooter: [i0.ɵɵInputFlags.None, "auSlotFooter", "slotFooter"], contentData: [i0.ɵɵInputFlags.None, "auContentData", "contentData"] }, outputs: { visibleChange: "auVisibleChange", beforeClose: "auBeforeClose", hidden: "auHidden", shown: "auShown" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c3, ngContentSelectors: _c4, decls: 3, vars: 3, consts: [[3, "auSlotDefault"], [3, "class", "auUse"], [3, "auUse"], [3, "auUse", "click"], [1, "modal-dialog"], [1, "modal-content"], [3, "auSlot", "auSlotProps"]], template: function ModalComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵprojectionDef();
i0.ɵɵtemplate(0, ModalComponent_ng_template_0_Template, 1, 0, "ng-template", 0)(1, ModalComponent_Conditional_1_Template, 1, 4, "div", 1)(2, ModalComponent_Conditional_2_Template, 4, 9, "div", 1);
} if (rf & 2) {
i0.ɵɵproperty("auSlotDefault", ctx.defaultSlots);
i0.ɵɵadvance();
i0.ɵɵconditional(1, !ctx.state().backdropHidden ? 1 : -1);
i0.ɵɵadvance();
i0.ɵɵconditional(2, !ctx.state().hidden ? 2 : -1);
} }, dependencies: [UseDirective, SlotDirective, SlotDefaultDirective], encapsulation: 2, changeDetection: 0 }); }
}
__decorate([
CachedProperty
], ModalComponent.prototype, "modalDirective", null);
__decorate([
CachedProperty
], ModalComponent.prototype, "backdropDirective", null);
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalComponent, [{
type: Component,
args: [{
selector: '[auModal]',
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [UseDirective, SlotDirective, SlotDefaultDirective],
template: `
<ng-template [auSlotDefault]="defaultSlots"><ng-content></ng-content></ng-template>
(!state().backdropHidden) {
<div class="modal-backdrop {{ state().backdropClass }}" [auUse]="backdropDirective"></div>
}
(!state().hidden) {
<div class="modal d-block {{ state().className }}" [auUse]="modalDirective" (click)="widget.actions.modalClick($event)">
<div class="modal-dialog">
<div class="modal-content">
<ng-template [auSlot]="state().slotStructure" [auSlotProps]="{state: state(), widget}"></ng-template>
</div>
</div>
</div>
}
`,
}]
}], null, { animation: [{
type: Input,
args: [{ alias: 'auAnimation', transform: auBooleanAttribute }]
}], backdropTransition: [{
type: Input,
args: ['auBackdropTransition']
}], modalTransition: [{
type: Input,
args: ['auModalTransition']
}], visible: [{
type: Input,
args: [{ alias: 'auVisible', transform: auBooleanAttribute }]
}], backdrop: [{
type: Input,
args: [{ alias: 'auBackdrop', transform: auBooleanAttribute }]
}], closeOnOutsideClick: [{
type: Input,
args: [{ alias: 'auCloseOnOutsideClick', transform: auBooleanAttribute }]
}], container: [{
type: Input,
args: ['auContainer']
}], ariaCloseButtonLabel: [{
type: Input,
args: ['auAriaCloseButtonLabel']
}], backdropClass: [{
type: Input,
args: ['auBackdropClass']
}], closeButton: [{
type: Input,
args: [{ alias: 'auCloseButton', transform: auBooleanAttribute }]
}], className: [{
type: Input,
args: ['auClassName']
}], slotStructure: [{
type: Input,
args: ['auSlotStructure']
}], slotStructureFromContent: [{
type: ContentChild,
args: [ModalStructureDirective, { static: false }]
}], slotHeader: [{
type: Input,
args: ['auSlotHeader']
}], slotHeaderFromContent: [{
type: ContentChild,
args: [ModalHeaderDirective, { static: false }]
}], slotTitle: [{
type: Input,
args: ['auSlotTitle']
}], slotTitleFromContent: [{
type: ContentChild,
args: [ModalTitleDirective, { static: false }]
}], slotDefault: [{
type: Input,
args: ['auSlotDefault']
}], slotDefaultFromContent: [{
type: ContentChild,
args: [ModalBodyDirective, { static: false }]
}], slotFooter: [{
type: Input,
args: ['auSlotFooter']
}], slotFooterFromContent: [{
type: ContentChild,
args: [ModalFooterDirective, { static: false }]
}], contentData: [{
type: Input,
args: ['auContentData']
}], visibleChange: [{
type: Output,
args: ['auVisibleChange']
}], beforeClose: [{
type: Output,
args: ['auBeforeClose']
}], hidden: [{
type: Output,
args: ['auHidden']
}], shown: [{
type: Output,
args: ['auShown']
}], modalDirective: [], backdropDirective: [] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModalComponent, { className: "ModalComponent", filePath: "components/modal/modal.component.ts", lineNumber: 166 }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ04sbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsZUFBZSxHQUNmLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWpELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7Ozs7Ozs7SUFzRW5CLGlDQUtDO0lBREEsOE1BQVMsZUFBQSwwQ0FBdUMsQ0FBQSxJQUFDO0lBQ2pELGlCQUFTOzs7SUFGVCwyREFBOEM7Ozs7SUFQaEQsNkJBQXdCO0lBQ3ZCLHlHQUFzRjtJQUN2RixpQkFBSztJQUNMLG9HQU9DOzs7O0lBVGEsY0FBMEI7SUFBMUIsMkNBQTBCLGdFQUFBO0lBRXhDLGNBT0M7SUFQRCxrREFPQzs7OztJQUlBLCtCQUEwQjtJQUN6Qix1SEFBdUY7SUFDeEYsaUJBQU07Ozs7O0lBRFEsY0FBMkI7SUFBM0IsNkNBQTJCLGtFQUFBOzs7OztJQU96QywrQkFBMEI7SUFDekIsdUhBQXVGO0lBQ3hGLGlCQUFNOzs7OztJQURRLGNBQTJCO0lBQTNCLDZDQUEyQixrRUFBQTs7O0lBVjFDLGlHQUlDO0lBQ0QsOEJBQXdCO0lBQ3ZCLHlHQUF3RjtJQUN6RixpQkFBTTtJQUNOLGtHQUlDOzs7O0lBWkQsaURBSUM7SUFFYSxlQUE0QjtJQUE1Qiw4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bUJBQUMsZUFBZTtZQUtILE1BQU07a0JBQXpCLE1BQU07bUJBQUMsVUFBVTtZQUtDLEtBQUs7a0JBQXZCLE1BQU07bUJBQUMsU0FBUztZQWlCYixjQUFjLE1BS2QsaUJBQWlCO2tGQTNIVCxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge01vZGFsQmVmb3JlQ2xvc2VFdmVudCwgTW9kYWxDb250ZXh0LCBNb2RhbFByb3BzLCBNb2RhbFdpZGdldCwgU2xvdENvbnRlbnQsIFRyYW5zaXRpb25Gbn0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuaW1wb3J0IHtcblx0QmFzZVdpZGdldERpcmVjdGl2ZSxcblx0Q2FjaGVkUHJvcGVydHksXG5cdENvbXBvbmVudFRlbXBsYXRlLFxuXHRTbG90RGVmYXVsdERpcmVjdGl2ZSxcblx0U2xvdERpcmVjdGl2ZSxcblx0VXNlRGlyZWN0aXZlLFxuXHRhdUJvb2xlYW5BdHRyaWJ1dGUsXG5cdGNhbGxXaWRnZXRGYWN0b3J5LFxuXHRjcmVhdGVNb2RhbCxcblx0bWVyZ2VEaXJlY3RpdmVzLFxufSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQge3dyaXRhYmxlfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7QWZ0ZXJDb250ZW50Q2hlY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdERpcmVjdGl2ZSxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIHRoZSBzbG90IHN0cnVjdHVyZSBmb3IgdGhlIG1vZGFsIHdpZGdldC5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsU3RydWN0dXJlXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsU3RydWN0dXJlRGlyZWN0aXZlPERhdGE+IHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxEYXRhPihkaXI6IE1vZGFsU3RydWN0dXJlRGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3QgaGVhZGVyIGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1TW9kYWxIZWFkZXJdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgTW9kYWxIZWFkZXJEaXJlY3RpdmU8RGF0YT4ge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PERhdGE+Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPERhdGE+KF9kaXI6IE1vZGFsSGVhZGVyRGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3QgdGl0bGUgZm9yIHRoZSBtb2RhbCB3aWRnZXQuXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVNb2RhbFRpdGxlXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsVGl0bGVEaXJlY3RpdmU8RGF0YT4ge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PERhdGE+Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPERhdGE+KF9kaXI6IE1vZGFsVGl0bGVEaXJlY3RpdmU8RGF0YT4sIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIE1vZGFsQ29udGV4dDxEYXRhPiB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gcHJvdmlkZSB0aGUgZGVmYXVsdCBzbG90IGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1TW9kYWxCb2R5XScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsQm9keURpcmVjdGl2ZTxEYXRhPiB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8RGF0YT4oX2RpcjogTW9kYWxCb2R5RGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3QgZm9vdGVyIGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1TW9kYWxGb290ZXJdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgTW9kYWxGb290ZXJEaXJlY3RpdmU8RGF0YT4ge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PERhdGE+Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPERhdGE+KF9kaXI6IE1vZGFsRm9vdGVyRGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIGRlZmF1bHQgc2xvdHMgZm9yIHRoZSBtb2RhbC5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbU2xvdERpcmVjdGl2ZSwgTW9kYWxIZWFkZXJEaXJlY3RpdmUsIE1vZGFsU3RydWN0dXJlRGlyZWN0aXZlXSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctdGVtcGxhdGUgYXVNb2RhbEhlYWRlciAjaGVhZGVyIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LXdpZGdldD1cIndpZGdldFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUuc2xvdFRpdGxlXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgd2lkZ2V0fVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L2g1PlxuXHRcdFx0QGlmIChzdGF0ZS5jbG9zZUJ1dHRvbikge1xuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJidG4tY2xvc2VcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwic3RhdGUuYXJpYUNsb3NlQnV0dG9uTGFiZWxcIlxuXHRcdFx0XHRcdChjbGljayk9XCJ3aWRnZXQuYWN0aW9ucy5jbG9zZUJ1dHRvbkNsaWNrKCRldmVudClcIlxuXHRcdFx0XHQ+PC9idXR0b24+XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctdGVtcGxhdGUgYXVNb2RhbFN0cnVjdHVyZSAjc3RydWN0dXJlIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LXdpZGdldD1cIndpZGdldFwiPlxuXHRcdFx0QGlmIChzdGF0ZS5zbG90VGl0bGUpIHtcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLnNsb3RIZWFkZXJcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5zbG90RGVmYXVsdFwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIHdpZGdldH1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHRAaWYgKHN0YXRlLnNsb3RGb290ZXIpIHtcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLnNsb3RGb290ZXJcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxEZWZhdWx0U2xvdHNDb21wb25lbnQ8RGF0YT4ge1xuXHRAVmlld0NoaWxkKCdoZWFkZXInLCB7c3RhdGljOiB0cnVlfSkgaGVhZGVyOiBUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRAVmlld0NoaWxkKCdzdHJ1Y3R1cmUnLCB7c3RhdGljOiB0cnVlfSkgc3RydWN0dXJlOiBUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+O1xufVxuXG4vKipcbiAqIERlZmF1bHQgc2xvdCBmb3IgbW9kYWwgaGVhZGVyLlxuICovXG5leHBvcnQgY29uc3QgbW9kYWxEZWZhdWx0U2xvdEhlYWRlciA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShNb2RhbERlZmF1bHRTbG90c0NvbXBvbmVudCwgJ2hlYWRlcicpO1xuXG4vKipcbiAqIERlZmF1bHQgc2xvdCBmb3IgbW9kYWwgc3RydWN0dXJlLlxuICovXG5leHBvcnQgY29uc3QgbW9kYWxEZWZhdWx0U2xvdFN0cnVjdHVyZSA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShNb2RhbERlZmF1bHRTbG90c0NvbXBvbmVudCwgJ3N0cnVjdHVyZScpO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPE1vZGFsUHJvcHM8YW55Pj4gPSB7XG5cdHNsb3RIZWFkZXI6IG1vZGFsRGVmYXVsdFNsb3RIZWFkZXIsXG5cdHNsb3RTdHJ1Y3R1cmU6IG1vZGFsRGVmYXVsdFNsb3RTdHJ1Y3R1cmUsXG59O1xuXG4vKipcbiAqIE1vZGFsIGNvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnW2F1TW9kYWxdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtVc2VEaXJlY3RpdmUsIFNsb3REaXJlY3RpdmUsIFNsb3REZWZhdWx0RGlyZWN0aXZlXSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdERlZmF1bHRdPVwiZGVmYXVsdFNsb3RzXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XG5cdFx0QGlmICghc3RhdGUoKS5iYWNrZHJvcEhpZGRlbikge1xuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tkcm9wIHt7IHN0YXRlKCkuYmFja2Ryb3BDbGFzcyB9fVwiIFthdVVzZV09XCJiYWNrZHJvcERpcmVjdGl2ZVwiPjwvZGl2PlxuXHRcdH1cblx0XHRAaWYgKCFzdGF0ZSgpLmhpZGRlbikge1xuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsIGQtYmxvY2sge3sgc3RhdGUoKS5jbGFzc05hbWUgfX1cIiBbYXVVc2VdPVwibW9kYWxEaXJlY3RpdmVcIiAoY2xpY2spPVwid2lkZ2V0LmFjdGlvbnMubW9kYWxDbGljaygkZXZlbnQpXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUoKS5zbG90U3RydWN0dXJlXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZTogc3RhdGUoKSwgd2lkZ2V0fVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0fVxuXHRgLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudDxEYXRhPiBleHRlbmRzIEJhc2VXaWRnZXREaXJlY3RpdmU8TW9kYWxXaWRnZXQ8RGF0YT4+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSBtb2RhbCBhbmQgaXRzIGJhY2tkcm9wIChpZiBwcmVzZW50KSBzaG91bGQgYmUgYW5pbWF0ZWQgd2hlbiBzaG93biBvciBoaWRkZW4uXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVBbmltYXRpb24nLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGFuaW1hdGlvbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHRyYW5zaXRpb24gdG8gdXNlIGZvciB0aGUgYmFja2Ryb3AgYmVoaW5kIHRoZSBtb2RhbCAoaWYgcHJlc2VudCkuXG5cdCAqL1xuXHRASW5wdXQoJ2F1QmFja2Ryb3BUcmFuc2l0aW9uJykgYmFja2Ryb3BUcmFuc2l0aW9uOiBUcmFuc2l0aW9uRm4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSB0cmFuc2l0aW9uIHRvIHVzZSBmb3IgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCdhdU1vZGFsVHJhbnNpdGlvbicpIG1vZGFsVHJhbnNpdGlvbjogVHJhbnNpdGlvbkZuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSBtb2RhbCBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlZC5cblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdVZpc2libGUnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIHZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgYSBiYWNrZHJvcCBzaG91bGQgYmUgY3JlYXRlZCBiZWhpbmQgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1QmFja2Ryb3AnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGJhY2tkcm9wOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSBtb2RhbCBzaG91bGQgYmUgY2xvc2VkIHdoZW4gY2xpY2tpbmcgb24gdGhlIHZpZXdwb3J0IG91dHNpZGUgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Q2xvc2VPbk91dHNpZGVDbGljaycsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgY2xvc2VPbk91dHNpZGVDbGljazogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2hpY2ggZWxlbWVudCBzaG91bGQgY29udGFpbiB0aGUgbW9kYWwgYW5kIGJhY2tkcm9wIERPTSBlbGVtZW50cy5cblx0ICogSWYgaXQgaXMgbm90IG51bGwsIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzIGFyZSBtb3ZlZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRhaW5lci5cblx0ICogT3RoZXJ3aXNlLCB0aGV5IHN0YXkgd2hlcmUgdGhlIHdpZGdldCBpcyBsb2NhdGVkLlxuXHQgKi9cblx0QElucHV0KCdhdUNvbnRhaW5lcicpIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBWYWx1ZSBvZiB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gcHV0IG9uIHRoZSBjbG9zZSBidXR0b24uXG5cdCAqL1xuXHRASW5wdXQoJ2F1QXJpYUNsb3NlQnV0dG9uTGFiZWwnKSBhcmlhQ2xvc2VCdXR0b25MYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBDbGFzc2VzIHRvIGFkZCBvbiB0aGUgYmFja2Ryb3AgRE9NIGVsZW1lbnQuXG5cdCAqL1xuXHRASW5wdXQoJ2F1QmFja2Ryb3BDbGFzcycpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2hldGhlciB0byBkaXNwbGF5IHRoZSBjbG9zZSBidXR0b24uXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVDbG9zZUJ1dHRvbicsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgY2xvc2VCdXR0b246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgb24gdGhlIHdpZGdldCBtYWluIGNvbnRhaW5lclxuXHQgKi9cblx0QElucHV0KCdhdUNsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdEBJbnB1dCgnYXVTbG90U3RydWN0dXJlJykgc2xvdFN0cnVjdHVyZTogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0QENvbnRlbnRDaGlsZChNb2RhbFN0cnVjdHVyZURpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90U3RydWN0dXJlRnJvbUNvbnRlbnQ6IE1vZGFsU3RydWN0dXJlRGlyZWN0aXZlPERhdGE+IHwgbnVsbDtcblxuXHRASW5wdXQoJ2F1U2xvdEhlYWRlcicpIHNsb3RIZWFkZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxIZWFkZXJEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEhlYWRlckZyb21Db250ZW50OiBNb2RhbEhlYWRlckRpcmVjdGl2ZTxEYXRhPiB8IG51bGw7XG5cblx0QElucHV0KCdhdVNsb3RUaXRsZScpIHNsb3RUaXRsZTogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0QENvbnRlbnRDaGlsZChNb2RhbFRpdGxlRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3RUaXRsZUZyb21Db250ZW50OiBNb2RhbFRpdGxlRGlyZWN0aXZlPERhdGE+IHwgbnVsbDtcblxuXHRASW5wdXQoJ2F1U2xvdERlZmF1bHQnKSBzbG90RGVmYXVsdDogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0QENvbnRlbnRDaGlsZChNb2RhbEJvZHlEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdERlZmF1bHRGcm9tQ29udGVudDogTW9kYWxCb2R5RGlyZWN0aXZlPERhdGE+IHwgbnVsbDtcblxuXHRASW5wdXQoJ2F1U2xvdEZvb3RlcicpIHNsb3RGb290ZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxGb290ZXJEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEZvb3RlckZyb21Db250ZW50OiBNb2RhbEZvb3RlckRpcmVjdGl2ZTxEYXRhPiB8IG51bGw7XG5cblx0LyoqXG5cdCAqIERhdGEgdG8gdXNlIGluIGNvbnRlbnQgc2xvdHNcblx0ICovXG5cdEBJbnB1dCgnYXVDb250ZW50RGF0YScpIGNvbnRlbnREYXRhOiBEYXRhIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdmlzaWJsZSBwcm9wZXJ0eSBjaGFuZ2VzLlxuXHQgKi9cblx0QE91dHB1dCgnYXVWaXNpYmxlQ2hhbmdlJykgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuXHQvKipcblx0ICogRXZlbnQgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIG1vZGFsIGlzIGFib3V0IHRvIGJlIGNsb3NlZCAoaS5lLiB0aGUgY2xvc2UgbWV0aG9kIHdhcyBjYWxsZWQpLlxuXHQgKi9cblx0QE91dHB1dCgnYXVCZWZvcmVDbG9zZScpIGJlZm9yZUNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbEJlZm9yZUNsb3NlRXZlbnQ+KCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlZCBhbmQgdGhlIG1vZGFsIGlzIG5vdCB2aXNpYmxlLlxuXHQgKi9cblx0QE91dHB1dCgnYXVIaWRkZW4nKSBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlZCBhbmQgdGhlIG1vZGFsIGlzIHZpc2libGUuXG5cdCAqL1xuXHRAT3V0cHV0KCdhdVNob3duJykgc2hvd24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0cmVhZG9ubHkgZGVmYXVsdFNsb3RzID0gd3JpdGFibGUoZGVmYXVsdENvbmZpZyk7XG5cblx0cmVhZG9ubHkgX3dpZGdldCA9IGNhbGxXaWRnZXRGYWN0b3J5PE1vZGFsV2lkZ2V0PERhdGE+Pih7XG5cdFx0ZmFjdG9yeTogY3JlYXRlTW9kYWwsXG5cdFx0d2lkZ2V0TmFtZTogJ21vZGFsJyxcblx0XHRkZWZhdWx0Q29uZmlnOiB0aGlzLmRlZmF1bHRTbG90cyxcblx0XHRldmVudHM6IHtcblx0XHRcdG9uU2hvd246ICgpID0+IHRoaXMuc2hvd24uZW1pdCgpLFxuXHRcdFx0b25IaWRkZW46ICgpID0+IHRoaXMuaGlkZGVuLmVtaXQoKSxcblx0XHRcdG9uQmVmb3JlQ2xvc2U6IChldmVudCkgPT4gdGhpcy5iZWZvcmVDbG9zZS5lbWl0KGV2ZW50KSxcblx0XHRcdG9uVmlzaWJsZUNoYW5nZTogKGV2ZW50KSA9PiB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChldmVudCksXG5cdFx0fSxcblx0fSk7XG5cblx0QENhY2hlZFByb3BlcnR5XG5cdGdldCBtb2RhbERpcmVjdGl2ZSgpIHtcblx0XHRyZXR1cm4gbWVyZ2VEaXJlY3RpdmVzKHRoaXMuX3dpZGdldC5kaXJlY3RpdmVzLm1vZGFsUG9ydGFsRGlyZWN0aXZlLCB0aGlzLl93aWRnZXQuZGlyZWN0aXZlcy5tb2RhbERpcmVjdGl2ZSk7XG5cdH1cblxuXHRAQ2FjaGVkUHJvcGVydHlcblx0Z2V0IGJhY2tkcm9wRGlyZWN0aXZlKCkge1xuXHRcdHJldHVybiBtZXJnZURpcmVjdGl2ZXModGhpcy5fd2lkZ2V0LmRpcmVjdGl2ZXMuYmFja2Ryb3BQb3J0YWxEaXJlY3RpdmUsIHRoaXMuX3dpZGdldC5kaXJlY3RpdmVzLmJhY2tkcm9wRGlyZWN0aXZlKTtcblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcblx0XHR0aGlzLl93aWRnZXQucGF0Y2hTbG90cyh7XG5cdFx0XHRzbG90RGVmYXVsdDogdGhpcy5zbG90RGVmYXVsdEZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdHNsb3RGb290ZXI6IHRoaXMuc2xvdEZvb3RlckZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdHNsb3RIZWFkZXI6IHRoaXMuc2xvdEhlYWRlckZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdHNsb3RTdHJ1Y3R1cmU6IHRoaXMuc2xvdFN0cnVjdHVyZUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdHNsb3RUaXRsZTogdGhpcy5zbG90VGl0bGVGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==