ngx-hotjar
Version:
A simple ng wrapper to load hotjar dependency by angular way
107 lines • 9.56 kB
JavaScript
import { Injectable, Inject, isDevMode } from '@angular/core';
import { NGX_HJ_FN } from '../tokens/ngx-hj-token';
import { NGX_HOTJAR_SETTINGS_TOKEN } from '../tokens/ngx-hotjar-settings.token';
import * as i0 from "@angular/core";
import * as i1 from "../tokens/ngx-hj-token";
import * as i2 from "../tokens/ngx-hotjar-settings.token";
export class NgxHotjarService {
/** @ignore */
constructor(
/** @ignore */
_hj,
/** @ignore */
settings) {
this._hj = _hj;
this.settings = settings;
}
/**
* Provide direct access to the `hj.*` static functions. If the desired function is not available on type definition, you can cast to `any` as following.
*
```typescript
(hjService.lib as any).myBrandNewStaticFn()
```
*/
get lib() {
return this._hj;
}
/** Expose Hotjar Function calls */
hj(...args) {
try {
this._hj(...args);
}
catch (err) {
if (isDevMode() || this.settings.ennableTracing) {
console.error(err.message);
}
}
}
/**
* Fires an PageView event on Hotjar. Use this method to trigger an virtual url path. The same as
*
```typescript
hj('vpv', path)
```
*/
virtualPageView(path) {
this.hj('vpv', path);
}
/**
* Fires an event on Hotjar. Use this method to trigger events on forms and start video recordings. Same as
*
```typescript
hj('trigger', path)
```
*/
trigger(path) {
this.hj('trigger', path);
}
tagRecording(tagOrCollection, ...tags) {
// Retrocompatibility
if (!Array.isArray(tagOrCollection)) {
tagOrCollection = [tagOrCollection];
}
this.hj('tagRecording', tagOrCollection.concat(...tags));
}
/**
* This option is available in case you need to set up page change tracking manually
* within your app's router.
*
```typescript
hj('stateChange', path)
```
*/
stateChange(path) {
this.hj('stateChange', path);
}
/**
* Signals form submission success
*
```typescript
hj('formSubmitSuccessful');
```
*/
formSubmitSuccessful() {
this.hj('formSubmitSuccessful');
}
/**
* Signals form submission failure
*
```typescript
hj('formSubmitFailed');
```
*/
formSubmitFailed() {
this.hj('formSubmitFailed');
}
}
NgxHotjarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgxHotjarService_Factory() { return new NgxHotjarService(i0.ɵɵinject(i1.NGX_HJ_FN), i0.ɵɵinject(i2.NGX_HOTJAR_SETTINGS_TOKEN)); }, token: NgxHotjarService, providedIn: "root" });
NgxHotjarService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
NgxHotjarService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [NGX_HJ_FN,] }] },
{ type: undefined, decorators: [{ type: Inject, args: [NGX_HOTJAR_SETTINGS_TOKEN,] }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWhvdGphci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhvdGphci9zcmMvbGliL3NlcnZpY2VzL25neC1ob3RqYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBT2hGLE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsY0FBYztJQUNkO0lBQ0UsY0FBYztJQUNhLEdBQVM7SUFDcEMsY0FBYztJQUM2QixRQUF5QjtRQUZ6QyxRQUFHLEdBQUgsR0FBRyxDQUFNO1FBRU8sYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDbEUsQ0FBQztJQWpCTDs7Ozs7O09BTUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQVVELG1DQUFtQztJQUNuQyxFQUFFLENBQUMsR0FBRyxJQUFnQjtRQUNwQixJQUFJO1lBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixJQUFJLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFO2dCQUMvQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1QjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsSUFBWTtRQUNsQixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBMEJELFlBQVksQ0FBQyxlQUF1QyxFQUFFLEdBQUcsSUFBbUI7UUFDMUUscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ25DLGVBQWUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxXQUFXLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Ozs7WUF6SEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBaUJJLE1BQU0sU0FBQyxTQUFTOzRDQUVoQixNQUFNLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWF9ISl9GTiB9IGZyb20gJy4uL3Rva2Vucy9uZ3gtaGotdG9rZW4nO1xuaW1wb3J0IHsgTkdYX0hPVEpBUl9TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4uL3Rva2Vucy9uZ3gtaG90amFyLXNldHRpbmdzLnRva2VuJztcbmltcG9ydCB7IElIb3RqYXJTZXR0aW5ncyB9IGZyb20gJy4uL2ludGVyZmFjZXMvaS1ob3RqYXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgSGpGbiB9IGZyb20gJy4uL3R5cGVzL2hqJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4SG90amFyU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgZGlyZWN0IGFjY2VzcyB0byB0aGUgYGhqLipgIHN0YXRpYyBmdW5jdGlvbnMuIElmIHRoZSBkZXNpcmVkIGZ1bmN0aW9uIGlzIG5vdCBhdmFpbGFibGUgb24gdHlwZSBkZWZpbml0aW9uLCB5b3UgY2FuIGNhc3QgdG8gYGFueWAgYXMgZm9sbG93aW5nLlxuICAgKlxuYGBgdHlwZXNjcmlwdFxuKGhqU2VydmljZS5saWIgYXMgYW55KS5teUJyYW5kTmV3U3RhdGljRm4oKVxuYGBgXG4gICAqL1xuICBnZXQgbGliKCk6IEhqRm4ge1xuICAgIHJldHVybiB0aGlzLl9oajtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBAaWdub3JlICovXG4gICAgQEluamVjdChOR1hfSEpfRk4pIHByaXZhdGUgX2hqOiBIakZuLFxuICAgIC8qKiBAaWdub3JlICovXG4gICAgQEluamVjdChOR1hfSE9USkFSX1NFVFRJTkdTX1RPS0VOKSBwcml2YXRlIHNldHRpbmdzOiBJSG90amFyU2V0dGluZ3NcbiAgKSB7IH1cblxuICAvKiogRXhwb3NlIEhvdGphciBGdW5jdGlvbiBjYWxscyAqL1xuICBoaiguLi5hcmdzOiBBcnJheTxhbnk+KSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2hqKC4uLmFyZ3MpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpIHx8IHRoaXMuc2V0dGluZ3MuZW5uYWJsZVRyYWNpbmcpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIGFuIFBhZ2VWaWV3IGV2ZW50IG9uIEhvdGphci4gVXNlIHRoaXMgbWV0aG9kIHRvIHRyaWdnZXIgYW4gdmlydHVhbCB1cmwgcGF0aC4gVGhlIHNhbWUgYXNcbiAgICpcbmBgYHR5cGVzY3JpcHRcbmhqKCd2cHYnLCBwYXRoKVxuYGBgXG4gICAqL1xuICB2aXJ0dWFsUGFnZVZpZXcocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5oaigndnB2JywgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgYW4gZXZlbnQgb24gSG90amFyLiBVc2UgdGhpcyBtZXRob2QgdG8gdHJpZ2dlciBldmVudHMgb24gZm9ybXMgYW5kIHN0YXJ0IHZpZGVvIHJlY29yZGluZ3MuIFNhbWUgYXNcbiAgICpcbmBgYHR5cGVzY3JpcHRcbmhqKCd0cmlnZ2VyJywgcGF0aClcbmBgYFxuICAgKi9cbiAgdHJpZ2dlcihwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhqKCd0cmlnZ2VyJywgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byB0YWcgcmVjb3JkaW5ncyBvbiBIb3RqYXIgb2YgYWxsIHZpc2l0b3JzIHBhc3NpbmcgdGhyb3VnaCBhIHBhZ2UuXG4gICAqXG4gICAqIFlvdSBjYW4gY3JlYXRlIG11bHRpcGxlIHRhZ3MgYnkgcHJvdmlkaW5nIGFkaXRpb25hbCBhcmd1bWVudHNcbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICpcbmBgYHR5cGVzY3JpcHRcbmhqU2VydmljZS50YWdSZWNvcmRpbmcoWyd0YWcxJywgJ3RhZzInLCAndGFnMycsIC4uLl0pO1xuaGooJ3RhZ1JlY29yZGluZycsIFsndGFnMScsICd0YWcyJywgJ3RhZzMnLCAuLi5dKVxuYGBgXG4gICAqL1xuICB0YWdSZWNvcmRpbmcodGFnT3JDb2xsZWN0aW9uOiBzdHJpbmdbXSk6IHZvaWQ7XG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIHRhZyByZWNvcmRpbmdzIG9uIEhvdGphciBvZiBhbGwgdmlzaXRvcnMgcGFzc2luZyB0aHJvdWdoIGEgcGFnZS5cbiAgICpcbiAgICogWW91IGNhbiBjcmVhdGUgbXVsdGlwbGUgdGFncyBieSBwcm92aWRpbmcgYWRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKlxuYGBgdHlwZXNjcmlwdFxuaGpTZXJ2aWNlLnRhZ1JlY29yZGluZygndGFnMScsICd0YWcyJywgJ3RhZzMnLCAuLi4pO1xuaGooJ3RhZ1JlY29yZGluZycsIFsndGFnMScsICd0YWcyJywgJ3RhZzMnLCAuLi5dKVxuYGBgXG4gICAqL1xuICB0YWdSZWNvcmRpbmcodGFnT3JDb2xsZWN0aW9uOiBzdHJpbmcsIC4uLnRhZ3M6IEFycmF5PHN0cmluZz4pOiB2b2lkO1xuICB0YWdSZWNvcmRpbmcodGFnT3JDb2xsZWN0aW9uOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+LCAuLi50YWdzOiBBcnJheTxzdHJpbmc+KTogdm9pZCB7XG4gICAgLy8gUmV0cm9jb21wYXRpYmlsaXR5XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRhZ09yQ29sbGVjdGlvbikpIHtcbiAgICAgIHRhZ09yQ29sbGVjdGlvbiA9IFt0YWdPckNvbGxlY3Rpb25dO1xuICAgIH1cbiAgICB0aGlzLmhqKCd0YWdSZWNvcmRpbmcnLCB0YWdPckNvbGxlY3Rpb24uY29uY2F0KC4uLnRhZ3MpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBpcyBhdmFpbGFibGUgaW4gY2FzZSB5b3UgbmVlZCB0byBzZXQgdXAgcGFnZSBjaGFuZ2UgdHJhY2tpbmcgbWFudWFsbHlcbiAgICogd2l0aGluIHlvdXIgYXBwJ3Mgcm91dGVyLlxuICAgKlxuYGBgdHlwZXNjcmlwdFxuaGooJ3N0YXRlQ2hhbmdlJywgcGF0aClcbmBgYFxuICAgKi9cbiAgc3RhdGVDaGFuZ2UocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5oaignc3RhdGVDaGFuZ2UnLCBwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduYWxzIGZvcm0gc3VibWlzc2lvbiBzdWNjZXNzXG4gICAqXG5gYGB0eXBlc2NyaXB0XG5oaignZm9ybVN1Ym1pdFN1Y2Nlc3NmdWwnKTtcbmBgYFxuICAgKi9cbiAgZm9ybVN1Ym1pdFN1Y2Nlc3NmdWwoKTogdm9pZCB7XG4gICAgdGhpcy5oaignZm9ybVN1Ym1pdFN1Y2Nlc3NmdWwnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduYWxzIGZvcm0gc3VibWlzc2lvbiBmYWlsdXJlXG4gICAqXG5gYGB0eXBlc2NyaXB0XG5oaignZm9ybVN1Ym1pdEZhaWxlZCcpO1xuYGBgXG4gICAqL1xuICBmb3JtU3VibWl0RmFpbGVkKCk6IHZvaWQge1xuICAgIHRoaXMuaGooJ2Zvcm1TdWJtaXRGYWlsZWQnKTtcbiAgfVxuXG59XG4iXX0=