@skyux/flyout 6.0.0-beta.6 → 6.0.0-beta.7

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.
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
52
52
  }], nextButtonClick: [{
53
53
  type: Output
54
54
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LWl0ZXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvZmx5b3V0L2ZseW91dC1pdGVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRS9COztHQUVHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQXNCVSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFOUIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU1Qyx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBc0J6RDtJQXBDQyxJQUNXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFDVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFRTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDOzt1SEExQ1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsZ1FDbEJ2Qyx5dkNBMENBOzJGRHhCYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQU14QixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlLLG1CQUFtQjtzQkFEN0IsTUFBTTtnQkFNSSxlQUFlO3NCQUR6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWZseW91dC1pdGVyYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rmx5b3V0SXRlcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgbmV4dEJ1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmV2aW91c0J1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHByZXZpb3VzQnV0dG9uQ2xpY2soKTogRXZlbnRFbWl0dGVyPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNCdXR0b25DbGljaztcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IG5leHRCdXR0b25DbGljaygpOiBFdmVudEVtaXR0ZXI8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9uZXh0QnV0dG9uQ2xpY2s7XG4gIH1cblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX25leHRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIF9wcmV2aW91c0J1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3ByZXZpb3VzQnV0dG9uQ2xpY2suY29tcGxldGUoKTtcbiAgICB0aGlzLl9uZXh0QnV0dG9uQ2xpY2suY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZXJhdG9yUHJldmlvdXNDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9wcmV2aW91c0J1dHRvbkNsaWNrLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVyYXRvck5leHRDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5uZXh0QnV0dG9uRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX25leHRCdXR0b25DbGljay5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGlkPVwiaXRlcmF0b3JzXCIgY2xhc3M9XCJza3ktZmx5b3V0LWl0ZXJhdG9yc1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJza3ktYnRuXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreXV4X2ZseW91dF9pdGVyYXRvcl9wcmV2aW91c19idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwicHJldmlvdXNCdXR0b25EaXNhYmxlZFwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1idG4tZGVmYXVsdCBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0JzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybidcbiAgICB9XCJcbiAgICAoY2xpY2spPVwib25JdGVyYXRvclByZXZpb3VzQ2xpY2soKVwiXG4gID5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiY2hldnJvbi11cFwiPiA8L3NreS1pY29uPlxuICAgIDxza3ktaWNvblxuICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICBpY29uPVwiY2hldnJvbi11cFwiXG4gICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgIHNpemU9XCJsZ1wiXG4gICAgPlxuICAgIDwvc2t5LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJza3ktYnRuXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9mbHlvdXRfaXRlcmF0b3JfbmV4dF9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICBbZGlzYWJsZWRdPVwibmV4dEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAnc2t5LWJ0bi1kZWZhdWx0IHNreS1tYXJnaW4taW5saW5lLWNvbXBhY3QnOiAnZGVmYXVsdCcsXG4gICAgICAnc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LW1hcmdpbi1pbmxpbmUtc20nOiAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIChjbGljayk9XCJvbkl0ZXJhdG9yTmV4dENsaWNrKClcIlxuICA+XG4gICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNoZXZyb24tZG93blwiPiA8L3NreS1pY29uPlxuICAgIDxza3ktaWNvblxuICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgc2l6ZT1cImxnXCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LWl0ZXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvZmx5b3V0L2ZseW91dC1pdGVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRS9COztHQUVHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQXNCVSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU1Qyx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBc0J6RDtJQXBDQyxJQUNXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFDVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFRTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDOzt1SEExQ1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsZ1FDbEJ2Qyx5dkNBMENBOzJGRHhCYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQU14QixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlLLG1CQUFtQjtzQkFEN0IsTUFBTTtnQkFNSSxlQUFlO3NCQUR6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWZseW91dC1pdGVyYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rmx5b3V0SXRlcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgbmV4dEJ1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmV2aW91c0J1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHByZXZpb3VzQnV0dG9uQ2xpY2soKTogRXZlbnRFbWl0dGVyPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNCdXR0b25DbGljaztcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IG5leHRCdXR0b25DbGljaygpOiBFdmVudEVtaXR0ZXI8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9uZXh0QnV0dG9uQ2xpY2s7XG4gIH1cblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX25leHRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIF9wcmV2aW91c0J1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3ByZXZpb3VzQnV0dG9uQ2xpY2suY29tcGxldGUoKTtcbiAgICB0aGlzLl9uZXh0QnV0dG9uQ2xpY2suY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZXJhdG9yUHJldmlvdXNDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9wcmV2aW91c0J1dHRvbkNsaWNrLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVyYXRvck5leHRDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5uZXh0QnV0dG9uRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX25leHRCdXR0b25DbGljay5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGlkPVwiaXRlcmF0b3JzXCIgY2xhc3M9XCJza3ktZmx5b3V0LWl0ZXJhdG9yc1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJza3ktYnRuXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgJ3NreXV4X2ZseW91dF9pdGVyYXRvcl9wcmV2aW91c19idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwicHJldmlvdXNCdXR0b25EaXNhYmxlZFwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1idG4tZGVmYXVsdCBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0JzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybidcbiAgICB9XCJcbiAgICAoY2xpY2spPVwib25JdGVyYXRvclByZXZpb3VzQ2xpY2soKVwiXG4gID5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiY2hldnJvbi11cFwiPiA8L3NreS1pY29uPlxuICAgIDxza3ktaWNvblxuICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICBpY29uPVwiY2hldnJvbi11cFwiXG4gICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgIHNpemU9XCJsZ1wiXG4gICAgPlxuICAgIDwvc2t5LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJza3ktYnRuXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9mbHlvdXRfaXRlcmF0b3JfbmV4dF9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICBbZGlzYWJsZWRdPVwibmV4dEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAnc2t5LWJ0bi1kZWZhdWx0IHNreS1tYXJnaW4taW5saW5lLWNvbXBhY3QnOiAnZGVmYXVsdCcsXG4gICAgICAnc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LW1hcmdpbi1pbmxpbmUtc20nOiAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIChjbGljayk9XCJvbkl0ZXJhdG9yTmV4dENsaWNrKClcIlxuICA+XG4gICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNoZXZyb24tZG93blwiPiA8L3NreS1pY29uPlxuICAgIDxza3ktaWNvblxuICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgc2l6ZT1cImxnXCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -483,4 +483,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
483
483
  type: HostListener,
484
484
  args: ['window:resize', ['$event']]
485
485
  }] } });
