@fundamental-ngx/core 0.43.0-rc.8 → 0.43.0-rc.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +3 -3
  2. package/esm2020/combobox/combobox.component.mjs +1 -1
  3. package/esm2020/dialog/dialog-default/dialog-default.component.mjs +3 -3
  4. package/esm2020/list/list-item/list-item.component.mjs +11 -2
  5. package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +3 -3
  6. package/esm2020/message-box/message-box-default/message-box-default.component.mjs +3 -3
  7. package/esm2020/multi-combobox/multi-combobox.component.mjs +1 -1
  8. package/esm2020/multi-input/multi-input.component.mjs +1 -1
  9. package/esm2020/select/select.component.mjs +3 -3
  10. package/esm2020/token/tokenizer.component.mjs +1 -1
  11. package/fesm2015/fundamental-ngx-core-combobox.mjs +3 -3
  12. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  13. package/fesm2015/fundamental-ngx-core-dialog.mjs +2 -2
  14. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  15. package/fesm2015/fundamental-ngx-core-list.mjs +10 -1
  16. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  17. package/fesm2015/fundamental-ngx-core-menu.mjs +2 -2
  18. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  19. package/fesm2015/fundamental-ngx-core-message-box.mjs +2 -2
  20. package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
  21. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +1 -1
  22. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  23. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  24. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  25. package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
  26. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  27. package/fesm2015/fundamental-ngx-core-token.mjs +1 -1
  28. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  29. package/fesm2020/fundamental-ngx-core-combobox.mjs +3 -3
  30. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  31. package/fesm2020/fundamental-ngx-core-dialog.mjs +2 -2
  32. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  33. package/fesm2020/fundamental-ngx-core-list.mjs +10 -1
  34. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  35. package/fesm2020/fundamental-ngx-core-menu.mjs +2 -2
  36. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  37. package/fesm2020/fundamental-ngx-core-message-box.mjs +2 -2
  38. package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
  39. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +1 -1
  40. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  41. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  42. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  43. package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
  44. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  45. package/fesm2020/fundamental-ngx-core-token.mjs +1 -1
  46. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  47. package/fundamental-ngx-core-v0.43.0-rc.9.tgz +0 -0
  48. package/list/list-item/list-item.component.d.ts +5 -1
  49. package/package.json +3 -3
  50. package/schematics/add-dependencies/index.js +4 -4
  51. package/fundamental-ngx-core-v0.43.0-rc.8.tgz +0 -0
@@ -90,10 +90,10 @@ export class ComboboxMobileComponent extends MobileModeBase {
90
90
  }
91
91
  }
