angular-mailru-counter 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core")):"function"==typeof define&&define.amd?define("angular-mailru-counter",["exports","@angular/common","@angular/core"],t):t((e=e||self)["angular-mailru-counter"]={},e.ng.common,e.ng.core)}(this,(function(e,t,r){"use strict";
2
+ /*! *****************************************************************************
3
+ Copyright (c) Microsoft Corporation. All rights reserved.
4
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
5
+ this file except in compliance with the License. You may obtain a copy of the
6
+ License at http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
9
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
10
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
11
+ MERCHANTABLITY OR NON-INFRINGEMENT.
12
+
13
+ See the Apache Version 2.0 License for specific language governing permissions
14
+ and limitations under the License.
15
+ ***************************************************************************** */var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function o(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function i(e,t){return function(r,n){t(r,n,e)}}var a=function(){function e(e,t,r,n){this.config=e,this.documentRef=t,this.platformId=r,this.rendererFactory=n,this.doc=this.documentRef,this.renderer=this.rendererFactory.createRenderer(null,null)}return e.prototype.initialize=function(e){void 0===e&&(e=this.config.counterId),this.isLoaded()?console.warn("Tried to initialize a Mail.Ru Counter instance while another is already active. Please call `remove()` before initializing a new instance."):(this.config.enabled=!0,this.addMailRuCounterScript(e))},e.prototype.remove=function(){this.removeMailRuCounterScript(),this.config.enabled=!1},e.prototype.trackGoal=function(e,r){t.isPlatformBrowser(this.platformId)&&(this.isLoaded()?_tmr.push(n({type:"reachGoal",id:this.config.counterId,goal:e},r&&Number.isInteger(r)&&{value:r})):console.warn("Tried to track an event without initializing a Mail.Ru Counter instance. Call `initialize()` first."))},e.prototype.addMailRuCounterScript=function(e){if(t.isPlatformBrowser(this.platformId)){var r='\n var _tmr = window._tmr || (window._tmr = []);\n _tmr.push({id: "'+e+'", 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=this.renderer.createElement("script");this.renderer.setAttribute(n,"id","mail-ru-counter-script"),this.renderer.setAttribute(n,"type","text/javascript"),this.renderer.setProperty(n,"innerHTML",r),this.renderer.appendChild(this.doc.head,n)}},e.prototype.removeMailRuCounterScript=function(){if(t.isPlatformBrowser(this.platformId)){var e=this.doc.getElementById("mail-ru-counter-script");e&&e.remove()}},e.prototype.isLoaded=function(){return!!t.isPlatformBrowser(this.platformId)&&!!this.doc.getElementById("mail-ru-counter-script")},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:["config"]}]},{type:void 0,decorators:[{type:r.Inject,args:[t.DOCUMENT]}]},{type:Object,decorators:[{type:r.Inject,args:[r.PLATFORM_ID]}]},{type:r.RendererFactory2}]},e.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new e(r.ɵɵinject("config"),r.ɵɵinject(t.DOCUMENT),r.ɵɵinject(r.PLATFORM_ID),r.ɵɵinject(r.RendererFactory2))},token:e,providedIn:"root"}),e=o([r.Injectable({providedIn:"root"}),i(0,r.Inject("config")),i(1,r.Inject(t.DOCUMENT)),i(2,r.Inject(r.PLATFORM_ID))],e)}(),c=function(){function e(e,r){if(this.angularMailRuCounter=e,!n.config)throw Error("angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function");n.config.enabled&&t.isPlatformBrowser(r)&&this.angularMailRuCounter.initialize()}var n;return n=e,e.forRoot=function(e){this.config=e;var t=e.counterId;return this.verifyCounterId(t),{ngModule:n,providers:[a,{provide:"config",useValue:e}]}},e.verifyCounterId=function(e){if(null==e||0===e.length)throw Error("Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?")},e.config=null,e.ctorParameters=function(){return[{type:a},{type:Object,decorators:[{type:r.Inject,args:[r.PLATFORM_ID]}]}]},e=n=o([r.NgModule({declarations:[],imports:[t.CommonModule]}),i(1,r.Inject(r.PLATFORM_ID))],e)}();e.AngularMailRuCounterModule=c,e.AngularMailRuCounterService=a,Object.defineProperty(e,"__esModule",{value:!0})}));
16
+ //# sourceMappingURL=angular-mailru-counter.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://angular-mailru-counter/lib/angular-mail-ru-counter.service.ts","ng://angular-mailru-counter/lib/angular-mail-ru-counter.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","AngularMailRuCounterService","config","documentRef","platformId","rendererFactory","doc","renderer","createRenderer","initialize","counterId","isLoaded","console","warn","enabled","addMailRuCounterScript","remove","removeMailRuCounterScript","trackGoal","goal","value","isPlatformBrowser","_tmr","push","type","id","Number","isInteger","counterCode","scriptElement","createElement","setAttribute","setProperty","appendChild","head","mailRuCounterElement","getElementById","Inject","args","DOCUMENT","PLATFORM_ID","RendererFactory2","Injectable","providedIn","AngularMailRuCounterModule","angularMailRuCounter","AngularMailRuCounterModule_1","Error","forRoot","verifyCounterId","ngModule","providers","provide","useValue","NgModule","declarations","imports","CommonModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlscnUtY291bnRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIvIiwic291cmNlcyI6WyJhbmd1bGFyLW1haWxydS1jb3VudGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QW5ndWxhck1haWxSdUNvdW50ZXJDb25maWd1cmF0aW9uIGFzIMm1YX0gZnJvbSAnLi9saWIvYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kZWxzJzsiXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1tYWlscnUtY291bnRlci8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLW1haWwtcnUtY291bnRlci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQW5ndWxhck1haWxSdUNvdW50ZXJDb25maWd1cmF0aW9uIHtcbiAgICAvKiogV2hldGhlciB0byBzdGFydCB0cmFja2luZyBpbW1lZGlhdGVseS4gRGVmYXVsdCBpcyBgZmFsc2VgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFlvdXIgTWFpbC5ydSBDb3VudGVyIElEICovXG4gICAgY291bnRlcklkOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ var AngularMailRuCounterModule_1;
2
+ import { __decorate, __param } from "tslib";
3
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
4
+ import { Inject, NgModule, PLATFORM_ID } from '@angular/core';
5
+ import { AngularMailRuCounterService } from './angular-mail-ru-counter.service';
6
+ let AngularMailRuCounterModule = AngularMailRuCounterModule_1 = class AngularMailRuCounterModule {
7
+ constructor(angularMailRuCounter, platformId) {
8
+ this.angularMailRuCounter = angularMailRuCounter;
9
+ if (!AngularMailRuCounterModule_1.config) {
10
+ throw Error('angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function');
11
+ }
12
+ if (AngularMailRuCounterModule_1.config.enabled && isPlatformBrowser(platformId)) {
13
+ this.angularMailRuCounter.initialize();
14
+ }
15
+ }
16
+ /**
17
+ * Initialize the Angular Mail.ru Counter Module
18
+ *
19
+ * Add your Mail.ru Counter ID as parameter
20
+ */
21
+ static forRoot(config) {
22
+ this.config = config;
23
+ const counterId = config.counterId;
24
+ this.verifyCounterId(counterId);
25
+ return {
26
+ ngModule: AngularMailRuCounterModule_1,
27
+ providers: [
28
+ AngularMailRuCounterService,
29
+ { provide: 'config', useValue: config },
30
+ ],
31
+ };
32
+ }
33
+ /**
34
+ * Verifies the Counter ID that was passed into the configuration.
35
+ * - Checks if Counter was initialized
36
+ * @param counterId Counter ID to verify
37
+ */
38
+ static verifyCounterId(counterId) {
39
+ if (counterId === null || counterId === undefined || counterId.length === 0) {
40
+ throw Error('Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?');
41
+ }
42
+ }
43
+ };
44
+ AngularMailRuCounterModule.config = null;
45
+ AngularMailRuCounterModule.ctorParameters = () => [
46
+ { type: AngularMailRuCounterService },
47
+ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
48
+ ];
49
+ AngularMailRuCounterModule = AngularMailRuCounterModule_1 = __decorate([
50
+ NgModule({
51
+ declarations: [],
52
+ imports: [CommonModule],
53
+ }),
54
+ __param(1, Inject(PLATFORM_ID))
55
+ ], AngularMailRuCounterModule);
56
+ export { AngularMailRuCounterModule };
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1tYWlscnUtY291bnRlci8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLW1haWwtcnUtY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLE1BQU0sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQU05RSxJQUFhLDBCQUEwQixrQ0FBdkMsTUFBYSwwQkFBMEI7SUFHbkMsWUFDWSxvQkFBaUQsRUFDcEMsVUFBa0I7UUFEL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE2QjtRQUd6RCxJQUFJLENBQUMsNEJBQTBCLENBQUMsTUFBTSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxDQUNQLDRHQUE0RyxDQUMvRyxDQUFDO1NBQ0w7UUFFRCxJQUFJLDRCQUEwQixDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDNUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUNWLE1BQXlDO1FBRXpDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoQyxPQUFPO1lBQ0gsUUFBUSxFQUFFLDRCQUEwQjtZQUNwQyxTQUFTLEVBQUU7Z0JBQ1AsMkJBQTJCO2dCQUMzQixFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQzthQUN4QztTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBaUI7UUFDNUMsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDekUsTUFBTSxLQUFLLENBQ1AsOEVBQThFLENBQ2pGLENBQUM7U0FDTDtJQUNMLENBQUM7Q0FDSixDQUFBO0FBcERrQixpQ0FBTSxHQUE2QyxJQUFJLENBQUM7O1lBR3JDLDJCQUEyQjtZQUN4QixNQUFNLHVCQUF0QyxNQUFNLFNBQUMsV0FBVzs7QUFMZCwwQkFBMEI7SUFKdEMsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO0tBQzFCLENBQUM7SUFNTyxXQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtHQUxmLDBCQUEwQixDQXFEdEM7U0FyRFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQTEFURk9STV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FuZ3VsYXJNYWlsUnVDb3VudGVyQ29uZmlndXJhdGlvbn0gZnJvbSAnLi9hbmd1bGFyLW1haWwtcnUtY291bnRlci5tb2RlbHMnO1xuaW1wb3J0IHtBbmd1bGFyTWFpbFJ1Q291bnRlclNlcnZpY2V9IGZyb20gJy4vYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhck1haWxSdUNvdW50ZXJNb2R1bGUge1xuICAgIHByaXZhdGUgc3RhdGljIGNvbmZpZzogQW5ndWxhck1haWxSdUNvdW50ZXJDb25maWd1cmF0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhbmd1bGFyTWFpbFJ1Q291bnRlcjogQW5ndWxhck1haWxSdUNvdW50ZXJTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgKSB7XG4gICAgICAgIGlmICghQW5ndWxhck1haWxSdUNvdW50ZXJNb2R1bGUuY29uZmlnKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAnYW5ndWxhci1tYWlscnUtY291bnRlciBub3QgY29uZmlndXJlZCBjb3JyZWN0bHkuIFBhc3MgdGhlIGBjb3VudGVySWRgIHByb3BlcnR5IHRvIHRoZSBgZm9yUm9vdCgpYCBmdW5jdGlvbicsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFuZ3VsYXJNYWlsUnVDb3VudGVyTW9kdWxlLmNvbmZpZy5lbmFibGVkICYmIGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmFuZ3VsYXJNYWlsUnVDb3VudGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIEFuZ3VsYXIgTWFpbC5ydSBDb3VudGVyIE1vZHVsZVxuICAgICAqXG4gICAgICogQWRkIHlvdXIgTWFpbC5ydSBDb3VudGVyIElEIGFzIHBhcmFtZXRlclxuICAgICAqL1xuICAgIHN0YXRpYyBmb3JSb290KFxuICAgICAgICBjb25maWc6IEFuZ3VsYXJNYWlsUnVDb3VudGVyQ29uZmlndXJhdGlvbixcbiAgICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuZ3VsYXJNYWlsUnVDb3VudGVyTW9kdWxlPiB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gICAgICAgIGNvbnN0IGNvdW50ZXJJZCA9IGNvbmZpZy5jb3VudGVySWQ7XG5cbiAgICAgICAgdGhpcy52ZXJpZnlDb3VudGVySWQoY291bnRlcklkKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJNYWlsUnVDb3VudGVyTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgQW5ndWxhck1haWxSdUNvdW50ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiAnY29uZmlnJywgdXNlVmFsdWU6IGNvbmZpZ30sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBDb3VudGVyIElEIHRoYXQgd2FzIHBhc3NlZCBpbnRvIHRoZSBjb25maWd1cmF0aW9uLlxuICAgICAqIC0gQ2hlY2tzIGlmIENvdW50ZXIgd2FzIGluaXRpYWxpemVkXG4gICAgICogQHBhcmFtIGNvdW50ZXJJZCBDb3VudGVyIElEIHRvIHZlcmlmeVxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIHZlcmlmeUNvdW50ZXJJZChjb3VudGVySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoY291bnRlcklkID09PSBudWxsIHx8IGNvdW50ZXJJZCA9PT0gdW5kZWZpbmVkIHx8IGNvdW50ZXJJZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICdJbnZhbGlkIE1haWwucnUgQ291bnRlciBJRC4gRGlkIHlvdSBwYXNzIHRoZSBJRCBpbnRvIHRoZSBmb3JSb290KCkgZnVuY3Rpb24/JyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,109 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
3
+ import { Inject, Injectable, PLATFORM_ID, Renderer2, RendererFactory2, } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ let AngularMailRuCounterService = class AngularMailRuCounterService {
7
+ constructor(config, documentRef, platformId, rendererFactory) {
8
+ this.config = config;
9
+ this.documentRef = documentRef;
10
+ this.platformId = platformId;
11
+ this.rendererFactory = rendererFactory;
12
+ this.doc = this.documentRef;
13
+ this.renderer = this.rendererFactory.createRenderer(null, null);
14
+ }
15
+ /**
16
+ * Initialize Mail.ru Counter tracking script
17
+ * - Adds the script to page's head
18
+ * - Tracks first page view
19
+ */
20
+ initialize(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
+ remove() {
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
+ trackGoal(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(Object.assign({ type: 'reachGoal', id: this.config.counterId, goal }, (value && Number.isInteger(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
+ addMailRuCounterScript(counterId) {
55
+ if (!isPlatformBrowser(this.platformId)) {
56
+ return;
57
+ }
58
+ const counterCode = `
59
+ var _tmr = window._tmr || (window._tmr = []);
60
+ _tmr.push({id: "${counterId}", type: "pageView", start: (new Date()).getTime()});
61
+ (function (d, w, id) {
62
+ if (d.getElementById(id)) return;
63
+ var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id;
64
+ ts.src = "https://top-fwz1.mail.ru/js/code.js";
65
+ var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);};
66
+ if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }
67
+ })(document, window, "topmailru-code");`;
68
+ const scriptElement = this.renderer.createElement('script');
69
+ this.renderer.setAttribute(scriptElement, 'id', 'mail-ru-counter-script');
70
+ this.renderer.setAttribute(scriptElement, 'type', 'text/javascript');
71
+ this.renderer.setProperty(scriptElement, 'innerHTML', counterCode);
72
+ this.renderer.appendChild(this.doc.head, scriptElement);
73
+ }
74
+ /** Remove Mail.ru Counter tracking script from the application */
75
+ removeMailRuCounterScript() {
76
+ if (!isPlatformBrowser(this.platformId)) {
77
+ return;
78
+ }
79
+ const mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
80
+ if (mailRuCounterElement) {
81
+ mailRuCounterElement.remove();
82
+ }
83
+ }
84
+ /** Checks if the script element is present */
85
+ isLoaded() {
86
+ if (isPlatformBrowser(this.platformId)) {
87
+ const mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
88
+ return !!mailRuCounterElement;
89
+ }
90
+ return false;
91
+ }
92
+ };
93
+ AngularMailRuCounterService.ctorParameters = () => [
94
+ { type: undefined, decorators: [{ type: Inject, args: ['config',] }] },
95
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
96
+ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
97
+ { type: RendererFactory2 }
98
+ ];
99
+ AngularMailRuCounterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AngularMailRuCounterService_Factory() { return new AngularMailRuCounterService(i0.ɵɵinject("config"), i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i0.PLATFORM_ID), i0.ɵɵinject(i0.RendererFactory2)); }, token: AngularMailRuCounterService, providedIn: "root" });
100
+ AngularMailRuCounterService = __decorate([
101
+ Injectable({
102
+ providedIn: 'root',
103
+ }),
104
+ __param(0, Inject('config')),
105
+ __param(1, Inject(DOCUMENT)),
106
+ __param(2, Inject(PLATFORM_ID))
107
+ ], AngularMailRuCounterService);
108
+ export { AngularMailRuCounterService };
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDSCxNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkIsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFJcEMsWUFDOEIsTUFBeUMsRUFDekMsV0FBZ0IsRUFDYixVQUFrQixFQUN2QyxlQUFpQztRQUhmLFdBQU0sR0FBTixNQUFNLENBQW1DO1FBQ3pDLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFFekMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBdUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxZQUFvQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FDUiw0SUFBNEksQ0FDL0ksQ0FBQztZQUVGLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGlEQUFpRDtJQUNqRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQ1IscUdBQXFHLENBQ3hHLENBQUM7WUFFRixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsSUFBSSxpQkFDTCxJQUFJLEVBQUUsV0FBVyxFQUNqQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQ3pCLElBQUksSUFDRCxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUMsS0FBSyxFQUFDLENBQUMsRUFDbEQsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSyxzQkFBc0IsQ0FBQyxTQUFpQjtRQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE9BQU87U0FDVjtRQUVELE1BQU0sV0FBVyxHQUFHOzt5QkFFSCxTQUFTOzs7Ozs7OytDQU9hLENBQUM7UUFFeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrRUFBa0U7SUFDMUQseUJBQXlCO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsT0FBTztTQUNWO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRS9FLElBQUksb0JBQW9CLEVBQUU7WUFDdEIsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsOENBQThDO0lBQ3RDLFFBQVE7UUFDWixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUNoRCx3QkFBd0IsQ0FDM0IsQ0FBQztZQUVGLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1NBQ2pDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKLENBQUE7OzRDQWxIUSxNQUFNLFNBQUMsUUFBUTs0Q0FDZixNQUFNLFNBQUMsUUFBUTtZQUN5QixNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVztZQUNNLGdCQUFnQjs7O0FBUnBDLDJCQUEyQjtJQUh2QyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0lBTU8sV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7R0FQZiwyQkFBMkIsQ0F1SHZDO1NBdkhZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBQTEFURk9STV9JRCxcbiAgICBSZW5kZXJlcjIsXG4gICAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FuZ3VsYXJNYWlsUnVDb3VudGVyQ29uZmlndXJhdGlvbn0gZnJvbSAnLi9hbmd1bGFyLW1haWwtcnUtY291bnRlci5tb2RlbHMnO1xuXG5kZWNsYXJlIGNvbnN0IF90bXI6IGFueTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhck1haWxSdUNvdW50ZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG4gICAgcHJpdmF0ZSBkb2M6IERvY3VtZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoJ2NvbmZpZycpIHByaXZhdGUgY29uZmlnOiBBbmd1bGFyTWFpbFJ1Q291bnRlckNvbmZpZ3VyYXRpb24sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnRSZWY6IGFueSxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgICkge1xuICAgICAgICB0aGlzLmRvYyA9IHRoaXMuZG9jdW1lbnRSZWYgYXMgRG9jdW1lbnQ7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIE1haWwucnUgQ291bnRlciB0cmFja2luZyBzY3JpcHRcbiAgICAgKiAtIEFkZHMgdGhlIHNjcmlwdCB0byBwYWdlJ3MgaGVhZFxuICAgICAqIC0gVHJhY2tzIGZpcnN0IHBhZ2Ugdmlld1xuICAgICAqL1xuICAgIGluaXRpYWxpemUoY291bnRlcklkOiBzdHJpbmcgPSB0aGlzLmNvbmZpZy5jb3VudGVySWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkZWQoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdUcmllZCB0byBpbml0aWFsaXplIGEgTWFpbC5SdSBDb3VudGVyIGluc3RhbmNlIHdoaWxlIGFub3RoZXIgaXMgYWxyZWFkeSBhY3RpdmUuIFBsZWFzZSBjYWxsIGByZW1vdmUoKWAgYmVmb3JlIGluaXRpYWxpemluZyBhIG5ldyBpbnN0YW5jZS4nLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRkTWFpbFJ1Q291bnRlclNjcmlwdChjb3VudGVySWQpO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmUgdGhlIE1haWwucnUgQ291bnRlciB0cmFja2luZyBzY3JpcHQgKi9cbiAgICByZW1vdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTWFpbFJ1Q291bnRlclNjcmlwdCgpO1xuICAgICAgICB0aGlzLmNvbmZpZy5lbmFibGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhY2sgYSBnb2FsXG4gICAgICpcbiAgICAgKiBTZWUge0BsaW5rIGh0dHBzOi8vdGFyZ2V0Lm15LmNvbS9oZWxwL2FkdmVydGlzZXJzL3NvdXJjZXRvcG1haWxydS9lbiNnb2FscyBNeVRhcmdldCBkb2NzIC0gU2V0IGdvYWxzIGZvciB0aGUgY291bnRlcn1cbiAgICAgKiBAcGFyYW0gZ29hbCBUaGUgbmFtZSBvZiB0aGUgZ29hbCB0aGF0IGlzIGJlaW5nIHRyYWNrZWRcbiAgICAgKiBAcGFyYW0gdmFsdWUgQSBmaXhlZCBudW1iZXIgYXR0YWNoZWQgdG8gYSBzcGVjaWZpYyBnb2FsXG4gICAgICovXG4gICAgdHJhY2tHb2FsKGdvYWw6IHN0cmluZywgdmFsdWU/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNMb2FkZWQoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdUcmllZCB0byB0cmFjayBhbiBldmVudCB3aXRob3V0IGluaXRpYWxpemluZyBhIE1haWwuUnUgQ291bnRlciBpbnN0YW5jZS4gQ2FsbCBgaW5pdGlhbGl6ZSgpYCBmaXJzdC4nLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgX3Rtci5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdyZWFjaEdvYWwnLFxuICAgICAgICAgICAgaWQ6IHRoaXMuY29uZmlnLmNvdW50ZXJJZCxcbiAgICAgICAgICAgIGdvYWwsXG4gICAgICAgICAgICAuLi4odmFsdWUgJiYgTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYge3ZhbHVlfSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgTWFpbC5ydSBDb3VudGVyIHRyYWNraW5nIHNjcmlwdCB0byB0aGUgYXBwbGljYXRpb25cbiAgICAgKiBAcGFyYW0gY291bnRlcklkIE1haWwucnUgQ291bnRlciBJRCB0byB1c2VcbiAgICAgKi9cbiAgICBwcml2YXRlIGFkZE1haWxSdUNvdW50ZXJTY3JpcHQoY291bnRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3VudGVyQ29kZSA9IGBcbiAgICAgICB2YXIgX3RtciA9IHdpbmRvdy5fdG1yIHx8ICh3aW5kb3cuX3RtciA9IFtdKTtcbiAgICAgICBfdG1yLnB1c2goe2lkOiBcIiR7Y291bnRlcklkfVwiLCB0eXBlOiBcInBhZ2VWaWV3XCIsIHN0YXJ0OiAobmV3IERhdGUoKSkuZ2V0VGltZSgpfSk7XG4gICAgICAgKGZ1bmN0aW9uIChkLCB3LCBpZCkge1xuICAgICAgICAgaWYgKGQuZ2V0RWxlbWVudEJ5SWQoaWQpKSByZXR1cm47XG4gICAgICAgICB2YXIgdHMgPSBkLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7IHRzLnR5cGUgPSBcInRleHQvamF2YXNjcmlwdFwiOyB0cy5hc3luYyA9IHRydWU7IHRzLmlkID0gaWQ7XG4gICAgICAgICB0cy5zcmMgPSBcImh0dHBzOi8vdG9wLWZ3ejEubWFpbC5ydS9qcy9jb2RlLmpzXCI7XG4gICAgICAgICB2YXIgZiA9IGZ1bmN0aW9uICgpIHt2YXIgcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIilbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodHMsIHMpO307XG4gICAgICAgICBpZiAody5vcGVyYSA9PSBcIltvYmplY3QgT3BlcmFdXCIpIHsgZC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLCBmLCBmYWxzZSk7IH0gZWxzZSB7IGYoKTsgfVxuICAgICAgIH0pKGRvY3VtZW50LCB3aW5kb3csIFwidG9wbWFpbHJ1LWNvZGVcIik7YDtcblxuICAgICAgICBjb25zdCBzY3JpcHRFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzY3JpcHRFbGVtZW50LCAnaWQnLCAnbWFpbC1ydS1jb3VudGVyLXNjcmlwdCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzY3JpcHRFbGVtZW50LCAndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzY3JpcHRFbGVtZW50LCAnaW5uZXJIVE1MJywgY291bnRlckNvZGUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jLmhlYWQsIHNjcmlwdEVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmUgTWFpbC5ydSBDb3VudGVyIHRyYWNraW5nIHNjcmlwdCBmcm9tIHRoZSBhcHBsaWNhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVtb3ZlTWFpbFJ1Q291bnRlclNjcmlwdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYWlsUnVDb3VudGVyRWxlbWVudCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdtYWlsLXJ1LWNvdW50ZXItc2NyaXB0Jyk7XG5cbiAgICAgICAgaWYgKG1haWxSdUNvdW50ZXJFbGVtZW50KSB7XG4gICAgICAgICAgICBtYWlsUnVDb3VudGVyRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDaGVja3MgaWYgdGhlIHNjcmlwdCBlbGVtZW50IGlzIHByZXNlbnQgKi9cbiAgICBwcml2YXRlIGlzTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgbWFpbFJ1Q291bnRlckVsZW1lbnQgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICAnbWFpbC1ydS1jb3VudGVyLXNjcmlwdCcsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gISFtYWlsUnVDb3VudGVyRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Public API Surface of angular-mailru-counter
3
+ */
4
+ export * from './lib/angular-mail-ru-counter.service';
5
+ export * from './lib/angular-mail-ru-counter.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW5ndWxhci1tYWlscnUtY291bnRlclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItbWFpbC1ydS1jb3VudGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlscnUtY291bnRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIvIiwic291cmNlcyI6WyJhbmd1bGFyLW1haWxydS1jb3VudGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QW5ndWxhck1haWxSdUNvdW50ZXJDb25maWd1cmF0aW9uIGFzIMm1YX0gZnJvbSAnLi9saWIvYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kZWxzJzsiXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1tYWlscnUtY291bnRlci8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLW1haWwtcnUtY291bnRlci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQW5ndWxhck1haWxSdUNvdW50ZXJDb25maWd1cmF0aW9uIHtcbiAgICAvKiogV2hldGhlciB0byBzdGFydCB0cmFja2luZyBpbW1lZGlhdGVseS4gRGVmYXVsdCBpcyBgZmFsc2VgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFlvdXIgTWFpbC5ydSBDb3VudGVyIElEICovXG4gICAgY291bnRlcklkOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
3
+ import { Inject, NgModule, PLATFORM_ID } from '@angular/core';
4
+ import { AngularMailRuCounterService } from './angular-mail-ru-counter.service';
5
+ var AngularMailRuCounterModule = /** @class */ (function () {
6
+ function AngularMailRuCounterModule(angularMailRuCounter, platformId) {
7
+ this.angularMailRuCounter = angularMailRuCounter;
8
+ if (!AngularMailRuCounterModule_1.config) {
9
+ throw Error('angular-mailru-counter not configured correctly. Pass the `counterId` property to the `forRoot()` function');
10
+ }
11
+ if (AngularMailRuCounterModule_1.config.enabled && isPlatformBrowser(platformId)) {
12
+ this.angularMailRuCounter.initialize();
13
+ }
14
+ }
15
+ AngularMailRuCounterModule_1 = AngularMailRuCounterModule;
16
+ /**
17
+ * Initialize the Angular Mail.ru Counter Module
18
+ *
19
+ * Add your Mail.ru Counter ID as parameter
20
+ */
21
+ AngularMailRuCounterModule.forRoot = function (config) {
22
+ this.config = config;
23
+ var counterId = config.counterId;
24
+ this.verifyCounterId(counterId);
25
+ return {
26
+ ngModule: AngularMailRuCounterModule_1,
27
+ providers: [
28
+ AngularMailRuCounterService,
29
+ { provide: 'config', useValue: config },
30
+ ],
31
+ };
32
+ };
33
+ /**
34
+ * Verifies the Counter ID that was passed into the configuration.
35
+ * - Checks if Counter was initialized
36
+ * @param counterId Counter ID to verify
37
+ */
38
+ AngularMailRuCounterModule.verifyCounterId = function (counterId) {
39
+ if (counterId === null || counterId === undefined || counterId.length === 0) {
40
+ throw Error('Invalid Mail.ru Counter ID. Did you pass the ID into the forRoot() function?');
41
+ }
42
+ };
43
+ var AngularMailRuCounterModule_1;
44
+ AngularMailRuCounterModule.config = null;
45
+ AngularMailRuCounterModule.ctorParameters = function () { return [
46
+ { type: AngularMailRuCounterService },
47
+ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
48
+ ]; };
49
+ AngularMailRuCounterModule = AngularMailRuCounterModule_1 = __decorate([
50
+ NgModule({
51
+ declarations: [],
52
+ imports: [CommonModule],
53
+ }),
54
+ __param(1, Inject(PLATFORM_ID))
55
+ ], AngularMailRuCounterModule);
56
+ return AngularMailRuCounterModule;
57
+ }());
58
+ export { AngularMailRuCounterModule };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1tYWlscnUtY291bnRlci8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLW1haWwtcnUtY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsTUFBTSxFQUF1QixRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBTTlFO0lBR0ksb0NBQ1ksb0JBQWlELEVBQ3BDLFVBQWtCO1FBRC9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNkI7UUFHekQsSUFBSSxDQUFDLDRCQUEwQixDQUFDLE1BQU0sRUFBRTtZQUNwQyxNQUFNLEtBQUssQ0FDUCw0R0FBNEcsQ0FDL0csQ0FBQztTQUNMO1FBRUQsSUFBSSw0QkFBMEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7bUNBaEJRLDBCQUEwQjtJQWtCbkM7Ozs7T0FJRztJQUNJLGtDQUFPLEdBQWQsVUFDSSxNQUF5QztRQUV6QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRW5DLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEMsT0FBTztZQUNILFFBQVEsRUFBRSw0QkFBMEI7WUFDcEMsU0FBUyxFQUFFO2dCQUNQLDJCQUEyQjtnQkFDM0IsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7YUFDeEM7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDWSwwQ0FBZSxHQUE5QixVQUErQixTQUFpQjtRQUM1QyxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6RSxNQUFNLEtBQUssQ0FDUCw4RUFBOEUsQ0FDakYsQ0FBQztTQUNMO0lBQ0wsQ0FBQzs7SUFuRGMsaUNBQU0sR0FBNkMsSUFBSSxDQUFDOztnQkFHckMsMkJBQTJCO2dCQUN4QixNQUFNLHVCQUF0QyxNQUFNLFNBQUMsV0FBVzs7SUFMZCwwQkFBMEI7UUFKdEMsUUFBUSxDQUFDO1lBQ04sWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzFCLENBQUM7UUFNTyxXQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtPQUxmLDBCQUEwQixDQXFEdEM7SUFBRCxpQ0FBQztDQUFBLEFBckRELElBcURDO1NBckRZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5qZWN0LCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBbmd1bGFyTWFpbFJ1Q291bnRlckNvbmZpZ3VyYXRpb259IGZyb20gJy4vYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kZWxzJztcbmltcG9ydCB7QW5ndWxhck1haWxSdUNvdW50ZXJTZXJ2aWNlfSBmcm9tICcuL2FuZ3VsYXItbWFpbC1ydS1jb3VudGVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNYWlsUnVDb3VudGVyTW9kdWxlIHtcbiAgICBwcml2YXRlIHN0YXRpYyBjb25maWc6IEFuZ3VsYXJNYWlsUnVDb3VudGVyQ29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYW5ndWxhck1haWxSdUNvdW50ZXI6IEFuZ3VsYXJNYWlsUnVDb3VudGVyU2VydmljZSxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgICkge1xuICAgICAgICBpZiAoIUFuZ3VsYXJNYWlsUnVDb3VudGVyTW9kdWxlLmNvbmZpZykge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgJ2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIgbm90IGNvbmZpZ3VyZWQgY29ycmVjdGx5LiBQYXNzIHRoZSBgY291bnRlcklkYCBwcm9wZXJ0eSB0byB0aGUgYGZvclJvb3QoKWAgZnVuY3Rpb24nLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBbmd1bGFyTWFpbFJ1Q291bnRlck1vZHVsZS5jb25maWcuZW5hYmxlZCAmJiBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5hbmd1bGFyTWFpbFJ1Q291bnRlci5pbml0aWFsaXplKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHRoZSBBbmd1bGFyIE1haWwucnUgQ291bnRlciBNb2R1bGVcbiAgICAgKlxuICAgICAqIEFkZCB5b3VyIE1haWwucnUgQ291bnRlciBJRCBhcyBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9yUm9vdChcbiAgICAgICAgY29uZmlnOiBBbmd1bGFyTWFpbFJ1Q291bnRlckNvbmZpZ3VyYXRpb24sXG4gICAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyTWFpbFJ1Q291bnRlck1vZHVsZT4ge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgICAgICBjb25zdCBjb3VudGVySWQgPSBjb25maWcuY291bnRlcklkO1xuXG4gICAgICAgIHRoaXMudmVyaWZ5Q291bnRlcklkKGNvdW50ZXJJZCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBbmd1bGFyTWFpbFJ1Q291bnRlck1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIEFuZ3VsYXJNYWlsUnVDb3VudGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogJ2NvbmZpZycsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgQ291bnRlciBJRCB0aGF0IHdhcyBwYXNzZWQgaW50byB0aGUgY29uZmlndXJhdGlvbi5cbiAgICAgKiAtIENoZWNrcyBpZiBDb3VudGVyIHdhcyBpbml0aWFsaXplZFxuICAgICAqIEBwYXJhbSBjb3VudGVySWQgQ291bnRlciBJRCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyB2ZXJpZnlDb3VudGVySWQoY291bnRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvdW50ZXJJZCA9PT0gbnVsbCB8fCBjb3VudGVySWQgPT09IHVuZGVmaW5lZCB8fCBjb3VudGVySWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAnSW52YWxpZCBNYWlsLnJ1IENvdW50ZXIgSUQuIERpZCB5b3UgcGFzcyB0aGUgSUQgaW50byB0aGUgZm9yUm9vdCgpIGZ1bmN0aW9uPycsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,102 @@
1
+ import { __assign, __decorate, __param } from "tslib";
2
+ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
3
+ import { Inject, Injectable, PLATFORM_ID, Renderer2, RendererFactory2, } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ var AngularMailRuCounterService = /** @class */ (function () {
7
+ function AngularMailRuCounterService(config, documentRef, platformId, rendererFactory) {
8
+ this.config = config;
9
+ this.documentRef = documentRef;
10
+ this.platformId = platformId;
11
+ this.rendererFactory = rendererFactory;
12
+ this.doc = this.documentRef;
13
+ this.renderer = this.rendererFactory.createRenderer(null, null);
14
+ }
15
+ /**
16
+ * Initialize Mail.ru Counter tracking script
17
+ * - Adds the script to page's head
18
+ * - Tracks first page view
19
+ */
20
+ AngularMailRuCounterService.prototype.initialize = function (counterId) {
21
+ if (counterId === void 0) { counterId = this.config.counterId; }
22
+ if (this.isLoaded()) {
23
+ console.warn('Tried to initialize a Mail.Ru Counter instance while another is already active. Please call `remove()` before initializing a new instance.');
24
+ return;
25
+ }
26
+ this.config.enabled = true;
27
+ this.addMailRuCounterScript(counterId);
28
+ };
29
+ /** Remove the Mail.ru Counter tracking script */
30
+ AngularMailRuCounterService.prototype.remove = function () {
31
+ this.removeMailRuCounterScript();
32
+ this.config.enabled = false;
33
+ };
34
+ /**
35
+ * Track a goal
36
+ *
37
+ * See {@link https://target.my.com/help/advertisers/sourcetopmailru/en#goals MyTarget docs - Set goals for the counter}
38
+ * @param goal The name of the goal that is being tracked
39
+ * @param value A fixed number attached to a specific goal
40
+ */
41
+ AngularMailRuCounterService.prototype.trackGoal = function (goal, value) {
42
+ if (!isPlatformBrowser(this.platformId)) {
43
+ return;
44
+ }
45
+ if (!this.isLoaded()) {
46
+ console.warn('Tried to track an event without initializing a Mail.Ru Counter instance. Call `initialize()` first.');
47
+ return;
48
+ }
49
+ _tmr.push(__assign({ type: 'reachGoal', id: this.config.counterId, goal: goal }, (value && Number.isInteger(value) && { value: value })));
50
+ };
51
+ /**
52
+ * Adds Mail.ru Counter tracking script to the application
53
+ * @param counterId Mail.ru Counter ID to use
54
+ */
55
+ AngularMailRuCounterService.prototype.addMailRuCounterScript = function (counterId) {
56
+ if (!isPlatformBrowser(this.platformId)) {
57
+ return;
58
+ }
59
+ 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\");";
60
+ var scriptElement = this.renderer.createElement('script');
61
+ this.renderer.setAttribute(scriptElement, 'id', 'mail-ru-counter-script');
62
+ this.renderer.setAttribute(scriptElement, 'type', 'text/javascript');
63
+ this.renderer.setProperty(scriptElement, 'innerHTML', counterCode);
64
+ this.renderer.appendChild(this.doc.head, scriptElement);
65
+ };
66
+ /** Remove Mail.ru Counter tracking script from the application */
67
+ AngularMailRuCounterService.prototype.removeMailRuCounterScript = function () {
68
+ if (!isPlatformBrowser(this.platformId)) {
69
+ return;
70
+ }
71
+ var mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
72
+ if (mailRuCounterElement) {
73
+ mailRuCounterElement.remove();
74
+ }
75
+ };
76
+ /** Checks if the script element is present */
77
+ AngularMailRuCounterService.prototype.isLoaded = function () {
78
+ if (isPlatformBrowser(this.platformId)) {
79
+ var mailRuCounterElement = this.doc.getElementById('mail-ru-counter-script');
80
+ return !!mailRuCounterElement;
81
+ }
82
+ return false;
83
+ };
84
+ AngularMailRuCounterService.ctorParameters = function () { return [
85
+ { type: undefined, decorators: [{ type: Inject, args: ['config',] }] },
86
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
87
+ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
88
+ { type: RendererFactory2 }
89
+ ]; };
90
+ AngularMailRuCounterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AngularMailRuCounterService_Factory() { return new AngularMailRuCounterService(i0.ɵɵinject("config"), i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i0.PLATFORM_ID), i0.ɵɵinject(i0.RendererFactory2)); }, token: AngularMailRuCounterService, providedIn: "root" });
91
+ AngularMailRuCounterService = __decorate([
92
+ Injectable({
93
+ providedIn: 'root',
94
+ }),
95
+ __param(0, Inject('config')),
96
+ __param(1, Inject(DOCUMENT)),
97
+ __param(2, Inject(PLATFORM_ID))
98
+ ], AngularMailRuCounterService);
99
+ return AngularMailRuCounterService;
100
+ }());
101
+ export { AngularMailRuCounterService };
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDSCxNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkI7SUFJSSxxQ0FDOEIsTUFBeUMsRUFDekMsV0FBZ0IsRUFDYixVQUFrQixFQUN2QyxlQUFpQztRQUhmLFdBQU0sR0FBTixNQUFNLENBQW1DO1FBQ3pDLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFFekMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBdUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdEQUFVLEdBQVYsVUFBVyxTQUF5QztRQUF6QywwQkFBQSxFQUFBLFlBQW9CLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztRQUNoRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQixPQUFPLENBQUMsSUFBSSxDQUNSLDRJQUE0SSxDQUMvSSxDQUFDO1lBRUYsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxD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dUh2QztzQ0F0SUQ7Q0FzSUMsQUF2SEQsSUF1SEM7U0F2SFksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFJlbmRlcmVyMixcbiAgICBSZW5kZXJlckZhY3RvcnkyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QW5ndWxhck1haWxSdUNvdW50ZXJDb25maWd1cmF0aW9ufSBmcm9tICcuL2FuZ3VsYXItbWFpbC1ydS1jb3VudGVyLm1vZGVscyc7XG5cbmRlY2xhcmUgY29uc3QgX3RtcjogYW55O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyTWFpbFJ1Q291bnRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgICBwcml2YXRlIGRvYzogRG9jdW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdCgnY29uZmlnJykgcHJpdmF0ZSBjb25maWc6IEFuZ3VsYXJNYWlsUnVDb3VudGVyQ29uZmlndXJhdGlvbixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudFJlZjogYW55LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZG9jID0gdGhpcy5kb2N1bWVudFJlZiBhcyBEb2N1bWVudDtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgTWFpbC5ydSBDb3VudGVyIHRyYWNraW5nIHNjcmlwdFxuICAgICAqIC0gQWRkcyB0aGUgc2NyaXB0IHRvIHBhZ2UncyBoZWFkXG4gICAgICogLSBUcmFja3MgZmlyc3QgcGFnZSB2aWV3XG4gICAgICovXG4gICAgaW5pdGlhbGl6ZShjb3VudGVySWQ6IHN0cmluZyA9IHRoaXMuY29uZmlnLmNvdW50ZXJJZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0xvYWRlZCgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1RyaWVkIHRvIGluaXRpYWxpemUgYSBNYWlsLlJ1IENvdW50ZXIgaW5zdGFuY2Ugd2hpbGUgYW5vdGhlciBpcyBhbHJlYWR5IGFjdGl2ZS4gUGxlYXNlIGNhbGwgYHJlbW92ZSgpYCBiZWZvcmUgaW5pdGlhbGl6aW5nIGEgbmV3IGluc3RhbmNlLicsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZy5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRNYWlsUnVDb3VudGVyU2NyaXB0KGNvdW50ZXJJZCk7XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZSB0aGUgTWFpbC5ydSBDb3VudGVyIHRyYWNraW5nIHNjcmlwdCAqL1xuICAgIHJlbW92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVNYWlsUnVDb3VudGVyU2NyaXB0KCk7XG4gICAgICAgIHRoaXMuY29uZmlnLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFjayBhIGdvYWxcbiAgICAgKlxuICAgICAqIFNlZSB7QGxpbmsgaHR0cHM6Ly90YXJnZXQubXkuY29tL2hlbHAvYWR2ZXJ0aXNlcnMvc291cmNldG9wbWFpbHJ1L2VuI2dvYWxzIE15VGFyZ2V0IGRvY3MgLSBTZXQgZ29hbHMgZm9yIHRoZSBjb3VudGVyfVxuICAgICAqIEBwYXJhbSBnb2FsIFRoZSBuYW1lIG9mIHRoZSBnb2FsIHRoYXQgaXMgYmVpbmcgdHJhY2tlZFxuICAgICAqIEBwYXJhbSB2YWx1ZSBBIGZpeGVkIG51bWJlciBhdHRhY2hlZCB0byBhIHNwZWNpZmljIGdvYWxcbiAgICAgKi9cbiAgICB0cmFja0dvYWwoZ29hbDogc3RyaW5nLCB2YWx1ZT86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc0xvYWRlZCgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1RyaWVkIHRvIHRyYWNrIGFuIGV2ZW50IHdpdGhvdXQgaW5pdGlhbGl6aW5nIGEgTWFpbC5SdSBDb3VudGVyIGluc3RhbmNlLiBDYWxsIGBpbml0aWFsaXplKClgIGZpcnN0LicsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBfdG1yLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ3JlYWNoR29hbCcsXG4gICAgICAgICAgICBpZDogdGhpcy5jb25maWcuY291bnRlcklkLFxuICAgICAgICAgICAgZ29hbCxcbiAgICAgICAgICAgIC4uLih2YWx1ZSAmJiBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSAmJiB7dmFsdWV9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBNYWlsLnJ1IENvdW50ZXIgdHJhY2tpbmcgc2NyaXB0IHRvIHRoZSBhcHBsaWNhdGlvblxuICAgICAqIEBwYXJhbSBjb3VudGVySWQgTWFpbC5ydSBDb3VudGVyIElEIHRvIHVzZVxuICAgICAqL1xuICAgIHByaXZhdGUgYWRkTWFpbFJ1Q291bnRlclNjcmlwdChjb3VudGVySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdW50ZXJDb2RlID0gYFxuICAgICAgIHZhciBfdG1yID0gd2luZG93Ll90bXIgfHwgKHdpbmRvdy5fdG1yID0gW10pO1xuICAgICAgIF90bXIucHVzaCh7aWQ6IFwiJHtjb3VudGVySWR9XCIsIHR5cGU6IFwicGFnZVZpZXdcIiwgc3RhcnQ6IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCl9KTtcbiAgICAgICAoZnVuY3Rpb24gKGQsIHcsIGlkKSB7XG4gICAgICAgICBpZiAoZC5nZXRFbGVtZW50QnlJZChpZCkpIHJldHVybjtcbiAgICAgICAgIHZhciB0cyA9IGQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTsgdHMudHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCI7IHRzLmFzeW5jID0gdHJ1ZTsgdHMuaWQgPSBpZDtcbiAgICAgICAgIHRzLnNyYyA9IFwiaHR0cHM6Ly90b3AtZnd6MS5tYWlsLnJ1L2pzL2NvZGUuanNcIjtcbiAgICAgICAgIHZhciBmID0gZnVuY3Rpb24gKCkge3ZhciBzID0gZC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0cywgcyk7fTtcbiAgICAgICAgIGlmICh3Lm9wZXJhID09IFwiW29iamVjdCBPcGVyYV1cIikgeyBkLmFkZEV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsIGYsIGZhbHNlKTsgfSBlbHNlIHsgZigpOyB9XG4gICAgICAgfSkoZG9jdW1lbnQsIHdpbmRvdywgXCJ0b3BtYWlscnUtY29kZVwiKTtgO1xuXG4gICAgICAgIGNvbnN0IHNjcmlwdEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNjcmlwdEVsZW1lbnQsICdpZCcsICdtYWlsLXJ1LWNvdW50ZXItc2NyaXB0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNjcmlwdEVsZW1lbnQsICd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHNjcmlwdEVsZW1lbnQsICdpbm5lckhUTUwnLCBjb3VudGVyQ29kZSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2MuaGVhZCwgc2NyaXB0RWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZSBNYWlsLnJ1IENvdW50ZXIgdHJhY2tpbmcgc2NyaXB0IGZyb20gdGhlIGFwcGxpY2F0aW9uICovXG4gICAgcHJpdmF0ZSByZW1vdmVNYWlsUnVDb3VudGVyU2NyaXB0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1haWxSdUNvdW50ZXJFbGVtZW50ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ21haWwtcnUtY291bnRlci1zY3JpcHQnKTtcblxuICAgICAgICBpZiAobWFpbFJ1Q291bnRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIG1haWxSdUNvdW50ZXJFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyBpZiB0aGUgc2NyaXB0IGVsZW1lbnQgaXMgcHJlc2VudCAqL1xuICAgIHByaXZhdGUgaXNMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBtYWlsUnVDb3VudGVyRWxlbWVudCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgICdtYWlsLXJ1LWNvdW50ZXItc2NyaXB0JyxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiAhIW1haWxSdUNvdW50ZXJFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Public API Surface of angular-mailru-counter
3
+ */
4
+ export * from './lib/angular-mail-ru-counter.service';
5
+ export * from './lib/angular-mail-ru-counter.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWFpbHJ1LWNvdW50ZXIvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW5ndWxhci1tYWlscnUtY291bnRlclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItbWFpbC1ydS1jb3VudGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci1tYWlsLXJ1LWNvdW50ZXIubW9kdWxlJztcbiJdfQ==