@fundamental-ngx/platform 0.58.0-rc.8 → 0.58.0-rc.81
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.
- package/approval-flow/index.d.ts +2 -0
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +14 -11
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +65 -17
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +125 -12
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +1 -3
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +1 -2
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +3 -4
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2 -3
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +3 -4
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -3
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +1 -2
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +3 -4
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/index.d.ts +40 -5
- package/icon-tab-bar/index.d.ts +61 -10
- package/list/index.d.ts +1 -1
- package/menu/index.d.ts +3 -3
- package/message-popover/index.d.ts +3 -3
- package/package.json +6 -6
- package/settings-generator/index.d.ts +3 -3
- package/table/index.d.ts +1 -1
- package/variant-management/index.d.ts +1 -1
- package/schematics/collection.json +0 -10
- package/schematics/ng-add/index.d.ts +0 -13
- package/schematics/ng-add/index.js +0 -55
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.d.ts +0 -3
- package/schematics/ng-add/schema.js +0 -3
- package/schematics/ng-add/schema.js.map +0 -1
- package/schematics/ng-add/schema.json +0 -15
- package/schematics/utils/package-utils.d.ts +0 -19
- package/schematics/utils/package-utils.js +0 -119
- package/schematics/utils/package-utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-message-popover.mjs","sources":["../tmp-esm2022/message-popover/default-config.js","../tmp-esm2022/message-popover/directives/message-popover-form-item.directive.js","../tmp-esm2022/message-popover/utils.js","../tmp-esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.js","../tmp-esm2022/message-popover/components/message-view/message-view.component.js","../tmp-esm2022/message-popover/message-popover.component.js","../tmp-esm2022/message-popover/platform-message-popover.module.js","../tmp-esm2022/message-popover/fundamental-ngx-platform-message-popover.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const FDP_MESSAGE_POPOVER_DEFAULT_CONFIG = {\n errors: {\n email: 'platformMessagePopover.defaultErrors.email',\n max: 'platformMessagePopover.defaultErrors.max',\n maxlength: 'platformMessagePopover.defaultErrors.maxLength',\n min: 'platformMessagePopover.defaultErrors.min',\n minlength: 'platformMessagePopover.defaultErrors.minLength',\n pattern: 'platformMessagePopover.defaultErrors.pattern',\n required: 'platformMessagePopover.defaultErrors.required',\n requiredTrue: 'platformMessagePopover.defaultErrors.requiredTrue'\n }\n};\nexport const FDP_MESSAGE_POPOVER_CONFIG = new InjectionToken('FdpMessagePopoverConfig');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9kZWZhdWx0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZ0IvQyxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBeUI7SUFDcEUsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLDRDQUE0QztRQUNuRCxHQUFHLEVBQUUsMENBQTBDO1FBQy9DLFNBQVMsRUFBRSxnREFBZ0Q7UUFDM0QsR0FBRyxFQUFFLDBDQUEwQztRQUMvQyxTQUFTLEVBQUUsZ0RBQWdEO1FBQzNELE9BQU8sRUFBRSw4Q0FBOEM7UUFDdkQsUUFBUSxFQUFFLCtDQUErQztRQUN6RCxZQUFZLEVBQUUsbURBQW1EO0tBQ3BFO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUF1Qix5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZyB7XG4gICAgaGVhZGluZzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHR5cGU6IEZvcm1TdGF0ZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVBvcG92ZXJDb25maWcge1xuICAgIC8qKlxuICAgICAqIEVycm9ycyBvYmplY3Qgd2hlcmUga2V5IGlzIGVycm9yIHR5cGUgYW5kIHZhbHVlIGlzIGkxOG4gc3RyaW5nLlxuICAgICAqL1xuICAgIGVycm9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZz47XG59XG5cbmV4cG9ydCBjb25zdCBGRFBfTUVTU0FHRV9QT1BPVkVSX0RFRkFVTFRfQ09ORklHOiBNZXNzYWdlUG9wb3ZlckNvbmZpZyA9IHtcbiAgICBlcnJvcnM6IHtcbiAgICAgICAgZW1haWw6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMuZW1haWwnLFxuICAgICAgICBtYXg6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMubWF4JyxcbiAgICAgICAgbWF4bGVuZ3RoOiAncGxhdGZvcm1NZXNzYWdlUG9wb3Zlci5kZWZhdWx0RXJyb3JzLm1heExlbmd0aCcsXG4gICAgICAgIG1pbjogJ3BsYXRmb3JtTWVzc2FnZVBvcG92ZXIuZGVmYXVsdEVycm9ycy5taW4nLFxuICAgICAgICBtaW5sZW5ndGg6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMubWluTGVuZ3RoJyxcbiAgICAgICAgcGF0dGVybjogJ3BsYXRmb3JtTWVzc2FnZVBvcG92ZXIuZGVmYXVsdEVycm9ycy5wYXR0ZXJuJyxcbiAgICAgICAgcmVxdWlyZWQ6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMucmVxdWlyZWQnLFxuICAgICAgICByZXF1aXJlZFRydWU6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMucmVxdWlyZWRUcnVlJ1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGRFBfTUVTU0FHRV9QT1BPVkVSX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZXNzYWdlUG9wb3ZlckNvbmZpZz4oJ0ZkcE1lc3NhZ2VQb3BvdmVyQ29uZmlnJyk7XG4iXX0=","import { Directive, ElementRef, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class MessagePopoverFormItemDirective {\n /** @hidden */\n constructor(elementRef, control) {\n this.elementRef = elementRef;\n this.control = control;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormItemDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: MessagePopoverFormItemDirective, isStandalone: true, selector: \"[fdpMessagePopoverFormItem]\", inputs: { label: [\"fdpMessagePopoverFormItem\", \"label\"], errorTypes: \"errorTypes\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpMessagePopoverFormItem]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{\n type: Optional\n }] }], propDecorators: { label: [{\n type: Input,\n args: ['fdpMessagePopoverFormItem']\n }], errorTypes: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLWZvcm0taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9kaXJlY3RpdmVzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLCtCQUErQjtJQVN4QyxjQUFjO0lBQ2QsWUFDb0IsVUFBc0IsRUFDVixPQUFrQjtRQUQ5QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUMvQyxDQUFDOzhHQWJLLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBYVEsUUFBUTt5Q0FUYixLQUFLO3NCQURKLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUtsQyxVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJDb25maWcgfSBmcm9tICcuLi9kZWZhdWx0LWNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmUge1xuICAgIC8qKiBGb3JtIGl0ZW0gbmFtZS4gKi9cbiAgICBASW5wdXQoJ2ZkcE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW0nKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogRXJyb3IgdHlwZSBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXJyb3JUeXBlczogTWVzc2FnZVBvcG92ZXJDb25maWdbJ2Vycm9ycyddO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyByZWFkb25seSBjb250cm9sOiBOZ0NvbnRyb2xcbiAgICApIHt9XG59XG4iXX0=","/**\n * Converts Object Status into Message Popover State\n * @param status Object status\n * @returns Message Popover State.\n */\nexport function convertFormStateToMessagePopoverState(state) {\n switch (state) {\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'default':\n return 'neutral';\n default:\n return state;\n }\n}\n/**\n * Converts Form State into Object status type.\n * @param type Form state.\n * @returns `ObjectStatus` type.\n */\nexport function convertFormState(type) {\n switch (type) {\n case 'success':\n return 'positive';\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'information':\n return 'informative';\n default:\n return 'neutral';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFDQUFxQyxDQUFDLEtBQWlCO0lBQ25FLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDWixLQUFLLE9BQU87WUFDUixPQUFPLFVBQVUsQ0FBQztRQUN0QixLQUFLLFNBQVM7WUFDVixPQUFPLFVBQVUsQ0FBQztRQUN0QixLQUFLLFNBQVM7WUFDVixPQUFPLFNBQVMsQ0FBQztRQUNyQjtZQUNJLE9BQU8sS0FBSyxDQUFDO0lBQ3JCLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFnQjtJQUM3QyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ1gsS0FBSyxTQUFTO1lBQ1YsT0FBTyxVQUFVLENBQUM7UUFDdEIsS0FBSyxPQUFPO1lBQ1IsT0FBTyxVQUFVLENBQUM7UUFDdEIsS0FBSyxTQUFTO1lBQ1YsT0FBTyxVQUFVLENBQUM7UUFDdEIsS0FBSyxhQUFhO1lBQ2QsT0FBTyxhQUFhLENBQUM7UUFDekI7WUFDSSxPQUFPLFNBQVMsQ0FBQztJQUN6QixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb2JqZWN0LXN0YXR1cyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlclN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29udmVydHMgT2JqZWN0IFN0YXR1cyBpbnRvIE1lc3NhZ2UgUG9wb3ZlciBTdGF0ZVxuICogQHBhcmFtIHN0YXR1cyBPYmplY3Qgc3RhdHVzXG4gKiBAcmV0dXJucyBNZXNzYWdlIFBvcG92ZXIgU3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Rm9ybVN0YXRlVG9NZXNzYWdlUG9wb3ZlclN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzKTogTWVzc2FnZVBvcG92ZXJTdGF0ZSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICByZXR1cm4gJ25lZ2F0aXZlJztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICByZXR1cm4gJ2NyaXRpY2FsJztcbiAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgICByZXR1cm4gJ25ldXRyYWwnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBGb3JtIFN0YXRlIGludG8gT2JqZWN0IHN0YXR1cyB0eXBlLlxuICogQHBhcmFtIHR5cGUgRm9ybSBzdGF0ZS5cbiAqIEByZXR1cm5zIGBPYmplY3RTdGF0dXNgIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Rm9ybVN0YXRlKHR5cGU6IEZvcm1TdGF0ZXMpOiBPYmplY3RTdGF0dXMge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICAgIHJldHVybiAncG9zaXRpdmUnO1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICByZXR1cm4gJ25lZ2F0aXZlJztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICByZXR1cm4gJ2NyaXRpY2FsJztcbiAgICAgICAgY2FzZSAnaW5mb3JtYXRpb24nOlxuICAgICAgICAgICAgcmV0dXJuICdpbmZvcm1hdGl2ZSc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gJ25ldXRyYWwnO1xuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ContentChildren, DestroyRef, Inject, Input, QueryList, ViewEncapsulation, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlContainer, FormGroup } from '@angular/forms';\nimport { FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport { Subject, Subscription, filter, startWith, switchMap, zip } from 'rxjs';\nimport { FDP_MESSAGE_POPOVER_CONFIG } from '../../default-config';\nimport { MessagePopoverFormItemDirective } from '../../directives/message-popover-form-item.directive';\nimport { convertFormState } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class MessagePopoverFormWrapperComponent {\n /**\n * User-passed forms.\n */\n set forms(forms) {\n if (!forms) {\n return;\n }\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n this._ngForms = forms;\n this._startListeningForErrors();\n }\n /** User-passed form fields. */\n set formFields(value) {\n this._formFields = value;\n this._listenToFormFieldErrors(value);\n }\n get formFields() {\n return this._formFields;\n }\n /** @hidden */\n constructor(_destroyRef, _config) {\n this._destroyRef = _destroyRef;\n this._config = _config;\n /** Message Popover instance. */\n this.messagePopover$ = new Subject();\n /**\n * Error models Signal. Emitted when form submitted and contains invalid fields.\n */\n this.errors$ = signal([], ...(ngDevMode ? [{ debugName: \"errors$\" }] : []));\n /** @hidden */\n this._formFields = [];\n /** @hidden */\n this._ngForms = [];\n /** @hidden */\n this._formItemErrorsSubscription = new Subscription();\n /** @hidden */\n this._formSubmitted = false;\n }\n /** @hidden */\n ngAfterViewInit() {\n // Forms are passed via input property.\n if (this._ngForms.length > 0) {\n return;\n }\n this._projectedForm?.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._ngForms = this._projectedForm.toArray();\n this._startListeningForErrors();\n });\n }\n /**\n * Sets Message Popover component instance.\n */\n setMessagePopover(messagePopover) {\n this.messagePopover$.next(messagePopover);\n // this.messagePopover = messagePopover;\n }\n /**\n * Programmatically add new form to array of forms.\n * @param forms\n */\n addForms(forms) {\n const formsArray = Array.isArray(forms) ? forms : [forms];\n this._ngForms.push(...formsArray);\n this._startListeningForErrors();\n }\n /**\n * Programmatically add new form fields to array of listened form fields.\n * @param formFields\n */\n addFormFields(formFields) {\n this._formFields.push(...formFields);\n this._listenToFormFieldErrors(this._formFields);\n }\n /** @hidden */\n ngOnDestroy() {\n this._formItemErrorsSubscription.unsubscribe();\n }\n /**\n * @hidden\n * Listens to the form submission and collects form control errors.\n */\n _startListeningForErrors() {\n if (!this._ngForms) {\n return;\n }\n this._formErrorsSubscription?.unsubscribe();\n this.errors$.set([]);\n const formSubmitEvents = this._ngForms.map((form) => form.ngSubmit.pipe(switchMap(() => form.statusChanges.pipe(startWith(form.status), filter((status) => status.toLowerCase() !== 'pending')))));\n this._formErrorsSubscription = zip(...formSubmitEvents)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._formSubmitted = true;\n const errors = this._directiveItems.length > 0 ? this._collectPlainFormData() : this._collectAdvancedFormData();\n this.errors$.set(errors);\n });\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n this._projectedFormFieldControls?.changes.subscribe(() => {\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n });\n }\n /** @hidden */\n _listenToFormFieldErrors(fields) {\n this._formItemErrorsSubscription.unsubscribe();\n this._formItemErrorsSubscription = new Subscription();\n fields?.forEach((field) => {\n this._formItemErrorsSubscription.add(field.formField?.errorsChange$.subscribe(() => {\n if (!this._formSubmitted) {\n return;\n }\n const errors = this._directiveItems.length > 0\n ? this._collectPlainFormData()\n : this._collectAdvancedFormData();\n this.errors$.set(errors);\n }));\n });\n }\n /** @hidden */\n _collectPlainFormData() {\n const errors = [\n {\n errors: []\n }\n ];\n const fields = this._directiveItems.toArray();\n this._ngForms.forEach((form) => {\n Object.keys(form.form.controls).forEach((controlName) => {\n const control = form.form.get(controlName);\n const field = fields.find((formField) => formField.control?.name === controlName);\n if (!control?.errors || !field) {\n return;\n }\n const configErrors = Object.keys(this._config.errors);\n Object.keys(control.errors)\n .filter((error) => configErrors.includes(error))\n .forEach((errorKey) => {\n const errorObj = control.errors[errorKey];\n const errorTextModel = this._getConfigErrorModel(errorKey, field.errorTypes);\n const errorConfig = field?.errorTypes ? field?.errorTypes[errorKey] : null;\n const errorState = errorConfig && this._isAdvancedError(errorConfig) && errorConfig.type\n ? errorConfig.type\n : 'error';\n const error = {\n name: controlName,\n type: errorTextModel.type,\n state: convertFormState(errorState),\n fieldName: field?.label ?? '',\n element: field?.elementRef,\n heading: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.heading\n },\n description: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.description\n },\n errors: control.errors\n };\n errors[0].errors.push(error);\n });\n });\n });\n return errors;\n }\n /** @hidden */\n _collectAdvancedFormData() {\n let errors = [];\n const fields = this.formFields.length > 0 ? this.formFields : this._projectedFormFieldControls.toArray();\n /**\n * Iterates over form controls to collect their errors.\n * @param form Form Group or a collection of Form Groups.\n */\n const iterateOverForm = (form) => {\n if (Array.isArray(form)) {\n form.forEach((formGroup) => {\n errors = iterateOverForm(formGroup);\n });\n return errors;\n }\n Object.keys(form.controls).forEach((controlName) => {\n const control = form.get(controlName);\n const field = fields.find((formField) => formField.id === controlName);\n if (control instanceof FormGroup) {\n errors = iterateOverForm(control);\n }\n if (!control?.errors || !field) {\n return;\n }\n Object.keys(control.errors).forEach((errorKey) => {\n const errorDirective = field.formField?.groupedErrors.find((groupedError) => groupedError.directive.error === errorKey);\n const groupName = this._getGroupName(field?.formField);\n const error = this._getErrorModel(controlName, groupName, control, field, errorKey, errorDirective, control.errors[errorKey]);\n let errorGroupIndex = errors.findIndex((errorGroup) => errorGroup.group === groupName);\n if (errorGroupIndex === -1) {\n errorGroupIndex =\n errors.push({\n group: groupName,\n errors: []\n }) - 1;\n }\n const group = errors[errorGroupIndex];\n group.errors.push(error);\n });\n });\n return errors;\n };\n return iterateOverForm(this._ngForms.map((form) => form.form));\n }\n /**\n * @hidden\n * Creates error model\n */\n _getErrorModel(controlName, groupName, control, field, errorKey, errorDirective, error) {\n let state = 'error';\n const configError = this._config.errors[errorKey];\n if (errorDirective?.directive.type) {\n state = errorDirective.directive.type;\n }\n else if (this._isAdvancedError(configError)) {\n state = configError.type;\n }\n return {\n name: controlName,\n type: state,\n state: convertFormState(state),\n group: groupName,\n fieldName: field?.formField?.label ?? '',\n heading: this._getErrorText(field, errorDirective, 'heading', errorKey, error),\n description: this._getErrorText(field, errorDirective, 'description', errorKey, error),\n errors: control.errors,\n formField: field,\n element: field?.elementRef\n };\n }\n /**\n * @hidden\n * Creates error text based on the type of the error.\n * @param field Form Field Control.\n * @param errorDirective Optional Error directive\n * @param section Section where text should be rendered.\n * @param errorKey\n * @param error\n */\n _getErrorText(field, errorDirective, section = 'heading', errorKey, error) {\n const errorTextObj = {\n error: errorDirective?.error,\n type: errorDirective?.directive ? 'directive' : field?.formField?.i18Strings ? 'templateRef' : 'string'\n };\n if (errorTextObj.type === 'string') {\n const errorTextModel = this._getConfigErrorModel(errorKey);\n errorTextObj.error = error;\n errorTextObj.message = errorTextModel[section];\n return errorTextObj;\n }\n if (errorDirective?.directive) {\n errorTextObj.message =\n section === 'heading'\n ? (errorDirective.directive._headingTemplateRef ?? errorDirective.directive._descriptionTemplateRef)\n : errorDirective.directive._descriptionTemplateRef;\n return errorTextObj;\n }\n errorTextObj.message = field?.formField?.i18Strings ?? null;\n return errorTextObj;\n }\n /** @hidden */\n _getGroupName(formField) {\n const parts = [];\n if (formField?.formGroupContainer?.mainTitle) {\n parts.push(formField.formGroupContainer.mainTitle);\n }\n if (formField?.formFieldGroup?.label) {\n parts.push(formField.formFieldGroup.label);\n }\n return parts.join(', ');\n }\n /** @hidden */\n _getConfigErrorModel(errorKey, customErrorTypes) {\n const configError = customErrorTypes && customErrorTypes[errorKey] ? customErrorTypes[errorKey] : this._config.errors[errorKey];\n const isPlainError = !this._isAdvancedError(configError);\n const errorType = isPlainError ? 'error' : configError.type;\n const headingMessage = isPlainError ? configError : configError.heading;\n const descriptionMessage = isPlainError ? undefined : configError.description;\n return {\n type: errorType,\n heading: headingMessage,\n description: descriptionMessage\n };\n }\n /** @hidden */\n _isAdvancedError(error) {\n return !!error && typeof error !== 'string';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormWrapperComponent, deps: [{ token: i0.DestroyRef }, { token: FDP_MESSAGE_POPOVER_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.4\", type: MessagePopoverFormWrapperComponent, isStandalone: true, selector: \"fdp-message-popover-form-wrapper\", inputs: { forms: \"forms\", formFields: \"formFields\" }, queries: [{ propertyName: \"_projectedForm\", predicate: ControlContainer, descendants: true }, { propertyName: \"_projectedFormFieldControls\", predicate: FD_FORM_FIELD_CONTROL, descendants: true }, { propertyName: \"_directiveItems\", predicate: MessagePopoverFormItemDirective, descendants: true }], exportAs: [\"messagePopoverWrapper\"], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormWrapperComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fdp-message-popover-form-wrapper',\n template: `<ng-content></ng-content>`,\n exportAs: 'messagePopoverWrapper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.DestroyRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [FDP_MESSAGE_POPOVER_CONFIG]\n }] }], propDecorators: { _projectedForm: [{\n type: ContentChildren,\n args: [ControlContainer, { descendants: true }]\n }], _projectedFormFieldControls: [{\n type: ContentChildren,\n args: [FD_FORM_FIELD_CONTROL, { descendants: true }]\n }], _directiveItems: [{\n type: ContentChildren,\n args: [MessagePopoverFormItemDirective, { descendants: true }]\n }], forms: [{\n type: Input\n }], formFields: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9jb21wb25lbnRzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXIvbWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsU0FBUyxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBTy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDbkgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFRdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVkvQyxNQUFNLE9BQU8sa0NBQWtDO0lBZ0IzQzs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWdEO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FB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QVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBa0VRLE1BQU07MkJBQUMsMEJBQTBCO3lDQTlEckIsY0FBYztzQkFEOUIsZUFBZTt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBS3ZDLDJCQUEyQjtzQkFEM0MsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSzVDLGVBQWU7c0JBRC9CLGVBQWU7dUJBQUMsK0JBQStCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVVuRSxLQUFLO3NCQURSLEtBQUs7Z0JBY0YsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0LFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkRQX01FU1NBR0VfUE9QT1ZFUl9DT05GSUcsIE1lc3NhZ2VQb3BvdmVyQ29uZmlnLCBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vZGVmYXVsdC1jb25maWcnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbWVzc2FnZS1wb3BvdmVyLWZvcm0taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBNZXNzYWdlUG9wb3ZlckVudHJ5LFxuICAgIE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cCxcbiAgICBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dFxufSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLWVudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlcldyYXBwZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLXdyYXBwZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY29udmVydEZvcm1TdGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVBvcG92ZXJGb3JtID0gTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tZXNzYWdlLXBvcG92ZXItZm9ybS13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGV4cG9ydEFzOiAnbWVzc2FnZVBvcG92ZXJXcmFwcGVyJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVBvcG92ZXJGb3JtV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE1lc3NhZ2VQb3BvdmVyV3JhcHBlciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQ29udHJvbENvbnRhaW5lciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RlZEZvcm06IFF1ZXJ5TGlzdDxNZXNzYWdlUG9wb3ZlckZvcm0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzITogUXVlcnlMaXN0PFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpcmVjdGl2ZUl0ZW1zITogUXVlcnlMaXN0PE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIE1lc3NhZ2UgUG9wb3ZlciBpbnN0YW5jZS4gKi9cbiAgICBtZXNzYWdlUG9wb3ZlciQgPSBuZXcgU3ViamVjdDxNZXNzYWdlUG9wb3Zlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIFVzZXItcGFzc2VkIGZvcm1zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSkge1xuICAgICAgICBpZiAoIWZvcm1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZvcm1zKSkge1xuICAgICAgICAgICAgZm9ybXMgPSBbZm9ybXNdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX25nRm9ybXMgPSBmb3JtcztcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKiogVXNlci1wYXNzZWQgZm9ybSBmaWVsZHMuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybUZpZWxkcyh2YWx1ZTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10pIHtcbiAgICAgICAgdGhpcy5fZm9ybUZpZWxkcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1GaWVsZEVycm9ycyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1GaWVsZHMoKTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFcnJvciBtb2RlbHMgU2lnbmFsLiBFbWl0dGVkIHdoZW4gZm9ybSBzdWJtaXR0ZWQgYW5kIGNvbnRhaW5zIGludmFsaWQgZmllbGRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVycm9ycyQgPSBzaWduYWw8TWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUZpZWxkczogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUVycm9yc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ0Zvcm1zOiAoTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlKVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9NRVNTQUdFX1BPUE9WRVJfQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IE1lc3NhZ2VQb3BvdmVyQ29uZmlnXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEZvcm1zIGFyZSBwYXNzZWQgdmlhIGlucHV0IHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5fbmdGb3Jtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybT8uY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmdGb3JtcyA9IHRoaXMuX3Byb2plY3RlZEZvcm0udG9BcnJheSgpO1xuICAgICAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBNZXNzYWdlIFBvcG92ZXIgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHNldE1lc3NhZ2VQb3BvdmVyKG1lc3NhZ2VQb3BvdmVyOiBNZXNzYWdlUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VQb3BvdmVyJC5uZXh0KG1lc3NhZ2VQb3BvdmVyKTtcbiAgICAgICAgLy8gdGhpcy5tZXNzYWdlUG9wb3ZlciA9IG1lc3NhZ2VQb3BvdmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2dyYW1tYXRpY2FsbHkgYWRkIG5ldyBmb3JtIHRvIGFycmF5IG9mIGZvcm1zLlxuICAgICAqIEBwYXJhbSBmb3Jtc1xuICAgICAqL1xuICAgIGFkZEZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3Jtc0FycmF5ID0gQXJyYXkuaXNBcnJheShmb3JtcykgPyBmb3JtcyA6IFtmb3Jtc107XG4gICAgICAgIHRoaXMuX25nRm9ybXMucHVzaCguLi5mb3Jtc0FycmF5KTtcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9ncmFtbWF0aWNhbGx5IGFkZCBuZXcgZm9ybSBmaWVsZHMgdG8gYXJyYXkgb2YgbGlzdGVuZWQgZm9ybSBmaWVsZHMuXG4gICAgICogQHBhcmFtIGZvcm1GaWVsZHNcbiAgICAgKi9cbiAgICBhZGRGb3JtRmllbGRzKGZvcm1GaWVsZHM6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZHMucHVzaCguLi5mb3JtRmllbGRzKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnModGhpcy5fZm9ybUZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1FcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdGVucyB0byB0aGUgZm9ybSBzdWJtaXNzaW9uIGFuZCBjb2xsZWN0cyBmb3JtIGNvbnRyb2wgZXJyb3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N0YXJ0TGlzdGVuaW5nRm9yRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX25nRm9ybXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb3JtRXJyb3JzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmVycm9ycyQuc2V0KFtdKTtcblxuICAgICAgICBjb25zdCBmb3JtU3VibWl0RXZlbnRzID0gdGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+XG4gICAgICAgICAgICBmb3JtLm5nU3VibWl0LnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIGZvcm0uc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChmb3JtLnN0YXR1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHN0YXR1czogc3RyaW5nKSA9PiBzdGF0dXMudG9Mb3dlckNhc2UoKSAhPT0gJ3BlbmRpbmcnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1FcnJvcnNTdWJzY3JpcHRpb24gPSB6aXAoLi4uZm9ybVN1Ym1pdEV2ZW50cylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1TdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLl9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpIDogdGhpcy5fY29sbGVjdEFkdmFuY2VkRm9ybURhdGEoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzJC5zZXQoZXJyb3JzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzLnRvQXJyYXkoKSk7XG5cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybUZpZWxkQ29udHJvbHM/LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzLnRvQXJyYXkoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnMoZmllbGRzOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSXRlbUVycm9yc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgIGZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgICAgICBmaWVsZC5mb3JtRmllbGQ/LmVycm9yc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9mb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX2NvbGxlY3RQbGFpbkZvcm1EYXRhKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzJC5zZXQoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSB7XG4gICAgICAgIGNvbnN0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLl9uZ0Zvcm1zLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0uZm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5mb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuY29udHJvbD8ubmFtZSA9PT0gY29udHJvbE5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFjb250cm9sPy5lcnJvcnMgfHwgIWZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdFcnJvcnMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb25maWcuZXJyb3JzKTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChlcnJvcikgPT4gY29uZmlnRXJyb3JzLmluY2x1ZGVzKGVycm9yKSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGVycm9yS2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSwgZmllbGQuZXJyb3JUeXBlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckNvbmZpZyA9IGZpZWxkPy5lcnJvclR5cGVzID8gZmllbGQ/LmVycm9yVHlwZXNbZXJyb3JLZXldIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ29uZmlnICYmIHRoaXMuX2lzQWR2YW5jZWRFcnJvcihlcnJvckNvbmZpZykgJiYgZXJyb3JDb25maWcudHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVycm9yQ29uZmlnLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3I6IE1lc3NhZ2VQb3BvdmVyRW50cnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXJyb3JUZXh0TW9kZWwudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogY29udmVydEZvcm1TdGF0ZShlcnJvclN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5sYWJlbCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzWzBdLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk6IE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cFtdIHtcbiAgICAgICAgbGV0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5mb3JtRmllbGRzLmxlbmd0aCA+IDAgPyB0aGlzLmZvcm1GaWVsZHMgOiB0aGlzLl9wcm9qZWN0ZWRGb3JtRmllbGRDb250cm9scy50b0FycmF5KCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEl0ZXJhdGVzIG92ZXIgZm9ybSBjb250cm9scyB0byBjb2xsZWN0IHRoZWlyIGVycm9ycy5cbiAgICAgICAgICogQHBhcmFtIGZvcm0gRm9ybSBHcm91cCBvciBhIGNvbGxlY3Rpb24gb2YgRm9ybSBHcm91cHMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBpdGVyYXRlT3ZlckZvcm0gPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUdyb3VwW10pOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtKSkge1xuICAgICAgICAgICAgICAgIGZvcm0uZm9yRWFjaCgoZm9ybUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShmb3JtR3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuaWQgPT09IGNvbnRyb2xOYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShjb250cm9sKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2w/LmVycm9ycyB8fCAhZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5mb3JFYWNoKChlcnJvcktleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckRpcmVjdGl2ZSA9IGZpZWxkLmZvcm1GaWVsZD8uZ3JvdXBlZEVycm9ycy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGdyb3VwZWRFcnJvcikgPT4gZ3JvdXBlZEVycm9yLmRpcmVjdGl2ZS5lcnJvciA9PT0gZXJyb3JLZXlcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cE5hbWUgPSB0aGlzLl9nZXRHcm91cE5hbWUoZmllbGQ/LmZvcm1GaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5fZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3JHcm91cEluZGV4ID0gZXJyb3JzLmZpbmRJbmRleCgoZXJyb3JHcm91cCkgPT4gZXJyb3JHcm91cC5ncm91cCA9PT0gZ3JvdXBOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JHcm91cEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JHcm91cEluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSAtIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGVycm9yc1tlcnJvckdyb3VwSW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBpdGVyYXRlT3ZlckZvcm0odGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+IGZvcm0uZm9ybSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIG1vZGVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgY29udHJvbE5hbWU6IHN0cmluZyxcbiAgICAgICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgZmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JEaXJlY3RpdmU/OiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHQsXG4gICAgICAgIGVycm9yPzogYW55XG4gICAgKTogTWVzc2FnZVBvcG92ZXJFbnRyeSB7XG4gICAgICAgIGxldCBzdGF0ZTogRm9ybVN0YXRlcyA9ICdlcnJvcic7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID0gdGhpcy5fY29uZmlnLmVycm9yc1tlcnJvcktleV07XG5cbiAgICAgICAgaWYgKGVycm9yRGlyZWN0aXZlPy5kaXJlY3RpdmUudHlwZSkge1xuICAgICAgICAgICAgc3RhdGUgPSBlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUudHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0FkdmFuY2VkRXJyb3IoY29uZmlnRXJyb3IpKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IGNvbmZpZ0Vycm9yLnR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICB0eXBlOiBzdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlOiBjb252ZXJ0Rm9ybVN0YXRlKHN0YXRlKSxcbiAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5mb3JtRmllbGQ/LmxhYmVsID8/ICcnLFxuICAgICAgICAgICAgaGVhZGluZzogdGhpcy5fZ2V0RXJyb3JUZXh0KGZpZWxkLCBlcnJvckRpcmVjdGl2ZSwgJ2hlYWRpbmcnLCBlcnJvcktleSwgZXJyb3IpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuX2dldEVycm9yVGV4dChmaWVsZCwgZXJyb3JEaXJlY3RpdmUsICdkZXNjcmlwdGlvbicsIGVycm9yS2V5LCBlcnJvciksXG4gICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9ycyxcbiAgICAgICAgICAgIGZvcm1GaWVsZDogZmllbGQsXG4gICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIHRleHQgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhlIGVycm9yLlxuICAgICAqIEBwYXJhbSBmaWVsZCBGb3JtIEZpZWxkIENvbnRyb2wuXG4gICAgICogQHBhcmFtIGVycm9yRGlyZWN0aXZlIE9wdGlvbmFsIEVycm9yIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBzZWN0aW9uIFNlY3Rpb24gd2hlcmUgdGV4dCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgICogQHBhcmFtIGVycm9yS2V5XG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JUZXh0KFxuICAgICAgICBmaWVsZDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBlcnJvckRpcmVjdGl2ZTogTnVsbGFibGU8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0PixcbiAgICAgICAgc2VjdGlvbjogJ2hlYWRpbmcnIHwgJ2Rlc2NyaXB0aW9uJyA9ICdoZWFkaW5nJyxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3I/OiBhbnlcbiAgICApOiBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dCB7XG4gICAgICAgIGNvbnN0IGVycm9yVGV4dE9iajogTWVzc2FnZVBvcG92ZXJFcnJvclRleHQgPSB7XG4gICAgICAgICAgICBlcnJvcjogZXJyb3JEaXJlY3RpdmU/LmVycm9yLFxuICAgICAgICAgICAgdHlwZTogZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSA/ICdkaXJlY3RpdmUnIDogZmllbGQ/LmZvcm1GaWVsZD8uaTE4U3RyaW5ncyA/ICd0ZW1wbGF0ZVJlZicgOiAnc3RyaW5nJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChlcnJvclRleHRPYmoudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSk7XG5cbiAgICAgICAgICAgIGVycm9yVGV4dE9iai5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPSBlcnJvclRleHRNb2RlbFtzZWN0aW9uXTtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclRleHRPYmo7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24gPT09ICdoZWFkaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IChlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZiA/PyBlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWYpXG4gICAgICAgICAgICAgICAgICAgIDogZXJyb3JEaXJlY3RpdmUuZGlyZWN0aXZlLl9kZXNjcmlwdGlvblRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yVGV4dE9iajtcbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yVGV4dE9iai5tZXNzYWdlID0gZmllbGQ/LmZvcm1GaWVsZD8uaTE4U3RyaW5ncyA/PyBudWxsO1xuICAgICAgICByZXR1cm4gZXJyb3JUZXh0T2JqO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0R3JvdXBOYW1lKGZvcm1GaWVsZDogTnVsbGFibGU8UGxhdGZvcm1Gb3JtRmllbGQ+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaWYgKGZvcm1GaWVsZD8uZm9ybUdyb3VwQ29udGFpbmVyPy5tYWluVGl0bGUpIHtcbiAgICAgICAgICAgIHBhcnRzLnB1c2goZm9ybUZpZWxkLmZvcm1Hcm91cENvbnRhaW5lci5tYWluVGl0bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvcm1GaWVsZD8uZm9ybUZpZWxkR3JvdXA/LmxhYmVsKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGZvcm1GaWVsZC5mb3JtRmllbGRHcm91cC5sYWJlbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFydHMuam9pbignLCAnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbmZpZ0Vycm9yTW9kZWwoXG4gICAgICAgIGVycm9yS2V5OiBzdHJpbmcsXG4gICAgICAgIGN1c3RvbUVycm9yVHlwZXM/OiBNZXNzYWdlUG9wb3ZlckNvbmZpZ1snZXJyb3JzJ11cbiAgICApOiBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIHtcbiAgICAgICAgY29uc3QgY29uZmlnRXJyb3IgPVxuICAgICAgICAgICAgY3VzdG9tRXJyb3JUeXBlcyAmJiBjdXN0b21FcnJvclR5cGVzW2Vycm9yS2V5XSA/IGN1c3RvbUVycm9yVHlwZXNbZXJyb3JLZXldIDogdGhpcy5fY29uZmlnLmVycm9yc1tlcnJvcktleV07XG4gICAgICAgIGNvbnN0IGlzUGxhaW5FcnJvciA9ICF0aGlzLl9pc0FkdmFuY2VkRXJyb3IoY29uZmlnRXJyb3IpO1xuICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBpc1BsYWluRXJyb3IgPyAnZXJyb3InIDogY29uZmlnRXJyb3IudHlwZTtcbiAgICAgICAgY29uc3QgaGVhZGluZ01lc3NhZ2UgPSBpc1BsYWluRXJyb3IgPyBjb25maWdFcnJvciA6IGNvbmZpZ0Vycm9yLmhlYWRpbmc7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uTWVzc2FnZSA9IGlzUGxhaW5FcnJvciA/IHVuZGVmaW5lZCA6IGNvbmZpZ0Vycm9yLmRlc2NyaXB0aW9uO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICBoZWFkaW5nOiBoZWFkaW5nTWVzc2FnZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbk1lc3NhZ2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzQWR2YW5jZWRFcnJvcihlcnJvcjogc3RyaW5nIHwgTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZyk6IGVycm9yIGlzIE1lc3NhZ2VQb3BvdmVyRXJyb3JDb25maWcge1xuICAgICAgICByZXR1cm4gISFlcnJvciAmJiB0eXBlb2YgZXJyb3IgIT09ICdzdHJpbmcnO1xuICAgIH1cbn1cbiJdfQ==","import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DOCUMENT, DestroyRef, ElementRef, EventEmitter, HostBinding, Inject, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TabbableElementService, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { debounceTime } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/cdk/utils\";\nimport * as i2 from \"@fundamental-ngx/core/list\";\nexport class MessageViewComponent {\n /** @hidden */\n constructor(_destroyRef, _tabbableService, _document) {\n this._destroyRef = _destroyRef;\n this._tabbableService = _tabbableService;\n this._document = _document;\n /** Event emitted when user clicks on error entry containing additional description. */\n this.openDetails = new EventEmitter();\n /** Event emitted when user clicks on error entry and item's element should be focused. */\n this.focusItem = new EventEmitter();\n /** Event emitted when user clicks on the field link to focus on the field itself. */\n this.closePopover = new EventEmitter();\n /** @Hidden */\n this._initialClass = 'fd-message-popover__view-container';\n /** @hidden */\n this._activeListElement = null;\n }\n /** @hidden */\n ngAfterViewInit() {\n resizeObservable(this._detailsView.nativeElement)\n .pipe(debounceTime(20), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const { height } = this._detailsView.nativeElement.getBoundingClientRect();\n this._listView.nativeElement.style.minHeight = `${height}px`;\n });\n }\n /** @hidden */\n _showDetails(entry) {\n this._activeListElement = this._document.activeElement;\n if (!entry.description.message) {\n this._focusElement(undefined, entry);\n return;\n }\n this.currentScreen = 'details';\n this.openDetails.emit(entry);\n }\n /** @hidden */\n _focusElement(event, item) {\n if (!item?.element?.nativeElement) {\n return;\n }\n event?.stopImmediatePropagation();\n this.closePopover.emit(false);\n this.focusItem.emit(item);\n setTimeout(() => {\n const tabbableElement = this._tabbableService.getTabbableElement(item.element?.nativeElement);\n tabbableElement?.focus();\n });\n }\n /** @hidden */\n _onListAnimationComplete(event) {\n if (event.toState === 'open' && this._activeListElement) {\n this._activeListElement.focus();\n this._activeListElement = null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessageViewComponent, deps: [{ token: i0.DestroyRef }, { token: i1.TabbableElementService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: MessageViewComponent, isStandalone: true, selector: \"fdp-message-view\", inputs: { currentScreen: \"currentScreen\", filteredErrors: \"filteredErrors\", currentEntry: \"currentEntry\" }, outputs: { openDetails: \"openDetails\", focusItem: \"focusItem\", closePopover: \"closePopover\" }, host: { properties: { \"class\": \"this._initialClass\" } }, providers: [TabbableElementService], viewQueries: [{ propertyName: \"_listView\", first: true, predicate: [\"listView\"], descendants: true, read: ElementRef }, { propertyName: \"_detailsView\", first: true, predicate: [\"detailsView\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<ng-template #headingTemplate let-item>\\n <ng-template #directiveHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message || item.description.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.heading.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringHeading>\\n {{ item.heading.message | fdTranslate: { error: item.heading.error } : item.heading.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveHeading\\n : item.heading.type === 'string'\\n ? stringHeading\\n : i18nHeading\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<ng-template #descriptionTemplate let-item>\\n <ng-template #directiveDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.description.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringDescription>\\n {{ item.description.message | fdTranslate: { error: item.description.error } : item.description.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveDescription\\n : item.heading.type === 'string'\\n ? stringDescription\\n : i18nDescription\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<div class=\\\"fd-message-view\\\">\\n <section\\n class=\\\"fd-message-view__list\\\"\\n tabindex=\\\"-1\\\"\\n [@openCloseList]=\\\"currentScreen === 'list' ? 'open' : 'closed'\\\"\\n (@openCloseList.done)=\\\"_onListAnimationComplete($event)\\\"\\n fd-scrollbar\\n >\\n <ul #listView fd-list class=\\\"message-popover__list fd-list--message-view\\\" [navigationIndicator]=\\\"true\\\">\\n @for (group of filteredErrors; track group) {\\n @if (group.group) {\\n <li fd-list-group-header>\\n <span fd-list-title>{{ group.group }}</span>\\n </li>\\n }\\n @for (item of group.errors; track item; let i = $index) {\\n <li fd-list-item [tabindex]=\\\"i === 0 ? 0 : -1\\\" [byline]=\\\"true\\\" (click)=\\\"_showDetails(item)\\\">\\n <ng-template #itemIcon>\\n <span\\n fd-object-status\\n class=\\\"fd-list__icon\\\"\\n [status]=\\\"item.state\\\"\\n [glyph]=\\\"'message-' + item.type\\\"\\n ></span>\\n </ng-template>\\n <ng-template #listSubtitle>\\n <span class=\\\"fd-list__subtitle\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n ></ng-template>\\n </span>\\n </ng-template>\\n @if (item.element && !!item.description.message) {\\n <span fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>\\n <a tabindex=\\\"0\\\" fd-link (click)=\\\"_focusElement($event, item)\\\">\\n {{ item.fieldName }}\\n </a>\\n </span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </span>\\n } @else {\\n <a fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>{{ item.fieldName }}</span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </a>\\n }\\n </li>\\n }\\n }\\n </ul>\\n </section>\\n <section class=\\\"fd-message-view__details\\\" [@openCloseDetails]=\\\"currentScreen === 'details' ? 'open' : 'closed'\\\">\\n <div #detailsView>\\n @if (currentEntry) {\\n <span class=\\\"fd-message-view__details-title\\\">\\n <span\\n fd-object-status\\n class=\\\"fd-message-view__icon\\\"\\n [status]=\\\"currentEntry.state\\\"\\n [glyph]=\\\"'message-' + currentEntry.type\\\"\\n ></span>\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n @if (currentEntry.description.message) {\\n <span class=\\\"fd-message-view__details-description\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"descriptionTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n }\\n }\\n </div>\\n </section>\\n</div>\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: ScrollbarDirective, selector: \"[fdScrollbar], [fd-scrollbar]\", inputs: [\"noHorizontalScroll\", \"noVerticalScroll\", \"alwaysVisible\"] }, { kind: \"ngmodule\", type: ListModule }, { kind: \"component\", type: i2.ListComponent, selector: \"[fd-list], [fdList]\", inputs: [\"dropdownMode\", \"multiInputMode\", \"mobileMode\", \"hasMessage\", \"noBorder\", \"navigationIndicator\", \"selection\", \"keyboardSupport\", \"byline\", \"subline\", \"theme\", \"unreadIndicator\", \"role\", \"settingsList\", \"settingsListFooter\"], outputs: [\"focusEscapeList\"] }, { kind: \"component\", type: i2.ListItemComponent, selector: \"[fdListItem] ,[fd-list-item]\", inputs: [\"selected\", \"noData\", \"action\", \"interactive\", \"growing\", \"counter\", \"active\", \"unread\", \"byline\", \"ariaRole\", \"id\", \"preventClick\", \"settingsListTpl\"], outputs: [\"keyDown\"], exportAs: [\"fdListItem\"] }, { kind: \"directive\", type: i2.ListTitleDirective, selector: \"[fd-list-title], [fdListTitle]\", inputs: [\"wrap\", \"truncate\"] }, { kind: \"directive\", type: i2.ListGroupHeaderDirective, selector: \"[fdListGroupHeader], [fd-list-group-header]\", inputs: [\"nativeElementId\"], outputs: [\"keyDown\"] }, { kind: \"directive\", type: i2.ListLinkDirective, selector: \"[fd-list-link], [fdListLink]\", inputs: [\"navigationIndicator\", \"navigated\", \"focusable\"] }, { kind: \"directive\", type: i2.ListContentDirective, selector: \"[fdListContent], [fd-list-content]\", inputs: [\"twoCol\"] }, { kind: \"component\", type: ObjectStatusComponent, selector: \"[fd-object-status]\", inputs: [\"class\", \"status\", \"glyph\", \"glyphFont\", \"label\", \"glyphAriaLabel\", \"indicationColor\", \"clickable\", \"inverted\", \"large\", \"secondaryIndication\", \"textTemplate\"] }, { kind: \"component\", type: LinkComponent, selector: \"[fdLink], [fd-link]\", inputs: [\"class\", \"emphasized\", \"disabled\", \"inverted\", \"subtle\", \"undecorated\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], animations: [\n trigger('openCloseList', [\n // ...\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1\n })),\n state('closed', style({\n transform: 'translateX(-50px)',\n opacity: 0\n })),\n transition('open => closed', [animate('.1s cubic-bezier(0, 0, 0.2, 1)')]),\n transition('closed => open', [animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')])\n ]),\n trigger('openCloseDetails', [\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n })),\n state('closed', style({\n transform: 'translateX(50px)',\n opacity: 0\n })),\n transition('open => closed', [\n animate('.1s cubic-bezier(0, 0, 0.2, 1)', keyframes([\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n }),\n style({\n transform: 'translateX(50px)',\n opacity: 0,\n display: 'none'\n })\n ]))\n ]),\n transition('closed => open', [\n style({\n display: 'block'\n }),\n animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessageViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-message-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [TabbableElementService], animations: [\n trigger('openCloseList', [\n // ...\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1\n })),\n state('closed', style({\n transform: 'translateX(-50px)',\n opacity: 0\n })),\n transition('open => closed', [animate('.1s cubic-bezier(0, 0, 0.2, 1)')]),\n transition('closed => open', [animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')])\n ]),\n trigger('openCloseDetails', [\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n })),\n state('closed', style({\n transform: 'translateX(50px)',\n opacity: 0\n })),\n transition('open => closed', [\n animate('.1s cubic-bezier(0, 0, 0.2, 1)', keyframes([\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n }),\n style({\n transform: 'translateX(50px)',\n opacity: 0,\n display: 'none'\n })\n ]))\n ]),\n transition('closed => open', [\n style({\n display: 'block'\n }),\n animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')\n ])\n ])\n ], imports: [\n NgTemplateOutlet,\n CdkScrollable,\n ScrollbarDirective,\n ListModule,\n ObjectStatusComponent,\n LinkComponent,\n FdTranslatePipe\n ], template: \"<ng-template #headingTemplate let-item>\\n <ng-template #directiveHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message || item.description.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.heading.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringHeading>\\n {{ item.heading.message | fdTranslate: { error: item.heading.error } : item.heading.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveHeading\\n : item.heading.type === 'string'\\n ? stringHeading\\n : i18nHeading\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<ng-template #descriptionTemplate let-item>\\n <ng-template #directiveDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.description.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringDescription>\\n {{ item.description.message | fdTranslate: { error: item.description.error } : item.description.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveDescription\\n : item.heading.type === 'string'\\n ? stringDescription\\n : i18nDescription\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<div class=\\\"fd-message-view\\\">\\n <section\\n class=\\\"fd-message-view__list\\\"\\n tabindex=\\\"-1\\\"\\n [@openCloseList]=\\\"currentScreen === 'list' ? 'open' : 'closed'\\\"\\n (@openCloseList.done)=\\\"_onListAnimationComplete($event)\\\"\\n fd-scrollbar\\n >\\n <ul #listView fd-list class=\\\"message-popover__list fd-list--message-view\\\" [navigationIndicator]=\\\"true\\\">\\n @for (group of filteredErrors; track group) {\\n @if (group.group) {\\n <li fd-list-group-header>\\n <span fd-list-title>{{ group.group }}</span>\\n </li>\\n }\\n @for (item of group.errors; track item; let i = $index) {\\n <li fd-list-item [tabindex]=\\\"i === 0 ? 0 : -1\\\" [byline]=\\\"true\\\" (click)=\\\"_showDetails(item)\\\">\\n <ng-template #itemIcon>\\n <span\\n fd-object-status\\n class=\\\"fd-list__icon\\\"\\n [status]=\\\"item.state\\\"\\n [glyph]=\\\"'message-' + item.type\\\"\\n ></span>\\n </ng-template>\\n <ng-template #listSubtitle>\\n <span class=\\\"fd-list__subtitle\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n ></ng-template>\\n </span>\\n </ng-template>\\n @if (item.element && !!item.description.message) {\\n <span fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>\\n <a tabindex=\\\"0\\\" fd-link (click)=\\\"_focusElement($event, item)\\\">\\n {{ item.fieldName }}\\n </a>\\n </span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </span>\\n } @else {\\n <a fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>{{ item.fieldName }}</span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </a>\\n }\\n </li>\\n }\\n }\\n </ul>\\n </section>\\n <section class=\\\"fd-message-view__details\\\" [@openCloseDetails]=\\\"currentScreen === 'details' ? 'open' : 'closed'\\\">\\n <div #detailsView>\\n @if (currentEntry) {\\n <span class=\\\"fd-message-view__details-title\\\">\\n <span\\n fd-object-status\\n class=\\\"fd-message-view__icon\\\"\\n [status]=\\\"currentEntry.state\\\"\\n [glyph]=\\\"'message-' + currentEntry.type\\\"\\n ></span>\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n @if (currentEntry.description.message) {\\n <span class=\\\"fd-message-view__details-description\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"descriptionTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n }\\n }\\n </div>\\n </section>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i0.DestroyRef }, { type: i1.TabbableElementService }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { currentScreen: [{\n type: Input\n }], filteredErrors: [{\n type: Input\n }], currentEntry: [{\n type: Input\n }], openDetails: [{\n type: Output\n }], focusItem: [{\n type: Output\n }], closePopover: [{\n type: Output\n }], _listView: [{\n type: ViewChild,\n args: ['listView', { read: ElementRef }]\n }], _detailsView: [{\n type: ViewChild,\n args: ['detailsView', { read: ElementRef }]\n }], _initialClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL2NvbXBvbmVudHMvbWVzc2FnZS12aWV3L21lc3NhZ2Utdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9jb21wb25lbnRzL21lc3NhZ2Utdmlldy9tZXNzYWdlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQVksc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0Is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O3NCQURuQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSzdCLGFBQWE7c0JBRDdCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERPQ1VNRU5ULFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVGFiYmFibGVFbGVtZW50U2VydmljZSwgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGluayc7XG5pbXBvcnQgeyBMaXN0TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL29iamVjdC1zdGF0dXMnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlckVudHJ5LCBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXAgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLWVudHJ5LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLW1lc3NhZ2UtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2Utdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ29wZW5DbG9zZUxpc3QnLCBbXG4gICAgICAgICAgICAvLyAuLi5cbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdvcGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnY2xvc2VkJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTUwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW2FuaW1hdGUoJzAuMXMgLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyldKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcignb3BlbkNsb3NlRGV0YWlscycsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdvcGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnY2xvc2VkJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoNTBweCknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICAnLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaydcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoNTBweCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMC4xcyAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBMaXN0TW9kdWxlLFxuICAgICAgICBPYmplY3RTdGF0dXNDb21wb25lbnQsXG4gICAgICAgIExpbmtDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKiogQ3VycmVudCBNZXNzYWdlIFBvcG92ZXIgc2NyZWVuLiBDYW4gYmUgZWl0aGVyIGBsaXN0YCBvciBgZGV0YWlsc2AuICovXG4gICAgQElucHV0KClcbiAgICBjdXJyZW50U2NyZWVuOiAnbGlzdCcgfCAnZGV0YWlscyc7XG5cbiAgICAvKiogRmlsdGVyZWQgZXJyb3JzIHRvIHJlbmRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcmVkRXJyb3JzOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXTtcblxuICAgIC8qKiBDdXJyZW50IGVycm9yIGVudHJ5LiBVc2VkIGZvciBkZXRhaWxzIHZpZXcuICovXG4gICAgQElucHV0KClcbiAgICBjdXJyZW50RW50cnk6IE51bGxhYmxlPE1lc3NhZ2VQb3BvdmVyRW50cnk+O1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBlcnJvciBlbnRyeSBjb250YWluaW5nIGFkZGl0aW9uYWwgZGVzY3JpcHRpb24uICovXG4gICAgQE91dHB1dCgpXG4gICAgb3BlbkRldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VQb3BvdmVyRW50cnk+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIGVycm9yIGVudHJ5IGFuZCBpdGVtJ3MgZWxlbWVudCBzaG91bGQgYmUgZm9jdXNlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VQb3BvdmVyRW50cnk+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIHRoZSBmaWVsZCBsaW5rIHRvIGZvY3VzIG9uIHRoZSBmaWVsZCBpdHNlbGYuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xvc2VQb3BvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsaXN0VmlldycsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByaXZhdGUgX2xpc3RWaWV3OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkZXRhaWxzVmlldycsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByaXZhdGUgX2RldGFpbHNWaWV3OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbml0aWFsQ2xhc3MgPSAnZmQtbWVzc2FnZS1wb3BvdmVyX192aWV3LWNvbnRhaW5lcic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZUxpc3RFbGVtZW50OiBOdWxsYWJsZTxIVE1MRWxlbWVudD4gPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVTZXJ2aWNlOiBUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9kZXRhaWxzVmlldy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBoZWlnaHQgfSA9IHRoaXMuX2RldGFpbHNWaWV3Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdFZpZXcubmF0aXZlRWxlbWVudC5zdHlsZS5taW5IZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0RldGFpbHMoZW50cnk6IE1lc3NhZ2VQb3BvdmVyRW50cnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlTGlzdEVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIWVudHJ5LmRlc2NyaXB0aW9uLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzRWxlbWVudCh1bmRlZmluZWQsIGVudHJ5KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRTY3JlZW4gPSAnZGV0YWlscyc7XG4gICAgICAgIHRoaXMub3BlbkRldGFpbHMuZW1pdChlbnRyeSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXNFbGVtZW50KGV2ZW50PzogTW91c2VFdmVudCwgaXRlbT86IE1lc3NhZ2VQb3BvdmVyRW50cnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpdGVtPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQ/LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmNsb3NlUG9wb3Zlci5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb2N1c0l0ZW0uZW1pdChpdGVtKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnQgPSB0aGlzLl90YWJiYWJsZVNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0YWJiYWJsZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTGlzdEFuaW1hdGlvbkNvbXBsZXRlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdvcGVuJyAmJiB0aGlzLl9hY3RpdmVMaXN0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlTGlzdEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUxpc3RFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjaGVhZGluZ1RlbXBsYXRlIGxldC1pdGVtPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGlyZWN0aXZlSGVhZGluZz5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLmhlYWRpbmcubWVzc2FnZSB8fCBpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2VcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmhlYWRpbmcuZXJyb3IgfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNpMThuSGVhZGluZz5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLmhlYWRpbmcubWVzc2FnZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0uZXJyb3JzIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3RyaW5nSGVhZGluZz5cbiAgICAgICAge3sgaXRlbS5oZWFkaW5nLm1lc3NhZ2UgfCBmZFRyYW5zbGF0ZTogeyBlcnJvcjogaXRlbS5oZWFkaW5nLmVycm9yIH0gOiBpdGVtLmhlYWRpbmcubWVzc2FnZSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgICAgICAgaXRlbS5oZWFkaW5nLnR5cGUgPT09ICdkaXJlY3RpdmUnXG4gICAgICAgICAgICAgICAgPyBkaXJlY3RpdmVIZWFkaW5nXG4gICAgICAgICAgICAgICAgOiBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gc3RyaW5nSGVhZGluZ1xuICAgICAgICAgICAgICAgICAgOiBpMThuSGVhZGluZ1xuICAgICAgICBcIlxuICAgID48L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVzY3JpcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8bmctdGVtcGxhdGUgI2RpcmVjdGl2ZURlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmRlc2NyaXB0aW9uLmVycm9yIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaTE4bkRlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmVycm9ycyB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3N0cmluZ0Rlc2NyaXB0aW9uPlxuICAgICAgICB7eyBpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2UgfCBmZFRyYW5zbGF0ZTogeyBlcnJvcjogaXRlbS5kZXNjcmlwdGlvbi5lcnJvciB9IDogaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiXG4gICAgICAgICAgICBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ2RpcmVjdGl2ZSdcbiAgICAgICAgICAgICAgICA/IGRpcmVjdGl2ZURlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgOiBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gc3RyaW5nRGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgIDogaTE4bkRlc2NyaXB0aW9uXG4gICAgICAgIFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuPGRpdiBjbGFzcz1cImZkLW1lc3NhZ2Utdmlld1wiPlxuICAgIDxzZWN0aW9uXG4gICAgICAgIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19saXN0XCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIFtAb3BlbkNsb3NlTGlzdF09XCJjdXJyZW50U2NyZWVuID09PSAnbGlzdCcgPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICAgIChAb3BlbkNsb3NlTGlzdC5kb25lKT1cIl9vbkxpc3RBbmltYXRpb25Db21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgZmQtc2Nyb2xsYmFyXG4gICAgPlxuICAgICAgICA8dWwgI2xpc3RWaWV3IGZkLWxpc3QgY2xhc3M9XCJtZXNzYWdlLXBvcG92ZXJfX2xpc3QgZmQtbGlzdC0tbWVzc2FnZS12aWV3XCIgW25hdmlnYXRpb25JbmRpY2F0b3JdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgQGZvciAoZ3JvdXAgb2YgZmlsdGVyZWRFcnJvcnM7IHRyYWNrIGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgQGlmIChncm91cC5ncm91cCkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1ncm91cC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IGdyb3VwLmdyb3VwIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdyb3VwLmVycm9yczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBbdGFiaW5kZXhdPVwiaSA9PT0gMCA/IDAgOiAtMVwiIFtieWxpbmVdPVwidHJ1ZVwiIChjbGljayk9XCJfc2hvd0RldGFpbHMoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cIml0ZW0uc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ21lc3NhZ2UtJyArIGl0ZW0udHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xpc3RTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWxpc3RfX3N1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5lbGVtZW50ICYmICEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1saW5rIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIiEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtSWNvblwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgZmQtbGluayAoY2xpY2spPVwiX2ZvY3VzRWxlbWVudCgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZmllbGROYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RTdWJ0aXRsZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgW25hdmlnYXRpb25JbmRpY2F0b3JdPVwiISFpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1JY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBpdGVtLmZpZWxkTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3VidGl0bGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2RldGFpbHNcIiBbQG9wZW5DbG9zZURldGFpbHNdPVwiY3VycmVudFNjcmVlbiA9PT0gJ2RldGFpbHMnID8gJ29wZW4nIDogJ2Nsb3NlZCdcIj5cbiAgICAgICAgPGRpdiAjZGV0YWlsc1ZpZXc+XG4gICAgICAgICAgICBAaWYgKGN1cnJlbnRFbnRyeSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19kZXRhaWxzLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW1lc3NhZ2Utdmlld19faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cImN1cnJlbnRFbnRyeS5zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ21lc3NhZ2UtJyArIGN1cnJlbnRFbnRyeS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjdXJyZW50RW50cnkgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGN1cnJlbnRFbnRyeS5kZXNjcmlwdGlvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19kZXRhaWxzLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGN1cnJlbnRFbnRyeSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, computed, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { InitialFocusDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { PopoverComponent, PopoverModule } from '@fundamental-ngx/core/popover';\nimport { SegmentedButtonComponent } from '@fundamental-ngx/core/segmented-button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { getFormState } from '@fundamental-ngx/platform/form';\nimport { countBy, flatten } from 'lodash-es';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport { convertFormState, convertFormStateToMessagePopoverState } from './utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/popover\";\nimport * as i2 from \"@fundamental-ngx/core/bar\";\nimport * as i3 from \"@angular/forms\";\nexport class MessagePopoverComponent {\n constructor() {\n /** Event emits when user clicks on error entry and item's element needs to be focused. */\n this.focusItem = new EventEmitter();\n /** Current message popover screen. Can be `list` or `details`. */\n this.currentScreen = 'list';\n /** @hidden */\n this._currentErrorType$ = signal('all', ...(ngDevMode ? [{ debugName: \"_currentErrorType$\" }] : []));\n /** @hidden */\n this._errorTypes$ = computed(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors);\n return errorTypes.map((errorType) => ({\n group: errorType,\n count: countedErrors[errorType],\n state: convertFormState(errorType)\n }));\n }, ...(ngDevMode ? [{ debugName: \"_errorTypes$\" }] : []));\n /** @hidden */\n this._priorityStateItemsCount$ = computed(() => this._countedErrors$()[this._priorityFormState$()] || 0, ...(ngDevMode ? [{ debugName: \"_priorityStateItemsCount$\" }] : []));\n /** @hidden */\n this._priorityFormState$ = computed(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors);\n return getFormState(errorTypes);\n }, ...(ngDevMode ? [{ debugName: \"_priorityFormState$\" }] : []));\n /** @hidden */\n this._priorityState$ = computed(() => convertFormStateToMessagePopoverState(this._priorityFormState$()), ...(ngDevMode ? [{ debugName: \"_priorityState$\" }] : []));\n /** @hidden */\n this._filteredErrors$ = computed(() => {\n const groupedErrors = this._groupedErrors$();\n const errorType = this._currentErrorType$();\n if (errorType === 'all') {\n return groupedErrors;\n }\n const filteredErrors = [];\n groupedErrors.forEach((group) => {\n const errors = group.errors.filter((error) => error.type === errorType);\n if (errors.length === 0) {\n return;\n }\n filteredErrors.push({\n group: group.group,\n errors\n });\n });\n return filteredErrors;\n }, ...(ngDevMode ? [{ debugName: \"_filteredErrors$\" }] : []));\n this._groupedErrors$ = computed(() => this._wrapper$()?.errors$() || [], ...(ngDevMode ? [{ debugName: \"_groupedErrors$\" }] : []));\n this._wrapper$ = signal(null, ...(ngDevMode ? [{ debugName: \"_wrapper$\" }] : []));\n this._countedErrors$ = computed(() => countBy(flatten(Object.values(this._groupedErrors$().map((group) => group.errors))), 'type'), ...(ngDevMode ? [{ debugName: \"_countedErrors$\" }] : []));\n }\n /** Message Popover Wrapper component. */\n set wrapper(value) {\n value?.setMessagePopover(this);\n this._wrapper$.set(value);\n }\n get wrapper() {\n return this._wrapper$();\n }\n /** @hidden */\n _showList() {\n this.currentScreen = 'list';\n this.currentEntry = null;\n }\n /** @hidden */\n _showDetails(entry) {\n this.currentScreen = 'details';\n this.currentEntry = entry;\n }\n /** @hidden */\n _closePopover(focusLast = true) {\n this._popover.close(focusLast);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: MessagePopoverComponent, isStandalone: true, selector: \"fdp-message-popover\", inputs: { wrapper: \"wrapper\" }, outputs: { focusItem: \"focusItem\" }, viewQueries: [{ propertyName: \"_popover\", first: true, predicate: [\"popover\"], descendants: true }], ngImport: i0, template: \"@if (_errorTypes$().length > 0) {\\n <fd-popover\\n #popover\\n placement=\\\"top-start\\\"\\n [focusTrapped]=\\\"true\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [disableScrollbar]=\\\"true\\\"\\n >\\n <fd-popover-control>\\n <button\\n fd-button\\n type=\\\"button\\\"\\n class=\\\"fd-message-popover__trigger fd-message-popover__trigger\\\"\\n [ngClass]=\\\"'fd-message-popover__trigger--' + _priorityState$()\\\"\\n [glyph]=\\\"'message-' + _priorityFormState$()\\\"\\n [label]=\\\"_priorityStateItemsCount$().toString()\\\"\\n ></button>\\n </fd-popover-control>\\n <div>\\n <div fd-popover-body-header>\\n <div fd-bar barDesign=\\\"header\\\" class=\\\"fd-bar--growing\\\">\\n <div fd-bar-left>\\n @if (currentScreen === 'list') {\\n <fd-segmented-button\\n [ngModel]=\\\"_currentErrorType$()\\\"\\n (ngModelChange)=\\\"_currentErrorType$.set($event)\\\"\\n >\\n <button\\n fd-button\\n [label]=\\\"'platformMessagePopover.allErrors' | fdTranslate\\\"\\n value=\\\"all\\\"\\n ></button>\\n @for (type of _errorTypes$(); track type) {\\n <button fd-button [value]=\\\"type.group\\\">\\n <span\\n fd-object-status\\n [status]=\\\"type.state\\\"\\n [glyph]=\\\"'message-' + type.group\\\"\\n ></span>\\n <span class=\\\"fd-button__text\\\">{{ type.count }}</span>\\n </button>\\n }\\n </fd-segmented-button>\\n }\\n @if (currentScreen === 'details') {\\n <button\\n fd-button\\n fdkInitialFocus\\n fdType=\\\"transparent\\\"\\n glyph=\\\"navigation-left-arrow\\\"\\n title=\\\"Go back\\\"\\n (click)=\\\"_showList()\\\"\\n ></button>\\n }\\n </div>\\n <div fd-bar-right>\\n <button fd-button fdType=\\\"transparent\\\" (click)=\\\"popover.close()\\\" glyph=\\\"decline\\\"></button>\\n </div>\\n </div>\\n </div>\\n <fdp-message-view\\n [currentScreen]=\\\"currentScreen\\\"\\n [filteredErrors]=\\\"_filteredErrors$()\\\"\\n [currentEntry]=\\\"currentEntry\\\"\\n (openDetails)=\\\"_showDetails($event)\\\"\\n (closePopover)=\\\"_closePopover($event)\\\"\\n (focusItem)=\\\"focusItem.emit($event)\\\"\\n ></fdp-message-view>\\n </div>\\n </fd-popover>\\n}\\n\", styles: [\".fd-message-view{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;position:relative}.fd-message-view:after,.fd-message-view:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-height:50vh;max-width:26rem;padding-block:0;padding-inline:0}.fd-message-view__list:after,.fd-message-view__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list--hidden{opacity:0}.fd-message-view__details{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;inset:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:3.5rem 1rem;position:absolute}.fd-message-view__details:after,.fd-message-view__details:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader5Size);font-weight:400;font-weight:var(--sapFontHeaderWeight);forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal;-webkit-margin-start:0;margin-inline-start:0}.fd-message-view__details-title:after,.fd-message-view__details-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title .fd-message-view__icon{font-size:1rem;margin-block:0;margin-inline:-2rem .5rem}.fd-message-view__details-description{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.4;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal}.fd-message-view__details-description:after,.fd-message-view__details-description:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details--visible{display:block}.fd-message-popover__trigger{--fdButtonFocusColor:var(--sapContent_ContrastFocusColor);border-width:var(--fdMessagePopover_Trigger_Border_Width);text-shadow:var(--fdButtonTextShadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--critical:hover{--fdButtonColor:var(--sapButton_Critical_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Hover_Background);--fdButtonBorderColor:var(--sapButton_Critical_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--critical:active{--fdButtonColor:var(--sapButton_Critical_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Active_Background);--fdButtonBorderColor:var(--sapButton_Critical_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical[aria-disabled=true]{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--negative{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--negative:hover{--fdButtonColor:var(--sapButton_Negative_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Hover_Background);--fdButtonBorderColor:var(--sapButton_Negative_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--negative:active{--fdButtonColor:var(--sapButton_Negative_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Active_Background);--fdButtonBorderColor:var(--sapButton_Negative_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--success{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--success:hover{--fdButtonColor:var(--sapButton_Success_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Hover_Background);--fdButtonBorderColor:var(--sapButton_Success_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--success:active{--fdButtonColor:var(--sapButton_Success_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Active_Background);--fdButtonBorderColor:var(--sapButton_Success_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success[aria-disabled=true]{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--information{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Information_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--information:hover{--fdButtonColor:var(--fdMessagePopover_Information_Hover_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Hover_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Hover_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--information:active{--fdButtonColor:var(--fdMessagePopover_Information_Active_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Active_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Active_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information[aria-disabled=true]{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__view-container{border-bottom-left-radius:var(--fdPopover_Border_Radius);border-bottom-right-radius:var(--fdPopover_Border_Radius);overflow:hidden;display:block;max-height:40vh}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child:before{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-view__list{min-width:20rem;min-height:10rem;max-height:40vh}.fd-message-view__list .fd-link{font-size:inherit}.fd-message-view__list .fd-list__link:active,.fd-message-view__list .fd-list__link.is-active{--sapLinkColor: var(--sapList_Active_TextColor);--sapLink_Active_Color: var(--sapList_Active_TextColor)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/message-popover.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], dependencies: [{ kind: \"ngmodule\", type: PopoverModule }, { kind: \"component\", type: i1.PopoverControlComponent, selector: \"fd-popover-control, [fdPopoverControl]\" }, { kind: \"directive\", type: i1.PopoverBodyHeaderDirective, selector: \"[fdPopoverBodyHeader], [fd-popover-body-header]\" }, { kind: \"component\", type: i1.PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: BarModule }, { kind: \"component\", type: i2.BarComponent, selector: \"[fd-bar]\", inputs: [\"class\", \"barDesign\", \"inPage\", \"inHomePage\", \"clear\", \"size\", \"role\"] }, { kind: \"directive\", type: i2.BarLeftDirective, selector: \"[fd-bar-left]\" }, { kind: \"directive\", type: i2.BarRightDirective, selector: \"[fd-bar-right]\" }, { kind: \"component\", type: SegmentedButtonComponent, selector: \"fd-segmented-button\", inputs: [\"toggle\", \"vertical\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: ObjectStatusComponent, selector: \"[fd-object-status]\", inputs: [\"class\", \"status\", \"glyph\", \"glyphFont\", \"label\", \"glyphAriaLabel\", \"indicationColor\", \"clickable\", \"inverted\", \"large\", \"secondaryIndication\", \"textTemplate\"] }, { kind: \"directive\", type: InitialFocusDirective, selector: \"[fdkInitialFocus]\", inputs: [\"fdkInitialFocus\", \"enabled\", \"focusLastElement\"] }, { kind: \"component\", type: MessageViewComponent, selector: \"fdp-message-view\", inputs: [\"currentScreen\", \"filteredErrors\", \"currentEntry\"], outputs: [\"openDetails\", \"focusItem\", \"closePopover\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-message-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n PopoverModule,\n ButtonComponent,\n NgClass,\n BarModule,\n SegmentedButtonComponent,\n FormsModule,\n ObjectStatusComponent,\n InitialFocusDirective,\n MessageViewComponent,\n FdTranslatePipe\n ], template: \"@if (_errorTypes$().length > 0) {\\n <fd-popover\\n #popover\\n placement=\\\"top-start\\\"\\n [focusTrapped]=\\\"true\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [disableScrollbar]=\\\"true\\\"\\n >\\n <fd-popover-control>\\n <button\\n fd-button\\n type=\\\"button\\\"\\n class=\\\"fd-message-popover__trigger fd-message-popover__trigger\\\"\\n [ngClass]=\\\"'fd-message-popover__trigger--' + _priorityState$()\\\"\\n [glyph]=\\\"'message-' + _priorityFormState$()\\\"\\n [label]=\\\"_priorityStateItemsCount$().toString()\\\"\\n ></button>\\n </fd-popover-control>\\n <div>\\n <div fd-popover-body-header>\\n <div fd-bar barDesign=\\\"header\\\" class=\\\"fd-bar--growing\\\">\\n <div fd-bar-left>\\n @if (currentScreen === 'list') {\\n <fd-segmented-button\\n [ngModel]=\\\"_currentErrorType$()\\\"\\n (ngModelChange)=\\\"_currentErrorType$.set($event)\\\"\\n >\\n <button\\n fd-button\\n [label]=\\\"'platformMessagePopover.allErrors' | fdTranslate\\\"\\n value=\\\"all\\\"\\n ></button>\\n @for (type of _errorTypes$(); track type) {\\n <button fd-button [value]=\\\"type.group\\\">\\n <span\\n fd-object-status\\n [status]=\\\"type.state\\\"\\n [glyph]=\\\"'message-' + type.group\\\"\\n ></span>\\n <span class=\\\"fd-button__text\\\">{{ type.count }}</span>\\n </button>\\n }\\n </fd-segmented-button>\\n }\\n @if (currentScreen === 'details') {\\n <button\\n fd-button\\n fdkInitialFocus\\n fdType=\\\"transparent\\\"\\n glyph=\\\"navigation-left-arrow\\\"\\n title=\\\"Go back\\\"\\n (click)=\\\"_showList()\\\"\\n ></button>\\n }\\n </div>\\n <div fd-bar-right>\\n <button fd-button fdType=\\\"transparent\\\" (click)=\\\"popover.close()\\\" glyph=\\\"decline\\\"></button>\\n </div>\\n </div>\\n </div>\\n <fdp-message-view\\n [currentScreen]=\\\"currentScreen\\\"\\n [filteredErrors]=\\\"_filteredErrors$()\\\"\\n [currentEntry]=\\\"currentEntry\\\"\\n (openDetails)=\\\"_showDetails($event)\\\"\\n (closePopover)=\\\"_closePopover($event)\\\"\\n (focusItem)=\\\"focusItem.emit($event)\\\"\\n ></fdp-message-view>\\n </div>\\n </fd-popover>\\n}\\n\", styles: [\".fd-message-view{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;position:relative}.fd-message-view:after,.fd-message-view:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-height:50vh;max-width:26rem;padding-block:0;padding-inline:0}.fd-message-view__list:after,.fd-message-view__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list--hidden{opacity:0}.fd-message-view__details{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;inset:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:3.5rem 1rem;position:absolute}.fd-message-view__details:after,.fd-message-view__details:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader5Size);font-weight:400;font-weight:var(--sapFontHeaderWeight);forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal;-webkit-margin-start:0;margin-inline-start:0}.fd-message-view__details-title:after,.fd-message-view__details-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title .fd-message-view__icon{font-size:1rem;margin-block:0;margin-inline:-2rem .5rem}.fd-message-view__details-description{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.4;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal}.fd-message-view__details-description:after,.fd-message-view__details-description:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details--visible{display:block}.fd-message-popover__trigger{--fdButtonFocusColor:var(--sapContent_ContrastFocusColor);border-width:var(--fdMessagePopover_Trigger_Border_Width);text-shadow:var(--fdButtonTextShadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--critical:hover{--fdButtonColor:var(--sapButton_Critical_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Hover_Background);--fdButtonBorderColor:var(--sapButton_Critical_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--critical:active{--fdButtonColor:var(--sapButton_Critical_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Active_Background);--fdButtonBorderColor:var(--sapButton_Critical_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical[aria-disabled=true]{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--negative{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--negative:hover{--fdButtonColor:var(--sapButton_Negative_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Hover_Background);--fdButtonBorderColor:var(--sapButton_Negative_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--negative:active{--fdButtonColor:var(--sapButton_Negative_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Active_Background);--fdButtonBorderColor:var(--sapButton_Negative_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--success{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--success:hover{--fdButtonColor:var(--sapButton_Success_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Hover_Background);--fdButtonBorderColor:var(--sapButton_Success_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--success:active{--fdButtonColor:var(--sapButton_Success_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Active_Background);--fdButtonBorderColor:var(--sapButton_Success_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success[aria-disabled=true]{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--information{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Information_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--information:hover{--fdButtonColor:var(--fdMessagePopover_Information_Hover_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Hover_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Hover_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--information:active{--fdButtonColor:var(--fdMessagePopover_Information_Active_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Active_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Active_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information[aria-disabled=true]{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__view-container{border-bottom-left-radius:var(--fdPopover_Border_Radius);border-bottom-right-radius:var(--fdPopover_Border_Radius);overflow:hidden;display:block;max-height:40vh}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child:before{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-view__list{min-width:20rem;min-height:10rem;max-height:40vh}.fd-message-view__list .fd-link{font-size:inherit}.fd-message-view__list .fd-list__link:active,.fd-message-view__list .fd-list__link.is-active{--sapLinkColor: var(--sapList_Active_TextColor);--sapLink_Active_Color: var(--sapList_Active_TextColor)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/message-popover.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], propDecorators: { _popover: [{\n type: ViewChild,\n args: ['popover']\n }], wrapper: [{\n type: Input\n }], focusItem: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL21lc3NhZ2UtcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9tZXNzYWdlLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JB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cEIsZUFBZTs7MkZBR1YsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDSSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsYUFBYTt3QkFDYixlQUFlO3dCQUNmLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCx3QkFBd0I7d0JBQ3hCLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDbEI7OEJBS1EsUUFBUTtzQkFEaEIsU0FBUzt1QkFBQyxTQUFTO2dCQUtoQixPQUFPO3NCQURWLEtBQUs7Z0JBV04sU0FBUztzQkFEUixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBXcml0YWJsZVNpZ25hbCxcbiAgICBjb21wdXRlZCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmFyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IE9iamVjdFN0YXR1c0NvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9vYmplY3Qtc3RhdHVzJztcbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBTZWdtZW50ZWRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2VnbWVudGVkLWJ1dHRvbic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgZ2V0Rm9ybVN0YXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IGNvdW50QnksIGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVzc2FnZS12aWV3L21lc3NhZ2Utdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBNZXNzYWdlUG9wb3ZlckVudHJ5LFxuICAgIE1lc3NhZ2VQb3BvdmVyRXJyb3IsXG4gICAgTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwXG59IGZyb20gJy4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci1lbnRyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJXcmFwcGVyIH0gZnJvbSAnLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLXdyYXBwZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyLCBNZXNzYWdlUG9wb3ZlclN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjb252ZXJ0Rm9ybVN0YXRlLCBjb252ZXJ0Rm9ybVN0YXRlVG9NZXNzYWdlUG9wb3ZlclN0YXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLW1lc3NhZ2UtcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21lc3NhZ2UtcG9wb3Zlci5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQmFyTW9kdWxlLFxuICAgICAgICBTZWdtZW50ZWRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBPYmplY3RTdGF0dXNDb21wb25lbnQsXG4gICAgICAgIEluaXRpYWxGb2N1c0RpcmVjdGl2ZSxcbiAgICAgICAgTWVzc2FnZVZpZXdDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBNZXNzYWdlUG9wb3ZlciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICByZWFkb25seSBfcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKiBNZXNzYWdlIFBvcG92ZXIgV3JhcHBlciBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgd3JhcHBlcih2YWx1ZTogTnVsbGFibGU8TWVzc2FnZVBvcG92ZXJXcmFwcGVyPikge1xuICAgICAgICB2YWx1ZT8uc2V0TWVzc2FnZVBvcG92ZXIodGhpcyk7XG4gICAgICAgIHRoaXMuX3dyYXBwZXIkLnNldCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB3cmFwcGVyKCk6IE51bGxhYmxlPE1lc3NhZ2VQb3BvdmVyV3JhcHBlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fd3JhcHBlciQoKTtcbiAgICB9XG5cbiAgICAvKiogRXZlbnQgZW1pdHMgd2hlbiB1c2VyIGNsaWNrcyBvbiBlcnJvciBlbnRyeSBhbmQgaXRlbSdzIGVsZW1lbnQgbmVlZHMgdG8gYmUgZm9jdXNlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VQb3BvdmVyRW50cnk+KCk7XG5cbiAgICAvKiogQ3VycmVudCBtZXNzYWdlIHBvcG92ZXIgc2NyZWVuLiBDYW4gYmUgYGxpc3RgIG9yIGBkZXRhaWxzYC4gKi9cbiAgICBjdXJyZW50U2NyZWVuOiAnbGlzdCcgfCAnZGV0YWlscycgPSAnbGlzdCc7XG5cbiAgICAvKiogQ3VycmVudCBlcnJvciBlbnRyeS4gKi9cbiAgICBjdXJyZW50RW50cnk6IE51bGxhYmxlPE1lc3NhZ2VQb3BvdmVyRW50cnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3VycmVudEVycm9yVHlwZSQ6IFdyaXRhYmxlU2lnbmFsPE1lc3NhZ2VQb3BvdmVyRXJyb3JbJ2dyb3VwJ10+ID0gc2lnbmFsKCdhbGwnKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Vycm9yVHlwZXMkID0gY29tcHV0ZWQ8TWVzc2FnZVBvcG92ZXJFcnJvcltdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ZWRFcnJvcnMgPSB0aGlzLl9jb3VudGVkRXJyb3JzJCgpO1xuICAgICAgICBjb25zdCBlcnJvclR5cGVzID0gT2JqZWN0LmtleXMoY291bnRlZEVycm9ycykgYXMgRm9ybVN0YXRlc1tdO1xuICAgICAgICByZXR1cm4gZXJyb3JUeXBlcy5tYXAoKGVycm9yVHlwZSkgPT4gKHtcbiAgICAgICAgICAgIGdyb3VwOiBlcnJvclR5cGUsXG4gICAgICAgICAgICBjb3VudDogY291bnRlZEVycm9yc1tlcnJvclR5cGVdLFxuICAgICAgICAgICAgc3RhdGU6IGNvbnZlcnRGb3JtU3RhdGUoZXJyb3JUeXBlKVxuICAgICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcmlvcml0eVN0YXRlSXRlbXNDb3VudCQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9jb3VudGVkRXJyb3JzJCgpW3RoaXMuX3ByaW9yaXR5Rm9ybVN0YXRlJCgpIV0gfHwgMCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcmlvcml0eUZvcm1TdGF0ZSQgPSBjb21wdXRlZDxGb3JtU3RhdGVzPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ZWRFcnJvcnMgPSB0aGlzLl9jb3VudGVkRXJyb3JzJCgpO1xuICAgICAgICBjb25zdCBlcnJvclR5cGVzID0gT2JqZWN0LmtleXMoY291bnRlZEVycm9ycykgYXMgRm9ybVN0YXRlc1tdO1xuICAgICAgICByZXR1cm4gZ2V0Rm9ybVN0YXRlKGVycm9yVHlwZXMpO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcHJpb3JpdHlTdGF0ZSQgPSBjb21wdXRlZDxOdWxsYWJsZTxNZXNzYWdlUG9wb3ZlclN0YXRlPj4oKCkgPT5cbiAgICAgICAgY29udmVydEZvcm1TdGF0ZVRvTWVzc2FnZVBvcG92ZXJTdGF0ZSh0aGlzLl9wcmlvcml0eUZvcm1TdGF0ZSQoKSlcbiAgICApO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmlsdGVyZWRFcnJvcnMkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBncm91cGVkRXJyb3JzID0gdGhpcy5fZ3JvdXBlZEVycm9ycyQoKTtcbiAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gdGhpcy5fY3VycmVudEVycm9yVHlwZSQoKTtcblxuICAgICAgICBpZiAoZXJyb3JUeXBlID09PSAnYWxsJykge1xuICAgICAgICAgICAgcmV0dXJuIGdyb3VwZWRFcnJvcnM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXTtcbiAgICAgICAgZ3JvdXBlZEVycm9ycy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gZ3JvdXAuZXJyb3JzLmZpbHRlcigoZXJyb3IpID0+IGVycm9yLnR5cGUgPT09IGVycm9yVHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJlZEVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBncm91cDogZ3JvdXAuZ3JvdXAsXG4gICAgICAgICAgICAgICAgZXJyb3JzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRXJyb3JzO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZ3JvdXBlZEVycm9ycyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl93cmFwcGVyJCgpPy5lcnJvcnMkKCkgfHwgW10pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfd3JhcHBlciQgPSBzaWduYWw8TnVsbGFibGU8TWVzc2FnZVBvcG92ZXJXcmFwcGVyPj4obnVsbCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb3VudGVkRXJyb3JzJCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIGNvdW50QnkoZmxhdHRlbihPYmplY3QudmFsdWVzKHRoaXMuX2dyb3VwZWRFcnJvcnMkKCkubWFwKChncm91cCkgPT4gZ3JvdXAuZXJyb3JzKSkpLCAndHlwZScpXG4gICAgKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTY3JlZW4gPSAnbGlzdCc7XG4gICAgICAgIHRoaXMuY3VycmVudEVudHJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93RGV0YWlscyhlbnRyeTogTWVzc2FnZVBvcG92ZXJFbnRyeSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTY3JlZW4gPSAnZGV0YWlscyc7XG4gICAgICAgIHRoaXMuY3VycmVudEVudHJ5ID0gZW50cnk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2xvc2VQb3BvdmVyKGZvY3VzTGFzdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcG9wb3Zlci5jbG9zZShmb2N1c0xhc3QpO1xuICAgIH1cbn1cbiIsIkBpZiAoX2Vycm9yVHlwZXMkKCkubGVuZ3RoID4gMCkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICNwb3BvdmVyXG4gICAgICAgIHBsYWNlbWVudD1cInRvcC1zdGFydFwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZVNjcm9sbGJhcl09XCJ0cnVlXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1tZXNzYWdlLXBvcG92ZXJfX3RyaWdnZXIgZmQtbWVzc2FnZS1wb3BvdmVyX190cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCInZmQtbWVzc2FnZS1wb3BvdmVyX190cmlnZ2VyLS0nICsgX3ByaW9yaXR5U3RhdGUkKClcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCInbWVzc2FnZS0nICsgX3ByaW9yaXR5Rm9ybVN0YXRlJCgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX3ByaW9yaXR5U3RhdGVJdGVtc0NvdW50JCgpLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXJcIiBjbGFzcz1cImZkLWJhci0tZ3Jvd2luZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjdXJyZW50U2NyZWVuID09PSAnbGlzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2VnbWVudGVkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfY3VycmVudEVycm9yVHlwZSQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl9jdXJyZW50RXJyb3JUeXBlJC5zZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1NZXNzYWdlUG9wb3Zlci5hbGxFcnJvcnMnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJhbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHR5cGUgb2YgX2Vycm9yVHlwZXMkKCk7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFt2YWx1ZV09XCJ0eXBlLmdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInR5cGUuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ21lc3NhZ2UtJyArIHR5cGUuZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1idXR0b25fX3RleHRcIj57eyB0eXBlLmNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXNlZ21lbnRlZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGN1cnJlbnRTY3JlZW4gPT09ICdkZXRhaWxzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi1sZWZ0LWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJHbyBiYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zaG93TGlzdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiIGdseXBoPVwiZGVjbGluZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGZkcC1tZXNzYWdlLXZpZXdcbiAgICAgICAgICAgICAgICBbY3VycmVudFNjcmVlbl09XCJjdXJyZW50U2NyZWVuXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyZWRFcnJvcnNdPVwiX2ZpbHRlcmVkRXJyb3JzJCgpXCJcbiAgICAgICAgICAgICAgICBbY3VycmVudEVudHJ5XT1cImN1cnJlbnRFbnRyeVwiXG4gICAgICAgICAgICAgICAgKG9wZW5EZXRhaWxzKT1cIl9zaG93RGV0YWlscygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VQb3BvdmVyKT1cIl9jbG9zZVBvcG92ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzSXRlbSk9XCJmb2N1c0l0ZW0uZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkcC1tZXNzYWdlLXZpZXc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtcG9wb3Zlcj5cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { mergeWith } from 'lodash-es';\nimport { MessagePopoverFormWrapperComponent } from './components/message-popover-form-wrapper/message-popover-form-wrapper.component';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport { FDP_MESSAGE_POPOVER_CONFIG, FDP_MESSAGE_POPOVER_DEFAULT_CONFIG } from './default-config';\nimport { MessagePopoverFormItemDirective } from './directives/message-popover-form-item.directive';\nimport { MessagePopoverComponent } from './message-popover.component';\nimport * as i0 from \"@angular/core\";\nexport class PlatformMessagePopoverModule {\n /**\n * Method allows users to apply custom configuration.\n * @param config Object containing error definitions.\n */\n static withConfig(config) {\n const customConfig = mergeWith(FDP_MESSAGE_POPOVER_DEFAULT_CONFIG, config, (obj, src) => {\n if (typeof obj === 'object' && !Array.isArray(obj)) {\n return Object.assign(obj, src);\n }\n else if (Array.isArray(obj)) {\n return obj.concat(src);\n }\n else {\n return src;\n }\n });\n return {\n ngModule: PlatformMessagePopoverModule,\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: customConfig\n }\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, imports: [MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective], exports: [MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: FDP_MESSAGE_POPOVER_DEFAULT_CONFIG\n }\n ], imports: [MessagePopoverComponent,\n MessageViewComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n exports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: FDP_MESSAGE_POPOVER_DEFAULT_CONFIG\n }\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tbWVzc2FnZS1wb3BvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL3BsYXRmb3JtLW1lc3NhZ2UtcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUN0SSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsa0NBQWtDLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDeEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBc0J0RSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBNEI7UUFDMUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGtDQUFrQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwRixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNILFFBQVEsRUFBRSw0QkFBNEI7WUFDdEMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxZQUFZO2lCQUN6QjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7OEdBekJRLDRCQUE0QjsrR0FBNUIsNEJBQTRCLFlBbEJqQyx1QkFBdUI7WUFDdkIsa0NBQWtDO1lBQ2xDLG9CQUFvQjtZQUNwQiwrQkFBK0IsYUFHL0IsdUJBQXVCO1lBQ3ZCLGtDQUFrQztZQUNsQyxvQkFBb0I7WUFDcEIsK0JBQStCOytHQVMxQiw0QkFBNEIsYUFQMUI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxRQUFRLEVBQUUsa0NBQWtDO2FBQy9DO1NBQ0osWUFoQkcsdUJBQXVCO1lBRXZCLG9CQUFvQjs7MkZBZ0JmLDRCQUE0QjtrQkFwQnhDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLHVCQUF1Qjt3QkFDdkIsa0NBQWtDO3dCQUNsQyxvQkFBb0I7d0JBQ3BCLCtCQUErQjtxQkFDbEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHVCQUF1Qjt3QkFDdkIsa0NBQWtDO3dCQUNsQyxvQkFBb0I7d0JBQ3BCLCtCQUErQjtxQkFDbEM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSwwQkFBMEI7NEJBQ25DLFFBQVEsRUFBRSxrQ0FBa0M7eUJBQy9DO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlV2l0aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlckZvcm1XcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXIvbWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVzc2FnZS12aWV3L21lc3NhZ2Utdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRkRQX01FU1NBR0VfUE9QT1ZFUl9DT05GSUcsIEZEUF9NRVNTQUdFX1BPUE9WRVJfREVGQVVMVF9DT05GSUcsIE1lc3NhZ2VQb3BvdmVyQ29uZmlnIH0gZnJvbSAnLi9kZWZhdWx0LWNvbmZpZyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlckZvcm1JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLXBvcG92ZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1lc3NhZ2VQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBNZXNzYWdlUG9wb3ZlckZvcm1XcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBNZXNzYWdlVmlld0NvbXBvbmVudCxcbiAgICAgICAgTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBNZXNzYWdlUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgTWVzc2FnZVBvcG92ZXJGb3JtV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgTWVzc2FnZVZpZXdDb21wb25lbnQsXG4gICAgICAgIE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfTUVTU0FHRV9QT1BPVkVSX0NPTkZJRyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBGRFBfTUVTU0FHRV9QT1BPVkVSX0RFRkFVTFRfQ09ORklHXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtTWVzc2FnZVBvcG92ZXJNb2R1bGUge1xuICAgIC8qKlxuICAgICAqIE1ldGhvZCBhbGxvd3MgdXNlcnMgdG8gYXBwbHkgY3VzdG9tIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIGNvbmZpZyBPYmplY3QgY29udGFpbmluZyBlcnJvciBkZWZpbml0aW9ucy5cbiAgICAgKi9cbiAgICBzdGF0aWMgd2l0aENvbmZpZyhjb25maWc6IE1lc3NhZ2VQb3BvdmVyQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyTW9kdWxlPiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNvbmZpZyA9IG1lcmdlV2l0aChGRFBfTUVTU0FHRV9QT1BPVkVSX0RFRkFVTFRfQ09ORklHLCBjb25maWcsIChvYmosIHNyYykgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvYmosIHNyYyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmouY29uY2F0KHNyYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzcmM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogUGxhdGZvcm1NZXNzYWdlUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRkRQX01FU1NBR0VfUE9QT1ZFUl9DT05GSUcsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBjdXN0b21Db25maWdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLW1lc3NhZ2UtcG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL2Z1bmRhbWVudGFsLW5neC1wbGF0Zm9ybS1tZXNzYWdlLXBvcG92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-message-popover.mjs","sources":["../tmp-esm2022/message-popover/default-config.js","../tmp-esm2022/message-popover/directives/message-popover-form-item.directive.js","../tmp-esm2022/message-popover/utils.js","../tmp-esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.js","../tmp-esm2022/message-popover/components/message-view/message-view.component.js","../tmp-esm2022/message-popover/message-popover.component.js","../tmp-esm2022/message-popover/platform-message-popover.module.js","../tmp-esm2022/message-popover/fundamental-ngx-platform-message-popover.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const FDP_MESSAGE_POPOVER_DEFAULT_CONFIG = {\n errors: {\n email: 'platformMessagePopover.defaultErrors.email',\n max: 'platformMessagePopover.defaultErrors.max',\n maxlength: 'platformMessagePopover.defaultErrors.maxLength',\n min: 'platformMessagePopover.defaultErrors.min',\n minlength: 'platformMessagePopover.defaultErrors.minLength',\n pattern: 'platformMessagePopover.defaultErrors.pattern',\n required: 'platformMessagePopover.defaultErrors.required',\n requiredTrue: 'platformMessagePopover.defaultErrors.requiredTrue'\n }\n};\nexport const FDP_MESSAGE_POPOVER_CONFIG = new InjectionToken('FdpMessagePopoverConfig');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9kZWZhdWx0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZ0IvQyxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBeUI7SUFDcEUsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLDRDQUE0QztRQUNuRCxHQUFHLEVBQUUsMENBQTBDO1FBQy9DLFNBQVMsRUFBRSxnREFBZ0Q7UUFDM0QsR0FBRyxFQUFFLDBDQUEwQztRQUMvQyxTQUFTLEVBQUUsZ0RBQWdEO1FBQzNELE9BQU8sRUFBRSw4Q0FBOEM7UUFDdkQsUUFBUSxFQUFFLCtDQUErQztRQUN6RCxZQUFZLEVBQUUsbURBQW1EO0tBQ3BFO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUF1Qix5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZyB7XG4gICAgaGVhZGluZzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHR5cGU6IEZvcm1TdGF0ZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVBvcG92ZXJDb25maWcge1xuICAgIC8qKlxuICAgICAqIEVycm9ycyBvYmplY3Qgd2hlcmUga2V5IGlzIGVycm9yIHR5cGUgYW5kIHZhbHVlIGlzIGkxOG4gc3RyaW5nLlxuICAgICAqL1xuICAgIGVycm9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZz47XG59XG5cbmV4cG9ydCBjb25zdCBGRFBfTUVTU0FHRV9QT1BPVkVSX0RFRkFVTFRfQ09ORklHOiBNZXNzYWdlUG9wb3ZlckNvbmZpZyA9IHtcbiAgICBlcnJvcnM6IHtcbiAgICAgICAgZW1haWw6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMuZW1haWwnLFxuICAgICAgICBtYXg6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMubWF4JyxcbiAgICAgICAgbWF4bGVuZ3RoOiAncGxhdGZvcm1NZXNzYWdlUG9wb3Zlci5kZWZhdWx0RXJyb3JzLm1heExlbmd0aCcsXG4gICAgICAgIG1pbjogJ3BsYXRmb3JtTWVzc2FnZVBvcG92ZXIuZGVmYXVsdEVycm9ycy5taW4nLFxuICAgICAgICBtaW5sZW5ndGg6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMubWluTGVuZ3RoJyxcbiAgICAgICAgcGF0dGVybjogJ3BsYXRmb3JtTWVzc2FnZVBvcG92ZXIuZGVmYXVsdEVycm9ycy5wYXR0ZXJuJyxcbiAgICAgICAgcmVxdWlyZWQ6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMucmVxdWlyZWQnLFxuICAgICAgICByZXF1aXJlZFRydWU6ICdwbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyLmRlZmF1bHRFcnJvcnMucmVxdWlyZWRUcnVlJ1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGRFBfTUVTU0FHRV9QT1BPVkVSX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZXNzYWdlUG9wb3ZlckNvbmZpZz4oJ0ZkcE1lc3NhZ2VQb3BvdmVyQ29uZmlnJyk7XG4iXX0=","import { Directive, ElementRef, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class MessagePopoverFormItemDirective {\n /** @hidden */\n constructor(elementRef, control) {\n this.elementRef = elementRef;\n this.control = control;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormItemDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: MessagePopoverFormItemDirective, isStandalone: true, selector: \"[fdpMessagePopoverFormItem]\", inputs: { label: [\"fdpMessagePopoverFormItem\", \"label\"], errorTypes: \"errorTypes\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpMessagePopoverFormItem]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{\n type: Optional\n }] }], propDecorators: { label: [{\n type: Input,\n args: ['fdpMessagePopoverFormItem']\n }], errorTypes: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLWZvcm0taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9kaXJlY3RpdmVzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLCtCQUErQjtJQVN4QyxjQUFjO0lBQ2QsWUFDb0IsVUFBc0IsRUFDVixPQUFrQjtRQUQ5QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUMvQyxDQUFDOzhHQWJLLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBYVEsUUFBUTt5Q0FUYixLQUFLO3NCQURKLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUtsQyxVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJDb25maWcgfSBmcm9tICcuLi9kZWZhdWx0LWNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmUge1xuICAgIC8qKiBGb3JtIGl0ZW0gbmFtZS4gKi9cbiAgICBASW5wdXQoJ2ZkcE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW0nKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogRXJyb3IgdHlwZSBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXJyb3JUeXBlczogTWVzc2FnZVBvcG92ZXJDb25maWdbJ2Vycm9ycyddO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyByZWFkb25seSBjb250cm9sOiBOZ0NvbnRyb2xcbiAgICApIHt9XG59XG4iXX0=","/**\n * Converts Object Status into Message Popover State\n * @param status Object status\n * @returns Message Popover State.\n */\nexport function convertFormStateToMessagePopoverState(state) {\n switch (state) {\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'default':\n return 'neutral';\n default:\n return state;\n }\n}\n/**\n * Converts Form State into Object status type.\n * @param type Form state.\n * @returns `ObjectStatus` type.\n */\nexport function convertFormState(type) {\n switch (type) {\n case 'success':\n return 'positive';\n case 'error':\n return 'negative';\n case 'warning':\n return 'critical';\n case 'information':\n return 'informative';\n default:\n return 'neutral';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFDQUFxQyxDQUFDLEtBQWlCO0lBQ25FLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDWixLQUFLLE9BQU87WUFDUixPQUFPLFVBQVUsQ0FBQztRQUN0QixLQUFLLFNBQVM7WUFDVixPQUFPLFVBQVUsQ0FBQztRQUN0QixLQUFLLFNBQVM7WUFDVixPQUFPLFNBQVMsQ0FBQztRQUNyQjtZQUNJLE9BQU8sS0FBSyxDQUFDO0lBQ3JCLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFnQjtJQUM3QyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ1gsS0FBSyxTQUFTO1lBQ1YsT0FBTyxVQUFVLENBQUM7UUFDdEIsS0FBSyxPQUFPO1lBQ1IsT0FBTyxVQUFVLENBQUM7UUFDdEIsS0FBSyxTQUFTO1lBQ1YsT0FBTyxVQUFVLENBQUM7UUFDdEIsS0FBSyxhQUFhO1lBQ2QsT0FBTyxhQUFhLENBQUM7UUFDekI7WUFDSSxPQUFPLFNBQVMsQ0FBQztJQUN6QixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb2JqZWN0LXN0YXR1cyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlclN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29udmVydHMgT2JqZWN0IFN0YXR1cyBpbnRvIE1lc3NhZ2UgUG9wb3ZlciBTdGF0ZVxuICogQHBhcmFtIHN0YXR1cyBPYmplY3Qgc3RhdHVzXG4gKiBAcmV0dXJucyBNZXNzYWdlIFBvcG92ZXIgU3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Rm9ybVN0YXRlVG9NZXNzYWdlUG9wb3ZlclN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzKTogTWVzc2FnZVBvcG92ZXJTdGF0ZSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICByZXR1cm4gJ25lZ2F0aXZlJztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICByZXR1cm4gJ2NyaXRpY2FsJztcbiAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgICByZXR1cm4gJ25ldXRyYWwnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBGb3JtIFN0YXRlIGludG8gT2JqZWN0IHN0YXR1cyB0eXBlLlxuICogQHBhcmFtIHR5cGUgRm9ybSBzdGF0ZS5cbiAqIEByZXR1cm5zIGBPYmplY3RTdGF0dXNgIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Rm9ybVN0YXRlKHR5cGU6IEZvcm1TdGF0ZXMpOiBPYmplY3RTdGF0dXMge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICAgIHJldHVybiAncG9zaXRpdmUnO1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICByZXR1cm4gJ25lZ2F0aXZlJztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICByZXR1cm4gJ2NyaXRpY2FsJztcbiAgICAgICAgY2FzZSAnaW5mb3JtYXRpb24nOlxuICAgICAgICAgICAgcmV0dXJuICdpbmZvcm1hdGl2ZSc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gJ25ldXRyYWwnO1xuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ContentChildren, DestroyRef, Inject, Input, QueryList, ViewEncapsulation, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlContainer, FormGroup } from '@angular/forms';\nimport { FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport { Subject, Subscription, filter, startWith, switchMap, zip } from 'rxjs';\nimport { FDP_MESSAGE_POPOVER_CONFIG } from '../../default-config';\nimport { MessagePopoverFormItemDirective } from '../../directives/message-popover-form-item.directive';\nimport { convertFormState } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class MessagePopoverFormWrapperComponent {\n /**\n * User-passed forms.\n */\n set forms(forms) {\n if (!forms) {\n return;\n }\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n this._ngForms = forms;\n this._startListeningForErrors();\n }\n /** User-passed form fields. */\n set formFields(value) {\n this._formFields = value;\n this._listenToFormFieldErrors(value);\n }\n get formFields() {\n return this._formFields;\n }\n /** @hidden */\n constructor(_destroyRef, _config) {\n this._destroyRef = _destroyRef;\n this._config = _config;\n /** Message Popover instance. */\n this.messagePopover$ = new Subject();\n /**\n * Error models Signal. Emitted when form submitted and contains invalid fields.\n */\n this.errors$ = signal([], ...(ngDevMode ? [{ debugName: \"errors$\" }] : []));\n /** @hidden */\n this._formFields = [];\n /** @hidden */\n this._ngForms = [];\n /** @hidden */\n this._formItemErrorsSubscription = new Subscription();\n /** @hidden */\n this._formSubmitted = false;\n }\n /** @hidden */\n ngAfterViewInit() {\n // Forms are passed via input property.\n if (this._ngForms.length > 0) {\n return;\n }\n this._projectedForm?.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._ngForms = this._projectedForm.toArray();\n this._startListeningForErrors();\n });\n }\n /**\n * Sets Message Popover component instance.\n */\n setMessagePopover(messagePopover) {\n this.messagePopover$.next(messagePopover);\n // this.messagePopover = messagePopover;\n }\n /**\n * Programmatically add new form to array of forms.\n * @param forms\n */\n addForms(forms) {\n const formsArray = Array.isArray(forms) ? forms : [forms];\n this._ngForms.push(...formsArray);\n this._startListeningForErrors();\n }\n /**\n * Programmatically add new form fields to array of listened form fields.\n * @param formFields\n */\n addFormFields(formFields) {\n this._formFields.push(...formFields);\n this._listenToFormFieldErrors(this._formFields);\n }\n /** @hidden */\n ngOnDestroy() {\n this._formItemErrorsSubscription.unsubscribe();\n }\n /**\n * @hidden\n * Listens to the form submission and collects form control errors.\n */\n _startListeningForErrors() {\n if (!this._ngForms) {\n return;\n }\n this._formErrorsSubscription?.unsubscribe();\n this.errors$.set([]);\n const formSubmitEvents = this._ngForms.map((form) => form.ngSubmit.pipe(switchMap(() => form.statusChanges.pipe(startWith(form.status), filter((status) => status.toLowerCase() !== 'pending')))));\n this._formErrorsSubscription = zip(...formSubmitEvents)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._formSubmitted = true;\n const errors = this._directiveItems.length > 0 ? this._collectPlainFormData() : this._collectAdvancedFormData();\n this.errors$.set(errors);\n });\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n this._projectedFormFieldControls?.changes.subscribe(() => {\n this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());\n });\n }\n /** @hidden */\n _listenToFormFieldErrors(fields) {\n this._formItemErrorsSubscription.unsubscribe();\n this._formItemErrorsSubscription = new Subscription();\n fields?.forEach((field) => {\n this._formItemErrorsSubscription.add(field.formField?.errorsChange$.subscribe(() => {\n if (!this._formSubmitted) {\n return;\n }\n const errors = this._directiveItems.length > 0\n ? this._collectPlainFormData()\n : this._collectAdvancedFormData();\n this.errors$.set(errors);\n }));\n });\n }\n /** @hidden */\n _collectPlainFormData() {\n const errors = [\n {\n errors: []\n }\n ];\n const fields = this._directiveItems.toArray();\n this._ngForms.forEach((form) => {\n Object.keys(form.form.controls).forEach((controlName) => {\n const control = form.form.get(controlName);\n const field = fields.find((formField) => formField.control?.name === controlName);\n if (!control?.errors || !field) {\n return;\n }\n const configErrors = Object.keys(this._config.errors);\n Object.keys(control.errors)\n .filter((error) => configErrors.includes(error))\n .forEach((errorKey) => {\n const errorObj = control.errors[errorKey];\n const errorTextModel = this._getConfigErrorModel(errorKey, field.errorTypes);\n const errorConfig = field?.errorTypes ? field?.errorTypes[errorKey] : null;\n const errorState = errorConfig && this._isAdvancedError(errorConfig) && errorConfig.type\n ? errorConfig.type\n : 'error';\n const error = {\n name: controlName,\n type: errorTextModel.type,\n state: convertFormState(errorState),\n fieldName: field?.label ?? '',\n element: field?.elementRef,\n heading: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.heading\n },\n description: {\n type: 'string',\n error: errorObj,\n message: errorTextModel.description\n },\n errors: control.errors\n };\n errors[0].errors.push(error);\n });\n });\n });\n return errors;\n }\n /** @hidden */\n _collectAdvancedFormData() {\n let errors = [];\n const fields = this.formFields.length > 0 ? this.formFields : this._projectedFormFieldControls.toArray();\n /**\n * Iterates over form controls to collect their errors.\n * @param form Form Group or a collection of Form Groups.\n */\n const iterateOverForm = (form) => {\n if (Array.isArray(form)) {\n form.forEach((formGroup) => {\n errors = iterateOverForm(formGroup);\n });\n return errors;\n }\n Object.keys(form.controls).forEach((controlName) => {\n const control = form.get(controlName);\n const field = fields.find((formField) => formField.id === controlName);\n if (control instanceof FormGroup) {\n errors = iterateOverForm(control);\n }\n if (!control?.errors || !field) {\n return;\n }\n Object.keys(control.errors).forEach((errorKey) => {\n const errorDirective = field.formField?.groupedErrors.find((groupedError) => groupedError.directive.error === errorKey);\n const groupName = this._getGroupName(field?.formField);\n const error = this._getErrorModel(controlName, groupName, control, field, errorKey, errorDirective, control.errors[errorKey]);\n let errorGroupIndex = errors.findIndex((errorGroup) => errorGroup.group === groupName);\n if (errorGroupIndex === -1) {\n errorGroupIndex =\n errors.push({\n group: groupName,\n errors: []\n }) - 1;\n }\n const group = errors[errorGroupIndex];\n group.errors.push(error);\n });\n });\n return errors;\n };\n return iterateOverForm(this._ngForms.map((form) => form.form));\n }\n /**\n * @hidden\n * Creates error model\n */\n _getErrorModel(controlName, groupName, control, field, errorKey, errorDirective, error) {\n let state = 'error';\n const configError = this._config.errors[errorKey];\n if (errorDirective?.directive.type) {\n state = errorDirective.directive.type;\n }\n else if (this._isAdvancedError(configError)) {\n state = configError.type;\n }\n return {\n name: controlName,\n type: state,\n state: convertFormState(state),\n group: groupName,\n fieldName: field?.formField?.label ?? '',\n heading: this._getErrorText(field, errorDirective, 'heading', errorKey, error),\n description: this._getErrorText(field, errorDirective, 'description', errorKey, error),\n errors: control.errors,\n formField: field,\n element: field?.elementRef\n };\n }\n /**\n * @hidden\n * Creates error text based on the type of the error.\n * @param field Form Field Control.\n * @param errorDirective Optional Error directive\n * @param section Section where text should be rendered.\n * @param errorKey\n * @param error\n */\n _getErrorText(field, errorDirective, section = 'heading', errorKey, error) {\n const errorTextObj = {\n error: errorDirective?.error,\n type: errorDirective?.directive ? 'directive' : field?.formField?.i18Strings ? 'templateRef' : 'string'\n };\n if (errorTextObj.type === 'string') {\n const errorTextModel = this._getConfigErrorModel(errorKey);\n errorTextObj.error = error;\n errorTextObj.message = errorTextModel[section];\n return errorTextObj;\n }\n if (errorDirective?.directive) {\n errorTextObj.message =\n section === 'heading'\n ? (errorDirective.directive._headingTemplateRef ?? errorDirective.directive._descriptionTemplateRef)\n : errorDirective.directive._descriptionTemplateRef;\n return errorTextObj;\n }\n errorTextObj.message = field?.formField?.i18Strings ?? null;\n return errorTextObj;\n }\n /** @hidden */\n _getGroupName(formField) {\n const parts = [];\n if (formField?.formGroupContainer?.mainTitle) {\n parts.push(formField.formGroupContainer.mainTitle);\n }\n if (formField?.formFieldGroup?.label) {\n parts.push(formField.formFieldGroup.label);\n }\n return parts.join(', ');\n }\n /** @hidden */\n _getConfigErrorModel(errorKey, customErrorTypes) {\n const configError = customErrorTypes && customErrorTypes[errorKey] ? customErrorTypes[errorKey] : this._config.errors[errorKey];\n const isPlainError = !this._isAdvancedError(configError);\n const errorType = isPlainError ? 'error' : configError.type;\n const headingMessage = isPlainError ? configError : configError.heading;\n const descriptionMessage = isPlainError ? undefined : configError.description;\n return {\n type: errorType,\n heading: headingMessage,\n description: descriptionMessage\n };\n }\n /** @hidden */\n _isAdvancedError(error) {\n return !!error && typeof error !== 'string';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormWrapperComponent, deps: [{ token: i0.DestroyRef }, { token: FDP_MESSAGE_POPOVER_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.4\", type: MessagePopoverFormWrapperComponent, isStandalone: true, selector: \"fdp-message-popover-form-wrapper\", inputs: { forms: \"forms\", formFields: \"formFields\" }, queries: [{ propertyName: \"_projectedForm\", predicate: ControlContainer, descendants: true }, { propertyName: \"_projectedFormFieldControls\", predicate: FD_FORM_FIELD_CONTROL, descendants: true }, { propertyName: \"_directiveItems\", predicate: MessagePopoverFormItemDirective, descendants: true }], exportAs: [\"messagePopoverWrapper\"], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverFormWrapperComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fdp-message-popover-form-wrapper',\n template: `<ng-content></ng-content>`,\n exportAs: 'messagePopoverWrapper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.DestroyRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [FDP_MESSAGE_POPOVER_CONFIG]\n }] }], propDecorators: { _projectedForm: [{\n type: ContentChildren,\n args: [ControlContainer, { descendants: true }]\n }], _projectedFormFieldControls: [{\n type: ContentChildren,\n args: [FD_FORM_FIELD_CONTROL, { descendants: true }]\n }], _directiveItems: [{\n type: ContentChildren,\n args: [MessagePopoverFormItemDirective, { descendants: true }]\n }], forms: [{\n type: Input\n }], formFields: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9jb21wb25lbnRzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXIvbWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsU0FBUyxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBTy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDbkgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFRdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVkvQyxNQUFNLE9BQU8sa0NBQWtDO0lBZ0IzQzs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWdEO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FB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QVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBa0VRLE1BQU07MkJBQUMsMEJBQTBCO3lDQTlEckIsY0FBYztzQkFEOUIsZUFBZTt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBS3ZDLDJCQUEyQjtzQkFEM0MsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSzVDLGVBQWU7c0JBRC9CLGVBQWU7dUJBQUMsK0JBQStCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVVuRSxLQUFLO3NCQURSLEtBQUs7Z0JBY0YsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0LFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkRQX01FU1NBR0VfUE9QT1ZFUl9DT05GSUcsIE1lc3NhZ2VQb3BvdmVyQ29uZmlnLCBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vZGVmYXVsdC1jb25maWcnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbWVzc2FnZS1wb3BvdmVyLWZvcm0taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBNZXNzYWdlUG9wb3ZlckVudHJ5LFxuICAgIE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cCxcbiAgICBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dFxufSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLWVudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlcldyYXBwZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLXdyYXBwZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY29udmVydEZvcm1TdGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVBvcG92ZXJGb3JtID0gTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tZXNzYWdlLXBvcG92ZXItZm9ybS13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGV4cG9ydEFzOiAnbWVzc2FnZVBvcG92ZXJXcmFwcGVyJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVBvcG92ZXJGb3JtV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE1lc3NhZ2VQb3BvdmVyV3JhcHBlciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQ29udHJvbENvbnRhaW5lciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RlZEZvcm06IFF1ZXJ5TGlzdDxNZXNzYWdlUG9wb3ZlckZvcm0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzITogUXVlcnlMaXN0PFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpcmVjdGl2ZUl0ZW1zITogUXVlcnlMaXN0PE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIE1lc3NhZ2UgUG9wb3ZlciBpbnN0YW5jZS4gKi9cbiAgICBtZXNzYWdlUG9wb3ZlciQgPSBuZXcgU3ViamVjdDxNZXNzYWdlUG9wb3Zlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIFVzZXItcGFzc2VkIGZvcm1zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSkge1xuICAgICAgICBpZiAoIWZvcm1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZvcm1zKSkge1xuICAgICAgICAgICAgZm9ybXMgPSBbZm9ybXNdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX25nRm9ybXMgPSBmb3JtcztcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKiogVXNlci1wYXNzZWQgZm9ybSBmaWVsZHMuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybUZpZWxkcyh2YWx1ZTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10pIHtcbiAgICAgICAgdGhpcy5fZm9ybUZpZWxkcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1GaWVsZEVycm9ycyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1GaWVsZHMoKTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFcnJvciBtb2RlbHMgU2lnbmFsLiBFbWl0dGVkIHdoZW4gZm9ybSBzdWJtaXR0ZWQgYW5kIGNvbnRhaW5zIGludmFsaWQgZmllbGRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVycm9ycyQgPSBzaWduYWw8TWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUZpZWxkczogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUVycm9yc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ0Zvcm1zOiAoTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlKVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9NRVNTQUdFX1BPUE9WRVJfQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IE1lc3NhZ2VQb3BvdmVyQ29uZmlnXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEZvcm1zIGFyZSBwYXNzZWQgdmlhIGlucHV0IHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5fbmdGb3Jtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybT8uY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmdGb3JtcyA9IHRoaXMuX3Byb2plY3RlZEZvcm0udG9BcnJheSgpO1xuICAgICAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBNZXNzYWdlIFBvcG92ZXIgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHNldE1lc3NhZ2VQb3BvdmVyKG1lc3NhZ2VQb3BvdmVyOiBNZXNzYWdlUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VQb3BvdmVyJC5uZXh0KG1lc3NhZ2VQb3BvdmVyKTtcbiAgICAgICAgLy8gdGhpcy5tZXNzYWdlUG9wb3ZlciA9IG1lc3NhZ2VQb3BvdmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2dyYW1tYXRpY2FsbHkgYWRkIG5ldyBmb3JtIHRvIGFycmF5IG9mIGZvcm1zLlxuICAgICAqIEBwYXJhbSBmb3Jtc1xuICAgICAqL1xuICAgIGFkZEZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3Jtc0FycmF5ID0gQXJyYXkuaXNBcnJheShmb3JtcykgPyBmb3JtcyA6IFtmb3Jtc107XG4gICAgICAgIHRoaXMuX25nRm9ybXMucHVzaCguLi5mb3Jtc0FycmF5KTtcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9ncmFtbWF0aWNhbGx5IGFkZCBuZXcgZm9ybSBmaWVsZHMgdG8gYXJyYXkgb2YgbGlzdGVuZWQgZm9ybSBmaWVsZHMuXG4gICAgICogQHBhcmFtIGZvcm1GaWVsZHNcbiAgICAgKi9cbiAgICBhZGRGb3JtRmllbGRzKGZvcm1GaWVsZHM6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZHMucHVzaCguLi5mb3JtRmllbGRzKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnModGhpcy5fZm9ybUZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1FcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdGVucyB0byB0aGUgZm9ybSBzdWJtaXNzaW9uIGFuZCBjb2xsZWN0cyBmb3JtIGNvbnRyb2wgZXJyb3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N0YXJ0TGlzdGVuaW5nRm9yRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX25nRm9ybXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb3JtRXJyb3JzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmVycm9ycyQuc2V0KFtdKTtcblxuICAgICAgICBjb25zdCBmb3JtU3VibWl0RXZlbnRzID0gdGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+XG4gICAgICAgICAgICBmb3JtLm5nU3VibWl0LnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIGZvcm0uc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChmb3JtLnN0YXR1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHN0YXR1czogc3RyaW5nKSA9PiBzdGF0dXMudG9Mb3dlckNhc2UoKSAhPT0gJ3BlbmRpbmcnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1FcnJvcnNTdWJzY3JpcHRpb24gPSB6aXAoLi4uZm9ybVN1Ym1pdEV2ZW50cylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1TdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLl9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpIDogdGhpcy5fY29sbGVjdEFkdmFuY2VkRm9ybURhdGEoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzJC5zZXQoZXJyb3JzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzLnRvQXJyYXkoKSk7XG5cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybUZpZWxkQ29udHJvbHM/LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzLnRvQXJyYXkoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnMoZmllbGRzOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSXRlbUVycm9yc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgIGZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgICAgICBmaWVsZC5mb3JtRmllbGQ/LmVycm9yc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9mb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX2NvbGxlY3RQbGFpbkZvcm1EYXRhKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzJC5zZXQoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSB7XG4gICAgICAgIGNvbnN0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLl9uZ0Zvcm1zLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0uZm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5mb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuY29udHJvbD8ubmFtZSA9PT0gY29udHJvbE5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFjb250cm9sPy5lcnJvcnMgfHwgIWZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdFcnJvcnMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb25maWcuZXJyb3JzKTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChlcnJvcikgPT4gY29uZmlnRXJyb3JzLmluY2x1ZGVzKGVycm9yKSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGVycm9yS2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSwgZmllbGQuZXJyb3JUeXBlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckNvbmZpZyA9IGZpZWxkPy5lcnJvclR5cGVzID8gZmllbGQ/LmVycm9yVHlwZXNbZXJyb3JLZXldIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ29uZmlnICYmIHRoaXMuX2lzQWR2YW5jZWRFcnJvcihlcnJvckNvbmZpZykgJiYgZXJyb3JDb25maWcudHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVycm9yQ29uZmlnLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3I6IE1lc3NhZ2VQb3BvdmVyRW50cnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXJyb3JUZXh0TW9kZWwudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogY29udmVydEZvcm1TdGF0ZShlcnJvclN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5sYWJlbCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzWzBdLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk6IE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cFtdIHtcbiAgICAgICAgbGV0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5mb3JtRmllbGRzLmxlbmd0aCA+IDAgPyB0aGlzLmZvcm1GaWVsZHMgOiB0aGlzLl9wcm9qZWN0ZWRGb3JtRmllbGRDb250cm9scy50b0FycmF5KCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEl0ZXJhdGVzIG92ZXIgZm9ybSBjb250cm9scyB0byBjb2xsZWN0IHRoZWlyIGVycm9ycy5cbiAgICAgICAgICogQHBhcmFtIGZvcm0gRm9ybSBHcm91cCBvciBhIGNvbGxlY3Rpb24gb2YgRm9ybSBHcm91cHMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBpdGVyYXRlT3ZlckZvcm0gPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUdyb3VwW10pOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtKSkge1xuICAgICAgICAgICAgICAgIGZvcm0uZm9yRWFjaCgoZm9ybUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShmb3JtR3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuaWQgPT09IGNvbnRyb2xOYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShjb250cm9sKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2w/LmVycm9ycyB8fCAhZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5mb3JFYWNoKChlcnJvcktleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckRpcmVjdGl2ZSA9IGZpZWxkLmZvcm1GaWVsZD8uZ3JvdXBlZEVycm9ycy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGdyb3VwZWRFcnJvcikgPT4gZ3JvdXBlZEVycm9yLmRpcmVjdGl2ZS5lcnJvciA9PT0gZXJyb3JLZXlcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cE5hbWUgPSB0aGlzLl9nZXRHcm91cE5hbWUoZmllbGQ/LmZvcm1GaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5fZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3JHcm91cEluZGV4ID0gZXJyb3JzLmZpbmRJbmRleCgoZXJyb3JHcm91cCkgPT4gZXJyb3JHcm91cC5ncm91cCA9PT0gZ3JvdXBOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JHcm91cEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JHcm91cEluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSAtIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGVycm9yc1tlcnJvckdyb3VwSW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBpdGVyYXRlT3ZlckZvcm0odGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+IGZvcm0uZm9ybSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIG1vZGVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgY29udHJvbE5hbWU6IHN0cmluZyxcbiAgICAgICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgZmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JEaXJlY3RpdmU/OiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHQsXG4gICAgICAgIGVycm9yPzogYW55XG4gICAgKTogTWVzc2FnZVBvcG92ZXJFbnRyeSB7XG4gICAgICAgIGxldCBzdGF0ZTogRm9ybVN0YXRlcyA9ICdlcnJvcic7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID0gdGhpcy5fY29uZmlnLmVycm9yc1tlcnJvcktleV07XG5cbiAgICAgICAgaWYgKGVycm9yRGlyZWN0aXZlPy5kaXJlY3RpdmUudHlwZSkge1xuICAgICAgICAgICAgc3RhdGUgPSBlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUudHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0FkdmFuY2VkRXJyb3IoY29uZmlnRXJyb3IpKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IGNvbmZpZ0Vycm9yLnR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICB0eXBlOiBzdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlOiBjb252ZXJ0Rm9ybVN0YXRlKHN0YXRlKSxcbiAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5mb3JtRmllbGQ/LmxhYmVsID8/ICcnLFxuICAgICAgICAgICAgaGVhZGluZzogdGhpcy5fZ2V0RXJyb3JUZXh0KGZpZWxkLCBlcnJvckRpcmVjdGl2ZSwgJ2hlYWRpbmcnLCBlcnJvcktleSwgZXJyb3IpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuX2dldEVycm9yVGV4dChmaWVsZCwgZXJyb3JEaXJlY3RpdmUsICdkZXNjcmlwdGlvbicsIGVycm9yS2V5LCBlcnJvciksXG4gICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9ycyxcbiAgICAgICAgICAgIGZvcm1GaWVsZDogZmllbGQsXG4gICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIHRleHQgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhlIGVycm9yLlxuICAgICAqIEBwYXJhbSBmaWVsZCBGb3JtIEZpZWxkIENvbnRyb2wuXG4gICAgICogQHBhcmFtIGVycm9yRGlyZWN0aXZlIE9wdGlvbmFsIEVycm9yIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBzZWN0aW9uIFNlY3Rpb24gd2hlcmUgdGV4dCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgICogQHBhcmFtIGVycm9yS2V5XG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JUZXh0KFxuICAgICAgICBmaWVsZDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBlcnJvckRpcmVjdGl2ZTogTnVsbGFibGU8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0PixcbiAgICAgICAgc2VjdGlvbjogJ2hlYWRpbmcnIHwgJ2Rlc2NyaXB0aW9uJyA9ICdoZWFkaW5nJyxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3I/OiBhbnlcbiAgICApOiBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dCB7XG4gICAgICAgIGNvbnN0IGVycm9yVGV4dE9iajogTWVzc2FnZVBvcG92ZXJFcnJvclRleHQgPSB7XG4gICAgICAgICAgICBlcnJvcjogZXJyb3JEaXJlY3RpdmU/LmVycm9yLFxuICAgICAgICAgICAgdHlwZTogZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSA/ICdkaXJlY3RpdmUnIDogZmllbGQ/LmZvcm1GaWVsZD8uaTE4U3RyaW5ncyA/ICd0ZW1wbGF0ZVJlZicgOiAnc3RyaW5nJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChlcnJvclRleHRPYmoudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSk7XG5cbiAgICAgICAgICAgIGVycm9yVGV4dE9iai5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPSBlcnJvclRleHRNb2RlbFtzZWN0aW9uXTtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclRleHRPYmo7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24gPT09ICdoZWFkaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IChlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZiA/PyBlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWYpXG4gICAgICAgICAgICAgICAgICAgIDogZXJyb3JEaXJlY3RpdmUuZGlyZWN0aXZlLl9kZXNjcmlwdGlvblRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yVGV4dE9iajtcbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yVGV4dE9iai5tZXNzYWdlID0gZmllbGQ/LmZvcm1GaWVsZD8uaTE4U3RyaW5ncyA/PyBudWxsO1xuICAgICAgICByZXR1cm4gZXJyb3JUZXh0T2JqO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0R3JvdXBOYW1lKGZvcm1GaWVsZDogTnVsbGFibGU8UGxhdGZvcm1Gb3JtRmllbGQ+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaWYgKGZvcm1GaWVsZD8uZm9ybUdyb3VwQ29udGFpbmVyPy5tYWluVGl0bGUpIHtcbiAgICAgICAgICAgIHBhcnRzLnB1c2goZm9ybUZpZWxkLmZvcm1Hcm91cENvbnRhaW5lci5tYWluVGl0bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvcm1GaWVsZD8uZm9ybUZpZWxkR3JvdXA/LmxhYmVsKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGZvcm1GaWVsZC5mb3JtRmllbGRHcm91cC5sYWJlbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFydHMuam9pbignLCAnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbmZpZ0Vycm9yTW9kZWwoXG4gICAgICAgIGVycm9yS2V5OiBzdHJpbmcsXG4gICAgICAgIGN1c3RvbUVycm9yVHlwZXM/OiBNZXNzYWdlUG9wb3ZlckNvbmZpZ1snZXJyb3JzJ11cbiAgICApOiBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIHtcbiAgICAgICAgY29uc3QgY29uZmlnRXJyb3IgPVxuICAgICAgICAgICAgY3VzdG9tRXJyb3JUeXBlcyAmJiBjdXN0b21FcnJvclR5cGVzW2Vycm9yS2V5XSA/IGN1c3RvbUVycm9yVHlwZXNbZXJyb3JLZXldIDogdGhpcy5fY29uZmlnLmVycm9yc1tlcnJvcktleV07XG4gICAgICAgIGNvbnN0IGlzUGxhaW5FcnJvciA9ICF0aGlzLl9pc0FkdmFuY2VkRXJyb3IoY29uZmlnRXJyb3IpO1xuICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBpc1BsYWluRXJyb3IgPyAnZXJyb3InIDogY29uZmlnRXJyb3IudHlwZTtcbiAgICAgICAgY29uc3QgaGVhZGluZ01lc3NhZ2UgPSBpc1BsYWluRXJyb3IgPyBjb25maWdFcnJvciA6IGNvbmZpZ0Vycm9yLmhlYWRpbmc7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uTWVzc2FnZSA9IGlzUGxhaW5FcnJvciA/IHVuZGVmaW5lZCA6IGNvbmZpZ0Vycm9yLmRlc2NyaXB0aW9uO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICBoZWFkaW5nOiBoZWFkaW5nTWVzc2FnZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbk1lc3NhZ2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzQWR2YW5jZWRFcnJvcihlcnJvcjogc3RyaW5nIHwgTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZyk6IGVycm9yIGlzIE1lc3NhZ2VQb3BvdmVyRXJyb3JDb25maWcge1xuICAgICAgICByZXR1cm4gISFlcnJvciAmJiB0eXBlb2YgZXJyb3IgIT09ICdzdHJpbmcnO1xuICAgIH1cbn1cbiJdfQ==","import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DOCUMENT, DestroyRef, ElementRef, EventEmitter, HostBinding, Inject, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TabbableElementService, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { debounceTime } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/cdk/utils\";\nimport * as i2 from \"@fundamental-ngx/core/list\";\nexport class MessageViewComponent {\n /** @hidden */\n constructor(_destroyRef, _tabbableService, _document) {\n this._destroyRef = _destroyRef;\n this._tabbableService = _tabbableService;\n this._document = _document;\n /** Event emitted when user clicks on error entry containing additional description. */\n this.openDetails = new EventEmitter();\n /** Event emitted when user clicks on error entry and item's element should be focused. */\n this.focusItem = new EventEmitter();\n /** Event emitted when user clicks on the field link to focus on the field itself. */\n this.closePopover = new EventEmitter();\n /** @Hidden */\n this._initialClass = 'fd-message-popover__view-container';\n /** @hidden */\n this._activeListElement = null;\n }\n /** @hidden */\n ngAfterViewInit() {\n resizeObservable(this._detailsView.nativeElement)\n .pipe(debounceTime(20), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const { height } = this._detailsView.nativeElement.getBoundingClientRect();\n this._listView.nativeElement.style.minHeight = `${height}px`;\n });\n }\n /** @hidden */\n _showDetails(entry) {\n this._activeListElement = this._document.activeElement;\n if (!entry.description.message) {\n this._focusElement(undefined, entry);\n return;\n }\n this.currentScreen = 'details';\n this.openDetails.emit(entry);\n }\n /** @hidden */\n _focusElement(event, item) {\n if (!item?.element?.nativeElement) {\n return;\n }\n event?.stopImmediatePropagation();\n this.closePopover.emit(false);\n this.focusItem.emit(item);\n setTimeout(() => {\n const tabbableElement = this._tabbableService.getTabbableElement(item.element?.nativeElement);\n tabbableElement?.focus();\n });\n }\n /** @hidden */\n _onListAnimationComplete(event) {\n if (event.toState === 'open' && this._activeListElement) {\n this._activeListElement.focus();\n this._activeListElement = null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessageViewComponent, deps: [{ token: i0.DestroyRef }, { token: i1.TabbableElementService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: MessageViewComponent, isStandalone: true, selector: \"fdp-message-view\", inputs: { currentScreen: \"currentScreen\", filteredErrors: \"filteredErrors\", currentEntry: \"currentEntry\" }, outputs: { openDetails: \"openDetails\", focusItem: \"focusItem\", closePopover: \"closePopover\" }, host: { properties: { \"class\": \"this._initialClass\" } }, providers: [TabbableElementService], viewQueries: [{ propertyName: \"_listView\", first: true, predicate: [\"listView\"], descendants: true, read: ElementRef }, { propertyName: \"_detailsView\", first: true, predicate: [\"detailsView\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<ng-template #headingTemplate let-item>\\n <ng-template #directiveHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message || item.description.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.heading.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringHeading>\\n {{ item.heading.message | fdTranslate: { error: item.heading.error } : item.heading.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveHeading\\n : item.heading.type === 'string'\\n ? stringHeading\\n : i18nHeading\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<ng-template #descriptionTemplate let-item>\\n <ng-template #directiveDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.description.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringDescription>\\n {{ item.description.message | fdTranslate: { error: item.description.error } : item.description.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveDescription\\n : item.heading.type === 'string'\\n ? stringDescription\\n : i18nDescription\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<div class=\\\"fd-message-view\\\">\\n <section\\n class=\\\"fd-message-view__list\\\"\\n tabindex=\\\"-1\\\"\\n [@openCloseList]=\\\"currentScreen === 'list' ? 'open' : 'closed'\\\"\\n (@openCloseList.done)=\\\"_onListAnimationComplete($event)\\\"\\n fd-scrollbar\\n >\\n <ul #listView fd-list class=\\\"message-popover__list fd-list--message-view\\\" [navigationIndicator]=\\\"true\\\">\\n @for (group of filteredErrors; track group) {\\n @if (group.group) {\\n <li fd-list-group-header>\\n <span fd-list-title>{{ group.group }}</span>\\n </li>\\n }\\n @for (item of group.errors; track item; let i = $index) {\\n <li fd-list-item [tabindex]=\\\"i === 0 ? 0 : -1\\\" [byline]=\\\"true\\\" (click)=\\\"_showDetails(item)\\\">\\n <ng-template #itemIcon>\\n <span\\n fd-object-status\\n class=\\\"fd-list__icon\\\"\\n [status]=\\\"item.state\\\"\\n [glyph]=\\\"'message-' + item.type\\\"\\n ></span>\\n </ng-template>\\n <ng-template #listSubtitle>\\n <span class=\\\"fd-list__subtitle\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n ></ng-template>\\n </span>\\n </ng-template>\\n @if (item.element && !!item.description.message) {\\n <span fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>\\n <a tabindex=\\\"0\\\" fd-link (click)=\\\"_focusElement($event, item)\\\">\\n {{ item.fieldName }}\\n </a>\\n </span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </span>\\n } @else {\\n <a fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>{{ item.fieldName }}</span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </a>\\n }\\n </li>\\n }\\n }\\n </ul>\\n </section>\\n <section class=\\\"fd-message-view__details\\\" [@openCloseDetails]=\\\"currentScreen === 'details' ? 'open' : 'closed'\\\">\\n <div #detailsView>\\n @if (currentEntry) {\\n <span class=\\\"fd-message-view__details-title\\\">\\n <span\\n fd-object-status\\n class=\\\"fd-message-view__icon\\\"\\n [status]=\\\"currentEntry.state\\\"\\n [glyph]=\\\"'message-' + currentEntry.type\\\"\\n ></span>\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n @if (currentEntry.description.message) {\\n <span class=\\\"fd-message-view__details-description\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"descriptionTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n }\\n }\\n </div>\\n </section>\\n</div>\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: ScrollbarDirective, selector: \"[fdScrollbar], [fd-scrollbar]\", inputs: [\"noHorizontalScroll\", \"noVerticalScroll\", \"alwaysVisible\"] }, { kind: \"ngmodule\", type: ListModule }, { kind: \"component\", type: i2.ListComponent, selector: \"[fd-list], [fdList]\", inputs: [\"dropdownMode\", \"multiInputMode\", \"mobileMode\", \"hasMessage\", \"noBorder\", \"navigationIndicator\", \"selection\", \"keyboardSupport\", \"byline\", \"subline\", \"theme\", \"unreadIndicator\", \"role\", \"settingsList\", \"settingsListFooter\"], outputs: [\"focusEscapeList\"] }, { kind: \"component\", type: i2.ListItemComponent, selector: \"[fdListItem] ,[fd-list-item]\", inputs: [\"selected\", \"noData\", \"action\", \"interactive\", \"growing\", \"counter\", \"active\", \"unread\", \"byline\", \"ariaRole\", \"id\", \"preventClick\", \"settingsListTpl\"], outputs: [\"keyDown\"], exportAs: [\"fdListItem\"] }, { kind: \"directive\", type: i2.ListTitleDirective, selector: \"[fd-list-title], [fdListTitle]\", inputs: [\"wrap\", \"truncate\"] }, { kind: \"directive\", type: i2.ListGroupHeaderDirective, selector: \"[fdListGroupHeader], [fd-list-group-header]\", inputs: [\"nativeElementId\"], outputs: [\"keyDown\"] }, { kind: \"directive\", type: i2.ListLinkDirective, selector: \"[fd-list-link], [fdListLink]\", inputs: [\"navigationIndicator\", \"navigated\", \"focusable\"] }, { kind: \"directive\", type: i2.ListContentDirective, selector: \"[fdListContent], [fd-list-content]\", inputs: [\"twoCol\"] }, { kind: \"component\", type: ObjectStatusComponent, selector: \"[fd-object-status]\", inputs: [\"class\", \"status\", \"glyph\", \"glyphFont\", \"label\", \"glyphAriaLabel\", \"indicationColor\", \"clickable\", \"inverted\", \"large\", \"secondaryIndication\", \"textTemplate\"] }, { kind: \"component\", type: LinkComponent, selector: \"[fdLink], [fd-link]\", inputs: [\"class\", \"emphasized\", \"disabled\", \"inverted\", \"subtle\", \"undecorated\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], animations: [\n trigger('openCloseList', [\n // ...\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1\n })),\n state('closed', style({\n transform: 'translateX(-50px)',\n opacity: 0\n })),\n transition('open => closed', [animate('.1s cubic-bezier(0, 0, 0.2, 1)')]),\n transition('closed => open', [animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')])\n ]),\n trigger('openCloseDetails', [\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n })),\n state('closed', style({\n transform: 'translateX(50px)',\n opacity: 0\n })),\n transition('open => closed', [\n animate('.1s cubic-bezier(0, 0, 0.2, 1)', keyframes([\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n }),\n style({\n transform: 'translateX(50px)',\n opacity: 0,\n display: 'none'\n })\n ]))\n ]),\n transition('closed => open', [\n style({\n display: 'block'\n }),\n animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessageViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-message-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [TabbableElementService], animations: [\n trigger('openCloseList', [\n // ...\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1\n })),\n state('closed', style({\n transform: 'translateX(-50px)',\n opacity: 0\n })),\n transition('open => closed', [animate('.1s cubic-bezier(0, 0, 0.2, 1)')]),\n transition('closed => open', [animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')])\n ]),\n trigger('openCloseDetails', [\n state('open', style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n })),\n state('closed', style({\n transform: 'translateX(50px)',\n opacity: 0\n })),\n transition('open => closed', [\n animate('.1s cubic-bezier(0, 0, 0.2, 1)', keyframes([\n style({\n transform: 'translateX(0)',\n opacity: 1,\n display: 'block'\n }),\n style({\n transform: 'translateX(50px)',\n opacity: 0,\n display: 'none'\n })\n ]))\n ]),\n transition('closed => open', [\n style({\n display: 'block'\n }),\n animate('0.1s .1s cubic-bezier(0, 0, 0.2, 1)')\n ])\n ])\n ], imports: [\n NgTemplateOutlet,\n CdkScrollable,\n ScrollbarDirective,\n ListModule,\n ObjectStatusComponent,\n LinkComponent,\n FdTranslatePipe\n ], template: \"<ng-template #headingTemplate let-item>\\n <ng-template #directiveHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message || item.description.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.heading.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nHeading>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.heading.message\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringHeading>\\n {{ item.heading.message | fdTranslate: { error: item.heading.error } : item.heading.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveHeading\\n : item.heading.type === 'string'\\n ? stringHeading\\n : i18nHeading\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<ng-template #descriptionTemplate let-item>\\n <ng-template #directiveDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.description.error }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #i18nDescription>\\n <ng-template\\n [ngTemplateOutlet]=\\\"item.description.message!\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item.errors }\\\"\\n ></ng-template>\\n </ng-template>\\n <ng-template #stringDescription>\\n {{ item.description.message | fdTranslate: { error: item.description.error } : item.description.message }}\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"\\n item.heading.type === 'directive'\\n ? directiveDescription\\n : item.heading.type === 'string'\\n ? stringDescription\\n : i18nDescription\\n \\\"\\n ></ng-template>\\n</ng-template>\\n<div class=\\\"fd-message-view\\\">\\n <section\\n class=\\\"fd-message-view__list\\\"\\n tabindex=\\\"-1\\\"\\n [@openCloseList]=\\\"currentScreen === 'list' ? 'open' : 'closed'\\\"\\n (@openCloseList.done)=\\\"_onListAnimationComplete($event)\\\"\\n fd-scrollbar\\n >\\n <ul #listView fd-list class=\\\"message-popover__list fd-list--message-view\\\" [navigationIndicator]=\\\"true\\\">\\n @for (group of filteredErrors; track group) {\\n @if (group.group) {\\n <li fd-list-group-header>\\n <span fd-list-title>{{ group.group }}</span>\\n </li>\\n }\\n @for (item of group.errors; track item; let i = $index) {\\n <li fd-list-item [tabindex]=\\\"i === 0 ? 0 : -1\\\" [byline]=\\\"true\\\" (click)=\\\"_showDetails(item)\\\">\\n <ng-template #itemIcon>\\n <span\\n fd-object-status\\n class=\\\"fd-list__icon\\\"\\n [status]=\\\"item.state\\\"\\n [glyph]=\\\"'message-' + item.type\\\"\\n ></span>\\n </ng-template>\\n <ng-template #listSubtitle>\\n <span class=\\\"fd-list__subtitle\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n ></ng-template>\\n </span>\\n </ng-template>\\n @if (item.element && !!item.description.message) {\\n <span fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>\\n <a tabindex=\\\"0\\\" fd-link (click)=\\\"_focusElement($event, item)\\\">\\n {{ item.fieldName }}\\n </a>\\n </span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </span>\\n } @else {\\n <a fd-list-link [navigationIndicator]=\\\"!!item.description.message\\\">\\n <ng-template [ngTemplateOutlet]=\\\"itemIcon\\\"></ng-template>\\n <span fd-list-content>\\n <span fd-list-title>{{ item.fieldName }}</span>\\n <ng-template [ngTemplateOutlet]=\\\"listSubtitle\\\"></ng-template>\\n </span>\\n </a>\\n }\\n </li>\\n }\\n }\\n </ul>\\n </section>\\n <section class=\\\"fd-message-view__details\\\" [@openCloseDetails]=\\\"currentScreen === 'details' ? 'open' : 'closed'\\\">\\n <div #detailsView>\\n @if (currentEntry) {\\n <span class=\\\"fd-message-view__details-title\\\">\\n <span\\n fd-object-status\\n class=\\\"fd-message-view__icon\\\"\\n [status]=\\\"currentEntry.state\\\"\\n [glyph]=\\\"'message-' + currentEntry.type\\\"\\n ></span>\\n <ng-template\\n [ngTemplateOutlet]=\\\"headingTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n @if (currentEntry.description.message) {\\n <span class=\\\"fd-message-view__details-description\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"descriptionTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: currentEntry }\\\"\\n ></ng-template>\\n </span>\\n }\\n }\\n </div>\\n </section>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i0.DestroyRef }, { type: i1.TabbableElementService }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { currentScreen: [{\n type: Input\n }], filteredErrors: [{\n type: Input\n }], currentEntry: [{\n type: Input\n }], openDetails: [{\n type: Output\n }], focusItem: [{\n type: Output\n }], closePopover: [{\n type: Output\n }], _listView: [{\n type: ViewChild,\n args: ['listView', { read: ElementRef }]\n }], _detailsView: [{\n type: ViewChild,\n args: ['detailsView', { read: ElementRef }]\n }], _initialClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL2NvbXBvbmVudHMvbWVzc2FnZS12aWV3L21lc3NhZ2Utdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9jb21wb25lbnRzL21lc3NhZ2Utdmlldy9tZXNzYWdlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQVksc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0Is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O3NCQURyQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSzNCLGFBQWE7c0JBRC9CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERPQ1VNRU5ULFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVGFiYmFibGVFbGVtZW50U2VydmljZSwgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGluayc7XG5pbXBvcnQgeyBMaXN0TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL29iamVjdC1zdGF0dXMnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlckVudHJ5LCBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXAgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLWVudHJ5LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLW1lc3NhZ2UtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2Utdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ29wZW5DbG9zZUxpc3QnLCBbXG4gICAgICAgICAgICAvLyAuLi5cbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdvcGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnY2xvc2VkJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTUwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW2FuaW1hdGUoJzAuMXMgLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyldKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcignb3BlbkNsb3NlRGV0YWlscycsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdvcGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnY2xvc2VkJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoNTBweCknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICAnLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaydcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoNTBweCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMC4xcyAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBMaXN0TW9kdWxlLFxuICAgICAgICBPYmplY3RTdGF0dXNDb21wb25lbnQsXG4gICAgICAgIExpbmtDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKiogQ3VycmVudCBNZXNzYWdlIFBvcG92ZXIgc2NyZWVuLiBDYW4gYmUgZWl0aGVyIGBsaXN0YCBvciBgZGV0YWlsc2AuICovXG4gICAgQElucHV0KClcbiAgICBjdXJyZW50U2NyZWVuOiAnbGlzdCcgfCAnZGV0YWlscyc7XG5cbiAgICAvKiogRmlsdGVyZWQgZXJyb3JzIHRvIHJlbmRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcmVkRXJyb3JzOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXTtcblxuICAgIC8qKiBDdXJyZW50IGVycm9yIGVudHJ5LiBVc2VkIGZvciBkZXRhaWxzIHZpZXcuICovXG4gICAgQElucHV0KClcbiAgICBjdXJyZW50RW50cnk6IE51bGxhYmxlPE1lc3NhZ2VQb3BvdmVyRW50cnk+O1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBlcnJvciBlbnRyeSBjb250YWluaW5nIGFkZGl0aW9uYWwgZGVzY3JpcHRpb24uICovXG4gICAgQE91dHB1dCgpXG4gICAgb3BlbkRldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VQb3BvdmVyRW50cnk+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIGVycm9yIGVudHJ5IGFuZCBpdGVtJ3MgZWxlbWVudCBzaG91bGQgYmUgZm9jdXNlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VQb3BvdmVyRW50cnk+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIHRoZSBmaWVsZCBsaW5rIHRvIGZvY3VzIG9uIHRoZSBmaWVsZCBpdHNlbGYuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xvc2VQb3BvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsaXN0VmlldycsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBfbGlzdFZpZXc6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNWaWV3JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJvdGVjdGVkIF9kZXRhaWxzVmlldzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pbml0aWFsQ2xhc3MgPSAnZmQtbWVzc2FnZS1wb3BvdmVyX192aWV3LWNvbnRhaW5lcic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZUxpc3RFbGVtZW50OiBOdWxsYWJsZTxIVE1MRWxlbWVudD4gPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVTZXJ2aWNlOiBUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9kZXRhaWxzVmlldy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBoZWlnaHQgfSA9IHRoaXMuX2RldGFpbHNWaWV3Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdFZpZXcubmF0aXZlRWxlbWVudC5zdHlsZS5taW5IZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0RldGFpbHMoZW50cnk6IE1lc3NhZ2VQb3BvdmVyRW50cnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlTGlzdEVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIWVudHJ5LmRlc2NyaXB0aW9uLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzRWxlbWVudCh1bmRlZmluZWQsIGVudHJ5KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRTY3JlZW4gPSAnZGV0YWlscyc7XG4gICAgICAgIHRoaXMub3BlbkRldGFpbHMuZW1pdChlbnRyeSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXNFbGVtZW50KGV2ZW50PzogTW91c2VFdmVudCwgaXRlbT86IE1lc3NhZ2VQb3BvdmVyRW50cnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpdGVtPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQ/LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmNsb3NlUG9wb3Zlci5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb2N1c0l0ZW0uZW1pdChpdGVtKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnQgPSB0aGlzLl90YWJiYWJsZVNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0YWJiYWJsZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTGlzdEFuaW1hdGlvbkNvbXBsZXRlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdvcGVuJyAmJiB0aGlzLl9hY3RpdmVMaXN0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlTGlzdEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUxpc3RFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjaGVhZGluZ1RlbXBsYXRlIGxldC1pdGVtPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGlyZWN0aXZlSGVhZGluZz5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLmhlYWRpbmcubWVzc2FnZSB8fCBpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2VcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmhlYWRpbmcuZXJyb3IgfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNpMThuSGVhZGluZz5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLmhlYWRpbmcubWVzc2FnZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0uZXJyb3JzIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3RyaW5nSGVhZGluZz5cbiAgICAgICAge3sgaXRlbS5oZWFkaW5nLm1lc3NhZ2UgfCBmZFRyYW5zbGF0ZTogeyBlcnJvcjogaXRlbS5oZWFkaW5nLmVycm9yIH0gOiBpdGVtLmhlYWRpbmcubWVzc2FnZSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgICAgICAgaXRlbS5oZWFkaW5nLnR5cGUgPT09ICdkaXJlY3RpdmUnXG4gICAgICAgICAgICAgICAgPyBkaXJlY3RpdmVIZWFkaW5nXG4gICAgICAgICAgICAgICAgOiBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gc3RyaW5nSGVhZGluZ1xuICAgICAgICAgICAgICAgICAgOiBpMThuSGVhZGluZ1xuICAgICAgICBcIlxuICAgID48L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVzY3JpcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8bmctdGVtcGxhdGUgI2RpcmVjdGl2ZURlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmRlc2NyaXB0aW9uLmVycm9yIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaTE4bkRlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmVycm9ycyB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3N0cmluZ0Rlc2NyaXB0aW9uPlxuICAgICAgICB7eyBpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2UgfCBmZFRyYW5zbGF0ZTogeyBlcnJvcjogaXRlbS5kZXNjcmlwdGlvbi5lcnJvciB9IDogaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiXG4gICAgICAgICAgICBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ2RpcmVjdGl2ZSdcbiAgICAgICAgICAgICAgICA/IGRpcmVjdGl2ZURlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgOiBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gc3RyaW5nRGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgIDogaTE4bkRlc2NyaXB0aW9uXG4gICAgICAgIFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuPGRpdiBjbGFzcz1cImZkLW1lc3NhZ2Utdmlld1wiPlxuICAgIDxzZWN0aW9uXG4gICAgICAgIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19saXN0XCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIFtAb3BlbkNsb3NlTGlzdF09XCJjdXJyZW50U2NyZWVuID09PSAnbGlzdCcgPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICAgIChAb3BlbkNsb3NlTGlzdC5kb25lKT1cIl9vbkxpc3RBbmltYXRpb25Db21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgZmQtc2Nyb2xsYmFyXG4gICAgPlxuICAgICAgICA8dWwgI2xpc3RWaWV3IGZkLWxpc3QgY2xhc3M9XCJtZXNzYWdlLXBvcG92ZXJfX2xpc3QgZmQtbGlzdC0tbWVzc2FnZS12aWV3XCIgW25hdmlnYXRpb25JbmRpY2F0b3JdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgQGZvciAoZ3JvdXAgb2YgZmlsdGVyZWRFcnJvcnM7IHRyYWNrIGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgQGlmIChncm91cC5ncm91cCkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1ncm91cC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IGdyb3VwLmdyb3VwIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdyb3VwLmVycm9yczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBbdGFiaW5kZXhdPVwiaSA9PT0gMCA/IDAgOiAtMVwiIFtieWxpbmVdPVwidHJ1ZVwiIChjbGljayk9XCJfc2hvd0RldGFpbHMoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cIml0ZW0uc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ21lc3NhZ2UtJyArIGl0ZW0udHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xpc3RTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWxpc3RfX3N1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5lbGVtZW50ICYmICEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1saW5rIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIiEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtSWNvblwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgZmQtbGluayAoY2xpY2spPVwiX2ZvY3VzRWxlbWVudCgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZmllbGROYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RTdWJ0aXRsZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgW25hdmlnYXRpb25JbmRpY2F0b3JdPVwiISFpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1JY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBpdGVtLmZpZWxkTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3VidGl0bGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2RldGFpbHNcIiBbQG9wZW5DbG9zZURldGFpbHNdPVwiY3VycmVudFNjcmVlbiA9PT0gJ2RldGFpbHMnID8gJ29wZW4nIDogJ2Nsb3NlZCdcIj5cbiAgICAgICAgPGRpdiAjZGV0YWlsc1ZpZXc+XG4gICAgICAgICAgICBAaWYgKGN1cnJlbnRFbnRyeSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19kZXRhaWxzLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW1lc3NhZ2Utdmlld19faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cImN1cnJlbnRFbnRyeS5zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ21lc3NhZ2UtJyArIGN1cnJlbnRFbnRyeS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjdXJyZW50RW50cnkgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGN1cnJlbnRFbnRyeS5kZXNjcmlwdGlvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19kZXRhaWxzLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGN1cnJlbnRFbnRyeSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, computed, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { InitialFocusDirective, countBy, flatten } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { PopoverComponent, PopoverModule } from '@fundamental-ngx/core/popover';\nimport { SegmentedButtonComponent } from '@fundamental-ngx/core/segmented-button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { getFormState } from '@fundamental-ngx/platform/form';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport { convertFormState, convertFormStateToMessagePopoverState } from './utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/popover\";\nimport * as i2 from \"@fundamental-ngx/core/bar\";\nimport * as i3 from \"@angular/forms\";\nexport class MessagePopoverComponent {\n constructor() {\n /** Event emits when user clicks on error entry and item's element needs to be focused. */\n this.focusItem = new EventEmitter();\n /** Current message popover screen. Can be `list` or `details`. */\n this.currentScreen = 'list';\n /** @hidden */\n this._currentErrorType$ = signal('all', ...(ngDevMode ? [{ debugName: \"_currentErrorType$\" }] : []));\n /** @hidden */\n this._errorTypes$ = computed(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors);\n return errorTypes.map((errorType) => ({\n group: errorType,\n count: countedErrors[errorType],\n state: convertFormState(errorType)\n }));\n }, ...(ngDevMode ? [{ debugName: \"_errorTypes$\" }] : []));\n /** @hidden */\n this._priorityStateItemsCount$ = computed(() => this._countedErrors$()[this._priorityFormState$()] || 0, ...(ngDevMode ? [{ debugName: \"_priorityStateItemsCount$\" }] : []));\n /** @hidden */\n this._priorityFormState$ = computed(() => {\n const countedErrors = this._countedErrors$();\n const errorTypes = Object.keys(countedErrors);\n return getFormState(errorTypes);\n }, ...(ngDevMode ? [{ debugName: \"_priorityFormState$\" }] : []));\n /** @hidden */\n this._priorityState$ = computed(() => convertFormStateToMessagePopoverState(this._priorityFormState$()), ...(ngDevMode ? [{ debugName: \"_priorityState$\" }] : []));\n /** @hidden */\n this._filteredErrors$ = computed(() => {\n const groupedErrors = this._groupedErrors$();\n const errorType = this._currentErrorType$();\n if (errorType === 'all') {\n return groupedErrors;\n }\n const filteredErrors = [];\n groupedErrors.forEach((group) => {\n const errors = group.errors.filter((error) => error.type === errorType);\n if (errors.length === 0) {\n return;\n }\n filteredErrors.push({\n group: group.group,\n errors\n });\n });\n return filteredErrors;\n }, ...(ngDevMode ? [{ debugName: \"_filteredErrors$\" }] : []));\n this._groupedErrors$ = computed(() => this._wrapper$()?.errors$() || [], ...(ngDevMode ? [{ debugName: \"_groupedErrors$\" }] : []));\n this._wrapper$ = signal(null, ...(ngDevMode ? [{ debugName: \"_wrapper$\" }] : []));\n this._countedErrors$ = computed(() => countBy(flatten(Object.values(this._groupedErrors$().map((group) => group.errors))), 'type'), ...(ngDevMode ? [{ debugName: \"_countedErrors$\" }] : []));\n }\n /** Message Popover Wrapper component. */\n set wrapper(value) {\n value?.setMessagePopover(this);\n this._wrapper$.set(value);\n }\n get wrapper() {\n return this._wrapper$();\n }\n /** @hidden */\n _showList() {\n this.currentScreen = 'list';\n this.currentEntry = null;\n }\n /** @hidden */\n _showDetails(entry) {\n this.currentScreen = 'details';\n this.currentEntry = entry;\n }\n /** @hidden */\n _closePopover(focusLast = true) {\n this._popover.close(focusLast);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: MessagePopoverComponent, isStandalone: true, selector: \"fdp-message-popover\", inputs: { wrapper: \"wrapper\" }, outputs: { focusItem: \"focusItem\" }, viewQueries: [{ propertyName: \"_popover\", first: true, predicate: [\"popover\"], descendants: true }], ngImport: i0, template: \"@if (_errorTypes$().length > 0) {\\n <fd-popover\\n #popover\\n placement=\\\"top-start\\\"\\n [focusTrapped]=\\\"true\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [disableScrollbar]=\\\"true\\\"\\n >\\n <fd-popover-control>\\n <button\\n fd-button\\n type=\\\"button\\\"\\n class=\\\"fd-message-popover__trigger fd-message-popover__trigger\\\"\\n [ngClass]=\\\"'fd-message-popover__trigger--' + _priorityState$()\\\"\\n [glyph]=\\\"'message-' + _priorityFormState$()\\\"\\n [label]=\\\"_priorityStateItemsCount$().toString()\\\"\\n ></button>\\n </fd-popover-control>\\n <div>\\n <div fd-popover-body-header>\\n <div fd-bar barDesign=\\\"header\\\" class=\\\"fd-bar--growing\\\">\\n <div fd-bar-left>\\n @if (currentScreen === 'list') {\\n <fd-segmented-button\\n [ngModel]=\\\"_currentErrorType$()\\\"\\n (ngModelChange)=\\\"_currentErrorType$.set($event)\\\"\\n >\\n <button\\n fd-button\\n [label]=\\\"'platformMessagePopover.allErrors' | fdTranslate\\\"\\n value=\\\"all\\\"\\n ></button>\\n @for (type of _errorTypes$(); track type) {\\n <button fd-button [value]=\\\"type.group\\\">\\n <span\\n fd-object-status\\n [status]=\\\"type.state\\\"\\n [glyph]=\\\"'message-' + type.group\\\"\\n ></span>\\n <span class=\\\"fd-button__text\\\">{{ type.count }}</span>\\n </button>\\n }\\n </fd-segmented-button>\\n }\\n @if (currentScreen === 'details') {\\n <button\\n fd-button\\n fdkInitialFocus\\n fdType=\\\"transparent\\\"\\n glyph=\\\"navigation-left-arrow\\\"\\n title=\\\"Go back\\\"\\n (click)=\\\"_showList()\\\"\\n ></button>\\n }\\n </div>\\n <div fd-bar-right>\\n <button fd-button fdType=\\\"transparent\\\" (click)=\\\"popover.close()\\\" glyph=\\\"decline\\\"></button>\\n </div>\\n </div>\\n </div>\\n <fdp-message-view\\n [currentScreen]=\\\"currentScreen\\\"\\n [filteredErrors]=\\\"_filteredErrors$()\\\"\\n [currentEntry]=\\\"currentEntry\\\"\\n (openDetails)=\\\"_showDetails($event)\\\"\\n (closePopover)=\\\"_closePopover($event)\\\"\\n (focusItem)=\\\"focusItem.emit($event)\\\"\\n ></fdp-message-view>\\n </div>\\n </fd-popover>\\n}\\n\", styles: [\".fd-message-view{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;position:relative}.fd-message-view:after,.fd-message-view:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-height:50vh;max-width:26rem;padding-block:0;padding-inline:0}.fd-message-view__list:after,.fd-message-view__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list--hidden{opacity:0}.fd-message-view__details{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;inset:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:3.5rem 1rem;position:absolute}.fd-message-view__details:after,.fd-message-view__details:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader5Size);font-weight:400;font-weight:var(--sapFontHeaderWeight);forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal;-webkit-margin-start:0;margin-inline-start:0}.fd-message-view__details-title:after,.fd-message-view__details-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title .fd-message-view__icon{font-size:1rem;margin-block:0;margin-inline:-2rem .5rem}.fd-message-view__details-description{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.4;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal}.fd-message-view__details-description:after,.fd-message-view__details-description:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details--visible{display:block}.fd-message-popover__trigger{--fdButtonFocusColor:var(--sapContent_ContrastFocusColor);border-width:var(--fdMessagePopover_Trigger_Border_Width);text-shadow:var(--fdButtonTextShadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--critical:hover{--fdButtonColor:var(--sapButton_Critical_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Hover_Background);--fdButtonBorderColor:var(--sapButton_Critical_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--critical:active{--fdButtonColor:var(--sapButton_Critical_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Active_Background);--fdButtonBorderColor:var(--sapButton_Critical_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical[aria-disabled=true]{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--negative{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--negative:hover{--fdButtonColor:var(--sapButton_Negative_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Hover_Background);--fdButtonBorderColor:var(--sapButton_Negative_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--negative:active{--fdButtonColor:var(--sapButton_Negative_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Active_Background);--fdButtonBorderColor:var(--sapButton_Negative_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--success{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--success:hover{--fdButtonColor:var(--sapButton_Success_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Hover_Background);--fdButtonBorderColor:var(--sapButton_Success_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--success:active{--fdButtonColor:var(--sapButton_Success_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Active_Background);--fdButtonBorderColor:var(--sapButton_Success_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success[aria-disabled=true]{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--information{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Information_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--information:hover{--fdButtonColor:var(--fdMessagePopover_Information_Hover_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Hover_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Hover_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--information:active{--fdButtonColor:var(--fdMessagePopover_Information_Active_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Active_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Active_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information[aria-disabled=true]{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__view-container{border-bottom-left-radius:var(--fdPopover_Border_Radius);border-bottom-right-radius:var(--fdPopover_Border_Radius);overflow:hidden;display:block;max-height:40vh}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child:before{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-view__list{min-width:20rem;min-height:10rem;max-height:40vh}.fd-message-view__list .fd-link{font-size:inherit}.fd-message-view__list .fd-list__link:active,.fd-message-view__list .fd-list__link.is-active{--sapLinkColor: var(--sapList_Active_TextColor);--sapLink_Active_Color: var(--sapList_Active_TextColor)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/message-popover.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], dependencies: [{ kind: \"ngmodule\", type: PopoverModule }, { kind: \"component\", type: i1.PopoverControlComponent, selector: \"fd-popover-control, [fdPopoverControl]\" }, { kind: \"directive\", type: i1.PopoverBodyHeaderDirective, selector: \"[fdPopoverBodyHeader], [fd-popover-body-header]\" }, { kind: \"component\", type: i1.PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: BarModule }, { kind: \"component\", type: i2.BarComponent, selector: \"[fd-bar]\", inputs: [\"class\", \"barDesign\", \"inPage\", \"inHomePage\", \"clear\", \"size\", \"role\"] }, { kind: \"directive\", type: i2.BarLeftDirective, selector: \"[fd-bar-left]\" }, { kind: \"directive\", type: i2.BarRightDirective, selector: \"[fd-bar-right]\" }, { kind: \"component\", type: SegmentedButtonComponent, selector: \"fd-segmented-button\", inputs: [\"toggle\", \"vertical\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: ObjectStatusComponent, selector: \"[fd-object-status]\", inputs: [\"class\", \"status\", \"glyph\", \"glyphFont\", \"label\", \"glyphAriaLabel\", \"indicationColor\", \"clickable\", \"inverted\", \"large\", \"secondaryIndication\", \"textTemplate\"] }, { kind: \"directive\", type: InitialFocusDirective, selector: \"[fdkInitialFocus]\", inputs: [\"fdkInitialFocus\", \"enabled\", \"focusLastElement\"] }, { kind: \"component\", type: MessageViewComponent, selector: \"fdp-message-view\", inputs: [\"currentScreen\", \"filteredErrors\", \"currentEntry\"], outputs: [\"openDetails\", \"focusItem\", \"closePopover\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MessagePopoverComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-message-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n PopoverModule,\n ButtonComponent,\n NgClass,\n BarModule,\n SegmentedButtonComponent,\n FormsModule,\n ObjectStatusComponent,\n InitialFocusDirective,\n MessageViewComponent,\n FdTranslatePipe\n ], template: \"@if (_errorTypes$().length > 0) {\\n <fd-popover\\n #popover\\n placement=\\\"top-start\\\"\\n [focusTrapped]=\\\"true\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [disableScrollbar]=\\\"true\\\"\\n >\\n <fd-popover-control>\\n <button\\n fd-button\\n type=\\\"button\\\"\\n class=\\\"fd-message-popover__trigger fd-message-popover__trigger\\\"\\n [ngClass]=\\\"'fd-message-popover__trigger--' + _priorityState$()\\\"\\n [glyph]=\\\"'message-' + _priorityFormState$()\\\"\\n [label]=\\\"_priorityStateItemsCount$().toString()\\\"\\n ></button>\\n </fd-popover-control>\\n <div>\\n <div fd-popover-body-header>\\n <div fd-bar barDesign=\\\"header\\\" class=\\\"fd-bar--growing\\\">\\n <div fd-bar-left>\\n @if (currentScreen === 'list') {\\n <fd-segmented-button\\n [ngModel]=\\\"_currentErrorType$()\\\"\\n (ngModelChange)=\\\"_currentErrorType$.set($event)\\\"\\n >\\n <button\\n fd-button\\n [label]=\\\"'platformMessagePopover.allErrors' | fdTranslate\\\"\\n value=\\\"all\\\"\\n ></button>\\n @for (type of _errorTypes$(); track type) {\\n <button fd-button [value]=\\\"type.group\\\">\\n <span\\n fd-object-status\\n [status]=\\\"type.state\\\"\\n [glyph]=\\\"'message-' + type.group\\\"\\n ></span>\\n <span class=\\\"fd-button__text\\\">{{ type.count }}</span>\\n </button>\\n }\\n </fd-segmented-button>\\n }\\n @if (currentScreen === 'details') {\\n <button\\n fd-button\\n fdkInitialFocus\\n fdType=\\\"transparent\\\"\\n glyph=\\\"navigation-left-arrow\\\"\\n title=\\\"Go back\\\"\\n (click)=\\\"_showList()\\\"\\n ></button>\\n }\\n </div>\\n <div fd-bar-right>\\n <button fd-button fdType=\\\"transparent\\\" (click)=\\\"popover.close()\\\" glyph=\\\"decline\\\"></button>\\n </div>\\n </div>\\n </div>\\n <fdp-message-view\\n [currentScreen]=\\\"currentScreen\\\"\\n [filteredErrors]=\\\"_filteredErrors$()\\\"\\n [currentEntry]=\\\"currentEntry\\\"\\n (openDetails)=\\\"_showDetails($event)\\\"\\n (closePopover)=\\\"_closePopover($event)\\\"\\n (focusItem)=\\\"focusItem.emit($event)\\\"\\n ></fdp-message-view>\\n </div>\\n </fd-popover>\\n}\\n\", styles: [\".fd-message-view{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;position:relative}.fd-message-view:after,.fd-message-view:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-height:50vh;max-width:26rem;padding-block:0;padding-inline:0}.fd-message-view__list:after,.fd-message-view__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__list--hidden{opacity:0}.fd-message-view__details{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;inset:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:3.5rem 1rem;position:absolute}.fd-message-view__details:after,.fd-message-view__details:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader5Size);font-weight:400;font-weight:var(--sapFontHeaderWeight);forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal;-webkit-margin-start:0;margin-inline-start:0}.fd-message-view__details-title:after,.fd-message-view__details-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details-title .fd-message-view__icon{font-size:1rem;margin-block:0;margin-inline:-2rem .5rem}.fd-message-view__details-description{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.4;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-after:1rem;display:block;margin-block-end:1rem;white-space:normal}.fd-message-view__details-description:after,.fd-message-view__details-description:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-message-view__details--visible{display:block}.fd-message-popover__trigger{--fdButtonFocusColor:var(--sapContent_ContrastFocusColor);border-width:var(--fdMessagePopover_Trigger_Border_Width);text-shadow:var(--fdButtonTextShadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--critical:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--critical:hover{--fdButtonColor:var(--sapButton_Critical_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Hover_Background);--fdButtonBorderColor:var(--sapButton_Critical_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--critical:active{--fdButtonColor:var(--sapButton_Critical_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Active_Background);--fdButtonBorderColor:var(--sapButton_Critical_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--critical.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--critical[aria-disabled=true]{--fdButtonColor:var(--sapButton_Critical_TextColor);--fdButtonBackgroundColor:var(--sapButton_Critical_Background);--fdButtonBorderColor:var(--sapButton_Critical_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Critical_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--negative{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--negative:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--negative:hover{--fdButtonColor:var(--sapButton_Negative_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Hover_Background);--fdButtonBorderColor:var(--sapButton_Negative_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--negative:active{--fdButtonColor:var(--sapButton_Negative_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Active_Background);--fdButtonBorderColor:var(--sapButton_Negative_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--negative.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Negative_TextColor);--fdButtonBackgroundColor:var(--sapButton_Negative_Background);--fdButtonBorderColor:var(--sapButton_Negative_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Negative_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--success{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--success:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--success:hover{--fdButtonColor:var(--sapButton_Success_Hover_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Hover_Background);--fdButtonBorderColor:var(--sapButton_Success_Hover_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--success:active{--fdButtonColor:var(--sapButton_Success_Active_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Active_Background);--fdButtonBorderColor:var(--sapButton_Success_Active_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--success.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--success[aria-disabled=true]{--fdButtonColor:var(--sapButton_Success_TextColor);--fdButtonBackgroundColor:var(--sapButton_Success_Background);--fdButtonBorderColor:var(--sapButton_Success_BorderColor);--fdButtonTextShadow:var(--fdMessagePopover_Success_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__trigger.fd-message-popover__trigger--information{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Information_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus{z-index:5}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-focus:after,.fd-message-popover__trigger.fd-message-popover__trigger--information:focus:after{border-color:var(--fdButtonFocusColor)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-hover,.fd-message-popover__trigger.fd-message-popover__trigger--information:hover{--fdButtonColor:var(--fdMessagePopover_Information_Hover_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Hover_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Hover_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Hover_Text_Shadow)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-active,.fd-message-popover__trigger.fd-message-popover__trigger--information:active{--fdButtonColor:var(--fdMessagePopover_Information_Active_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Active_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Active_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Active_Text_Shadow);--fdButtonFocusColor:var(--fdMessagePopover_Active_Focus_Outline_Color)}.fd-message-popover__trigger.fd-message-popover__trigger--information.is-disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information:disabled,.fd-message-popover__trigger.fd-message-popover__trigger--information[aria-disabled=true]{--fdButtonColor:var(--fdMessagePopover_Information_Regular_Color);--fdButtonBackgroundColor:var(--fdMessagePopover_Information_Regular_Background_Color);--fdButtonBorderColor:var(--fdMessagePopover_Information_Regular_Border_Color);--fdButtonTextShadow:var(--fdMessagePopover_Information_Regular_Text_Shadow);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-message-popover__view-container{border-bottom-left-radius:var(--fdPopover_Border_Radius);border-bottom-right-radius:var(--fdPopover_Border_Radius);overflow:hidden;display:block;max-height:40vh}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:first-child:before{border-top-left-radius:0;border-top-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-popover__view-container .fd-message-view .fd-list__item:last-child:before{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-message-view__list{min-width:20rem;min-height:10rem;max-height:40vh}.fd-message-view__list .fd-link{font-size:inherit}.fd-message-view__list .fd-list__link:active,.fd-message-view__list .fd-list__link.is-active{--sapLinkColor: var(--sapList_Active_TextColor);--sapLink_Active_Color: var(--sapList_Active_TextColor)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/message-popover.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], propDecorators: { _popover: [{\n type: ViewChild,\n args: ['popover']\n }], wrapper: [{\n type: Input\n }], focusItem: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL21lc3NhZ2UtcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9tZXNzYWdlLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFZLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBUXhG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QUFTOytCQUNJLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDTCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxTQUFTO3dCQUNULHdCQUF3Qjt3QkFDeEIsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixlQUFlO3FCQUNsQjs4QkFLUSxRQUFRO3NCQURoQixTQUFTO3VCQUFDLFNBQVM7Z0JBS2hCLE9BQU87c0JBRFYsS0FBSztnQkFXTixTQUFTO3NCQURSLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIFdyaXRhYmxlU2lnbmFsLFxuICAgIGNvbXB1dGVkLFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IEluaXRpYWxGb2N1c0RpcmVjdGl2ZSwgTnVsbGFibGUsIGNvdW50QnksIGZsYXR0ZW4gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCYXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL29iamVjdC1zdGF0dXMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zZWdtZW50ZWQtYnV0dG9uJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBnZXRGb3JtU3RhdGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgTWVzc2FnZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVzc2FnZS12aWV3L21lc3NhZ2Utdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBNZXNzYWdlUG9wb3ZlckVudHJ5LFxuICAgIE1lc3NhZ2VQb3BvdmVyRXJyb3IsXG4gICAgTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwXG59IGZyb20gJy4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci1lbnRyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJXcmFwcGVyIH0gZnJvbSAnLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLXdyYXBwZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyLCBNZXNzYWdlUG9wb3ZlclN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjb252ZXJ0Rm9ybVN0YXRlLCBjb252ZXJ0Rm9ybVN0YXRlVG9NZXNzYWdlUG9wb3ZlclN0YXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLW1lc3NhZ2UtcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21lc3NhZ2UtcG9wb3Zlci5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQmFyTW9kdWxlLFxuICAgICAgICBTZWdtZW50ZWRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBPYmplY3RTdGF0dXNDb21wb25lbnQsXG4gICAgICAgIEluaXRpYWxGb2N1c0RpcmVjdGl2ZSxcbiAgICAgICAgTWVzc2FnZVZpZXdDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBNZXNzYWdlUG9wb3ZlciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICByZWFkb25seSBfcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKiBNZXNzYWdlIFBvcG92ZXIgV3JhcHBlciBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgd3JhcHBlcih2YWx1ZTogTnVsbGFibGU8TWVzc2FnZVBvcG92ZXJXcmFwcGVyPikge1xuICAgICAgICB2YWx1ZT8uc2V0TWVzc2FnZVBvcG92ZXIodGhpcyk7XG4gICAgICAgIHRoaXMuX3dyYXBwZXIkLnNldCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB3cmFwcGVyKCk6IE51bGxhYmxlPE1lc3NhZ2VQb3BvdmVyV3JhcHBlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fd3JhcHBlciQoKTtcbiAgICB9XG5cbiAgICAvKiogRXZlbnQgZW1pdHMgd2hlbiB1c2VyIGNsaWNrcyBvbiBlcnJvciBlbnRyeSBhbmQgaXRlbSdzIGVsZW1lbnQgbmVlZHMgdG8gYmUgZm9jdXNlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VQb3BvdmVyRW50cnk+KCk7XG5cbiAgICAvKiogQ3VycmVudCBtZXNzYWdlIHBvcG92ZXIgc2NyZWVuLiBDYW4gYmUgYGxpc3RgIG9yIGBkZXRhaWxzYC4gKi9cbiAgICBjdXJyZW50U2NyZWVuOiAnbGlzdCcgfCAnZGV0YWlscycgPSAnbGlzdCc7XG5cbiAgICAvKiogQ3VycmVudCBlcnJvciBlbnRyeS4gKi9cbiAgICBjdXJyZW50RW50cnk6IE51bGxhYmxlPE1lc3NhZ2VQb3BvdmVyRW50cnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3VycmVudEVycm9yVHlwZSQ6IFdyaXRhYmxlU2lnbmFsPE1lc3NhZ2VQb3BvdmVyRXJyb3JbJ2dyb3VwJ10+ID0gc2lnbmFsKCdhbGwnKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Vycm9yVHlwZXMkID0gY29tcHV0ZWQ8TWVzc2FnZVBvcG92ZXJFcnJvcltdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ZWRFcnJvcnMgPSB0aGlzLl9jb3VudGVkRXJyb3JzJCgpO1xuICAgICAgICBjb25zdCBlcnJvclR5cGVzID0gT2JqZWN0LmtleXMoY291bnRlZEVycm9ycykgYXMgRm9ybVN0YXRlc1tdO1xuICAgICAgICByZXR1cm4gZXJyb3JUeXBlcy5tYXAoKGVycm9yVHlwZSkgPT4gKHtcbiAgICAgICAgICAgIGdyb3VwOiBlcnJvclR5cGUsXG4gICAgICAgICAgICBjb3VudDogY291bnRlZEVycm9yc1tlcnJvclR5cGVdLFxuICAgICAgICAgICAgc3RhdGU6IGNvbnZlcnRGb3JtU3RhdGUoZXJyb3JUeXBlKVxuICAgICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcmlvcml0eVN0YXRlSXRlbXNDb3VudCQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9jb3VudGVkRXJyb3JzJCgpW3RoaXMuX3ByaW9yaXR5Rm9ybVN0YXRlJCgpIV0gfHwgMCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcmlvcml0eUZvcm1TdGF0ZSQgPSBjb21wdXRlZDxGb3JtU3RhdGVzPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ZWRFcnJvcnMgPSB0aGlzLl9jb3VudGVkRXJyb3JzJCgpO1xuICAgICAgICBjb25zdCBlcnJvclR5cGVzID0gT2JqZWN0LmtleXMoY291bnRlZEVycm9ycykgYXMgRm9ybVN0YXRlc1tdO1xuICAgICAgICByZXR1cm4gZ2V0Rm9ybVN0YXRlKGVycm9yVHlwZXMpO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcHJpb3JpdHlTdGF0ZSQgPSBjb21wdXRlZDxOdWxsYWJsZTxNZXNzYWdlUG9wb3ZlclN0YXRlPj4oKCkgPT5cbiAgICAgICAgY29udmVydEZvcm1TdGF0ZVRvTWVzc2FnZVBvcG92ZXJTdGF0ZSh0aGlzLl9wcmlvcml0eUZvcm1TdGF0ZSQoKSlcbiAgICApO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmlsdGVyZWRFcnJvcnMkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBncm91cGVkRXJyb3JzID0gdGhpcy5fZ3JvdXBlZEVycm9ycyQoKTtcbiAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gdGhpcy5fY3VycmVudEVycm9yVHlwZSQoKTtcblxuICAgICAgICBpZiAoZXJyb3JUeXBlID09PSAnYWxsJykge1xuICAgICAgICAgICAgcmV0dXJuIGdyb3VwZWRFcnJvcnM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXTtcbiAgICAgICAgZ3JvdXBlZEVycm9ycy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gZ3JvdXAuZXJyb3JzLmZpbHRlcigoZXJyb3IpID0+IGVycm9yLnR5cGUgPT09IGVycm9yVHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJlZEVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBncm91cDogZ3JvdXAuZ3JvdXAsXG4gICAgICAgICAgICAgICAgZXJyb3JzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRXJyb3JzO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZ3JvdXBlZEVycm9ycyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl93cmFwcGVyJCgpPy5lcnJvcnMkKCkgfHwgW10pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfd3JhcHBlciQgPSBzaWduYWw8TnVsbGFibGU8TWVzc2FnZVBvcG92ZXJXcmFwcGVyPj4obnVsbCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb3VudGVkRXJyb3JzJCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIGNvdW50QnkoZmxhdHRlbihPYmplY3QudmFsdWVzKHRoaXMuX2dyb3VwZWRFcnJvcnMkKCkubWFwKChncm91cCkgPT4gZ3JvdXAuZXJyb3JzKSkpLCAndHlwZScpXG4gICAgKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTY3JlZW4gPSAnbGlzdCc7XG4gICAgICAgIHRoaXMuY3VycmVudEVudHJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93RGV0YWlscyhlbnRyeTogTWVzc2FnZVBvcG92ZXJFbnRyeSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTY3JlZW4gPSAnZGV0YWlscyc7XG4gICAgICAgIHRoaXMuY3VycmVudEVudHJ5ID0gZW50cnk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2xvc2VQb3BvdmVyKGZvY3VzTGFzdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcG9wb3Zlci5jbG9zZShmb2N1c0xhc3QpO1xuICAgIH1cbn1cbiIsIkBpZiAoX2Vycm9yVHlwZXMkKCkubGVuZ3RoID4gMCkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICNwb3BvdmVyXG4gICAgICAgIHBsYWNlbWVudD1cInRvcC1zdGFydFwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZVNjcm9sbGJhcl09XCJ0cnVlXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1tZXNzYWdlLXBvcG92ZXJfX3RyaWdnZXIgZmQtbWVzc2FnZS1wb3BvdmVyX190cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCInZmQtbWVzc2FnZS1wb3BvdmVyX190cmlnZ2VyLS0nICsgX3ByaW9yaXR5U3RhdGUkKClcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCInbWVzc2FnZS0nICsgX3ByaW9yaXR5Rm9ybVN0YXRlJCgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX3ByaW9yaXR5U3RhdGVJdGVtc0NvdW50JCgpLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXJcIiBjbGFzcz1cImZkLWJhci0tZ3Jvd2luZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjdXJyZW50U2NyZWVuID09PSAnbGlzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2VnbWVudGVkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfY3VycmVudEVycm9yVHlwZSQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl9jdXJyZW50RXJyb3JUeXBlJC5zZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1NZXNzYWdlUG9wb3Zlci5hbGxFcnJvcnMnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJhbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHR5cGUgb2YgX2Vycm9yVHlwZXMkKCk7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFt2YWx1ZV09XCJ0eXBlLmdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInR5cGUuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ21lc3NhZ2UtJyArIHR5cGUuZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1idXR0b25fX3RleHRcIj57eyB0eXBlLmNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXNlZ21lbnRlZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGN1cnJlbnRTY3JlZW4gPT09ICdkZXRhaWxzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi1sZWZ0LWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJHbyBiYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zaG93TGlzdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiIGdseXBoPVwiZGVjbGluZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGZkcC1tZXNzYWdlLXZpZXdcbiAgICAgICAgICAgICAgICBbY3VycmVudFNjcmVlbl09XCJjdXJyZW50U2NyZWVuXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyZWRFcnJvcnNdPVwiX2ZpbHRlcmVkRXJyb3JzJCgpXCJcbiAgICAgICAgICAgICAgICBbY3VycmVudEVudHJ5XT1cImN1cnJlbnRFbnRyeVwiXG4gICAgICAgICAgICAgICAgKG9wZW5EZXRhaWxzKT1cIl9zaG93RGV0YWlscygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VQb3BvdmVyKT1cIl9jbG9zZVBvcG92ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzSXRlbSk9XCJmb2N1c0l0ZW0uZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkcC1tZXNzYWdlLXZpZXc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtcG9wb3Zlcj5cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { mergeWith } from '@fundamental-ngx/cdk/utils';\nimport { MessagePopoverFormWrapperComponent } from './components/message-popover-form-wrapper/message-popover-form-wrapper.component';\nimport { MessageViewComponent } from './components/message-view/message-view.component';\nimport { FDP_MESSAGE_POPOVER_CONFIG, FDP_MESSAGE_POPOVER_DEFAULT_CONFIG } from './default-config';\nimport { MessagePopoverFormItemDirective } from './directives/message-popover-form-item.directive';\nimport { MessagePopoverComponent } from './message-popover.component';\nimport * as i0 from \"@angular/core\";\nexport class PlatformMessagePopoverModule {\n /**\n * Method allows users to apply custom configuration.\n * @param config Object containing error definitions.\n */\n static withConfig(config) {\n const customConfig = mergeWith(FDP_MESSAGE_POPOVER_DEFAULT_CONFIG, config, (obj, src) => {\n if (typeof obj === 'object' && !Array.isArray(obj)) {\n return Object.assign(obj, src);\n }\n else if (Array.isArray(obj)) {\n return obj.concat(src);\n }\n else {\n return src;\n }\n });\n return {\n ngModule: PlatformMessagePopoverModule,\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: customConfig\n }\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, imports: [MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective], exports: [MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: FDP_MESSAGE_POPOVER_DEFAULT_CONFIG\n }\n ], imports: [MessagePopoverComponent,\n MessageViewComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformMessagePopoverModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n exports: [\n MessagePopoverComponent,\n MessagePopoverFormWrapperComponent,\n MessageViewComponent,\n MessagePopoverFormItemDirective\n ],\n providers: [\n {\n provide: FDP_MESSAGE_POPOVER_CONFIG,\n useValue: FDP_MESSAGE_POPOVER_DEFAULT_CONFIG\n }\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tbWVzc2FnZS1wb3BvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL3BsYXRmb3JtLW1lc3NhZ2UtcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxrQ0FBa0MsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFzQnRFLE1BQU0sT0FBTyw0QkFBNEI7SUFDckM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUE0QjtRQUMxQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3BGLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxHQUFHLENBQUM7WUFDZixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0gsUUFBUSxFQUFFLDRCQUE0QjtZQUN0QyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs4R0F6QlEsNEJBQTRCOytHQUE1Qiw0QkFBNEIsWUFsQmpDLHVCQUF1QjtZQUN2QixrQ0FBa0M7WUFDbEMsb0JBQW9CO1lBQ3BCLCtCQUErQixhQUcvQix1QkFBdUI7WUFDdkIsa0NBQWtDO1lBQ2xDLG9CQUFvQjtZQUNwQiwrQkFBK0I7K0dBUzFCLDRCQUE0QixhQVAxQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSwwQkFBMEI7Z0JBQ25DLFFBQVEsRUFBRSxrQ0FBa0M7YUFDL0M7U0FDSixZQWhCRyx1QkFBdUI7WUFFdkIsb0JBQW9COzsyRkFnQmYsNEJBQTRCO2tCQXBCeEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsdUJBQXVCO3dCQUN2QixrQ0FBa0M7d0JBQ2xDLG9CQUFvQjt3QkFDcEIsK0JBQStCO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsdUJBQXVCO3dCQUN2QixrQ0FBa0M7d0JBQ2xDLG9CQUFvQjt3QkFDcEIsK0JBQStCO3FCQUNsQztvQkFDRCxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsUUFBUSxFQUFFLGtDQUFrQzt5QkFDL0M7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJGb3JtV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZXNzYWdlLXBvcG92ZXItZm9ybS13cmFwcGVyL21lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lc3NhZ2Utdmlldy9tZXNzYWdlLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEZEUF9NRVNTQUdFX1BPUE9WRVJfQ09ORklHLCBGRFBfTUVTU0FHRV9QT1BPVkVSX0RFRkFVTFRfQ09ORklHLCBNZXNzYWdlUG9wb3ZlckNvbmZpZyB9IGZyb20gJy4vZGVmYXVsdC1jb25maWcnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tZXNzYWdlLXBvcG92ZXItZm9ybS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBNZXNzYWdlUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgTWVzc2FnZVBvcG92ZXJGb3JtV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgTWVzc2FnZVZpZXdDb21wb25lbnQsXG4gICAgICAgIE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTWVzc2FnZVBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIE1lc3NhZ2VQb3BvdmVyRm9ybVdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIE1lc3NhZ2VWaWV3Q29tcG9uZW50LFxuICAgICAgICBNZXNzYWdlUG9wb3ZlckZvcm1JdGVtRGlyZWN0aXZlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX01FU1NBR0VfUE9QT1ZFUl9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZTogRkRQX01FU1NBR0VfUE9QT1ZFUl9ERUZBVUxUX0NPTkZJR1xuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybU1lc3NhZ2VQb3BvdmVyTW9kdWxlIHtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgYWxsb3dzIHVzZXJzIHRvIGFwcGx5IGN1c3RvbSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBjb25maWcgT2JqZWN0IGNvbnRhaW5pbmcgZXJyb3IgZGVmaW5pdGlvbnMuXG4gICAgICovXG4gICAgc3RhdGljIHdpdGhDb25maWcoY29uZmlnOiBNZXNzYWdlUG9wb3ZlckNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UGxhdGZvcm1NZXNzYWdlUG9wb3Zlck1vZHVsZT4ge1xuICAgICAgICBjb25zdCBjdXN0b21Db25maWcgPSBtZXJnZVdpdGgoRkRQX01FU1NBR0VfUE9QT1ZFUl9ERUZBVUxUX0NPTkZJRywgY29uZmlnLCAob2JqLCBzcmMpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob2JqLCBzcmMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqLmNvbmNhdChzcmMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3JjO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFBsYXRmb3JtTWVzc2FnZVBvcG92ZXJNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9NRVNTQUdFX1BPUE9WRVJfQ09ORklHLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY3VzdG9tQ29uZmlnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLW1lc3NhZ2UtcG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbWVzc2FnZS1wb3BvdmVyL2Z1bmRhbWVudGFsLW5neC1wbGF0Zm9ybS1tZXNzYWdlLXBvcG92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","i2","i3"],"mappings":"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"}
|