@bloomscorp/ngx-pixel
Version:
An Angular library to simplify the use of a Facebook Pixel. This is directly forked from https://github.com/NielsCodes/ngx-pixel since the library is no longer maintained.
55 lines • 6.39 kB
JavaScript
import { Inject, NgModule, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { PixelService } from './pixel.service';
import * as i0 from "@angular/core";
import * as i1 from "./pixel.service";
export class PixelModule {
static { this.config = null; }
constructor(pixel, platformId) {
this.pixel = pixel;
if (!PixelModule.config) {
throw Error('ngx-pixel not configured correctly. Pass the `pixelId` property to the `forRoot()` function');
}
if (PixelModule.config.enabled && isPlatformBrowser(platformId)) {
this.pixel.initialize();
}
}
/**
* Initiale the Facebook Pixel Module
*
* Add your Pixel ID as parameter
*/
static forRoot(config) {
this.config = config;
const pixelId = config.pixelId;
this.verifyPixelId(pixelId);
return {
ngModule: PixelModule,
providers: [PixelService, { provide: 'config', useValue: config }]
};
}
/**
* Verifies the Pixel ID that was passed into the configuration.
* - Checks if Pixel was initialized
* @param pixelId Pixel ID to verify
*/
static verifyPixelId(pixelId) {
// Have to verify first that all Pixel IDs follow the same 15 digit format
if (pixelId === null || pixelId === undefined || pixelId.length === 0) {
throw Error('Invalid Facebook Pixel ID. Did you pass the ID into the forRoot() function?');
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PixelModule, deps: [{ token: i1.PixelService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: PixelModule }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PixelModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PixelModule, decorators: [{
type: NgModule,
args: [{
imports: [],
}]
}], ctorParameters: () => [{ type: i1.PixelService }, { type: Object, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGl4ZWwvc3JjL2xpYi9waXhlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUsvQyxNQUFNLE9BQU8sV0FBVzthQUVQLFdBQU0sR0FBOEIsSUFBSSxBQUFsQyxDQUFtQztJQUV4RCxZQUNVLEtBQW1CLEVBQ04sVUFBa0I7UUFEL0IsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUczQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxDQUFDLDZGQUE2RixDQUFDLENBQUM7UUFDN0csQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMEI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVztZQUNyQixTQUFTLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWU7UUFDMUMsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEUsTUFBTSxLQUFLLENBQUMsNkVBQTZFLENBQUMsQ0FBQztRQUM3RixDQUFDO0lBQ0gsQ0FBQzs4R0ExQ1UsV0FBVyw4Q0FNWixXQUFXOytHQU5WLFdBQVc7K0dBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFIdkIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtpQkFDWjs7MEJBT0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGl4ZWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9waXhlbC5tb2RlbHMnO1xuaW1wb3J0IHsgSW5qZWN0LCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpeGVsU2VydmljZSB9IGZyb20gJy4vcGl4ZWwuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQaXhlbE1vZHVsZSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY29uZmlnOiBQaXhlbENvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBpeGVsOiBQaXhlbFNlcnZpY2UsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkge1xuICAgIGlmICghUGl4ZWxNb2R1bGUuY29uZmlnKSB7XG4gICAgICB0aHJvdyBFcnJvcignbmd4LXBpeGVsIG5vdCBjb25maWd1cmVkIGNvcnJlY3RseS4gUGFzcyB0aGUgYHBpeGVsSWRgIHByb3BlcnR5IHRvIHRoZSBgZm9yUm9vdCgpYCBmdW5jdGlvbicpO1xuICAgIH1cbiAgICBpZiAoUGl4ZWxNb2R1bGUuY29uZmlnLmVuYWJsZWQgJiYgaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMucGl4ZWwuaW5pdGlhbGl6ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsZSB0aGUgRmFjZWJvb2sgUGl4ZWwgTW9kdWxlXG4gICAqXG4gICAqIEFkZCB5b3VyIFBpeGVsIElEIGFzIHBhcmFtZXRlclxuICAgKi9cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBQaXhlbENvbmZpZ3VyYXRpb24pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBpeGVsTW9kdWxlPiB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgcGl4ZWxJZCA9IGNvbmZpZy5waXhlbElkO1xuICAgIHRoaXMudmVyaWZ5UGl4ZWxJZChwaXhlbElkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUGl4ZWxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtQaXhlbFNlcnZpY2UsIHsgcHJvdmlkZTogJ2NvbmZpZycsIHVzZVZhbHVlOiBjb25maWcgfV1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBQaXhlbCBJRCB0aGF0IHdhcyBwYXNzZWQgaW50byB0aGUgY29uZmlndXJhdGlvbi5cbiAgICogLSBDaGVja3MgaWYgUGl4ZWwgd2FzIGluaXRpYWxpemVkXG4gICAqIEBwYXJhbSBwaXhlbElkIFBpeGVsIElEIHRvIHZlcmlmeVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgdmVyaWZ5UGl4ZWxJZChwaXhlbElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBIYXZlIHRvIHZlcmlmeSBmaXJzdCB0aGF0IGFsbCBQaXhlbCBJRHMgZm9sbG93IHRoZSBzYW1lIDE1IGRpZ2l0IGZvcm1hdFxuICAgIGlmIChwaXhlbElkID09PSBudWxsIHx8IHBpeGVsSWQgPT09IHVuZGVmaW5lZCB8fCBwaXhlbElkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgRmFjZWJvb2sgUGl4ZWwgSUQuIERpZCB5b3UgcGFzcyB0aGUgSUQgaW50byB0aGUgZm9yUm9vdCgpIGZ1bmN0aW9uPycpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=