UNPKG

angular-freshdesk

Version:

[![Maintainability](https://api.codeclimate.com/v1/badges/75bc5877b3bf6939fe44/maintainability)](https://codeclimate.com/github/lucas-subli/angular-freshdesk/maintainability) [![Build Status](https://travis-ci.org/lucas-subli/angular-freshdesk.svg?branch=

82 lines (76 loc) 3.63 kB
import * as i0 from '@angular/core'; import { Injectable, NgModule } from '@angular/core'; class FreshdeskWebwidgetConfig { } function getWindow() { return window; } class FreshdeskWebwidgetService { constructor(freshdeskWebwidgetConfig) { this.freshdeskWebwidgetConfig = freshdeskWebwidgetConfig; if (!this.freshdeskWebwidgetConfig.widgetId) { throw new Error('Missing widgetId. Please set in app config via FreshdeskWidgetProvider'); } const window = getWindow(); const script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.src = `https://widget.freshworks.com/widgets/${this.freshdeskWebwidgetConfig.widgetId}.js`; window.fwSettings = { widget_id: freshdeskWebwidgetConfig.widgetId, locale: freshdeskWebwidgetConfig.locale, }; window.FreshworksWidget || (function () { if ('function' != typeof window.FreshworksWidget) { let n = function () { n['q'].push(arguments); }; (n['q'] = []), (window.FreshworksWidget = n); } })(); script.onload = function (event) { try { freshdeskWebwidgetConfig.callback(window.FreshworksWidget); } catch (error) { console.log('error.: ', error); } }; script.onerror = function (event) { console.log('error Onerror.: ', event); }; document.body.append(script); } get FreshworksWidget() { const window = getWindow(); return window.FreshworksWidget; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetService, deps: [{ token: FreshdeskWebwidgetConfig }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: FreshdeskWebwidgetConfig }] }); class FreshdeskWebwidgetModule { static forRoot(freshdeskConfig) { return { ngModule: FreshdeskWebwidgetModule, providers: [ { provide: FreshdeskWebwidgetConfig, useClass: freshdeskConfig }, { provide: FreshdeskWebwidgetService, useClass: FreshdeskWebwidgetService, deps: [FreshdeskWebwidgetConfig] } ] }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetModule }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetModule }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: FreshdeskWebwidgetModule, decorators: [{ type: NgModule }] }); /** * Generated bundle index. Do not edit. */ export { FreshdeskWebwidgetConfig, FreshdeskWebwidgetModule, FreshdeskWebwidgetService }; //# sourceMappingURL=angular-freshdesk.mjs.map