UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

122 lines 7.32 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Inject, Injectable, NgZone } from '@angular/core'; import { FocusTrap, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y'; import { NB_DOCUMENT } from '../../../theme.options'; /* * Overrides angular cdk focus trap to keep restore functionality inside trap. * */ export class NbFocusTrap extends FocusTrap { /** * @param {?} element * @param {?} checker * @param {?} ngZone * @param {?} document * @param {?} deferAnchors */ constructor(element, checker, ngZone, document, deferAnchors) { super(element, checker, ngZone, document, deferAnchors); this.element = element; this.checker = checker; this.ngZone = ngZone; this.document = document; this.savePreviouslyFocusedElement(); } /** * @return {?} */ restoreFocus() { this.previouslyFocusedElement.focus(); this.destroy(); } /** * @return {?} */ blurPreviouslyFocusedElement() { this.previouslyFocusedElement.blur(); } /** * @protected * @return {?} */ savePreviouslyFocusedElement() { this.previouslyFocusedElement = (/** @type {?} */ (this.document.activeElement)); } } if (false) { /** * @type {?} * @protected */ NbFocusTrap.prototype.previouslyFocusedElement; /** * @type {?} * @protected */ NbFocusTrap.prototype.element; /** * @type {?} * @protected */ NbFocusTrap.prototype.checker; /** * @type {?} * @protected */ NbFocusTrap.prototype.ngZone; /** * @type {?} * @protected */ NbFocusTrap.prototype.document; } export class NbFocusTrapFactoryService extends FocusTrapFactory { /** * @param {?} checker * @param {?} ngZone * @param {?} document */ constructor(checker, ngZone, document) { super(checker, ngZone, document); this.checker = checker; this.ngZone = ngZone; this.document = document; } /** * @param {?} element * @param {?=} deferCaptureElements * @return {?} */ create(element, deferCaptureElements) { return new NbFocusTrap(element, this.checker, this.ngZone, this.document, deferCaptureElements); } } NbFocusTrapFactoryService.decorators = [ { type: Injectable } ]; /** @nocollapse */ NbFocusTrapFactoryService.ctorParameters = () => [ { type: InteractivityChecker }, { type: NgZone }, { type: undefined, decorators: [{ type: Inject, args: [NB_DOCUMENT,] }] } ]; if (false) { /** * @type {?} * @protected */ NbFocusTrapFactoryService.prototype.checker; /** * @type {?} * @protected */ NbFocusTrapFactoryService.prototype.ngZone; /** * @type {?} * @private */ NbFocusTrapFactoryService.prototype.document; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3RoZW1lLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Nkay9hMTF5L2ZvY3VzLXRyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBTXJELE1BQU0sT0FBTyxXQUFZLFNBQVEsU0FBUzs7Ozs7Ozs7SUFHeEMsWUFDWSxPQUFvQixFQUNwQixPQUE2QixFQUM3QixNQUFjLEVBQ2QsUUFBa0IsRUFDNUIsWUFBWTtRQUNaLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFMOUMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUc1QixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OztJQUVELDRCQUE0QjtRQUMxQixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7Ozs7SUFFUyw0QkFBNEI7UUFDcEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLG1CQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFlLENBQUM7SUFDN0UsQ0FBQztDQUNGOzs7Ozs7SUF4QkMsK0NBQWdEOzs7OztJQUc5Qyw4QkFBOEI7Ozs7O0lBQzlCLDhCQUF1Qzs7Ozs7SUFDdkMsNkJBQXdCOzs7OztJQUN4QiwrQkFBNEI7O0FBcUJoQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZ0JBQWdCOzs7Ozs7SUFDN0QsWUFDWSxPQUE2QixFQUM3QixNQUFjLEVBQ0ssUUFBUTtRQUNyQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUh2QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0ssYUFBUSxHQUFSLFFBQVEsQ0FBQTtJQUV2QyxDQUFDOzs7Ozs7SUFFRCxNQUFNLENBQUMsT0FBb0IsRUFBRSxvQkFBOEI7UUFDekQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUNsRyxDQUFDOzs7WUFYRixVQUFVOzs7O1lBbkMyQixvQkFBb0I7WUFEN0IsTUFBTTs0Q0F5QzlCLE1BQU0sU0FBQyxXQUFXOzs7Ozs7O0lBRm5CLDRDQUF1Qzs7Ozs7SUFDdkMsMkNBQXdCOzs7OztJQUN4Qiw2Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb2N1c1RyYXAsIEZvY3VzVHJhcEZhY3RvcnksIEludGVyYWN0aXZpdHlDaGVja2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5cclxuaW1wb3J0IHsgTkJfRE9DVU1FTlQgfSBmcm9tICcuLi8uLi8uLi90aGVtZS5vcHRpb25zJztcclxuXHJcblxyXG4vKlxyXG4gKiBPdmVycmlkZXMgYW5ndWxhciBjZGsgZm9jdXMgdHJhcCB0byBrZWVwIHJlc3RvcmUgZnVuY3Rpb25hbGl0eSBpbnNpZGUgdHJhcC5cclxuICogKi9cclxuZXhwb3J0IGNsYXNzIE5iRm9jdXNUcmFwIGV4dGVuZHMgRm9jdXNUcmFwIHtcclxuICBwcm90ZWN0ZWQgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogSFRNTEVsZW1lbnQsXHJcbiAgICBwcm90ZWN0ZWQgY2hlY2tlcjogSW50ZXJhY3Rpdml0eUNoZWNrZXIsXHJcbiAgICBwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcm90ZWN0ZWQgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgZGVmZXJBbmNob3JzKSB7XHJcbiAgICBzdXBlcihlbGVtZW50LCBjaGVja2VyLCBuZ1pvbmUsIGRvY3VtZW50LCBkZWZlckFuY2hvcnMpO1xyXG4gICAgdGhpcy5zYXZlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCk7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlRm9jdXMoKSB7XHJcbiAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBibHVyUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCkge1xyXG4gICAgdGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQuYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKSB7XHJcbiAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5iRm9jdXNUcmFwRmFjdG9yeVNlcnZpY2UgZXh0ZW5kcyBGb2N1c1RyYXBGYWN0b3J5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBjaGVja2VyOiBJbnRlcmFjdGl2aXR5Q2hlY2tlcixcclxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIEBJbmplY3QoTkJfRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQpIHtcclxuICAgIHN1cGVyKGNoZWNrZXIsIG5nWm9uZSwgZG9jdW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBkZWZlckNhcHR1cmVFbGVtZW50cz86IGJvb2xlYW4pOiBOYkZvY3VzVHJhcCB7XHJcbiAgICByZXR1cm4gbmV3IE5iRm9jdXNUcmFwKGVsZW1lbnQsIHRoaXMuY2hlY2tlciwgdGhpcy5uZ1pvbmUsIHRoaXMuZG9jdW1lbnQsIGRlZmVyQ2FwdHVyZUVsZW1lbnRzKTtcclxuICB9XHJcbn1cclxuIl19