theme-lib
Version:
This is a simple example Angular Library published to npm.
122 lines • 7.32 kB
JavaScript
/**
* @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