angular-mailru-counter 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +1 -0
- package/angular-mailru-counter.d.ts +5 -0
- package/angular-mailru-counter.metadata.json +1 -0
- package/bundles/angular-mailru-counter.umd.js +360 -0
- package/bundles/angular-mailru-counter.umd.js.map +1 -0
- package/bundles/angular-mailru-counter.umd.min.js +16 -0
- package/bundles/angular-mailru-counter.umd.min.js.map +1 -0
- package/esm2015/angular-mailru-counter.js +5 -0
- package/esm2015/lib/angular-mail-ru-counter.models.js +1 -0
- package/esm2015/lib/angular-mail-ru-counter.module.js +57 -0
- package/esm2015/lib/angular-mail-ru-counter.service.js +109 -0
- package/esm2015/public-api.js +6 -0
- package/esm5/angular-mailru-counter.js +5 -0
- package/esm5/lib/angular-mail-ru-counter.models.js +1 -0
- package/esm5/lib/angular-mail-ru-counter.module.js +59 -0
- package/esm5/lib/angular-mail-ru-counter.service.js +102 -0
- package/esm5/public-api.js +6 -0
- package/fesm2015/angular-mailru-counter.js +169 -0
- package/fesm2015/angular-mailru-counter.js.map +1 -0
- package/fesm5/angular-mailru-counter.js +164 -0
- package/fesm5/angular-mailru-counter.js.map +1 -0
- package/lib/angular-mail-ru-counter.models.d.ts +6 -0
- package/lib/angular-mail-ru-counter.module.d.ts +20 -0
- package/lib/angular-mail-ru-counter.service.d.ts +36 -0
- package/package.json +31 -0
- package/public-api.d.ts +5 -0
@@ -0,0 +1,169 @@
|
|
1
|
+
import { __decorate, __param } from 'tslib';
|
2
|
+
import { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';
|
3
|
+
import { Inject, PLATFORM_ID, RendererFactory2, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule } from '@angular/core';
|
4
|
+
|
5
|
+
let AngularMailRuCounterService = class AngularMailRuCounterService {
|
6
|
+
constructor(config, documentRef, platformId, rendererFactory) {
|
7
|
+
this.config = config;
|
8
|
+
this.documentRef = documentRef;
|
9
|
+
this.platformId = platformId;
|
10
|
+
this.rendererFactory = rendererFactory;
|
11
|
+
this.doc = this.documentRef;
|
12
|
+
this.renderer = this.rendererFactory.createRenderer(null, null);
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Initialize Mail.ru Counter tracking script
|
16
|
+
* - Adds the script to page's head
|
17
|
+
* - Tracks first page view
|
18
|
+
*/
|
19
|
+
initialize(counterId = this.config.counterId) {
|
20
|
+
if (this.isLoaded()) {
|
21
|
+
console.warn('Tried to initialize a Mail.Ru Counter instance while another is already active. Please call `remove()` before initializing a new instance.');
|
22
|
+
return;
|
23
|
+
}
|
24
|
+
this.config.enabled = true;
|
25
|
+
this.addMailRuCounterScript(counterId);
|
26
|
+
}
|
27
|
+
/** Remove the Mail.ru Counter tracking script */
|
28
|
+
remove() {
|
29
|
+
this.removeMailRuCounterScript();
|
30
|
+
this.config.enabled = false;
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Track a goal
|
34
|
+
*
|
35
|
+
* See {@link https://target.my.com/help/advertisers/sourcetopmailru/en#goals MyTarget docs - Set goals for the counter}
|
36
|
+
* @param goal The name of the goal that is being tracked
|
37
|
+
* @param value A fixed number attached to a specific goal
|
38
|
+
*/
|
39
|
+
trackGoal(goal, value) {
|
40
|
+
if (!isPlatformBrowser(this.platformId)) {
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
if (!this.isLoaded()) {
|
44
|
+
console.warn('Tried to track an event without initializing a Mail.Ru Counter instance. Call `initialize()` first.');
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
_tmr.push(Object.assign({ type: 'reachGoal', id: this.config.counterId, goal }, (value && Number.isInteger(value) && { value })));
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Adds Mail.ru Counter tracking script to the application
|
51
|
+
* @param counterId Mail.ru Counter ID to use
|
52
|
+
*/
|
53
|
+
addMailRuCounterScript(counterId) {
|
54
|
+
if (!isPlatformBrowser(this.platformId)) {
|
55
|
+
return;
|
56
|
+
}
|
57
|
+
const counterCode = `
|
58
|
+
var _tmr = window._tmr || (window._tmr = []);
|
59
|
+
_tmr.push({id: "${counterId}", type: "pageView", start: (new Date()).getTime()});
|
60
|
+
(function (d, w, id) {
|
61
|
+
if (d.getElementById(id)) return;
|
62
|
+
var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id;
|
63
|
+
ts.src = "https://top-fwz1.mail.ru/js/code.js";
|
64
|
+
var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);};
|
65
|
+
if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }
|
66
|
+
})(document, window, "topmailru-code");`;
|
67
|
+
const scriptElement = this.renderer.createElement('script');
|
68
|
+
this.renderer.setAttribute(scriptElement, 'id', 'mail-ru-counter-script');
|
69
|
+
this.renderer.setAttribute(scriptElement, 'type', 'text/javascript');
|
70
|
+
this.renderer.setProperty(scriptElement, 'innerHTML', counterCode);
|
71
|
+
this.renderer.appendChild(this.doc.head, scriptElement);
|
72
|
+
}
|
73
|
+
/** Remove Mail.ru Counter tracking script from the application */
|
74
|
+
removeMailRuCounterScript() {
|
75
|
+
if (!isPlatformBrowser(this.platformId)) {
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
const mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
|
79
|
+
if (mailRuCounterElement) {
|
80
|
+
mailRuCounterElement.remove();
|
81
|
+
}
|
82
|
+
}
|
83
|
+
/** Checks if the script element is present */
|
84
|
+
isLoaded() {
|
85
|
+
if (isPlatformBrowser(this.platformId)) {
|
86
|
+
const mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
|
87
|
+
return !!mailRuCounterElement;
|
88
|
+
}
|
89
|
+
return false;
|
90
|
+
}
|
91
|
+
};
|
92
|
+
AngularMailRuCounterService.ctorParameters = () => [
|
93
|
+
{ type: undefined, decorators: [{ type: Inject, args: ['config',] }] },
|
94
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
95
|
+
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
96
|
+
{ type: RendererFactory2 }
|
97
|
+
];
|
98
|
+
AngularMailRuCounterService.ɵprov = ɵɵdefineInjectable({ factory: function AngularMailRuCounterService_Factory() { return new AngularMailRuCounterService(ɵɵinject("config"), ɵɵinject(DOCUMENT), ɵɵinject(PLATFORM_ID), ɵɵinject(RendererFactory2)); }, token: AngularMailRuCounterService, providedIn: "root" });
|
99
|
+
AngularMailRuCounterService = __decorate([
|
100
|
+
Injectable({
|
101
|
+
providedIn: 'root',
|
102
|
+
}),
|
103
|
+
__param(0, Inject('config')),
|
104
|
+
__param(1, Inject(DOCUMENT)),
|
105
|
+
__param(2, Inject(PLATFORM_ID))
|
106
|
+
], AngularMailRuCounterService);
|
107
|
+
|
108
|
+
var AngularMailRuCounterModule_1;
|
109
|
+
let AngularMailRuCounterModule = AngularMailRuCounterModule_1 = class AngularMailRuCounterModule {
|
110
|
+
constructor(angularMailRuCounter, platformId) {
|
111
|
+
this.angularMailRuCounter = angularMailRuCounter;
|
112
|
+
if (!AngularMailRuCounterModule_1.config) {
|
113
|
+
throw Error('angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function');
|
114
|
+
}
|
115
|
+
if (AngularMailRuCounterModule_1.config.enabled && isPlatformBrowser(platformId)) {
|
116
|
+
this.angularMailRuCounter.initialize();
|
117
|
+
}
|
118
|
+
}
|
119
|
+
/**
|
120
|
+
* Initialize the Angular Mail.ru Counter Module
|
121
|
+
*
|
122
|
+
* Add your Mail.ru Counter ID as parameter
|
123
|
+
*/
|
124
|
+
static forRoot(config) {
|
125
|
+
this.config = config;
|
126
|
+
const counterId = config.counterId;
|
127
|
+
this.verifyCounterId(counterId);
|
128
|
+
return {
|
129
|
+
ngModule: AngularMailRuCounterModule_1,
|
130
|
+
providers: [
|
131
|
+
AngularMailRuCounterService,
|
132
|
+
{ provide: 'config', useValue: config },
|
133
|
+
],
|
134
|
+
};
|
135
|
+
}
|
136
|
+
/**
|
137
|
+
* Verifies the Counter ID that was passed into the configuration.
|
138
|
+
* - Checks if Counter was initialized
|
139
|
+
* @param counterId Counter ID to verify
|
140
|
+
*/
|
141
|
+
static verifyCounterId(counterId) {
|
142
|
+
if (counterId === null || counterId === undefined || counterId.length === 0) {
|
143
|
+
throw Error('Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?');
|
144
|
+
}
|
145
|
+
}
|
146
|
+
};
|
147
|
+
AngularMailRuCounterModule.config = null;
|
148
|
+
AngularMailRuCounterModule.ctorParameters = () => [
|
149
|
+
{ type: AngularMailRuCounterService },
|
150
|
+
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
|
151
|
+
];
|
152
|
+
AngularMailRuCounterModule = AngularMailRuCounterModule_1 = __decorate([
|
153
|
+
NgModule({
|
154
|
+
declarations: [],
|
155
|
+
imports: [CommonModule],
|
156
|
+
}),
|
157
|
+
__param(1, Inject(PLATFORM_ID))
|
158
|
+
], AngularMailRuCounterModule);
|
159
|
+
|
160
|
+
/**
|
161
|
+
* Public API Surface of angular-mailru-counter
|
162
|
+
*/
|
163
|
+
|
164
|
+
/**
|
165
|
+
* Generated bundle index. Do not edit.
|
166
|
+
*/
|
167
|
+
|
168
|
+
export { AngularMailRuCounterModule, AngularMailRuCounterService };
|
169
|
+
//# sourceMappingURL=angular-mailru-counter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"angular-mailru-counter.js","sources":["ng://angular-mailru-counter/lib/angular-mail-ru-counter.service.ts","ng://angular-mailru-counter/lib/angular-mail-ru-counter.module.ts","ng://angular-mailru-counter/public-api.ts","ng://angular-mailru-counter/angular-mailru-counter.ts"],"sourcesContent":["import {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport {AngularMailRuCounterConfiguration} from './angular-mail-ru-counter.models';\n\ndeclare const _tmr: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AngularMailRuCounterService {\n private renderer: Renderer2;\n private doc: Document;\n\n constructor(\n @Inject('config') private config: AngularMailRuCounterConfiguration,\n @Inject(DOCUMENT) private documentRef: any,\n @Inject(PLATFORM_ID) private platformId: Object,\n private rendererFactory: RendererFactory2,\n ) {\n this.doc = this.documentRef as Document;\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n /**\n * Initialize Mail.ru Counter tracking script\n * - Adds the script to page's head\n * - Tracks first page view\n */\n initialize(counterId: string = this.config.counterId): void {\n if (this.isLoaded()) {\n console.warn(\n 'Tried to initialize a Mail.Ru Counter instance while another is already active. Please call `remove()` before initializing a new instance.',\n );\n\n return;\n }\n\n this.config.enabled = true;\n this.addMailRuCounterScript(counterId);\n }\n\n /** Remove the Mail.ru Counter tracking script */\n remove(): void {\n this.removeMailRuCounterScript();\n this.config.enabled = false;\n }\n\n /**\n * Track a goal\n *\n * See {@link https://target.my.com/help/advertisers/sourcetopmailru/en#goals MyTarget docs - Set goals for the counter}\n * @param goal The name of the goal that is being tracked\n * @param value A fixed number attached to a specific goal\n */\n trackGoal(goal: string, value?: number): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (!this.isLoaded()) {\n console.warn(\n 'Tried to track an event without initializing a Mail.Ru Counter instance. Call `initialize()` first.',\n );\n\n return;\n }\n\n _tmr.push({\n type: 'reachGoal',\n id: this.config.counterId,\n goal,\n ...(value && Number.isInteger(value) && {value}),\n });\n }\n\n /**\n * Adds Mail.ru Counter tracking script to the application\n * @param counterId Mail.ru Counter ID to use\n */\n private addMailRuCounterScript(counterId: string): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const counterCode = `\n var _tmr = window._tmr || (window._tmr = []);\n _tmr.push({id: \"${counterId}\", type: \"pageView\", start: (new Date()).getTime()});\n (function (d, w, id) {\n if (d.getElementById(id)) return;\n var ts = d.createElement(\"script\"); ts.type = \"text/javascript\"; ts.async = true; ts.id = id;\n ts.src = \"https://top-fwz1.mail.ru/js/code.js\";\n var f = function () {var s = d.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(ts, s);};\n if (w.opera == \"[object Opera]\") { d.addEventListener(\"DOMContentLoaded\", f, false); } else { f(); }\n })(document, window, \"topmailru-code\");`;\n\n const scriptElement = this.renderer.createElement('script');\n\n this.renderer.setAttribute(scriptElement, 'id', 'mail-ru-counter-script');\n this.renderer.setAttribute(scriptElement, 'type', 'text/javascript');\n this.renderer.setProperty(scriptElement, 'innerHTML', counterCode);\n this.renderer.appendChild(this.doc.head, scriptElement);\n }\n\n /** Remove Mail.ru Counter tracking script from the application */\n private removeMailRuCounterScript(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');\n\n if (mailRuCounterElement) {\n mailRuCounterElement.remove();\n }\n }\n\n /** Checks if the script element is present */\n private isLoaded(): boolean {\n if (isPlatformBrowser(this.platformId)) {\n const mailRuCounterElement = this.doc.getElementById(\n 'mail-ru-counter-script',\n );\n\n return !!mailRuCounterElement;\n }\n\n return false;\n }\n}\n","import {CommonModule, isPlatformBrowser} from '@angular/common';\nimport {Inject, ModuleWithProviders, NgModule, PLATFORM_ID} from '@angular/core';\nimport {AngularMailRuCounterConfiguration} from './angular-mail-ru-counter.models';\nimport {AngularMailRuCounterService} from './angular-mail-ru-counter.service';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class AngularMailRuCounterModule {\n private static config: AngularMailRuCounterConfiguration | null = null;\n\n constructor(\n private angularMailRuCounter: AngularMailRuCounterService,\n @Inject(PLATFORM_ID) platformId: Object,\n ) {\n if (!AngularMailRuCounterModule.config) {\n throw Error(\n 'angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function',\n );\n }\n\n if (AngularMailRuCounterModule.config.enabled && isPlatformBrowser(platformId)) {\n this.angularMailRuCounter.initialize();\n }\n }\n\n /**\n * Initialize the Angular Mail.ru Counter Module\n *\n * Add your Mail.ru Counter ID as parameter\n */\n static forRoot(\n config: AngularMailRuCounterConfiguration,\n ): ModuleWithProviders<AngularMailRuCounterModule> {\n this.config = config;\n\n const counterId = config.counterId;\n\n this.verifyCounterId(counterId);\n\n return {\n ngModule: AngularMailRuCounterModule,\n providers: [\n AngularMailRuCounterService,\n {provide: 'config', useValue: config},\n ],\n };\n }\n\n /**\n * Verifies the Counter ID that was passed into the configuration.\n * - Checks if Counter was initialized\n * @param counterId Counter ID to verify\n */\n private static verifyCounterId(counterId: string): void {\n if (counterId === null || counterId === undefined || counterId.length === 0) {\n throw Error(\n 'Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?',\n );\n }\n }\n}\n","/**\n * Public API Surface of angular-mailru-counter\n */\n\nexport * from './lib/angular-mail-ru-counter.service';\nexport * from './lib/angular-mail-ru-counter.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AngularMailRuCounterConfiguration as ɵa} from './lib/angular-mail-ru-counter.models';"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,164 @@
|
|
1
|
+
import { __assign, __decorate, __param } from 'tslib';
|
2
|
+
import { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';
|
3
|
+
import { Inject, PLATFORM_ID, RendererFactory2, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule } from '@angular/core';
|
4
|
+
|
5
|
+
var AngularMailRuCounterService = /** @class */ (function () {
|
6
|
+
function AngularMailRuCounterService(config, documentRef, platformId, rendererFactory) {
|
7
|
+
this.config = config;
|
8
|
+
this.documentRef = documentRef;
|
9
|
+
this.platformId = platformId;
|
10
|
+
this.rendererFactory = rendererFactory;
|
11
|
+
this.doc = this.documentRef;
|
12
|
+
this.renderer = this.rendererFactory.createRenderer(null, null);
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Initialize Mail.ru Counter tracking script
|
16
|
+
* - Adds the script to page's head
|
17
|
+
* - Tracks first page view
|
18
|
+
*/
|
19
|
+
AngularMailRuCounterService.prototype.initialize = function (counterId) {
|
20
|
+
if (counterId === void 0) { counterId = this.config.counterId; }
|
21
|
+
if (this.isLoaded()) {
|
22
|
+
console.warn('Tried to initialize a Mail.Ru Counter instance while another is already active. Please call `remove()` before initializing a new instance.');
|
23
|
+
return;
|
24
|
+
}
|
25
|
+
this.config.enabled = true;
|
26
|
+
this.addMailRuCounterScript(counterId);
|
27
|
+
};
|
28
|
+
/** Remove the Mail.ru Counter tracking script */
|
29
|
+
AngularMailRuCounterService.prototype.remove = function () {
|
30
|
+
this.removeMailRuCounterScript();
|
31
|
+
this.config.enabled = false;
|
32
|
+
};
|
33
|
+
/**
|
34
|
+
* Track a goal
|
35
|
+
*
|
36
|
+
* See {@link https://target.my.com/help/advertisers/sourcetopmailru/en#goals MyTarget docs - Set goals for the counter}
|
37
|
+
* @param goal The name of the goal that is being tracked
|
38
|
+
* @param value A fixed number attached to a specific goal
|
39
|
+
*/
|
40
|
+
AngularMailRuCounterService.prototype.trackGoal = function (goal, value) {
|
41
|
+
if (!isPlatformBrowser(this.platformId)) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
if (!this.isLoaded()) {
|
45
|
+
console.warn('Tried to track an event without initializing a Mail.Ru Counter instance. Call `initialize()` first.');
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
_tmr.push(__assign({ type: 'reachGoal', id: this.config.counterId, goal: goal }, (value && Number.isInteger(value) && { value: value })));
|
49
|
+
};
|
50
|
+
/**
|
51
|
+
* Adds Mail.ru Counter tracking script to the application
|
52
|
+
* @param counterId Mail.ru Counter ID to use
|
53
|
+
*/
|
54
|
+
AngularMailRuCounterService.prototype.addMailRuCounterScript = function (counterId) {
|
55
|
+
if (!isPlatformBrowser(this.platformId)) {
|
56
|
+
return;
|
57
|
+
}
|
58
|
+
var counterCode = "\n var _tmr = window._tmr || (window._tmr = []);\n _tmr.push({id: \"" + counterId + "\", type: \"pageView\", start: (new Date()).getTime()});\n (function (d, w, id) {\n if (d.getElementById(id)) return;\n var ts = d.createElement(\"script\"); ts.type = \"text/javascript\"; ts.async = true; ts.id = id;\n ts.src = \"https://top-fwz1.mail.ru/js/code.js\";\n var f = function () {var s = d.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(ts, s);};\n if (w.opera == \"[object Opera]\") { d.addEventListener(\"DOMContentLoaded\", f, false); } else { f(); }\n })(document, window, \"topmailru-code\");";
|
59
|
+
var scriptElement = this.renderer.createElement('script');
|
60
|
+
this.renderer.setAttribute(scriptElement, 'id', 'mail-ru-counter-script');
|
61
|
+
this.renderer.setAttribute(scriptElement, 'type', 'text/javascript');
|
62
|
+
this.renderer.setProperty(scriptElement, 'innerHTML', counterCode);
|
63
|
+
this.renderer.appendChild(this.doc.head, scriptElement);
|
64
|
+
};
|
65
|
+
/** Remove Mail.ru Counter tracking script from the application */
|
66
|
+
AngularMailRuCounterService.prototype.removeMailRuCounterScript = function () {
|
67
|
+
if (!isPlatformBrowser(this.platformId)) {
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
var mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
|
71
|
+
if (mailRuCounterElement) {
|
72
|
+
mailRuCounterElement.remove();
|
73
|
+
}
|
74
|
+
};
|
75
|
+
/** Checks if the script element is present */
|
76
|
+
AngularMailRuCounterService.prototype.isLoaded = function () {
|
77
|
+
if (isPlatformBrowser(this.platformId)) {
|
78
|
+
var mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
|
79
|
+
return !!mailRuCounterElement;
|
80
|
+
}
|
81
|
+
return false;
|
82
|
+
};
|
83
|
+
AngularMailRuCounterService.ctorParameters = function () { return [
|
84
|
+
{ type: undefined, decorators: [{ type: Inject, args: ['config',] }] },
|
85
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
86
|
+
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
87
|
+
{ type: RendererFactory2 }
|
88
|
+
]; };
|
89
|
+
AngularMailRuCounterService.ɵprov = ɵɵdefineInjectable({ factory: function AngularMailRuCounterService_Factory() { return new AngularMailRuCounterService(ɵɵinject("config"), ɵɵinject(DOCUMENT), ɵɵinject(PLATFORM_ID), ɵɵinject(RendererFactory2)); }, token: AngularMailRuCounterService, providedIn: "root" });
|
90
|
+
AngularMailRuCounterService = __decorate([
|
91
|
+
Injectable({
|
92
|
+
providedIn: 'root',
|
93
|
+
}),
|
94
|
+
__param(0, Inject('config')),
|
95
|
+
__param(1, Inject(DOCUMENT)),
|
96
|
+
__param(2, Inject(PLATFORM_ID))
|
97
|
+
], AngularMailRuCounterService);
|
98
|
+
return AngularMailRuCounterService;
|
99
|
+
}());
|
100
|
+
|
101
|
+
var AngularMailRuCounterModule = /** @class */ (function () {
|
102
|
+
function AngularMailRuCounterModule(angularMailRuCounter, platformId) {
|
103
|
+
this.angularMailRuCounter = angularMailRuCounter;
|
104
|
+
if (!AngularMailRuCounterModule_1.config) {
|
105
|
+
throw Error('angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function');
|
106
|
+
}
|
107
|
+
if (AngularMailRuCounterModule_1.config.enabled && isPlatformBrowser(platformId)) {
|
108
|
+
this.angularMailRuCounter.initialize();
|
109
|
+
}
|
110
|
+
}
|
111
|
+
AngularMailRuCounterModule_1 = AngularMailRuCounterModule;
|
112
|
+
/**
|
113
|
+
* Initialize the Angular Mail.ru Counter Module
|
114
|
+
*
|
115
|
+
* Add your Mail.ru Counter ID as parameter
|
116
|
+
*/
|
117
|
+
AngularMailRuCounterModule.forRoot = function (config) {
|
118
|
+
this.config = config;
|
119
|
+
var counterId = config.counterId;
|
120
|
+
this.verifyCounterId(counterId);
|
121
|
+
return {
|
122
|
+
ngModule: AngularMailRuCounterModule_1,
|
123
|
+
providers: [
|
124
|
+
AngularMailRuCounterService,
|
125
|
+
{ provide: 'config', useValue: config },
|
126
|
+
],
|
127
|
+
};
|
128
|
+
};
|
129
|
+
/**
|
130
|
+
* Verifies the Counter ID that was passed into the configuration.
|
131
|
+
* - Checks if Counter was initialized
|
132
|
+
* @param counterId Counter ID to verify
|
133
|
+
*/
|
134
|
+
AngularMailRuCounterModule.verifyCounterId = function (counterId) {
|
135
|
+
if (counterId === null || counterId === undefined || counterId.length === 0) {
|
136
|
+
throw Error('Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?');
|
137
|
+
}
|
138
|
+
};
|
139
|
+
var AngularMailRuCounterModule_1;
|
140
|
+
AngularMailRuCounterModule.config = null;
|
141
|
+
AngularMailRuCounterModule.ctorParameters = function () { return [
|
142
|
+
{ type: AngularMailRuCounterService },
|
143
|
+
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
|
144
|
+
]; };
|
145
|
+
AngularMailRuCounterModule = AngularMailRuCounterModule_1 = __decorate([
|
146
|
+
NgModule({
|
147
|
+
declarations: [],
|
148
|
+
imports: [CommonModule],
|
149
|
+
}),
|
150
|
+
__param(1, Inject(PLATFORM_ID))
|
151
|
+
], AngularMailRuCounterModule);
|
152
|
+
return AngularMailRuCounterModule;
|
153
|
+
}());
|
154
|
+
|
155
|
+
/**
|
156
|
+
* Public API Surface of angular-mailru-counter
|
157
|
+
*/
|
158
|
+
|
159
|
+
/**
|
160
|
+
* Generated bundle index. Do not edit.
|
161
|
+
*/
|
162
|
+
|
163
|
+
export { AngularMailRuCounterModule, AngularMailRuCounterService };
|
164
|
+
//# sourceMappingURL=angular-mailru-counter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"angular-mailru-counter.js","sources":["ng://angular-mailru-counter/lib/angular-mail-ru-counter.service.ts","ng://angular-mailru-counter/lib/angular-mail-ru-counter.module.ts","ng://angular-mailru-counter/public-api.ts","ng://angular-mailru-counter/angular-mailru-counter.ts"],"sourcesContent":["import {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {\n Inject,\n Injectable,\n PLATFORM_ID,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport {AngularMailRuCounterConfiguration} from './angular-mail-ru-counter.models';\n\ndeclare const _tmr: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AngularMailRuCounterService {\n private renderer: Renderer2;\n private doc: Document;\n\n constructor(\n @Inject('config') private config: AngularMailRuCounterConfiguration,\n @Inject(DOCUMENT) private documentRef: any,\n @Inject(PLATFORM_ID) private platformId: Object,\n private rendererFactory: RendererFactory2,\n ) {\n this.doc = this.documentRef as Document;\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n /**\n * Initialize Mail.ru Counter tracking script\n * - Adds the script to page's head\n * - Tracks first page view\n */\n initialize(counterId: string = this.config.counterId): void {\n if (this.isLoaded()) {\n console.warn(\n 'Tried to initialize a Mail.Ru Counter instance while another is already active. Please call `remove()` before initializing a new instance.',\n );\n\n return;\n }\n\n this.config.enabled = true;\n this.addMailRuCounterScript(counterId);\n }\n\n /** Remove the Mail.ru Counter tracking script */\n remove(): void {\n this.removeMailRuCounterScript();\n this.config.enabled = false;\n }\n\n /**\n * Track a goal\n *\n * See {@link https://target.my.com/help/advertisers/sourcetopmailru/en#goals MyTarget docs - Set goals for the counter}\n * @param goal The name of the goal that is being tracked\n * @param value A fixed number attached to a specific goal\n */\n trackGoal(goal: string, value?: number): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (!this.isLoaded()) {\n console.warn(\n 'Tried to track an event without initializing a Mail.Ru Counter instance. Call `initialize()` first.',\n );\n\n return;\n }\n\n _tmr.push({\n type: 'reachGoal',\n id: this.config.counterId,\n goal,\n ...(value && Number.isInteger(value) && {value}),\n });\n }\n\n /**\n * Adds Mail.ru Counter tracking script to the application\n * @param counterId Mail.ru Counter ID to use\n */\n private addMailRuCounterScript(counterId: string): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const counterCode = `\n var _tmr = window._tmr || (window._tmr = []);\n _tmr.push({id: \"${counterId}\", type: \"pageView\", start: (new Date()).getTime()});\n (function (d, w, id) {\n if (d.getElementById(id)) return;\n var ts = d.createElement(\"script\"); ts.type = \"text/javascript\"; ts.async = true; ts.id = id;\n ts.src = \"https://top-fwz1.mail.ru/js/code.js\";\n var f = function () {var s = d.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(ts, s);};\n if (w.opera == \"[object Opera]\") { d.addEventListener(\"DOMContentLoaded\", f, false); } else { f(); }\n })(document, window, \"topmailru-code\");`;\n\n const scriptElement = this.renderer.createElement('script');\n\n this.renderer.setAttribute(scriptElement, 'id', 'mail-ru-counter-script');\n this.renderer.setAttribute(scriptElement, 'type', 'text/javascript');\n this.renderer.setProperty(scriptElement, 'innerHTML', counterCode);\n this.renderer.appendChild(this.doc.head, scriptElement);\n }\n\n /** Remove Mail.ru Counter tracking script from the application */\n private removeMailRuCounterScript(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');\n\n if (mailRuCounterElement) {\n mailRuCounterElement.remove();\n }\n }\n\n /** Checks if the script element is present */\n private isLoaded(): boolean {\n if (isPlatformBrowser(this.platformId)) {\n const mailRuCounterElement = this.doc.getElementById(\n 'mail-ru-counter-script',\n );\n\n return !!mailRuCounterElement;\n }\n\n return false;\n }\n}\n","import {CommonModule, isPlatformBrowser} from '@angular/common';\nimport {Inject, ModuleWithProviders, NgModule, PLATFORM_ID} from '@angular/core';\nimport {AngularMailRuCounterConfiguration} from './angular-mail-ru-counter.models';\nimport {AngularMailRuCounterService} from './angular-mail-ru-counter.service';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class AngularMailRuCounterModule {\n private static config: AngularMailRuCounterConfiguration | null = null;\n\n constructor(\n private angularMailRuCounter: AngularMailRuCounterService,\n @Inject(PLATFORM_ID) platformId: Object,\n ) {\n if (!AngularMailRuCounterModule.config) {\n throw Error(\n 'angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function',\n );\n }\n\n if (AngularMailRuCounterModule.config.enabled && isPlatformBrowser(platformId)) {\n this.angularMailRuCounter.initialize();\n }\n }\n\n /**\n * Initialize the Angular Mail.ru Counter Module\n *\n * Add your Mail.ru Counter ID as parameter\n */\n static forRoot(\n config: AngularMailRuCounterConfiguration,\n ): ModuleWithProviders<AngularMailRuCounterModule> {\n this.config = config;\n\n const counterId = config.counterId;\n\n this.verifyCounterId(counterId);\n\n return {\n ngModule: AngularMailRuCounterModule,\n providers: [\n AngularMailRuCounterService,\n {provide: 'config', useValue: config},\n ],\n };\n }\n\n /**\n * Verifies the Counter ID that was passed into the configuration.\n * - Checks if Counter was initialized\n * @param counterId Counter ID to verify\n */\n private static verifyCounterId(counterId: string): void {\n if (counterId === null || counterId === undefined || counterId.length === 0) {\n throw Error(\n 'Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?',\n );\n }\n }\n}\n","/**\n * Public API Surface of angular-mailru-counter\n */\n\nexport * from './lib/angular-mail-ru-counter.service';\nexport * from './lib/angular-mail-ru-counter.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AngularMailRuCounterConfiguration as ɵa} from './lib/angular-mail-ru-counter.models';"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
2
|
+
import { AngularMailRuCounterConfiguration } from './angular-mail-ru-counter.models';
|
3
|
+
import { AngularMailRuCounterService } from './angular-mail-ru-counter.service';
|
4
|
+
export declare class AngularMailRuCounterModule {
|
5
|
+
private angularMailRuCounter;
|
6
|
+
private static config;
|
7
|
+
constructor(angularMailRuCounter: AngularMailRuCounterService, platformId: Object);
|
8
|
+
/**
|
9
|
+
* Initialize the Angular Mail.ru Counter Module
|
10
|
+
*
|
11
|
+
* Add your Mail.ru Counter ID as parameter
|
12
|
+
*/
|
13
|
+
static forRoot(config: AngularMailRuCounterConfiguration): ModuleWithProviders<AngularMailRuCounterModule>;
|
14
|
+
/**
|
15
|
+
* Verifies the Counter ID that was passed into the configuration.
|
16
|
+
* - Checks if Counter was initialized
|
17
|
+
* @param counterId Counter ID to verify
|
18
|
+
*/
|
19
|
+
private static verifyCounterId;
|
20
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { RendererFactory2 } from '@angular/core';
|
2
|
+
import { AngularMailRuCounterConfiguration } from './angular-mail-ru-counter.models';
|
3
|
+
export declare class AngularMailRuCounterService {
|
4
|
+
private config;
|
5
|
+
private documentRef;
|
6
|
+
private platformId;
|
7
|
+
private rendererFactory;
|
8
|
+
private renderer;
|
9
|
+
private doc;
|
10
|
+
constructor(config: AngularMailRuCounterConfiguration, documentRef: any, platformId: Object, rendererFactory: RendererFactory2);
|
11
|
+
/**
|
12
|
+
* Initialize Mail.ru Counter tracking script
|
13
|
+
* - Adds the script to page's head
|
14
|
+
* - Tracks first page view
|
15
|
+
*/
|
16
|
+
initialize(counterId?: string): void;
|
17
|
+
/** Remove the Mail.ru Counter tracking script */
|
18
|
+
remove(): void;
|
19
|
+
/**
|
20
|
+
* Track a goal
|
21
|
+
*
|
22
|
+
* See {@link https://target.my.com/help/advertisers/sourcetopmailru/en#goals MyTarget docs - Set goals for the counter}
|
23
|
+
* @param goal The name of the goal that is being tracked
|
24
|
+
* @param value A fixed number attached to a specific goal
|
25
|
+
*/
|
26
|
+
trackGoal(goal: string, value?: number): void;
|
27
|
+
/**
|
28
|
+
* Adds Mail.ru Counter tracking script to the application
|
29
|
+
* @param counterId Mail.ru Counter ID to use
|
30
|
+
*/
|
31
|
+
private addMailRuCounterScript;
|
32
|
+
/** Remove Mail.ru Counter tracking script from the application */
|
33
|
+
private removeMailRuCounterScript;
|
34
|
+
/** Checks if the script element is present */
|
35
|
+
private isLoaded;
|
36
|
+
}
|
package/package.json
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"name": "angular-mailru-counter",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"peerDependencies": {
|
5
|
+
"@angular/core": ">=9.0.0"
|
6
|
+
},
|
7
|
+
"description": "An Angular library to simplify the use of a Mail.ru counter.",
|
8
|
+
"keywords": [
|
9
|
+
"angular",
|
10
|
+
"mail.ru",
|
11
|
+
"counter"
|
12
|
+
],
|
13
|
+
"license": "Apache-2.0",
|
14
|
+
"authors": [],
|
15
|
+
"repository": "https://github.com/dima716/angular-mailru-counter",
|
16
|
+
"bugs": "",
|
17
|
+
"homepage": "https://github.com/dima716/angular-mailru-counter",
|
18
|
+
"main": "bundles/angular-mailru-counter.umd.js",
|
19
|
+
"module": "fesm5/angular-mailru-counter.js",
|
20
|
+
"es2015": "fesm2015/angular-mailru-counter.js",
|
21
|
+
"esm5": "esm5/angular-mailru-counter.js",
|
22
|
+
"esm2015": "esm2015/angular-mailru-counter.js",
|
23
|
+
"fesm5": "fesm5/angular-mailru-counter.js",
|
24
|
+
"fesm2015": "fesm2015/angular-mailru-counter.js",
|
25
|
+
"typings": "angular-mailru-counter.d.ts",
|
26
|
+
"metadata": "angular-mailru-counter.metadata.json",
|
27
|
+
"sideEffects": false,
|
28
|
+
"dependencies": {
|
29
|
+
"tslib": "^1.10.0"
|
30
|
+
}
|
31
|
+
}
|