92
92
  ComboboxMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComboboxMobileComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: COMBOBOX_COMPONENT }, { token: MOBILE_MODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
93
- ComboboxMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ComboboxMobileComponent, selector: "fd-combobox-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], 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 <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container *ngTemplateOutlet=\"childContent?.controlTemplate || null\"></ng-container>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fd-initial-focus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { 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: "component", type: i3.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: i4.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i4.InitialFocusDirective, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i4.DeprecatedInitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
93
+ ComboboxMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ComboboxMobileComponent, selector: "fd-combobox-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], 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 <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container *ngTemplateOutlet=\"childContent?.controlTemplate || null\"></ng-container>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { 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: "component", type: i3.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: i4.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i4.InitialFocusDirective, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComboboxMobileComponent, decorators: [{
95
95
  type: Component,
96
- args: [{ selector: 'fd-combobox-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 <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container *ngTemplateOutlet=\"childContent?.controlTemplate || null\"></ng-container>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fd-initial-focus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
96
+ args: [{ selector: 'fd-combobox-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 <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n title=\"Close\"\n fd-dialog-close-button\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container *ngTemplateOutlet=\"childContent?.controlTemplate || null\"></ng-container>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
97
97
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DialogService }, { type: undefined, decorators: [{
98
98
  type: Inject,
99
99
  args: [COMBOBOX_COMPONENT]
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
106
106
  type: ViewChild,
107
107
  args: ['dialogTemplate']
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbWJvYm94L2NvbWJvYm94LW1vYmlsZS9jb21ib2JveC1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29tYm9ib3gvY29tYm9ib3gtbW9iaWxlL2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFHVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBRWQsaUJBQWlCLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRdEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQWlDO0lBYzFFLGNBQWM7SUFDZCxZQUNJLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQ0EsaUJBQW9DLEVBQ3hCLFdBQW9DO1FBRTVFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQWpCakc7Ozs7V0FJRztRQUNILGlCQUFZLEdBQWlGLElBQUksQ0FBQztJQWFs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R0FuQmpDLHVCQUF1QixtTUNoQ3BDLGlxREEwQ0E7MkZEVmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFvQmhDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0I7NENBakJiLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7XG4gICAgTU9CSUxFX01PREVfQ09ORklHLFxuICAgIE1vYmlsZU1vZGVCYXNlLFxuICAgIE1vYmlsZU1vZGVDb25maWdUb2tlbixcbiAgICBNb2JpbGVNb2RlQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuXG5pbXBvcnQgeyBDT01CT0JPWF9DT01QT05FTlQsIENvbWJvYm94SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tYm9ib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY29tYm9ib3gtbW9iaWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3gtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94TW9iaWxlQ29tcG9uZW50IGV4dGVuZHMgTW9iaWxlTW9kZUJhc2U8Q29tYm9ib3hJbnRlcmZhY2U+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnKSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogRm9yIGludGVybmFsIHVzYWdlXG4gICAgICogQ29udHJvbCBlbGVtZW50LCB3aGljaCB3aWxsIGJlIHJlbmRlcmVkIGluc2lkZSBkaWFsb2cuXG4gICAgICogTGlzdCBlbGVtZW50LCB3aGljaCB3aWxsIGJlIHJlbmRlcmVkIGluc2lkZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2hpbGRDb250ZW50OiB7IGxpc3RUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjsgY29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IH0gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRCYWNrdXA6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoQ09NQk9CT1hfQ09NUE9ORU5UKSBjb21ib2JveENvbXBvbmVudDogQ29tYm9ib3hJbnRlcmZhY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9CSUxFX01PREVfQ09ORklHKSBtb2JpbGVNb2RlczogTW9iaWxlTW9kZUNvbmZpZ1Rva2VuW11cbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgZGlhbG9nU2VydmljZSwgY29tYm9ib3hDb21wb25lbnQsIE1vYmlsZU1vZGVDb250cm9sLkNPTUJPQk9YLCBtb2JpbGVNb2Rlcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25NdWx0aUlucHV0T3BlbkNoYW5nZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm9uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlRGlzbWlzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nRGlzbWlzcyh0aGlzLl9zZWxlY3RlZEJhY2t1cCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVBcHByb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nQXBwcm92ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdG9nZ2xlRGlhbG9nKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQmFja3VwID0gdGhpcy5fY29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2RpYWxvZ1NlcnZpY2UuaGFzT3BlbkRpYWxvZ3MoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25NdWx0aUlucHV0T3BlbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Lm9wZW5DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoaXNPcGVuKSA9PiB0aGlzLl90b2dnbGVEaWFsb2coaXNPcGVuKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ1RlbXBsYXRlLCB7XG4gICAgICAgICAgICBtb2JpbGU6IHRydWUsXG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNJbnB1dEVsZW1lbnRPbmNlT3BlbmVkKCk7XG5cbiAgICAgICAgY29uc3QgcmVmU3ViID0gdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGVycm9yOiAodHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnZXNjYXBlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nRGlzbWlzcyh0aGlzLl9zZWxlY3RlZEJhY2t1cCk7XG4gICAgICAgICAgICAgICAgICAgIHJlZlN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c0lucHV0RWxlbWVudE9uY2VPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyTG9hZGVkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLCAvLyBtYWtpbmcgdGhlIGxpc3RlbmVyIGFzeW5jXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmZC1pbnB1dC1ncm91cCBpbnB1dFtyb2xlPVwiY29tYm9ib3hcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmb2N1cyBjb21ib2JveCBzZWFyY2ggaW5wdXQnLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2RpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBmZC10aXRsZSAqbmdJZj1cIm1vYmlsZUNvbmZpZz8udGl0bGVcIj57eyBtb2JpbGVDb25maWcudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgICAgIFttb2JpbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJzdWJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1taWRkbGU+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudCBbZnVsbFdpZHRoXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGlsZENvbnRlbnQ/LmNvbnRyb2xUZW1wbGF0ZSB8fCBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoaWxkQ29udGVudD8ubGlzdFRlbXBsYXRlIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWc/LmFwcHJvdmVCdXR0b25UZXh0XCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwibW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0IVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFwcHJvdmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlQ29uZmlnPy5jYW5jZWxCdXR0b25UZXh0XCJcbiAgICAgICAgICAgICAgICBmZC1pbml0aWFsLWZvY3VzXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIm1vYmlsZUNvbmZpZy5jYW5jZWxCdXR0b25UZXh0IVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbWJvYm94L2NvbWJvYm94LW1vYmlsZS9jb21ib2JveC1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29tYm9ib3gvY29tYm9ib3gtbW9iaWxlL2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFHVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBRWQsaUJBQWlCLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRdEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQWlDO0lBYzFFLGNBQWM7SUFDZCxZQUNJLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQ0EsaUJBQW9DLEVBQ3hCLFdBQW9DO1FBRTVFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQWpCakc7Ozs7V0FJRztRQUNILGlCQUFZLEdBQWlGLElBQUksQ0FBQztJQWFsRyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7SUFDZCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGNBQWM7SUFDZCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO0lBQ04sYUFBYSxDQUFDLElBQWE7UUFDL0IsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTiw2QkFBNkI7UUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsY0FBYztJQUNOLEtBQUs7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDM0QsTUFBTSxFQUFFLElBQUk7WUFDWixHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ3BCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYTtZQUN6QyxlQUFlLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUVwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDaEQsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3BELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDeEI7WUFDTCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDTiw0QkFBNEI7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXO2FBQ3JCLElBQUksQ0FDRCxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsNEJBQTRCO1FBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUk7Z0JBQ0EsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7Z0JBQ3BHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNqQjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLElBQUksU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDakU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7b0hBcEdRLHVCQUF1Qix5RUFrQnBCLGtCQUFrQixhQUNOLGtCQUFrQjt3R0FuQmpDLHVCQUF1QixtTUNoQ3BDLGdxREEwQ0E7MkZEVmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFvQmhDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0I7NENBakJiLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7XG4gICAgTU9CSUxFX01PREVfQ09ORklHLFxuICAgIE1vYmlsZU1vZGVCYXNlLFxuICAgIE1vYmlsZU1vZGVDb25maWdUb2tlbixcbiAgICBNb2JpbGVNb2RlQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuXG5pbXBvcnQgeyBDT01CT0JPWF9DT01QT05FTlQsIENvbWJvYm94SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tYm9ib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY29tYm9ib3gtbW9iaWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3gtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94TW9iaWxlQ29tcG9uZW50IGV4dGVuZHMgTW9iaWxlTW9kZUJhc2U8Q29tYm9ib3hJbnRlcmZhY2U+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnKSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogRm9yIGludGVybmFsIHVzYWdlXG4gICAgICogQ29udHJvbCBlbGVtZW50LCB3aGljaCB3aWxsIGJlIHJlbmRlcmVkIGluc2lkZSBkaWFsb2cuXG4gICAgICogTGlzdCBlbGVtZW50LCB3aGljaCB3aWxsIGJlIHJlbmRlcmVkIGluc2lkZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2hpbGRDb250ZW50OiB7IGxpc3RUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjsgY29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IH0gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRCYWNrdXA6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoQ09NQk9CT1hfQ09NUE9ORU5UKSBjb21ib2JveENvbXBvbmVudDogQ29tYm9ib3hJbnRlcmZhY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9CSUxFX01PREVfQ09ORklHKSBtb2JpbGVNb2RlczogTW9iaWxlTW9kZUNvbmZpZ1Rva2VuW11cbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgZGlhbG9nU2VydmljZSwgY29tYm9ib3hDb21wb25lbnQsIE1vYmlsZU1vZGVDb250cm9sLkNPTUJPQk9YLCBtb2JpbGVNb2Rlcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25NdWx0aUlucHV0T3BlbkNoYW5nZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm9uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlRGlzbWlzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nRGlzbWlzcyh0aGlzLl9zZWxlY3RlZEJhY2t1cCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVBcHByb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nQXBwcm92ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdG9nZ2xlRGlhbG9nKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQmFja3VwID0gdGhpcy5fY29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2RpYWxvZ1NlcnZpY2UuaGFzT3BlbkRpYWxvZ3MoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25NdWx0aUlucHV0T3BlbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Lm9wZW5DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoaXNPcGVuKSA9PiB0aGlzLl90b2dnbGVEaWFsb2coaXNPcGVuKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ1RlbXBsYXRlLCB7XG4gICAgICAgICAgICBtb2JpbGU6IHRydWUsXG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNJbnB1dEVsZW1lbnRPbmNlT3BlbmVkKCk7XG5cbiAgICAgICAgY29uc3QgcmVmU3ViID0gdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGVycm9yOiAodHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnZXNjYXBlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuZGlhbG9nRGlzbWlzcyh0aGlzLl9zZWxlY3RlZEJhY2t1cCk7XG4gICAgICAgICAgICAgICAgICAgIHJlZlN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c0lucHV0RWxlbWVudE9uY2VPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyTG9hZGVkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLCAvLyBtYWtpbmcgdGhlIGxpc3RlbmVyIGFzeW5jXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmZC1pbnB1dC1ncm91cCBpbnB1dFtyb2xlPVwiY29tYm9ib3hcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmb2N1cyBjb21ib2JveCBzZWFyY2ggaW5wdXQnLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2RpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBmZC10aXRsZSAqbmdJZj1cIm1vYmlsZUNvbmZpZz8udGl0bGVcIj57eyBtb2JpbGVDb25maWcudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vYmlsZUNvbmZpZz8uaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgICAgIFttb2JpbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJzdWJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1taWRkbGU+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudCBbZnVsbFdpZHRoXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGlsZENvbnRlbnQ/LmNvbnRyb2xUZW1wbGF0ZSB8fCBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoaWxkQ29udGVudD8ubGlzdFRlbXBsYXRlIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWc/LmFwcHJvdmVCdXR0b25UZXh0XCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwibW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0IVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFwcHJvdmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlQ29uZmlnPy5jYW5jZWxCdXR0b25UZXh0XCJcbiAgICAgICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwibW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHQhXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgIDwvZmQtZGlhbG9nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -513,7 +513,7 @@ ComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
513
513
  provide: FD_COMBOBOX_COMPONENT,
514
514
  useExisting: ComboboxComponent
515
515
  }
516
- ], queries: [{ propertyName: "listMessages", predicate: FD_LIST_MESSAGE_DIRECTIVE }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "inputGroup", first: true, predicate: InputGroupComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template let-term=\"term\" #itemSource>\n <span\n fd-list-title\n *ngIf=\"!itemTemplate\"\n [innerHTML]=\"term | displayFnPipe : displayFn | highlight : inputText : highlighting && filterHighlight\"\n >\n </span>\n <ng-container *ngIf=\"itemTemplate\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: term }\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n *ngIf=\"isSearch && showClearButton && inputText && inputText.length > 0\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupFn\">\n <ng-container *ngFor=\"let group of displayedValues | listGroupPipe : groupFn\">\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of group.value\"\n [selected]=\"isSelected(term)\"\n (keyDown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!groupFn\">\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of displayedValues\"\n [selected]=\"isSelected(term)\"\n (keyDown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-container [ngTemplateOutlet]=\"itemSource\" [ngTemplateOutletContext]=\"{ term: term }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n", styles: [".fd-combobox-custom-class,.fd-combobox-custom-class .fd-combobox-shellbar-custom{display:inline-block}.fd-list__item.fd-combobox-list-item{cursor:pointer}.fd-combobox-full-width{width:100%}.fd-combobox-count-list-results{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i5.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i8.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i9.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator"], outputs: ["focusEscapeList"] }, { kind: "component", type: i9.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i9.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i9.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i10.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i2.AutoCompleteDirective, selector: "[fdkAutoComplete], [fdAutoComplete], [fd-auto-complete]", inputs: ["options", "inputText", "enable", "displayFn"], outputs: ["onComplete"] }, { kind: "pipe", type: i2.DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: i2.SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: i11.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i12.ListGroupPipe, name: "listGroupPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
516
+ ], queries: [{ propertyName: "listMessages", predicate: FD_LIST_MESSAGE_DIRECTIVE }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "inputGroup", first: true, predicate: InputGroupComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template let-term=\"term\" #itemSource>\n <span\n fd-list-title\n *ngIf=\"!itemTemplate\"\n [innerHTML]=\"term | displayFnPipe : displayFn | highlight : inputText : highlighting && filterHighlight\"\n >\n </span>\n <ng-container *ngIf=\"itemTemplate\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: term }\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n *ngIf=\"isSearch && showClearButton && inputText && inputText.length > 0\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupFn\">\n <ng-container *ngFor=\"let group of displayedValues | listGroupPipe : groupFn\">\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of group.value\"\n [selected]=\"isSelected(term)\"\n (keyDown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!groupFn\">\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of displayedValues\"\n [selected]=\"isSelected(term)\"\n (keyDown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-container [ngTemplateOutlet]=\"itemSource\" [ngTemplateOutletContext]=\"{ term: term }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n", styles: [".fd-combobox-custom-class,.fd-combobox-custom-class .fd-combobox-shellbar-custom{display:inline-block}.fd-list__item.fd-combobox-list-item{cursor:pointer}.fd-combobox-full-width{width:100%}.fd-combobox-count-list-results{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i5.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i8.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i9.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator"], outputs: ["focusEscapeList"] }, { kind: "component", type: i9.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i9.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i9.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i10.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i2.AutoCompleteDirective, selector: "[fdkAutoComplete], [fdAutoComplete], [fd-auto-complete]", inputs: ["options", "inputText", "enable", "displayFn"], outputs: ["onComplete"] }, { kind: "pipe", type: i2.DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: i2.SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: i11.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i12.ListGroupPipe, name: "listGroupPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
517
517
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComboboxComponent, decorators: [{
518
518
  type: Component,
519
519
  args: [{ selector: 'fd-combobox', providers: [
@@ -41,9 +41,9 @@ export class DialogDefaultComponent {
41
41
  }
42
42
  }
43
43
  DialogDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DialogDefaultComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
44
- DialogDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DialogDefaultComponent, selector: "fd-dialog-default", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle || ''\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdkTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent!.subHeader!\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent?.content!\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fd-initial-focus\n [label]=\"_defaultDialogContent?.approveButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.approveButtonId\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent?.cancelButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.cancelButtonId\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "component", type: i1.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i2.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: i3.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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i5.InitialFocusDirective, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i5.DeprecatedInitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]" }, { kind: "component", type: i6.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i7.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i9.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i10.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ DialogDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DialogDefaultComponent, selector: "fd-dialog-default", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle || ''\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdkTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent!.subHeader!\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent?.content!\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fdkInitialFocus\n [label]=\"_defaultDialogContent?.approveButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.approveButtonId\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent?.cancelButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.cancelButtonId\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "component", type: i1.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i2.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: i3.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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i5.InitialFocusDirective, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i6.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i7.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i9.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i10.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DialogDefaultComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'fd-dialog-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle || ''\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdkTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent!.subHeader!\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent?.content!\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fd-initial-focus\n [label]=\"_defaultDialogContent?.approveButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.approveButtonId\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent?.cancelButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.cancelButtonId\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
47
+ args: [{ selector: 'fd-dialog-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle || ''\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdkTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent!.subHeader!\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent?.content!\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fdkInitialFocus\n [label]=\"_defaultDialogContent?.approveButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.approveButtonId\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent?.cancelButton || ''\"\n [fdCozy]=\"_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n [id]=\"_defaultDialogContent?.cancelButtonId\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
48
48
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1kZWZhdWx0L2RpYWxvZy1kZWZhdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpYWxvZy9kaWFsb2ctZGVmYXVsdC9kaWFsb2ctZGVmYXVsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTXJHLDBFQUEwRTtBQU0xRSxNQUFNLE9BQU8sc0JBQXNCO0lBTy9CLGNBQWM7SUFDZCxZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFHLENBQUM7SUFFN0Q7O1NBRUs7SUFDTCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsV0FBVztRQUNQLE9BQU8sQ0FDSCxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtZQUM1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FDMUYsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ2QsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYztJQUNkLHFCQUFxQjtRQUNqQixJQUFJLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxjQUFjO0lBQ2Qsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDekQsQ0FBQzs7bUhBdENRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlEQ1puQywwMkRBMkNBOzJGRC9CYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUVaLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy1jb25maWcuY2xhc3MnO1xuaW1wb3J0IHsgRGlhbG9nRGVmYXVsdENvbnRlbnQgfSBmcm9tICcuLi91dGlscy9kaWFsb2ctZGVmYXVsdC1jb250ZW50LmNsYXNzJztcblxuLyoqIERpYWxvZyBjb21wb25lbnQgdXNlZCB0byBjcmVhdGUgdGhlIGRpYWxvZyBpbiBvYmplY3QgYmFzZWQgYXBwcm9hY2ggKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZGlhbG9nLWRlZmF1bHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctZGVmYXVsdC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RlZmF1bHREaWFsb2dDb250ZW50OiBOdWxsYWJsZTxEaWFsb2dEZWZhdWx0Q29udGVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWZhdWx0RGlhbG9nQ29uZmlndXJhdGlvbjogRGlhbG9nQ29uZmlnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFRPRE86IEluc3BlY3Qgd2h5IERpYWxvZ0RlZmF1bHRDb21wb25lbnRzIG5lZWRzIGNoYW5nZSBkZXRlY3Rpb24gcmUtcnVuIHRvIHJlbmRlciBhZGp1c3RlZCBjb250ZW50IChkaWFsb2cgaGVhZGVyIHRpdGxlKVxuICAgICAqICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBhcHByb3ZlIGJ1dHRvbiwgb3IgY2FuY2VsIGJ1dHRvbiB0ZXh0ICovXG4gICAgX3Nob3dGb290ZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMuX2RlZmF1bHREaWFsb2dDb250ZW50ICYmXG4gICAgICAgICAgICAhISh0aGlzLl9kZWZhdWx0RGlhbG9nQ29udGVudC5jYW5jZWxCdXR0b24gfHwgdGhpcy5fZGVmYXVsdERpYWxvZ0NvbnRlbnQuYXBwcm92ZUJ1dHRvbilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbG9zZUJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHREaWFsb2dDb250ZW50Py5jbG9zZUJ1dHRvbkNhbGxiYWNrPy4oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hcHByb3ZlQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmFwcHJvdmVCdXR0b25DYWxsYmFjaz8uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNhbmNlbEJ1dHRvbkNhbGxiYWNrPy4oKTtcbiAgICB9XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDEgZmQtdGl0bGUgW2lkXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8udGl0bGVJZFwiPnt7IF9kZWZhdWx0RGlhbG9nQ29udGVudD8udGl0bGUgfX08L2gxPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uY2xvc2VCdXR0b25DYWxsYmFja1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5jbG9zZUJ1dHRvblRpdGxlIHx8ICcnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfY2xvc2VCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LnN1YkhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic3ViaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIl9kZWZhdWx0RGlhbG9nQ29udGVudCEuc3ViSGVhZGVyIVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgPGZkLWRpYWxvZy1ib2R5ICpuZ0lmPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNvbnRlbnQhXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyICpuZ0lmPVwiX3Nob3dGb290ZXIoKVwiPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgKm5nSWY9XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmFwcHJvdmVCdXR0b25cIlxuICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICBmZC1pbml0aWFsLWZvY3VzXG4gICAgICAgICAgICBbbGFiZWxdPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5hcHByb3ZlQnV0dG9uIHx8ICcnXCJcbiAgICAgICAgICAgIFtmZENvenldPVwiX2RlZmF1bHREaWFsb2dDb25maWd1cmF0aW9uLm1vYmlsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2FwcHJvdmVCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmFwcHJvdmVCdXR0b25BcmlhTGFiZWxcIlxuICAgICAgICAgICAgW2lkXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uYXBwcm92ZUJ1dHRvbklkXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAqbmdJZj1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uY2FuY2VsQnV0dG9uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNhbmNlbEJ1dHRvbiB8fCAnJ1wiXG4gICAgICAgICAgICBbZmRDb3p5XT1cIl9kZWZhdWx0RGlhbG9nQ29uZmlndXJhdGlvbi5tb2JpbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9jYW5jZWxCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNsb3NlQnV0dG9uQXJpYUxhYmVsXCJcbiAgICAgICAgICAgIFtpZF09XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNhbmNlbEJ1dHRvbklkXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuPC9mZC1kaWFsb2c+XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1kZWZhdWx0L2RpYWxvZy1kZWZhdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpYWxvZy9kaWFsb2ctZGVmYXVsdC9kaWFsb2ctZGVmYXVsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTXJHLDBFQUEwRTtBQU0xRSxNQUFNLE9BQU8sc0JBQXNCO0lBTy9CLGNBQWM7SUFDZCxZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFHLENBQUM7SUFFN0Q7O1NBRUs7SUFDTCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsV0FBVztRQUNQLE9BQU8sQ0FDSCxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtZQUM1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FDMUYsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ2QsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYztJQUNkLHFCQUFxQjtRQUNqQixJQUFJLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxjQUFjO0lBQ2Qsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDekQsQ0FBQzs7bUhBdENRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlEQ1puQyx5MkRBMkNBOzJGRC9CYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUVaLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy1jb25maWcuY2xhc3MnO1xuaW1wb3J0IHsgRGlhbG9nRGVmYXVsdENvbnRlbnQgfSBmcm9tICcuLi91dGlscy9kaWFsb2ctZGVmYXVsdC1jb250ZW50LmNsYXNzJztcblxuLyoqIERpYWxvZyBjb21wb25lbnQgdXNlZCB0byBjcmVhdGUgdGhlIGRpYWxvZyBpbiBvYmplY3QgYmFzZWQgYXBwcm9hY2ggKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZGlhbG9nLWRlZmF1bHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctZGVmYXVsdC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RlZmF1bHREaWFsb2dDb250ZW50OiBOdWxsYWJsZTxEaWFsb2dEZWZhdWx0Q29udGVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWZhdWx0RGlhbG9nQ29uZmlndXJhdGlvbjogRGlhbG9nQ29uZmlnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFRPRE86IEluc3BlY3Qgd2h5IERpYWxvZ0RlZmF1bHRDb21wb25lbnRzIG5lZWRzIGNoYW5nZSBkZXRlY3Rpb24gcmUtcnVuIHRvIHJlbmRlciBhZGp1c3RlZCBjb250ZW50IChkaWFsb2cgaGVhZGVyIHRpdGxlKVxuICAgICAqICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBhcHByb3ZlIGJ1dHRvbiwgb3IgY2FuY2VsIGJ1dHRvbiB0ZXh0ICovXG4gICAgX3Nob3dGb290ZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMuX2RlZmF1bHREaWFsb2dDb250ZW50ICYmXG4gICAgICAgICAgICAhISh0aGlzLl9kZWZhdWx0RGlhbG9nQ29udGVudC5jYW5jZWxCdXR0b24gfHwgdGhpcy5fZGVmYXVsdERpYWxvZ0NvbnRlbnQuYXBwcm92ZUJ1dHRvbilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbG9zZUJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHREaWFsb2dDb250ZW50Py5jbG9zZUJ1dHRvbkNhbGxiYWNrPy4oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hcHByb3ZlQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmFwcHJvdmVCdXR0b25DYWxsYmFjaz8uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNhbmNlbEJ1dHRvbkNhbGxiYWNrPy4oKTtcbiAgICB9XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDEgZmQtdGl0bGUgW2lkXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8udGl0bGVJZFwiPnt7IF9kZWZhdWx0RGlhbG9nQ29udGVudD8udGl0bGUgfX08L2gxPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uY2xvc2VCdXR0b25DYWxsYmFja1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5jbG9zZUJ1dHRvblRpdGxlIHx8ICcnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfY2xvc2VCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LnN1YkhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic3ViaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIl9kZWZhdWx0RGlhbG9nQ29udGVudCEuc3ViSGVhZGVyIVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgPGZkLWRpYWxvZy1ib2R5ICpuZ0lmPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmNvbnRlbnQhXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyICpuZ0lmPVwiX3Nob3dGb290ZXIoKVwiPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgKm5nSWY9XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmFwcHJvdmVCdXR0b25cIlxuICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgIFtsYWJlbF09XCJfZGVmYXVsdERpYWxvZ0NvbnRlbnQ/LmFwcHJvdmVCdXR0b24gfHwgJydcIlxuICAgICAgICAgICAgW2ZkQ296eV09XCJfZGVmYXVsdERpYWxvZ0NvbmZpZ3VyYXRpb24ubW9iaWxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfYXBwcm92ZUJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uYXBwcm92ZUJ1dHRvbkFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbaWRdPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5hcHByb3ZlQnV0dG9uSWRcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICpuZ0lmPVwiX2RlZmF1bHREaWFsb2dDb250ZW50Py5jYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uY2FuY2VsQnV0dG9uIHx8ICcnXCJcbiAgICAgICAgICAgIFtmZENvenldPVwiX2RlZmF1bHREaWFsb2dDb25maWd1cmF0aW9uLm1vYmlsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NhbmNlbEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uY2xvc2VCdXR0b25BcmlhTGFiZWxcIlxuICAgICAgICAgICAgW2lkXT1cIl9kZWZhdWx0RGlhbG9nQ29udGVudD8uY2FuY2VsQnV0dG9uSWRcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==
@@ -62,6 +62,10 @@ export class ListItemComponent extends ListFocusItem {
62
62
  this.growing = false;
63
63
  /** Whether list item should contain additional unRead styles */
64
64
  this.unread = false;
65
+ /**
66
+ * Whether the list item is byline
67
+ */
68
+ this.byline = false;
65
69
  /** @hidden Implementation of KeyboardSupportItemInterface | TODO Revisit KeyboardSupportItemInterface*/
66
70
  this.keyDown = new EventEmitter();
67
71
  /** Whether list item contains link */
@@ -171,7 +175,7 @@ export class ListItemComponent extends ListFocusItem {
171
175
  }
172
176
  }
173
177
  ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FD_LIST_UNREAD_INDICATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
174
- ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--link": "this.link", "attr.role": "this._role" }, classAttribute: "fd-list__item" }, providers: [
178
+ ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this._role" }, classAttribute: "fd-list__item" }, providers: [
175
179
  {
176
180
  provide: LIST_ITEM_COMPONENT,
177
181
  useExisting: forwardRef(() => ListItemComponent)
@@ -237,6 +241,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
237
241
  }, {
238
242
  type: HostBinding,
239
243
  args: ['class.fd-list__item--unread']
244
+ }], byline: [{
245
+ type: Input
246
+ }, {
247
+ type: HostBinding,
248
+ args: ['class.fd-list__item--byline']
240
249
  }], selectedListItemScreenReaderText: [{
241
250
  type: Input
242
251
  }], navigatedListItemScreenReaderText: [{
@@ -276,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
276
285
  type: HostListener,
277
286
  args: ['focus']
278
287
  }] } });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FB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dUJBQUMsNkJBQTZCO2dCQUsxQyxnQ0FBZ0M7c0JBRC9CLEtBQUs7Z0JBS04saUNBQWlDO3NCQURoQyxLQUFLO2dCQUtOLG1DQUFtQztzQkFEbEMsS0FBSztnQkFLTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsSUFBSTtzQkFESCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFLcEMsS0FBSztzQkFEUixZQUFZO3VCQUFDLHlCQUF5QjtnQkFnQm5DLFFBQVE7c0JBRFgsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBZ0JuQyxjQUFjO3NCQURiLGVBQWU7dUJBQUMsc0JBQXNCO2dCQUt2QyxPQUFPO3NCQUROLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQW9CbkQsS0FBSztzQkFEWixXQUFXO3VCQUFDLFdBQVc7Z0JBa0N4QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQnpCLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50LCBGRF9DSEVDS0JPWF9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2hlY2tib3gnO1xuaW1wb3J0IHsgRkRfUkFESU9fQlVUVE9OX0NPTVBPTkVOVCwgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgTGlzdExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2xpc3QtbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTElTVF9JVEVNX0NPTVBPTkVOVCwgTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTGlzdEZvY3VzSXRlbSB9IGZyb20gJy4uL2xpc3QtZm9jdXMtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQsIEZEX0JVVFRPTl9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTGlzdFVucmVhZEluZGljYXRvciB9IGZyb20gJy4uL2xpc3QtdW5yZWFkLWluZGljYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRkRfTElTVF9MSU5LX0RJUkVDVElWRSwgRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SIH0gZnJvbSAnLi4vdG9rZW5zJztcblxubGV0IGxpc3RJdGVtVW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIGEgbGlzdCBpdGVtLlxuICogVGhlIGxpc3QgaXRlbSBjYW4gY29udGFpbiBwbGFpbiB0ZXh0LCBsaW5rcyBvciBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkTGlzdEl0ZW1dICxbZmQtbGlzdC1pdGVtXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWxpc3RfX2l0ZW0nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTElTVF9JVEVNX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RJdGVtQ29tcG9uZW50KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMaXN0Rm9jdXNJdGVtLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBMaXN0Rm9jdXNJdGVtIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBMaXN0SXRlbUludGVyZmFjZSB7XG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGlzIHNlbGVjdGVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGxpc3QgaXRlbS5cbiAgICAgKiBOb3RlLCB0aGF0IGl0IGlzIGJlaW5nIGNvbWJpbmVkIHdpdGggaW50ZXJuYWwgdmFsdWVzIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgbm8gZGF0YSBpbnNpZGUgbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLW5vLWRhdGEnKVxuICAgIG5vRGF0YSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1hY3Rpb24nKVxuICAgIGFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1pbnRlcnJhY3RpdmUnKVxuICAgIGludGVyYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gY29udGFpbnMgYnVzeSBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tZ3Jvd2luZycpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqIENvdW50ZXIgb24gbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBudW1iZXI7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gc2hvdWxkIGNvbnRhaW4gYWRkaXRpb25hbCB1blJlYWQgc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLXVucmVhZCcpXG4gICAgdW5yZWFkID0gZmFsc2U7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIHNlbGVjdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUZXh0IHRvIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlciBmb3IgbmF2aWdhdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIG5hdmlnYXRhYmxlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGFibGVMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfCBUT0RPIFJldmlzaXQgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSovXG4gICAgQE91dHB1dCgpXG4gICAga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGxpbmsgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWxpbmsnKVxuICAgIGxpbmsgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9SQURJT19CVVRUT05fQ09NUE9ORU5UKVxuICAgIHNldCByYWRpbyh2YWx1ZTogUmFkaW9CdXR0b25Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fcmFkaW8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX3JhZGlvICYmIHRoaXMuX3JhZGlvLnRhYkluZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhZGlvLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHJhZGlvKCk6IFJhZGlvQnV0dG9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGlvO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9DSEVDS0JPWF9DT01QT05FTlQpXG4gICAgc2V0IGNoZWNrYm94KHZhbHVlOiBDaGVja2JveENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLl9jaGVja2JveCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fY2hlY2tib3ggJiYgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja2JveC50YWJJbmRleFZhbHVlID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94KCk6IENoZWNrYm94Q29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9MSVNUX0xJTktfRElSRUNUSVZFKVxuICAgIGxpbmtEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8TGlzdExpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0JVVFRPTl9DT01QT05FTlQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBidXR0b25zOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uTGlua0xpc3RDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tib3g6IENoZWNrYm94Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gZ3JvdXAgaGVhZGVyIGlkLCB0aGF0IGlzIGJlaW5nIHNldCBieSBwYXJlbnQgbGlzdCBjb21wb25lbnQgKi9cbiAgICBfcmVsYXRlZEdyb3VwSGVhZGVySWQ6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwcml2YXRlIF9yb2xlID0gJ2xpc3RpdGVtJzsgLy8gZGVmYXVsdCBmb3IgbGkgZWxlbWVudHNcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3VuaXF1ZUlkID0gJ2ZkLWxpc3QtaXRlbS0nICsgKytsaXN0SXRlbVVuaXF1ZUlkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbGlzdCA9IGluamVjdChGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SKSBwcml2YXRlIHJlYWRvbmx5IF91bnJlYWRJbmRpY2F0b3I/OiBMaXN0VW5yZWFkSW5kaWNhdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpbykge1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5rRGlyZWN0aXZlcy5maXJzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtleURvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5dXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pICYmIHRoaXMubGluaykge1xuICAgICAgICAgICAgY29uc3QgX2FuY2hvckVsZW1lbnQgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmZpcnN0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIF9hbmNob3JFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgX2FuY2hvckVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSGFuZGxlciBmb3IgbW91c2UgZXZlbnRzICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xpY2tlZCQubmV4dChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94ICYmICF0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2JveC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb24gdGhlIGNoZWNrYm94IGlzIG5vdCBzdXBwcmVzc2VkXG4gICAgICAgICAgICAgICAgLy8gc28gd2Ugc2hvdWxkIG9ubHkgcHJvY2VzcyBjbGlja3MgaWYgY2xpY2tlZCBvbiB0aGUgbGlzdC1pdGVtLCBub3QgY2hlY2tib3ggaXRzZWxmXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5uZXh0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yYWRpbyAmJiAhdGhpcy5saW5rKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvLmxhYmVsQ2xpY2tlZChldmVudCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHJpdmF0ZSBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgaW5uZXIgZm9jdXNhYmxlIGxpbmtcbiAgICAgICAgY29uc3QgdGFiYmFibGVMaW5rID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZkLWxpc3RfX2xpbmsuZmQtbGlzdF9fbGluay0tZm9jdXNhYmxlJyk7XG4gICAgICAgIHRhYmJhYmxlTGluaz8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uTGlua1F1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtEaXJlY3RpdmVzLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5saW5rRGlyZWN0aXZlcyksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29uTGlua0xpc3RDaGFuZ2VkJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5saW5rRGlyZWN0aXZlcyAmJiB0aGlzLmxpbmtEaXJlY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JvbGUgPSAnbGluayc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25CdXR0b25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgoMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKHRoaXMuX2FkZENsYXNzVG9CdXR0b25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc1RvQnV0dG9ucyhidXR0b246IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b24uY2xhc3MgKz0gJyBmZC1saXN0X19idXR0b24nO1xuICAgICAgICBidXR0b24uYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICBidXR0b24uZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbXV0ZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tib3ggfHwgcmFkaW9cIj5cbiAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cImZkLWxpc3RfX2Zvcm0taXRlbVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1jaGVja2JveFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtcmFkaW8tYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxzcGFuICpuZ0lmPVwidW5yZWFkICYmICghX2xpc3QgfHwgX2xpc3QuYnlsaW5lKVwiIGNsYXNzPVwic2FwLWljb24tLWNpcmNsZS10YXNrLTIgZmQtbGlzdF9fbm90aWZpY2F0aW9uXCI+PC9zcGFuPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxzcGFuICpuZ0lmPVwiY291bnRlciB8fCBjb3VudGVyID09PSAwXCIgY2xhc3M9XCJmZC1saXN0X19pdGVtLWNvdW50ZXJcIj5cbiAgICB7eyBjb3VudGVyIHwgbnVtYmVyIDogJzEuMC0yJyB9fVxuPC9zcGFuPlxuIl19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FB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SztnQkFNTixNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsNkJBQTZCO2dCQVExQyxNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsNkJBQTZCO2dCQUsxQyxnQ0FBZ0M7c0JBRC9CLEtBQUs7Z0JBS04saUNBQWlDO3NCQURoQyxLQUFLO2dCQUtOLG1DQUFtQztzQkFEbEMsS0FBSztnQkFLTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsSUFBSTtzQkFESCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFLcEMsS0FBSztzQkFEUixZQUFZO3VCQUFDLHlCQUF5QjtnQkFnQm5DLFFBQVE7c0JBRFgsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBZ0JuQyxjQUFjO3NCQURiLGVBQWU7dUJBQUMsc0JBQXNCO2dCQUt2QyxPQUFPO3NCQUROLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQW9CbkQsS0FBSztzQkFEWixXQUFXO3VCQUFDLFdBQVc7Z0JBa0N4QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQnpCLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50LCBGRF9DSEVDS0JPWF9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2hlY2tib3gnO1xuaW1wb3J0IHsgRkRfUkFESU9fQlVUVE9OX0NPTVBPTkVOVCwgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgTGlzdExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2xpc3QtbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTElTVF9JVEVNX0NPTVBPTkVOVCwgTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTGlzdEZvY3VzSXRlbSB9IGZyb20gJy4uL2xpc3QtZm9jdXMtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQsIEZEX0JVVFRPTl9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTGlzdFVucmVhZEluZGljYXRvciB9IGZyb20gJy4uL2xpc3QtdW5yZWFkLWluZGljYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRkRfTElTVF9MSU5LX0RJUkVDVElWRSwgRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SIH0gZnJvbSAnLi4vdG9rZW5zJztcblxubGV0IGxpc3RJdGVtVW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIGEgbGlzdCBpdGVtLlxuICogVGhlIGxpc3QgaXRlbSBjYW4gY29udGFpbiBwbGFpbiB0ZXh0LCBsaW5rcyBvciBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkTGlzdEl0ZW1dICxbZmQtbGlzdC1pdGVtXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWxpc3RfX2l0ZW0nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTElTVF9JVEVNX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RJdGVtQ29tcG9uZW50KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMaXN0Rm9jdXNJdGVtLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBMaXN0Rm9jdXNJdGVtIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBMaXN0SXRlbUludGVyZmFjZSB7XG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGlzIHNlbGVjdGVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGxpc3QgaXRlbS5cbiAgICAgKiBOb3RlLCB0aGF0IGl0IGlzIGJlaW5nIGNvbWJpbmVkIHdpdGggaW50ZXJuYWwgdmFsdWVzIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgbm8gZGF0YSBpbnNpZGUgbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLW5vLWRhdGEnKVxuICAgIG5vRGF0YSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1hY3Rpb24nKVxuICAgIGFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1pbnRlcnJhY3RpdmUnKVxuICAgIGludGVyYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gY29udGFpbnMgYnVzeSBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tZ3Jvd2luZycpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqIENvdW50ZXIgb24gbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBudW1iZXI7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gc2hvdWxkIGNvbnRhaW4gYWRkaXRpb25hbCB1blJlYWQgc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLXVucmVhZCcpXG4gICAgdW5yZWFkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW0gaXMgYnlsaW5lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWJ5bGluZScpXG4gICAgYnlsaW5lID0gZmFsc2U7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIHNlbGVjdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUZXh0IHRvIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlciBmb3IgbmF2aWdhdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIG5hdmlnYXRhYmxlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGFibGVMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfCBUT0RPIFJldmlzaXQgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSovXG4gICAgQE91dHB1dCgpXG4gICAga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGxpbmsgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWxpbmsnKVxuICAgIGxpbmsgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9SQURJT19CVVRUT05fQ09NUE9ORU5UKVxuICAgIHNldCByYWRpbyh2YWx1ZTogUmFkaW9CdXR0b25Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fcmFkaW8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX3JhZGlvICYmIHRoaXMuX3JhZGlvLnRhYkluZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhZGlvLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHJhZGlvKCk6IFJhZGlvQnV0dG9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGlvO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9DSEVDS0JPWF9DT01QT05FTlQpXG4gICAgc2V0IGNoZWNrYm94KHZhbHVlOiBDaGVja2JveENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLl9jaGVja2JveCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fY2hlY2tib3ggJiYgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja2JveC50YWJJbmRleFZhbHVlID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94KCk6IENoZWNrYm94Q29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9MSVNUX0xJTktfRElSRUNUSVZFKVxuICAgIGxpbmtEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8TGlzdExpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0JVVFRPTl9DT01QT05FTlQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBidXR0b25zOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uTGlua0xpc3RDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tib3g6IENoZWNrYm94Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gZ3JvdXAgaGVhZGVyIGlkLCB0aGF0IGlzIGJlaW5nIHNldCBieSBwYXJlbnQgbGlzdCBjb21wb25lbnQgKi9cbiAgICBfcmVsYXRlZEdyb3VwSGVhZGVySWQ6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwcml2YXRlIF9yb2xlID0gJ2xpc3RpdGVtJzsgLy8gZGVmYXVsdCBmb3IgbGkgZWxlbWVudHNcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3VuaXF1ZUlkID0gJ2ZkLWxpc3QtaXRlbS0nICsgKytsaXN0SXRlbVVuaXF1ZUlkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbGlzdCA9IGluamVjdChGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SKSBwcml2YXRlIHJlYWRvbmx5IF91bnJlYWRJbmRpY2F0b3I/OiBMaXN0VW5yZWFkSW5kaWNhdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpbykge1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5rRGlyZWN0aXZlcy5maXJzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtleURvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5dXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pICYmIHRoaXMubGluaykge1xuICAgICAgICAgICAgY29uc3QgX2FuY2hvckVsZW1lbnQgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmZpcnN0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIF9hbmNob3JFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgX2FuY2hvckVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSGFuZGxlciBmb3IgbW91c2UgZXZlbnRzICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xpY2tlZCQubmV4dChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94ICYmICF0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2JveC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb24gdGhlIGNoZWNrYm94IGlzIG5vdCBzdXBwcmVzc2VkXG4gICAgICAgICAgICAgICAgLy8gc28gd2Ugc2hvdWxkIG9ubHkgcHJvY2VzcyBjbGlja3MgaWYgY2xpY2tlZCBvbiB0aGUgbGlzdC1pdGVtLCBub3QgY2hlY2tib3ggaXRzZWxmXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5uZXh0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yYWRpbyAmJiAhdGhpcy5saW5rKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvLmxhYmVsQ2xpY2tlZChldmVudCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHJpdmF0ZSBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgaW5uZXIgZm9jdXNhYmxlIGxpbmtcbiAgICAgICAgY29uc3QgdGFiYmFibGVMaW5rID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZkLWxpc3RfX2xpbmsuZmQtbGlzdF9fbGluay0tZm9jdXNhYmxlJyk7XG4gICAgICAgIHRhYmJhYmxlTGluaz8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uTGlua1F1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtEaXJlY3RpdmVzLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5saW5rRGlyZWN0aXZlcyksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29uTGlua0xpc3RDaGFuZ2VkJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5saW5rRGlyZWN0aXZlcyAmJiB0aGlzLmxpbmtEaXJlY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JvbGUgPSAnbGluayc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25CdXR0b25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgoMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKHRoaXMuX2FkZENsYXNzVG9CdXR0b25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc1RvQnV0dG9ucyhidXR0b246IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b24uY2xhc3MgKz0gJyBmZC1saXN0X19idXR0b24nO1xuICAgICAgICBidXR0b24uYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICBidXR0b24uZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbXV0ZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tib3ggfHwgcmFkaW9cIj5cbiAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cImZkLWxpc3RfX2Zvcm0taXRlbVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1jaGVja2JveFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtcmFkaW8tYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxzcGFuICpuZ0lmPVwidW5yZWFkICYmICghX2xpc3QgfHwgX2xpc3QuYnlsaW5lKVwiIGNsYXNzPVwic2FwLWljb24tLWNpcmNsZS10YXNrLTIgZmQtbGlzdF9fbm90aWZpY2F0aW9uXCI+PC9zcGFuPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxzcGFuICpuZ0lmPVwiY291bnRlciB8fCBjb3VudGVyID09PSAwXCIgY2xhc3M9XCJmZC1saXN0X19pdGVtLWNvdW50ZXJcIj5cbiAgICB7eyBjb3VudGVyIHwgbnVtYmVyIDogJzEuMC0yJyB9fVxuPC9zcGFuPlxuIl19
@@ -126,10 +126,10 @@ 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 fd-initial-focus\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: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i3.DeprecatedInitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]" }, { 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]", 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
- 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 fd-initial-focus\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" }]
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" }]
133
133
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DialogService }, { type: i2.MenuService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i3.RtlService, decorators: [{
134
134
  type: Optional
135
135
  }] }, { type: undefined, decorators: [{
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
147
147
  type: ViewChild,
148
148
  args: [DialogBodyComponent]
149
149
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1tb2JpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbWVudS9tZW51LW1vYmlsZS9tZW51LW1vYmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9tZW51L21lbnUtbW9iaWxlL21lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFHTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xGLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxpQkFBaUIsRUFFcEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBNkI7SUFtQmxFLGNBQWM7SUFDZCxJQUNJLE1BQU0sQ0FBQyxXQUFnQztRQUN2QyxJQUFJLFdBQVcsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtC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QTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQW1CdkIsTUFBTTtzQkFEVCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxvZ0JvZHlDb21wb25lbnQsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTUVOVV9DT01QT05FTlQsIE1lbnVJbnRlcmZhY2UgfSBmcm9tICcuLi9tZW51LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIE1PQklMRV9NT0RFX0NPTkZJRyxcbiAgICBNb2JpbGVNb2RlQmFzZSxcbiAgICBNb2JpbGVNb2RlQ29udHJvbCxcbiAgICBNb2JpbGVNb2RlQ29uZmlnVG9rZW5cbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1tZW51LW1vYmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVNb2JpbGVDb21wb25lbnQgZXh0ZW5kcyBNb2JpbGVNb2RlQmFzZTxNZW51SW50ZXJmYWNlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VycmVudCBtZW51IHRpdGxlICovXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIGN1cnJlbnQgbWVudSBsZXZlbCBpcyBzdWJtZW51ICovXG4gICAgaXNTdWJtZW51OiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gRXh0ZXJuYWwgY29udGVudCAqL1xuICAgIGNoaWxkQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuIEN1cnJlbnRseSByZW5kZXJlZCBtZW51IHZpZXcgKi9cbiAgICB2aWV3OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gTmF2aWdhdGlvbiBpY29uIG5hbWUgYmFzZWQgb24gUlRMICovXG4gICAgbmF2aWdhdGlvbkljb24kOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoRGlhbG9nQm9keUNvbXBvbmVudClcbiAgICBzZXQgX3dhdGNoKF9kaWFsb2dCb2R5OiBEaWFsb2dCb2R5Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChfZGlhbG9nQm9keSkge1xuICAgICAgICAgICAgdGhpcy5fbWVudVNlcnZpY2UuYWRkS2V5Ym9hcmRTdXBwb3J0KF9kaWFsb2dCb2R5LmVsZW1lbnRSZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE1FTlVfQ09NUE9ORU5UKSBtZW51Q29tcG9uZW50OiBNZW51SW50ZXJmYWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1PQklMRV9NT0RFX0NPTkZJRykgbW9iaWxlTW9kZXM6IE1vYmlsZU1vZGVDb25maWdUb2tlbltdXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRpYWxvZ1NlcnZpY2UsIG1lbnVDb21wb25lbnQsIE1vYmlsZU1vZGVDb250cm9sLk1FTlUsIG1vYmlsZU1vZGVzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkFjdGl2ZVBhdGhDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25NZW51T3BlbkNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PblRleHREaXJlY3Rpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2VzIHRoZSBEaWFsb2cgYW5kIE1lbnUgY29tcG9uZW50ICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBOYXZpZ2F0ZSBiYWNrIHRvIHBhcmVudCBsZXZlbCBvZiBzdWJtZW51ICovXG4gICAgYmFja1RvUGFyZW50TGV2ZWwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudVNlcnZpY2UuYWN0aXZlTm9kZVBhdGhbdGhpcy5fbWVudVNlcnZpY2UuYWN0aXZlTm9kZVBhdGgubGVuZ3RoIC0gMV0uaXRlbTtcbiAgICAgICAgdGhpcy5fbWVudVNlcnZpY2Uuc2V0QWN0aXZlKGZhbHNlLCBtZW51SXRlbSk7XG4gICAgICAgIHRoaXMuX2V4ZWN1dGVPblN0YWJsZSgoKSA9PiB7XG4gICAgICAgICAgICBtZW51SXRlbT8uZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gT3BlbnMgdGhlIERpYWxvZyAqL1xuICAgIHByaXZhdGUgX29wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLnRoaXMuZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgZXNjS2V5Q2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTGlzdGVucyBvbiBBY3RpdmUgUGF0aCBjaGFuZ2VzIGFuZCB1cGRhdGVzIG1vYmlsZSB2aWV3ICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25BY3RpdmVQYXRoQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbml0aWFsSXRlbVBhdGg6IE1lbnVJdGVtQ29tcG9uZW50W10gPSB0aGlzLl9tZW51U2VydmljZS5hY3RpdmVOb2RlUGF0aFxuICAgICAgICAgICAgLm1hcCgobm9kZSkgPT4gbm9kZS5pdGVtKVxuICAgICAgICAgICAgLmZpbHRlcigodik6IHYgaXMgTWVudUl0ZW1Db21wb25lbnQgPT4gISF2KTtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50LmFjdGl2ZVBhdGhcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgc3RhcnRXaXRoKGluaXRpYWxJdGVtUGF0aCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtcykgPT4gdGhpcy5fc2V0TWVudVZpZXcoaXRlbXMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aGVuIHRoZSB6b25lIGlzIHN0YWJsZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9leGVjdXRlT25TdGFibGUoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fbmdab25lLmlzU3RhYmxlKSB7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNldHMgbWVudSB2aWV3LCB0aXRsZSBhbmQgaXNTdWJtZW51IGZsYWcgKi9cbiAgICBwcml2YXRlIF9zZXRNZW51VmlldyhpdGVtczogTWVudUl0ZW1Db21wb25lbnRbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0SXRlbTogTWVudUl0ZW1Db21wb25lbnQgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgdGhpcy5pc1N1Ym1lbnUgPSAhIWl0ZW1zLmxlbmd0aDtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuX2dldERpYWxvZ1RpdGxlKGxhc3RJdGVtKTtcbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy5fZ2V0TWVudVZpZXcobGFzdEl0ZW0pO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21lbnVTZXJ2aWNlLmZvY3VzZWROb2RlPy5pdGVtPy5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBPcGVucy9jbG9zZXMgdGhlIERpYWxvZyBiYXNlZCBvbiBNZW51IGlzT3BlbkNoYW5nZSBldmVudHMgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbk1lbnVPcGVuQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuaXNPcGVuQ2hhbmdlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc09wZW4pID0+IChpc09wZW4gPyB0aGlzLl9vcGVuRGlhbG9nKCkgOiB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gU2V0cyBuYXZpZ2F0aW9uIGFycm93IGRlcGVuZGluZyBvbiB0ZXh0IGRpcmVjdGlvbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uVGV4dERpcmVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uSWNvbiQgPSB0aGlzLl9ydGxTZXJ2aWNlXG4gICAgICAgICAgICA/IHRoaXMuX3J0bFNlcnZpY2UucnRsLnBpcGUobWFwKChpc1J0bCkgPT4gKGlzUnRsID8gJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnIDogJ25hdmlnYXRpb24tbGVmdC1hcnJvdycpKSlcbiAgICAgICAgICAgIDogb2YoJ25hdmlnYXRpb24tbGVmdC1hcnJvdycpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFJldHVybnMgZGlhbG9nIHRpdGxlICovXG4gICAgcHJpdmF0ZSBfZ2V0RGlhbG9nVGl0bGUobWVudUl0ZW06IE1lbnVJdGVtQ29tcG9uZW50KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdWJtZW51KSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0ubWVudUl0ZW1UaXRsZSA/IG1lbnVJdGVtLm1lbnVJdGVtVGl0bGUudGl0bGUgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1vYmlsZUNvbmZpZy50aXRsZSB8fCAnJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIGRpYWxvZyBjb250ZW50IHZpZXcgKi9cbiAgICBwcml2YXRlIF9nZXRNZW51VmlldyhtZW51SXRlbTogTWVudUl0ZW1Db21wb25lbnQpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdWJtZW51KSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0uc3VibWVudSA/IG1lbnVJdGVtLnN1Ym1lbnUudGVtcGxhdGVSZWYgOiB0aGlzLnZpZXc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRDb250ZW50O1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjZGlhbG9nVGVtcGxhdGU+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50ICpuZ0lmPVwiaXNTdWJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1tb2JpbGUtbmF2aWdhdGUtYmFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRDb3p5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInR28gdG8gcHJldmlvdXMgbWVudSBsZXZlbDogJyArIHRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkljb24kIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrVG9QYXJlbnRMZXZlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlPnt7IHRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5tb2JpbGVDb25maWcuaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9iaWxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGlzU3VibWVudSA/IHN1Yk1lbnVUZW1wbGF0ZSA6IHZpZXcpIHx8IG51bGxcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgKm5nSWY9XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgfHwgbW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHRcIj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgICAgZmQtaW5pdGlhbC1mb2N1c1xuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N1Yk1lbnVUZW1wbGF0ZT5cbiAgICA8bmF2IGNsYXNzPVwiZmQtbWVudSBmZC1tZW51LS1tb2JpbGVcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZmQtbWVudV9fc3VibGlzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZpZXcgfHwgbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvbmF2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1tb2JpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbWVudS9tZW51LW1vYmlsZS9tZW51LW1vYmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9tZW51L21lbnUtbW9iaWxlL21lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFHTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xGLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxpQkFBaUIsRUFFcEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBNkI7SUFtQmxFLGNBQWM7SUFDZCxJQUNJLE1BQU0sQ0FBQyxXQUFnQztRQUN2QyxJQUFJLFdBQVcsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtC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QTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQW1CdkIsTUFBTTtzQkFEVCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxvZ0JvZHlDb21wb25lbnQsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTUVOVV9DT01QT05FTlQsIE1lbnVJbnRlcmZhY2UgfSBmcm9tICcuLi9tZW51LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIE1PQklMRV9NT0RFX0NPTkZJRyxcbiAgICBNb2JpbGVNb2RlQmFzZSxcbiAgICBNb2JpbGVNb2RlQ29udHJvbCxcbiAgICBNb2JpbGVNb2RlQ29uZmlnVG9rZW5cbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1tZW51LW1vYmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVNb2JpbGVDb21wb25lbnQgZXh0ZW5kcyBNb2JpbGVNb2RlQmFzZTxNZW51SW50ZXJmYWNlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VycmVudCBtZW51IHRpdGxlICovXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIGN1cnJlbnQgbWVudSBsZXZlbCBpcyBzdWJtZW51ICovXG4gICAgaXNTdWJtZW51OiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gRXh0ZXJuYWwgY29udGVudCAqL1xuICAgIGNoaWxkQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuIEN1cnJlbnRseSByZW5kZXJlZCBtZW51IHZpZXcgKi9cbiAgICB2aWV3OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gTmF2aWdhdGlvbiBpY29uIG5hbWUgYmFzZWQgb24gUlRMICovXG4gICAgbmF2aWdhdGlvbkljb24kOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoRGlhbG9nQm9keUNvbXBvbmVudClcbiAgICBzZXQgX3dhdGNoKF9kaWFsb2dCb2R5OiBEaWFsb2dCb2R5Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChfZGlhbG9nQm9keSkge1xuICAgICAgICAgICAgdGhpcy5fbWVudVNlcnZpY2UuYWRkS2V5Ym9hcmRTdXBwb3J0KF9kaWFsb2dCb2R5LmVsZW1lbnRSZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE1FTlVfQ09NUE9ORU5UKSBtZW51Q29tcG9uZW50OiBNZW51SW50ZXJmYWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1PQklMRV9NT0RFX0NPTkZJRykgbW9iaWxlTW9kZXM6IE1vYmlsZU1vZGVDb25maWdUb2tlbltdXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRpYWxvZ1NlcnZpY2UsIG1lbnVDb21wb25lbnQsIE1vYmlsZU1vZGVDb250cm9sLk1FTlUsIG1vYmlsZU1vZGVzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkFjdGl2ZVBhdGhDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25NZW51T3BlbkNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PblRleHREaXJlY3Rpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2VzIHRoZSBEaWFsb2cgYW5kIE1lbnUgY29tcG9uZW50ICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBOYXZpZ2F0ZSBiYWNrIHRvIHBhcmVudCBsZXZlbCBvZiBzdWJtZW51ICovXG4gICAgYmFja1RvUGFyZW50TGV2ZWwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5fbWVudVNlcnZpY2UuYWN0aXZlTm9kZVBhdGhbdGhpcy5fbWVudVNlcnZpY2UuYWN0aXZlTm9kZVBhdGgubGVuZ3RoIC0gMV0uaXRlbTtcbiAgICAgICAgdGhpcy5fbWVudVNlcnZpY2Uuc2V0QWN0aXZlKGZhbHNlLCBtZW51SXRlbSk7XG4gICAgICAgIHRoaXMuX2V4ZWN1dGVPblN0YWJsZSgoKSA9PiB7XG4gICAgICAgICAgICBtZW51SXRlbT8uZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gT3BlbnMgdGhlIERpYWxvZyAqL1xuICAgIHByaXZhdGUgX29wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLnRoaXMuZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgZXNjS2V5Q2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTGlzdGVucyBvbiBBY3RpdmUgUGF0aCBjaGFuZ2VzIGFuZCB1cGRhdGVzIG1vYmlsZSB2aWV3ICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25BY3RpdmVQYXRoQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbml0aWFsSXRlbVBhdGg6IE1lbnVJdGVtQ29tcG9uZW50W10gPSB0aGlzLl9tZW51U2VydmljZS5hY3RpdmVOb2RlUGF0aFxuICAgICAgICAgICAgLm1hcCgobm9kZSkgPT4gbm9kZS5pdGVtKVxuICAgICAgICAgICAgLmZpbHRlcigodik6IHYgaXMgTWVudUl0ZW1Db21wb25lbnQgPT4gISF2KTtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50LmFjdGl2ZVBhdGhcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgc3RhcnRXaXRoKGluaXRpYWxJdGVtUGF0aCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtcykgPT4gdGhpcy5fc2V0TWVudVZpZXcoaXRlbXMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aGVuIHRoZSB6b25lIGlzIHN0YWJsZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9leGVjdXRlT25TdGFibGUoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fbmdab25lLmlzU3RhYmxlKSB7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNldHMgbWVudSB2aWV3LCB0aXRsZSBhbmQgaXNTdWJtZW51IGZsYWcgKi9cbiAgICBwcml2YXRlIF9zZXRNZW51VmlldyhpdGVtczogTWVudUl0ZW1Db21wb25lbnRbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0SXRlbTogTWVudUl0ZW1Db21wb25lbnQgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgdGhpcy5pc1N1Ym1lbnUgPSAhIWl0ZW1zLmxlbmd0aDtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuX2dldERpYWxvZ1RpdGxlKGxhc3RJdGVtKTtcbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy5fZ2V0TWVudVZpZXcobGFzdEl0ZW0pO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21lbnVTZXJ2aWNlLmZvY3VzZWROb2RlPy5pdGVtPy5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBPcGVucy9jbG9zZXMgdGhlIERpYWxvZyBiYXNlZCBvbiBNZW51IGlzT3BlbkNoYW5nZSBldmVudHMgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbk1lbnVPcGVuQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuaXNPcGVuQ2hhbmdlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc09wZW4pID0+IChpc09wZW4gPyB0aGlzLl9vcGVuRGlhbG9nKCkgOiB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gU2V0cyBuYXZpZ2F0aW9uIGFycm93IGRlcGVuZGluZyBvbiB0ZXh0IGRpcmVjdGlvbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uVGV4dERpcmVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uSWNvbiQgPSB0aGlzLl9ydGxTZXJ2aWNlXG4gICAgICAgICAgICA/IHRoaXMuX3J0bFNlcnZpY2UucnRsLnBpcGUobWFwKChpc1J0bCkgPT4gKGlzUnRsID8gJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnIDogJ25hdmlnYXRpb24tbGVmdC1hcnJvdycpKSlcbiAgICAgICAgICAgIDogb2YoJ25hdmlnYXRpb24tbGVmdC1hcnJvdycpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFJldHVybnMgZGlhbG9nIHRpdGxlICovXG4gICAgcHJpdmF0ZSBfZ2V0RGlhbG9nVGl0bGUobWVudUl0ZW06IE1lbnVJdGVtQ29tcG9uZW50KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdWJtZW51KSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0ubWVudUl0ZW1UaXRsZSA/IG1lbnVJdGVtLm1lbnVJdGVtVGl0bGUudGl0bGUgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1vYmlsZUNvbmZpZy50aXRsZSB8fCAnJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIGRpYWxvZyBjb250ZW50IHZpZXcgKi9cbiAgICBwcml2YXRlIF9nZXRNZW51VmlldyhtZW51SXRlbTogTWVudUl0ZW1Db21wb25lbnQpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdWJtZW51KSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0uc3VibWVudSA/IG1lbnVJdGVtLnN1Ym1lbnUudGVtcGxhdGVSZWYgOiB0aGlzLnZpZXc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRDb250ZW50O1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjZGlhbG9nVGVtcGxhdGU+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50ICpuZ0lmPVwiaXNTdWJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1tb2JpbGUtbmF2aWdhdGUtYmFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRDb3p5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInR28gdG8gcHJldmlvdXMgbWVudSBsZXZlbDogJyArIHRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkljb24kIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrVG9QYXJlbnRMZXZlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlPnt7IHRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5tb2JpbGVDb25maWcuaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9iaWxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGlzU3VibWVudSA/IHN1Yk1lbnVUZW1wbGF0ZSA6IHZpZXcpIHx8IG51bGxcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgKm5nSWY9XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgfHwgbW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHRcIj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIm1vYmlsZUNvbmZpZy5jYW5jZWxCdXR0b25UZXh0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3ViTWVudVRlbXBsYXRlPlxuICAgIDxuYXYgY2xhc3M9XCJmZC1tZW51IGZkLW1lbnUtLW1vYmlsZVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJmZC1tZW51X19zdWJsaXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlldyB8fCBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9uYXY+XG48L25nLXRlbXBsYXRlPlxuIl19