UNPKG

ngx-pixel

Version:

An Angular library to simplify the use of a Facebook Pixel.

50 lines 5.54 kB
import { Inject, NgModule, PLATFORM_ID } from '@angular/core'; import { isPlatformBrowser } from '@angular/common'; import { PixelService } from './pixel.service'; export class PixelModule { 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?'); } } } PixelModule.config = null; PixelModule.decorators = [ { type: NgModule, args: [{ imports: [], },] } ]; PixelModule.ctorParameters = () => [ { type: PixelService }, { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL3BpeGVsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9waXhlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLL0MsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxLQUFtQixFQUNOLFVBQWtCO1FBRC9CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFHM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDdkIsTUFBTSxLQUFLLENBQUMsNkZBQTZGLENBQUMsQ0FBQztTQUM1RztRQUNELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEwQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsT0FBTztZQUNMLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBZTtRQUMxQywwRUFBMEU7UUFDMUUsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckUsTUFBTSxLQUFLLENBQUMsNkVBQTZFLENBQUMsQ0FBQztTQUM1RjtJQUNILENBQUM7O0FBeENjLGtCQUFNLEdBQThCLElBQUksQ0FBQzs7WUFMekQsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2FBQ1o7OztZQUpRLFlBQVk7WUFXZ0IsTUFBTSx1QkFBdEMsTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXhlbENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3BpeGVsLm1vZGVscyc7XG5pbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGl4ZWxTZXJ2aWNlIH0gZnJvbSAnLi9waXhlbC5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBpeGVsTW9kdWxlIHtcblxuICBwcml2YXRlIHN0YXRpYyBjb25maWc6IFBpeGVsQ29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGl4ZWw6IFBpeGVsU2VydmljZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3RcbiAgKSB7XG4gICAgaWYgKCFQaXhlbE1vZHVsZS5jb25maWcpIHtcbiAgICAgIHRocm93IEVycm9yKCduZ3gtcGl4ZWwgbm90IGNvbmZpZ3VyZWQgY29ycmVjdGx5LiBQYXNzIHRoZSBgcGl4ZWxJZGAgcHJvcGVydHkgdG8gdGhlIGBmb3JSb290KClgIGZ1bmN0aW9uJyk7XG4gICAgfVxuICAgIGlmIChQaXhlbE1vZHVsZS5jb25maWcuZW5hYmxlZCAmJiBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5waXhlbC5pbml0aWFsaXplKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxlIHRoZSBGYWNlYm9vayBQaXhlbCBNb2R1bGVcbiAgICpcbiAgICogQWRkIHlvdXIgUGl4ZWwgSUQgYXMgcGFyYW1ldGVyXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFBpeGVsQ29uZmlndXJhdGlvbik6IE1vZHVsZVdpdGhQcm92aWRlcnM8UGl4ZWxNb2R1bGU+IHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICBjb25zdCBwaXhlbElkID0gY29uZmlnLnBpeGVsSWQ7XG4gICAgdGhpcy52ZXJpZnlQaXhlbElkKHBpeGVsSWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQaXhlbE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1BpeGVsU2VydmljZSwgeyBwcm92aWRlOiAnY29uZmlnJywgdXNlVmFsdWU6IGNvbmZpZyB9XVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhlIFBpeGVsIElEIHRoYXQgd2FzIHBhc3NlZCBpbnRvIHRoZSBjb25maWd1cmF0aW9uLlxuICAgKiAtIENoZWNrcyBpZiBQaXhlbCB3YXMgaW5pdGlhbGl6ZWRcbiAgICogQHBhcmFtIHBpeGVsSWQgUGl4ZWwgSUQgdG8gdmVyaWZ5XG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyB2ZXJpZnlQaXhlbElkKHBpeGVsSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIEhhdmUgdG8gdmVyaWZ5IGZpcnN0IHRoYXQgYWxsIFBpeGVsIElEcyBmb2xsb3cgdGhlIHNhbWUgMTUgZGlnaXQgZm9ybWF0XG4gICAgaWYgKHBpeGVsSWQgPT09IG51bGwgfHwgcGl4ZWxJZCA9PT0gdW5kZWZpbmVkIHx8IHBpeGVsSWQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcignSW52YWxpZCBGYWNlYm9vayBQaXhlbCBJRC4gRGlkIHlvdSBwYXNzIHRoZSBJRCBpbnRvIHRoZSBmb3JSb290KCkgZnVuY3Rpb24/Jyk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==