UNPKG

@ngx-toolkit/device

Version:

Angular device user-agent detection with Universal support

35 lines 3.95 kB
import { DOCUMENT } from '@angular/common'; import { NgModule, Optional } from '@angular/core'; import { DeviceService } from './device.service'; import { DEVICE, USER_AGENT } from './device.token'; import * as i0 from "@angular/core"; export function deviceResolverFactory(userAgent, document) { if (!userAgent && document) { userAgent = document.defaultView?.navigator?.userAgent; } return DeviceService.resolveDevice(userAgent); } export class DeviceModule { /** * In root module to provide the DEVICE */ static forRoot() { return { ngModule: DeviceModule, providers: [ { provide: DEVICE, useFactory: deviceResolverFactory, deps: [[new Optional(), USER_AGENT], [new Optional(), DOCUMENT]] } ] }; } } DeviceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DeviceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); DeviceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DeviceModule }); DeviceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DeviceModule }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DeviceModule, decorators: [{ type: NgModule }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RldmljZS9zcmMvbGliL2RldmljZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBc0IsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbEQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFNBQWtCLEVBQUUsUUFBYztJQUN0RSxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsRUFBRTtRQUMxQixTQUFTLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0tBQ3hEO0lBRUQsT0FBTyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFHRCxNQUFNLE9BQU8sWUFBWTtJQUN2Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsTUFBTTtvQkFDZixVQUFVLEVBQUUscUJBQXFCO29CQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUNqRTthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3lHQWZVLFlBQVk7MEdBQVosWUFBWTswR0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEZXZpY2V9IGZyb20gJy4vZGV2aWNlLm1vZGVsJztcbmltcG9ydCB7RGV2aWNlU2VydmljZX0gZnJvbSAnLi9kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQge0RFVklDRSwgVVNFUl9BR0VOVH0gZnJvbSAnLi9kZXZpY2UudG9rZW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV2aWNlUmVzb2x2ZXJGYWN0b3J5KHVzZXJBZ2VudD86IHN0cmluZywgZG9jdW1lbnQ/OiBhbnkpOiBEZXZpY2Uge1xuICBpZiAoIXVzZXJBZ2VudCAmJiBkb2N1bWVudCkge1xuICAgIHVzZXJBZ2VudCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3Py5uYXZpZ2F0b3I/LnVzZXJBZ2VudDtcbiAgfVxuXG4gIHJldHVybiBEZXZpY2VTZXJ2aWNlLnJlc29sdmVEZXZpY2UodXNlckFnZW50KTtcbn1cblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBEZXZpY2VNb2R1bGUge1xuICAvKipcbiAgICogSW4gcm9vdCBtb2R1bGUgdG8gcHJvdmlkZSB0aGUgREVWSUNFXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERldmljZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGV2aWNlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBERVZJQ0UsXG4gICAgICAgICAgdXNlRmFjdG9yeTogZGV2aWNlUmVzb2x2ZXJGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIFVTRVJfQUdFTlRdLCBbbmV3IE9wdGlvbmFsKCksIERPQ1VNRU5UXV1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==