{"version":3,"file":"common.js","mappings":"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","names":["MetricService","constructor","this","yaCounters","runGA","codes","insertGA","then","ga","forEach","code","runYAM","insertYAMetrika","Ya","counter","Metrika2","id","ecommerce","webvisor","defer","push","window","runGTM","loadScript","q","arguments","l","Date","src","Promise","resolve","reject","insertNode","document","getElementsByTagName","metricScriptTag","createElement","onload","onerror","type","async","insetScriptTag","parentNode","insertBefore","opera","addEventListener","fireYandexGoal","goal","ecommCounter","length","reachGoal","hitYandex","url","hit","static","t","_angular_core__WEBPACK_IMPORTED_MODULE_0__","Yz7","factory","ɵfac","providedIn","SvgIconComponent","Xpm","selectors","inputs","icon","width","height","fill","fillOpacity","clickable","additionalClass","standalone","features","i0","decls","vars","consts","template","rf","ctx","_c0","ObserverDirective","element","leaveEnd","EventEmitter","intersectionOptions","ngOnInit","IntersectionObserver","rootMargin","threshold","entry","isIntersecting","emit","observe","nativeElement","lG2","outputs","SafeHtmlPipe","sanitize","transform","value","bypassSecurityTrustHtml","i1","Yjl","pure"],"sourceRoot":"webpack:///","sources":["./src/app/shared/components/metric/metric.service.ts","./src/app/shared/components/svg-icon/svg-icon.component.ts","./src/app/shared/components/svg-icon/svg-icon.component.html","./src/app/shared/directives/observer/observer.directive.ts","./src/app/shared/pipes/safe-html/safe-html.pipe.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n\nimport { Injectable } from '@angular/core';\n\nimport { CounterConfig } from './interfaces/counter-config.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetricService {\n constructor() {}\n\n private yaCounters: any[] = [];\n\n runGA(codes: string[]): void {\n this.insertGA().then(ga => {\n codes.forEach(code => {\n ga('create', code, 'auto');\n });\n ga('send', 'pageview');\n })\n }\n\n runYAM(codes: string[]): void {\n this.insertYAMetrika().then(Ya => {\n codes.forEach(code => {\n if (code) {\n const config: CounterConfig = {id: code, ecommerce: 'iikoLayer', webvisor: true, defer: true};\n const counter = new Ya.Metrika2(config);\n this.yaCounters.push(counter);\n (window as any)['yaCounter_' + code] = counter;\n }\n });\n });\n }\n\n runGTM(codes: string[]): void {\n codes.forEach(code => {\n this.loadScript('https://www.googletagmanager.com/gtag/js?id=' + code).then()\n })\n }\n\n private insertYAMetrika(): Promise {\n return this.loadScript('https://mc.yandex.ru/metrika/tag.js').then(() => {\n return (window as any).Ya;\n });\n }\n\n private insertGA(): Promise {\n // eslint-disable-next-line prefer-rest-params\n window.ga = window.ga || function() {(ga.q = ga.q || []).push(arguments)}; ga.l =+ new Date;\n return this.loadScript('https://www.google-analytics.com/analytics.js').then(() => {\n return (window as any).ga\n });\n }\n\n private loadScript(src: string): Promise {\n return new Promise((resolve, reject) => {\n const insertNode = document.getElementsByTagName('script')[0];\n const metricScriptTag = document.createElement('script');\n\n metricScriptTag.onload = resolve;\n metricScriptTag.onerror = reject;\n metricScriptTag.type = 'text/javascript';\n metricScriptTag.async = true;\n\n metricScriptTag.src = src;\n\n const insetScriptTag = (): void => insertNode.parentNode!.insertBefore(metricScriptTag, insertNode);\n\n if ((window as any).opera === '[object Opera]') {\n document.addEventListener('DOMContentLoaded', insetScriptTag, false);\n } else {\n insetScriptTag();\n }\n });\n }\n\n fireYandexGoal(goal: string): void {\n const ecommCounter = this.yaCounters[this.yaCounters.length - 1];\n if(!ecommCounter) {return}\n ecommCounter.reachGoal(goal);\n }\n\n hitYandex(url): void {\n this.yaCounters.forEach(counter => {\n counter.hit(url)\n })\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-svg-icon',\n templateUrl: './svg-icon.component.html',\n styleUrls: ['./svg-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class SvgIconComponent {\n constructor() {\n }\n\n @Input() icon: string;\n @Input() width: string;\n @Input() height: string;\n @Input() fill: string;\n @Input() fillOpacity: string;\n @Input() clickable: boolean;\n @Input() additionalClass?: string;\n}\n","\n \n\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Directive({\n selector: '[appObserver]',\n standalone: true\n})\nexport class ObserverDirective implements OnInit {\n @Output() leaveEnd: EventEmitter = new EventEmitter();\n @Input() intersectionOptions: {\n root?: HTMLElement;\n rootMargin?: string;\n threshold?: number | number[]\n } = {};\n\n constructor(\n private element: ElementRef\n ) { }\n\n ngOnInit(): void {\n if (!window.IntersectionObserver) { return }\n\n this.intersectionOptions = {\n rootMargin: '0% 0% 0% 0%',\n threshold: [.1],\n ...this.intersectionOptions\n };\n\n const observer = new window.IntersectionObserver(([entry]) => {\n if (!entry.isIntersecting) { return; }\n this.leaveEnd.emit();\n },\n this.intersectionOptions);\n observer.observe(this.element.nativeElement)\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHTML',\n standalone: true\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitize: DomSanitizer) {}\n\n transform(value: string): any {\n return this.sanitize.bypassSecurityTrustHtml(value);\n }\n}\n"],"x_google_ignoreList":[]}