UNPKG

@bespunky/angular-zen

Version:

The Angular tools you always wished were there.

48 lines 6.21 kB
import { Inject, Injectable, InjectionToken } from '@angular/core'; import { DOCUMENT as ANGULAR_DOCUMENT } from '@angular/common'; import * as i0 from "@angular/core"; /** A token used to provide the native document implementation for `DocumentRef`. By default, `CoreModule` will provide angular's DOCUMENT token. */ export const DOCUMENT = new InjectionToken('DocumentToken'); /** * Provides an injectable wrapper for the `document` object. * Inject this in your services/components and you will be able to easily mock or spy on the native `document` object in your tests. * * By default, the `nativeDocument` property will point to angular's DOM adapter, thus facilitating DOM access and manipulation * on the different platforms. * To mock the native document, provide a value for the `DOCUMENT` token from `@bespunky/angular-zen/core`. * You will safely mock it without trashing angular's `DOCUMENT` provider. * * @see document-ref.service.spec.ts for examples. */ export class DocumentRef { // Treating native document as `any` save users typecasting everytime and deducing if the object is of type `Document` or `object`. /** * Creates an instance of `DocumentRef`. * * @param {*} nativeDocument The native document provided by the `DOCUMENT` token of `@bespunky/angular-zen/core`. See `DocumentRef` for details. */ constructor(nativeDocument) { this.nativeDocument = nativeDocument; } } DocumentRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DocumentRef, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); DocumentRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DocumentRef, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DocumentRef, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT] }] }]; } }); /** * The default provider for the `DOCUMENT` token. Uses angular's DOM adapters which will be injected according to the platform. */ export const DocumentProvider = { provide: DOCUMENT, useExisting: ANGULAR_DOCUMENT }; /** * A bundle of all providers needed for DocumentRef to work. */ export const DocumentRefProviders = [DocumentProvider]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItemVuL2NvcmUvc3JjL2RvY3VtZW50LXJlZi9kb2N1bWVudC1yZWYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLElBQUksZ0JBQWdCLEVBQTBCLE1BQU0saUJBQWlCLENBQUM7O0FBRXZGLG9KQUFvSjtBQUNwSixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQVcsZUFBZSxDQUFDLENBQUM7QUFFdEU7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBRXBCLG1JQUFtSTtJQUNuSTs7OztPQUlHO0lBQ0gsWUFBOEMsY0FBbUI7UUFBbkIsbUJBQWMsR0FBZCxjQUFjLENBQUs7SUFBSSxDQUFDOzt5R0FSN0QsV0FBVyxrQkFRQSxRQUFROzZHQVJuQixXQUFXLGNBREUsTUFBTTs0RkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQVNqQixNQUFNOzJCQUFDLFFBQVE7O0FBR2hDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFCO0lBQzlDLE9BQU8sRUFBTSxRQUFRO0lBQ3JCLFdBQVcsRUFBRSxnQkFBZ0I7Q0FDaEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhpc3RpbmdQcm92aWRlciwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgYXMgQU5HVUxBUl9ET0NVTUVOVCAgICAgICAgICAgICAgICAgICAgICAgICB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKiBBIHRva2VuIHVzZWQgdG8gcHJvdmlkZSB0aGUgbmF0aXZlIGRvY3VtZW50IGltcGxlbWVudGF0aW9uIGZvciBgRG9jdW1lbnRSZWZgLiBCeSBkZWZhdWx0LCBgQ29yZU1vZHVsZWAgd2lsbCBwcm92aWRlIGFuZ3VsYXIncyBET0NVTUVOVCB0b2tlbi4gKi9cbmV4cG9ydCBjb25zdCBET0NVTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEb2N1bWVudD4oJ0RvY3VtZW50VG9rZW4nKTtcblxuLyoqXG4gKiBQcm92aWRlcyBhbiBpbmplY3RhYmxlIHdyYXBwZXIgZm9yIHRoZSBgZG9jdW1lbnRgIG9iamVjdC5cbiAqIEluamVjdCB0aGlzIGluIHlvdXIgc2VydmljZXMvY29tcG9uZW50cyBhbmQgeW91IHdpbGwgYmUgYWJsZSB0byBlYXNpbHkgbW9jayBvciBzcHkgb24gdGhlIG5hdGl2ZSBgZG9jdW1lbnRgIG9iamVjdCBpbiB5b3VyIHRlc3RzLlxuICogXG4gKiBCeSBkZWZhdWx0LCB0aGUgYG5hdGl2ZURvY3VtZW50YCBwcm9wZXJ0eSB3aWxsIHBvaW50IHRvIGFuZ3VsYXIncyBET00gYWRhcHRlciwgdGh1cyBmYWNpbGl0YXRpbmcgRE9NIGFjY2VzcyBhbmQgbWFuaXB1bGF0aW9uXG4gKiBvbiB0aGUgZGlmZmVyZW50IHBsYXRmb3Jtcy5cbiAqIFRvIG1vY2sgdGhlIG5hdGl2ZSBkb2N1bWVudCwgcHJvdmlkZSBhIHZhbHVlIGZvciB0aGUgYERPQ1VNRU5UYCB0b2tlbiBmcm9tIGBAYmVzcHVua3kvYW5ndWxhci16ZW4vY29yZWAuXG4gKiBZb3Ugd2lsbCBzYWZlbHkgbW9jayBpdCB3aXRob3V0IHRyYXNoaW5nIGFuZ3VsYXIncyBgRE9DVU1FTlRgIHByb3ZpZGVyLlxuICogXG4gKiBAc2VlIGRvY3VtZW50LXJlZi5zZXJ2aWNlLnNwZWMudHMgZm9yIGV4YW1wbGVzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50UmVmXG57XG4gICAgLy8gVHJlYXRpbmcgbmF0aXZlIGRvY3VtZW50IGFzIGBhbnlgIHNhdmUgdXNlcnMgdHlwZWNhc3RpbmcgZXZlcnl0aW1lIGFuZCBkZWR1Y2luZyBpZiB0aGUgb2JqZWN0IGlzIG9mIHR5cGUgYERvY3VtZW50YCBvciBgb2JqZWN0YC5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGBEb2N1bWVudFJlZmAuXG4gICAgICogXG4gICAgICogQHBhcmFtIHsqfSBuYXRpdmVEb2N1bWVudCBUaGUgbmF0aXZlIGRvY3VtZW50IHByb3ZpZGVkIGJ5IHRoZSBgRE9DVU1FTlRgIHRva2VuIG9mIGBAYmVzcHVua3kvYW5ndWxhci16ZW4vY29yZWAuIFNlZSBgRG9jdW1lbnRSZWZgIGZvciBkZXRhaWxzLiBcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlRG9jdW1lbnQ6IGFueSkgeyB9XG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcHJvdmlkZXIgZm9yIHRoZSBgRE9DVU1FTlRgIHRva2VuLiBVc2VzIGFuZ3VsYXIncyBET00gYWRhcHRlcnMgd2hpY2ggd2lsbCBiZSBpbmplY3RlZCBhY2NvcmRpbmcgdG8gdGhlIHBsYXRmb3JtLlxuICovXG5leHBvcnQgY29uc3QgRG9jdW1lbnRQcm92aWRlcjogRXhpc3RpbmdQcm92aWRlciA9IHtcbiAgICBwcm92aWRlICAgIDogRE9DVU1FTlQsXG4gICAgdXNlRXhpc3Rpbmc6IEFOR1VMQVJfRE9DVU1FTlRcbn07XG5cbi8qKlxuICogQSBidW5kbGUgb2YgYWxsIHByb3ZpZGVycyBuZWVkZWQgZm9yIERvY3VtZW50UmVmIHRvIHdvcmsuXG4gKi9cbmV4cG9ydCBjb25zdCBEb2N1bWVudFJlZlByb3ZpZGVycyA9IFtEb2N1bWVudFByb3ZpZGVyXTtcbiJdfQ==