{"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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"}