UNPKG

ngx-hotjar

Version:

A simple ng wrapper to load hotjar dependency by angular way

60 lines 7.95 kB
import { __awaiter } from "tslib"; import { APP_INITIALIZER, isDevMode } from '@angular/core'; import { NGX_HOTJAR_SETTINGS_TOKEN } from '../tokens/ngx-hotjar-settings.token'; import { DOCUMENT } from '@angular/common'; import { WINDOW } from '../tokens/window-token'; /** * Provides a TOKEN to manually configure Hojtar tracking code by angular way. */ export const NGX_HOTJAR_INITIALIZER_PROVIDER = { provide: APP_INITIALIZER, multi: true, useFactory: hotjarInitializer, deps: [ NGX_HOTJAR_SETTINGS_TOKEN, DOCUMENT, WINDOW ] }; /** * Configuration Factory to create hotjar install script tag and attache on DOM at angular initialization. */ export function hotjarInitializer(settings, document, window) { return () => __awaiter(this, void 0, void 0, function* () { if (!settings.trackingCode) { if (isDevMode()) { console.error('Empty tracking code for Hotjar. Make sure to provide one when initializing NgxHotjarModule.'); } return; } if (!document) { if (isDevMode()) { console.error('Was not possible to access `document` instance. Make shure this environment works on a Broser like API'); } return; } if (!window) { if (isDevMode()) { console.error('Was not possible to access `window` api. Make sure this environment works like a browser.'); } return; } Object.defineProperty(window, 'hj', { value: (window.hj || function () { (window.hj.q = window.hj.q || []).push(arguments); }), configurable: true, writable: true }); Object.defineProperty(window, '_hjSettings', { value: { hjid: settings.trackingCode, hjsv: (settings.version || 6) }, configurable: true, writable: true }); const head = document.querySelector('head'), script = document.createElement('script'), uri = `https://static.hotjar.com/c/hotjar-${window._hjSettings.hjid}.js?sv=${window._hjSettings.hjsv}`; script.async = true; script.src = (settings.uri || uri); head.appendChild(script); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90amFyLmluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhvdGphci9zcmMvbGliL2luaXRpYWxpemVycy9ob3RqYXIuaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQVksU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBYTtJQUN2RCxPQUFPLEVBQUUsZUFBZTtJQUN4QixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxpQkFBaUI7SUFDN0IsSUFBSSxFQUFFO1FBQ0oseUJBQXlCO1FBQ3pCLFFBQVE7UUFDUixNQUFNO0tBQ1A7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFFBQXlCLEVBQ3pCLFFBQWtCLEVBQ2xCLE1BQTRFO0lBRTVFLE9BQU8sR0FBUyxFQUFFO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQzFCLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw2RkFBNkYsQ0FBQyxDQUFDO2FBQzlHO1lBRUQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3R0FBd0csQ0FBQyxDQUFDO2FBQ3pIO1lBRUQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO2FBQzVHO1lBRUQsT0FBTztTQUNSO1FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUk7Z0JBQ25CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQztZQUNGLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLGNBQWMsQ0FDbkIsTUFBTSxFQUNOLGFBQWEsRUFDYjtZQUNFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDckUsWUFBWSxFQUFFLElBQUk7WUFDbEIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUNGLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUNyQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFDekMsR0FBRyxHQUFHLHNDQUFzQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksVUFBVSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFBLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBQcm92aWRlciwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSG90amFyU2V0dGluZ3MgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ktaG90amFyLXNldHRpbmdzJztcbmltcG9ydCB7IE5HWF9IT1RKQVJfU0VUVElOR1NfVE9LRU4gfSBmcm9tICcuLi90b2tlbnMvbmd4LWhvdGphci1zZXR0aW5ncy50b2tlbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXSU5ET1cgfSBmcm9tICcuLi90b2tlbnMvd2luZG93LXRva2VuJztcbmltcG9ydCB7IEhqRm4gfSBmcm9tICcuLi90eXBlcy9oaic7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBUT0tFTiB0byBtYW51YWxseSBjb25maWd1cmUgSG9qdGFyIHRyYWNraW5nIGNvZGUgYnkgYW5ndWxhciB3YXkuXG4gKi9cbmV4cG9ydCBjb25zdCBOR1hfSE9USkFSX0lOSVRJQUxJWkVSX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRmFjdG9yeTogaG90amFySW5pdGlhbGl6ZXIsXG4gIGRlcHM6IFtcbiAgICBOR1hfSE9USkFSX1NFVFRJTkdTX1RPS0VOLFxuICAgIERPQ1VNRU5ULFxuICAgIFdJTkRPV1xuICBdXG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gRmFjdG9yeSB0byBjcmVhdGUgaG90amFyIGluc3RhbGwgc2NyaXB0IHRhZyBhbmQgYXR0YWNoZSBvbiBET00gYXQgYW5ndWxhciBpbml0aWFsaXphdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvdGphckluaXRpYWxpemVyKFxuICBzZXR0aW5nczogSUhvdGphclNldHRpbmdzLFxuICBkb2N1bWVudDogRG9jdW1lbnQsXG4gIHdpbmRvdzogV2luZG93ICYgeyBoaj86IEhqRm4sIF9oalNldHRpbmdzPzogeyBoamlkOiBzdHJpbmcsIGhqc3Y6IG51bWJlciB9IH1cbikge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghc2V0dGluZ3MudHJhY2tpbmdDb2RlKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRW1wdHkgdHJhY2tpbmcgY29kZSBmb3IgSG90amFyLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBvbmUgd2hlbiBpbml0aWFsaXppbmcgTmd4SG90amFyTW9kdWxlLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFkb2N1bWVudCkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dhcyBub3QgcG9zc2libGUgdG8gYWNjZXNzIGBkb2N1bWVudGAgaW5zdGFuY2UuIE1ha2Ugc2h1cmUgdGhpcyBlbnZpcm9ubWVudCB3b3JrcyBvbiBhIEJyb3NlciBsaWtlIEFQSScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF3aW5kb3cpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdXYXMgbm90IHBvc3NpYmxlIHRvIGFjY2VzcyBgd2luZG93YCBhcGkuIE1ha2Ugc3VyZSB0aGlzIGVudmlyb25tZW50IHdvcmtzIGxpa2UgYSBicm93c2VyLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2hqJywgeyBcbiAgICAgIHZhbHVlOiAod2luZG93LmhqIHx8IGZ1bmN0aW9uKCkge1xuICAgICAgICAod2luZG93LmhqLnEgPSB3aW5kb3cuaGoucSB8fCBbXSkucHVzaChhcmd1bWVudHMpO1xuICAgICAgfSksXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgd2luZG93LFxuICAgICAgJ19oalNldHRpbmdzJyxcbiAgICAgIHsgXG4gICAgICAgIHZhbHVlOiB7IGhqaWQ6IHNldHRpbmdzLnRyYWNraW5nQ29kZSwgaGpzdjogKHNldHRpbmdzLnZlcnNpb24gfHwgNikgfSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLFxuICAgICAgICAgIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLFxuICAgICAgICAgIHVyaSA9IGBodHRwczovL3N0YXRpYy5ob3RqYXIuY29tL2MvaG90amFyLSR7d2luZG93Ll9oalNldHRpbmdzLmhqaWR9LmpzP3N2PSR7d2luZG93Ll9oalNldHRpbmdzLmhqc3Z9YDtcblxuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LnNyYyA9IChzZXR0aW5ncy51cmkgfHwgdXJpKTtcblxuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfTtcbn1cbiJdfQ==