UNPKG

@asoftwareworld/google-adsense

Version:
1 lines 11.6 kB
{"version":3,"file":"asoftwareworld-google-adsense.mjs","sources":["../../src/google-adsense/google-adsense-config.ts","../../src/google-adsense/google-adsense.ts","../../src/google-adsense/google-adsense.module.ts","../../src/google-adsense/public_api.ts","../../src/google-adsense/asoftwareworld-google-adsense.ts"],"sourcesContent":["/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { InjectionToken } from '@angular/core';\n\n/**\n * Set optional global default values\n */\nexport interface AswGoogleAdsenseConfig {\n /** adsense account ca-pub-XXXXXXXXXXXXXXXX */\n adClient: string;\n /** ad slot/number */\n adSlot: string | number;\n /** data-ad-format default: auto */\n adFormat: string;\n /** ins element display style */\n display: string;\n /** ins element height in px */\n width: number;\n /** ins element width in px */\n height: number;\n /** used for in-feed ads */\n layout: string;\n /** used for in-feed ads */\n layoutKey: string;\n /** enable page-level ads */\n pageLevelAds: boolean;\n adtest: string;\n /** used for flexible ads */\n fullWidthResponsive: boolean;\n}\n\nexport const ASW_GOOGLE_ADSENSE_TOKEN = new InjectionToken<AswGoogleAdsenseConfig>(\n 'AswGoogleAdsenseConfig',\n);\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ElementRef,\n PLATFORM_ID,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { ASW_GOOGLE_ADSENSE_TOKEN, AswGoogleAdsenseConfig } from './google-adsense-config';\n\n@Component({\n selector: 'asw-google-adsense',\n template: `\n <ins\n #ins\n class=\"adsbygoogle {{ className }}\"\n [style.display]=\"display\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n [attr.data-ad-client]=\"adClient\"\n [attr.data-ad-slot]=\"adSlot\"\n [attr.data-ad-format]=\"adFormat\"\n [attr.data-ad-region]=\"adRegion\"\n [attr.data-layout]=\"layout\"\n [attr.data-adtest]=\"adtest\"\n [attr.data-layout-key]=\"layoutKey\"\n [attr.data-full-width-responsive]=\"fullWidthResponsive\"\n >\n </ins>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AswGoogleAdsense implements OnInit, AfterViewInit, OnDestroy {\n /** adsense account ca-pub-XXXXXXXXXXXXXXXX */\n @Input() adClient!: string;\n /** ad slot/number */\n @Input() adSlot!: string | number;\n @Input() adFormat!: string;\n /** can be manually set if you need all ads on a page to have same id page-xxx */\n @Input() adRegion = 'page-' + Math.floor(Math.random() * 10000) + 1;\n /** ins element display style */\n @Input() display!: string;\n /** ins element height in px */\n @Input() width!: number;\n /** ins element width in px */\n @Input() height!: number;\n /** used for in-feed ads */\n @Input() layout!: string;\n /** used for in-feed ads */\n @Input() layoutKey!: string;\n /** enable page-level ads */\n @Input() pageLevelAds!: boolean;\n /** sets up some sort of google test ad */\n @Input() adtest!: string;\n /* used for flexible ads */\n @Input() fullWidthResponsive!: boolean;\n /**\n * classes applied to the ins element\n */\n @Input() className = '';\n @ViewChild('ins', { read: ElementRef, static: true }) ins!: ElementRef;\n\n constructor(\n @Inject(ASW_GOOGLE_ADSENSE_TOKEN) private config: AswGoogleAdsenseConfig,\n @Inject(PLATFORM_ID) private platform: any,\n ) { }\n\n ngOnInit(): void {\n const config = this.config;\n this.adClient = this.adClient ?? config.adClient;\n this.adSlot = this.adSlot ?? config.adSlot;\n this.adFormat = this.adFormat ?? config.adFormat ?? 'auto';\n this.display = this.display ?? config.display ?? 'block';\n this.width = this.width ?? config.width;\n this.height = this.height ?? config.height;\n this.layout = this.layout ?? config.layout;\n this.layoutKey = this.layoutKey ?? config.layoutKey;\n this.pageLevelAds = this.pageLevelAds ?? config.pageLevelAds;\n this.adtest = this.adtest ?? config.adtest;\n this.fullWidthResponsive = this.fullWidthResponsive ?? config.fullWidthResponsive;\n }\n ngOnDestroy(): void {\n const iframe = this.ins.nativeElement.querySelector('iframe');\n if (iframe && iframe.contentWindow) {\n iframe.src = 'about:blank';\n iframe.remove();\n }\n }\n\n ngAfterViewInit(): void {\n if (isPlatformBrowser(this.platform)) {\n this.push();\n }\n }\n\n push(): void {\n const p: Record<string, string | boolean> = {};\n if (this.pageLevelAds) {\n p.google_ad_client = this.adClient;\n p.enable_page_level_ads = true;\n }\n\n if (window) {\n try {\n ((window as any).adsbygoogle = (window as any).adsbygoogle || []).push(p);\n } catch {\n // pass\n }\n }\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { AswGoogleAdsense } from './google-adsense';\n\nimport { AswGoogleAdsenseConfig, ASW_GOOGLE_ADSENSE_TOKEN } from './google-adsense-config';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AswGoogleAdsense],\n declarations: [AswGoogleAdsense],\n})\nexport class AswGoogleAdsenseModule {\n static forRoot(config: Partial<AswGoogleAdsenseConfig> = {}): ModuleWithProviders<AswGoogleAdsenseModule> {\n return {\n ngModule: AswGoogleAdsenseModule,\n providers: [{ provide: ASW_GOOGLE_ADSENSE_TOKEN, useValue: config }],\n };\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport { AswGoogleAdsense } from './google-adsense';\nexport { AswGoogleAdsenseModule } from './google-adsense.module';\nexport { AswGoogleAdsenseConfig, ASW_GOOGLE_ADSENSE_TOKEN } from './google-adsense-config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}