@ng-web-apis/universal
Version:
A set of fallback for @ng-web-apis/common for Angular Universal
115 lines • 12 kB
JavaScript
import { Optional } from '@angular/core';
import { WA_NAVIGATOR } from '@ng-web-apis/common';
import { SSR_USER_AGENT } from '../tokens/ssr-user-agent';
import { EVENT_TARGET } from '../utils/event-target';
import { alwaysFalse, alwaysRejected, alwaysZero, emptyArray, emptyFunction, emptyObject, } from '../utils/functions';
function getArray() {
return new (class extends Array {
item = () => null;
namedItem = () => null;
refresh() { }
})();
}
export const NAVIGATOR_MOCK = {
appCodeName: '',
appName: '',
appVersion: '',
platform: '',
product: '',
productSub: '',
userAgent: '',
vendor: '',
vendorSub: '',
onLine: false,
confirmSiteSpecificTrackingException: alwaysFalse,
confirmWebWideTrackingException: alwaysFalse,
share: alwaysRejected,
registerProtocolHandler: emptyFunction,
unregisterProtocolHandler: emptyFunction,
removeSiteSpecificTrackingException: emptyFunction,
removeWebWideTrackingException: emptyFunction,
storeSiteSpecificTrackingException: emptyFunction,
storeWebWideTrackingException: emptyFunction,
credentials: {
create: alwaysRejected,
get: alwaysRejected,
preventSilentAccess: alwaysRejected,
store: alwaysRejected,
},
msSaveBlob: alwaysFalse,
msSaveOrOpenBlob: alwaysFalse,
sendBeacon: alwaysFalse,
hardwareConcurrency: 0,
getDisplayMedia: alwaysRejected,
language: '',
languages: [],
storage: {
estimate: alwaysRejected,
persist: alwaysRejected,
persisted: alwaysRejected,
},
activeVRDisplays: [],
authentication: {
getAssertion: alwaysRejected,
makeCredential: alwaysRejected,
},
clipboard: {
...EVENT_TARGET,
readText: alwaysRejected,
writeText: alwaysRejected,
},
cookieEnabled: false,
doNotTrack: null,
gamepadInputEmulation: 'keyboard',
geolocation: {
clearWatch: emptyFunction,
getCurrentPosition: emptyFunction,
watchPosition: alwaysZero,
},
maxTouchPoints: 0,
mediaDevices: {
...EVENT_TARGET,
ondevicechange: null,
enumerateDevices: alwaysRejected,
getSupportedConstraints: emptyObject,
getUserMedia: alwaysRejected,
},
mimeTypes: getArray(),
msManipulationViewsEnabled: false,
msMaxTouchPoints: 0,
msPointerEnabled: false,
permissions: {
query: alwaysRejected,
},
plugins: getArray(),
pointerEnabled: false,
serviceWorker: {
...EVENT_TARGET,
controller: null,
oncontrollerchange: null,
onmessage: null,
onmessageerror: null,
ready: alwaysRejected(),
getRegistration: alwaysRejected,
getRegistrations: alwaysRejected,
register: alwaysRejected,
startMessages: emptyFunction,
},
webdriver: false,
getGamepads: emptyArray,
getUserMedia: emptyFunction,
getVRDisplays: alwaysRejected,
javaEnabled: alwaysFalse,
msLaunchUri: emptyFunction,
requestMediaKeySystemAccess: alwaysRejected,
vibrate: alwaysFalse,
};
export const UNIVERSAL_NAVIGATOR = {
provide: WA_NAVIGATOR,
deps: [[new Optional(), SSR_USER_AGENT]],
useFactory: (userAgent) => ({
...NAVIGATOR_MOCK,
userAgent: userAgent ?? '',
}),
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsLW5hdmlnYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdW5pdmVyc2FsL3NyYy9jb25zdGFudHMvdW5pdmVyc2FsLW5hdmlnYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFDSCxXQUFXLEVBQ1gsY0FBYyxFQUNkLFVBQVUsRUFDVixVQUFVLEVBQ1YsYUFBYSxFQUNiLFdBQVcsR0FDZCxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLFNBQVMsUUFBUTtJQUNiLE9BQU8sSUFBSSxDQUFDLEtBQU0sU0FBUSxLQUFRO1FBQ3ZCLElBQUksR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDeEIsU0FBUyxHQUFHLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQztRQUM3QixPQUFPLEtBQVUsQ0FBQztLQUM1QixDQUFDLEVBQUUsQ0FBQztBQUNULENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWM7SUFDckMsV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxFQUFFO0lBQ2QsUUFBUSxFQUFFLEVBQUU7SUFDWixPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxFQUFFO0lBQ2QsU0FBUyxFQUFFLEVBQUU7SUFDYixNQUFNLEVBQUUsRUFBRTtJQUNWLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEtBQUs7SUFDYixvQ0FBb0MsRUFBRSxXQUFXO0lBQ2pELCtCQUErQixFQUFFLFdBQVc7SUFDNUMsS0FBSyxFQUFF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dG9yeVByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXQV9OQVZJR0FUT1J9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuXG5pbXBvcnQge1NTUl9VU0VSX0FHRU5UfSBmcm9tICcuLi90b2tlbnMvc3NyLXVzZXItYWdlbnQnO1xuaW1wb3J0IHtFVkVOVF9UQVJHRVR9IGZyb20gJy4uL3V0aWxzL2V2ZW50LXRhcmdldCc7XG5pbXBvcnQge1xuICAgIGFsd2F5c0ZhbHNlLFxuICAgIGFsd2F5c1JlamVjdGVkLFxuICAgIGFsd2F5c1plcm8sXG4gICAgZW1wdHlBcnJheSxcbiAgICBlbXB0eUZ1bmN0aW9uLFxuICAgIGVtcHR5T2JqZWN0LFxufSBmcm9tICcuLi91dGlscy9mdW5jdGlvbnMnO1xuXG5mdW5jdGlvbiBnZXRBcnJheTxUPigpOiBUW10ge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgQXJyYXk8VD4ge1xuICAgICAgICBwdWJsaWMgaXRlbSA9ICgpOiBudWxsID0+IG51bGw7XG4gICAgICAgIHB1YmxpYyBuYW1lZEl0ZW0gPSAoKTogbnVsbCA9PiBudWxsO1xuICAgICAgICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHt9XG4gICAgfSkoKTtcbn1cblxuZXhwb3J0IGNvbnN0IE5BVklHQVRPUl9NT0NLOiBOYXZpZ2F0b3IgPSB7XG4gICAgYXBwQ29kZU5hbWU6ICcnLFxuICAgIGFwcE5hbWU6ICcnLFxuICAgIGFwcFZlcnNpb246ICcnLFxuICAgIHBsYXRmb3JtOiAnJyxcbiAgICBwcm9kdWN0OiAnJyxcbiAgICBwcm9kdWN0U3ViOiAnJyxcbiAgICB1c2VyQWdlbnQ6ICcnLFxuICAgIHZlbmRvcjogJycsXG4gICAgdmVuZG9yU3ViOiAnJyxcbiAgICBvbkxpbmU6IGZhbHNlLFxuICAgIGNvbmZpcm1TaXRlU3BlY2lmaWNUcmFja2luZ0V4Y2VwdGlvbjogYWx3YXlzRmFsc2UsXG4gICAgY29uZmlybVdlYldpZGVUcmFja2luZ0V4Y2VwdGlvbjogYWx3YXlzRmFsc2UsXG4gICAgc2hhcmU6IGFsd2F5c1JlamVjdGVkLFxuICAgIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyOiBlbXB0eUZ1bmN0aW9uLFxuICAgIHVucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXI6IGVtcHR5RnVuY3Rpb24sXG4gICAgcmVtb3ZlU2l0ZVNwZWNpZmljVHJhY2tpbmdFeGNlcHRpb246IGVtcHR5RnVuY3Rpb24sXG4gICAgcmVtb3ZlV2ViV2lkZVRyYWNraW5nRXhjZXB0aW9uOiBlbXB0eUZ1bmN0aW9uLFxuICAgIHN0b3JlU2l0ZVNwZWNpZmljVHJhY2tpbmdFeGNlcHRpb246IGVtcHR5RnVuY3Rpb24sXG4gICAgc3RvcmVXZWJXaWRlVHJhY2tpbmdFeGNlcHRpb246IGVtcHR5RnVuY3Rpb24sXG4gICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgY3JlYXRlOiBhbHdheXNSZWplY3RlZCxcbiAgICAgICAgZ2V0OiBhbHdheXNSZWplY3RlZCxcbiAgICAgICAgcHJldmVudFNpbGVudEFjY2VzczogYWx3YXlzUmVqZWN0ZWQsXG4gICAgICAgIHN0b3JlOiBhbHdheXNSZWplY3RlZCxcbiAgICB9LFxuICAgIG1zU2F2ZUJsb2I6IGFsd2F5c0ZhbHNlLFxuICAgIG1zU2F2ZU9yT3BlbkJsb2I6IGFsd2F5c0ZhbHNlLFxuICAgIHNlbmRCZWFjb246IGFsd2F5c0ZhbHNlLFxuICAgIGhhcmR3YXJlQ29uY3VycmVuY3k6IDAsXG4gICAgZ2V0RGlzcGxheU1lZGlhOiBhbHdheXNSZWplY3RlZCxcbiAgICBsYW5ndWFnZTogJycsXG4gICAgbGFuZ3VhZ2VzOiBbXSxcbiAgICBzdG9yYWdlOiB7XG4gICAgICAgIGVzdGltYXRlOiBhbHdheXNSZWplY3RlZCxcbiAgICAgICAgcGVyc2lzdDogYWx3YXlzUmVqZWN0ZWQsXG4gICAgICAgIHBlcnNpc3RlZDogYWx3YXlzUmVqZWN0ZWQsXG4gICAgfSxcbiAgICBhY3RpdmVWUkRpc3BsYXlzOiBbXSxcbiAgICBhdXRoZW50aWNhdGlvbjoge1xuICAgICAgICBnZXRBc3NlcnRpb246IGFsd2F5c1JlamVjdGVkLFxuICAgICAgICBtYWtlQ3JlZGVudGlhbDogYWx3YXlzUmVqZWN0ZWQsXG4gICAgfSxcbiAgICBjbGlwYm9hcmQ6IHtcbiAgICAgICAgLi4uRVZFTlRfVEFSR0VULFxuICAgICAgICByZWFkVGV4dDogYWx3YXlzUmVqZWN0ZWQsXG4gICAgICAgIHdyaXRlVGV4dDogYWx3YXlzUmVqZWN0ZWQsXG4gICAgfSxcbiAgICBjb29raWVFbmFibGVkOiBmYWxzZSxcbiAgICBkb05vdFRyYWNrOiBudWxsLFxuICAgIGdhbWVwYWRJbnB1dEVtdWxhdGlvbjogJ2tleWJvYXJkJyxcbiAgICBnZW9sb2NhdGlvbjoge1xuICAgICAgICBjbGVhcldhdGNoOiBlbXB0eUZ1bmN0aW9uLFxuICAgICAgICBnZXRDdXJyZW50UG9zaXRpb246IGVtcHR5RnVuY3Rpb24sXG4gICAgICAgIHdhdGNoUG9zaXRpb246IGFsd2F5c1plcm8sXG4gICAgfSxcbiAgICBtYXhUb3VjaFBvaW50czogMCxcbiAgICBtZWRpYURldmljZXM6IHtcbiAgICAgICAgLi4uRVZFTlRfVEFSR0VULFxuICAgICAgICBvbmRldmljZWNoYW5nZTogbnVsbCxcbiAgICAgICAgZW51bWVyYXRlRGV2aWNlczogYWx3YXlzUmVqZWN0ZWQsXG4gICAgICAgIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzOiBlbXB0eU9iamVjdCxcbiAgICAgICAgZ2V0VXNlck1lZGlhOiBhbHdheXNSZWplY3RlZCxcbiAgICB9LFxuICAgIG1pbWVUeXBlczogZ2V0QXJyYXk8TWltZVR5cGU+KCksXG4gICAgbXNNYW5pcHVsYXRpb25WaWV3c0VuYWJsZWQ6IGZhbHNlLFxuICAgIG1zTWF4VG91Y2hQb2ludHM6IDAsXG4gICAgbXNQb2ludGVyRW5hYmxlZDogZmFsc2UsXG4gICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgcXVlcnk6IGFsd2F5c1JlamVjdGVkLFxuICAgIH0sXG4gICAgcGx1Z2luczogZ2V0QXJyYXk8UGx1Z2luPigpLFxuICAgIHBvaW50ZXJFbmFibGVkOiBmYWxzZSxcbiAgICBzZXJ2aWNlV29ya2VyOiB7XG4gICAgICAgIC4uLkVWRU5UX1RBUkdFVCxcbiAgICAgICAgY29udHJvbGxlcjogbnVsbCxcbiAgICAgICAgb25jb250cm9sbGVyY2hhbmdlOiBudWxsLFxuICAgICAgICBvbm1lc3NhZ2U6IG51bGwsXG4gICAgICAgIG9ubWVzc2FnZWVycm9yOiBudWxsLFxuICAgICAgICByZWFkeTogYWx3YXlzUmVqZWN0ZWQoKSxcbiAgICAgICAgZ2V0UmVnaXN0cmF0aW9uOiBhbHdheXNSZWplY3RlZCxcbiAgICAgICAgZ2V0UmVnaXN0cmF0aW9uczogYWx3YXlzUmVqZWN0ZWQsXG4gICAgICAgIHJlZ2lzdGVyOiBhbHdheXNSZWplY3RlZCxcbiAgICAgICAgc3RhcnRNZXNzYWdlczogZW1wdHlGdW5jdGlvbixcbiAgICB9LFxuICAgIHdlYmRyaXZlcjogZmFsc2UsXG4gICAgZ2V0R2FtZXBhZHM6IGVtcHR5QXJyYXksXG4gICAgZ2V0VXNlck1lZGlhOiBlbXB0eUZ1bmN0aW9uLFxuICAgIGdldFZSRGlzcGxheXM6IGFsd2F5c1JlamVjdGVkLFxuICAgIGphdmFFbmFibGVkOiBhbHdheXNGYWxzZSxcbiAgICBtc0xhdW5jaFVyaTogZW1wdHlGdW5jdGlvbixcbiAgICByZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3M6IGFsd2F5c1JlamVjdGVkLFxuICAgIHZpYnJhdGU6IGFsd2F5c0ZhbHNlLFxufSBhcyB1bmtub3duIGFzIE5hdmlnYXRvcjtcblxuZXhwb3J0IGNvbnN0IFVOSVZFUlNBTF9OQVZJR0FUT1I6IEZhY3RvcnlQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBXQV9OQVZJR0FUT1IsXG4gICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgU1NSX1VTRVJfQUdFTlRdXSxcbiAgICB1c2VGYWN0b3J5OiAodXNlckFnZW50OiBzdHJpbmcgfCBudWxsKTogTmF2aWdhdG9yID0+ICh7XG4gICAgICAgIC4uLk5BVklHQVRPUl9NT0NLLFxuICAgICAgICB1c2VyQWdlbnQ6IHVzZXJBZ2VudCA/PyAnJyxcbiAgICB9KSxcbn07XG4iXX0=