UNPKG

ng-gpt

Version:
111 lines 13.7 kB
import { isPlatformBrowser } from '@angular/common'; import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core'; import { GPT_CONFIG } from './gpt.config'; import { GPT_URL } from './gpt.contants'; import * as i0 from "@angular/core"; import * as i1 from "./services/idle.service"; import * as i2 from "./services"; import * as i3 from "./gpt.config"; export class NgGptService { constructor(platformID, config, idleLoad, pubadsSetConfig, scriptInjector) { this.platformID = platformID; this.config = config; this.pubadsSetConfig = pubadsSetConfig; this.scriptInjector = scriptInjector; this.collapseEmptyDivs = true; this.enableVideoAds = false; this.enableLazyLoad = {}; this.centering = false; this.personalizedAds = true; this.limitedAds = false; this.forceSafeFrame = false; this.address = ''; this.ppid = ''; this.globalTargeting = {}; this.safeFrameConfig = {}; this.loadGPT = true; this.loaded = false; if (isPlatformBrowser(this.platformID)) { const w = window, googletag = w.googletag || {}; this.gptConfig(); googletag.cmd = googletag.cmd || []; googletag.cmd.push(() => { this.setup(); }); w.googletag = googletag; if (this.loadGPT) { const loadScript = () => { this.scriptInjector.scriptInjector(GPT_URL).then((script) => { this.loaded = true; }); }; if (idleLoad) { idleLoad.request(loadScript); } else { loadScript(); } } } } gptConfig() { for (const key in this.config) { if (this.hasOwnProperty(key)) { this[key] = this.config[key]; } } } setup() { const w = window, googletag = w.googletag, pubads = googletag.pubads(); if (this.enableVideoAds) pubads.enableVideoAds(); if (this.collapseEmptyDivs) pubads.collapseEmptyDivs(); pubads.disableInitialLoad(); pubads.setForceSafeFrame(this.forceSafeFrame); pubads.setCentering(this.centering); pubads.setRequestNonPersonalizedAds(this.personalizedAds ? 0 : 1); this.pubadsSetConfig.addLocation(this.address, pubads); this.pubadsSetConfig.addPPID(this.ppid, pubads); this.pubadsSetConfig.addTargeting(this.globalTargeting, pubads); this.pubadsSetConfig.addSafeFrameConfig(this.safeFrameConfig, pubads); pubads.setPrivacySettings({ limitedAds: this.limitedAds, }); if (this.config.singleRequestMode !== true) { if (this.config.enableVideoAds) { pubads.enableVideoAds(); } googletag.enableServices(); } if (Object.keys(this.enableLazyLoad).length) { pubads.enableLazyLoad(this.enableLazyLoad); } } hasLoaded() { return this.loaded; } defineTask(task) { if (isPlatformBrowser(this.platformID)) { const w = window, googletag = w.googletag; googletag.cmd.push(task); } } } NgGptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NgGptService, deps: [{ token: PLATFORM_ID }, { token: GPT_CONFIG }, { token: i1.IdleService, optional: true }, { token: i2.PubadsSetConfigService }, { token: i2.ScriptInjectorService }], target: i0.ɵɵFactoryTarget.Injectable }); NgGptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NgGptService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NgGptService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }, { type: i3.GptConfig, decorators: [{ type: Inject, args: [GPT_CONFIG] }] }, { type: i1.IdleService, decorators: [{ type: Optional }] }, { type: i2.PubadsSetConfigService }, { type: i2.ScriptInjectorService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZ3B0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ncHQvc3JjL2xpYi9uZy1ncHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVd6QyxNQUFNLE9BQU8sWUFBWTtJQWdCdkIsWUFDK0IsVUFBa0IsRUFDbkIsTUFBaUIsRUFDakMsUUFBcUIsRUFDekIsZUFBdUMsRUFDdkMsY0FBcUM7UUFKaEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRXJDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFwQnZDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixtQkFBYyxHQUEwQixFQUFFLENBQUM7UUFDM0MsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFDdEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFVckIs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QUFDO2FBQ3pCO1lBQ0QsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQVEsTUFBTSxFQUNuQixTQUFTLEdBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUVyQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7O3lHQXZHVSxZQUFZLGtCQWlCYixXQUFXLGFBQ1gsVUFBVTs2R0FsQlQsWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MERBa0I0QyxNQUFNOzBCQUE5QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFB1YmFkc1NldENvbmZpZ1NlcnZpY2UsIFNjcmlwdEluamVjdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgR3B0Q29uZmlnLCBHUFRfQ09ORklHIH0gZnJvbSAnLi9ncHQuY29uZmlnJztcbmltcG9ydCB7IEdQVF9VUkwgfSBmcm9tICcuL2dwdC5jb250YW50cyc7XG5pbXBvcnQge1xuICBHb29nbGV0YWcsXG4gIExhenlMb2FkT3B0aW9uc0NvbmZpZyxcbiAgU2FmZUZyYW1lQ29uZmlnLFxufSBmcm9tICcuL25nLWdwdC1nb29nbGV0YWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElkbGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pZGxlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmdHcHRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb2xsYXBzZUVtcHR5RGl2cyA9IHRydWU7XG4gIHByaXZhdGUgZW5hYmxlVmlkZW9BZHMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBlbmFibGVMYXp5TG9hZDogTGF6eUxvYWRPcHRpb25zQ29uZmlnID0ge307XG4gIHByaXZhdGUgY2VudGVyaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcGVyc29uYWxpemVkQWRzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBsaW1pdGVkQWRzID0gZmFsc2U7XG4gIHByaXZhdGUgZm9yY2VTYWZlRnJhbWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBhZGRyZXNzOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBwcGlkOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBnbG9iYWxUYXJnZXRpbmc6IG9iamVjdCA9IHt9O1xuICBwcml2YXRlIHNhZmVGcmFtZUNvbmZpZzogU2FmZUZyYW1lQ29uZmlnID0ge307XG4gIHByaXZhdGUgbG9hZEdQVCA9IHRydWU7XG4gIHByaXZhdGUgbG9hZGVkID0gZmFsc2U7XG4gIFtpbmRleDogc3RyaW5nXTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JRDogT2JqZWN0LFxuICAgIEBJbmplY3QoR1BUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEdwdENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBpZGxlTG9hZDogSWRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwdWJhZHNTZXRDb25maWc6IFB1YmFkc1NldENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY3JpcHRJbmplY3RvcjogU2NyaXB0SW5qZWN0b3JTZXJ2aWNlXG4gICkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICBjb25zdCB3OiBhbnkgPSB3aW5kb3csXG4gICAgICAgIGdvb2dsZXRhZzogR29vZ2xldGFnID0gdy5nb29nbGV0YWcgfHwge307XG5cbiAgICAgIHRoaXMuZ3B0Q29uZmlnKCk7XG5cbiAgICAgIGdvb2dsZXRhZy5jbWQgPSBnb29nbGV0YWcuY21kIHx8IFtdO1xuICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xuICAgICAgfSk7XG4gICAgICB3Lmdvb2dsZXRhZyA9IGdvb2dsZXRhZztcblxuICAgICAgaWYgKHRoaXMubG9hZEdQVCkge1xuICAgICAgICBjb25zdCBsb2FkU2NyaXB0ID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2NyaXB0SW5qZWN0b3Iuc2NyaXB0SW5qZWN0b3IoR1BUX1VSTCkudGhlbigoc2NyaXB0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGlkbGVMb2FkKSB7XG4gICAgICAgICAgaWRsZUxvYWQucmVxdWVzdChsb2FkU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2FkU2NyaXB0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdwdENvbmZpZygpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNvbmZpZykge1xuICAgICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB0aGlzW2tleV0gPSB0aGlzLmNvbmZpZ1trZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXAoKSB7XG4gICAgY29uc3QgdzogYW55ID0gd2luZG93LFxuICAgICAgZ29vZ2xldGFnOiBHb29nbGV0YWcgPSB3Lmdvb2dsZXRhZyxcbiAgICAgIHB1YmFkcyA9IGdvb2dsZXRhZy5wdWJhZHMoKTtcblxuICAgIGlmICh0aGlzLmVuYWJsZVZpZGVvQWRzKSBwdWJhZHMuZW5hYmxlVmlkZW9BZHMoKTtcbiAgICBpZiAodGhpcy5jb2xsYXBzZUVtcHR5RGl2cykgcHViYWRzLmNvbGxhcHNlRW1wdHlEaXZzKCk7XG5cbiAgICBwdWJhZHMuZGlzYWJsZUluaXRpYWxMb2FkKCk7XG4gICAgcHViYWRzLnNldEZvcmNlU2FmZUZyYW1lKHRoaXMuZm9yY2VTYWZlRnJhbWUpO1xuICAgIHB1YmFkcy5zZXRDZW50ZXJpbmcodGhpcy5jZW50ZXJpbmcpO1xuICAgIHB1YmFkcy5zZXRSZXF1ZXN0Tm9uUGVyc29uYWxpemVkQWRzKHRoaXMucGVyc29uYWxpemVkQWRzID8gMCA6IDEpO1xuXG4gICAgdGhpcy5wdWJhZHNTZXRDb25maWcuYWRkTG9jYXRpb24odGhpcy5hZGRyZXNzLCBwdWJhZHMpO1xuICAgIHRoaXMucHViYWRzU2V0Q29uZmlnLmFkZFBQSUQodGhpcy5wcGlkLCBwdWJhZHMpO1xuICAgIHRoaXMucHViYWRzU2V0Q29uZmlnLmFkZFRhcmdldGluZyh0aGlzLmdsb2JhbFRhcmdldGluZywgcHViYWRzKTtcbiAgICB0aGlzLnB1YmFkc1NldENvbmZpZy5hZGRTYWZlRnJhbWVDb25maWcodGhpcy5zYWZlRnJhbWVDb25maWcsIHB1YmFkcyk7XG5cbiAgICBwdWJhZHMuc2V0UHJpdmFjeVNldHRpbmdzKHtcbiAgICAgIGxpbWl0ZWRBZHM6IHRoaXMubGltaXRlZEFkcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5zaW5nbGVSZXF1ZXN0TW9kZSAhPT0gdHJ1ZSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmVuYWJsZVZpZGVvQWRzKSB7XG4gICAgICAgIHB1YmFkcy5lbmFibGVWaWRlb0FkcygpO1xuICAgICAgfVxuICAgICAgZ29vZ2xldGFnLmVuYWJsZVNlcnZpY2VzKCk7XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZW5hYmxlTGF6eUxvYWQpLmxlbmd0aCkge1xuICAgICAgcHViYWRzLmVuYWJsZUxhenlMb2FkKHRoaXMuZW5hYmxlTGF6eUxvYWQpO1xuICAgIH1cbiAgfVxuXG4gIGhhc0xvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZWQ7XG4gIH1cblxuICBkZWZpbmVUYXNrKHRhc2s6IGFueSk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICBjb25zdCB3OiBhbnkgPSB3aW5kb3csXG4gICAgICAgIGdvb2dsZXRhZzogR29vZ2xldGFnID0gdy5nb29nbGV0YWc7XG5cbiAgICAgIGdvb2dsZXRhZy5jbWQucHVzaCh0YXNrKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==