angular-freshdesk
Version:
[](https://codeclimate.com/github/lucas-subli/angular-freshdesk/maintainability) [ • 3.63 kB
JavaScript
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