486
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC9mbHlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvZmx5b3V0L2ZseW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxx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QiwwQkFBMEI7d0JBQzFCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRTtxQkFDM0UsY0FDVzt3QkFDVixPQUFPLENBQUMsYUFBYSxFQUFFOzRCQUNyQixLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7NEJBQ3pELEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDOzRCQUNwRSxVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztnQ0FDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3lCQUNoRCxDQUFDO3FCQUNILG1CQUVnQix1QkFBdUIsQ0FBQyxPQUFPO3lXQXdFekMsU0FBUztzQkFKZixTQUFTO3VCQUFDLFdBQVcsRUFBRTt3QkFDdEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9PLE1BQU07c0JBSmIsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9PLFlBQVk7c0JBSm5CLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBc0NNLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQW5pbWF0aW9uRXZlbnQsXG4gIGFuaW1hdGUsXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVVJQ29uZmlnU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rmx5b3V0QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2ZseW91dC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0SW5zdGFuY2UgfSBmcm9tICcuL2ZseW91dC1pbnN0YW5jZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZWRpYVF1ZXJ5U2VydmljZSB9IGZyb20gJy4vZmx5b3V0LW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0QWN0aW9uIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtYWN0aW9uJztcbmltcG9ydCB7IFNreUZseW91dEJlZm9yZUNsb3NlSGFuZGxlciB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LWJlZm9yZS1jbG9zZS1oYW5kbGVyJztcbmltcG9ydCB7IFNreUZseW91dENvbmZpZyB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZXNzYWdlIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LW1lc3NhZ2UtdHlwZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRQZXJtYWxpbmsgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1wZXJtYWxpbmsnO1xuXG5jb25zdCBGTFlPVVRfT1BFTl9TVEFURSA9ICdmbHlvdXRPcGVuJztcbmNvbnN0IEZMWU9VVF9DTE9TRURfU1RBVEUgPSAnZmx5b3V0Q2xvc2VkJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1mbHlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmx5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmx5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUZseW91dEFkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreUZseW91dE1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBTa3lGbHlvdXRNZWRpYVF1ZXJ5U2VydmljZSB9LFxuICBdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmx5b3V0U3RhdGUnLCBbXG4gICAgICBzdGF0ZShGTFlPVVRfT1BFTl9TVEFURSwgc3R5bGUoeyB0cmFuc2Zvcm06ICdpbml0aWFsJyB9KSksXG4gICAgICBzdGF0ZShGTFlPVVRfQ0xPU0VEX1NUQVRFLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgyNTApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKGAqIDw9PiAqYCwgYW5pbWF0ZSgnMjUwbXMgZWFzZS1pbicpKSxcbiAgICBdKSxcbiAgXSxcbiAgLy8gQWxsb3cgYXV0b21hdGljIGNoYW5nZSBkZXRlY3Rpb24gZm9yIGNoaWxkIGNvbXBvbmVudHMuXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rmx5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBwdWJsaWMgY29uZmlnOiBTa3lGbHlvdXRDb25maWc7XG4gIHB1YmxpYyBlbmFibGVUcmFwRm9jdXM6IGJvb2xlYW47XG4gIHB1YmxpYyBlbmFibGVUcmFwRm9jdXNBdXRvQ2FwdHVyZTogYm9vbGVhbjtcbiAgcHVibGljIGZseW91dElkID0gYHNreS1mbHlvdXQtJHsrK25leHRJZH1gO1xuICBwdWJsaWMgZmx5b3V0U3RhdGUgPSBGTFlPVVRfQ0xPU0VEX1NUQVRFO1xuICBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XG4gIHB1YmxpYyBpc09wZW5pbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgZmx5b3V0V2lkdGggPSAwO1xuICBwdWJsaWMgaW5zdGFuY2VSZWFkeSA9IGZhbHNlO1xuICBwdWJsaWMgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICBwdWJsaWMgaXNGdWxsc2NyZWVuID0gZmFsc2U7XG4gIHB1YmxpYyByZXNpemVLZXlDb250cm9sQWN0aXZlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB4Q29vcmQgPSAwO1xuICBwcml2YXRlIHdpbmRvd0J1ZmZlclNpemUgPSAyMDtcblxuICBwdWJsaWMgZ2V0IG1lc3NhZ2VTdHJlYW0oKTogU3ViamVjdDxTa3lGbHlvdXRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VTdHJlYW07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcm1hbGluaygpOiBTa3lGbHlvdXRQZXJtYWxpbmsge1xuICAgIGNvbnN0IHBlcm1hbGluayA9IHRoaXMuY29uZmlnLnBlcm1hbGluaztcbiAgICBpZiAocGVybWFsaW5rKSB7XG4gICAgICByZXR1cm4gcGVybWFsaW5rO1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVybWFsaW5rTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wZXJtYWxpbmsubGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnBlcm1hbGluay5sYWJlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ3NreXV4X2ZseW91dF9wZXJtYWxpbmtfYnV0dG9uJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaW1hcnlBY3Rpb24oKTogU2t5Rmx5b3V0QWN0aW9uIHtcbiAgICBjb25zdCBwcmltYXJ5QWN0aW9uID0gdGhpcy5jb25maWcucHJpbWFyeUFjdGlvbjtcbiAgICBpZiAocHJpbWFyeUFjdGlvbikge1xuICAgICAgcmV0dXJuIHByaW1hcnlBY3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBwcmltYXJ5QWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb25maWcucHJpbWFyeUFjdGlvbiAmJiB0aGlzLmNvbmZpZy5wcmltYXJ5QWN0aW9uLmxhYmVsKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcucHJpbWFyeUFjdGlvbi5sYWJlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ3NreXV4X2ZseW91dF9wcmltYXJ5X2FjdGlvbl9idXR0b24nKTtcbiAgfVxuXG4gIHB1YmxpYyB0aGVtZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgd2lkdGhTdGVwID0gMTA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQFZpZXdDaGlsZCgnZmx5b3V0UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgZmx5b3V0UmVmOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZmx5b3V0SGVhZGVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIGZseW91dEhlYWRlcjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGZseW91dEluc3RhbmNlOiBTa3lGbHlvdXRJbnN0YW5jZTxhbnk+O1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUZseW91dE1lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lGbHlvdXRBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmx5b3V0TWVkaWFRdWVyeVNlcnZpY2U6IFNreUZseW91dE1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHVpQ29uZmlnU2VydmljZTogU2t5VUlDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lXG4gICkge1xuICAgIC8vIEFsbCBjb21tYW5kcyBmbG93IHRocm91Z2ggdGhlIG1lc3NhZ2Ugc3RyZWFtLlxuICAgIHRoaXMubWVzc2FnZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lGbHlvdXRNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRhcHRlci5hZGp1c3RIZWFkZXJGb3JIZWxwKHRoaXMuZmx5b3V0SGVhZGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5mbHlvdXRNZWRpYVF1ZXJ5U2VydmljZS5pc1dpZHRoV2l0aGluQnJlYWtwaW9udChcbiAgICAgICAgZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgsXG4gICAgICAgIFNreU1lZGlhQnJlYWtwb2ludHMueHNcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyhldmVudC50YXJnZXQuaW5uZXJXaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmZseW91dFdpZHRoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZ1bGxzY3JlZW4oKTtcblxuICAgIGlmIChldmVudC50YXJnZXQuaW5uZXJXaWR0aCAtIHRoaXMuZmx5b3V0V2lkdGggPCB0aGlzLndpbmRvd0J1ZmZlclNpemUpIHtcbiAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aCAtIHRoaXMud2luZG93QnVmZmVyU2l6ZTtcbiAgICAgIHRoaXMueENvb3JkID0gdGhpcy53aW5kb3dCdWZmZXJTaXplO1xuICAgICAgdGhpcy5zZXRVc2VyRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2g8VD4oXG4gICAgY29tcG9uZW50OiBUeXBlPFQ+LFxuICAgIGNvbmZpZzogU2t5Rmx5b3V0Q29uZmlnXG4gICk6IFNreUZseW91dEluc3RhbmNlPFQ+IHtcbiAgICB0aGlzLmNsZWFuVGVtcGxhdGUoKTtcblxuICAgIC8vIEVtaXQgdGhlIGNsb3NlZCBldmVudCBvbiBhbnkgcHJldmlvdXNseSBvcGVuZWQgZmx5b3V0IGluc3RhbmNlXG4gICAgaWYgKHRoaXMuZmx5b3V0SW5zdGFuY2UpIHtcbiAgICAgIHRoaXMubm90aWZ5Q2xvc2VkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHsgcHJvdmlkZXJzOiBbXSB9LCBjb25maWcpO1xuICAgIHRoaXMuY29uZmlnLmRlZmF1bHRXaWR0aCA9XG4gICAgICB0aGlzLmNvbmZpZy5kZWZhdWx0V2lkdGggfHwgd2luZG93LmlubmVyV2lkdGggLyAyO1xuICAgIHRoaXMuY29uZmlnLm1pbldpZHRoID0gdGhpcy5jb25maWcubWluV2lkdGggfHwgMzIwO1xuICAgIHRoaXMuY29uZmlnLm1heFdpZHRoID0gdGhpcy5jb25maWcubWF4V2lkdGggfHwgdGhpcy5jb25maWcuZGVmYXVsdFdpZHRoO1xuXG4gICAgdGhpcy5jb25maWcuc2hvd0l0ZXJhdG9yID0gdGhpcy5jb25maWcuc2hvd0l0ZXJhdG9yIHx8IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkID1cbiAgICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkIHx8IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yUHJldmlvdXNCdXR0b25EaXNhYmxlZCA9XG4gICAgICB0aGlzLmNvbmZpZy5pdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQgfHwgZmFsc2U7XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiB0aGlzLmNvbmZpZy5wcm92aWRlcnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoXG4gICAgICBmYWN0b3J5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuXG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZSA9IHRoaXMuY3JlYXRlRmx5b3V0SW5zdGFuY2U8VD4oY29tcG9uZW50UmVmLmluc3RhbmNlKTtcblxuICAgIC8vIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgd2UgZG8gbm90IHJlbmRlciB0aGUgZmx5b3V0IHVudGlsIHdlIGhhdmUgYXR0YWNoZWQgdGhlIGNvbXBvbmVudC5cbiAgICAvLyBUaGlzIGFsbG93cyB0aGUgYXJpYS1sYWJlbGxlZGJ5IHRvIGZ1bmN0aW9uIGNvcnJlY3RseS5cbiAgICB0aGlzLmluc3RhbmNlUmVhZHkgPSB0cnVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICAvLyBPcGVuIHRoZSBmbHlvdXQgaW1tZWRpYXRlbHkuXG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtLm5leHQoe1xuICAgICAgdHlwZTogU2t5Rmx5b3V0TWVzc2FnZVR5cGUuT3BlbixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5zZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy51aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyh0aGlzLmNvbmZpZy5zZXR0aW5nc0tleSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5mbHlvdXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHZhbHVlLmZseW91dFdpZHRoO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBCYWQgZGF0YSwgb3IgY29uZmlnIGlzIHRoZSBkZWZhdWx0IGNvbmZpZy5cbiAgICAgICAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSB0aGlzLmNvbmZpZy5kZWZhdWx0V2lkdGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hlY2tJbml0aWFsU2l6ZSgpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHRoaXMuY29uZmlnLmRlZmF1bHRXaWR0aDtcbiAgICAgIHRoaXMuY2hlY2tJbml0aWFsU2l6ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZseW91dEluc3RhbmNlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbS5uZXh0KHtcbiAgICAgIHR5cGU6IFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGludm9rZVByaW1hcnlBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmNhbGxiYWNrKCk7XG5cbiAgICBpZiAodGhpcy5wcmltYXJ5QWN0aW9uLmNsb3NlQWZ0ZXJJbnZva2luZykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbmltYXRpb25TdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlUmVhZHkgJiYgdGhpcy5pc09wZW5pbmdcbiAgICAgID8gRkxZT1VUX09QRU5fU1RBVEVcbiAgICAgIDogRkxZT1VUX0NMT1NFRF9TVEFURTtcbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSBGTFlPVVRfT1BFTl9TVEFURSkge1xuICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChldmVudC50b1N0YXRlID09PSBGTFlPVVRfQ0xPU0VEX1NUQVRFKSB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5ub3RpZnlDbG9zZWQoKTtcbiAgICAgIHRoaXMuY2xlYW5UZW1wbGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkhlYWRlckdyYWJIYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uUmVzaXplSGFuZGxlTW91c2VEb3duKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkhlYWRlckdyYWJIYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVSZXNpemVLZXlEb3duKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlc2l6ZUhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVJlc2l6ZUtleURvd24oZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uUmVzaXplSGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy54Q29vcmQgPSBldmVudC5jbGllbnRYO1xuXG4gICAgdGhpcy5hZGFwdGVyLnRvZ2dsZUlmcmFtZVBvaW50ZXJFdmVudHMoZmFsc2UpO1xuXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlzRHJhZ2dpbmc7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChtb3ZlRXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9uTW91c2VNb3ZlKG1vdmVFdmVudCk7XG4gICAgICB9KTtcblxuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNEcmFnZ2luZztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG1vdXNlVXBFdmVudDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub25IYW5kbGVSZWxlYXNlKG1vdXNlVXBFdmVudCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2Zmc2V0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnhDb29yZDtcbiAgICBsZXQgd2lkdGggPSB0aGlzLmZseW91dFdpZHRoO1xuXG4gICAgd2lkdGggLT0gb2Zmc2V0WDtcblxuICAgIGlmICh3aWR0aCA8IHRoaXMuY29uZmlnLm1pbldpZHRoIHx8IHdpZHRoID4gdGhpcy5jb25maWcubWF4V2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggLSB3aWR0aCA8IHRoaXMud2luZG93QnVmZmVyU2l6ZSkge1xuICAgICAgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMud2luZG93QnVmZmVyU2l6ZTtcbiAgICAgIHRoaXMueENvb3JkID0gdGhpcy53aW5kb3dCdWZmZXJTaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnhDb29yZCA9IGV2ZW50LmNsaWVudFg7XG4gICAgfVxuXG4gICAgdGhpcy5mbHlvdXRXaWR0aCA9IHdpZHRoO1xuXG4gICAgdGhpcy51cGRhdGVCcmVha3BvaW50QW5kUmVzcG9uc2l2ZUNsYXNzKHRoaXMuZmx5b3V0V2lkdGgpO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkhhbmRsZVJlbGVhc2UoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFkYXB0ZXIudG9nZ2xlSWZyYW1lUG9pbnRlckV2ZW50cyh0cnVlKTtcbiAgICAgICAgdGhpcy5zZXRVc2VyRGF0YSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25JdGVyYXRvclByZXZpb3VzQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZS5pdGVyYXRvclByZXZpb3VzQnV0dG9uQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uSXRlcmF0b3JOZXh0QnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZS5pdGVyYXRvck5leHRCdXR0b25DbGljay5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZseW91dEluc3RhbmNlPFQ+KGNvbXBvbmVudDogVCk6IFNreUZseW91dEluc3RhbmNlPFQ+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTa3lGbHlvdXRJbnN0YW5jZTxUPigpO1xuXG4gICAgaW5zdGFuY2UuY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnQ7XG4gICAgaW5zdGFuY2UuaG9zdENvbnRyb2xsZXJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5Rmx5b3V0TWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dChtZXNzYWdlKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreUZseW91dE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgY2FzZSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5PcGVuOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzT3BlbmluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0Rm9jdXNUcmFwKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuZmx5b3V0SW5zdGFuY2UuYmVmb3JlQ2xvc2UgYXMgU3ViamVjdDxhbnk+KS5vYnNlcnZlcnMubGVuZ3RoID09PVxuICAgICAgICAgICAgMCB8fFxuICAgICAgICAgIG1lc3NhZ2UuZGF0YT8uaWdub3JlQmVmb3JlQ2xvc2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaXNPcGVuaW5nID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgKHRoaXMuZmx5b3V0SW5zdGFuY2UuYmVmb3JlQ2xvc2UgYXMgU3ViamVjdDxhbnk+KS5uZXh0KFxuICAgICAgICAgICAgbmV3IFNreUZseW91dEJlZm9yZUNsb3NlSGFuZGxlcigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5pc09wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5FbmFibGVJdGVyYXRvck5leHRCdXR0b246XG4gICAgICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUZseW91dE1lc3NhZ2VUeXBlLkVuYWJsZUl0ZXJhdG9yUHJldmlvdXNCdXR0b246XG4gICAgICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yUHJldmlvdXNCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5EaXNhYmxlSXRlcmF0b3JOZXh0QnV0dG9uOlxuICAgICAgICB0aGlzLmNvbmZpZy5pdGVyYXRvck5leHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUZseW91dE1lc3NhZ2VUeXBlLkRpc2FibGVJdGVyYXRvclByZXZpb3VzQnV0dG9uOlxuICAgICAgICB0aGlzLmNvbmZpZy5pdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RpZnlDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZS5jbG9zZWQuZW1pdCgpO1xuICAgIHRoaXMuZmx5b3V0SW5zdGFuY2UuY2xvc2VkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuVGVtcGxhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50YXJnZXQuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRNZWRpYVF1ZXJ5U2VydmljZS5zZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGgpO1xuXG4gICAgY29uc3QgbmV3QnJlYWtwaW9udCA9IHRoaXMuZmx5b3V0TWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudDtcblxuICAgIHRoaXMuYWRhcHRlci5zZXRSZXNwb25zaXZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLCBuZXdCcmVha3Bpb250KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggLSB0aGlzLndpbmRvd0J1ZmZlclNpemUgPCB0aGlzLmNvbmZpZy5taW5XaWR0aCkge1xuICAgICAgdGhpcy5pc0Z1bGxzY3JlZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRnVsbHNjcmVlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VXNlckRhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnNldHRpbmdzS2V5KSB7XG4gICAgICB0aGlzLnVpQ29uZmlnU2VydmljZVxuICAgICAgICAuc2V0Q29uZmlnKHRoaXMuY29uZmlnLnNldHRpbmdzS2V5LCB7XG4gICAgICAgICAgZmx5b3V0V2lkdGg6IHRoaXMuZmx5b3V0V2lkdGgsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICAgICgpID0+IHt9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHNhdmUgZmx5b3V0IGRhdGEuJyk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0luaXRpYWxTaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZseW91dFdpZHRoIDwgdGhpcy5jb25maWcubWluV2lkdGgpIHtcbiAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSB0aGlzLmNvbmZpZy5taW5XaWR0aDtcbiAgICAgIHRoaXMuc2V0VXNlckRhdGEoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmx5b3V0V2lkdGggPiB0aGlzLmNvbmZpZy5tYXhXaWR0aCkge1xuICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHRoaXMuY29uZmlnLm1heFdpZHRoO1xuICAgICAgdGhpcy5zZXRVc2VyRGF0YSgpO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBmbHlvdXQgZG9lcyBub3QgbG9hZCBsYXJnZXIgdGhhbiB0aGUgd2luZG93IGFuZCBpdHMgYnVmZmVyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy5mbHlvdXRXaWR0aCA8IHRoaXMud2luZG93QnVmZmVyU2l6ZSkge1xuICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy53aW5kb3dCdWZmZXJTaXplO1xuICAgICAgdGhpcy54Q29vcmQgPSB0aGlzLndpbmRvd0J1ZmZlclNpemU7XG4gICAgICB0aGlzLnNldFVzZXJEYXRhKCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5mbHlvdXRNZWRpYVF1ZXJ5U2VydmljZS5pc1dpZHRoV2l0aGluQnJlYWtwaW9udChcbiAgICAgICAgd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgIFNreU1lZGlhQnJlYWtwb2ludHMueHNcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh3aW5kb3cuaW5uZXJXaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmZseW91dFdpZHRoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZ1bGxzY3JlZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RyaW5nKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nRm9yTG9jYWxlKHsgbG9jYWxlOiAnZW4tVVMnIH0sIGtleSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2l6ZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChldmVudC5rZXkpIHtcbiAgICAgIGNvbnN0IGtleVByZXNzZWQgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdhcnJvdycsICcnKTtcbiAgICAgIHN3aXRjaCAoa2V5UHJlc3NlZCkge1xuICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgIHRoaXMucmVzaXplS2V5Q29udHJvbEFjdGl2ZSA9ICF0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAodGhpcy5yZXNpemVLZXlDb250cm9sQWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmUpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5mbHlvdXRXaWR0aCA8IHRoaXMuY29uZmlnLm1heFdpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmZseW91dFdpZHRoICsgdGhpcy53aWR0aFN0ZXAsXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcubWF4V2lkdGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmUpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5mbHlvdXRXaWR0aCA+IHRoaXMuY29uZmlnLm1pbldpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSBNYXRoLm1heChcbiAgICAgICAgICAgICAgICB0aGlzLmZseW91dFdpZHRoIC0gdGhpcy53aWR0aFN0ZXAsXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcubWluV2lkdGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aGVuIHRoZSB6b25lIGlzIHN0YWJsZS4gKi9cbiAgcHJpdmF0ZSBfZXhlY3V0ZU9uU3RhYmxlKGZuOiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbmdab25lLmlzU3RhYmxlKSB7XG4gICAgICBmbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvY3VzVHJhcCgpOiB2b2lkIHtcbiAgICB0aGlzLmVuYWJsZVRyYXBGb2N1c0F1dG9DYXB0dXJlID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVUcmFwRm9jdXMgPSBmYWxzZTtcbiAgICAvLyBXYWl0aW5nIGZvciB6b25lIHRvIGJlIHN0YWJsZSB3aWxsIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VBZnRlckNoZWNrZWRFcnJvci5cbiAgICB0aGlzLl9leGVjdXRlT25TdGFibGUoKCkgPT4ge1xuICAgICAgdGhpcy5lbmFibGVUcmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgICB0aGlzLmVuYWJsZVRyYXBGb2N1cyA9IHRydWU7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktZmx5b3V0XCJcbiAgdGFiaW5kZXg9XCItMVwiXG4gIFthdHRyLnJvbGVdPVwiY29uZmlnPy5hcmlhUm9sZSA/IGNvbmZpZy5hcmlhUm9sZSA6ICdkaWFsb2cnXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb25maWc/LmFyaWFEZXNjcmliZWRCeVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnPy5hcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiY29uZmlnPy5hcmlhTGFiZWxsZWRCeVwiXG4gIFthdHRyLmFyaWEtbW9kYWxdPVwiXG4gICAgY29uZmlnPy5hcmlhUm9sZSA9PT0gJ2RpYWxvZycgfHwgIWNvbmZpZz8uYXJpYVJvbGUgPyB0cnVlIDogZmFsc2VcbiAgXCJcbiAgW2F0dHIuaGlkZGVuXT1cIiFpbnN0YW5jZVJlYWR5ID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gIFtpZF09XCJmbHlvdXRJZFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWZseW91dC1oaWRkZW4nOiAhaXNPcGVuICYmICFpc09wZW5pbmcsXG4gICAgJ3NreS1mbHlvdXQtZnVsbHNjcmVlbic6IGlzRnVsbHNjcmVlblxuICB9XCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktc2hhZG93JzogJ2RlZmF1bHQnLFxuICAgICdza3ktZWxldmF0aW9uLTgnOiAnbW9kZXJuJ1xuICB9XCJcbiAgKEBmbHlvdXRTdGF0ZS5kb25lKT1cImFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gIFtAZmx5b3V0U3RhdGVdPVwiZ2V0QW5pbWF0aW9uU3RhdGUoKVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJmbHlvdXRXaWR0aFwiXG4gICNmbHlvdXRSZWZcbiAgW2Nka1RyYXBGb2N1c109XCJlbmFibGVUcmFwRm9jdXNcIlxuICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwiZW5hYmxlVHJhcEZvY3VzQXV0b0NhcHR1cmVcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmx5b3V0LWhlYWRlclwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1wYWRkaW5nLXNxdWlzaC1sYXJnZSc6ICdkZWZhdWx0J1xuICAgIH1cIlxuICAgICNmbHlvdXRIZWFkZXJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktZmx5b3V0LWhlYWRlci1jb250ZW50XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LW1hcmdpbi1pbmxpbmUtc20gc2t5LWZseW91dC1oZWFkZXItZ3JhYi1oYW5kbGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9mbHlvdXRfcmVzaXplX2hhbmRsZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkhlYWRlckdyYWJIYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgICAobW91c2Vkb3duKT1cIm9uSGVhZGVyR3JhYkhhbmRsZU1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb249XCJ0aWxlLWRyYWdcIiBpY29uVHlwZT1cInNreXV4XCIgc2l6ZT1cImxnXCI+IDwvc2t5LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPHNreS1mbHlvdXQtaXRlcmF0b3JcbiAgICAgICAgKm5nSWY9XCJjb25maWcuc2hvd0l0ZXJhdG9yXCJcbiAgICAgICAgW25leHRCdXR0b25EaXNhYmxlZF09XCJjb25maWcuaXRlcmF0b3JOZXh0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICBbcHJldmlvdXNCdXR0b25EaXNhYmxlZF09XCJjb25maWcuaXRlcmF0b3JQcmV2aW91c0J1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgKG5leHRCdXR0b25DbGljayk9XCJvbkl0ZXJhdG9yTmV4dEJ1dHRvbkNsaWNrKClcIlxuICAgICAgICAocHJldmlvdXNCdXR0b25DbGljayk9XCJvbkl0ZXJhdG9yUHJldmlvdXNCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWZseW91dC1pdGVyYXRvcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWZseW91dC1oZWFkZXItYnV0dG9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcm1hbGlua1RlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByaW1hcnlBY3Rpb25UZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1mbHlvdXQtYnRuLWNsb3NlIHNreS1sYWJlbC1pY29uLXRoZW1lLWRlZmF1bHRcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfZmx5b3V0X2Nsb3NlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWJ0bi1kZWZhdWx0JzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjbG9zZVwiPiA8L3NreS1pY29uPlxuICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICBpY29uPVwiY2xvc2VcIlxuICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgIHNpemU9XCJsZ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNreS1mbHlvdXQtY29udGVudFwiPlxuICAgIDxkaXYgI3RhcmdldD48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1mbHlvdXQtcmVzaXplLWhhbmRsZVwiXG4gICAgcm9sZT1cInNlcGFyYXRvclwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICB0eXBlPVwicmFuZ2VcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZmx5b3V0SWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2ZseW91dF9yZXNpemVfaGFuZGxlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJjb25maWcubWF4V2lkdGhcIlxuICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwiY29uZmlnLm1pbldpZHRoXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImZseW91dFdpZHRoXCJcbiAgICAoa2V5ZG93bik9XCJvblJlc2l6ZUhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bik9XCJvblJlc2l6ZUhhbmRsZU1vdXNlRG93bigkZXZlbnQpXCJcbiAgPjwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcGVybWFsaW5rVGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJwZXJtYWxpbmtcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicGVybWFsaW5rLnVybFwiPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1mbHlvdXQtYnRuLXBlcm1hbGluayBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0XCJcbiAgICAgICAgW3NreUhyZWZdPVwicGVybWFsaW5rLnVybFwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWJ0bi1kZWZhdWx0JzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktYnRuLWJvcmRlcmxlc3MnOiAnbW9kZXJuJ1xuICAgICAgICB9XCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICB7eyBwZXJtYWxpbmtMYWJlbCB9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInBlcm1hbGluay5yb3V0ZVwiPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1mbHlvdXQtYnRuLXBlcm1hbGluayBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0XCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwicGVybWFsaW5rLnJvdXRlLmNvbW1hbmRzXCJcbiAgICAgICAgW2ZyYWdtZW50XT1cInBlcm1hbGluay5yb3V0ZS5leHRyYXM/LmZyYWdtZW50XCJcbiAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktYnRuLWRlZmF1bHQnOiAnZGVmYXVsdCcsXG4gICAgICAgICAgJ3NreS1idG4tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgICBbcXVlcnlQYXJhbXNdPVwicGVybWFsaW5rLnJvdXRlLmV4dHJhcz8ucXVlcnlQYXJhbXNcIlxuICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJwZXJtYWxpbmsucm91dGUuZXh0cmFzPy5xdWVyeVBhcmFtc0hhbmRsaW5nXCJcbiAgICAgICAgW3N0YXRlXT1cInBlcm1hbGluay5yb3V0ZS5leHRyYXM/LnN0YXRlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICB7eyBwZXJtYWxpbmtMYWJlbCB9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3ByaW1hcnlBY3Rpb25UZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInByaW1hcnlBY3Rpb24gJiYgcHJpbWFyeUFjdGlvbi5jYWxsYmFja1wiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktZmx5b3V0LWJ0bi1wcmltYXJ5LWFjdGlvbiBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0XCJcbiAgICAgIChjbGljayk9XCJpbnZva2VQcmltYXJ5QWN0aW9uKClcIlxuICAgID5cbiAgICAgIHt7IHByaW1hcnlBY3Rpb25MYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
486
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC9mbHlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvZmx5b3V0L2ZseW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxx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QiwwQkFBMEI7d0JBQzFCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRTtxQkFDM0UsY0FDVzt3QkFDVixPQUFPLENBQUMsYUFBYSxFQUFFOzRCQUNyQixLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7NEJBQ3pELEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDOzRCQUNwRSxVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztnQ0FDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3lCQUNoRCxDQUFDO3FCQUNILG1CQUVnQix1QkFBdUIsQ0FBQyxPQUFPO3lXQXdFekMsU0FBUztzQkFKZixTQUFTO3VCQUFDLFdBQVcsRUFBRTt3QkFDdEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9PLE1BQU07c0JBSmIsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9PLFlBQVk7c0JBSm5CLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBc0NNLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQW5pbWF0aW9uRXZlbnQsXG4gIGFuaW1hdGUsXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG4gIFNreVVJQ29uZmlnU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rmx5b3V0QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2ZseW91dC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0SW5zdGFuY2UgfSBmcm9tICcuL2ZseW91dC1pbnN0YW5jZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZWRpYVF1ZXJ5U2VydmljZSB9IGZyb20gJy4vZmx5b3V0LW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0QWN0aW9uIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtYWN0aW9uJztcbmltcG9ydCB7IFNreUZseW91dEJlZm9yZUNsb3NlSGFuZGxlciB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LWJlZm9yZS1jbG9zZS1oYW5kbGVyJztcbmltcG9ydCB7IFNreUZseW91dENvbmZpZyB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZXNzYWdlIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LW1lc3NhZ2UtdHlwZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRQZXJtYWxpbmsgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1wZXJtYWxpbmsnO1xuXG5jb25zdCBGTFlPVVRfT1BFTl9TVEFURSA9ICdmbHlvdXRPcGVuJztcbmNvbnN0IEZMWU9VVF9DTE9TRURfU1RBVEUgPSAnZmx5b3V0Q2xvc2VkJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1mbHlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmx5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmx5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUZseW91dEFkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreUZseW91dE1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBTa3lGbHlvdXRNZWRpYVF1ZXJ5U2VydmljZSB9LFxuICBdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmx5b3V0U3RhdGUnLCBbXG4gICAgICBzdGF0ZShGTFlPVVRfT1BFTl9TVEFURSwgc3R5bGUoeyB0cmFuc2Zvcm06ICdpbml0aWFsJyB9KSksXG4gICAgICBzdGF0ZShGTFlPVVRfQ0xPU0VEX1NUQVRFLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgyNTApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKGAqIDw9PiAqYCwgYW5pbWF0ZSgnMjUwbXMgZWFzZS1pbicpKSxcbiAgICBdKSxcbiAgXSxcbiAgLy8gQWxsb3cgYXV0b21hdGljIGNoYW5nZSBkZXRlY3Rpb24gZm9yIGNoaWxkIGNvbXBvbmVudHMuXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rmx5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBwdWJsaWMgY29uZmlnOiBTa3lGbHlvdXRDb25maWc7XG4gIHB1YmxpYyBlbmFibGVUcmFwRm9jdXM6IGJvb2xlYW47XG4gIHB1YmxpYyBlbmFibGVUcmFwRm9jdXNBdXRvQ2FwdHVyZTogYm9vbGVhbjtcbiAgcHVibGljIGZseW91dElkID0gYHNreS1mbHlvdXQtJHsrK25leHRJZH1gO1xuICBwdWJsaWMgZmx5b3V0U3RhdGUgPSBGTFlPVVRfQ0xPU0VEX1NUQVRFO1xuICBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XG4gIHB1YmxpYyBpc09wZW5pbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgZmx5b3V0V2lkdGggPSAwO1xuICBwdWJsaWMgaW5zdGFuY2VSZWFkeSA9IGZhbHNlO1xuICBwdWJsaWMgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICBwdWJsaWMgaXNGdWxsc2NyZWVuID0gZmFsc2U7XG4gIHB1YmxpYyByZXNpemVLZXlDb250cm9sQWN0aXZlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB4Q29vcmQgPSAwO1xuICBwcml2YXRlIHdpbmRvd0J1ZmZlclNpemUgPSAyMDtcblxuICBwdWJsaWMgZ2V0IG1lc3NhZ2VTdHJlYW0oKTogU3ViamVjdDxTa3lGbHlvdXRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VTdHJlYW07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcm1hbGluaygpOiBTa3lGbHlvdXRQZXJtYWxpbmsge1xuICAgIGNvbnN0IHBlcm1hbGluayA9IHRoaXMuY29uZmlnLnBlcm1hbGluaztcbiAgICBpZiAocGVybWFsaW5rKSB7XG4gICAgICByZXR1cm4gcGVybWFsaW5rO1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVybWFsaW5rTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wZXJtYWxpbmsubGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnBlcm1hbGluay5sYWJlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ3NreXV4X2ZseW91dF9wZXJtYWxpbmtfYnV0dG9uJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaW1hcnlBY3Rpb24oKTogU2t5Rmx5b3V0QWN0aW9uIHtcbiAgICBjb25zdCBwcmltYXJ5QWN0aW9uID0gdGhpcy5jb25maWcucHJpbWFyeUFjdGlvbjtcbiAgICBpZiAocHJpbWFyeUFjdGlvbikge1xuICAgICAgcmV0dXJuIHByaW1hcnlBY3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBwcmltYXJ5QWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb25maWcucHJpbWFyeUFjdGlvbiAmJiB0aGlzLmNvbmZpZy5wcmltYXJ5QWN0aW9uLmxhYmVsKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcucHJpbWFyeUFjdGlvbi5sYWJlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ3NreXV4X2ZseW91dF9wcmltYXJ5X2FjdGlvbl9idXR0b24nKTtcbiAgfVxuXG4gIHB1YmxpYyB0aGVtZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgd2lkdGhTdGVwID0gMTA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQFZpZXdDaGlsZCgnZmx5b3V0UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgZmx5b3V0UmVmOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZmx5b3V0SGVhZGVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIGZseW91dEhlYWRlcjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGZseW91dEluc3RhbmNlOiBTa3lGbHlvdXRJbnN0YW5jZTxhbnk+O1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUZseW91dE1lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lGbHlvdXRBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmx5b3V0TWVkaWFRdWVyeVNlcnZpY2U6IFNreUZseW91dE1lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHVpQ29uZmlnU2VydmljZTogU2t5VUlDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lXG4gICkge1xuICAgIC8vIEFsbCBjb21tYW5kcyBmbG93IHRocm91Z2ggdGhlIG1lc3NhZ2Ugc3RyZWFtLlxuICAgIHRoaXMubWVzc2FnZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lGbHlvdXRNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRhcHRlci5hZGp1c3RIZWFkZXJGb3JIZWxwKHRoaXMuZmx5b3V0SGVhZGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5mbHlvdXRNZWRpYVF1ZXJ5U2VydmljZS5pc1dpZHRoV2l0aGluQnJlYWtwaW9udChcbiAgICAgICAgZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgsXG4gICAgICAgIFNreU1lZGlhQnJlYWtwb2ludHMueHNcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyhldmVudC50YXJnZXQuaW5uZXJXaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmZseW91dFdpZHRoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZ1bGxzY3JlZW4oKTtcblxuICAgIGlmIChldmVudC50YXJnZXQuaW5uZXJXaWR0aCAtIHRoaXMuZmx5b3V0V2lkdGggPCB0aGlzLndpbmRvd0J1ZmZlclNpemUpIHtcbiAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aCAtIHRoaXMud2luZG93QnVmZmVyU2l6ZTtcbiAgICAgIHRoaXMueENvb3JkID0gdGhpcy53aW5kb3dCdWZmZXJTaXplO1xuICAgICAgdGhpcy5zZXRVc2VyRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2g8VD4oXG4gICAgY29tcG9uZW50OiBUeXBlPFQ+LFxuICAgIGNvbmZpZzogU2t5Rmx5b3V0Q29uZmlnXG4gICk6IFNreUZseW91dEluc3RhbmNlPFQ+IHtcbiAgICB0aGlzLmNsZWFuVGVtcGxhdGUoKTtcblxuICAgIC8vIEVtaXQgdGhlIGNsb3NlZCBldmVudCBvbiBhbnkgcHJldmlvdXNseSBvcGVuZWQgZmx5b3V0IGluc3RhbmNlXG4gICAgaWYgKHRoaXMuZmx5b3V0SW5zdGFuY2UpIHtcbiAgICAgIHRoaXMubm90aWZ5Q2xvc2VkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHsgcHJvdmlkZXJzOiBbXSB9LCBjb25maWcpO1xuICAgIHRoaXMuY29uZmlnLmRlZmF1bHRXaWR0aCA9XG4gICAgICB0aGlzLmNvbmZpZy5kZWZhdWx0V2lkdGggfHwgd2luZG93LmlubmVyV2lkdGggLyAyO1xuICAgIHRoaXMuY29uZmlnLm1pbldpZHRoID0gdGhpcy5jb25maWcubWluV2lkdGggfHwgMzIwO1xuICAgIHRoaXMuY29uZmlnLm1heFdpZHRoID0gdGhpcy5jb25maWcubWF4V2lkdGggfHwgdGhpcy5jb25maWcuZGVmYXVsdFdpZHRoO1xuXG4gICAgdGhpcy5jb25maWcuc2hvd0l0ZXJhdG9yID0gdGhpcy5jb25maWcuc2hvd0l0ZXJhdG9yIHx8IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkID1cbiAgICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkIHx8IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yUHJldmlvdXNCdXR0b25EaXNhYmxlZCA9XG4gICAgICB0aGlzLmNvbmZpZy5pdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQgfHwgZmFsc2U7XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiB0aGlzLmNvbmZpZy5wcm92aWRlcnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoXG4gICAgICBmYWN0b3J5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuXG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZSA9IHRoaXMuY3JlYXRlRmx5b3V0SW5zdGFuY2U8VD4oY29tcG9uZW50UmVmLmluc3RhbmNlKTtcblxuICAgIC8vIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgd2UgZG8gbm90IHJlbmRlciB0aGUgZmx5b3V0IHVudGlsIHdlIGhhdmUgYXR0YWNoZWQgdGhlIGNvbXBvbmVudC5cbiAgICAvLyBUaGlzIGFsbG93cyB0aGUgYXJpYS1sYWJlbGxlZGJ5IHRvIGZ1bmN0aW9uIGNvcnJlY3RseS5cbiAgICB0aGlzLmluc3RhbmNlUmVhZHkgPSB0cnVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICAvLyBPcGVuIHRoZSBmbHlvdXQgaW1tZWRpYXRlbHkuXG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtLm5leHQoe1xuICAgICAgdHlwZTogU2t5Rmx5b3V0TWVzc2FnZVR5cGUuT3BlbixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5zZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy51aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyh0aGlzLmNvbmZpZy5zZXR0aW5nc0tleSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5mbHlvdXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHZhbHVlLmZseW91dFdpZHRoO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBCYWQgZGF0YSwgb3IgY29uZmlnIGlzIHRoZSBkZWZhdWx0IGNvbmZpZy5cbiAgICAgICAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSB0aGlzLmNvbmZpZy5kZWZhdWx0V2lkdGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hlY2tJbml0aWFsU2l6ZSgpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHRoaXMuY29uZmlnLmRlZmF1bHRXaWR0aDtcbiAgICAgIHRoaXMuY2hlY2tJbml0aWFsU2l6ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZseW91dEluc3RhbmNlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbS5uZXh0KHtcbiAgICAgIHR5cGU6IFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGludm9rZVByaW1hcnlBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmNhbGxiYWNrKCk7XG5cbiAgICBpZiAodGhpcy5wcmltYXJ5QWN0aW9uLmNsb3NlQWZ0ZXJJbnZva2luZykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbmltYXRpb25TdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlUmVhZHkgJiYgdGhpcy5pc09wZW5pbmdcbiAgICAgID8gRkxZT1VUX09QRU5fU1RBVEVcbiAgICAgIDogRkxZT1VUX0NMT1NFRF9TVEFURTtcbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSBGTFlPVVRfT1BFTl9TVEFURSkge1xuICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChldmVudC50b1N0YXRlID09PSBGTFlPVVRfQ0xPU0VEX1NUQVRFKSB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5ub3RpZnlDbG9zZWQoKTtcbiAgICAgIHRoaXMuY2xlYW5UZW1wbGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkhlYWRlckdyYWJIYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uUmVzaXplSGFuZGxlTW91c2VEb3duKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkhlYWRlckdyYWJIYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVSZXNpemVLZXlEb3duKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlc2l6ZUhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVJlc2l6ZUtleURvd24oZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uUmVzaXplSGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy54Q29vcmQgPSBldmVudC5jbGllbnRYO1xuXG4gICAgdGhpcy5hZGFwdGVyLnRvZ2dsZUlmcmFtZVBvaW50ZXJFdmVudHMoZmFsc2UpO1xuXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlzRHJhZ2dpbmc7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChtb3ZlRXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9uTW91c2VNb3ZlKG1vdmVFdmVudCk7XG4gICAgICB9KTtcblxuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNEcmFnZ2luZztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG1vdXNlVXBFdmVudDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub25IYW5kbGVSZWxlYXNlKG1vdXNlVXBFdmVudCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2Zmc2V0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnhDb29yZDtcbiAgICBsZXQgd2lkdGggPSB0aGlzLmZseW91dFdpZHRoO1xuXG4gICAgd2lkdGggLT0gb2Zmc2V0WDtcblxuICAgIGlmICh3aWR0aCA8IHRoaXMuY29uZmlnLm1pbldpZHRoIHx8IHdpZHRoID4gdGhpcy5jb25maWcubWF4V2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggLSB3aWR0aCA8IHRoaXMud2luZG93QnVmZmVyU2l6ZSkge1xuICAgICAgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMud2luZG93QnVmZmVyU2l6ZTtcbiAgICAgIHRoaXMueENvb3JkID0gdGhpcy53aW5kb3dCdWZmZXJTaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnhDb29yZCA9IGV2ZW50LmNsaWVudFg7XG4gICAgfVxuXG4gICAgdGhpcy5mbHlvdXRXaWR0aCA9IHdpZHRoO1xuXG4gICAgdGhpcy51cGRhdGVCcmVha3BvaW50QW5kUmVzcG9uc2l2ZUNsYXNzKHRoaXMuZmx5b3V0V2lkdGgpO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkhhbmRsZVJlbGVhc2UoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFkYXB0ZXIudG9nZ2xlSWZyYW1lUG9pbnRlckV2ZW50cyh0cnVlKTtcbiAgICAgICAgdGhpcy5zZXRVc2VyRGF0YSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25JdGVyYXRvclByZXZpb3VzQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZS5pdGVyYXRvclByZXZpb3VzQnV0dG9uQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uSXRlcmF0b3JOZXh0QnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZS5pdGVyYXRvck5leHRCdXR0b25DbGljay5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZseW91dEluc3RhbmNlPFQ+KGNvbXBvbmVudDogVCk6IFNreUZseW91dEluc3RhbmNlPFQ+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTa3lGbHlvdXRJbnN0YW5jZTxUPigpO1xuXG4gICAgaW5zdGFuY2UuY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnQ7XG4gICAgaW5zdGFuY2UuaG9zdENvbnRyb2xsZXJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5Rmx5b3V0TWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dChtZXNzYWdlKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreUZseW91dE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgY2FzZSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5PcGVuOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzT3BlbmluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0Rm9jdXNUcmFwKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuZmx5b3V0SW5zdGFuY2UuYmVmb3JlQ2xvc2UgYXMgU3ViamVjdDxhbnk+KS5vYnNlcnZlcnMubGVuZ3RoID09PVxuICAgICAgICAgICAgMCB8fFxuICAgICAgICAgIG1lc3NhZ2UuZGF0YT8uaWdub3JlQmVmb3JlQ2xvc2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaXNPcGVuaW5nID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgKHRoaXMuZmx5b3V0SW5zdGFuY2UuYmVmb3JlQ2xvc2UgYXMgU3ViamVjdDxhbnk+KS5uZXh0KFxuICAgICAgICAgICAgbmV3IFNreUZseW91dEJlZm9yZUNsb3NlSGFuZGxlcigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5pc09wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5FbmFibGVJdGVyYXRvck5leHRCdXR0b246XG4gICAgICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUZseW91dE1lc3NhZ2VUeXBlLkVuYWJsZUl0ZXJhdG9yUHJldmlvdXNCdXR0b246XG4gICAgICAgIHRoaXMuY29uZmlnLml0ZXJhdG9yUHJldmlvdXNCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5EaXNhYmxlSXRlcmF0b3JOZXh0QnV0dG9uOlxuICAgICAgICB0aGlzLmNvbmZpZy5pdGVyYXRvck5leHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUZseW91dE1lc3NhZ2VUeXBlLkRpc2FibGVJdGVyYXRvclByZXZpb3VzQnV0dG9uOlxuICAgICAgICB0aGlzLmNvbmZpZy5pdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RpZnlDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRJbnN0YW5jZS5jbG9zZWQuZW1pdCgpO1xuICAgIHRoaXMuZmx5b3V0SW5zdGFuY2UuY2xvc2VkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuVGVtcGxhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50YXJnZXQuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5mbHlvdXRNZWRpYVF1ZXJ5U2VydmljZS5zZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGgpO1xuXG4gICAgY29uc3QgbmV3QnJlYWtwaW9udCA9IHRoaXMuZmx5b3V0TWVkaWFRdWVyeVNlcnZpY2UuY3VycmVudDtcblxuICAgIHRoaXMuYWRhcHRlci5zZXRSZXNwb25zaXZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLCBuZXdCcmVha3Bpb250KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggLSB0aGlzLndpbmRvd0J1ZmZlclNpemUgPCB0aGlzLmNvbmZpZy5taW5XaWR0aCkge1xuICAgICAgdGhpcy5pc0Z1bGxzY3JlZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRnVsbHNjcmVlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VXNlckRhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnNldHRpbmdzS2V5KSB7XG4gICAgICB0aGlzLnVpQ29uZmlnU2VydmljZVxuICAgICAgICAuc2V0Q29uZmlnKHRoaXMuY29uZmlnLnNldHRpbmdzS2V5LCB7XG4gICAgICAgICAgZmx5b3V0V2lkdGg6IHRoaXMuZmx5b3V0V2lkdGgsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICAgICgpID0+IHt9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHNhdmUgZmx5b3V0IGRhdGEuJyk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0luaXRpYWxTaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZseW91dFdpZHRoIDwgdGhpcy5jb25maWcubWluV2lkdGgpIHtcbiAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSB0aGlzLmNvbmZpZy5taW5XaWR0aDtcbiAgICAgIHRoaXMuc2V0VXNlckRhdGEoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmx5b3V0V2lkdGggPiB0aGlzLmNvbmZpZy5tYXhXaWR0aCkge1xuICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHRoaXMuY29uZmlnLm1heFdpZHRoO1xuICAgICAgdGhpcy5zZXRVc2VyRGF0YSgpO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBmbHlvdXQgZG9lcyBub3QgbG9hZCBsYXJnZXIgdGhhbiB0aGUgd2luZG93IGFuZCBpdHMgYnVmZmVyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy5mbHlvdXRXaWR0aCA8IHRoaXMud2luZG93QnVmZmVyU2l6ZSkge1xuICAgICAgdGhpcy5mbHlvdXRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy53aW5kb3dCdWZmZXJTaXplO1xuICAgICAgdGhpcy54Q29vcmQgPSB0aGlzLndpbmRvd0J1ZmZlclNpemU7XG4gICAgICB0aGlzLnNldFVzZXJEYXRhKCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5mbHlvdXRNZWRpYVF1ZXJ5U2VydmljZS5pc1dpZHRoV2l0aGluQnJlYWtwaW9udChcbiAgICAgICAgd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgIFNreU1lZGlhQnJlYWtwb2ludHMueHNcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh3aW5kb3cuaW5uZXJXaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludEFuZFJlc3BvbnNpdmVDbGFzcyh0aGlzLmZseW91dFdpZHRoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZ1bGxzY3JlZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RyaW5nKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nRm9yTG9jYWxlKHsgbG9jYWxlOiAnZW4tVVMnIH0sIGtleSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2l6ZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChldmVudC5rZXkpIHtcbiAgICAgIGNvbnN0IGtleVByZXNzZWQgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdhcnJvdycsICcnKTtcbiAgICAgIHN3aXRjaCAoa2V5UHJlc3NlZCkge1xuICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgIHRoaXMucmVzaXplS2V5Q29udHJvbEFjdGl2ZSA9ICF0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAodGhpcy5yZXNpemVLZXlDb250cm9sQWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmUpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5mbHlvdXRXaWR0aCA8IHRoaXMuY29uZmlnLm1heFdpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmZseW91dFdpZHRoICsgdGhpcy53aWR0aFN0ZXAsXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcubWF4V2lkdGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZUtleUNvbnRyb2xBY3RpdmUpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5mbHlvdXRXaWR0aCA+IHRoaXMuY29uZmlnLm1pbldpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZmx5b3V0V2lkdGggPSBNYXRoLm1heChcbiAgICAgICAgICAgICAgICB0aGlzLmZseW91dFdpZHRoIC0gdGhpcy53aWR0aFN0ZXAsXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcubWluV2lkdGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aGVuIHRoZSB6b25lIGlzIHN0YWJsZS4gKi9cbiAgcHJpdmF0ZSBfZXhlY3V0ZU9uU3RhYmxlKGZuOiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbmdab25lLmlzU3RhYmxlKSB7XG4gICAgICBmbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvY3VzVHJhcCgpOiB2b2lkIHtcbiAgICB0aGlzLmVuYWJsZVRyYXBGb2N1c0F1dG9DYXB0dXJlID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVUcmFwRm9jdXMgPSBmYWxzZTtcbiAgICAvLyBXYWl0aW5nIGZvciB6b25lIHRvIGJlIHN0YWJsZSB3aWxsIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VBZnRlckNoZWNrZWRFcnJvci5cbiAgICB0aGlzLl9leGVjdXRlT25TdGFibGUoKCkgPT4ge1xuICAgICAgdGhpcy5lbmFibGVUcmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgICB0aGlzLmVuYWJsZVRyYXBGb2N1cyA9IHRydWU7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktZmx5b3V0XCJcbiAgdGFiaW5kZXg9XCItMVwiXG4gIFthdHRyLnJvbGVdPVwiY29uZmlnPy5hcmlhUm9sZSA/IGNvbmZpZy5hcmlhUm9sZSA6ICdkaWFsb2cnXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb25maWc/LmFyaWFEZXNjcmliZWRCeVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnPy5hcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiY29uZmlnPy5hcmlhTGFiZWxsZWRCeVwiXG4gIFthdHRyLmFyaWEtbW9kYWxdPVwiXG4gICAgY29uZmlnPy5hcmlhUm9sZSA9PT0gJ2RpYWxvZycgfHwgIWNvbmZpZz8uYXJpYVJvbGUgPyB0cnVlIDogZmFsc2VcbiAgXCJcbiAgW2F0dHIuaGlkZGVuXT1cIiFpbnN0YW5jZVJlYWR5ID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gIFtpZF09XCJmbHlvdXRJZFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWZseW91dC1oaWRkZW4nOiAhaXNPcGVuICYmICFpc09wZW5pbmcsXG4gICAgJ3NreS1mbHlvdXQtZnVsbHNjcmVlbic6IGlzRnVsbHNjcmVlblxuICB9XCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktc2hhZG93JzogJ2RlZmF1bHQnLFxuICAgICdza3ktZWxldmF0aW9uLTgnOiAnbW9kZXJuJ1xuICB9XCJcbiAgKEBmbHlvdXRTdGF0ZS5kb25lKT1cImFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gIFtAZmx5b3V0U3RhdGVdPVwiZ2V0QW5pbWF0aW9uU3RhdGUoKVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJmbHlvdXRXaWR0aFwiXG4gICNmbHlvdXRSZWZcbiAgW2Nka1RyYXBGb2N1c109XCJlbmFibGVUcmFwRm9jdXNcIlxuICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwiZW5hYmxlVHJhcEZvY3VzQXV0b0NhcHR1cmVcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmx5b3V0LWhlYWRlclwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1wYWRkaW5nLXNxdWlzaC1sYXJnZSc6ICdkZWZhdWx0J1xuICAgIH1cIlxuICAgICNmbHlvdXRIZWFkZXJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktZmx5b3V0LWhlYWRlci1jb250ZW50XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LW1hcmdpbi1pbmxpbmUtc20gc2t5LWZseW91dC1oZWFkZXItZ3JhYi1oYW5kbGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9mbHlvdXRfcmVzaXplX2hhbmRsZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkhlYWRlckdyYWJIYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgICAobW91c2Vkb3duKT1cIm9uSGVhZGVyR3JhYkhhbmRsZU1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb249XCJ0aWxlLWRyYWdcIiBpY29uVHlwZT1cInNreXV4XCIgc2l6ZT1cImxnXCI+IDwvc2t5LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPHNreS1mbHlvdXQtaXRlcmF0b3JcbiAgICAgICAgKm5nSWY9XCJjb25maWcuc2hvd0l0ZXJhdG9yXCJcbiAgICAgICAgW25leHRCdXR0b25EaXNhYmxlZF09XCJjb25maWcuaXRlcmF0b3JOZXh0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICBbcHJldmlvdXNCdXR0b25EaXNhYmxlZF09XCJjb25maWcuaXRlcmF0b3JQcmV2aW91c0J1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgKG5leHRCdXR0b25DbGljayk9XCJvbkl0ZXJhdG9yTmV4dEJ1dHRvbkNsaWNrKClcIlxuICAgICAgICAocHJldmlvdXNCdXR0b25DbGljayk9XCJvbkl0ZXJhdG9yUHJldmlvdXNCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWZseW91dC1pdGVyYXRvcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWZseW91dC1oZWFkZXItYnV0dG9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcm1hbGlua1RlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByaW1hcnlBY3Rpb25UZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1mbHlvdXQtYnRuLWNsb3NlIHNreS1sYWJlbC1pY29uLXRoZW1lLWRlZmF1bHRcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfZmx5b3V0X2Nsb3NlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWJ0bi1kZWZhdWx0JzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjbG9zZVwiPiA8L3NreS1pY29uPlxuICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICBpY29uPVwiY2xvc2VcIlxuICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgIHNpemU9XCJsZ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNreS1mbHlvdXQtY29udGVudFwiPlxuICAgIDxkaXYgI3RhcmdldD48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1mbHlvdXQtcmVzaXplLWhhbmRsZVwiXG4gICAgcm9sZT1cInNlcGFyYXRvclwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICB0eXBlPVwicmFuZ2VcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZmx5b3V0SWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2ZseW91dF9yZXNpemVfaGFuZGxlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJjb25maWcubWF4V2lkdGhcIlxuICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwiY29uZmlnLm1pbldpZHRoXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImZseW91dFdpZHRoXCJcbiAgICAoa2V5ZG93bik9XCJvblJlc2l6ZUhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bik9XCJvblJlc2l6ZUhhbmRsZU1vdXNlRG93bigkZXZlbnQpXCJcbiAgPjwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcGVybWFsaW5rVGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJwZXJtYWxpbmtcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicGVybWFsaW5rLnVybFwiPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1mbHlvdXQtYnRuLXBlcm1hbGluayBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0XCJcbiAgICAgICAgW3NreUhyZWZdPVwicGVybWFsaW5rLnVybFwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWJ0bi1kZWZhdWx0JzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktYnRuLWJvcmRlcmxlc3MnOiAnbW9kZXJuJ1xuICAgICAgICB9XCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICB7eyBwZXJtYWxpbmtMYWJlbCB9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInBlcm1hbGluay5yb3V0ZVwiPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1mbHlvdXQtYnRuLXBlcm1hbGluayBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0XCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwicGVybWFsaW5rLnJvdXRlLmNvbW1hbmRzXCJcbiAgICAgICAgW2ZyYWdtZW50XT1cInBlcm1hbGluay5yb3V0ZS5leHRyYXM/LmZyYWdtZW50XCJcbiAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktYnRuLWRlZmF1bHQnOiAnZGVmYXVsdCcsXG4gICAgICAgICAgJ3NreS1idG4tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgICBbcXVlcnlQYXJhbXNdPVwicGVybWFsaW5rLnJvdXRlLmV4dHJhcz8ucXVlcnlQYXJhbXNcIlxuICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJwZXJtYWxpbmsucm91dGUuZXh0cmFzPy5xdWVyeVBhcmFtc0hhbmRsaW5nXCJcbiAgICAgICAgW3N0YXRlXT1cInBlcm1hbGluay5yb3V0ZS5leHRyYXM/LnN0YXRlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICB7eyBwZXJtYWxpbmtMYWJlbCB9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3ByaW1hcnlBY3Rpb25UZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInByaW1hcnlBY3Rpb24gJiYgcHJpbWFyeUFjdGlvbi5jYWxsYmFja1wiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktZmx5b3V0LWJ0bi1wcmltYXJ5LWFjdGlvbiBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0XCJcbiAgICAgIChjbGljayk9XCJpbnZva2VQcmltYXJ5QWN0aW9uKClcIlxuICAgID5cbiAgICAgIHt7IHByaW1hcnlBY3Rpb25MYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-flyout.mjs","sources":["../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-message-type.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-instance.ts","../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-adapter.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-media-query.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-before-close-handler.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts","../../../../../libs/components/flyout/src/skyux-flyout.ts"],"sourcesContent":["/**\n * @internal\n */\nexport enum SkyFlyoutMessageType {\n Open = 0,\n Close,\n EnableIteratorNextButton,\n EnableIteratorPreviousButton,\n DisableIteratorNextButton,\n DisableIteratorPreviousButton,\n}\n","import { EventEmitter } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Represents a single displayed flyout.\n */\nexport class SkyFlyoutInstance<T> {\n /**\n * An event that the modal instance emits when it is about to close.\n * If a subscription exists for this event,\n * the modal does not close until the subscriber calls the handler's `closeModal` method.\n */\n public get beforeClose(): Observable<SkyFlyoutBeforeCloseHandler> {\n return this._beforeClose;\n }\n\n /**\n * An event that the flyout instance emits when it closes.\n */\n public closed = new EventEmitter<void>();\n\n /**\n * Specifies the instance of the component to display in the flyout.\n */\n public componentInstance: T;\n\n /**\n * Used to communicate with the host component.\n * @internal\n */\n public get hostController(): Subject<SkyFlyoutMessage> {\n return this._hostController;\n }\n\n /**\n * A `boolean` value that returns `true` if the flyout is open.\n * @default true\n */\n public isOpen = true;\n\n /**\n * An event that the flyout instance emits when users click the next iterator button.\n */\n public get iteratorNextButtonClick(): EventEmitter<void> {\n return this._iteratorNextButtonClick;\n }\n\n /**\n * An event that the flyout instance emits when users click the previous iterator button.\n */\n public get iteratorPreviousButtonClick(): EventEmitter<void> {\n return this._iteratorPreviousButtonClick;\n }\n\n /**\n * Disables the next iterator button.\n * @default false\n */\n public set iteratorNextButtonDisabled(newValue: boolean) {\n this._iteratorNextButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorNextButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorNextButton,\n });\n }\n }\n\n public get iteratorNextButtonDisabled(): boolean {\n return this._iteratorNextButtonDisabled;\n }\n\n /**\n * Disables the previous iterator button.\n * @default false\n */\n public set iteratorPreviousButtonDisabled(newValue: boolean) {\n this._iteratorPreviousButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorPreviousButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorPreviousButton,\n });\n }\n }\n\n public get iteratorPreviousButtonDisabled(): boolean {\n return this._iteratorPreviousButtonDisabled;\n }\n\n private _beforeClose = new Subject<SkyFlyoutBeforeCloseHandler>();\n\n private _iteratorNextButtonClick = new EventEmitter<void>();\n\n private _iteratorPreviousButtonClick = new EventEmitter<void>();\n\n private _iteratorNextButtonDisabled = false;\n\n private _iteratorPreviousButtonDisabled = false;\n\n private _hostController = new Subject<SkyFlyoutMessage>();\n\n constructor() {\n this.closed.subscribe(() => {\n this.isOpen = false;\n });\n }\n\n /**\n * Closes the flyout instance and emits its `closed` event.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n this.hostController.next({\n type: SkyFlyoutMessageType.Close,\n data: { ignoreBeforeClose: args ? args.ignoreBeforeClose : false },\n });\n\n this._iteratorPreviousButtonClick.complete();\n this._iteratorNextButtonClick.complete();\n\n this.hostController.complete();\n }\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-flyout' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_flyout_close: { message: 'Close flyout' },\n skyux_flyout_iterator_previous_button: { message: 'Previous' },\n skyux_flyout_iterator_next_button: { message: 'Next' },\n skyux_flyout_permalink_button: { message: 'View record' },\n skyux_flyout_primary_action_button: { message: 'Create list' },\n skyux_flyout_resize_handle: {\n message:\n 'Resize the flyout window. Press the enter or space key to activate, then use left arrow key to expand the flyout window and right arrow key to shrink the flyout window. Press the enter, space, or tab key to deactivate.',\n },\n },\n};\n\nexport class SkyFlyoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyFlyoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyFlyoutResourcesModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout-iterator',\n templateUrl: './flyout-iterator.component.html',\n styleUrls: ['./flyout-iterator.component.scss'],\n})\nexport class SkyFlyoutIteratorComponent implements OnDestroy {\n @Input()\n public nextButtonDisabled: boolean;\n\n @Input()\n public previousButtonDisabled: boolean;\n\n @Output()\n public get previousButtonClick(): EventEmitter<void> {\n return this._previousButtonClick;\n }\n\n @Output()\n public get nextButtonClick(): EventEmitter<void> {\n return this._nextButtonClick;\n }\n\n private ngUnsubscribe = new Subject();\n\n private _nextButtonClick = new EventEmitter<void>();\n\n private _previousButtonClick = new EventEmitter<void>();\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this._previousButtonClick.complete();\n this._nextButtonClick.complete();\n }\n\n public onIteratorPreviousClick(): void {\n /* istanbul ignore else */\n if (!this.previousButtonDisabled) {\n this._previousButtonClick.emit();\n }\n }\n\n public onIteratorNextClick(): void {\n /* istanbul ignore else */\n if (!this.nextButtonDisabled) {\n this._nextButtonClick.emit();\n }\n }\n}\n","<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyMediaBreakpoints } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2,\n private windowRef: SkyAppWindowRef\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public adjustHeaderForHelp(header: ElementRef): void {\n const windowObj = this.windowRef.nativeWindow;\n const helpWidget = windowObj.document.getElementById('bb-help-invoker');\n\n if (helpWidget) {\n this.renderer.addClass(header.nativeElement, 'sky-flyout-help-shim');\n }\n }\n\n public setResponsiveClass(\n element: ElementRef,\n breakpoint: SkyMediaBreakpoints\n ): void {\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = 'sky-responsive-container-xs';\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = 'sky-responsive-container-sm';\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = 'sky-responsive-container-md';\n break;\n }\n default: {\n newClass = 'sky-responsive-container-lg';\n break;\n }\n }\n\n this.renderer.addClass(nativeEl, newClass);\n }\n\n public toggleIframePointerEvents(enable: boolean): void {\n // When iframes are present on the page, they may interfere with dragging\n // temporarily disable pointer events in iframes when dragging starts.\n // When re-enabling we set to the empty string as it will remove the element styling\n // and fall back to any css originally given to iframe\n const iframes = document.querySelectorAll('iframe');\n for (let i = 0; i < iframes.length; i++) {\n iframes[i].style.pointerEvents = enable ? '' : 'none';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryListener } from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutMediaQueryService {\n public get current(): SkyMediaBreakpoints {\n return this._current;\n }\n\n private currentSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _current = SkyMediaBreakpoints.xs;\n\n constructor() {\n this.currentSubject.next(this._current);\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public setBreakpointForWidth(width: number): void {\n let breakpoint: SkyMediaBreakpoints;\n\n if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.xs)) {\n breakpoint = SkyMediaBreakpoints.xs;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.sm)) {\n breakpoint = SkyMediaBreakpoints.sm;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.md)) {\n breakpoint = SkyMediaBreakpoints.md;\n } else {\n breakpoint = SkyMediaBreakpoints.lg;\n }\n\n this._current = breakpoint;\n this.currentSubject.next(this._current);\n }\n\n public isWidthWithinBreakpiont(\n width: number,\n breakpoint: SkyMediaBreakpoints\n ): boolean {\n const xsBreakpointMaxPixels = 767;\n const smBreakpointMinPixels = 768;\n const smBreakpointMaxPixels = 991;\n const mdBreakpointMinPixels = 992;\n const mdBreakpointMaxPixels = 1199;\n const lgBreakpointMinPixels = 1200;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n return width <= xsBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.sm: {\n return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.md: {\n return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;\n }\n default: {\n return width >= lgBreakpointMinPixels;\n }\n }\n }\n\n public destroy(): void {\n this.currentSubject.complete();\n }\n}\n","/**\n * Handler for notifying the flyout when it is appropriate to close the flyout. This will be returned from the flyout instance's `beforeClose` observable.\n */\nexport class SkyFlyoutBeforeCloseHandler {\n /**\n * Function which should be called to close the flyout. This should be called once any intervening actions have completed.\n */\n public readonly closeFlyout: Function;\n\n constructor(closeFlyoutFunction: Function) {\n this.closeFlyout = closeFlyoutFunction;\n }\n}\n","import {\n AnimationEvent,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostListener,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutAdapterService } from './flyout-adapter.service';\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutMediaQueryService } from './flyout-media-query.service';\nimport { SkyFlyoutAction } from './types/flyout-action';\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\nimport { SkyFlyoutPermalink } from './types/flyout-permalink';\n\nconst FLYOUT_OPEN_STATE = 'flyoutOpen';\nconst FLYOUT_CLOSED_STATE = 'flyoutClosed';\n\nlet nextId = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n providers: [\n SkyFlyoutAdapterService,\n SkyFlyoutMediaQueryService,\n { provide: SkyMediaQueryService, useExisting: SkyFlyoutMediaQueryService },\n ],\n animations: [\n trigger('flyoutState', [\n state(FLYOUT_OPEN_STATE, style({ transform: 'initial' })),\n state(FLYOUT_CLOSED_STATE, style({ transform: 'translateX(100%)' })),\n transition('void => *', [\n style({ transform: 'translateX(100%)' }),\n animate(250),\n ]),\n transition(`* <=> *`, animate('250ms ease-in')),\n ]),\n ],\n // Allow automatic change detection for child components.\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class SkyFlyoutComponent implements OnDestroy, OnInit {\n public config: SkyFlyoutConfig;\n public enableTrapFocus: boolean;\n public enableTrapFocusAutoCapture: boolean;\n public flyoutId = `sky-flyout-${++nextId}`;\n public flyoutState = FLYOUT_CLOSED_STATE;\n public isOpen = false;\n public isOpening = false;\n\n public flyoutWidth = 0;\n public instanceReady = false;\n public isDragging = false;\n public isFullscreen = false;\n public resizeKeyControlActive = false;\n\n private xCoord = 0;\n private windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this._messageStream;\n }\n\n public get permalink(): SkyFlyoutPermalink {\n const permalink = this.config.permalink;\n if (permalink) {\n return permalink;\n }\n\n return {};\n }\n\n public get permalinkLabel(): string {\n if (this.permalink.label) {\n return this.permalink.label;\n }\n\n return this.getString('skyux_flyout_permalink_button');\n }\n\n public get primaryAction(): SkyFlyoutAction {\n const primaryAction = this.config.primaryAction;\n if (primaryAction) {\n return primaryAction;\n }\n\n return {};\n }\n\n public get primaryActionLabel(): string {\n if (this.config.primaryAction && this.config.primaryAction.label) {\n return this.config.primaryAction.label;\n }\n\n return this.getString('skyux_flyout_primary_action_button');\n }\n\n public themeName: string;\n\n /**\n * @internal\n */\n public widthStep = 10;\n\n /**\n * @internal\n */\n @ViewChild('flyoutRef', {\n read: ElementRef,\n static: true,\n })\n public flyoutRef: ElementRef;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n private target: ViewContainerRef;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n private flyoutHeader: ElementRef;\n\n private flyoutInstance: SkyFlyoutInstance<any>;\n\n private ngUnsubscribe = new Subject();\n\n private _messageStream = new Subject<SkyFlyoutMessage>();\n\n constructor(\n private adapter: SkyFlyoutAdapterService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private resourcesService: SkyLibResourcesService,\n private flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n private elementRef: ElementRef,\n private uiConfigService: SkyUIConfigService,\n private readonly _ngZone: NgZone\n ) {\n // All commands flow through the message stream.\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.handleIncomingMessages(message);\n });\n }\n\n public ngOnInit(): void {\n this.adapter.adjustHeaderForHelp(this.flyoutHeader);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n public onWindowResize(event: any): void {\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n event.target.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(event.target.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n\n if (event.target.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = event.target.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n }\n\n public attach<T>(\n component: Type<T>,\n config: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n this.cleanTemplate();\n\n // Emit the closed event on any previously opened flyout instance\n if (this.flyoutInstance) {\n this.notifyClosed();\n }\n\n this.config = Object.assign({ providers: [] }, config);\n this.config.defaultWidth =\n this.config.defaultWidth || window.innerWidth / 2;\n this.config.minWidth = this.config.minWidth || 320;\n this.config.maxWidth = this.config.maxWidth || this.config.defaultWidth;\n\n this.config.showIterator = this.config.showIterator || false;\n this.config.iteratorNextButtonDisabled =\n this.config.iteratorNextButtonDisabled || false;\n this.config.iteratorPreviousButtonDisabled =\n this.config.iteratorPreviousButtonDisabled || false;\n\n const factory = this.resolver.resolveComponentFactory(component);\n\n const injector = Injector.create({\n parent: this.injector,\n providers: this.config.providers,\n });\n\n const componentRef = this.target.createComponent(\n factory,\n undefined,\n injector\n );\n\n this.flyoutInstance = this.createFlyoutInstance<T>(componentRef.instance);\n\n // This is used to ensure we do not render the flyout until we have attached the component.\n // This allows the aria-labelledby to function correctly.\n this.instanceReady = true;\n this.changeDetector.markForCheck();\n\n // Open the flyout immediately.\n this.messageStream.next({\n type: SkyFlyoutMessageType.Open,\n });\n\n if (this.config.settingsKey) {\n this.uiConfigService\n .getConfig(this.config.settingsKey)\n .pipe(take(1))\n .subscribe((value: any) => {\n if (value && value.flyoutWidth) {\n this.flyoutWidth = value.flyoutWidth;\n } else {\n // Bad data, or config is the default config.\n this.flyoutWidth = this.config.defaultWidth;\n }\n this.checkInitialSize();\n });\n } else {\n this.flyoutWidth = this.config.defaultWidth;\n this.checkInitialSize();\n }\n\n return this.flyoutInstance;\n }\n\n public close(): void {\n this.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n });\n }\n\n public invokePrimaryAction(): boolean {\n this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\n }\n\n public getAnimationState(): string {\n return this.instanceReady && this.isOpening\n ? FLYOUT_OPEN_STATE\n : FLYOUT_CLOSED_STATE;\n }\n\n public animationDone(event: AnimationEvent): void {\n if (event.toState === FLYOUT_OPEN_STATE) {\n this.isOpen = true;\n }\n\n if (event.toState === FLYOUT_CLOSED_STATE) {\n this.isOpen = false;\n this.notifyClosed();\n this.cleanTemplate();\n }\n }\n\n public onHeaderGrabHandleMouseDown(event: MouseEvent): void {\n this.onResizeHandleMouseDown(event);\n }\n\n public onHeaderGrabHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleMouseDown(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isFullscreen) {\n return;\n }\n\n this.isDragging = true;\n this.xCoord = event.clientX;\n\n this.adapter.toggleIframePointerEvents(false);\n\n fromEvent(document, 'mousemove')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onMouseMove(moveEvent);\n });\n\n fromEvent(document, 'mouseup')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((mouseUpEvent: any) => {\n this.onHandleRelease(mouseUpEvent);\n });\n }\n\n public onMouseMove(event: MouseEvent): void {\n /* Sanity check */\n /* istanbul ignore if */\n if (!this.isDragging) {\n return;\n }\n\n const offsetX = event.clientX - this.xCoord;\n let width = this.flyoutWidth;\n\n width -= offsetX;\n\n if (width < this.config.minWidth || width > this.config.maxWidth) {\n return;\n }\n\n if (window.innerWidth - width < this.windowBufferSize) {\n width = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n } else {\n this.xCoord = event.clientX;\n }\n\n this.flyoutWidth = width;\n\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n\n this.changeDetector.markForCheck();\n }\n\n public onHandleRelease(event: MouseEvent): void {\n fromEvent(document, 'click')\n .pipe(take(1))\n .subscribe(() => {\n this.isDragging = false;\n this.adapter.toggleIframePointerEvents(true);\n this.setUserData();\n });\n }\n\n public onIteratorPreviousButtonClick(): void {\n this.flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n\n public onIteratorNextButtonClick(): void {\n this.flyoutInstance.iteratorNextButtonClick.emit();\n }\n\n private createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>();\n\n instance.componentInstance = component;\n instance.hostController\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.messageStream.next(message);\n });\n\n return instance;\n }\n\n private handleIncomingMessages(message: SkyFlyoutMessage): void {\n switch (message.type) {\n case SkyFlyoutMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = false;\n this.isOpening = true;\n }\n this.initFocusTrap();\n break;\n\n case SkyFlyoutMessageType.Close:\n if (\n (this.flyoutInstance.beforeClose as Subject<any>).observers.length ===\n 0 ||\n message.data?.ignoreBeforeClose\n ) {\n this.isOpen = true;\n this.isOpening = false;\n } else {\n (this.flyoutInstance.beforeClose as Subject<any>).next(\n new SkyFlyoutBeforeCloseHandler(() => {\n this.isOpen = true;\n this.isOpening = false;\n })\n );\n }\n break;\n\n case SkyFlyoutMessageType.EnableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.EnableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = true;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = true;\n break;\n }\n\n this.changeDetector.markForCheck();\n }\n\n private notifyClosed(): void {\n this.flyoutInstance.closed.emit();\n this.flyoutInstance.closed.complete();\n }\n\n private cleanTemplate(): void {\n this.target.clear();\n }\n\n private updateBreakpointAndResponsiveClass(width: number): void {\n this.flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpiont = this.flyoutMediaQueryService.current;\n\n this.adapter.setResponsiveClass(this.elementRef, newBreakpiont);\n }\n\n private setFullscreen(): void {\n if (window.innerWidth - this.windowBufferSize < this.config.minWidth) {\n this.isFullscreen = true;\n } else {\n this.isFullscreen = false;\n }\n }\n\n private setUserData(): void {\n if (this.config.settingsKey) {\n this.uiConfigService\n .setConfig(this.config.settingsKey, {\n flyoutWidth: this.flyoutWidth,\n })\n .pipe(take(1))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n private checkInitialSize(): void {\n if (this.flyoutWidth < this.config.minWidth) {\n this.flyoutWidth = this.config.minWidth;\n this.setUserData();\n } else if (this.flyoutWidth > this.config.maxWidth) {\n this.flyoutWidth = this.config.maxWidth;\n this.setUserData();\n }\n\n // Ensure flyout does not load larger than the window and its buffer\n if (window.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n window.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(window.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n }\n\n private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n\n private handleResizeKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key) {\n const keyPressed = event.key.toLowerCase().replace('arrow', '');\n switch (keyPressed) {\n case 'enter':\n case ' ':\n this.resizeKeyControlActive = !this.resizeKeyControlActive;\n break;\n case 'tab':\n /* istanbul ignore else */\n if (this.resizeKeyControlActive) {\n this.resizeKeyControlActive = false;\n }\n break;\n case 'left':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth < this.config.maxWidth) {\n this.flyoutWidth = Math.min(\n this.flyoutWidth + this.widthStep,\n this.config.maxWidth\n );\n }\n }\n break;\n\n case 'right':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth > this.config.minWidth) {\n this.flyoutWidth = Math.max(\n this.flyoutWidth - this.widthStep,\n this.config.minWidth\n );\n }\n }\n break;\n\n /* istanbul ignore next */\n default:\n break;\n }\n }\n }\n\n /** Executes a function when the zone is stable. */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n private initFocusTrap(): void {\n this.enableTrapFocusAutoCapture = false;\n this.enableTrapFocus = false;\n // Waiting for zone to be stable will avoid ExpressionChangeAfterCheckedError.\n this._executeOnStable(() => {\n this.enableTrapFocusAutoCapture = true;\n this.enableTrapFocus = true;\n });\n }\n}\n","<div\n class=\"sky-flyout\"\n tabindex=\"-1\"\n [attr.role]=\"config?.ariaRole ? config.ariaRole : 'dialog'\"\n [attr.aria-describedby]=\"config?.ariaDescribedBy\"\n [attr.aria-label]=\"config?.ariaLabel\"\n [attr.aria-labelledby]=\"config?.ariaLabelledBy\"\n [attr.aria-modal]=\"\n config?.ariaRole === 'dialog' || !config?.ariaRole ? true : false\n \"\n [attr.hidden]=\"!instanceReady ? true : undefined\"\n [id]=\"flyoutId\"\n [ngClass]=\"{\n 'sky-flyout-hidden': !isOpen && !isOpening,\n 'sky-flyout-fullscreen': isFullscreen\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-elevation-8': 'modern'\n }\"\n (@flyoutState.done)=\"animationDone($event)\"\n [@flyoutState]=\"getAnimationState()\"\n [style.width.px]=\"flyoutWidth\"\n #flyoutRef\n [cdkTrapFocus]=\"enableTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"enableTrapFocusAutoCapture\"\n>\n <div\n class=\"sky-flyout-header\"\n [skyThemeClass]=\"{\n 'sky-padding-squish-large': 'default'\n }\"\n #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"sky-btn sky-btn-icon-borderless sky-margin-inline-sm sky-flyout-header-grab-handle\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n (keydown)=\"onHeaderGrabHandleKeyDown($event)\"\n (mousedown)=\"onHeaderGrabHandleMouseDown($event)\"\n >\n <sky-icon icon=\"tile-drag\" iconType=\"skyux\" size=\"lg\"> </sky-icon>\n </button>\n\n <sky-flyout-iterator\n *ngIf=\"config.showIterator\"\n [nextButtonDisabled]=\"config.iteratorNextButtonDisabled\"\n [previousButtonDisabled]=\"config.iteratorPreviousButtonDisabled\"\n (nextButtonClick)=\"onIteratorNextButtonClick()\"\n (previousButtonClick)=\"onIteratorPreviousButtonClick()\"\n >\n </sky-flyout-iterator>\n </div>\n <div class=\"sky-flyout-header-buttons\">\n <ng-container *ngTemplateOutlet=\"permalinkTemplate\"> </ng-container>\n <ng-container *ngTemplateOutlet=\"primaryActionTemplate\"> </ng-container>\n <button\n class=\"sky-btn sky-flyout-btn-close sky-label-icon-theme-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_flyout_close' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"close\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n </div>\n </div>\n <div class=\"sky-flyout-content\">\n <div #target></div>\n </div>\n <div\n class=\"sky-flyout-resize-handle\"\n role=\"separator\"\n tabindex=\"0\"\n type=\"range\"\n [attr.aria-controls]=\"flyoutId\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"config.maxWidth\"\n [attr.aria-valuemin]=\"config.minWidth\"\n [attr.aria-valuenow]=\"flyoutWidth\"\n (keydown)=\"onResizeHandleKeyDown($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n ></div>\n</div>\n\n<ng-template #permalinkTemplate>\n <ng-template [ngIf]=\"permalink\">\n <ng-template [ngIf]=\"permalink.url\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n <ng-template [ngIf]=\"permalink.route\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [routerLink]=\"permalink.route.commands\"\n [fragment]=\"permalink.route.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n [queryParams]=\"permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route.extras?.queryParamsHandling\"\n [state]=\"permalink.route.extras?.state\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template #primaryActionTemplate>\n <ng-template [ngIf]=\"primaryAction && primaryAction.callback\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-flyout-btn-primary-action sky-margin-inline-default\"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyHrefModule } from '@skyux/router';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFlyoutResourcesModule } from '../shared/sky-flyout-resources.module';\n\nimport { SkyFlyoutIteratorComponent } from './flyout-iterator.component';\nimport { SkyFlyoutComponent } from './flyout.component';\n\n@NgModule({\n declarations: [SkyFlyoutComponent, SkyFlyoutIteratorComponent],\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n RouterModule,\n SkyI18nModule,\n SkyIconModule,\n SkyFlyoutResourcesModule,\n SkyThemeModule,\n SkyHrefModule,\n ],\n exports: [SkyFlyoutComponent],\n})\nexport class SkyFlyoutModule {}\n","import {\n ComponentRef,\n Injectable,\n NgZone,\n OnDestroy,\n Type,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutComponent } from './flyout.component';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Launches flyouts and provides a common look and feel.\n * This service dynamically generates the flyout component and appends it directly to the\n * document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyFlyoutService implements OnDestroy {\n private host: ComponentRef<SkyFlyoutComponent>;\n private removeAfterClosed = false;\n private isOpening = false;\n private ngUnsubscribe = new Subject<boolean>();\n\n constructor(\n private coreAdapter: SkyCoreAdapterService,\n private windowRef: SkyAppWindowRef,\n private dynamicComponentService: SkyDynamicComponentService,\n private router: Router,\n private readonly _ngZone: NgZone\n ) {}\n\n public ngOnDestroy(): void {\n this.removeListners();\n if (this.host) {\n this.removeHostComponent();\n }\n }\n\n /**\n * Closes the flyout. This method also removes the flyout's HTML elements from the DOM.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n if (this.host && !this.isOpening) {\n this.host.instance.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n data: {\n ignoreBeforeClose: args ? args.ignoreBeforeClose : false,\n },\n });\n }\n }\n\n /**\n * Opens a flyout and displays the specified component.\n * @param component Specifies the component to render.\n * @param config Specifies the flyout configuration passed to the specified component's constructor.\n */\n public open<T>(\n component: Type<T>,\n config?: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n // isOpening flag will prevent close() from firing when open() is also fired.\n this.isOpening = true;\n this.windowRef.nativeWindow.setTimeout(() => {\n this.isOpening = false;\n });\n\n if (!this.host) {\n this.host = this.createHostComponent();\n\n this.router.events\n .pipe(takeWhile(() => this.host !== undefined))\n .subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.close();\n\n // Sanity check - if the host still exists after animations should have completed - remove host\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.host) {\n this.removeHostComponent();\n }\n });\n }\n });\n }\n\n const flyout = this.host.instance.attach(component, config);\n\n this.addListeners(flyout);\n\n return flyout;\n }\n\n private createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.host =\n this.dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.host;\n }\n\n private removeHostComponent(): void {\n if (this.host) {\n this.dynamicComponentService.removeComponent(this.host);\n this.host = undefined;\n }\n }\n\n private addListeners<T>(flyout: SkyFlyoutInstance<T>): void {\n /* istanbul ignore else */\n if (this.host) {\n const flyoutInstance = this.host.instance;\n\n let doClose = false;\n\n /**\n * Handles when to close a flyout.\n * Note: We're using `mouseup` in order to capture the parent of certain targets that will be\n * deleted immediately after being clicked. If we use `click`, the event is fired after the\n * element is removed from the DOM making it impossible to check the parent's z-index\n * relative to the flyout's container.\n */\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: MouseEvent) => {\n doClose = false;\n\n if (this.host.instance.isDragging) {\n return;\n }\n\n if (flyoutInstance.flyoutRef.nativeElement.contains(event.target)) {\n return;\n }\n\n const isAbove =\n event.target === document\n ? false\n : this.coreAdapter.isTargetAboveElement(\n event.target,\n flyoutInstance.flyoutRef.nativeElement\n );\n\n /* istanbul ignore else */\n if (!isAbove) {\n doClose = true;\n }\n });\n\n /**\n * Check if we should close the flyout specifically on a `click` event so that we can keep\n * it open when consumers fire another `click` event on a trigger button. Since the consumer\n * will likely use a `click` event to open the flyout, we want to wait for that event to fire\n * before determining if the flyout should be closed.\n */\n fromEvent(document, 'click')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (doClose) {\n this.close();\n }\n });\n\n this.removeAfterClosed = false;\n flyoutInstance.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n if (message.type === SkyFlyoutMessageType.Close) {\n this.removeAfterClosed = true;\n this.isOpening = false;\n }\n });\n\n flyout.closed.pipe(take(1)).subscribe(() => {\n this.removeListners();\n if (this.removeAfterClosed) {\n this.removeHostComponent();\n }\n });\n }\n }\n\n private removeListners(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n this.ngUnsubscribe = new Subject<boolean>();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i1.SkyFlyoutAdapterService","i2","i3.SkyFlyoutMediaQueryService","i4","i5","i6.SkyFlyoutIteratorComponent","i8","i11"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-flyout.mjs","sources":["../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-message-type.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-instance.ts","../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-adapter.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-media-query.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-before-close-handler.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts","../../../../../libs/components/flyout/src/skyux-flyout.ts"],"sourcesContent":["/**\n * @internal\n */\nexport enum SkyFlyoutMessageType {\n Open = 0,\n Close,\n EnableIteratorNextButton,\n EnableIteratorPreviousButton,\n DisableIteratorNextButton,\n DisableIteratorPreviousButton,\n}\n","import { EventEmitter } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Represents a single displayed flyout.\n */\nexport class SkyFlyoutInstance<T> {\n /**\n * An event that the modal instance emits when it is about to close.\n * If a subscription exists for this event,\n * the modal does not close until the subscriber calls the handler's `closeModal` method.\n */\n public get beforeClose(): Observable<SkyFlyoutBeforeCloseHandler> {\n return this._beforeClose;\n }\n\n /**\n * An event that the flyout instance emits when it closes.\n */\n public closed = new EventEmitter<void>();\n\n /**\n * Specifies the instance of the component to display in the flyout.\n */\n public componentInstance: T;\n\n /**\n * Used to communicate with the host component.\n * @internal\n */\n public get hostController(): Subject<SkyFlyoutMessage> {\n return this._hostController;\n }\n\n /**\n * A `boolean` value that returns `true` if the flyout is open.\n * @default true\n */\n public isOpen = true;\n\n /**\n * An event that the flyout instance emits when users click the next iterator button.\n */\n public get iteratorNextButtonClick(): EventEmitter<void> {\n return this._iteratorNextButtonClick;\n }\n\n /**\n * An event that the flyout instance emits when users click the previous iterator button.\n */\n public get iteratorPreviousButtonClick(): EventEmitter<void> {\n return this._iteratorPreviousButtonClick;\n }\n\n /**\n * Disables the next iterator button.\n * @default false\n */\n public set iteratorNextButtonDisabled(newValue: boolean) {\n this._iteratorNextButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorNextButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorNextButton,\n });\n }\n }\n\n public get iteratorNextButtonDisabled(): boolean {\n return this._iteratorNextButtonDisabled;\n }\n\n /**\n * Disables the previous iterator button.\n * @default false\n */\n public set iteratorPreviousButtonDisabled(newValue: boolean) {\n this._iteratorPreviousButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorPreviousButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorPreviousButton,\n });\n }\n }\n\n public get iteratorPreviousButtonDisabled(): boolean {\n return this._iteratorPreviousButtonDisabled;\n }\n\n private _beforeClose = new Subject<SkyFlyoutBeforeCloseHandler>();\n\n private _iteratorNextButtonClick = new EventEmitter<void>();\n\n private _iteratorPreviousButtonClick = new EventEmitter<void>();\n\n private _iteratorNextButtonDisabled = false;\n\n private _iteratorPreviousButtonDisabled = false;\n\n private _hostController = new Subject<SkyFlyoutMessage>();\n\n constructor() {\n this.closed.subscribe(() => {\n this.isOpen = false;\n });\n }\n\n /**\n * Closes the flyout instance and emits its `closed` event.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n this.hostController.next({\n type: SkyFlyoutMessageType.Close,\n data: { ignoreBeforeClose: args ? args.ignoreBeforeClose : false },\n });\n\n this._iteratorPreviousButtonClick.complete();\n this._iteratorNextButtonClick.complete();\n\n this.hostController.complete();\n }\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-flyout' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_flyout_close: { message: 'Close flyout' },\n skyux_flyout_iterator_previous_button: { message: 'Previous' },\n skyux_flyout_iterator_next_button: { message: 'Next' },\n skyux_flyout_permalink_button: { message: 'View record' },\n skyux_flyout_primary_action_button: { message: 'Create list' },\n skyux_flyout_resize_handle: {\n message:\n 'Resize the flyout window. Press the enter or space key to activate, then use left arrow key to expand the flyout window and right arrow key to shrink the flyout window. Press the enter, space, or tab key to deactivate.',\n },\n },\n};\n\nexport class SkyFlyoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyFlyoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyFlyoutResourcesModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout-iterator',\n templateUrl: './flyout-iterator.component.html',\n styleUrls: ['./flyout-iterator.component.scss'],\n})\nexport class SkyFlyoutIteratorComponent implements OnDestroy {\n @Input()\n public nextButtonDisabled: boolean;\n\n @Input()\n public previousButtonDisabled: boolean;\n\n @Output()\n public get previousButtonClick(): EventEmitter<void> {\n return this._previousButtonClick;\n }\n\n @Output()\n public get nextButtonClick(): EventEmitter<void> {\n return this._nextButtonClick;\n }\n\n private ngUnsubscribe = new Subject<void>();\n\n private _nextButtonClick = new EventEmitter<void>();\n\n private _previousButtonClick = new EventEmitter<void>();\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this._previousButtonClick.complete();\n this._nextButtonClick.complete();\n }\n\n public onIteratorPreviousClick(): void {\n /* istanbul ignore else */\n if (!this.previousButtonDisabled) {\n this._previousButtonClick.emit();\n }\n }\n\n public onIteratorNextClick(): void {\n /* istanbul ignore else */\n if (!this.nextButtonDisabled) {\n this._nextButtonClick.emit();\n }\n }\n}\n","<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyMediaBreakpoints } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2,\n private windowRef: SkyAppWindowRef\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public adjustHeaderForHelp(header: ElementRef): void {\n const windowObj = this.windowRef.nativeWindow;\n const helpWidget = windowObj.document.getElementById('bb-help-invoker');\n\n if (helpWidget) {\n this.renderer.addClass(header.nativeElement, 'sky-flyout-help-shim');\n }\n }\n\n public setResponsiveClass(\n element: ElementRef,\n breakpoint: SkyMediaBreakpoints\n ): void {\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = 'sky-responsive-container-xs';\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = 'sky-responsive-container-sm';\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = 'sky-responsive-container-md';\n break;\n }\n default: {\n newClass = 'sky-responsive-container-lg';\n break;\n }\n }\n\n this.renderer.addClass(nativeEl, newClass);\n }\n\n public toggleIframePointerEvents(enable: boolean): void {\n // When iframes are present on the page, they may interfere with dragging\n // temporarily disable pointer events in iframes when dragging starts.\n // When re-enabling we set to the empty string as it will remove the element styling\n // and fall back to any css originally given to iframe\n const iframes = document.querySelectorAll('iframe');\n for (let i = 0; i < iframes.length; i++) {\n iframes[i].style.pointerEvents = enable ? '' : 'none';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryListener } from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutMediaQueryService {\n public get current(): SkyMediaBreakpoints {\n return this._current;\n }\n\n private currentSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _current = SkyMediaBreakpoints.xs;\n\n constructor() {\n this.currentSubject.next(this._current);\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public setBreakpointForWidth(width: number): void {\n let breakpoint: SkyMediaBreakpoints;\n\n if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.xs)) {\n breakpoint = SkyMediaBreakpoints.xs;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.sm)) {\n breakpoint = SkyMediaBreakpoints.sm;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.md)) {\n breakpoint = SkyMediaBreakpoints.md;\n } else {\n breakpoint = SkyMediaBreakpoints.lg;\n }\n\n this._current = breakpoint;\n this.currentSubject.next(this._current);\n }\n\n public isWidthWithinBreakpiont(\n width: number,\n breakpoint: SkyMediaBreakpoints\n ): boolean {\n const xsBreakpointMaxPixels = 767;\n const smBreakpointMinPixels = 768;\n const smBreakpointMaxPixels = 991;\n const mdBreakpointMinPixels = 992;\n const mdBreakpointMaxPixels = 1199;\n const lgBreakpointMinPixels = 1200;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n return width <= xsBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.sm: {\n return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.md: {\n return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;\n }\n default: {\n return width >= lgBreakpointMinPixels;\n }\n }\n }\n\n public destroy(): void {\n this.currentSubject.complete();\n }\n}\n","/**\n * Handler for notifying the flyout when it is appropriate to close the flyout. This will be returned from the flyout instance's `beforeClose` observable.\n */\nexport class SkyFlyoutBeforeCloseHandler {\n /**\n * Function which should be called to close the flyout. This should be called once any intervening actions have completed.\n */\n public readonly closeFlyout: Function;\n\n constructor(closeFlyoutFunction: Function) {\n this.closeFlyout = closeFlyoutFunction;\n }\n}\n","import {\n AnimationEvent,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostListener,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutAdapterService } from './flyout-adapter.service';\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutMediaQueryService } from './flyout-media-query.service';\nimport { SkyFlyoutAction } from './types/flyout-action';\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\nimport { SkyFlyoutPermalink } from './types/flyout-permalink';\n\nconst FLYOUT_OPEN_STATE = 'flyoutOpen';\nconst FLYOUT_CLOSED_STATE = 'flyoutClosed';\n\nlet nextId = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n providers: [\n SkyFlyoutAdapterService,\n SkyFlyoutMediaQueryService,\n { provide: SkyMediaQueryService, useExisting: SkyFlyoutMediaQueryService },\n ],\n animations: [\n trigger('flyoutState', [\n state(FLYOUT_OPEN_STATE, style({ transform: 'initial' })),\n state(FLYOUT_CLOSED_STATE, style({ transform: 'translateX(100%)' })),\n transition('void => *', [\n style({ transform: 'translateX(100%)' }),\n animate(250),\n ]),\n transition(`* <=> *`, animate('250ms ease-in')),\n ]),\n ],\n // Allow automatic change detection for child components.\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class SkyFlyoutComponent implements OnDestroy, OnInit {\n public config: SkyFlyoutConfig;\n public enableTrapFocus: boolean;\n public enableTrapFocusAutoCapture: boolean;\n public flyoutId = `sky-flyout-${++nextId}`;\n public flyoutState = FLYOUT_CLOSED_STATE;\n public isOpen = false;\n public isOpening = false;\n\n public flyoutWidth = 0;\n public instanceReady = false;\n public isDragging = false;\n public isFullscreen = false;\n public resizeKeyControlActive = false;\n\n private xCoord = 0;\n private windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this._messageStream;\n }\n\n public get permalink(): SkyFlyoutPermalink {\n const permalink = this.config.permalink;\n if (permalink) {\n return permalink;\n }\n\n return {};\n }\n\n public get permalinkLabel(): string {\n if (this.permalink.label) {\n return this.permalink.label;\n }\n\n return this.getString('skyux_flyout_permalink_button');\n }\n\n public get primaryAction(): SkyFlyoutAction {\n const primaryAction = this.config.primaryAction;\n if (primaryAction) {\n return primaryAction;\n }\n\n return {};\n }\n\n public get primaryActionLabel(): string {\n if (this.config.primaryAction && this.config.primaryAction.label) {\n return this.config.primaryAction.label;\n }\n\n return this.getString('skyux_flyout_primary_action_button');\n }\n\n public themeName: string;\n\n /**\n * @internal\n */\n public widthStep = 10;\n\n /**\n * @internal\n */\n @ViewChild('flyoutRef', {\n read: ElementRef,\n static: true,\n })\n public flyoutRef: ElementRef;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n private target: ViewContainerRef;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n private flyoutHeader: ElementRef;\n\n private flyoutInstance: SkyFlyoutInstance<any>;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _messageStream = new Subject<SkyFlyoutMessage>();\n\n constructor(\n private adapter: SkyFlyoutAdapterService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private resourcesService: SkyLibResourcesService,\n private flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n private elementRef: ElementRef,\n private uiConfigService: SkyUIConfigService,\n private readonly _ngZone: NgZone\n ) {\n // All commands flow through the message stream.\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.handleIncomingMessages(message);\n });\n }\n\n public ngOnInit(): void {\n this.adapter.adjustHeaderForHelp(this.flyoutHeader);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n public onWindowResize(event: any): void {\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n event.target.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(event.target.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n\n if (event.target.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = event.target.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n }\n\n public attach<T>(\n component: Type<T>,\n config: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n this.cleanTemplate();\n\n // Emit the closed event on any previously opened flyout instance\n if (this.flyoutInstance) {\n this.notifyClosed();\n }\n\n this.config = Object.assign({ providers: [] }, config);\n this.config.defaultWidth =\n this.config.defaultWidth || window.innerWidth / 2;\n this.config.minWidth = this.config.minWidth || 320;\n this.config.maxWidth = this.config.maxWidth || this.config.defaultWidth;\n\n this.config.showIterator = this.config.showIterator || false;\n this.config.iteratorNextButtonDisabled =\n this.config.iteratorNextButtonDisabled || false;\n this.config.iteratorPreviousButtonDisabled =\n this.config.iteratorPreviousButtonDisabled || false;\n\n const factory = this.resolver.resolveComponentFactory(component);\n\n const injector = Injector.create({\n parent: this.injector,\n providers: this.config.providers,\n });\n\n const componentRef = this.target.createComponent(\n factory,\n undefined,\n injector\n );\n\n this.flyoutInstance = this.createFlyoutInstance<T>(componentRef.instance);\n\n // This is used to ensure we do not render the flyout until we have attached the component.\n // This allows the aria-labelledby to function correctly.\n this.instanceReady = true;\n this.changeDetector.markForCheck();\n\n // Open the flyout immediately.\n this.messageStream.next({\n type: SkyFlyoutMessageType.Open,\n });\n\n if (this.config.settingsKey) {\n this.uiConfigService\n .getConfig(this.config.settingsKey)\n .pipe(take(1))\n .subscribe((value: any) => {\n if (value && value.flyoutWidth) {\n this.flyoutWidth = value.flyoutWidth;\n } else {\n // Bad data, or config is the default config.\n this.flyoutWidth = this.config.defaultWidth;\n }\n this.checkInitialSize();\n });\n } else {\n this.flyoutWidth = this.config.defaultWidth;\n this.checkInitialSize();\n }\n\n return this.flyoutInstance;\n }\n\n public close(): void {\n this.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n });\n }\n\n public invokePrimaryAction(): boolean {\n this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\n }\n\n public getAnimationState(): string {\n return this.instanceReady && this.isOpening\n ? FLYOUT_OPEN_STATE\n : FLYOUT_CLOSED_STATE;\n }\n\n public animationDone(event: AnimationEvent): void {\n if (event.toState === FLYOUT_OPEN_STATE) {\n this.isOpen = true;\n }\n\n if (event.toState === FLYOUT_CLOSED_STATE) {\n this.isOpen = false;\n this.notifyClosed();\n this.cleanTemplate();\n }\n }\n\n public onHeaderGrabHandleMouseDown(event: MouseEvent): void {\n this.onResizeHandleMouseDown(event);\n }\n\n public onHeaderGrabHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleMouseDown(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isFullscreen) {\n return;\n }\n\n this.isDragging = true;\n this.xCoord = event.clientX;\n\n this.adapter.toggleIframePointerEvents(false);\n\n fromEvent(document, 'mousemove')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onMouseMove(moveEvent);\n });\n\n fromEvent(document, 'mouseup')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((mouseUpEvent: any) => {\n this.onHandleRelease(mouseUpEvent);\n });\n }\n\n public onMouseMove(event: MouseEvent): void {\n /* Sanity check */\n /* istanbul ignore if */\n if (!this.isDragging) {\n return;\n }\n\n const offsetX = event.clientX - this.xCoord;\n let width = this.flyoutWidth;\n\n width -= offsetX;\n\n if (width < this.config.minWidth || width > this.config.maxWidth) {\n return;\n }\n\n if (window.innerWidth - width < this.windowBufferSize) {\n width = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n } else {\n this.xCoord = event.clientX;\n }\n\n this.flyoutWidth = width;\n\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n\n this.changeDetector.markForCheck();\n }\n\n public onHandleRelease(event: MouseEvent): void {\n fromEvent(document, 'click')\n .pipe(take(1))\n .subscribe(() => {\n this.isDragging = false;\n this.adapter.toggleIframePointerEvents(true);\n this.setUserData();\n });\n }\n\n public onIteratorPreviousButtonClick(): void {\n this.flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n\n public onIteratorNextButtonClick(): void {\n this.flyoutInstance.iteratorNextButtonClick.emit();\n }\n\n private createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>();\n\n instance.componentInstance = component;\n instance.hostController\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.messageStream.next(message);\n });\n\n return instance;\n }\n\n private handleIncomingMessages(message: SkyFlyoutMessage): void {\n switch (message.type) {\n case SkyFlyoutMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = false;\n this.isOpening = true;\n }\n this.initFocusTrap();\n break;\n\n case SkyFlyoutMessageType.Close:\n if (\n (this.flyoutInstance.beforeClose as Subject<any>).observers.length ===\n 0 ||\n message.data?.ignoreBeforeClose\n ) {\n this.isOpen = true;\n this.isOpening = false;\n } else {\n (this.flyoutInstance.beforeClose as Subject<any>).next(\n new SkyFlyoutBeforeCloseHandler(() => {\n this.isOpen = true;\n this.isOpening = false;\n })\n );\n }\n break;\n\n case SkyFlyoutMessageType.EnableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.EnableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = true;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = true;\n break;\n }\n\n this.changeDetector.markForCheck();\n }\n\n private notifyClosed(): void {\n this.flyoutInstance.closed.emit();\n this.flyoutInstance.closed.complete();\n }\n\n private cleanTemplate(): void {\n this.target.clear();\n }\n\n private updateBreakpointAndResponsiveClass(width: number): void {\n this.flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpiont = this.flyoutMediaQueryService.current;\n\n this.adapter.setResponsiveClass(this.elementRef, newBreakpiont);\n }\n\n private setFullscreen(): void {\n if (window.innerWidth - this.windowBufferSize < this.config.minWidth) {\n this.isFullscreen = true;\n } else {\n this.isFullscreen = false;\n }\n }\n\n private setUserData(): void {\n if (this.config.settingsKey) {\n this.uiConfigService\n .setConfig(this.config.settingsKey, {\n flyoutWidth: this.flyoutWidth,\n })\n .pipe(take(1))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n private checkInitialSize(): void {\n if (this.flyoutWidth < this.config.minWidth) {\n this.flyoutWidth = this.config.minWidth;\n this.setUserData();\n } else if (this.flyoutWidth > this.config.maxWidth) {\n this.flyoutWidth = this.config.maxWidth;\n this.setUserData();\n }\n\n // Ensure flyout does not load larger than the window and its buffer\n if (window.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n window.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(window.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n }\n\n private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n\n private handleResizeKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key) {\n const keyPressed = event.key.toLowerCase().replace('arrow', '');\n switch (keyPressed) {\n case 'enter':\n case ' ':\n this.resizeKeyControlActive = !this.resizeKeyControlActive;\n break;\n case 'tab':\n /* istanbul ignore else */\n if (this.resizeKeyControlActive) {\n this.resizeKeyControlActive = false;\n }\n break;\n case 'left':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth < this.config.maxWidth) {\n this.flyoutWidth = Math.min(\n this.flyoutWidth + this.widthStep,\n this.config.maxWidth\n );\n }\n }\n break;\n\n case 'right':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth > this.config.minWidth) {\n this.flyoutWidth = Math.max(\n this.flyoutWidth - this.widthStep,\n this.config.minWidth\n );\n }\n }\n break;\n\n /* istanbul ignore next */\n default:\n break;\n }\n }\n }\n\n /** Executes a function when the zone is stable. */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n private initFocusTrap(): void {\n this.enableTrapFocusAutoCapture = false;\n this.enableTrapFocus = false;\n // Waiting for zone to be stable will avoid ExpressionChangeAfterCheckedError.\n this._executeOnStable(() => {\n this.enableTrapFocusAutoCapture = true;\n this.enableTrapFocus = true;\n });\n }\n}\n","<div\n class=\"sky-flyout\"\n tabindex=\"-1\"\n [attr.role]=\"config?.ariaRole ? config.ariaRole : 'dialog'\"\n [attr.aria-describedby]=\"config?.ariaDescribedBy\"\n [attr.aria-label]=\"config?.ariaLabel\"\n [attr.aria-labelledby]=\"config?.ariaLabelledBy\"\n [attr.aria-modal]=\"\n config?.ariaRole === 'dialog' || !config?.ariaRole ? true : false\n \"\n [attr.hidden]=\"!instanceReady ? true : undefined\"\n [id]=\"flyoutId\"\n [ngClass]=\"{\n 'sky-flyout-hidden': !isOpen && !isOpening,\n 'sky-flyout-fullscreen': isFullscreen\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-elevation-8': 'modern'\n }\"\n (@flyoutState.done)=\"animationDone($event)\"\n [@flyoutState]=\"getAnimationState()\"\n [style.width.px]=\"flyoutWidth\"\n #flyoutRef\n [cdkTrapFocus]=\"enableTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"enableTrapFocusAutoCapture\"\n>\n <div\n class=\"sky-flyout-header\"\n [skyThemeClass]=\"{\n 'sky-padding-squish-large': 'default'\n }\"\n #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"sky-btn sky-btn-icon-borderless sky-margin-inline-sm sky-flyout-header-grab-handle\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n (keydown)=\"onHeaderGrabHandleKeyDown($event)\"\n (mousedown)=\"onHeaderGrabHandleMouseDown($event)\"\n >\n <sky-icon icon=\"tile-drag\" iconType=\"skyux\" size=\"lg\"> </sky-icon>\n </button>\n\n <sky-flyout-iterator\n *ngIf=\"config.showIterator\"\n [nextButtonDisabled]=\"config.iteratorNextButtonDisabled\"\n [previousButtonDisabled]=\"config.iteratorPreviousButtonDisabled\"\n (nextButtonClick)=\"onIteratorNextButtonClick()\"\n (previousButtonClick)=\"onIteratorPreviousButtonClick()\"\n >\n </sky-flyout-iterator>\n </div>\n <div class=\"sky-flyout-header-buttons\">\n <ng-container *ngTemplateOutlet=\"permalinkTemplate\"> </ng-container>\n <ng-container *ngTemplateOutlet=\"primaryActionTemplate\"> </ng-container>\n <button\n class=\"sky-btn sky-flyout-btn-close sky-label-icon-theme-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_flyout_close' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"close\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n </div>\n </div>\n <div class=\"sky-flyout-content\">\n <div #target></div>\n </div>\n <div\n class=\"sky-flyout-resize-handle\"\n role=\"separator\"\n tabindex=\"0\"\n type=\"range\"\n [attr.aria-controls]=\"flyoutId\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"config.maxWidth\"\n [attr.aria-valuemin]=\"config.minWidth\"\n [attr.aria-valuenow]=\"flyoutWidth\"\n (keydown)=\"onResizeHandleKeyDown($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n ></div>\n</div>\n\n<ng-template #permalinkTemplate>\n <ng-template [ngIf]=\"permalink\">\n <ng-template [ngIf]=\"permalink.url\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n <ng-template [ngIf]=\"permalink.route\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [routerLink]=\"permalink.route.commands\"\n [fragment]=\"permalink.route.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n [queryParams]=\"permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route.extras?.queryParamsHandling\"\n [state]=\"permalink.route.extras?.state\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template #primaryActionTemplate>\n <ng-template [ngIf]=\"primaryAction && primaryAction.callback\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-flyout-btn-primary-action sky-margin-inline-default\"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyHrefModule } from '@skyux/router';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFlyoutResourcesModule } from '../shared/sky-flyout-resources.module';\n\nimport { SkyFlyoutIteratorComponent } from './flyout-iterator.component';\nimport { SkyFlyoutComponent } from './flyout.component';\n\n@NgModule({\n declarations: [SkyFlyoutComponent, SkyFlyoutIteratorComponent],\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n RouterModule,\n SkyI18nModule,\n SkyIconModule,\n SkyFlyoutResourcesModule,\n SkyThemeModule,\n SkyHrefModule,\n ],\n exports: [SkyFlyoutComponent],\n})\nexport class SkyFlyoutModule {}\n","import {\n ComponentRef,\n Injectable,\n NgZone,\n OnDestroy,\n Type,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutComponent } from './flyout.component';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Launches flyouts and provides a common look and feel.\n * This service dynamically generates the flyout component and appends it directly to the\n * document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyFlyoutService implements OnDestroy {\n private host: ComponentRef<SkyFlyoutComponent>;\n private removeAfterClosed = false;\n private isOpening = false;\n private ngUnsubscribe = new Subject<boolean>();\n\n constructor(\n private coreAdapter: SkyCoreAdapterService,\n private windowRef: SkyAppWindowRef,\n private dynamicComponentService: SkyDynamicComponentService,\n private router: Router,\n private readonly _ngZone: NgZone\n ) {}\n\n public ngOnDestroy(): void {\n this.removeListners();\n if (this.host) {\n this.removeHostComponent();\n }\n }\n\n /**\n * Closes the flyout. This method also removes the flyout's HTML elements from the DOM.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n if (this.host && !this.isOpening) {\n this.host.instance.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n data: {\n ignoreBeforeClose: args ? args.ignoreBeforeClose : false,\n },\n });\n }\n }\n\n /**\n * Opens a flyout and displays the specified component.\n * @param component Specifies the component to render.\n * @param config Specifies the flyout configuration passed to the specified component's constructor.\n */\n public open<T>(\n component: Type<T>,\n config?: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n // isOpening flag will prevent close() from firing when open() is also fired.\n this.isOpening = true;\n this.windowRef.nativeWindow.setTimeout(() => {\n this.isOpening = false;\n });\n\n if (!this.host) {\n this.host = this.createHostComponent();\n\n this.router.events\n .pipe(takeWhile(() => this.host !== undefined))\n .subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.close();\n\n // Sanity check - if the host still exists after animations should have completed - remove host\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.host) {\n this.removeHostComponent();\n }\n });\n }\n });\n }\n\n const flyout = this.host.instance.attach(component, config);\n\n this.addListeners(flyout);\n\n return flyout;\n }\n\n private createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.host =\n this.dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.host;\n }\n\n private removeHostComponent(): void {\n if (this.host) {\n this.dynamicComponentService.removeComponent(this.host);\n this.host = undefined;\n }\n }\n\n private addListeners<T>(flyout: SkyFlyoutInstance<T>): void {\n /* istanbul ignore else */\n if (this.host) {\n const flyoutInstance = this.host.instance;\n\n let doClose = false;\n\n /**\n * Handles when to close a flyout.\n * Note: We're using `mouseup` in order to capture the parent of certain targets that will be\n * deleted immediately after being clicked. If we use `click`, the event is fired after the\n * element is removed from the DOM making it impossible to check the parent's z-index\n * relative to the flyout's container.\n */\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: MouseEvent) => {\n doClose = false;\n\n if (this.host.instance.isDragging) {\n return;\n }\n\n if (flyoutInstance.flyoutRef.nativeElement.contains(event.target)) {\n return;\n }\n\n const isAbove =\n event.target === document\n ? false\n : this.coreAdapter.isTargetAboveElement(\n event.target,\n flyoutInstance.flyoutRef.nativeElement\n );\n\n /* istanbul ignore else */\n if (!isAbove) {\n doClose = true;\n }\n });\n\n /**\n * Check if we should close the flyout specifically on a `click` event so that we can keep\n * it open when consumers fire another `click` event on a trigger button. Since the consumer\n * will likely use a `click` event to open the flyout, we want to wait for that event to fire\n * before determining if the flyout should be closed.\n */\n fromEvent(document, 'click')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (doClose) {\n this.close();\n }\n });\n\n this.removeAfterClosed = false;\n flyoutInstance.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n if (message.type === SkyFlyoutMessageType.Close) {\n this.removeAfterClosed = true;\n this.isOpening = false;\n }\n });\n\n flyout.closed.pipe(take(1)).subscribe(() => {\n this.removeListners();\n if (this.removeAfterClosed) {\n this.removeHostComponent();\n }\n });\n }\n }\n\n private removeListners(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n this.ngUnsubscribe = new Subject<boolean>();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i1.SkyFlyoutAdapterService","i2","i3.SkyFlyoutMediaQueryService","i4","i5","i6.SkyFlyoutIteratorComponent","i8","i11"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG;AACS,IAAA,qBAOX;AAPD,CAAA,UAAY,oBAAoB,EAAA;IAC9B,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,oBAAA,CAAA,oBAAA,CAAA,0BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,0BAAwB,CAAA;IACxB,oBAAA,CAAA,oBAAA,CAAA,8BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,8BAA4B,CAAA;IAC5B,oBAAA,CAAA,oBAAA,CAAA,2BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,2BAAyB,CAAA;IACzB,oBAAA,CAAA,oBAAA,CAAA,+BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,+BAA6B,CAAA;AAC/B,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,GAO/B,EAAA,CAAA,CAAA;;ACDD;;AAEG;MACU,iBAAiB,CAAA;AAsG5B,IAAA,WAAA,GAAA;AA5FA;;AAEG;AACI,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAezC;;;AAGG;AACI,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AA0Db,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAA+B,CAAC;AAE1D,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEpD,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,YAAY,EAAQ,CAAC;AAExD,QAAA,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;AAEpC,QAAA,IAA+B,CAAA,+BAAA,GAAG,KAAK,CAAC;AAExC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAoB,CAAC;AAGxD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAzGD;;;;AAIG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;AAYD;;;AAGG;AACH,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AAQD;;AAEG;AACH,IAAA,IAAW,uBAAuB,GAAA;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACtC;AAED;;AAEG;AACH,IAAA,IAAW,2BAA2B,GAAA;QACpC,OAAO,IAAI,CAAC,4BAA4B,CAAC;KAC1C;AAED;;;AAGG;IACH,IAAW,0BAA0B,CAAC,QAAiB,EAAA;AACrD,QAAA,IAAI,CAAC,2BAA2B,GAAG,QAAQ,CAAC;AAC5C,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,yBAAyB;AACrD,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,wBAAwB;AACpD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,IAAW,0BAA0B,GAAA;QACnC,OAAO,IAAI,CAAC,2BAA2B,CAAC;KACzC;AAED;;;AAGG;IACH,IAAW,8BAA8B,CAAC,QAAiB,EAAA;AACzD,QAAA,IAAI,CAAC,+BAA+B,GAAG,QAAQ,CAAC;AAChD,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,6BAA6B;AACzD,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,4BAA4B;AACxD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,IAAW,8BAA8B,GAAA;QACvC,OAAO,IAAI,CAAC,+BAA+B,CAAC;KAC7C;AAoBD;;;AAGG;AACI,IAAA,KAAK,CAAC,IAAyB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,oBAAoB,CAAC,KAAK;AAChC,YAAA,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,KAAK,EAAE;AACnE,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;AACF;;ACvID;;;;;AAKG;AAWH,MAAM,SAAS,GAA0C;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,kBAAkB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;AAC/C,QAAA,qCAAqC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC9D,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;AACtD,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AACzD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC9D,QAAA,0BAA0B,EAAE;AAC1B,YAAA,OAAO,EACL,4NAA4N;AAC/N,SAAA;AACF,KAAA;CACF,CAAC;MAEW,0BAA0B,CAAA;IAC9B,SAAS,CACd,UAA4B,EAC5B,IAAY,EAAA;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAClE;AACF,CAAA;AAED;;AAEG;MAWU,wBAAwB,CAAA;;qHAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YATzB,aAAa,CAAA,EAAA,CAAA,CAAA;AASZ,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EARxB,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,0BAA0B;AACpC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAPS,aAAa,CAAA,EAAA,CAAA,CAAA;2FASZ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,QAAQ,EAAE,0BAA0B;AACpC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;iBACF,CAAA;;;ACzCD;;AAEG;MAMU,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;AAsBU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;AAE5C,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAQ,CAAC;KAsBzD;AApCC,IAAA,IACW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC;KAClC;AAED,IAAA,IACW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAQM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAClC;IAEM,uBAAuB,GAAA;;AAE5B,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChC,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;AAClC,SAAA;KACF;IAEM,mBAAmB,GAAA;;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC9B,SAAA;KACF;;uHA1CU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,gQClBvC,yvCA0CA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;2FDxBa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,yvCAAA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,CAAA;8BAMxB,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAIK,mBAAmB,EAAA,CAAA;sBAD7B,MAAM;gBAMI,eAAe,EAAA,CAAA;sBADzB,MAAM;;;AEtBT;;AAEG;MAEU,uBAAuB,CAAA;IAGlC,WACU,CAAA,eAAiC,EACjC,SAA0B,EAAA;AAD1B,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AACjC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;AAElC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KAC3E;AAEM,IAAA,mBAAmB,CAAC,MAAkB,EAAA;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAExE,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;AACtE,SAAA;KACF;IAEM,kBAAkB,CACvB,OAAmB,EACnB,UAA+B,EAAA;AAE/B,QAAA,MAAM,QAAQ,GAAgB,OAAO,CAAC,aAAa,CAAC;QAEpD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;AAEnE,QAAA,IAAI,QAAgB,CAAC;AAErB,QAAA,QAAQ,UAAU;AAChB,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACD,YAAA,SAAS;gBACP,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACF,SAAA;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5C;AAEM,IAAA,yBAAyB,CAAC,MAAe,EAAA;;;;;QAK9C,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;AACvD,SAAA;KACF;;oHA/DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;ACNX;;AAEG;MAEU,0BAA0B,CAAA;AAWrC,IAAA,WAAA,GAAA;QANQ,IAAc,CAAA,cAAA,GAAG,IAAI,eAAe,CAC1C,IAAI,CAAC,OAAO,CACb,CAAC;AAEM,QAAA,IAAA,CAAA,QAAQ,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAGxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzC;AAZD,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAYM,IAAA,SAAS,CAAC,QAA+B,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,EAAE,CAAC,WAAgC,KAAI;gBACzC,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;AACF,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,UAA+B,CAAC;QAEpC,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,EAAE;AAC/D,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,EAAE;AACtE,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,EAAE;AACtE,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzC;IAEM,uBAAuB,CAC5B,KAAa,EACb,UAA+B,EAAA;QAE/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,IAAI,CAAC;QACnC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,QAAA,QAAQ,UAAU;AAChB,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,OAAO,KAAK,IAAI,qBAAqB,CAAC;AACvC,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;AAC3B,gBAAA,OAAO,KAAK,IAAI,qBAAqB,IAAI,KAAK,IAAI,qBAAqB,CAAC;AACzE,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;AAC3B,gBAAA,OAAO,KAAK,IAAI,qBAAqB,IAAI,KAAK,IAAI,qBAAqB,CAAC;AACzE,aAAA;AACD,YAAA,SAAS;gBACP,OAAO,KAAK,IAAI,qBAAqB,CAAC;AACvC,aAAA;AACF,SAAA;KACF;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;;uHArEU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAA1B,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;;ACRX;;AAEG;MACU,2BAA2B,CAAA;AAMtC,IAAA,WAAA,CAAY,mBAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;KACxC;AACF;;AC+BD,MAAM,iBAAiB,GAAG,YAAY,CAAC;AACvC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf;;AAEG;MAwBU,kBAAkB,CAAA;AA0F7B,IAAA,WAAA,CACU,OAAgC,EAChC,cAAiC,EACjC,QAAkB,EAClB,QAAkC,EAClC,gBAAwC,EACxC,uBAAmD,EACnD,UAAsB,EACtB,eAAmC,EAC1B,OAAe,EAAA;AARxB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;AAChC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AACjC,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;AAClC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAwB;AACxC,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA4B;AACnD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;AAC1B,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AA/F3B,QAAA,IAAA,CAAA,QAAQ,GAAG,cAAc,EAAE,MAAM,EAAE,CAAC;AACpC,QAAA,IAAW,CAAA,WAAA,GAAG,mBAAmB,CAAC;AAClC,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AACf,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAElB,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAChB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACtB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AACrB,QAAA,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;AAE9B,QAAA,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AACX,QAAA,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;AA0C9B;;AAEG;AACI,QAAA,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAyBd,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAoB,CAAC;;AAcvD,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,YAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;AAzFD,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AACxC,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;KACxD;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAChD,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;AAChE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;KAC7D;IAuDM,QAAQ,GAAA;QACb,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrD;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAGM,IAAA,cAAc,CAAC,KAAU,EAAA;AAC9B,QAAA,IACE,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAClD,KAAK,CAAC,MAAM,CAAC,UAAU,EACvB,mBAAmB,CAAC,EAAE,CACvB,EACD;YACA,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACtE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACnE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAEM,MAAM,CACX,SAAkB,EAClB,MAAuB,EAAA;QAEvB,IAAI,CAAC,aAAa,EAAE,CAAC;;QAGrB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,YAAY;YACtB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAExE,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,0BAA0B;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,0BAA0B,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,8BAA8B;AACxC,YAAA,IAAI,CAAC,MAAM,CAAC,8BAA8B,IAAI,KAAK,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAEjE,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AACjC,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9C,OAAO,EACP,SAAS,EACT,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;;;AAI1E,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;;AAGnC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB,CAAC,IAAI;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe;AACjB,iBAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAClC,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC,CAAC,KAAU,KAAI;AACxB,gBAAA,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;AAC9B,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACtC,iBAAA;AAAM,qBAAA;;oBAEL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC7C,iBAAA;gBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB,CAAC,KAAK;AACjC,SAAA,CAAC,CAAC;KACJ;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,iBAAiB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS;AACzC,cAAE,iBAAiB;cACjB,mBAAmB,CAAC;KACzB;AAEM,IAAA,aAAa,CAAC,KAAqB,EAAA;AACxC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE;AACzC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;AAEM,IAAA,2BAA2B,CAAC,KAAiB,EAAA;AAClD,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACrC;AAEM,IAAA,yBAAyB,CAAC,KAAoB,EAAA;AACnD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACjC;AAEM,IAAA,qBAAqB,CAAC,KAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACjC;AAEM,IAAA,uBAAuB,CAAC,KAAiB,EAAA;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;AAE5B,QAAA,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAE9C,QAAA,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;AAC7B,aAAA,IAAI,CACH,SAAS,CAAC,MAAK;YACb,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,SAAc,KAAI;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;AAEL,QAAA,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC3B,aAAA,IAAI,CACH,SAAS,CAAC,MAAK;YACb,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,YAAiB,KAAI;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,WAAW,CAAC,KAAiB,EAAA;;;AAGlC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;AACR,SAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5C,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7B,KAAK,IAAI,OAAO,CAAC;AAEjB,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAChE,OAAO;AACR,SAAA;QAED,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACrD,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAEzB,QAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAE1D,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAEM,IAAA,eAAe,CAAC,KAAiB,EAAA;AACtC,QAAA,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;AACzB,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;KACN;IAEM,6BAA6B,GAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;KACxD;IAEM,yBAAyB,GAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;KACpD;AAEO,IAAA,oBAAoB,CAAI,SAAY,EAAA;AAC1C,QAAA,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAK,CAAC;AAE5C,QAAA,QAAQ,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACvC,QAAA,QAAQ,CAAC,cAAc;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AAEL,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEO,IAAA,sBAAsB,CAAC,OAAyB,EAAA;;QACtD,QAAQ,OAAO,CAAC,IAAI;YAClB,KAAK,oBAAoB,CAAC,IAAI;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,iBAAA;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;YAER,KAAK,oBAAoB,CAAC,KAAK;gBAC7B,IACG,IAAI,CAAC,cAAc,CAAC,WAA4B,CAAC,SAAS,CAAC,MAAM;oBAChE,CAAC;AACH,qBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,iBAAiB,CAAA,EAC/B;AACA,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,iBAAA;AAAM,qBAAA;oBACJ,IAAI,CAAC,cAAc,CAAC,WAA4B,CAAC,IAAI,CACpD,IAAI,2BAA2B,CAAC,MAAK;AACnC,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,wBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB,CAAC,CACH,CAAC;AACH,iBAAA;gBACD,MAAM;YAER,KAAK,oBAAoB,CAAC,wBAAwB;AAChD,gBAAA,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,KAAK,CAAC;gBAC/C,MAAM;YAER,KAAK,oBAAoB,CAAC,4BAA4B;AACpD,gBAAA,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,KAAK,CAAC;gBACnD,MAAM;YAER,KAAK,oBAAoB,CAAC,yBAAyB;AACjD,gBAAA,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBAC9C,MAAM;YAER,KAAK,oBAAoB,CAAC,6BAA6B;AACrD,gBAAA,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,IAAI,CAAC;gBAClD,MAAM;AACT,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACvC;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;AAEO,IAAA,kCAAkC,CAAC,KAAa,EAAA;AACtD,QAAA,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAE1D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KACjE;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe;AACjB,iBAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBAClC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;AACD,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS;;AAER,YAAA,MAAO,GAAC,EACR,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AAC5C,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,aAAC,CACF,CAAC;AACL,SAAA;KACF;IAEO,gBAAgB,GAAA;QACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;;QAGD,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC7D,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;AAED,QAAA,IACE,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAClD,MAAM,CAAC,UAAU,EACjB,mBAAmB,CAAC,EAAE,CACvB,EACD;AACA,YAAA,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAEO,IAAA,SAAS,CAAC,GAAW,EAAA;;AAE3B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;KAC3E;AAEO,IAAA,mBAAmB,CAAC,KAAoB,EAAA;;QAE9C,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChE,YAAA,QAAQ,UAAU;AAChB,gBAAA,KAAK,OAAO,CAAC;AACb,gBAAA,KAAK,GAAG;AACN,oBAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;oBAC3D,MAAM;AACR,gBAAA,KAAK,KAAK;;oBAER,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,wBAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACrC,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,MAAM;oBACT,IAAI,IAAI,CAAC,sBAAsB,EAAE;;wBAE/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;AACH,yBAAA;AACF,qBAAA;oBACD,MAAM;AAER,gBAAA,KAAK,OAAO;oBACV,IAAI,IAAI,CAAC,sBAAsB,EAAE;;wBAE/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;AACH,yBAAA;AACF,qBAAA;oBACD,MAAM;;AAGR,gBAAA;oBACE,MAAM;AACT,aAAA;AACF,SAAA;KACF;;AAGO,IAAA,gBAAgB,CAAC,EAAa,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,EAAE,EAAE,CAAC;AACN,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnD,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;;AAE7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;;+GA3hBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAnBlB,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACT,uBAAuB;QACvB,0BAA0B;AAC1B,QAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE;AAC3E,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAkFO,UAAU,EAMV,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,qHAMhB,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzJpB,wvJA8IA,EDlFc,MAAA,EAAA,CAAA,85EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAAN,IAAA,CAAA,mBAAA,EAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,aAAa,EAAE;YACrB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACpE,UAAU,CAAC,WAAW,EAAE;AACtB,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC;aACb,CAAC;AACF,YAAA,UAAU,CAAC,CAAS,OAAA,CAAA,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;SAChD,CAAC;KACH,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;2FAIU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAvB9B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGX,SAAA,EAAA;wBACT,uBAAuB;wBACvB,0BAA0B;AAC1B,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE;AAC3E,qBAAA,EACW,UAAA,EAAA;wBACV,OAAO,CAAC,aAAa,EAAE;4BACrB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;4BACzD,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;4BACpE,UAAU,CAAC,WAAW,EAAE;AACtB,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gCACxC,OAAO,CAAC,GAAG,CAAC;6BACb,CAAC;AACF,4BAAA,UAAU,CAAC,CAAS,OAAA,CAAA,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;yBAChD,CAAC;AACH,qBAAA,EAEgB,eAAA,EAAA,uBAAuB,CAAC,OAAO,EAAA,QAAA,EAAA,wvJAAA,EAAA,MAAA,EAAA,CAAA,85EAAA,CAAA,EAAA,CAAA;uWAwEzC,SAAS,EAAA,CAAA;sBAJf,SAAS;gBAAC,IAAA,EAAA,CAAA,WAAW,EAAE;AACtB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;gBAOO,MAAM,EAAA,CAAA;sBAJb,SAAS;gBAAC,IAAA,EAAA,CAAA,QAAQ,EAAE;AACnB,wBAAA,IAAI,EAAE,gBAAgB;AACtB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;gBAOO,YAAY,EAAA,CAAA;sBAJnB,SAAS;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE;AACzB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;gBAsCM,cAAc,EAAA,CAAA;sBADpB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MElK9B,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAdX,YAAA,EAAA,CAAA,kBAAkB,EAAE,0BAA0B,aAE3D,UAAU;QACV,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,cAAc;QACd,aAAa,aAEL,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAbjB,OAAA,EAAA,CAAA;YACP,UAAU;YACV,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,cAAc;YACd,aAAa;SACd,CAAA,EAAA,CAAA,CAAA;2FAGU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AAC9D,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,cAAc;wBACd,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAC9B,CAAA;;;ACLD;;;;AAIG;MAIU,gBAAgB,CAAA;IAM3B,WACU,CAAA,WAAkC,EAClC,SAA0B,EAC1B,uBAAmD,EACnD,MAAc,EACL,OAAe,EAAA;AAJxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAuB;AAClC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;AAC1B,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA4B;AACnD,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACL,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAT1B,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW,CAAC;KAQ3C;IAEG,WAAW,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;AAED;;;AAGG;AACI,IAAA,KAAK,CAAC,IAAyB,EAAA;QACpC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,oBAAoB,CAAC,KAAK;AAChC,gBAAA,IAAI,EAAE;oBACJ,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACzD,iBAAA;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED;;;;AAIG;IACI,IAAI,CACT,SAAkB,EAClB,MAAwB,EAAA;;AAGxB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,MAAM;AACf,iBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAC9C,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;gBACnB,IAAI,KAAK,YAAY,eAAe,EAAE;oBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;;AAGb,oBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;wBACjD,IAAI,IAAI,CAAC,IAAI,EAAE;4BACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACH,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAE1B,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI;AACP,YAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IAEO,mBAAmB,GAAA;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACvB,SAAA;KACF;AAEO,IAAA,YAAY,CAAI,MAA4B,EAAA;;QAElD,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAE1C,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB;;;;;;AAMG;AACH,YAAA,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC3B,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;gBAC/B,OAAO,GAAG,KAAK,CAAC;AAEhB,gBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;oBACjC,OAAO;AACR,iBAAA;AAED,gBAAA,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBACjE,OAAO;AACR,iBAAA;AAED,gBAAA,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,KAAK,QAAQ;AACvB,sBAAE,KAAK;AACP,sBAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACnC,KAAK,CAAC,MAAM,EACZ,cAAc,CAAC,SAAS,CAAC,aAAa,CACvC,CAAC;;gBAGR,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,GAAG,IAAI,CAAC;AAChB,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL;;;;;AAKG;AACH,YAAA,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;AACzB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,YAAA,cAAc,CAAC,aAAa;AACzB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,gBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AAC/C,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBACzC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAW,CAAC;KAC7C;;6GAxKU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,KAAK,EAAA,CAAA,CAAA;2FAEN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,KAAK;iBAClB,CAAA;;;AC/BD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-flyout.mjs","sources":["../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-message-type.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-instance.ts","../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-adapter.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-media-query.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-before-close-handler.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts","../../../../../libs/components/flyout/src/skyux-flyout.ts"],"sourcesContent":["/**\n * @internal\n */\nexport enum SkyFlyoutMessageType {\n Open = 0,\n Close,\n EnableIteratorNextButton,\n EnableIteratorPreviousButton,\n DisableIteratorNextButton,\n DisableIteratorPreviousButton,\n}\n","import { EventEmitter } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Represents a single displayed flyout.\n */\nexport class SkyFlyoutInstance<T> {\n /**\n * An event that the modal instance emits when it is about to close.\n * If a subscription exists for this event,\n * the modal does not close until the subscriber calls the handler's `closeModal` method.\n */\n public get beforeClose(): Observable<SkyFlyoutBeforeCloseHandler> {\n return this._beforeClose;\n }\n\n /**\n * An event that the flyout instance emits when it closes.\n */\n public closed = new EventEmitter<void>();\n\n /**\n * Specifies the instance of the component to display in the flyout.\n */\n public componentInstance: T;\n\n /**\n * Used to communicate with the host component.\n * @internal\n */\n public get hostController(): Subject<SkyFlyoutMessage> {\n return this._hostController;\n }\n\n /**\n * A `boolean` value that returns `true` if the flyout is open.\n * @default true\n */\n public isOpen = true;\n\n /**\n * An event that the flyout instance emits when users click the next iterator button.\n */\n public get iteratorNextButtonClick(): EventEmitter<void> {\n return this._iteratorNextButtonClick;\n }\n\n /**\n * An event that the flyout instance emits when users click the previous iterator button.\n */\n public get iteratorPreviousButtonClick(): EventEmitter<void> {\n return this._iteratorPreviousButtonClick;\n }\n\n /**\n * Disables the next iterator button.\n * @default false\n */\n public set iteratorNextButtonDisabled(newValue: boolean) {\n this._iteratorNextButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorNextButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorNextButton,\n });\n }\n }\n\n public get iteratorNextButtonDisabled(): boolean {\n return this._iteratorNextButtonDisabled;\n }\n\n /**\n * Disables the previous iterator button.\n * @default false\n */\n public set iteratorPreviousButtonDisabled(newValue: boolean) {\n this._iteratorPreviousButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorPreviousButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorPreviousButton,\n });\n }\n }\n\n public get iteratorPreviousButtonDisabled(): boolean {\n return this._iteratorPreviousButtonDisabled;\n }\n\n private _beforeClose = new Subject<SkyFlyoutBeforeCloseHandler>();\n\n private _iteratorNextButtonClick = new EventEmitter<void>();\n\n private _iteratorPreviousButtonClick = new EventEmitter<void>();\n\n private _iteratorNextButtonDisabled = false;\n\n private _iteratorPreviousButtonDisabled = false;\n\n private _hostController = new Subject<SkyFlyoutMessage>();\n\n constructor() {\n this.closed.subscribe(() => {\n this.isOpen = false;\n });\n }\n\n /**\n * Closes the flyout instance and emits its `closed` event.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n this.hostController.next({\n type: SkyFlyoutMessageType.Close,\n data: { ignoreBeforeClose: args ? args.ignoreBeforeClose : false },\n });\n\n this._iteratorPreviousButtonClick.complete();\n this._iteratorNextButtonClick.complete();\n\n this.hostController.complete();\n }\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-flyout' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_flyout_close: { message: 'Close flyout' },\n skyux_flyout_iterator_previous_button: { message: 'Previous' },\n skyux_flyout_iterator_next_button: { message: 'Next' },\n skyux_flyout_permalink_button: { message: 'View record' },\n skyux_flyout_primary_action_button: { message: 'Create list' },\n skyux_flyout_resize_handle: {\n message:\n 'Resize the flyout window. Press the enter or space key to activate, then use left arrow key to expand the flyout window and right arrow key to shrink the flyout window. Press the enter, space, or tab key to deactivate.',\n },\n },\n};\n\nexport class SkyFlyoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyFlyoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyFlyoutResourcesModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout-iterator',\n templateUrl: './flyout-iterator.component.html',\n styleUrls: ['./flyout-iterator.component.scss'],\n})\nexport class SkyFlyoutIteratorComponent implements OnDestroy {\n @Input()\n public nextButtonDisabled: boolean;\n\n @Input()\n public previousButtonDisabled: boolean;\n\n @Output()\n public get previousButtonClick(): EventEmitter<void> {\n return this._previousButtonClick;\n }\n\n @Output()\n public get nextButtonClick(): EventEmitter<void> {\n return this._nextButtonClick;\n }\n\n private ngUnsubscribe = new Subject();\n\n private _nextButtonClick = new EventEmitter<void>();\n\n private _previousButtonClick = new EventEmitter<void>();\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this._previousButtonClick.complete();\n this._nextButtonClick.complete();\n }\n\n public onIteratorPreviousClick(): void {\n /* istanbul ignore else */\n if (!this.previousButtonDisabled) {\n this._previousButtonClick.emit();\n }\n }\n\n public onIteratorNextClick(): void {\n /* istanbul ignore else */\n if (!this.nextButtonDisabled) {\n this._nextButtonClick.emit();\n }\n }\n}\n","<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyMediaBreakpoints } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2,\n private windowRef: SkyAppWindowRef\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public adjustHeaderForHelp(header: ElementRef): void {\n const windowObj = this.windowRef.nativeWindow;\n const helpWidget = windowObj.document.getElementById('bb-help-invoker');\n\n if (helpWidget) {\n this.renderer.addClass(header.nativeElement, 'sky-flyout-help-shim');\n }\n }\n\n public setResponsiveClass(\n element: ElementRef,\n breakpoint: SkyMediaBreakpoints\n ): void {\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = 'sky-responsive-container-xs';\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = 'sky-responsive-container-sm';\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = 'sky-responsive-container-md';\n break;\n }\n default: {\n newClass = 'sky-responsive-container-lg';\n break;\n }\n }\n\n this.renderer.addClass(nativeEl, newClass);\n }\n\n public toggleIframePointerEvents(enable: boolean): void {\n // When iframes are present on the page, they may interfere with dragging\n // temporarily disable pointer events in iframes when dragging starts.\n // When re-enabling we set to the empty string as it will remove the element styling\n // and fall back to any css originally given to iframe\n const iframes = document.querySelectorAll('iframe');\n for (let i = 0; i < iframes.length; i++) {\n iframes[i].style.pointerEvents = enable ? '' : 'none';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryListener } from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutMediaQueryService {\n public get current(): SkyMediaBreakpoints {\n return this._current;\n }\n\n private currentSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _current = SkyMediaBreakpoints.xs;\n\n constructor() {\n this.currentSubject.next(this._current);\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public setBreakpointForWidth(width: number): void {\n let breakpoint: SkyMediaBreakpoints;\n\n if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.xs)) {\n breakpoint = SkyMediaBreakpoints.xs;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.sm)) {\n breakpoint = SkyMediaBreakpoints.sm;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.md)) {\n breakpoint = SkyMediaBreakpoints.md;\n } else {\n breakpoint = SkyMediaBreakpoints.lg;\n }\n\n this._current = breakpoint;\n this.currentSubject.next(this._current);\n }\n\n public isWidthWithinBreakpiont(\n width: number,\n breakpoint: SkyMediaBreakpoints\n ): boolean {\n const xsBreakpointMaxPixels = 767;\n const smBreakpointMinPixels = 768;\n const smBreakpointMaxPixels = 991;\n const mdBreakpointMinPixels = 992;\n const mdBreakpointMaxPixels = 1199;\n const lgBreakpointMinPixels = 1200;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n return width <= xsBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.sm: {\n return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.md: {\n return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;\n }\n default: {\n return width >= lgBreakpointMinPixels;\n }\n }\n }\n\n public destroy(): void {\n this.currentSubject.complete();\n }\n}\n","/**\n * Handler for notifying the flyout when it is appropriate to close the flyout. This will be returned from the flyout instance's `beforeClose` observable.\n */\nexport class SkyFlyoutBeforeCloseHandler {\n /**\n * Function which should be called to close the flyout. This should be called once any intervening actions have completed.\n */\n public readonly closeFlyout: Function;\n\n constructor(closeFlyoutFunction: Function) {\n this.closeFlyout = closeFlyoutFunction;\n }\n}\n","import {\n AnimationEvent,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostListener,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutAdapterService } from './flyout-adapter.service';\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutMediaQueryService } from './flyout-media-query.service';\nimport { SkyFlyoutAction } from './types/flyout-action';\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\nimport { SkyFlyoutPermalink } from './types/flyout-permalink';\n\nconst FLYOUT_OPEN_STATE = 'flyoutOpen';\nconst FLYOUT_CLOSED_STATE = 'flyoutClosed';\n\nlet nextId = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n providers: [\n SkyFlyoutAdapterService,\n SkyFlyoutMediaQueryService,\n { provide: SkyMediaQueryService, useExisting: SkyFlyoutMediaQueryService },\n ],\n animations: [\n trigger('flyoutState', [\n state(FLYOUT_OPEN_STATE, style({ transform: 'initial' })),\n state(FLYOUT_CLOSED_STATE, style({ transform: 'translateX(100%)' })),\n transition('void => *', [\n style({ transform: 'translateX(100%)' }),\n animate(250),\n ]),\n transition(`* <=> *`, animate('250ms ease-in')),\n ]),\n ],\n // Allow automatic change detection for child components.\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class SkyFlyoutComponent implements OnDestroy, OnInit {\n public config: SkyFlyoutConfig;\n public enableTrapFocus: boolean;\n public enableTrapFocusAutoCapture: boolean;\n public flyoutId = `sky-flyout-${++nextId}`;\n public flyoutState = FLYOUT_CLOSED_STATE;\n public isOpen = false;\n public isOpening = false;\n\n public flyoutWidth = 0;\n public instanceReady = false;\n public isDragging = false;\n public isFullscreen = false;\n public resizeKeyControlActive = false;\n\n private xCoord = 0;\n private windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this._messageStream;\n }\n\n public get permalink(): SkyFlyoutPermalink {\n const permalink = this.config.permalink;\n if (permalink) {\n return permalink;\n }\n\n return {};\n }\n\n public get permalinkLabel(): string {\n if (this.permalink.label) {\n return this.permalink.label;\n }\n\n return this.getString('skyux_flyout_permalink_button');\n }\n\n public get primaryAction(): SkyFlyoutAction {\n const primaryAction = this.config.primaryAction;\n if (primaryAction) {\n return primaryAction;\n }\n\n return {};\n }\n\n public get primaryActionLabel(): string {\n if (this.config.primaryAction && this.config.primaryAction.label) {\n return this.config.primaryAction.label;\n }\n\n return this.getString('skyux_flyout_primary_action_button');\n }\n\n public themeName: string;\n\n /**\n * @internal\n */\n public widthStep = 10;\n\n /**\n * @internal\n */\n @ViewChild('flyoutRef', {\n read: ElementRef,\n static: true,\n })\n public flyoutRef: ElementRef;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n private target: ViewContainerRef;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n private flyoutHeader: ElementRef;\n\n private flyoutInstance: SkyFlyoutInstance<any>;\n\n private ngUnsubscribe = new Subject();\n\n private _messageStream = new Subject<SkyFlyoutMessage>();\n\n constructor(\n private adapter: SkyFlyoutAdapterService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private resourcesService: SkyLibResourcesService,\n private flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n private elementRef: ElementRef,\n private uiConfigService: SkyUIConfigService,\n private readonly _ngZone: NgZone\n ) {\n // All commands flow through the message stream.\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.handleIncomingMessages(message);\n });\n }\n\n public ngOnInit(): void {\n this.adapter.adjustHeaderForHelp(this.flyoutHeader);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n public onWindowResize(event: any): void {\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n event.target.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(event.target.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n\n if (event.target.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = event.target.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n }\n\n public attach<T>(\n component: Type<T>,\n config: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n this.cleanTemplate();\n\n // Emit the closed event on any previously opened flyout instance\n if (this.flyoutInstance) {\n this.notifyClosed();\n }\n\n this.config = Object.assign({ providers: [] }, config);\n this.config.defaultWidth =\n this.config.defaultWidth || window.innerWidth / 2;\n this.config.minWidth = this.config.minWidth || 320;\n this.config.maxWidth = this.config.maxWidth || this.config.defaultWidth;\n\n this.config.showIterator = this.config.showIterator || false;\n this.config.iteratorNextButtonDisabled =\n this.config.iteratorNextButtonDisabled || false;\n this.config.iteratorPreviousButtonDisabled =\n this.config.iteratorPreviousButtonDisabled || false;\n\n const factory = this.resolver.resolveComponentFactory(component);\n\n const injector = Injector.create({\n parent: this.injector,\n providers: this.config.providers,\n });\n\n const componentRef = this.target.createComponent(\n factory,\n undefined,\n injector\n );\n\n this.flyoutInstance = this.createFlyoutInstance<T>(componentRef.instance);\n\n // This is used to ensure we do not render the flyout until we have attached the component.\n // This allows the aria-labelledby to function correctly.\n this.instanceReady = true;\n this.changeDetector.markForCheck();\n\n // Open the flyout immediately.\n this.messageStream.next({\n type: SkyFlyoutMessageType.Open,\n });\n\n if (this.config.settingsKey) {\n this.uiConfigService\n .getConfig(this.config.settingsKey)\n .pipe(take(1))\n .subscribe((value: any) => {\n if (value && value.flyoutWidth) {\n this.flyoutWidth = value.flyoutWidth;\n } else {\n // Bad data, or config is the default config.\n this.flyoutWidth = this.config.defaultWidth;\n }\n this.checkInitialSize();\n });\n } else {\n this.flyoutWidth = this.config.defaultWidth;\n this.checkInitialSize();\n }\n\n return this.flyoutInstance;\n }\n\n public close(): void {\n this.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n });\n }\n\n public invokePrimaryAction(): boolean {\n this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\n }\n\n public getAnimationState(): string {\n return this.instanceReady && this.isOpening\n ? FLYOUT_OPEN_STATE\n : FLYOUT_CLOSED_STATE;\n }\n\n public animationDone(event: AnimationEvent): void {\n if (event.toState === FLYOUT_OPEN_STATE) {\n this.isOpen = true;\n }\n\n if (event.toState === FLYOUT_CLOSED_STATE) {\n this.isOpen = false;\n this.notifyClosed();\n this.cleanTemplate();\n }\n }\n\n public onHeaderGrabHandleMouseDown(event: MouseEvent): void {\n this.onResizeHandleMouseDown(event);\n }\n\n public onHeaderGrabHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleMouseDown(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isFullscreen) {\n return;\n }\n\n this.isDragging = true;\n this.xCoord = event.clientX;\n\n this.adapter.toggleIframePointerEvents(false);\n\n fromEvent(document, 'mousemove')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onMouseMove(moveEvent);\n });\n\n fromEvent(document, 'mouseup')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((mouseUpEvent: any) => {\n this.onHandleRelease(mouseUpEvent);\n });\n }\n\n public onMouseMove(event: MouseEvent): void {\n /* Sanity check */\n /* istanbul ignore if */\n if (!this.isDragging) {\n return;\n }\n\n const offsetX = event.clientX - this.xCoord;\n let width = this.flyoutWidth;\n\n width -= offsetX;\n\n if (width < this.config.minWidth || width > this.config.maxWidth) {\n return;\n }\n\n if (window.innerWidth - width < this.windowBufferSize) {\n width = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n } else {\n this.xCoord = event.clientX;\n }\n\n this.flyoutWidth = width;\n\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n\n this.changeDetector.markForCheck();\n }\n\n public onHandleRelease(event: MouseEvent): void {\n fromEvent(document, 'click')\n .pipe(take(1))\n .subscribe(() => {\n this.isDragging = false;\n this.adapter.toggleIframePointerEvents(true);\n this.setUserData();\n });\n }\n\n public onIteratorPreviousButtonClick(): void {\n this.flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n\n public onIteratorNextButtonClick(): void {\n this.flyoutInstance.iteratorNextButtonClick.emit();\n }\n\n private createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>();\n\n instance.componentInstance = component;\n instance.hostController\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.messageStream.next(message);\n });\n\n return instance;\n }\n\n private handleIncomingMessages(message: SkyFlyoutMessage): void {\n switch (message.type) {\n case SkyFlyoutMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = false;\n this.isOpening = true;\n }\n this.initFocusTrap();\n break;\n\n case SkyFlyoutMessageType.Close:\n if (\n (this.flyoutInstance.beforeClose as Subject<any>).observers.length ===\n 0 ||\n message.data?.ignoreBeforeClose\n ) {\n this.isOpen = true;\n this.isOpening = false;\n } else {\n (this.flyoutInstance.beforeClose as Subject<any>).next(\n new SkyFlyoutBeforeCloseHandler(() => {\n this.isOpen = true;\n this.isOpening = false;\n })\n );\n }\n break;\n\n case SkyFlyoutMessageType.EnableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.EnableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = true;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = true;\n break;\n }\n\n this.changeDetector.markForCheck();\n }\n\n private notifyClosed(): void {\n this.flyoutInstance.closed.emit();\n this.flyoutInstance.closed.complete();\n }\n\n private cleanTemplate(): void {\n this.target.clear();\n }\n\n private updateBreakpointAndResponsiveClass(width: number): void {\n this.flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpiont = this.flyoutMediaQueryService.current;\n\n this.adapter.setResponsiveClass(this.elementRef, newBreakpiont);\n }\n\n private setFullscreen(): void {\n if (window.innerWidth - this.windowBufferSize < this.config.minWidth) {\n this.isFullscreen = true;\n } else {\n this.isFullscreen = false;\n }\n }\n\n private setUserData(): void {\n if (this.config.settingsKey) {\n this.uiConfigService\n .setConfig(this.config.settingsKey, {\n flyoutWidth: this.flyoutWidth,\n })\n .pipe(take(1))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n private checkInitialSize(): void {\n if (this.flyoutWidth < this.config.minWidth) {\n this.flyoutWidth = this.config.minWidth;\n this.setUserData();\n } else if (this.flyoutWidth > this.config.maxWidth) {\n this.flyoutWidth = this.config.maxWidth;\n this.setUserData();\n }\n\n // Ensure flyout does not load larger than the window and its buffer\n if (window.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n window.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(window.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n }\n\n private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n\n private handleResizeKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key) {\n const keyPressed = event.key.toLowerCase().replace('arrow', '');\n switch (keyPressed) {\n case 'enter':\n case ' ':\n this.resizeKeyControlActive = !this.resizeKeyControlActive;\n break;\n case 'tab':\n /* istanbul ignore else */\n if (this.resizeKeyControlActive) {\n this.resizeKeyControlActive = false;\n }\n break;\n case 'left':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth < this.config.maxWidth) {\n this.flyoutWidth = Math.min(\n this.flyoutWidth + this.widthStep,\n this.config.maxWidth\n );\n }\n }\n break;\n\n case 'right':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth > this.config.minWidth) {\n this.flyoutWidth = Math.max(\n this.flyoutWidth - this.widthStep,\n this.config.minWidth\n );\n }\n }\n break;\n\n /* istanbul ignore next */\n default:\n break;\n }\n }\n }\n\n /** Executes a function when the zone is stable. */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n private initFocusTrap(): void {\n this.enableTrapFocusAutoCapture = false;\n this.enableTrapFocus = false;\n // Waiting for zone to be stable will avoid ExpressionChangeAfterCheckedError.\n this._executeOnStable(() => {\n this.enableTrapFocusAutoCapture = true;\n this.enableTrapFocus = true;\n });\n }\n}\n","<div\n class=\"sky-flyout\"\n tabindex=\"-1\"\n [attr.role]=\"config?.ariaRole ? config.ariaRole : 'dialog'\"\n [attr.aria-describedby]=\"config?.ariaDescribedBy\"\n [attr.aria-label]=\"config?.ariaLabel\"\n [attr.aria-labelledby]=\"config?.ariaLabelledBy\"\n [attr.aria-modal]=\"\n config?.ariaRole === 'dialog' || !config?.ariaRole ? true : false\n \"\n [attr.hidden]=\"!instanceReady ? true : undefined\"\n [id]=\"flyoutId\"\n [ngClass]=\"{\n 'sky-flyout-hidden': !isOpen && !isOpening,\n 'sky-flyout-fullscreen': isFullscreen\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-elevation-8': 'modern'\n }\"\n (@flyoutState.done)=\"animationDone($event)\"\n [@flyoutState]=\"getAnimationState()\"\n [style.width.px]=\"flyoutWidth\"\n #flyoutRef\n [cdkTrapFocus]=\"enableTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"enableTrapFocusAutoCapture\"\n>\n <div\n class=\"sky-flyout-header\"\n [skyThemeClass]=\"{\n 'sky-padding-squish-large': 'default'\n }\"\n #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"sky-btn sky-btn-icon-borderless sky-margin-inline-sm sky-flyout-header-grab-handle\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n (keydown)=\"onHeaderGrabHandleKeyDown($event)\"\n (mousedown)=\"onHeaderGrabHandleMouseDown($event)\"\n >\n <sky-icon icon=\"tile-drag\" iconType=\"skyux\" size=\"lg\"> </sky-icon>\n </button>\n\n <sky-flyout-iterator\n *ngIf=\"config.showIterator\"\n [nextButtonDisabled]=\"config.iteratorNextButtonDisabled\"\n [previousButtonDisabled]=\"config.iteratorPreviousButtonDisabled\"\n (nextButtonClick)=\"onIteratorNextButtonClick()\"\n (previousButtonClick)=\"onIteratorPreviousButtonClick()\"\n >\n </sky-flyout-iterator>\n </div>\n <div class=\"sky-flyout-header-buttons\">\n <ng-container *ngTemplateOutlet=\"permalinkTemplate\"> </ng-container>\n <ng-container *ngTemplateOutlet=\"primaryActionTemplate\"> </ng-container>\n <button\n class=\"sky-btn sky-flyout-btn-close sky-label-icon-theme-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_flyout_close' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"close\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n </div>\n </div>\n <div class=\"sky-flyout-content\">\n <div #target></div>\n </div>\n <div\n class=\"sky-flyout-resize-handle\"\n role=\"separator\"\n tabindex=\"0\"\n type=\"range\"\n [attr.aria-controls]=\"flyoutId\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"config.maxWidth\"\n [attr.aria-valuemin]=\"config.minWidth\"\n [attr.aria-valuenow]=\"flyoutWidth\"\n (keydown)=\"onResizeHandleKeyDown($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n ></div>\n</div>\n\n<ng-template #permalinkTemplate>\n <ng-template [ngIf]=\"permalink\">\n <ng-template [ngIf]=\"permalink.url\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n <ng-template [ngIf]=\"permalink.route\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [routerLink]=\"permalink.route.commands\"\n [fragment]=\"permalink.route.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n [queryParams]=\"permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route.extras?.queryParamsHandling\"\n [state]=\"permalink.route.extras?.state\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template #primaryActionTemplate>\n <ng-template [ngIf]=\"primaryAction && primaryAction.callback\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-flyout-btn-primary-action sky-margin-inline-default\"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyHrefModule } from '@skyux/router';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFlyoutResourcesModule } from '../shared/sky-flyout-resources.module';\n\nimport { SkyFlyoutIteratorComponent } from './flyout-iterator.component';\nimport { SkyFlyoutComponent } from './flyout.component';\n\n@NgModule({\n declarations: [SkyFlyoutComponent, SkyFlyoutIteratorComponent],\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n RouterModule,\n SkyI18nModule,\n SkyIconModule,\n SkyFlyoutResourcesModule,\n SkyThemeModule,\n SkyHrefModule,\n ],\n exports: [SkyFlyoutComponent],\n})\nexport class SkyFlyoutModule {}\n","import {\n ComponentRef,\n Injectable,\n NgZone,\n OnDestroy,\n Type,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutComponent } from './flyout.component';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Launches flyouts and provides a common look and feel.\n * This service dynamically generates the flyout component and appends it directly to the\n * document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyFlyoutService implements OnDestroy {\n private host: ComponentRef<SkyFlyoutComponent>;\n private removeAfterClosed = false;\n private isOpening = false;\n private ngUnsubscribe = new Subject<boolean>();\n\n constructor(\n private coreAdapter: SkyCoreAdapterService,\n private windowRef: SkyAppWindowRef,\n private dynamicComponentService: SkyDynamicComponentService,\n private router: Router,\n private readonly _ngZone: NgZone\n ) {}\n\n public ngOnDestroy(): void {\n this.removeListners();\n if (this.host) {\n this.removeHostComponent();\n }\n }\n\n /**\n * Closes the flyout. This method also removes the flyout's HTML elements from the DOM.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n if (this.host && !this.isOpening) {\n this.host.instance.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n data: {\n ignoreBeforeClose: args ? args.ignoreBeforeClose : false,\n },\n });\n }\n }\n\n /**\n * Opens a flyout and displays the specified component.\n * @param component Specifies the component to render.\n * @param config Specifies the flyout configuration passed to the specified component's constructor.\n */\n public open<T>(\n component: Type<T>,\n config?: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n // isOpening flag will prevent close() from firing when open() is also fired.\n this.isOpening = true;\n this.windowRef.nativeWindow.setTimeout(() => {\n this.isOpening = false;\n });\n\n if (!this.host) {\n this.host = this.createHostComponent();\n\n this.router.events\n .pipe(takeWhile(() => this.host !== undefined))\n .subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.close();\n\n // Sanity check - if the host still exists after animations should have completed - remove host\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.host) {\n this.removeHostComponent();\n }\n });\n }\n });\n }\n\n const flyout = this.host.instance.attach(component, config);\n\n this.addListeners(flyout);\n\n return flyout;\n }\n\n private createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.host =\n this.dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.host;\n }\n\n private removeHostComponent(): void {\n if (this.host) {\n this.dynamicComponentService.removeComponent(this.host);\n this.host = undefined;\n }\n }\n\n private addListeners<T>(flyout: SkyFlyoutInstance<T>): void {\n /* istanbul ignore else */\n if (this.host) {\n const flyoutInstance = this.host.instance;\n\n let doClose = false;\n\n /**\n * Handles when to close a flyout.\n * Note: We're using `mouseup` in order to capture the parent of certain targets that will be\n * deleted immediately after being clicked. If we use `click`, the event is fired after the\n * element is removed from the DOM making it impossible to check the parent's z-index\n * relative to the flyout's container.\n */\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: MouseEvent) => {\n doClose = false;\n\n if (this.host.instance.isDragging) {\n return;\n }\n\n if (flyoutInstance.flyoutRef.nativeElement.contains(event.target)) {\n return;\n }\n\n const isAbove =\n event.target === document\n ? false\n : this.coreAdapter.isTargetAboveElement(\n event.target,\n flyoutInstance.flyoutRef.nativeElement\n );\n\n /* istanbul ignore else */\n if (!isAbove) {\n doClose = true;\n }\n });\n\n /**\n * Check if we should close the flyout specifically on a `click` event so that we can keep\n * it open when consumers fire another `click` event on a trigger button. Since the consumer\n * will likely use a `click` event to open the flyout, we want to wait for that event to fire\n * before determining if the flyout should be closed.\n */\n fromEvent(document, 'click')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (doClose) {\n this.close();\n }\n });\n\n this.removeAfterClosed = false;\n flyoutInstance.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n if (message.type === SkyFlyoutMessageType.Close) {\n this.removeAfterClosed = true;\n this.isOpening = false;\n }\n });\n\n flyout.closed.pipe(take(1)).subscribe(() => {\n this.removeListners();\n if (this.removeAfterClosed) {\n this.removeHostComponent();\n }\n });\n }\n }\n\n private removeListners(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n this.ngUnsubscribe = new Subject<boolean>();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i1.SkyFlyoutAdapterService","i2","i3.SkyFlyoutMediaQueryService","i4","i5","i6.SkyFlyoutIteratorComponent","i8","i11"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-flyout.mjs","sources":["../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-message-type.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-instance.ts","../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-adapter.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-media-query.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-before-close-handler.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts","../../../../../libs/components/flyout/src/skyux-flyout.ts"],"sourcesContent":["/**\n * @internal\n */\nexport enum SkyFlyoutMessageType {\n Open = 0,\n Close,\n EnableIteratorNextButton,\n EnableIteratorPreviousButton,\n DisableIteratorNextButton,\n DisableIteratorPreviousButton,\n}\n","import { EventEmitter } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Represents a single displayed flyout.\n */\nexport class SkyFlyoutInstance<T> {\n /**\n * An event that the modal instance emits when it is about to close.\n * If a subscription exists for this event,\n * the modal does not close until the subscriber calls the handler's `closeModal` method.\n */\n public get beforeClose(): Observable<SkyFlyoutBeforeCloseHandler> {\n return this._beforeClose;\n }\n\n /**\n * An event that the flyout instance emits when it closes.\n */\n public closed = new EventEmitter<void>();\n\n /**\n * Specifies the instance of the component to display in the flyout.\n */\n public componentInstance: T;\n\n /**\n * Used to communicate with the host component.\n * @internal\n */\n public get hostController(): Subject<SkyFlyoutMessage> {\n return this._hostController;\n }\n\n /**\n * A `boolean` value that returns `true` if the flyout is open.\n * @default true\n */\n public isOpen = true;\n\n /**\n * An event that the flyout instance emits when users click the next iterator button.\n */\n public get iteratorNextButtonClick(): EventEmitter<void> {\n return this._iteratorNextButtonClick;\n }\n\n /**\n * An event that the flyout instance emits when users click the previous iterator button.\n */\n public get iteratorPreviousButtonClick(): EventEmitter<void> {\n return this._iteratorPreviousButtonClick;\n }\n\n /**\n * Disables the next iterator button.\n * @default false\n */\n public set iteratorNextButtonDisabled(newValue: boolean) {\n this._iteratorNextButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorNextButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorNextButton,\n });\n }\n }\n\n public get iteratorNextButtonDisabled(): boolean {\n return this._iteratorNextButtonDisabled;\n }\n\n /**\n * Disables the previous iterator button.\n * @default false\n */\n public set iteratorPreviousButtonDisabled(newValue: boolean) {\n this._iteratorPreviousButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorPreviousButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorPreviousButton,\n });\n }\n }\n\n public get iteratorPreviousButtonDisabled(): boolean {\n return this._iteratorPreviousButtonDisabled;\n }\n\n private _beforeClose = new Subject<SkyFlyoutBeforeCloseHandler>();\n\n private _iteratorNextButtonClick = new EventEmitter<void>();\n\n private _iteratorPreviousButtonClick = new EventEmitter<void>();\n\n private _iteratorNextButtonDisabled = false;\n\n private _iteratorPreviousButtonDisabled = false;\n\n private _hostController = new Subject<SkyFlyoutMessage>();\n\n constructor() {\n this.closed.subscribe(() => {\n this.isOpen = false;\n });\n }\n\n /**\n * Closes the flyout instance and emits its `closed` event.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n this.hostController.next({\n type: SkyFlyoutMessageType.Close,\n data: { ignoreBeforeClose: args ? args.ignoreBeforeClose : false },\n });\n\n this._iteratorPreviousButtonClick.complete();\n this._iteratorNextButtonClick.complete();\n\n this.hostController.complete();\n }\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-flyout' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_flyout_close: { message: 'Close flyout' },\n skyux_flyout_iterator_previous_button: { message: 'Previous' },\n skyux_flyout_iterator_next_button: { message: 'Next' },\n skyux_flyout_permalink_button: { message: 'View record' },\n skyux_flyout_primary_action_button: { message: 'Create list' },\n skyux_flyout_resize_handle: {\n message:\n 'Resize the flyout window. Press the enter or space key to activate, then use left arrow key to expand the flyout window and right arrow key to shrink the flyout window. Press the enter, space, or tab key to deactivate.',\n },\n },\n};\n\nexport class SkyFlyoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyFlyoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyFlyoutResourcesModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout-iterator',\n templateUrl: './flyout-iterator.component.html',\n styleUrls: ['./flyout-iterator.component.scss'],\n})\nexport class SkyFlyoutIteratorComponent implements OnDestroy {\n @Input()\n public nextButtonDisabled: boolean;\n\n @Input()\n public previousButtonDisabled: boolean;\n\n @Output()\n public get previousButtonClick(): EventEmitter<void> {\n return this._previousButtonClick;\n }\n\n @Output()\n public get nextButtonClick(): EventEmitter<void> {\n return this._nextButtonClick;\n }\n\n private ngUnsubscribe = new Subject<void>();\n\n private _nextButtonClick = new EventEmitter<void>();\n\n private _previousButtonClick = new EventEmitter<void>();\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this._previousButtonClick.complete();\n this._nextButtonClick.complete();\n }\n\n public onIteratorPreviousClick(): void {\n /* istanbul ignore else */\n if (!this.previousButtonDisabled) {\n this._previousButtonClick.emit();\n }\n }\n\n public onIteratorNextClick(): void {\n /* istanbul ignore else */\n if (!this.nextButtonDisabled) {\n this._nextButtonClick.emit();\n }\n }\n}\n","<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyMediaBreakpoints } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2,\n private windowRef: SkyAppWindowRef\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public adjustHeaderForHelp(header: ElementRef): void {\n const windowObj = this.windowRef.nativeWindow;\n const helpWidget = windowObj.document.getElementById('bb-help-invoker');\n\n if (helpWidget) {\n this.renderer.addClass(header.nativeElement, 'sky-flyout-help-shim');\n }\n }\n\n public setResponsiveClass(\n element: ElementRef,\n breakpoint: SkyMediaBreakpoints\n ): void {\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = 'sky-responsive-container-xs';\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = 'sky-responsive-container-sm';\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = 'sky-responsive-container-md';\n break;\n }\n default: {\n newClass = 'sky-responsive-container-lg';\n break;\n }\n }\n\n this.renderer.addClass(nativeEl, newClass);\n }\n\n public toggleIframePointerEvents(enable: boolean): void {\n // When iframes are present on the page, they may interfere with dragging\n // temporarily disable pointer events in iframes when dragging starts.\n // When re-enabling we set to the empty string as it will remove the element styling\n // and fall back to any css originally given to iframe\n const iframes = document.querySelectorAll('iframe');\n for (let i = 0; i < iframes.length; i++) {\n iframes[i].style.pointerEvents = enable ? '' : 'none';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryListener } from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutMediaQueryService {\n public get current(): SkyMediaBreakpoints {\n return this._current;\n }\n\n private currentSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _current = SkyMediaBreakpoints.xs;\n\n constructor() {\n this.currentSubject.next(this._current);\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public setBreakpointForWidth(width: number): void {\n let breakpoint: SkyMediaBreakpoints;\n\n if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.xs)) {\n breakpoint = SkyMediaBreakpoints.xs;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.sm)) {\n breakpoint = SkyMediaBreakpoints.sm;\n } else if (this.isWidthWithinBreakpiont(width, SkyMediaBreakpoints.md)) {\n breakpoint = SkyMediaBreakpoints.md;\n } else {\n breakpoint = SkyMediaBreakpoints.lg;\n }\n\n this._current = breakpoint;\n this.currentSubject.next(this._current);\n }\n\n public isWidthWithinBreakpiont(\n width: number,\n breakpoint: SkyMediaBreakpoints\n ): boolean {\n const xsBreakpointMaxPixels = 767;\n const smBreakpointMinPixels = 768;\n const smBreakpointMaxPixels = 991;\n const mdBreakpointMinPixels = 992;\n const mdBreakpointMaxPixels = 1199;\n const lgBreakpointMinPixels = 1200;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n return width <= xsBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.sm: {\n return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.md: {\n return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;\n }\n default: {\n return width >= lgBreakpointMinPixels;\n }\n }\n }\n\n public destroy(): void {\n this.currentSubject.complete();\n }\n}\n","/**\n * Handler for notifying the flyout when it is appropriate to close the flyout. This will be returned from the flyout instance's `beforeClose` observable.\n */\nexport class SkyFlyoutBeforeCloseHandler {\n /**\n * Function which should be called to close the flyout. This should be called once any intervening actions have completed.\n */\n public readonly closeFlyout: Function;\n\n constructor(closeFlyoutFunction: Function) {\n this.closeFlyout = closeFlyoutFunction;\n }\n}\n","import {\n AnimationEvent,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostListener,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutAdapterService } from './flyout-adapter.service';\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutMediaQueryService } from './flyout-media-query.service';\nimport { SkyFlyoutAction } from './types/flyout-action';\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\nimport { SkyFlyoutPermalink } from './types/flyout-permalink';\n\nconst FLYOUT_OPEN_STATE = 'flyoutOpen';\nconst FLYOUT_CLOSED_STATE = 'flyoutClosed';\n\nlet nextId = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n providers: [\n SkyFlyoutAdapterService,\n SkyFlyoutMediaQueryService,\n { provide: SkyMediaQueryService, useExisting: SkyFlyoutMediaQueryService },\n ],\n animations: [\n trigger('flyoutState', [\n state(FLYOUT_OPEN_STATE, style({ transform: 'initial' })),\n state(FLYOUT_CLOSED_STATE, style({ transform: 'translateX(100%)' })),\n transition('void => *', [\n style({ transform: 'translateX(100%)' }),\n animate(250),\n ]),\n transition(`* <=> *`, animate('250ms ease-in')),\n ]),\n ],\n // Allow automatic change detection for child components.\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class SkyFlyoutComponent implements OnDestroy, OnInit {\n public config: SkyFlyoutConfig;\n public enableTrapFocus: boolean;\n public enableTrapFocusAutoCapture: boolean;\n public flyoutId = `sky-flyout-${++nextId}`;\n public flyoutState = FLYOUT_CLOSED_STATE;\n public isOpen = false;\n public isOpening = false;\n\n public flyoutWidth = 0;\n public instanceReady = false;\n public isDragging = false;\n public isFullscreen = false;\n public resizeKeyControlActive = false;\n\n private xCoord = 0;\n private windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this._messageStream;\n }\n\n public get permalink(): SkyFlyoutPermalink {\n const permalink = this.config.permalink;\n if (permalink) {\n return permalink;\n }\n\n return {};\n }\n\n public get permalinkLabel(): string {\n if (this.permalink.label) {\n return this.permalink.label;\n }\n\n return this.getString('skyux_flyout_permalink_button');\n }\n\n public get primaryAction(): SkyFlyoutAction {\n const primaryAction = this.config.primaryAction;\n if (primaryAction) {\n return primaryAction;\n }\n\n return {};\n }\n\n public get primaryActionLabel(): string {\n if (this.config.primaryAction && this.config.primaryAction.label) {\n return this.config.primaryAction.label;\n }\n\n return this.getString('skyux_flyout_primary_action_button');\n }\n\n public themeName: string;\n\n /**\n * @internal\n */\n public widthStep = 10;\n\n /**\n * @internal\n */\n @ViewChild('flyoutRef', {\n read: ElementRef,\n static: true,\n })\n public flyoutRef: ElementRef;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n private target: ViewContainerRef;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n private flyoutHeader: ElementRef;\n\n private flyoutInstance: SkyFlyoutInstance<any>;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _messageStream = new Subject<SkyFlyoutMessage>();\n\n constructor(\n private adapter: SkyFlyoutAdapterService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private resourcesService: SkyLibResourcesService,\n private flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n private elementRef: ElementRef,\n private uiConfigService: SkyUIConfigService,\n private readonly _ngZone: NgZone\n ) {\n // All commands flow through the message stream.\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.handleIncomingMessages(message);\n });\n }\n\n public ngOnInit(): void {\n this.adapter.adjustHeaderForHelp(this.flyoutHeader);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n public onWindowResize(event: any): void {\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n event.target.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(event.target.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n\n if (event.target.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = event.target.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n }\n\n public attach<T>(\n component: Type<T>,\n config: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n this.cleanTemplate();\n\n // Emit the closed event on any previously opened flyout instance\n if (this.flyoutInstance) {\n this.notifyClosed();\n }\n\n this.config = Object.assign({ providers: [] }, config);\n this.config.defaultWidth =\n this.config.defaultWidth || window.innerWidth / 2;\n this.config.minWidth = this.config.minWidth || 320;\n this.config.maxWidth = this.config.maxWidth || this.config.defaultWidth;\n\n this.config.showIterator = this.config.showIterator || false;\n this.config.iteratorNextButtonDisabled =\n this.config.iteratorNextButtonDisabled || false;\n this.config.iteratorPreviousButtonDisabled =\n this.config.iteratorPreviousButtonDisabled || false;\n\n const factory = this.resolver.resolveComponentFactory(component);\n\n const injector = Injector.create({\n parent: this.injector,\n providers: this.config.providers,\n });\n\n const componentRef = this.target.createComponent(\n factory,\n undefined,\n injector\n );\n\n this.flyoutInstance = this.createFlyoutInstance<T>(componentRef.instance);\n\n // This is used to ensure we do not render the flyout until we have attached the component.\n // This allows the aria-labelledby to function correctly.\n this.instanceReady = true;\n this.changeDetector.markForCheck();\n\n // Open the flyout immediately.\n this.messageStream.next({\n type: SkyFlyoutMessageType.Open,\n });\n\n if (this.config.settingsKey) {\n this.uiConfigService\n .getConfig(this.config.settingsKey)\n .pipe(take(1))\n .subscribe((value: any) => {\n if (value && value.flyoutWidth) {\n this.flyoutWidth = value.flyoutWidth;\n } else {\n // Bad data, or config is the default config.\n this.flyoutWidth = this.config.defaultWidth;\n }\n this.checkInitialSize();\n });\n } else {\n this.flyoutWidth = this.config.defaultWidth;\n this.checkInitialSize();\n }\n\n return this.flyoutInstance;\n }\n\n public close(): void {\n this.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n });\n }\n\n public invokePrimaryAction(): boolean {\n this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\n }\n\n public getAnimationState(): string {\n return this.instanceReady && this.isOpening\n ? FLYOUT_OPEN_STATE\n : FLYOUT_CLOSED_STATE;\n }\n\n public animationDone(event: AnimationEvent): void {\n if (event.toState === FLYOUT_OPEN_STATE) {\n this.isOpen = true;\n }\n\n if (event.toState === FLYOUT_CLOSED_STATE) {\n this.isOpen = false;\n this.notifyClosed();\n this.cleanTemplate();\n }\n }\n\n public onHeaderGrabHandleMouseDown(event: MouseEvent): void {\n this.onResizeHandleMouseDown(event);\n }\n\n public onHeaderGrabHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleKeyDown(event: KeyboardEvent): void {\n this.handleResizeKeyDown(event);\n }\n\n public onResizeHandleMouseDown(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isFullscreen) {\n return;\n }\n\n this.isDragging = true;\n this.xCoord = event.clientX;\n\n this.adapter.toggleIframePointerEvents(false);\n\n fromEvent(document, 'mousemove')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onMouseMove(moveEvent);\n });\n\n fromEvent(document, 'mouseup')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((mouseUpEvent: any) => {\n this.onHandleRelease(mouseUpEvent);\n });\n }\n\n public onMouseMove(event: MouseEvent): void {\n /* Sanity check */\n /* istanbul ignore if */\n if (!this.isDragging) {\n return;\n }\n\n const offsetX = event.clientX - this.xCoord;\n let width = this.flyoutWidth;\n\n width -= offsetX;\n\n if (width < this.config.minWidth || width > this.config.maxWidth) {\n return;\n }\n\n if (window.innerWidth - width < this.windowBufferSize) {\n width = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n } else {\n this.xCoord = event.clientX;\n }\n\n this.flyoutWidth = width;\n\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n\n this.changeDetector.markForCheck();\n }\n\n public onHandleRelease(event: MouseEvent): void {\n fromEvent(document, 'click')\n .pipe(take(1))\n .subscribe(() => {\n this.isDragging = false;\n this.adapter.toggleIframePointerEvents(true);\n this.setUserData();\n });\n }\n\n public onIteratorPreviousButtonClick(): void {\n this.flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n\n public onIteratorNextButtonClick(): void {\n this.flyoutInstance.iteratorNextButtonClick.emit();\n }\n\n private createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>();\n\n instance.componentInstance = component;\n instance.hostController\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.messageStream.next(message);\n });\n\n return instance;\n }\n\n private handleIncomingMessages(message: SkyFlyoutMessage): void {\n switch (message.type) {\n case SkyFlyoutMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = false;\n this.isOpening = true;\n }\n this.initFocusTrap();\n break;\n\n case SkyFlyoutMessageType.Close:\n if (\n (this.flyoutInstance.beforeClose as Subject<any>).observers.length ===\n 0 ||\n message.data?.ignoreBeforeClose\n ) {\n this.isOpen = true;\n this.isOpening = false;\n } else {\n (this.flyoutInstance.beforeClose as Subject<any>).next(\n new SkyFlyoutBeforeCloseHandler(() => {\n this.isOpen = true;\n this.isOpening = false;\n })\n );\n }\n break;\n\n case SkyFlyoutMessageType.EnableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.EnableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = true;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = true;\n break;\n }\n\n this.changeDetector.markForCheck();\n }\n\n private notifyClosed(): void {\n this.flyoutInstance.closed.emit();\n this.flyoutInstance.closed.complete();\n }\n\n private cleanTemplate(): void {\n this.target.clear();\n }\n\n private updateBreakpointAndResponsiveClass(width: number): void {\n this.flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpiont = this.flyoutMediaQueryService.current;\n\n this.adapter.setResponsiveClass(this.elementRef, newBreakpiont);\n }\n\n private setFullscreen(): void {\n if (window.innerWidth - this.windowBufferSize < this.config.minWidth) {\n this.isFullscreen = true;\n } else {\n this.isFullscreen = false;\n }\n }\n\n private setUserData(): void {\n if (this.config.settingsKey) {\n this.uiConfigService\n .setConfig(this.config.settingsKey, {\n flyoutWidth: this.flyoutWidth,\n })\n .pipe(take(1))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n private checkInitialSize(): void {\n if (this.flyoutWidth < this.config.minWidth) {\n this.flyoutWidth = this.config.minWidth;\n this.setUserData();\n } else if (this.flyoutWidth > this.config.maxWidth) {\n this.flyoutWidth = this.config.maxWidth;\n this.setUserData();\n }\n\n // Ensure flyout does not load larger than the window and its buffer\n if (window.innerWidth - this.flyoutWidth < this.windowBufferSize) {\n this.flyoutWidth = window.innerWidth - this.windowBufferSize;\n this.xCoord = this.windowBufferSize;\n this.setUserData();\n }\n\n if (\n this.flyoutMediaQueryService.isWidthWithinBreakpiont(\n window.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.updateBreakpointAndResponsiveClass(window.innerWidth);\n } else {\n this.updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.setFullscreen();\n }\n\n private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n\n private handleResizeKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key) {\n const keyPressed = event.key.toLowerCase().replace('arrow', '');\n switch (keyPressed) {\n case 'enter':\n case ' ':\n this.resizeKeyControlActive = !this.resizeKeyControlActive;\n break;\n case 'tab':\n /* istanbul ignore else */\n if (this.resizeKeyControlActive) {\n this.resizeKeyControlActive = false;\n }\n break;\n case 'left':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth < this.config.maxWidth) {\n this.flyoutWidth = Math.min(\n this.flyoutWidth + this.widthStep,\n this.config.maxWidth\n );\n }\n }\n break;\n\n case 'right':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth > this.config.minWidth) {\n this.flyoutWidth = Math.max(\n this.flyoutWidth - this.widthStep,\n this.config.minWidth\n );\n }\n }\n break;\n\n /* istanbul ignore next */\n default:\n break;\n }\n }\n }\n\n /** Executes a function when the zone is stable. */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n private initFocusTrap(): void {\n this.enableTrapFocusAutoCapture = false;\n this.enableTrapFocus = false;\n // Waiting for zone to be stable will avoid ExpressionChangeAfterCheckedError.\n this._executeOnStable(() => {\n this.enableTrapFocusAutoCapture = true;\n this.enableTrapFocus = true;\n });\n }\n}\n","<div\n class=\"sky-flyout\"\n tabindex=\"-1\"\n [attr.role]=\"config?.ariaRole ? config.ariaRole : 'dialog'\"\n [attr.aria-describedby]=\"config?.ariaDescribedBy\"\n [attr.aria-label]=\"config?.ariaLabel\"\n [attr.aria-labelledby]=\"config?.ariaLabelledBy\"\n [attr.aria-modal]=\"\n config?.ariaRole === 'dialog' || !config?.ariaRole ? true : false\n \"\n [attr.hidden]=\"!instanceReady ? true : undefined\"\n [id]=\"flyoutId\"\n [ngClass]=\"{\n 'sky-flyout-hidden': !isOpen && !isOpening,\n 'sky-flyout-fullscreen': isFullscreen\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-elevation-8': 'modern'\n }\"\n (@flyoutState.done)=\"animationDone($event)\"\n [@flyoutState]=\"getAnimationState()\"\n [style.width.px]=\"flyoutWidth\"\n #flyoutRef\n [cdkTrapFocus]=\"enableTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"enableTrapFocusAutoCapture\"\n>\n <div\n class=\"sky-flyout-header\"\n [skyThemeClass]=\"{\n 'sky-padding-squish-large': 'default'\n }\"\n #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"sky-btn sky-btn-icon-borderless sky-margin-inline-sm sky-flyout-header-grab-handle\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n (keydown)=\"onHeaderGrabHandleKeyDown($event)\"\n (mousedown)=\"onHeaderGrabHandleMouseDown($event)\"\n >\n <sky-icon icon=\"tile-drag\" iconType=\"skyux\" size=\"lg\"> </sky-icon>\n </button>\n\n <sky-flyout-iterator\n *ngIf=\"config.showIterator\"\n [nextButtonDisabled]=\"config.iteratorNextButtonDisabled\"\n [previousButtonDisabled]=\"config.iteratorPreviousButtonDisabled\"\n (nextButtonClick)=\"onIteratorNextButtonClick()\"\n (previousButtonClick)=\"onIteratorPreviousButtonClick()\"\n >\n </sky-flyout-iterator>\n </div>\n <div class=\"sky-flyout-header-buttons\">\n <ng-container *ngTemplateOutlet=\"permalinkTemplate\"> </ng-container>\n <ng-container *ngTemplateOutlet=\"primaryActionTemplate\"> </ng-container>\n <button\n class=\"sky-btn sky-flyout-btn-close sky-label-icon-theme-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_flyout_close' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"close\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n </div>\n </div>\n <div class=\"sky-flyout-content\">\n <div #target></div>\n </div>\n <div\n class=\"sky-flyout-resize-handle\"\n role=\"separator\"\n tabindex=\"0\"\n type=\"range\"\n [attr.aria-controls]=\"flyoutId\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"config.maxWidth\"\n [attr.aria-valuemin]=\"config.minWidth\"\n [attr.aria-valuenow]=\"flyoutWidth\"\n (keydown)=\"onResizeHandleKeyDown($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n ></div>\n</div>\n\n<ng-template #permalinkTemplate>\n <ng-template [ngIf]=\"permalink\">\n <ng-template [ngIf]=\"permalink.url\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n <ng-template [ngIf]=\"permalink.route\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [routerLink]=\"permalink.route.commands\"\n [fragment]=\"permalink.route.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n [queryParams]=\"permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route.extras?.queryParamsHandling\"\n [state]=\"permalink.route.extras?.state\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template #primaryActionTemplate>\n <ng-template [ngIf]=\"primaryAction && primaryAction.callback\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-flyout-btn-primary-action sky-margin-inline-default\"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyHrefModule } from '@skyux/router';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFlyoutResourcesModule } from '../shared/sky-flyout-resources.module';\n\nimport { SkyFlyoutIteratorComponent } from './flyout-iterator.component';\nimport { SkyFlyoutComponent } from './flyout.component';\n\n@NgModule({\n declarations: [SkyFlyoutComponent, SkyFlyoutIteratorComponent],\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n RouterModule,\n SkyI18nModule,\n SkyIconModule,\n SkyFlyoutResourcesModule,\n SkyThemeModule,\n SkyHrefModule,\n ],\n exports: [SkyFlyoutComponent],\n})\nexport class SkyFlyoutModule {}\n","import {\n ComponentRef,\n Injectable,\n NgZone,\n OnDestroy,\n Type,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutComponent } from './flyout.component';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Launches flyouts and provides a common look and feel.\n * This service dynamically generates the flyout component and appends it directly to the\n * document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyFlyoutService implements OnDestroy {\n private host: ComponentRef<SkyFlyoutComponent>;\n private removeAfterClosed = false;\n private isOpening = false;\n private ngUnsubscribe = new Subject<boolean>();\n\n constructor(\n private coreAdapter: SkyCoreAdapterService,\n private windowRef: SkyAppWindowRef,\n private dynamicComponentService: SkyDynamicComponentService,\n private router: Router,\n private readonly _ngZone: NgZone\n ) {}\n\n public ngOnDestroy(): void {\n this.removeListners();\n if (this.host) {\n this.removeHostComponent();\n }\n }\n\n /**\n * Closes the flyout. This method also removes the flyout's HTML elements from the DOM.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n if (this.host && !this.isOpening) {\n this.host.instance.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n data: {\n ignoreBeforeClose: args ? args.ignoreBeforeClose : false,\n },\n });\n }\n }\n\n /**\n * Opens a flyout and displays the specified component.\n * @param component Specifies the component to render.\n * @param config Specifies the flyout configuration passed to the specified component's constructor.\n */\n public open<T>(\n component: Type<T>,\n config?: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n // isOpening flag will prevent close() from firing when open() is also fired.\n this.isOpening = true;\n this.windowRef.nativeWindow.setTimeout(() => {\n this.isOpening = false;\n });\n\n if (!this.host) {\n this.host = this.createHostComponent();\n\n this.router.events\n .pipe(takeWhile(() => this.host !== undefined))\n .subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.close();\n\n // Sanity check - if the host still exists after animations should have completed - remove host\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.host) {\n this.removeHostComponent();\n }\n });\n }\n });\n }\n\n const flyout = this.host.instance.attach(component, config);\n\n this.addListeners(flyout);\n\n return flyout;\n }\n\n private createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.host =\n this.dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.host;\n }\n\n private removeHostComponent(): void {\n if (this.host) {\n this.dynamicComponentService.removeComponent(this.host);\n this.host = undefined;\n }\n }\n\n private addListeners<T>(flyout: SkyFlyoutInstance<T>): void {\n /* istanbul ignore else */\n if (this.host) {\n const flyoutInstance = this.host.instance;\n\n let doClose = false;\n\n /**\n * Handles when to close a flyout.\n * Note: We're using `mouseup` in order to capture the parent of certain targets that will be\n * deleted immediately after being clicked. If we use `click`, the event is fired after the\n * element is removed from the DOM making it impossible to check the parent's z-index\n * relative to the flyout's container.\n */\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: MouseEvent) => {\n doClose = false;\n\n if (this.host.instance.isDragging) {\n return;\n }\n\n if (flyoutInstance.flyoutRef.nativeElement.contains(event.target)) {\n return;\n }\n\n const isAbove =\n event.target === document\n ? false\n : this.coreAdapter.isTargetAboveElement(\n event.target,\n flyoutInstance.flyoutRef.nativeElement\n );\n\n /* istanbul ignore else */\n if (!isAbove) {\n doClose = true;\n }\n });\n\n /**\n * Check if we should close the flyout specifically on a `click` event so that we can keep\n * it open when consumers fire another `click` event on a trigger button. Since the consumer\n * will likely use a `click` event to open the flyout, we want to wait for that event to fire\n * before determining if the flyout should be closed.\n */\n fromEvent(document, 'click')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (doClose) {\n this.close();\n }\n });\n\n this.removeAfterClosed = false;\n flyoutInstance.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n if (message.type === SkyFlyoutMessageType.Close) {\n this.removeAfterClosed = true;\n this.isOpening = false;\n }\n });\n\n flyout.closed.pipe(take(1)).subscribe(() => {\n this.removeListners();\n if (this.removeAfterClosed) {\n this.removeHostComponent();\n }\n });\n }\n }\n\n private removeListners(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n this.ngUnsubscribe = new Subject<boolean>();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i1.SkyFlyoutAdapterService","i2","i3.SkyFlyoutMediaQueryService","i4","i5","i6.SkyFlyoutIteratorComponent","i8","i11"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG;IACS,qBAOX;AAPD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,oBAAA,CAAA,oBAAA,CAAA,0BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,oBAAA,CAAA,oBAAA,CAAA,8BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,8BAA4B,CAAA;AAC5B,IAAA,oBAAA,CAAA,oBAAA,CAAA,2BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,2BAAyB,CAAA;AACzB,IAAA,oBAAA,CAAA,oBAAA,CAAA,+BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,+BAA6B,CAAA;AAC/B,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,GAO/B,EAAA,CAAA,CAAA;;ACDD;;AAEG;MACU,iBAAiB,CAAA;AAsG5B,IAAA,WAAA,GAAA;AA5FA;;AAEG;AACI,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAezC;;;AAGG;QACI,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AA0Db,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAA+B,CAAC;AAE1D,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEpD,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,YAAY,EAAQ,CAAC;QAExD,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;QAEpC,IAA+B,CAAA,+BAAA,GAAG,KAAK,CAAC;AAExC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAoB,CAAC;AAGxD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAzGD;;;;AAIG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;AAYD;;;AAGG;AACH,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AAQD;;AAEG;AACH,IAAA,IAAW,uBAAuB,GAAA;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACtC;AAED;;AAEG;AACH,IAAA,IAAW,2BAA2B,GAAA;QACpC,OAAO,IAAI,CAAC,4BAA4B,CAAC;KAC1C;AAED;;;AAGG;IACH,IAAW,0BAA0B,CAAC,QAAiB,EAAA;AACrD,QAAA,IAAI,CAAC,2BAA2B,GAAG,QAAQ,CAAC;AAC5C,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,yBAAyB;AACrD,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,wBAAwB;AACpD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,IAAW,0BAA0B,GAAA;QACnC,OAAO,IAAI,CAAC,2BAA2B,CAAC;KACzC;AAED;;;AAGG;IACH,IAAW,8BAA8B,CAAC,QAAiB,EAAA;AACzD,QAAA,IAAI,CAAC,+BAA+B,GAAG,QAAQ,CAAC;AAChD,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,6BAA6B;AACzD,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,oBAAoB,CAAC,4BAA4B;AACxD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,IAAW,8BAA8B,GAAA;QACvC,OAAO,IAAI,CAAC,+BAA+B,CAAC;KAC7C;AAoBD;;;AAGG;AACI,IAAA,KAAK,CAAC,IAAyB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,oBAAoB,CAAC,KAAK;AAChC,YAAA,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,KAAK,EAAE;AACnE,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;AACF;;ACvID;;;;;AAKG;AAWH,MAAM,SAAS,GAA0C;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,kBAAkB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;AAC/C,QAAA,qCAAqC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC9D,QAAA,iCAAiC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;AACtD,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AACzD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC9D,QAAA,0BAA0B,EAAE;AAC1B,YAAA,OAAO,EACL,4NAA4N;AAC/N,SAAA;AACF,KAAA;CACF,CAAC;MAEW,0BAA0B,CAAA;IAC9B,SAAS,CACd,UAA4B,EAC5B,IAAY,EAAA;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAClE;AACF,CAAA;AAED;;AAEG;MAWU,wBAAwB,CAAA;;qHAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YATzB,aAAa,CAAA,EAAA,CAAA,CAAA;AASZ,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EARxB,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,0BAA0B;AACpC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAPS,aAAa,CAAA,EAAA,CAAA,CAAA;2FASZ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,QAAQ,EAAE,0BAA0B;AACpC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACzCD;;AAEG;MAMU,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;AAsBU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;AAE5C,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAQ,CAAC;AAsBzD,KAAA;AApCC,IAAA,IACW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC;KAClC;AAED,IAAA,IACW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAQM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAClC;IAEM,uBAAuB,GAAA;;AAE5B,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChC,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;AAClC,SAAA;KACF;IAEM,mBAAmB,GAAA;;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC9B,SAAA;KACF;;uHA1CU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,gQClBvC,yvCA0CA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;2FDxBa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,yvCAAA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,CAAA;8BAMxB,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAIK,mBAAmB,EAAA,CAAA;sBAD7B,MAAM;gBAMI,eAAe,EAAA,CAAA;sBADzB,MAAM;;;AEtBT;;AAEG;MAEU,uBAAuB,CAAA;IAGlC,WACU,CAAA,eAAiC,EACjC,SAA0B,EAAA;QAD1B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACjC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;AAElC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KAC3E;AAEM,IAAA,mBAAmB,CAAC,MAAkB,EAAA;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAExE,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;AACtE,SAAA;KACF;IAEM,kBAAkB,CACvB,OAAmB,EACnB,UAA+B,EAAA;AAE/B,QAAA,MAAM,QAAQ,GAAgB,OAAO,CAAC,aAAa,CAAC;QAEpD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;AAEnE,QAAA,IAAI,QAAgB,CAAC;AAErB,QAAA,QAAQ,UAAU;AAChB,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACD,YAAA,SAAS;gBACP,QAAQ,GAAG,6BAA6B,CAAC;gBACzC,MAAM;AACP,aAAA;AACF,SAAA;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5C;AAEM,IAAA,yBAAyB,CAAC,MAAe,EAAA;;;;;QAK9C,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;AACvD,SAAA;KACF;;oHA/DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;ACNX;;AAEG;MAEU,0BAA0B,CAAA;AAWrC,IAAA,WAAA,GAAA;QANQ,IAAc,CAAA,cAAA,GAAG,IAAI,eAAe,CAC1C,IAAI,CAAC,OAAO,CACb,CAAC;AAEM,QAAA,IAAA,CAAA,QAAQ,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAGxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzC;AAZD,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAYM,IAAA,SAAS,CAAC,QAA+B,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,EAAE,CAAC,WAAgC,KAAI;gBACzC,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;AACF,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,UAA+B,CAAC;QAEpC,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,EAAE;AAC/D,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,EAAE;AACtE,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC,EAAE;AACtE,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC;AACrC,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzC;IAEM,uBAAuB,CAC5B,KAAa,EACb,UAA+B,EAAA;QAE/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,GAAG,CAAC;QAClC,MAAM,qBAAqB,GAAG,IAAI,CAAC;QACnC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,QAAA,QAAQ,UAAU;AAChB,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,OAAO,KAAK,IAAI,qBAAqB,CAAC;AACvC,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;AAC3B,gBAAA,OAAO,KAAK,IAAI,qBAAqB,IAAI,KAAK,IAAI,qBAAqB,CAAC;AACzE,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;AAC3B,gBAAA,OAAO,KAAK,IAAI,qBAAqB,IAAI,KAAK,IAAI,qBAAqB,CAAC;AACzE,aAAA;AACD,YAAA,SAAS;gBACP,OAAO,KAAK,IAAI,qBAAqB,CAAC;AACvC,aAAA;AACF,SAAA;KACF;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;;uHArEU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAA1B,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;;ACRX;;AAEG;MACU,2BAA2B,CAAA;AAMtC,IAAA,WAAA,CAAY,mBAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;KACxC;AACF;;AC+BD,MAAM,iBAAiB,GAAG,YAAY,CAAC;AACvC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf;;AAEG;MAwBU,kBAAkB,CAAA;AA0F7B,IAAA,WAAA,CACU,OAAgC,EAChC,cAAiC,EACjC,QAAkB,EAClB,QAAkC,EAClC,gBAAwC,EACxC,uBAAmD,EACnD,UAAsB,EACtB,eAAmC,EAC1B,OAAe,EAAA;QARxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;QAClC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAwB;QACxC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA4B;QACnD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;QAC1B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AA/F3B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAA,WAAA,EAAc,EAAE,MAAM,EAAE,CAAC;QACpC,IAAW,CAAA,WAAA,GAAG,mBAAmB,CAAC;QAClC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;QAE9B,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;QACX,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;AA0C9B;;AAEG;QACI,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAyBd,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAoB,CAAC;;AAcvD,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,YAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;AAzFD,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AACxC,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;KACxD;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAChD,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;AAChE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;KAC7D;IAuDM,QAAQ,GAAA;QACb,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrD;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAGM,IAAA,cAAc,CAAC,KAAU,EAAA;AAC9B,QAAA,IACE,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAClD,KAAK,CAAC,MAAM,CAAC,UAAU,EACvB,mBAAmB,CAAC,EAAE,CACvB,EACD;YACA,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACtE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACnE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAEM,MAAM,CACX,SAAkB,EAClB,MAAuB,EAAA;QAEvB,IAAI,CAAC,aAAa,EAAE,CAAC;;QAGrB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,YAAY;YACtB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAExE,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,0BAA0B;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,0BAA0B,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,8BAA8B;AACxC,YAAA,IAAI,CAAC,MAAM,CAAC,8BAA8B,IAAI,KAAK,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAEjE,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AACjC,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9C,OAAO,EACP,SAAS,EACT,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;;;AAI1E,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;;AAGnC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB,CAAC,IAAI;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe;AACjB,iBAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAClC,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC,CAAC,KAAU,KAAI;AACxB,gBAAA,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;AAC9B,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACtC,iBAAA;AAAM,qBAAA;;oBAEL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC7C,iBAAA;gBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB,CAAC,KAAK;AACjC,SAAA,CAAC,CAAC;KACJ;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,iBAAiB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS;AACzC,cAAE,iBAAiB;cACjB,mBAAmB,CAAC;KACzB;AAEM,IAAA,aAAa,CAAC,KAAqB,EAAA;AACxC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE;AACzC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;AAEM,IAAA,2BAA2B,CAAC,KAAiB,EAAA;AAClD,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACrC;AAEM,IAAA,yBAAyB,CAAC,KAAoB,EAAA;AACnD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACjC;AAEM,IAAA,qBAAqB,CAAC,KAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACjC;AAEM,IAAA,uBAAuB,CAAC,KAAiB,EAAA;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;AAE5B,QAAA,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAE9C,QAAA,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;AAC7B,aAAA,IAAI,CACH,SAAS,CAAC,MAAK;YACb,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,SAAc,KAAI;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;AAEL,QAAA,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC3B,aAAA,IAAI,CACH,SAAS,CAAC,MAAK;YACb,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,YAAiB,KAAI;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,WAAW,CAAC,KAAiB,EAAA;;;AAGlC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;AACR,SAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5C,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7B,KAAK,IAAI,OAAO,CAAC;AAEjB,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAChE,OAAO;AACR,SAAA;QAED,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACrD,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAEzB,QAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAE1D,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAEM,IAAA,eAAe,CAAC,KAAiB,EAAA;AACtC,QAAA,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;AACzB,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;KACN;IAEM,6BAA6B,GAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;KACxD;IAEM,yBAAyB,GAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;KACpD;AAEO,IAAA,oBAAoB,CAAI,SAAY,EAAA;AAC1C,QAAA,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAK,CAAC;AAE5C,QAAA,QAAQ,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACvC,QAAA,QAAQ,CAAC,cAAc;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AAEL,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEO,IAAA,sBAAsB,CAAC,OAAyB,EAAA;QACtD,QAAQ,OAAO,CAAC,IAAI;YAClB,KAAK,oBAAoB,CAAC,IAAI;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,iBAAA;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;YAER,KAAK,oBAAoB,CAAC,KAAK;gBAC7B,IACG,IAAI,CAAC,cAAc,CAAC,WAA4B,CAAC,SAAS,CAAC,MAAM;oBAChE,CAAC;AACH,oBAAA,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAC/B;AACA,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,iBAAA;AAAM,qBAAA;oBACJ,IAAI,CAAC,cAAc,CAAC,WAA4B,CAAC,IAAI,CACpD,IAAI,2BAA2B,CAAC,MAAK;AACnC,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,wBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB,CAAC,CACH,CAAC;AACH,iBAAA;gBACD,MAAM;YAER,KAAK,oBAAoB,CAAC,wBAAwB;AAChD,gBAAA,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,KAAK,CAAC;gBAC/C,MAAM;YAER,KAAK,oBAAoB,CAAC,4BAA4B;AACpD,gBAAA,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,KAAK,CAAC;gBACnD,MAAM;YAER,KAAK,oBAAoB,CAAC,yBAAyB;AACjD,gBAAA,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBAC9C,MAAM;YAER,KAAK,oBAAoB,CAAC,6BAA6B;AACrD,gBAAA,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,IAAI,CAAC;gBAClD,MAAM;AACT,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACvC;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;AAEO,IAAA,kCAAkC,CAAC,KAAa,EAAA;AACtD,QAAA,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAE1D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KACjE;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe;AACjB,iBAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBAClC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;AACD,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS;;AAER,YAAA,MAAO,GAAC,EACR,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AAC5C,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,aAAC,CACF,CAAC;AACL,SAAA;KACF;IAEO,gBAAgB,GAAA;QACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;;QAGD,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC7D,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;AAED,QAAA,IACE,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAClD,MAAM,CAAC,UAAU,EACjB,mBAAmB,CAAC,EAAE,CACvB,EACD;AACA,YAAA,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAEO,IAAA,SAAS,CAAC,GAAW,EAAA;;AAE3B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;KAC3E;AAEO,IAAA,mBAAmB,CAAC,KAAoB,EAAA;;QAE9C,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChE,YAAA,QAAQ,UAAU;AAChB,gBAAA,KAAK,OAAO,CAAC;AACb,gBAAA,KAAK,GAAG;AACN,oBAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;oBAC3D,MAAM;AACR,gBAAA,KAAK,KAAK;;oBAER,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,wBAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACrC,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,MAAM;oBACT,IAAI,IAAI,CAAC,sBAAsB,EAAE;;wBAE/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;AACH,yBAAA;AACF,qBAAA;oBACD,MAAM;AAER,gBAAA,KAAK,OAAO;oBACV,IAAI,IAAI,CAAC,sBAAsB,EAAE;;wBAE/B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;AACH,yBAAA;AACF,qBAAA;oBACD,MAAM;;AAGR,gBAAA;oBACE,MAAM;AACT,aAAA;AACF,SAAA;KACF;;AAGO,IAAA,gBAAgB,CAAC,EAAa,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,EAAE,EAAE,CAAC;AACN,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnD,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;;AAE7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;;+GA3hBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAnBlB,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACT,uBAAuB;QACvB,0BAA0B;AAC1B,QAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE;AAC3E,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAkFO,UAAU,EAMV,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,qHAMhB,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzJpB,wvJA8IA,EDlFc,MAAA,EAAA,CAAA,85EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAAN,IAAA,CAAA,mBAAA,EAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,aAAa,EAAE;YACrB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACpE,UAAU,CAAC,WAAW,EAAE;AACtB,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC;aACb,CAAC;AACF,YAAA,UAAU,CAAC,CAAS,OAAA,CAAA,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;SAChD,CAAC;AACH,KAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;2FAIU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAvB9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGX,SAAA,EAAA;wBACT,uBAAuB;wBACvB,0BAA0B;AAC1B,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE;qBAC3E,EACW,UAAA,EAAA;wBACV,OAAO,CAAC,aAAa,EAAE;4BACrB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;4BACzD,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;4BACpE,UAAU,CAAC,WAAW,EAAE;AACtB,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gCACxC,OAAO,CAAC,GAAG,CAAC;6BACb,CAAC;AACF,4BAAA,UAAU,CAAC,CAAS,OAAA,CAAA,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;yBAChD,CAAC;qBACH,EAEgB,eAAA,EAAA,uBAAuB,CAAC,OAAO,EAAA,QAAA,EAAA,wvJAAA,EAAA,MAAA,EAAA,CAAA,85EAAA,CAAA,EAAA,CAAA;uWAwEzC,SAAS,EAAA,CAAA;sBAJf,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE;AACtB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;gBAOO,MAAM,EAAA,CAAA;sBAJb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE;AACnB,wBAAA,IAAI,EAAE,gBAAgB;AACtB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;gBAOO,YAAY,EAAA,CAAA;sBAJnB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE;AACzB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;gBAsCM,cAAc,EAAA,CAAA;sBADpB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MElK9B,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAdX,YAAA,EAAA,CAAA,kBAAkB,EAAE,0BAA0B,aAE3D,UAAU;QACV,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,cAAc;AACd,QAAA,aAAa,aAEL,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAbjB,OAAA,EAAA,CAAA;YACP,UAAU;YACV,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,cAAc;YACd,aAAa;AACd,SAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AAC9D,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,cAAc;wBACd,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;ACLD;;;;AAIG;MAIU,gBAAgB,CAAA;IAM3B,WACU,CAAA,WAAkC,EAClC,SAA0B,EAC1B,uBAAmD,EACnD,MAAc,EACL,OAAe,EAAA;QAJxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAuB;QAClC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;QAC1B,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA4B;QACnD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACL,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAT1B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW,CAAC;KAQ3C;IAEG,WAAW,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;AAED;;;AAGG;AACI,IAAA,KAAK,CAAC,IAAyB,EAAA;QACpC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,oBAAoB,CAAC,KAAK;AAChC,gBAAA,IAAI,EAAE;oBACJ,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACzD,iBAAA;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED;;;;AAIG;IACI,IAAI,CACT,SAAkB,EAClB,MAAwB,EAAA;;AAGxB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,MAAM;AACf,iBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAC9C,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;gBACnB,IAAI,KAAK,YAAY,eAAe,EAAE;oBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;;AAGb,oBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;wBACjD,IAAI,IAAI,CAAC,IAAI,EAAE;4BACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACH,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAE1B,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI;AACP,YAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IAEO,mBAAmB,GAAA;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACvB,SAAA;KACF;AAEO,IAAA,YAAY,CAAI,MAA4B,EAAA;;QAElD,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAE1C,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB;;;;;;AAMG;AACH,YAAA,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC3B,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;gBAC/B,OAAO,GAAG,KAAK,CAAC;AAEhB,gBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;oBACjC,OAAO;AACR,iBAAA;AAED,gBAAA,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBACjE,OAAO;AACR,iBAAA;AAED,gBAAA,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,KAAK,QAAQ;AACvB,sBAAE,KAAK;AACP,sBAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACnC,KAAK,CAAC,MAAM,EACZ,cAAc,CAAC,SAAS,CAAC,aAAa,CACvC,CAAC;;gBAGR,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,GAAG,IAAI,CAAC;AAChB,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL;;;;;AAKG;AACH,YAAA,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;AACzB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,YAAA,cAAc,CAAC,aAAa;AACzB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,OAAyB,KAAI;AACvC,gBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,EAAE;AAC/C,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBACzC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAW,CAAC;KAC7C;;6GAxKU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,KAAK,EAAA,CAAA,CAAA;2FAEN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA,CAAA;;;AC/BD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/flyout",
3
- "version": "6.0.0-beta.6",
3
+ "version": "6.0.0-beta.7",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -38,11 +38,11 @@
38
38
  "@angular/core": "^13.3.2",
39
39
  "@angular/forms": "^13.3.2",
40
40
  "@angular/router": "^13.3.2",
41
- "@skyux/core": "6.0.0-beta.6",
42
- "@skyux/i18n": "6.0.0-beta.6",
43
- "@skyux/indicators": "6.0.0-beta.6",
44
- "@skyux/router": "6.0.0-beta.6",
45
- "@skyux/theme": "6.0.0-beta.6"
41
+ "@skyux/core": "6.0.0-beta.7",
42
+ "@skyux/i18n": "6.0.0-beta.7",
43
+ "@skyux/indicators": "6.0.0-beta.7",
44
+ "@skyux/router": "6.0.0-beta.7",
45
+ "@skyux/theme": "6.0.0-beta.7"
46
46
  },
47
47
  "dependencies": {
48
48
  "tslib": "^2.3.1"