@fundamental-ngx/core 0.43.25 → 0.43.27
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/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +1 -1
- package/esm2020/combobox/combobox.component.mjs +2 -2
- package/esm2020/dialog/dialog-default/dialog-default.component.mjs +1 -1
- package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
- package/esm2020/facets/facet/facet.component.mjs +5 -3
- package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +1 -1
- package/esm2020/input-group/input-group.component.mjs +2 -2
- package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +1 -1
- package/esm2020/message-box/message-box-default/message-box-default.component.mjs +1 -1
- package/esm2020/multi-combobox/mobile/mobile-multi-combobox.component.mjs +1 -1
- package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2020/multi-input/multi-input.component.mjs +2 -2
- package/esm2020/popover/popover-mobile/popover-mobile.component.mjs +2 -2
- package/esm2020/quick-view/quick-view-subheader-title/quick-view-subheader-title.component.mjs +1 -1
- package/esm2020/rating-indicator/components/rating-indicator.component.mjs +2 -2
- package/esm2020/select/select-mobile/select-mobile.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +2 -2
- package/esm2020/slider/slider.component.mjs +2 -2
- package/esm2020/time-picker/time-picker.component.mjs +2 -2
- package/esm2020/title/title.component.mjs +3 -3
- package/facets/facet/facet.component.d.ts +6 -1
- package/fesm2015/fundamental-ngx-core-combobox.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +4 -4
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-facets.mjs +4 -2
- package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-grid-list.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-input-group.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-quick-view.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-slider.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-time-picker.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-title.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-combobox.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-facets.mjs +4 -2
- package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-grid-list.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-input-group.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-quick-view.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-slider.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-time-picker.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-title.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-title.mjs.map +1 -1
- package/fundamental-ngx-core-v0.43.27.tgz +0 -0
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/title/title.component.d.ts +1 -1
- package/fundamental-ngx-core-v0.43.25.tgz +0 -0
package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs
CHANGED
|
@@ -103,10 +103,10 @@ export class DynamicPageSubheaderComponent {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
DynamicPageSubheaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageSubheaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DynamicPageConfig }, { token: i2.DynamicPageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
-
DynamicPageSubheaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: { collapsible: "collapsible", pinnable: "pinnable", collapsed: "collapsed", expandLabel: "expandLabel", collapseLabel: "collapseLabel", role: "role", id: "id", headerAriaLabel: "headerAriaLabel", pinAriaLabel: "pinAriaLabel", unpinAriaLabel: "unpinAriaLabel" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "pinCollapseContainer", first: true, predicate: ["pincollapseContainer"], descendants: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__collapsible-header-container\">\n <div\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.id]=\"collapsibleHeaderId\"\n role=\"region\"\n #headerContent\n >\n <ng-content></ng-content>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\n <ng-container *ngIf=\"collapsible\">\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--left-gradient\"></div>\n <div role=\"toolbar\" class=\"fd-dynamic-page__collapsible-header-visibility-container--button-group\">\n <button\n fd-button\n class=\"fd-dynamic-page__collapse-button\"\n aria-haspopup=\"true\"\n [ariaLabel]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.title]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <i
|
|
106
|
+
DynamicPageSubheaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: { collapsible: "collapsible", pinnable: "pinnable", collapsed: "collapsed", expandLabel: "expandLabel", collapseLabel: "collapseLabel", role: "role", id: "id", headerAriaLabel: "headerAriaLabel", pinAriaLabel: "pinAriaLabel", unpinAriaLabel: "unpinAriaLabel" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "pinCollapseContainer", first: true, predicate: ["pincollapseContainer"], descendants: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__collapsible-header-container\">\n <div\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.id]=\"collapsibleHeaderId\"\n role=\"region\"\n #headerContent\n >\n <ng-content></ng-content>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\n <ng-container *ngIf=\"collapsible\">\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--left-gradient\"></div>\n <div role=\"toolbar\" class=\"fd-dynamic-page__collapsible-header-visibility-container--button-group\">\n <button\n fd-button\n class=\"fd-dynamic-page__collapse-button\"\n aria-haspopup=\"true\"\n [ariaLabel]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.title]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <i [style.transform]=\"collapsed ? '' : 'rotate(180deg)'\" class=\"sap-icon--slim-arrow-down\"></i>\n </button>\n <button\n fd-button\n class=\"fd-dynamic-page__pin-button\"\n [ariaLabel]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [attr.title]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [toggled]=\"_pinned\"\n (click)=\"togglePinned()\"\n *ngIf=\"pinnable && !collapsed\"\n >\n <i class=\"sap-icon--pushpin-off\"></i>\n </button>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--right-gradient\"></div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
107
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageSubheaderComponent, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
|
-
args: [{ selector: 'fd-dynamic-page-subheader', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fd-dynamic-page__collapsible-header-container\">\n <div\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.id]=\"collapsibleHeaderId\"\n role=\"region\"\n #headerContent\n >\n <ng-content></ng-content>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\n <ng-container *ngIf=\"collapsible\">\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--left-gradient\"></div>\n <div role=\"toolbar\" class=\"fd-dynamic-page__collapsible-header-visibility-container--button-group\">\n <button\n fd-button\n class=\"fd-dynamic-page__collapse-button\"\n aria-haspopup=\"true\"\n [ariaLabel]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.title]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <i
|
|
109
|
+
args: [{ selector: 'fd-dynamic-page-subheader', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fd-dynamic-page__collapsible-header-container\">\n <div\n class=\"fd-dynamic-page__collapsible-header\"\n [attr.aria-label]=\"headerAriaLabel\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.id]=\"collapsibleHeaderId\"\n role=\"region\"\n #headerContent\n >\n <ng-content></ng-content>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container\" #pincollapseContainer>\n <ng-container *ngIf=\"collapsible\">\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--left-gradient\"></div>\n <div role=\"toolbar\" class=\"fd-dynamic-page__collapsible-header-visibility-container--button-group\">\n <button\n fd-button\n class=\"fd-dynamic-page__collapse-button\"\n aria-haspopup=\"true\"\n [ariaLabel]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.title]=\"collapsed ? expandLabel : collapseLabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggleCollapse()\"\n >\n <i [style.transform]=\"collapsed ? '' : 'rotate(180deg)'\" class=\"sap-icon--slim-arrow-down\"></i>\n </button>\n <button\n fd-button\n class=\"fd-dynamic-page__pin-button\"\n [ariaLabel]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [attr.title]=\"_pinned ? unpinAriaLabel : pinAriaLabel\"\n [toggled]=\"_pinned\"\n (click)=\"togglePinned()\"\n *ngIf=\"pinnable && !collapsed\"\n >\n <i class=\"sap-icon--pushpin-off\"></i>\n </button>\n </div>\n <div class=\"fd-dynamic-page__collapsible-header-visibility-container--right-gradient\"></div>\n </ng-container>\n </div>\n</div>\n" }]
|
|
110
110
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DynamicPageConfig }, { type: i2.DynamicPageService }]; }, propDecorators: { collapsible: [{
|
|
111
111
|
type: Input
|
|
112
112
|
}], pinnable: [{
|
|
@@ -139,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
139
139
|
type: ViewChild,
|
|
140
140
|
args: ['pincollapseContainer']
|
|
141
141
|
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9zdWJoZWFkZXIvZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9zdWJoZWFkZXIvZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFFaEUsSUFBSSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFPL0IsTUFBTSxPQUFPLDZCQUE2QjtJQWV0Qzs7T0FFRztJQUNILElBQ0ksU0FBUyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFtRUQsY0FBYztJQUNkLFlBQ1ksR0FBc0IsRUFDcEIsa0JBQXFDLEVBQ3ZDLG1CQUF1QztRQUZ2QyxRQUFHLEdB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QUMsU0FBUztnQkFXdEIsZUFBZTtzQkFEZCxLQUFLO2dCQU9OLFlBQVk7c0JBRFgsS0FBSztnQkFPTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxNQUFNO2dCQUtQLG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgRHluYW1pY1BhZ2VDb25maWcgfSBmcm9tICcuLi8uLi9keW5hbWljLXBhZ2UuY29uZmlnJztcbmltcG9ydCB7IER5bmFtaWNQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2R5bmFtaWMtcGFnZS5zZXJ2aWNlJztcblxubGV0IGR5bmFtaWNQYWdlU3ViSGVhZGVySWQgPSAwO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljUGFnZVN1YmhlYWRlckNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogd2hldGhlciB0aGUgaGVhZGVyIGNhbiBiZSBjb2xsYXBzZWQuIFRydWUgYnkgZGVmYXVsdC4gSWYgc2V0IHRvIGZhbHNlLCBib3RoIHBpbi9jb2xsYXBzZSBidXR0b25zIGRpc2FwcGVhclxuICAgICAqIGFuZCB0aGUgaGVhZGVyIHN0YXlzIHZpc2libGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbGxhcHNpYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIHdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgYmUgYWxsb3dlZCB0byBiZSBwaW5uZWQgb3IgdW5waW5uZWQuIFdoZW4gc2V0LCB0aGUgcGluIGJ1dHRvbiBzaG93cyB1cC5cbiAgICAgKiBQaW5uaW5nIHRoZSBoZWFkZXIgd2lsbCBtYWtlIHRoZSBoZWFkZXIgc3RheSB2aXNpYmxlIGFuZCB0aGUgY29sbGFwc2UgYnV0dG9uKGlmIHByZXNlbnQpIHdpbGwgZGlzYXBwZWFyIHVudGlsIHVucGlubmVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGlubmFibGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIHRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBoZWFkZXIuIFNldCB0byB0cnVlIGlmIGhlYWRlciBzaG91bGQgYmUgY29sbGFwc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faGFuZGxlQ29sbGFwc2VkQ2hhbmdlKGNvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBUklBIGxhYmVsIGZvciBidXR0b24gd2hlbiB0aGUgaGVhZGVyIGlzIGNvbGxhcHNlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhwYW5kTGFiZWw6IHN0cmluZyA9IHRoaXMuX2R5bmFtaWNQYWdlQ29uZmlnLmV4cGFuZExhYmVsO1xuXG4gICAgLyoqXG4gICAgICogQVJJQSBsYWJlbCBmb3IgYnV0dG9uIHdoZW4gdGhlIGhlYWRlciBpcyBleHBhbmRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sbGFwc2VMYWJlbDogc3RyaW5nID0gdGhpcy5fZHluYW1pY1BhZ2VDb25maWcuY29sbGFwc2VMYWJlbDtcblxuICAgIC8qKiBIZWFkZXIgcm9sZSAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICByb2xlID0gJ3JlZ2lvbic7XG5cbiAgICAvKipcbiAgICAgKiBpZCBmb3IgaGVhZGVyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGlkID0gYGZkLWR5bmFtaWMtcGFnZS1oZWFkZXItaWQtJHtkeW5hbWljUGFnZVN1YkhlYWRlcklkKyt9YDtcblxuICAgIC8qKlxuICAgICAqIGlkIGZvciBjb2xsYXBzaWJsZSBoZWFkZXJcbiAgICAgKi9cbiAgICBjb2xsYXBzaWJsZUhlYWRlcklkID0gYCR7dGhpcy5pZH0tY29sbGFwc2libGVgO1xuICAgIC8qKlxuICAgICAqIGFyaWEgbGFiZWwgZm9yIGhlYWRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGVyQXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogYXJpYSBsYWJlbCBmb3IgcGluIHN0YXRlIG9mIHBpbiBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBpbkFyaWFMYWJlbDogc3RyaW5nID0gdGhpcy5fZHluYW1pY1BhZ2VDb25maWcucGluTGFiZWw7XG5cbiAgICAvKipcbiAgICAgKiBhcmlhIGxhYmVsIGZvciB1bnBpbiBzdGF0ZSBvZiBwaW4gYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1bnBpbkFyaWFMYWJlbDogc3RyaW5nID0gdGhpcy5fZHluYW1pY1BhZ2VDb25maWcudW5waW5MYWJlbDtcblxuICAgIC8qKiBDb2xsYXBzZS9FeHBhbmQgY2hhbmdlIGV2ZW50IHJhaXNlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gcGFnZSBoZWFkZXIgY29udGVudCAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpbmNvbGxhcHNlQ29udGFpbmVyJylcbiAgICBwaW5Db2xsYXBzZUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiB0cmFja2luZyBpZiBwaW4gYnV0dG9uIGlzIHBpbm5lZFxuICAgICAqL1xuICAgIF9waW5uZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiB0cmFja2luZyBleHBhbmQvY29sbGFwc2UgYnV0dG9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfZHluYW1pY1BhZ2VDb25maWc6IER5bmFtaWNQYWdlQ29uZmlnLFxuICAgICAgICBwcml2YXRlIF9keW5hbWljUGFnZVNlcnZpY2U6IER5bmFtaWNQYWdlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLl9keW5hbWljUGFnZVNlcnZpY2UuY29sbGFwc2VkXG4gICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29sbGFwc2VkKSA9PiB0aGlzLl9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdG9nZ2xlcyB0aGUgc3RhdGUgb2YgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBoYW5kbGVzIGV4cGFuZGVkL2NvbGxhcHNlZCBldmVudFxuICAgICAqL1xuICAgIHRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faGFuZGxlQ29sbGFwc2VkQ2hhbmdlKCF0aGlzLl9jb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBjbGljayBhY3Rpb24gb24gcGluIGJ1dHRvblxuICAgICAqL1xuICAgIHRvZ2dsZVBpbm5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGlubmVkID0gIXRoaXMuX3Bpbm5lZDtcbiAgICAgICAgdGhpcy5fZHluYW1pY1BhZ2VTZXJ2aWNlLnBpbm5lZC5uZXh0KHRoaXMuX3Bpbm5lZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChjb2xsYXBzZWQgPT09IHRoaXMuX2NvbGxhcHNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICB0aGlzLl9keW5hbWljUGFnZVNlcnZpY2UuY29sbGFwc2VkLm5leHQoY29sbGFwc2VkKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLl9jb2xsYXBzZWQpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlU2VydmljZS5zdWJoZWFkZXJWaXNpYmlsaXR5Q2hhbmdlLm5leHQoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzaWJsZS1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fY29sbGFwc2libGUtaGVhZGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoZWFkZXJBcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJjb2xsYXBzZWRcIlxuICAgICAgICBbYXR0ci5pZF09XCJjb2xsYXBzaWJsZUhlYWRlcklkXCJcbiAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICNoZWFkZXJDb250ZW50XG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fY29sbGFwc2libGUtaGVhZGVyLXZpc2liaWxpdHktY29udGFpbmVyXCIgI3BpbmNvbGxhcHNlQ29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sbGFwc2libGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX2NvbGxhcHNpYmxlLWhlYWRlci12aXNpYmlsaXR5LWNvbnRhaW5lci0tbGVmdC1ncmFkaWVudFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiByb2xlPVwidG9vbGJhclwiIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzaWJsZS1oZWFkZXItdmlzaWJpbGl0eS1jb250YWluZXItLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiY29sbGFwc2VkID8gZXhwYW5kTGFiZWwgOiBjb2xsYXBzZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiY29sbGFwc2VkID8gZXhwYW5kTGFiZWwgOiBjb2xsYXBzZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWNvbGxhcHNlZFwiIGNsYXNzPVwic2FwLWljb24tLXNsaW0tYXJyb3ctdXBcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiY29sbGFwc2VkXCIgY2xhc3M9XCJzYXAtaWNvbi0tc2xpbS1hcnJvdy1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19waW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJfcGlubmVkID8gdW5waW5BcmlhTGFiZWwgOiBwaW5BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJfcGlubmVkID8gdW5waW5BcmlhTGFiZWwgOiBwaW5BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbdG9nZ2xlZF09XCJfcGlubmVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBpbm5lZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwaW5uYWJsZSAmJiAhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLXB1c2hwaW4tb2ZmXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzaWJsZS1oZWFkZXItdmlzaWJpbGl0eS1jb250YWluZXItLXJpZ2h0LWdyYWRpZW50XCI+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9zdWJoZWFkZXIvZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9zdWJoZWFkZXIvZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFFaEUsSUFBSSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFPL0IsTUFBTSxPQUFPLDZCQUE2QjtJQWV0Qzs7T0FFRztJQUNILElBQ0ksU0FBUyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFtRUQsY0FBYztJQUNkLFlBQ1ksR0FBc0IsRUFDcEIsa0JBQXFDLEVBQ3ZDLG1CQUF1QztRQUZ2QyxRQUFHLEdB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QUMsU0FBUztnQkFXdEIsZUFBZTtzQkFEZCxLQUFLO2dCQU9OLFlBQVk7c0JBRFgsS0FBSztnQkFPTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxNQUFNO2dCQUtQLG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgRHluYW1pY1BhZ2VDb25maWcgfSBmcm9tICcuLi8uLi9keW5hbWljLXBhZ2UuY29uZmlnJztcbmltcG9ydCB7IER5bmFtaWNQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2R5bmFtaWMtcGFnZS5zZXJ2aWNlJztcblxubGV0IGR5bmFtaWNQYWdlU3ViSGVhZGVySWQgPSAwO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1wYWdlLXN1YmhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljUGFnZVN1YmhlYWRlckNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogd2hldGhlciB0aGUgaGVhZGVyIGNhbiBiZSBjb2xsYXBzZWQuIFRydWUgYnkgZGVmYXVsdC4gSWYgc2V0IHRvIGZhbHNlLCBib3RoIHBpbi9jb2xsYXBzZSBidXR0b25zIGRpc2FwcGVhclxuICAgICAqIGFuZCB0aGUgaGVhZGVyIHN0YXlzIHZpc2libGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbGxhcHNpYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIHdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgYmUgYWxsb3dlZCB0byBiZSBwaW5uZWQgb3IgdW5waW5uZWQuIFdoZW4gc2V0LCB0aGUgcGluIGJ1dHRvbiBzaG93cyB1cC5cbiAgICAgKiBQaW5uaW5nIHRoZSBoZWFkZXIgd2lsbCBtYWtlIHRoZSBoZWFkZXIgc3RheSB2aXNpYmxlIGFuZCB0aGUgY29sbGFwc2UgYnV0dG9uKGlmIHByZXNlbnQpIHdpbGwgZGlzYXBwZWFyIHVudGlsIHVucGlubmVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGlubmFibGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIHRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBoZWFkZXIuIFNldCB0byB0cnVlIGlmIGhlYWRlciBzaG91bGQgYmUgY29sbGFwc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faGFuZGxlQ29sbGFwc2VkQ2hhbmdlKGNvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBUklBIGxhYmVsIGZvciBidXR0b24gd2hlbiB0aGUgaGVhZGVyIGlzIGNvbGxhcHNlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhwYW5kTGFiZWw6IHN0cmluZyA9IHRoaXMuX2R5bmFtaWNQYWdlQ29uZmlnLmV4cGFuZExhYmVsO1xuXG4gICAgLyoqXG4gICAgICogQVJJQSBsYWJlbCBmb3IgYnV0dG9uIHdoZW4gdGhlIGhlYWRlciBpcyBleHBhbmRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sbGFwc2VMYWJlbDogc3RyaW5nID0gdGhpcy5fZHluYW1pY1BhZ2VDb25maWcuY29sbGFwc2VMYWJlbDtcblxuICAgIC8qKiBIZWFkZXIgcm9sZSAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICByb2xlID0gJ3JlZ2lvbic7XG5cbiAgICAvKipcbiAgICAgKiBpZCBmb3IgaGVhZGVyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGlkID0gYGZkLWR5bmFtaWMtcGFnZS1oZWFkZXItaWQtJHtkeW5hbWljUGFnZVN1YkhlYWRlcklkKyt9YDtcblxuICAgIC8qKlxuICAgICAqIGlkIGZvciBjb2xsYXBzaWJsZSBoZWFkZXJcbiAgICAgKi9cbiAgICBjb2xsYXBzaWJsZUhlYWRlcklkID0gYCR7dGhpcy5pZH0tY29sbGFwc2libGVgO1xuICAgIC8qKlxuICAgICAqIGFyaWEgbGFiZWwgZm9yIGhlYWRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGVyQXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogYXJpYSBsYWJlbCBmb3IgcGluIHN0YXRlIG9mIHBpbiBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBpbkFyaWFMYWJlbDogc3RyaW5nID0gdGhpcy5fZHluYW1pY1BhZ2VDb25maWcucGluTGFiZWw7XG5cbiAgICAvKipcbiAgICAgKiBhcmlhIGxhYmVsIGZvciB1bnBpbiBzdGF0ZSBvZiBwaW4gYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1bnBpbkFyaWFMYWJlbDogc3RyaW5nID0gdGhpcy5fZHluYW1pY1BhZ2VDb25maWcudW5waW5MYWJlbDtcblxuICAgIC8qKiBDb2xsYXBzZS9FeHBhbmQgY2hhbmdlIGV2ZW50IHJhaXNlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gcGFnZSBoZWFkZXIgY29udGVudCAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpbmNvbGxhcHNlQ29udGFpbmVyJylcbiAgICBwaW5Db2xsYXBzZUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiB0cmFja2luZyBpZiBwaW4gYnV0dG9uIGlzIHBpbm5lZFxuICAgICAqL1xuICAgIF9waW5uZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiB0cmFja2luZyBleHBhbmQvY29sbGFwc2UgYnV0dG9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfZHluYW1pY1BhZ2VDb25maWc6IER5bmFtaWNQYWdlQ29uZmlnLFxuICAgICAgICBwcml2YXRlIF9keW5hbWljUGFnZVNlcnZpY2U6IER5bmFtaWNQYWdlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLl9keW5hbWljUGFnZVNlcnZpY2UuY29sbGFwc2VkXG4gICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29sbGFwc2VkKSA9PiB0aGlzLl9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdG9nZ2xlcyB0aGUgc3RhdGUgb2YgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBoYW5kbGVzIGV4cGFuZGVkL2NvbGxhcHNlZCBldmVudFxuICAgICAqL1xuICAgIHRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faGFuZGxlQ29sbGFwc2VkQ2hhbmdlKCF0aGlzLl9jb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBjbGljayBhY3Rpb24gb24gcGluIGJ1dHRvblxuICAgICAqL1xuICAgIHRvZ2dsZVBpbm5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGlubmVkID0gIXRoaXMuX3Bpbm5lZDtcbiAgICAgICAgdGhpcy5fZHluYW1pY1BhZ2VTZXJ2aWNlLnBpbm5lZC5uZXh0KHRoaXMuX3Bpbm5lZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChjb2xsYXBzZWQgPT09IHRoaXMuX2NvbGxhcHNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICB0aGlzLl9keW5hbWljUGFnZVNlcnZpY2UuY29sbGFwc2VkLm5leHQoY29sbGFwc2VkKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLl9jb2xsYXBzZWQpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlU2VydmljZS5zdWJoZWFkZXJWaXNpYmlsaXR5Q2hhbmdlLm5leHQoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzaWJsZS1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fY29sbGFwc2libGUtaGVhZGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoZWFkZXJBcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJjb2xsYXBzZWRcIlxuICAgICAgICBbYXR0ci5pZF09XCJjb2xsYXBzaWJsZUhlYWRlcklkXCJcbiAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICNoZWFkZXJDb250ZW50XG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fY29sbGFwc2libGUtaGVhZGVyLXZpc2liaWxpdHktY29udGFpbmVyXCIgI3BpbmNvbGxhcHNlQ29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sbGFwc2libGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX2NvbGxhcHNpYmxlLWhlYWRlci12aXNpYmlsaXR5LWNvbnRhaW5lci0tbGVmdC1ncmFkaWVudFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiByb2xlPVwidG9vbGJhclwiIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzaWJsZS1oZWFkZXItdmlzaWJpbGl0eS1jb250YWluZXItLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiY29sbGFwc2VkID8gZXhwYW5kTGFiZWwgOiBjb2xsYXBzZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiY29sbGFwc2VkID8gZXhwYW5kTGFiZWwgOiBjb2xsYXBzZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIFtzdHlsZS50cmFuc2Zvcm1dPVwiY29sbGFwc2VkID8gJycgOiAncm90YXRlKDE4MGRlZyknXCIgY2xhc3M9XCJzYXAtaWNvbi0tc2xpbS1hcnJvdy1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19waW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJfcGlubmVkID8gdW5waW5BcmlhTGFiZWwgOiBwaW5BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJfcGlubmVkID8gdW5waW5BcmlhTGFiZWwgOiBwaW5BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbdG9nZ2xlZF09XCJfcGlubmVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBpbm5lZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwaW5uYWJsZSAmJiAhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLXB1c2hwaW4tb2ZmXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19jb2xsYXBzaWJsZS1oZWFkZXItdmlzaWJpbGl0eS1jb250YWluZXItLXJpZ2h0LWdyYWRpZW50XCI+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -148,12 +148,12 @@ export class FacetComponent {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
FacetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FacetComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
FacetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FacetComponent, selector: "fd-facet", inputs: { type: "type", facetTitle: "facetTitle", subtitle: "subtitle", id: "id", alignEnd: "alignEnd" }, host: { properties: { "class.fd-facet": "true", "attr.role": "this.role", "attr.aria-labelledby": "this.ariaLabelledby" } }, ngImport: i0, template: "<ng-container *ngIf=\"type === 'image'\">\n <ng-container *ngTemplateOutlet=\"customContentTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"type !== 'image'\">\n <
|
|
151
|
+
FacetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FacetComponent, selector: "fd-facet", inputs: { type: "type", facetTitle: "facetTitle", subtitle: "subtitle", id: "id", alignEnd: "alignEnd", headingLevel: "headingLevel" }, host: { properties: { "class.fd-facet": "true", "attr.role": "this.role", "attr.aria-labelledby": "this.ariaLabelledby" } }, ngImport: i0, template: "<ng-container *ngIf=\"type === 'image'\">\n <ng-container *ngTemplateOutlet=\"customContentTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"type !== 'image'\">\n <span\n *ngIf=\"facetTitle\"\n style=\"display: block\"\n [attr.role]=\"!!headingLevel ? 'heading' : null\"\n [attr.aria-level]=\"headingLevel\"\n fd-title\n [headerSize]=\"5\"\n class=\"fd-margin-bottom--sm\"\n [id]=\"titleId\"\n >{{ facetTitle }}</span\n >\n <ng-container *ngIf=\"type === 'form'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'key-value' || 'custom'\">\n <ng-container *ngTemplateOutlet=\"customContentTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'rating-indicator'\">\n <span fd-form-label>{{ subtitle }}</span>\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content select=\"fd-facet-content\"></ng-content>\n</ng-template>\n\n<ng-template #customContentTemplate>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".fd-facet{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet:after,.fd-facet:before{box-sizing:inherit;font-size:inherit}.fd-facet-group{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:flex-start;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet-group:after,.fd-facet-group:before{box-sizing:inherit;font-size:inherit}.fd-facet--image{display:flex;flex-direction:row}.fd-facet--image-header-title{align-self:flex-end}.fd-facet--form{display:flex;flex-direction:column}.fd-facet--key-value .fd-facet__object-status .fd-facet__object-status-text{font-family:var(--sapFontFamily)}.fd-facet--rating-indicator{-webkit-box-pack:start;-ms-flex-pack:start;align-items:flex-start;display:inline-flex;justify-content:flex-start}.fd-facet--rating-indicator,.fd-facet--rating-indicator .fd-facet__container{flex-direction:column}.fd-facet--rating-indicator .fd-facet__rating-container{align-self:flex-start}.fd-facet--rating-indicator .fd-facet__rating-dynamic-text{align-self:flex-end}.fd-facet__container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet__container:after,.fd-facet__container:before{box-sizing:inherit;font-size:inherit}.fd-facet__form-value{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet__form-value:after,.fd-facet__form-value:before{box-sizing:inherit;font-size:inherit}.fd-padding{padding:1rem!important}.fd-padding-begin-end--tiny{padding-left:.5rem!important;padding-right:.5rem!important}.fd-padding-begin-end--sm{padding-left:1rem!important;padding-right:1rem!important}.fd-padding-begin-end--md{padding-left:2rem!important;padding-right:2rem!important}.fd-padding-begin-end--lg{padding-left:3rem!important;padding-right:3rem!important}.fd-padding--none{padding:0!important}.fd-padding-responsive--sm{padding:0 1rem!important}.fd-padding-responsive--lg,.fd-padding-responsive--md{padding:0 2rem!important}.fd-padding-responsive--xl{padding:0 3rem!important}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-margin--tiny{margin:.5rem!important}.fd-margin--sm{margin:1rem!important}.fd-margin--md{margin:2rem!important}.fd-margin--lg{margin:3rem!important}.fd-margin--none{margin:0!important}.fd-margin-top--tiny{margin-top:.5rem!important}.fd-margin-top--sm{margin-top:1rem!important}.fd-margin-top--md{margin-top:2rem!important}.fd-margin-top--lg{margin-top:3rem!important}.fd-margin-top--none{margin-top:0!important}.fd-margin-end--tiny{margin-right:.5rem!important}.fd-margin-end--tiny[dir=rtl],[dir=rtl] .fd-margin-end--tiny{margin-left:.5rem!important;margin-right:0!important}.fd-margin-end--sm{margin-right:1rem!important}.fd-margin-end--sm[dir=rtl],[dir=rtl] .fd-margin-end--sm{margin-left:1rem!important;margin-right:0!important}.fd-margin-end--md{margin-right:2rem!important}.fd-margin-end--md[dir=rtl],[dir=rtl] .fd-margin-end--md{margin-left:2rem!important;margin-right:0!important}.fd-margin-end--lg{margin-right:3rem!important}.fd-margin-end--lg[dir=rtl],[dir=rtl] .fd-margin-end--lg{margin-left:3rem!important;margin-right:0!important}.fd-margin-end--none{margin-right:0}.fd-margin-end--none[dir=rtl],[dir=rtl] .fd-margin-end--none{margin-left:0!important}.fd-margin-bottom--tiny{margin-bottom:.5rem!important}.fd-margin-bottom--sm{margin-bottom:1rem!important}.fd-margin-bottom--md{margin-bottom:2rem!important}.fd-margin-bottom--lg{margin-bottom:3rem!important}.fd-margin-bottom--none{margin-bottom:0!important}.fd-margin-begin--tiny{margin-left:.5rem!important}.fd-margin-begin--tiny[dir=rtl],[dir=rtl] .fd-margin-begin--tiny{margin-left:0!important;margin-right:.5rem!important}.fd-margin-begin--sm{margin-left:1rem!important}.fd-margin-begin--sm[dir=rtl],[dir=rtl] .fd-margin-begin--sm{margin-left:0!important;margin-right:1rem!important}.fd-margin-begin--md{margin-left:2rem!important}.fd-margin-begin--md[dir=rtl],[dir=rtl] .fd-margin-begin--md{margin-left:0!important;margin-right:2rem!important}.fd-margin-begin--lg{margin-left:3rem!important}.fd-margin-begin--lg[dir=rtl],[dir=rtl] .fd-margin-begin--lg{margin-left:0!important;margin-right:3rem!important}.fd-margin-begin--none{margin-left:0}.fd-margin-begin--none[dir=rtl],[dir=rtl] .fd-margin-begin--none{margin-right:0!important}.fd-margin-top-bottom--tiny{margin-bottom:.5rem!important;margin-top:.5rem!important}.fd-margin-top-bottom--sm{margin-bottom:1rem!important;margin-top:1rem!important}.fd-margin-top-bottom--md{margin-bottom:2rem!important;margin-top:2rem!important}.fd-margin-top-bottom--lg{margin-bottom:3rem!important;margin-top:3rem!important}.fd-margin-begin-end--tiny{margin-left:.5rem!important;margin-right:.5rem!important}.fd-margin-begin-end--sm{margin-left:1rem!important;margin-right:1rem!important}.fd-margin-begin-end--md{margin-left:2rem!important;margin-right:2rem!important}.fd-margin-begin-end--lg{margin-left:3rem!important;margin-right:3rem!important}.fd-margin-responsive--sm{margin:0 0 1rem!important}.fd-margin-responsive--md{margin:1rem!important}.fd-margin-responsive--lg{margin:1rem 2rem!important}.fd-margin-responsive--xl{margin:1rem 3rem!important}.fd-margin-negative-begin-end--tiny{margin:0 -.5rem!important}.fd-margin-negative-begin-end--sm{margin:0 -1rem!important}.fd-margin-negative-begin-end--md{margin:0 -2rem!important}.fd-margin-negative-begin-end--lg{margin:0 -3rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title], span[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i3.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FacetComponent, decorators: [{
|
|
153
153
|
type: Component,
|
|
154
154
|
args: [{ selector: 'fd-facet', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
155
155
|
'[class.fd-facet]': 'true'
|
|
156
|
-
}, template: "<ng-container *ngIf=\"type === 'image'\">\n <ng-container *ngTemplateOutlet=\"customContentTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"type !== 'image'\">\n <
|
|
156
|
+
}, template: "<ng-container *ngIf=\"type === 'image'\">\n <ng-container *ngTemplateOutlet=\"customContentTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"type !== 'image'\">\n <span\n *ngIf=\"facetTitle\"\n style=\"display: block\"\n [attr.role]=\"!!headingLevel ? 'heading' : null\"\n [attr.aria-level]=\"headingLevel\"\n fd-title\n [headerSize]=\"5\"\n class=\"fd-margin-bottom--sm\"\n [id]=\"titleId\"\n >{{ facetTitle }}</span\n >\n <ng-container *ngIf=\"type === 'form'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'key-value' || 'custom'\">\n <ng-container *ngTemplateOutlet=\"customContentTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'rating-indicator'\">\n <span fd-form-label>{{ subtitle }}</span>\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content select=\"fd-facet-content\"></ng-content>\n</ng-template>\n\n<ng-template #customContentTemplate>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".fd-facet{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet:after,.fd-facet:before{box-sizing:inherit;font-size:inherit}.fd-facet-group{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:flex-start;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet-group:after,.fd-facet-group:before{box-sizing:inherit;font-size:inherit}.fd-facet--image{display:flex;flex-direction:row}.fd-facet--image-header-title{align-self:flex-end}.fd-facet--form{display:flex;flex-direction:column}.fd-facet--key-value .fd-facet__object-status .fd-facet__object-status-text{font-family:var(--sapFontFamily)}.fd-facet--rating-indicator{-webkit-box-pack:start;-ms-flex-pack:start;align-items:flex-start;display:inline-flex;justify-content:flex-start}.fd-facet--rating-indicator,.fd-facet--rating-indicator .fd-facet__container{flex-direction:column}.fd-facet--rating-indicator .fd-facet__rating-container{align-self:flex-start}.fd-facet--rating-indicator .fd-facet__rating-dynamic-text{align-self:flex-end}.fd-facet__container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet__container:after,.fd-facet__container:before{box-sizing:inherit;font-size:inherit}.fd-facet__form-value{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-facet__form-value:after,.fd-facet__form-value:before{box-sizing:inherit;font-size:inherit}.fd-padding{padding:1rem!important}.fd-padding-begin-end--tiny{padding-left:.5rem!important;padding-right:.5rem!important}.fd-padding-begin-end--sm{padding-left:1rem!important;padding-right:1rem!important}.fd-padding-begin-end--md{padding-left:2rem!important;padding-right:2rem!important}.fd-padding-begin-end--lg{padding-left:3rem!important;padding-right:3rem!important}.fd-padding--none{padding:0!important}.fd-padding-responsive--sm{padding:0 1rem!important}.fd-padding-responsive--lg,.fd-padding-responsive--md{padding:0 2rem!important}.fd-padding-responsive--xl{padding:0 3rem!important}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-margin--tiny{margin:.5rem!important}.fd-margin--sm{margin:1rem!important}.fd-margin--md{margin:2rem!important}.fd-margin--lg{margin:3rem!important}.fd-margin--none{margin:0!important}.fd-margin-top--tiny{margin-top:.5rem!important}.fd-margin-top--sm{margin-top:1rem!important}.fd-margin-top--md{margin-top:2rem!important}.fd-margin-top--lg{margin-top:3rem!important}.fd-margin-top--none{margin-top:0!important}.fd-margin-end--tiny{margin-right:.5rem!important}.fd-margin-end--tiny[dir=rtl],[dir=rtl] .fd-margin-end--tiny{margin-left:.5rem!important;margin-right:0!important}.fd-margin-end--sm{margin-right:1rem!important}.fd-margin-end--sm[dir=rtl],[dir=rtl] .fd-margin-end--sm{margin-left:1rem!important;margin-right:0!important}.fd-margin-end--md{margin-right:2rem!important}.fd-margin-end--md[dir=rtl],[dir=rtl] .fd-margin-end--md{margin-left:2rem!important;margin-right:0!important}.fd-margin-end--lg{margin-right:3rem!important}.fd-margin-end--lg[dir=rtl],[dir=rtl] .fd-margin-end--lg{margin-left:3rem!important;margin-right:0!important}.fd-margin-end--none{margin-right:0}.fd-margin-end--none[dir=rtl],[dir=rtl] .fd-margin-end--none{margin-left:0!important}.fd-margin-bottom--tiny{margin-bottom:.5rem!important}.fd-margin-bottom--sm{margin-bottom:1rem!important}.fd-margin-bottom--md{margin-bottom:2rem!important}.fd-margin-bottom--lg{margin-bottom:3rem!important}.fd-margin-bottom--none{margin-bottom:0!important}.fd-margin-begin--tiny{margin-left:.5rem!important}.fd-margin-begin--tiny[dir=rtl],[dir=rtl] .fd-margin-begin--tiny{margin-left:0!important;margin-right:.5rem!important}.fd-margin-begin--sm{margin-left:1rem!important}.fd-margin-begin--sm[dir=rtl],[dir=rtl] .fd-margin-begin--sm{margin-left:0!important;margin-right:1rem!important}.fd-margin-begin--md{margin-left:2rem!important}.fd-margin-begin--md[dir=rtl],[dir=rtl] .fd-margin-begin--md{margin-left:0!important;margin-right:2rem!important}.fd-margin-begin--lg{margin-left:3rem!important}.fd-margin-begin--lg[dir=rtl],[dir=rtl] .fd-margin-begin--lg{margin-left:0!important;margin-right:3rem!important}.fd-margin-begin--none{margin-left:0}.fd-margin-begin--none[dir=rtl],[dir=rtl] .fd-margin-begin--none{margin-right:0!important}.fd-margin-top-bottom--tiny{margin-bottom:.5rem!important;margin-top:.5rem!important}.fd-margin-top-bottom--sm{margin-bottom:1rem!important;margin-top:1rem!important}.fd-margin-top-bottom--md{margin-bottom:2rem!important;margin-top:2rem!important}.fd-margin-top-bottom--lg{margin-bottom:3rem!important;margin-top:3rem!important}.fd-margin-begin-end--tiny{margin-left:.5rem!important;margin-right:.5rem!important}.fd-margin-begin-end--sm{margin-left:1rem!important;margin-right:1rem!important}.fd-margin-begin-end--md{margin-left:2rem!important;margin-right:2rem!important}.fd-margin-begin-end--lg{margin-left:3rem!important;margin-right:3rem!important}.fd-margin-responsive--sm{margin:0 0 1rem!important}.fd-margin-responsive--md{margin:1rem!important}.fd-margin-responsive--lg{margin:1rem 2rem!important}.fd-margin-responsive--xl{margin:1rem 3rem!important}.fd-margin-negative-begin-end--tiny{margin:0 -.5rem!important}.fd-margin-negative-begin-end--sm{margin:0 -1rem!important}.fd-margin-negative-begin-end--md{margin:0 -2rem!important}.fd-margin-negative-begin-end--lg{margin:0 -3rem!important}\n"] }]
|
|
157
157
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { type: [{
|
|
158
158
|
type: Input
|
|
159
159
|
}], facetTitle: [{
|
|
@@ -167,6 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
167
167
|
args: ['attr.role']
|
|
168
168
|
}], alignEnd: [{
|
|
169
169
|
type: Input
|
|
170
|
+
}], headingLevel: [{
|
|
171
|
+
type: Input
|
|
170
172
|
}], role: [{
|
|
171
173
|
type: HostBinding,
|
|
172
174
|
args: ['attr.role']
|
|
@@ -174,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
174
176
|
type: HostBinding,
|
|
175
177
|
args: ['attr.aria-labelledby']
|
|
176
178
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmFjZXRzL2ZhY2V0L2ZhY2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2ZhY2V0cy9mYWNldC9mYWNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBRVQsV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRXRELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUNqQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFZdEIsTUFBTSxPQUFPLGNBQWM7SUE2QnZCOztPQUVHO0lBQ0gsSUFDSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFPRCxjQUFjO0lBQ2QsWUFBNEIsVUFBbUMsRUFBVSxTQUFvQjtRQUFqRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFuQzdGOztXQUVHO1FBR0gsT0FBRSxHQUFHLGVBQWUsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUVqQzs7V0FFRztRQUVILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFrQmpCOztXQUVHO1FBQ0gsWUFBTyxHQUFHLHFCQUFxQixhQUFhLEVBQUUsRUFBRSxDQUFDO0lBRytDLENBQUM7SUFFakcsY0FBYztJQUNkLGVBQWU7UUFDWCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssc0JBQXNCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osT0FBTztTQUNWO1FBQ0Qsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV0RSxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDdkIsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN2RTtRQUVELFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLEtBQUssT0FBTztnQkFDUixxQ0FBcUM7Z0JBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3JCLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBRXJHLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtvQkFDM0IsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzdGLE1BQU0sd0JBQXdCLEdBQUcsd0JBQXdCLENBQUMsYUFBYSxDQUNuRSxpQ0FBaUMsQ0FDcEMsQ0FBQztnQkFDRixJQUFJLENBQUMsd0JBQXdCLEVBQUU7b0JBQzNCLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLDRCQUE0QixDQUM3Qix3QkFBd0IsRUFDeEIsZ0JBQWdCLENBQUMsNkJBQTZCLENBQ2pELENBQUM7Z0JBRUYsTUFBTSwwQkFBMEIsR0FBRyx3QkFBd0IsQ0FBQyxhQUFhLENBQ3JFLG9DQUFvQyxDQUN2QyxDQUFDO2dCQUNGLElBQUksQ0FBQywwQkFBMEIsRUFBRTtvQkFDN0IsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsNEJBQTRCLENBQzdCLDBCQUEwQixFQUMxQixnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FDbkQsQ0FBQztnQkFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsMEJBQTBCLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzlGLE1BQU07YUFDVDtZQUNELEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQ1QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUNsRyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7b0JBQ3JCLE9BQU87aUJBQ1Y7Z0JBQ0Qsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUM1QyxJQUFJLEtBQUssS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUN6QyxJQUFJLENBQUMsNEJBQTRCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7cUJBQ25GO29CQUNELHFEQUFxRDtvQkFDckQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDekQsSUFBSSxDQUFDLGFBQWEsRUFBRTt3QkFDaEIsT0FBTztxQkFDVjtvQkFDRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNyRixDQUFDLENBQUMsQ0FBQztnQkFFSCxNQUFNO2FBQ1Q7WUFDRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO2dCQUNkLDZCQUE2QjtnQkFDN0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDL0YsSUFBSSxDQUFDLHFCQUFxQixFQUFFO29CQUN4QixPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUU3RiwwQ0FBMEM7Z0JBQzFDLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3hGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDbkIsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsQ0FBQztnQkFFNUYsZ0RBQWdEO2dCQUNoRCxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ25CLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3BGLE1BQU07YUFDVDtZQUNEO2dCQUNJLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFDRCwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFaEcsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGNBQWM7SUFDTixzQkFBc0IsQ0FBQyxTQUFpQixFQUFFLEtBQVU7UUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxjQUFjO0lBQ04sNEJBQTRCLENBQUMsT0FBZ0IsRUFBRSxTQUFpQjtRQUNwRSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRSxDQUFDOzsyR0F2TFEsY0FBYzsrRkFBZCxjQUFjLHVSQzFCM0IscWhDQXlCQTsyRkRDYSxjQUFjO2tCQVYxQixTQUFTOytCQUNJLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixrQkFBa0IsRUFBRSxNQUFNO3FCQUM3Qjt5SEFLRCxJQUFJO3NCQURILEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixFQUFFO3NCQUZELEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsV0FBVztnQkFPeEIsUUFBUTtzQkFEUCxLQUFLO2dCQU9GLElBQUk7c0JBRFAsV0FBVzt1QkFBQyxXQUFXO2dCQVNwQixjQUFjO3NCQURqQixXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWNldFR5cGUsIEZBQ0VUX0NMQVNTX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkQ2xhc3NOYW1lVG9GYWNldEVsZW1lbnQgfSBmcm9tICcuLi91dGlscyc7XG5cbmxldCByYW5kb21JZCA9IDA7XG5sZXQgcmFuZG9tVGl0bGVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZmFjZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mYWNldC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5mZC1mYWNldF0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEZhY2V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIHRoZSB0eXBlIG9mIEZhY2V0OiBmb3JtLCBrZXktdmFsdWUsIGltYWdlLCByYXRpbmctaW5kaWNhdG9yICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBGYWNldFR5cGU7XG5cbiAgICAvKiogVGhlIGZhY2V0IHRpdGxlLlxuICAgICAqIEZvciBlZzogZm9yIGtleS12YWx1ZSBmYWNldCwgZmFjZXRUaXRsZSBpcyB0aGUga2V5IGFuZCB0aGUgdW5kZXJseWluZyBvYmplY3Qgc3RhdHVzIG9yIG9iamVjdCBudW1iZXJcbiAgICAgKiBjb21wb25lbnQgaXMgdGhlIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmFjZXRUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIEFuIG9wdGlvbmFsIHN1YnRpdGxlIHRvIGRpc3BsYXkgaW4gdGhlIHJhdGluZy1pbmRpY2F0b3IgZmFjZXQgKi9cbiAgICBASW5wdXQoKVxuICAgIHN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBpZCBmb3IgdGhlIGZhY2V0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgaWQgPSBgZmQtZmFjZXQtaWQtJHtyYW5kb21JZCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBwcm9wZXJ0eSB0aGF0IGFsbG93cyB0aGUgZmFjZXQgdG8gYmUgYWxpZ25lZCB0byB0aGUgZW5kIG9mIHRoZSBmYWNldCBncm91cCwgcmlnaHQtYWxpZ25lZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFsaWduRW5kID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIHRoZSBhcHByb3ByaWF0ZSByb2xlIGZvciBlYWNoIGZhY2V0IHR5cGVcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgZ2V0IHJvbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSAhPT0gJ2ltYWdlJyA/ICdncm91cCcgOiAnJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIHRoZSBhcHByb3ByaWF0ZSBhcmlhLWxhYmVsbGVkYnkgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHJvbGVcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JylcbiAgICBnZXQgYXJpYUxhYmVsbGVkYnkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSAhPT0gJ2ltYWdlJyA/IHRoaXMudGl0bGVJZCA6ICcnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogdGhlIGludGVybmFsIGlkIGZvciB0aGUgdGl0bGUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBhcmlhLWxhYmVsbGVkYnlcbiAgICAgKi9cbiAgICB0aXRsZUlkID0gYGZkLWZhY2V0LXRpdGxlLWlkLSR7cmFuZG9tVGl0bGVJZCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXR1cEFkZGl0aW9uYWxTdHlsZXMoKTtcbiAgICAgICAgdGhpcy5fYWRkQWxpZ25tZW50TW9kaWZpZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogc2V0IHVwIGNvbW1vbiBzdHlsZXMgYW5kIHNwZWNpZmljIHN0eWxlcyBiYXNlZCBvbiBlYWNoIGZhY2V0IHR5cGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXR1cEFkZGl0aW9uYWxTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gYWRkIHR5cGUgbW9kaWZpZXIgY2xhc3MgdG8gaG9zdFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBmZC1mYWNldC0tJHt0aGlzLnR5cGV9YCk7XG5cbiAgICAgICAgLy8gYWRkIG1hcmdpbiBlbmQgYW5kIGJvdHRvbSBzcGFjaW5nc1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBmZC1tYXJnaW4tZW5kLS1tZGApO1xuICAgICAgICBpZiAodGhpcy50eXBlICE9PSAnaW1hZ2UnKSB7XG4gICAgICAgICAgICAvLyBhZGQgYm90dG9tIG1hcmdpbiB0byBub24taW1hZ2UgZmFjZXRzXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBmZC1tYXJnaW4tYm90dG9tLS1zbWApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgICAgICAgICAgICAvLyBpbWFnZSBzaG91bGQgYWx3YXlzIGJlIG9uIHRoZSBsZWZ0XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0U3R5bGVUb0hvc3RFbGVtZW50KCdvcmRlcicsICctMScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmF0aW5nLWluZGljYXRvcic6IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXRpbmdJbmRpY2F0b3JDb21wb25lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZmQtcmF0aW5nLWluZGljYXRvcicpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFyYXRpbmdJbmRpY2F0b3JDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQocmF0aW5nSW5kaWNhdG9yQ29tcG9uZW50LCBGQUNFVF9DTEFTU19OQU1FLmZhY2V0Q29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICBjb25zdCByYXRpbmdJbmRpY2F0b3JDb250YWluZXIgPSByYXRpbmdJbmRpY2F0b3JDb21wb25lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgJy5mZC1yYXRpbmctaW5kaWNhdG9yX19jb250YWluZXInXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJhdGluZ0luZGljYXRvckNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgcmF0aW5nSW5kaWNhdG9yQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgICBGQUNFVF9DTEFTU19OQU1FLmZhY2V0UmF0aW5nSW5kaWNhdG9yQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJhdGluZ0luZGljYXRvckR5bmFtaWNUZXh0ID0gcmF0aW5nSW5kaWNhdG9yQ29tcG9uZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICcuZmQtcmF0aW5nLWluZGljYXRvcl9fZHluYW1pYy10ZXh0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFyYXRpbmdJbmRpY2F0b3JEeW5hbWljVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgcmF0aW5nSW5kaWNhdG9yRHluYW1pY1RleHQsXG4gICAgICAgICAgICAgICAgICAgIEZBQ0VUX0NMQVNTX05BTUUuZmFjZXRSYXRpbmdJbmRpY2F0b3JEeW5hbWljVGV4dFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KHJhdGluZ0luZGljYXRvckR5bmFtaWNUZXh0LCBGQUNFVF9DTEFTU19OQU1FLm1hcmdpblRvcFRpbnkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZm9ybSc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtRmFjZXRDb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmQtZmFjZXRfX2NvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgIGlmICghZm9ybUZhY2V0Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9ybUZhY2V0Q29udGFpbmVyLmZvckVhY2goKGNvbnRhaW5lciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSBmb3JtRmFjZXRDb250YWluZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KGNvbnRhaW5lciwgRkFDRVRfQ0xBU1NfTkFNRS5tYXJnaW5Cb3R0b21UaW55KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBpY29uK2xpbmsgaXMgcHJlc2VudGVkLCBhZGQgc3BhY2luZyB0byB0aGUgaWNvblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpY29uQ29tcG9uZW50ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ZkLWljb24nKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpY29uQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KGljb25Db21wb25lbnQsIEZBQ0VUX0NMQVNTX05BTUUubWFyZ2luRW5kVGlueSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2tleS12YWx1ZSc6IHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgY2xhc3MgdG8gb2JqZWN0IHN0YXR1c1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iamVjdFN0YXR1c0NvbXBvbmVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZC1vYmplY3Qtc3RhdHVzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFvYmplY3RTdGF0dXNDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQob2JqZWN0U3RhdHVzQ29tcG9uZW50LCBGQUNFVF9DTEFTU19OQU1FLmZhY2V0T2JqZWN0U3RhdHVzKTtcblxuICAgICAgICAgICAgICAgIC8vIGFkZCBjbGFzcyB0byBvdmVycmlkZSBmb250LWZhbWlseSB2YWx1ZVxuICAgICAgICAgICAgICAgIGNvbnN0IG9iamVjdFN0YXR1c1RleHQgPSBvYmplY3RTdGF0dXNDb21wb25lbnQucXVlcnlTZWxlY3RvcignLmZkLW9iamVjdC1zdGF0dXNfX3RleHQnKTtcbiAgICAgICAgICAgICAgICBpZiAoIW9iamVjdFN0YXR1c1RleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQob2JqZWN0U3RhdHVzVGV4dCwgRkFDRVRfQ0xBU1NfTkFNRS5mYWNldE9iamVjdFN0YXR1c1RleHQpO1xuXG4gICAgICAgICAgICAgICAgLy8gYWRkIHNwYWNpbmcgdG8gb2JqZWN0IHN0YXR1cyBpY29uLCBpZiBwcmVzZW50XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0U3RhdHVzSWNvbiA9IG9iamVjdFN0YXR1c0NvbXBvbmVudC5xdWVyeVNlbGVjdG9yKCcuZmQtb2JqZWN0LXN0YXR1c19faWNvbicpO1xuICAgICAgICAgICAgICAgIGlmICghb2JqZWN0U3RhdHVzSWNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChvYmplY3RTdGF0dXNJY29uLCBGQUNFVF9DTEFTU19OQU1FLnBhZGRpbmdOb25lKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQob2JqZWN0U3RhdHVzSWNvbiwgRkFDRVRfQ0xBU1NfTkFNRS5tYXJnaW5FbmRUaW55KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIGFkZHMgdGhlIGxvZ2ljIGZvciBgYWxpZ25FbmRgIG1vZGlmaWVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBfYWRkQWxpZ25tZW50TW9kaWZpZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hbGlnbkVuZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGFkZENsYXNzTmFtZVRvRmFjZXRFbGVtZW50KHRoaXMuX3JlbmRlcmVyLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZkLWZhY2V0LWFsaWduLWVuZCcpO1xuXG4gICAgICAgIC8vIGFkZCBtYXJnaW5zIHRvIHRoZSBsZWZ0IGFmdGVyIHJlbW92aW5nIGV4aXN0aW5nIHJpZ2h0IG1hcmdpblxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGBmZC1tYXJnaW4tZW5kLS1tZGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBmZC1tYXJnaW4tYmVnaW4tLW1kYCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRTdHlsZVRvSG9zdEVsZW1lbnQoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGFkZENsYXNzTmFtZVRvRmFjZXRFbGVtZW50KHRoaXMuX3JlbmRlcmVyLCBlbGVtZW50LCBjbGFzc05hbWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnaW1hZ2UnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlICE9PSAnaW1hZ2UnXCI+XG4gICAgPGgxICpuZ0lmPVwiZmFjZXRUaXRsZVwiIGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cIjVcIiBjbGFzcz1cImZkLW1hcmdpbi1ib3R0b20tLXNtXCIgW2lkXT1cInRpdGxlSWRcIj57eyBmYWNldFRpdGxlIH19PC9oMT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ2Zvcm0nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ2tleS12YWx1ZScgfHwgJ2N1c3RvbSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAncmF0aW5nLWluZGljYXRvcidcIj5cbiAgICAgICAgPHNwYW4gZmQtZm9ybS1sYWJlbD57eyBzdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZhY2V0LWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUNvbnRlbnRUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmFjZXRzL2ZhY2V0L2ZhY2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2ZhY2V0cy9mYWNldC9mYWNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBRVQsV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRXRELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUNqQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFZdEIsTUFBTSxPQUFPLGNBQWM7SUFtQ3ZCOztPQUVHO0lBQ0gsSUFDSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFPRCxjQUFjO0lBQ2QsWUFBNEIsVUFBbUMsRUFBVSxTQUFvQjtRQUFqRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUF6QzdGOztXQUVHO1FBR0gsT0FBRSxHQUFHLGVBQWUsUUFBUSxFQUFFLEVBQUUsQ0FB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QUFJO3NCQURQLFdBQVc7dUJBQUMsV0FBVztnQkFTcEIsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGYWNldFR5cGUsIEZBQ0VUX0NMQVNTX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkQ2xhc3NOYW1lVG9GYWNldEVsZW1lbnQgfSBmcm9tICcuLi91dGlscyc7XG5cbmxldCByYW5kb21JZCA9IDA7XG5sZXQgcmFuZG9tVGl0bGVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZmFjZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mYWNldC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5mZC1mYWNldF0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEZhY2V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIHRoZSB0eXBlIG9mIEZhY2V0OiBmb3JtLCBrZXktdmFsdWUsIGltYWdlLCByYXRpbmctaW5kaWNhdG9yICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBGYWNldFR5cGU7XG5cbiAgICAvKiogVGhlIGZhY2V0IHRpdGxlLlxuICAgICAqIEZvciBlZzogZm9yIGtleS12YWx1ZSBmYWNldCwgZmFjZXRUaXRsZSBpcyB0aGUga2V5IGFuZCB0aGUgdW5kZXJseWluZyBvYmplY3Qgc3RhdHVzIG9yIG9iamVjdCBudW1iZXJcbiAgICAgKiBjb21wb25lbnQgaXMgdGhlIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmFjZXRUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIEFuIG9wdGlvbmFsIHN1YnRpdGxlIHRvIGRpc3BsYXkgaW4gdGhlIHJhdGluZy1pbmRpY2F0b3IgZmFjZXQgKi9cbiAgICBASW5wdXQoKVxuICAgIHN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBpZCBmb3IgdGhlIGZhY2V0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgaWQgPSBgZmQtZmFjZXQtaWQtJHtyYW5kb21JZCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBwcm9wZXJ0eSB0aGF0IGFsbG93cyB0aGUgZmFjZXQgdG8gYmUgYWxpZ25lZCB0byB0aGUgZW5kIG9mIHRoZSBmYWNldCBncm91cCwgcmlnaHQtYWxpZ25lZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFsaWduRW5kID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBIZWFkaW5nIGxldmVsIChpLmUuIDxoMT4sIDxoMj4sIGV0Yy4pIG9mIHRoZSBmYWNldCB0aXRsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhlYWRpbmdMZXZlbDogTnVsbGFibGU8MSB8IDIgfCAzIHwgNCB8IDUgfCA2PjtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogdGhlIGFwcHJvcHJpYXRlIHJvbGUgZm9yIGVhY2ggZmFjZXQgdHlwZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBnZXQgcm9sZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlICE9PSAnaW1hZ2UnID8gJ2dyb3VwJyA6ICcnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogdGhlIGFwcHJvcHJpYXRlIGFyaWEtbGFiZWxsZWRieSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcm9sZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKVxuICAgIGdldCBhcmlhTGFiZWxsZWRieSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlICE9PSAnaW1hZ2UnID8gdGhpcy50aXRsZUlkIDogJyc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiB0aGUgaW50ZXJuYWwgaWQgZm9yIHRoZSB0aXRsZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGFyaWEtbGFiZWxsZWRieVxuICAgICAqL1xuICAgIHRpdGxlSWQgPSBgZmQtZmFjZXQtdGl0bGUtaWQtJHtyYW5kb21UaXRsZUlkKyt9YDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldHVwQWRkaXRpb25hbFN0eWxlcygpO1xuICAgICAgICB0aGlzLl9hZGRBbGlnbm1lbnRNb2RpZmllcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBzZXQgdXAgY29tbW9uIHN0eWxlcyBhbmQgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIGVhY2ggZmFjZXQgdHlwZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldHVwQWRkaXRpb25hbFN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBhZGQgdHlwZSBtb2RpZmllciBjbGFzcyB0byBob3N0XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGZkLWZhY2V0LS0ke3RoaXMudHlwZX1gKTtcblxuICAgICAgICAvLyBhZGQgbWFyZ2luIGVuZCBhbmQgYm90dG9tIHNwYWNpbmdzXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGZkLW1hcmdpbi1lbmQtLW1kYCk7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT09ICdpbWFnZScpIHtcbiAgICAgICAgICAgIC8vIGFkZCBib3R0b20gbWFyZ2luIHRvIG5vbi1pbWFnZSBmYWNldHNcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGZkLW1hcmdpbi1ib3R0b20tLXNtYCk7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICAgICAgICAgIC8vIGltYWdlIHNob3VsZCBhbHdheXMgYmUgb24gdGhlIGxlZnRcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRTdHlsZVRvSG9zdEVsZW1lbnQoJ29yZGVyJywgJy0xJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyYXRpbmctaW5kaWNhdG9yJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhdGluZ0luZGljYXRvckNvbXBvbmVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZC1yYXRpbmctaW5kaWNhdG9yJyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXJhdGluZ0luZGljYXRvckNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChyYXRpbmdJbmRpY2F0b3JDb21wb25lbnQsIEZBQ0VUX0NMQVNTX05BTUUuZmFjZXRDb250YWluZXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhdGluZ0luZGljYXRvckNvbnRhaW5lciA9IHJhdGluZ0luZGljYXRvckNvbXBvbmVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAnLmZkLXJhdGluZy1pbmRpY2F0b3JfX2NvbnRhaW5lcidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICghcmF0aW5nSW5kaWNhdG9yQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICByYXRpbmdJbmRpY2F0b3JDb250YWluZXIsXG4gICAgICAgICAgICAgICAgICAgIEZBQ0VUX0NMQVNTX05BTUUuZmFjZXRSYXRpbmdJbmRpY2F0b3JDb250YWluZXJcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmF0aW5nSW5kaWNhdG9yRHluYW1pY1RleHQgPSByYXRpbmdJbmRpY2F0b3JDb21wb25lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgJy5mZC1yYXRpbmctaW5kaWNhdG9yX19keW5hbWljLXRleHQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJhdGluZ0luZGljYXRvckR5bmFtaWNUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICByYXRpbmdJbmRpY2F0b3JEeW5hbWljVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgRkFDRVRfQ0xBU1NfTkFNRS5mYWNldFJhdGluZ0luZGljYXRvckR5bmFtaWNUZXh0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQocmF0aW5nSW5kaWNhdG9yRHluYW1pY1RleHQsIEZBQ0VUX0NMQVNTX05BTUUubWFyZ2luVG9wVGlueSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdmb3JtJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1GYWNldENvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mZC1mYWNldF9fY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFmb3JtRmFjZXRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3JtRmFjZXRDb250YWluZXIuZm9yRWFjaCgoY29udGFpbmVyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IGZvcm1GYWNldENvbnRhaW5lci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQoY29udGFpbmVyLCBGQUNFVF9DTEFTU19OQU1FLm1hcmdpbkJvdHRvbVRpbnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGljb24rbGluayBpcyBwcmVzZW50ZWQsIGFkZCBzcGFjaW5nIHRvIHRoZSBpY29uXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGljb25Db21wb25lbnQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZmQtaWNvbicpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWljb25Db21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQoaWNvbkNvbXBvbmVudCwgRkFDRVRfQ0xBU1NfTkFNRS5tYXJnaW5FbmRUaW55KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAna2V5LXZhbHVlJzoge1xuICAgICAgICAgICAgICAgIC8vIGFkZCBjbGFzcyB0byBvYmplY3Qgc3RhdHVzXG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0U3RhdHVzQ29tcG9uZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZkLW9iamVjdC1zdGF0dXMnKTtcbiAgICAgICAgICAgICAgICBpZiAoIW9iamVjdFN0YXR1c0NvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChvYmplY3RTdGF0dXNDb21wb25lbnQsIEZBQ0VUX0NMQVNTX05BTUUuZmFjZXRPYmplY3RTdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgLy8gYWRkIGNsYXNzIHRvIG92ZXJyaWRlIGZvbnQtZmFtaWx5IHZhbHVlXG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0U3RhdHVzVGV4dCA9IG9iamVjdFN0YXR1c0NvbXBvbmVudC5xdWVyeVNlbGVjdG9yKCcuZmQtb2JqZWN0LXN0YXR1c19fdGV4dCcpO1xuICAgICAgICAgICAgICAgIGlmICghb2JqZWN0U3RhdHVzVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChvYmplY3RTdGF0dXNUZXh0LCBGQUNFVF9DTEFTU19OQU1FLmZhY2V0T2JqZWN0U3RhdHVzVGV4dCk7XG5cbiAgICAgICAgICAgICAgICAvLyBhZGQgc3BhY2luZyB0byBvYmplY3Qgc3RhdHVzIGljb24sIGlmIHByZXNlbnRcbiAgICAgICAgICAgICAgICBjb25zdCBvYmplY3RTdGF0dXNJY29uID0gb2JqZWN0U3RhdHVzQ29tcG9uZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZC1vYmplY3Qtc3RhdHVzX19pY29uJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFvYmplY3RTdGF0dXNJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NOYW1lVG9DdXN0b21FbGVtZW50KG9iamVjdFN0YXR1c0ljb24sIEZBQ0VUX0NMQVNTX05BTUUucGFkZGluZ05vbmUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChvYmplY3RTdGF0dXNJY29uLCBGQUNFVF9DTEFTU19OQU1FLm1hcmdpbkVuZFRpbnkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogYWRkcyB0aGUgbG9naWMgZm9yIGBhbGlnbkVuZGAgbW9kaWZpZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9hZGRBbGlnbm1lbnRNb2RpZmllcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFsaWduRW5kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYWRkQ2xhc3NOYW1lVG9GYWNldEVsZW1lbnQodGhpcy5fcmVuZGVyZXIsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZmQtZmFjZXQtYWxpZ24tZW5kJyk7XG5cbiAgICAgICAgLy8gYWRkIG1hcmdpbnMgdG8gdGhlIGxlZnQgYWZ0ZXIgcmVtb3ZpbmcgZXhpc3RpbmcgcmlnaHQgbWFyZ2luXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYGZkLW1hcmdpbi1lbmQtLW1kYCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGZkLW1hcmdpbi1iZWdpbi0tbWRgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFN0eWxlVG9Ib3N0RWxlbWVudChhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQoZWxlbWVudDogRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgYWRkQ2xhc3NOYW1lVG9GYWNldEVsZW1lbnQodGhpcy5fcmVuZGVyZXIsIGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgIT09ICdpbWFnZSdcIj5cbiAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImZhY2V0VGl0bGVcIlxuICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCIhIWhlYWRpbmdMZXZlbCA/ICdoZWFkaW5nJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImhlYWRpbmdMZXZlbFwiXG4gICAgICAgIGZkLXRpdGxlXG4gICAgICAgIFtoZWFkZXJTaXplXT1cIjVcIlxuICAgICAgICBjbGFzcz1cImZkLW1hcmdpbi1ib3R0b20tLXNtXCJcbiAgICAgICAgW2lkXT1cInRpdGxlSWRcIlxuICAgICAgICA+e3sgZmFjZXRUaXRsZSB9fTwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ2Zvcm0nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ2tleS12YWx1ZScgfHwgJ2N1c3RvbSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAncmF0aW5nLWluZGljYXRvcidcIj5cbiAgICAgICAgPHNwYW4gZmQtZm9ybS1sYWJlbD57eyBzdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZhY2V0LWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUNvbnRlbnRUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -297,7 +297,7 @@ export class GridListItemComponent {
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
GridListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GridListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.GridList }], target: i0.ɵɵFactoryTarget.Component });
|
|
300
|
-
GridListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: GridListItemComponent, selector: "fd-grid-list-item", inputs: { id: "id", width: "width", layoutItemPattern: "layoutItemPattern", status: "status", counter: "counter", value: "value", disableToolbarClick: "disableToolbarClick", selected: "selected", noPadding: "noPadding", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", type: "type", state: "state", isNavigated: "isNavigated", title: "title", description: "description" }, outputs: { press: "press", detail: "detail", delete: "delete", navigate: "navigate", draft: "draft", locked: "locked" }, host: { properties: { "style.max-width": "this.width", "style.min-width": "this.width" } }, queries: [{ propertyName: "footerBarComponent", first: true, predicate: GridListItemFooterBarComponent, descendants: true }, { propertyName: "itemToolbarComponent", first: true, predicate: GridListItemToolbarComponent, descendants: true }, { propertyName: "body", first: true, predicate: GridListItemBodyDirective, descendants: true }], viewQueries: [{ propertyName: "_gridListItem", first: true, predicate: ["gridListItem"], descendants: true }], ngImport: i0, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"0\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i5.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i9.GridListTitleBarSpacerComponent, selector: "fd-grid-list-title-bar-spacer" }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
300
|
+
GridListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: GridListItemComponent, selector: "fd-grid-list-item", inputs: { id: "id", width: "width", layoutItemPattern: "layoutItemPattern", status: "status", counter: "counter", value: "value", disableToolbarClick: "disableToolbarClick", selected: "selected", noPadding: "noPadding", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", type: "type", state: "state", isNavigated: "isNavigated", title: "title", description: "description" }, outputs: { press: "press", detail: "detail", delete: "delete", navigate: "navigate", draft: "draft", locked: "locked" }, host: { properties: { "style.max-width": "this.width", "style.min-width": "this.width" } }, queries: [{ propertyName: "footerBarComponent", first: true, predicate: GridListItemFooterBarComponent, descendants: true }, { propertyName: "itemToolbarComponent", first: true, predicate: GridListItemToolbarComponent, descendants: true }, { propertyName: "body", first: true, predicate: GridListItemBodyDirective, descendants: true }], viewQueries: [{ propertyName: "_gridListItem", first: true, predicate: ["gridListItem"], descendants: true }], ngImport: i0, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"0\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i5.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title], span[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i9.GridListTitleBarSpacerComponent, selector: "fd-grid-list-title-bar-spacer" }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
301
301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GridListItemComponent, decorators: [{
|
|
302
302
|
type: Component,
|
|
303
303
|
args: [{ selector: 'fd-grid-list-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"0\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"] }]
|
|
@@ -128,7 +128,7 @@ export class InputGroupComponent {
|
|
|
128
128
|
/** @hidden */
|
|
129
129
|
writeValue(value) {
|
|
130
130
|
this._inputTextValue = value;
|
|
131
|
-
this._changeDetectorRef.
|
|
131
|
+
this._changeDetectorRef.detectChanges();
|
|
132
132
|
}
|
|
133
133
|
/** @hidden */
|
|
134
134
|
registerOnChange(fn) {
|
|
@@ -269,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
269
269
|
type: ViewChild,
|
|
270
270
|
args: [InputGroupAddonButtonDirective, { static: false, read: ElementRef }]
|
|
271
271
|
}] } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUduRyxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEYsT0FBTyxFQUNILDhCQUE4QixFQUM5Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFJbEMsSUFBSSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDL0IsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFM0I7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLG1CQUFtQjtJQUM1Qiw4RUFBOEU7SUFDOUUs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QkFEZCxLQUFLO2dCQUtOLElBQUk7c0JBREgsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFTTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVU4sY0FBYztzQkFEYixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFRUCxNQUFNO3NCQURMLE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFLdEMsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLHdCQUF3QjtnQkFLbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFLckIsbUJBQW1CO3NCQURuQyxTQUFTO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBpc0Rldk1vZGUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtSXRlbUNvbnRyb2wsIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuXG5pbXBvcnQge1xuICAgIElucHV0R3JvdXBBZGRvbkJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwQWRkT25EaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cElucHV0RGlyZWN0aXZlXG59IGZyb20gJy4vaW5wdXQtZ3JvdXAtZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBJbnB1dEdyb3VwUGxhY2VtZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuXG5sZXQgYWRkT25Ob25CdXR0b25SYW5kb21JZCA9IDA7XG5sZXQgYWRkT25CdXR0b25SYW5kb21JZCA9IDA7XG5sZXQgYWRkT25JbnB1dFJhbmRvbUlkID0gMDtcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhbiBpbnB1dCBncm91cC5cbiAqIFRoZSBpbnB1dCBncm91cCBpbmNsdWRlcyBmb3JtIGlucHV0cyB3aXRoIGFkZC1vbnMgdGhhdCBhbGxvdyB0aGUgdXNlciB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgaW5mb3JtYXRpb24gYmVpbmcgZW50ZXJlZC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtaW5wdXQtZ3JvdXAgcGxhY2VtZW50PVwiYWZ0ZXJcIiBhZGRPblRleHQ9XCIkXCIgcGxhY2Vob2xkZXI9XCJBbW91bnRcIj5cbiAqIDwvZmQtaW5wdXQtZ3JvdXA+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1pbnB1dC1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0R3JvdXBDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpLFxuICAgICAgICByZWdpc3RlckZvcm1JdGVtQ29udHJvbChJbnB1dEdyb3VwQ29tcG9uZW50KVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZm9jdXNvdXQpJzogJ19mb2N1c091dCgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBkZXByZWNhdGVkIElucHV0IHRlbXBsYXRlLCB1c2UgZmQtaW5wdXQtZ3JvdXAtaW5wdXQgZGlyZWN0aXZlIGluc3RlYWQuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaW5wdXRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJpbnB1dFRlbXBsYXRlXCIgaXMgZGVwcmVjYXRlZC4gVXNlIFwiZmQtaW5wdXQtZ3JvdXAtaW5wdXRcIiBkaXJlY3RpdmUgaW5zdGVhZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5wdXRUZW1wbGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhY2VtZW50IG9mIHRoZSBhZGQtb24uXG4gICAgICogT3B0aW9ucyBpbmNsdWRlICpiZWZvcmUqIGFuZCAqYWZ0ZXIqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZW1lbnQ6IElucHV0R3JvdXBQbGFjZW1lbnQgPSAnYWZ0ZXInO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBpbnB1dCBncm91cCBpcyBpbmxpbmUuICovXG4gICAgQElucHV0KClcbiAgICBpbmxpbmUgPSBmYWxzZTtcblxuICAgIC8qKiBQbGFjZWhvbGRlciBmb3IgdGhlIGlucHV0IGdyb3VwLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBUaGUgdGV4dCBmb3IgdGhlIGFkZC1vbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFkZE9uVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGJ1dHRvbkZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIGlucHV0LCB1c2VkIGluIElucHV0IEdyb3VwLiBCeSBkZWZhdWx0LCB2YWx1ZSBpcyBzZXQgdG8gJ3RleHQnICovXG4gICAgQElucHV0KClcbiAgICB0eXBlID0gJ3RleHQnO1xuXG4gICAgLyoqIFRoZSBpY29uIHZhbHVlIGZvciB0aGUgYWRkLW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaWNvbiBhZGQtb24gb3IgdGhlIHRleHQgYWRkLW9uIGlzIGEgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGlucHV0IGdyb3VwIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgZ3JvdXAgaXMgcmVhZG9ubHkuICovXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlOiBOdWxsYWJsZTxGb3JtU3RhdGVzPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGlucHV0IGdyb3VwIGlzIGEgcG9wb3ZlciBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc0NvbnRyb2wgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgc2hvdWxkIHNob3cgZm9jdXMgb3V0bGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0ZvY3VzID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBpc0V4cGFuZGVkID0gZmFsc2U7XG5cbiAgICAvKiogTGFiZWwgYXBwbGllZCB0byBidXR0b24gd2l0aCBnbHlwaCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGhBcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBncm91cCBhZGRvbiBidXR0b24gc2hvdWxkIGJlIGFyaWEtaGlkZGVuXG4gICAgICogVXNlZnVsIGluIGNhc2VzIHdoZW4gdGhlIHRpdGxlIGlzIGFscmVhZHkgYXBwbGllZCBvbiB0aGVcbiAgICAgKiBpbnB1dCBncm91cCBwYXJlbnQgY29tcG9uZW50XG4gICAgICoqL1xuICAgIEBJbnB1dCgpXG4gICAgYWRkb25CdXR0b25BcmlhSGlkZGVuOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIC8qKiBUaGUgdG9vbHRpcCBmb3IgdGhlIGlucHV0IGdyb3VwIGljb24uICovXG4gICAgQElucHV0KClcbiAgICBpY29uVGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byBcImFyaWFMYWJlbGxlZEJ5XCIgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhcmlhTGFiZWxsZWRieSh2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJhcmlhTGFiZWxsZWRieVwiIGlzIGRlcHJlY2F0ZWQuIFVzZSBcImFyaWFMYWJlbGxlZEJ5XCIgaW5zdGVhZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJpYUxhYmVsbGVkQnkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogdGhlIGFzc29jaWF0ZWQgaWRzIGZvciB0aGUgaW5wdXQgYXJpYS1sYWJlbGxlZGJ5IGZpZWxkICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFkZC1vbiBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBhZGRPbkJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBuYXRpdmUgY2xlYXIgYnV0dG9uIGlzIGNsaWNrZWQsIG9yIHdoZW4gbmF0aXZlIHNlYXJjaCBpcyBleGVjdXRlZC5cbiAgICAgKiBXb3JrcyBvbmx5IGZvciBuYXRpdmUgc2VhcmNoIGZvciBpbnB1dFt0eXBlPVwic2VhcmNoXCJdXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChJbnB1dEdyb3VwSW5wdXREaXJlY3RpdmUpXG4gICAgaW5wdXRFbGVtZW50OiBJbnB1dEdyb3VwSW5wdXREaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoSW5wdXRHcm91cElucHV0RGlyZWN0aXZlKVxuICAgIGxvY2FsSW5wdXRFbGVtZW50OiBJbnB1dEdyb3VwSW5wdXREaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoSW5wdXRHcm91cEFkZE9uRGlyZWN0aXZlKVxuICAgIGFkZE9uRWxlbWVudDogSW5wdXRHcm91cEFkZE9uRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKElucHV0R3JvdXBBZGRvbkJ1dHRvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxCdXR0b25FbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5wdXRUZXh0VmFsdWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lucHV0SWQgPSBgZmQtaW5wdXQtZ3JvdXAtaW5wdXQtaWQtJHthZGRPbklucHV0UmFuZG9tSWQrK31gO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWRkT25Ob25CdXR0b25JZCA9IGBmZC1pbnB1dC1ncm91cC1ub24tYnV0dG9uLWlkLSR7YWRkT25Ob25CdXR0b25SYW5kb21JZCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hZGRPbkJ1dHRvbklkID0gYGZkLWlucHV0LWdyb3VwLWJ1dHRvbi1pZC0ke2FkZE9uQnV0dG9uUmFuZG9tSWQrK31gO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5wdXRGb2N1c2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGlucHV0IGdyb3VwIGlzIGluIHRoZSBzaGVsbGJhci4gT25seSBmb3IgaW50ZXJuYWwgdXNlIGJ5IGNvbWJvYm94IGNvbXBvbmVudC5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgaW5TaGVsbGJhciA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKiogVmFsdWUgb2YgdGhlIHRleHQgaW5wdXQuICovXG4gICAgc2V0IGlucHV0VGV4dCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9pbnB1dFRleHRWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgaW5wdXRUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnB1dFRleHRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqICBDYWxjdWxhdGUgdGhlIGNvcnJlY3QgaWRzIGZvciBpbnB1dCBhcmlhLWxhYmVsbGVkYnlcbiAgICAgKi9cbiAgICBnZXQgX2lucHV0QXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGFyaWFMYWJlbGxlZEJ5SWRzID0gdGhpcy5hcmlhTGFiZWxsZWRCeSA/IHRoaXMuYXJpYUxhYmVsbGVkQnkgKyAnICcgOiAnJztcblxuICAgICAgICBpZiAoIXRoaXMuYnV0dG9uKSB7XG4gICAgICAgICAgICBhcmlhTGFiZWxsZWRCeUlkcyArPSB0aGlzLl9hZGRPbk5vbkJ1dHRvbklkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFyaWFMYWJlbGxlZEJ5SWRzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge1xuICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eU9ic2VydmVyLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuSW5wdXRGb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5wdXRUZXh0VmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRJblNoZWxsYmFyKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5TaGVsbGJhciA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9idXR0b25DbGlja2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZE9uQnV0dG9uQ2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblNlYXJjaEV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcmV2ZW50Rm9jdXMoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmJ1dHRvbkZvY3VzYWJsZSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Py5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IHx8IHRoaXMubG9jYWxJbnB1dEVsZW1lbnQ/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCFpbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvY3VzRXZlbnRzID0gW1xuICAgICAgICAgICAgZnJvbUV2ZW50KGlucHV0RWxlbWVudCwgJ2ZvY3VzaW4nKS5waXBlKG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICAgICAgICBmcm9tRXZlbnQoaW5wdXRFbGVtZW50LCAnZm9jdXNvdXQnKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHRoaXMuX2xvY2FsQnV0dG9uRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXNFdmVudHMucHVzaChcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5fbG9jYWxCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKG1hcCgoKSA9PiAhdGhpcy5idXR0b25Gb2N1c2FibGUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lucHV0Rm9jdXNlZCQgPSBtZXJnZSguLi5mb2N1c0V2ZW50cykucGlwZShcbiAgICAgICAgICAgIC8vIGRlYm91bmNlVGltZSBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gZmlsdGVyIHN1YnNlcXVlbnQgZm9jdXMtYmx1ciBldmVudHMsIHRoYXQgaGFwcGVuIHNpbXVsdGFuZW91c2x5XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMTApLFxuICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc2hvd0ZvY3VzKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmZC1pbnB1dC1ncm91cFwiXG4gICAgW2NsYXNzLmZkLWlucHV0LWdyb3VwLS1pbmxpbmVdPVwiaW5saW5lXCJcbiAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5pcy1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2NsYXNzLmZkLXNoZWxsYmFyX19pbnB1dC1ncm91cF09XCJpblNoZWxsYmFyXCJcbiAgICBbY2xhc3MuZmQtaW5wdXQtZ3JvdXAtLWNvbnRyb2xdPVwiaXNDb250cm9sXCJcbiAgICBbY2xhc3MuaXMtZm9jdXNdPVwiX2lucHV0Rm9jdXNlZCQgfCBhc3luY1wiXG4gICAgW2NsYXNzXT1cInN0YXRlID8gJ2lzLScgKyBzdGF0ZSA6ICcgJ1wiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBsYWNlbWVudCA9PT0gJ2FmdGVyJyAmJiAhaW5wdXRFbGVtZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhZGRPbkVsZW1lbnQgJiYgKGdseXBoIHx8IGFkZE9uVGV4dClcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICBbYnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXNoZWxsYmFyX19pbnB1dC1ncm91cC1hZGRvbl09XCJpblNoZWxsYmFyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkSW5wdXRHcm91cEFkZG9uQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYWRkb25CdXR0b25BcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImluU2hlbGxiYXIgPyAnc3RhbmRhcmQnIDogJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2lkXT1cIl9hZGRPbkJ1dHRvbklkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJidXR0b25Gb2N1c2FibGUgPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImljb25UaXRsZSB8fCBnbHlwaEFyaWFMYWJlbCB8fCBnbHlwaFwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cImdseXBoXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZmQtc2hlbGxiYXJfX2J1dHRvbl09XCJpblNoZWxsYmFyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpc0NvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaW5TaGVsbGJhciA/IGlzRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImdseXBoQXJpYUxhYmVsIHx8IGdseXBoIHx8IGFkZE9uVGV4dFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJfaW5wdXRJZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIl9wcmV2ZW50Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJfYnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2J1dHRvbkNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFnbHlwaFwiPnt7IGFkZE9uVGV4dCB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhYnV0dG9uXCJcbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICBbaWRdPVwiX2FkZE9uTm9uQnV0dG9uSWRcIlxuICAgICAgICAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnbHlwaEFyaWFMYWJlbCB8fCBnbHlwaCB8fCBhZGRPblRleHRcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaWNvblRpdGxlIHx8IGdseXBoIHx8IGFkZE9uVGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ2x5cGhcIj57eyBhZGRPblRleHQgfX08L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJnbHlwaFwiIFtjbGFzc05hbWVdPVwiJ3NhcC1pY29uLS0nICsgZ2x5cGhcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwbGFjZW1lbnQgPT09ICdiZWZvcmUnICYmICFpbnB1dEVsZW1lbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbnB1dD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGlucHV0XG4gICAgICAgICpuZ0lmPVwiIWlucHV0VGVtcGxhdGVcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXG4gICAgICAgIFtpZF09XCJfaW5wdXRJZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfaW5wdXRBcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFtjbGFzcy5mZC1zaGVsbGJhcl9faW5wdXQtZ3JvdXAtaW5wdXRdPVwiaW5TaGVsbGJhclwiXG4gICAgICAgIGZkLWlucHV0LWdyb3VwLWlucHV0XG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAoc2VhcmNoKT1cIl9vblNlYXJjaEV2ZW50KCRldmVudClcIlxuICAgIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUduRyxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEYsT0FBTyxFQUNILDhCQUE4QixFQUM5Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFJbEMsSUFBSSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDL0IsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFM0I7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLG1CQUFtQjtJQUM1Qiw4RUFBOEU7SUFDOUUs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QkFEZCxLQUFLO2dCQUtOLElBQUk7c0JBREgsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFTTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVU4sY0FBYztzQkFEYixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFRUCxNQUFNO3NCQURMLE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFLdEMsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLHdCQUF3QjtnQkFLbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFLckIsbUJBQW1CO3NCQURuQyxTQUFTO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBpc0Rldk1vZGUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtSXRlbUNvbnRyb2wsIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuXG5pbXBvcnQge1xuICAgIElucHV0R3JvdXBBZGRvbkJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwQWRkT25EaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cElucHV0RGlyZWN0aXZlXG59IGZyb20gJy4vaW5wdXQtZ3JvdXAtZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBJbnB1dEdyb3VwUGxhY2VtZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuXG5sZXQgYWRkT25Ob25CdXR0b25SYW5kb21JZCA9IDA7XG5sZXQgYWRkT25CdXR0b25SYW5kb21JZCA9IDA7XG5sZXQgYWRkT25JbnB1dFJhbmRvbUlkID0gMDtcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhbiBpbnB1dCBncm91cC5cbiAqIFRoZSBpbnB1dCBncm91cCBpbmNsdWRlcyBmb3JtIGlucHV0cyB3aXRoIGFkZC1vbnMgdGhhdCBhbGxvdyB0aGUgdXNlciB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgaW5mb3JtYXRpb24gYmVpbmcgZW50ZXJlZC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtaW5wdXQtZ3JvdXAgcGxhY2VtZW50PVwiYWZ0ZXJcIiBhZGRPblRleHQ9XCIkXCIgcGxhY2Vob2xkZXI9XCJBbW91bnRcIj5cbiAqIDwvZmQtaW5wdXQtZ3JvdXA+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1pbnB1dC1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0R3JvdXBDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpLFxuICAgICAgICByZWdpc3RlckZvcm1JdGVtQ29udHJvbChJbnB1dEdyb3VwQ29tcG9uZW50KVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZm9jdXNvdXQpJzogJ19mb2N1c091dCgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBkZXByZWNhdGVkIElucHV0IHRlbXBsYXRlLCB1c2UgZmQtaW5wdXQtZ3JvdXAtaW5wdXQgZGlyZWN0aXZlIGluc3RlYWQuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaW5wdXRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJpbnB1dFRlbXBsYXRlXCIgaXMgZGVwcmVjYXRlZC4gVXNlIFwiZmQtaW5wdXQtZ3JvdXAtaW5wdXRcIiBkaXJlY3RpdmUgaW5zdGVhZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5wdXRUZW1wbGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhY2VtZW50IG9mIHRoZSBhZGQtb24uXG4gICAgICogT3B0aW9ucyBpbmNsdWRlICpiZWZvcmUqIGFuZCAqYWZ0ZXIqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZW1lbnQ6IElucHV0R3JvdXBQbGFjZW1lbnQgPSAnYWZ0ZXInO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBpbnB1dCBncm91cCBpcyBpbmxpbmUuICovXG4gICAgQElucHV0KClcbiAgICBpbmxpbmUgPSBmYWxzZTtcblxuICAgIC8qKiBQbGFjZWhvbGRlciBmb3IgdGhlIGlucHV0IGdyb3VwLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBUaGUgdGV4dCBmb3IgdGhlIGFkZC1vbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFkZE9uVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGJ1dHRvbkZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIGlucHV0LCB1c2VkIGluIElucHV0IEdyb3VwLiBCeSBkZWZhdWx0LCB2YWx1ZSBpcyBzZXQgdG8gJ3RleHQnICovXG4gICAgQElucHV0KClcbiAgICB0eXBlID0gJ3RleHQnO1xuXG4gICAgLyoqIFRoZSBpY29uIHZhbHVlIGZvciB0aGUgYWRkLW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaWNvbiBhZGQtb24gb3IgdGhlIHRleHQgYWRkLW9uIGlzIGEgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGlucHV0IGdyb3VwIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgZ3JvdXAgaXMgcmVhZG9ubHkuICovXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlOiBOdWxsYWJsZTxGb3JtU3RhdGVzPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGlucHV0IGdyb3VwIGlzIGEgcG9wb3ZlciBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc0NvbnRyb2wgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgc2hvdWxkIHNob3cgZm9jdXMgb3V0bGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0ZvY3VzID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBpc0V4cGFuZGVkID0gZmFsc2U7XG5cbiAgICAvKiogTGFiZWwgYXBwbGllZCB0byBidXR0b24gd2l0aCBnbHlwaCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGhBcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBncm91cCBhZGRvbiBidXR0b24gc2hvdWxkIGJlIGFyaWEtaGlkZGVuXG4gICAgICogVXNlZnVsIGluIGNhc2VzIHdoZW4gdGhlIHRpdGxlIGlzIGFscmVhZHkgYXBwbGllZCBvbiB0aGVcbiAgICAgKiBpbnB1dCBncm91cCBwYXJlbnQgY29tcG9uZW50XG4gICAgICoqL1xuICAgIEBJbnB1dCgpXG4gICAgYWRkb25CdXR0b25BcmlhSGlkZGVuOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIC8qKiBUaGUgdG9vbHRpcCBmb3IgdGhlIGlucHV0IGdyb3VwIGljb24uICovXG4gICAgQElucHV0KClcbiAgICBpY29uVGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byBcImFyaWFMYWJlbGxlZEJ5XCIgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhcmlhTGFiZWxsZWRieSh2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJhcmlhTGFiZWxsZWRieVwiIGlzIGRlcHJlY2F0ZWQuIFVzZSBcImFyaWFMYWJlbGxlZEJ5XCIgaW5zdGVhZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJpYUxhYmVsbGVkQnkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogdGhlIGFzc29jaWF0ZWQgaWRzIGZvciB0aGUgaW5wdXQgYXJpYS1sYWJlbGxlZGJ5IGZpZWxkICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFkZC1vbiBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBhZGRPbkJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBuYXRpdmUgY2xlYXIgYnV0dG9uIGlzIGNsaWNrZWQsIG9yIHdoZW4gbmF0aXZlIHNlYXJjaCBpcyBleGVjdXRlZC5cbiAgICAgKiBXb3JrcyBvbmx5IGZvciBuYXRpdmUgc2VhcmNoIGZvciBpbnB1dFt0eXBlPVwic2VhcmNoXCJdXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChJbnB1dEdyb3VwSW5wdXREaXJlY3RpdmUpXG4gICAgaW5wdXRFbGVtZW50OiBJbnB1dEdyb3VwSW5wdXREaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoSW5wdXRHcm91cElucHV0RGlyZWN0aXZlKVxuICAgIGxvY2FsSW5wdXRFbGVtZW50OiBJbnB1dEdyb3VwSW5wdXREaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoSW5wdXRHcm91cEFkZE9uRGlyZWN0aXZlKVxuICAgIGFkZE9uRWxlbWVudDogSW5wdXRHcm91cEFkZE9uRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKElucHV0R3JvdXBBZGRvbkJ1dHRvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxCdXR0b25FbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5wdXRUZXh0VmFsdWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lucHV0SWQgPSBgZmQtaW5wdXQtZ3JvdXAtaW5wdXQtaWQtJHthZGRPbklucHV0UmFuZG9tSWQrK31gO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWRkT25Ob25CdXR0b25JZCA9IGBmZC1pbnB1dC1ncm91cC1ub24tYnV0dG9uLWlkLSR7YWRkT25Ob25CdXR0b25SYW5kb21JZCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hZGRPbkJ1dHRvbklkID0gYGZkLWlucHV0LWdyb3VwLWJ1dHRvbi1pZC0ke2FkZE9uQnV0dG9uUmFuZG9tSWQrK31gO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5wdXRGb2N1c2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGlucHV0IGdyb3VwIGlzIGluIHRoZSBzaGVsbGJhci4gT25seSBmb3IgaW50ZXJuYWwgdXNlIGJ5IGNvbWJvYm94IGNvbXBvbmVudC5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgaW5TaGVsbGJhciA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKiogVmFsdWUgb2YgdGhlIHRleHQgaW5wdXQuICovXG4gICAgc2V0IGlucHV0VGV4dCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9pbnB1dFRleHRWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgaW5wdXRUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnB1dFRleHRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqICBDYWxjdWxhdGUgdGhlIGNvcnJlY3QgaWRzIGZvciBpbnB1dCBhcmlhLWxhYmVsbGVkYnlcbiAgICAgKi9cbiAgICBnZXQgX2lucHV0QXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGFyaWFMYWJlbGxlZEJ5SWRzID0gdGhpcy5hcmlhTGFiZWxsZWRCeSA/IHRoaXMuYXJpYUxhYmVsbGVkQnkgKyAnICcgOiAnJztcblxuICAgICAgICBpZiAoIXRoaXMuYnV0dG9uKSB7XG4gICAgICAgICAgICBhcmlhTGFiZWxsZWRCeUlkcyArPSB0aGlzLl9hZGRPbk5vbkJ1dHRvbklkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFyaWFMYWJlbGxlZEJ5SWRzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge1xuICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eU9ic2VydmVyLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuSW5wdXRGb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5wdXRUZXh0VmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0SW5TaGVsbGJhcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmluU2hlbGxiYXIgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYnV0dG9uQ2xpY2tlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRPbkJ1dHRvbkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWFyY2hFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2guZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcHJldmVudEZvY3VzKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5idXR0b25Gb2N1c2FibGUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlbklucHV0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudD8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCB8fCB0aGlzLmxvY2FsSW5wdXRFbGVtZW50Py5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmICghaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb2N1c0V2ZW50cyA9IFtcbiAgICAgICAgICAgIGZyb21FdmVudChpbnB1dEVsZW1lbnQsICdmb2N1c2luJykucGlwZShtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgICAgICAgZnJvbUV2ZW50KGlucHV0RWxlbWVudCwgJ2ZvY3Vzb3V0JykucGlwZShtYXAoKCkgPT4gZmFsc2UpKVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLl9sb2NhbEJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgICAgICAgIGZvY3VzRXZlbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuX2xvY2FsQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJykucGlwZShtYXAoKCkgPT4gIXRoaXMuYnV0dG9uRm9jdXNhYmxlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbnB1dEZvY3VzZWQkID0gbWVyZ2UoLi4uZm9jdXNFdmVudHMpLnBpcGUoXG4gICAgICAgICAgICAvLyBkZWJvdW5jZVRpbWUgaXMgbmVlZGVkIGluIG9yZGVyIHRvIGZpbHRlciBzdWJzZXF1ZW50IGZvY3VzLWJsdXIgZXZlbnRzLCB0aGF0IGhhcHBlbiBzaW11bHRhbmVvdXNseVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDEwKSxcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnNob3dGb2N1cyksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBcIlxuICAgIFtjbGFzcy5mZC1pbnB1dC1ncm91cC0taW5saW5lXT1cImlubGluZVwiXG4gICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbY2xhc3MuaXMtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtjbGFzcy5mZC1zaGVsbGJhcl9faW5wdXQtZ3JvdXBdPVwiaW5TaGVsbGJhclwiXG4gICAgW2NsYXNzLmZkLWlucHV0LWdyb3VwLS1jb250cm9sXT1cImlzQ29udHJvbFwiXG4gICAgW2NsYXNzLmlzLWZvY3VzXT1cIl9pbnB1dEZvY3VzZWQkIHwgYXN5bmNcIlxuICAgIFtjbGFzc109XCJzdGF0ZSA/ICdpcy0nICsgc3RhdGUgOiAnICdcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwbGFjZW1lbnQgPT09ICdhZnRlcicgJiYgIWlucHV0RWxlbWVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWRkT25FbGVtZW50ICYmIChnbHlwaCB8fCBhZGRPblRleHQpXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImJ1dHRvblwiXG4gICAgICAgICAgICBmZC1pbnB1dC1ncm91cC1hZGRvblxuICAgICAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC1zaGVsbGJhcl9faW5wdXQtZ3JvdXAtYWRkb25dPVwiaW5TaGVsbGJhclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZElucHV0R3JvdXBBZGRvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImFkZG9uQnV0dG9uQXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJpblNoZWxsYmFyID8gJ3N0YW5kYXJkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJfYWRkT25CdXR0b25JZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiYnV0dG9uRm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpY29uVGl0bGUgfHwgZ2x5cGhBcmlhTGFiZWwgfHwgZ2x5cGhcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZkLXNoZWxsYmFyX19idXR0b25dPVwiaW5TaGVsbGJhclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXNDb250cm9sXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImluU2hlbGxiYXIgPyBpc0V4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJnbHlwaEFyaWFMYWJlbCB8fCBnbHlwaCB8fCBhZGRPblRleHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2lucHV0SWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJfcHJldmVudEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiX2J1dHRvbkNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9idXR0b25DbGlja2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ2x5cGhcIj57eyBhZGRPblRleHQgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIWJ1dHRvblwiXG4gICAgICAgICAgICBmZC1pbnB1dC1ncm91cC1hZGRvblxuICAgICAgICAgICAgW2lkXT1cIl9hZGRPbk5vbkJ1dHRvbklkXCJcbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2x5cGhBcmlhTGFiZWwgfHwgZ2x5cGggfHwgYWRkT25UZXh0XCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImljb25UaXRsZSB8fCBnbHlwaCB8fCBhZGRPblRleHRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWdseXBoXCI+e3sgYWRkT25UZXh0IH19PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ2x5cGhcIiBbY2xhc3NOYW1lXT1cIidzYXAtaWNvbi0tJyArIGdseXBoXCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGxhY2VtZW50ID09PSAnYmVmb3JlJyAmJiAhaW5wdXRFbGVtZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0VGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxpbnB1dFxuICAgICAgICAqbmdJZj1cIiFpbnB1dFRlbXBsYXRlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxuICAgICAgICBbaWRdPVwiX2lucHV0SWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2lucHV0QXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbY2xhc3MuZmQtc2hlbGxiYXJfX2lucHV0LWdyb3VwLWlucHV0XT1cImluU2hlbGxiYXJcIlxuICAgICAgICBmZC1pbnB1dC1ncm91cC1pbnB1dFxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgKHNlYXJjaCk9XCJfb25TZWFyY2hFdmVudCgkZXZlbnQpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -126,7 +126,7 @@ export class MenuMobileComponent extends MobileModeBase {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
MenuMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuMobileComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: i2.MenuService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i3.RtlService, optional: true }, { token: MENU_COMPONENT }, { token: MOBILE_MODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
-
MenuMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuMobileComponent, selector: "fd-menu-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }, { propertyName: "_watch", first: true, predicate: DialogBodyComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "directive", type: i5.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i5.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i5.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i5.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i3.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3.InitialFocusDirective, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
129
|
+
MenuMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuMobileComponent, selector: "fd-menu-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }, { propertyName: "_watch", first: true, predicate: DialogBodyComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "directive", type: i5.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i5.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i5.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i5.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title], span[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i3.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3.InitialFocusDirective, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
130
130
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuMobileComponent, decorators: [{
|
|
131
131
|
type: Component,
|
|
132
132
|
args: [{ selector: 'fd-menu-mobile', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n" }]
|