UNPKG

announcekit-angular

Version:

Use AnnounceKit widgets in your Angular apps

1 lines 14.6 kB
{"version":3,"file":"announcekit-angular.mjs","sources":["../../../projects/announcekit-angular/src/lib/announcekit.component.ts","../../../projects/announcekit-angular/src/lib/announcekit.component.html","../../../projects/announcekit-angular/src/lib/announcekit.module.ts","../../../projects/announcekit-angular/src/public-api.ts","../../../projects/announcekit-angular/src/announcekit-angular.ts"],"sourcesContent":["import {\n Component, Input, Output, EventEmitter, NgZone, AfterViewInit, ElementRef, ViewChild\n} from '@angular/core';\n\ninterface User {\n id: any;\n\n [key: string]: any;\n}\n\ninterface Data {\n [key: string]: any;\n}\n\n@Component({\n selector: 'announcekit',\n templateUrl: './announcekit.component.html'\n})\n\nexport class AnnouncekitComponent implements AfterViewInit {\n @ViewChild('ankRef', {static: true}) elementRef: ElementRef;\n\n @Input() widget: string;\n\n @Input('user') set user(value: User) {\n if (this.isString(value) || this.isString(this._user)) {\n this.propsValid = false;\n this._user = undefined;\n }\n else {\n if (!value) {\n this._user = undefined;\n } else {\n this._user = Object.assign({}, value);\n }\n }\n }\n\n @Input('data') set data(value: Data) {\n if (this.isString(value) || this.isString(this._data)) {\n this.propsValid = false;\n this._data = undefined;\n }\n else {\n if (!value) {\n this._data = undefined;\n } else {\n this._data = Object.assign({}, value);\n }\n }\n }\n\n @Input() lang?: string;\n @Input() floatWidget?: boolean;\n @Input() embedWidget?: boolean;\n @Input() boosters?: boolean;\n @Input() widgetStyle?: any;\n @Input() userToken?: string;\n @Input() labels?: [string];\n\n @Output('onWidgetOpen') onWidgetOpen = new EventEmitter<any>();\n @Output('onWidgetClose') onWidgetClose = new EventEmitter<any>();\n @Output('onWidgetUnread') onWidgetUnread = new EventEmitter<any>();\n @Output('onWidgetReady') onWidgetReady = new EventEmitter<any>();\n\n get user(): User {\n return this._user;\n }\n\n get data(): Data {\n return this._data;\n }\n\n private propsValid: boolean = true;\n private _user: User;\n private _data: Data;\n public className: string;\n\n public widgetInstance: any;\n public widgetHandlers: any[] = [];\n\n public barBooster: any;\n public modalBooster: any;\n\n constructor(private ngZone: NgZone) {\n this.widgetHandlers = [];\n\n this.ngZone.runOutsideAngular(() => {\n if (!window[`announcekit`]) {\n window[`announcekit`] = window[`announcekit`] || {\n queue: [],\n push(x: any) {\n window[`announcekit`].queue.push(x);\n },\n on(n: any, x: any) {\n window[`announcekit`].queue.push([n, x]);\n }\n };\n\n let scripttag: HTMLScriptElement;\n scripttag = document.createElement('script') as HTMLScriptElement;\n scripttag.async = true;\n scripttag.src = `https://cdn.announcekit.app/widget-v2.js`;\n\n let scr: HTMLScriptElement;\n scr = document.getElementsByTagName('script')[0];\n scr.parentNode.insertBefore(scripttag, scr);\n }\n });\n }\n\n ngOnChanges() {\n if (this.propsValid) {\n this.loaded();\n }\n\n this.propsValid = true;\n }\n\n private loaded(): void {\n const style = this.widgetStyle;\n\n const styleParams = {\n badge: {\n style\n },\n line: {\n style\n },\n float: {\n style\n }\n };\n\n\n if (this.floatWidget) {\n delete styleParams.badge;\n delete styleParams.line;\n }\n\n const name = Math.random()\n .toString(36)\n .substring(10);\n\n this.ngZone.runOutsideAngular(() => {\n window[`announcekit`].push({\n widget: this.widget,\n name,\n version: 2,\n framework: 'angular',\n framework_version: '4.0.0',\n embed: !!this.embedWidget,\n data: this.data,\n user: this.user,\n lang: this.lang,\n labels: this.labels,\n user_token: this.userToken,\n selector: this.elementRef.nativeElement,\n boosters: typeof this.boosters === 'undefined' ? true : this.boosters,\n ...styleParams,\n onInit: (initWidget: any) => {\n if (initWidget.conf.name !== name) {\n return initWidget.destroy();\n }\n\n const ann = window[`announcekit`];\n\n this.widgetInstance = initWidget;\n\n this.barBooster = ann.boosters.bar;\n this.modalBooster = ann.boosters.modal;\n\n this.widgetHandlers.forEach((h) => h(initWidget));\n this.widgetHandlers = [];\n\n if (this.onWidgetUnread) {\n this.onWidgetUnread.emit(this.widgetInstance.state.ui.unreadCount);\n }\n\n ann.on('widget-open', ({ widget }: any) => {\n if (widget === initWidget && this.onWidgetOpen) {\n this.onWidgetOpen.emit({ widget });\n }\n });\n\n ann.on('widget-close', ({ widget }: any) => {\n if (widget === initWidget && this.onWidgetClose) {\n this.onWidgetClose.emit({ widget });\n }\n });\n\n ann.on('widget-ready', ({ widget }: any) => {\n if (widget === initWidget && this.onWidgetReady) {\n this.onWidgetReady.emit({ widget });\n }\n });\n }\n });\n });\n }\n\n withWidget(fn) {\n return new Promise(res => {\n if (this.widgetInstance) {\n return res(fn(this.widgetInstance));\n } else {\n this.widgetHandlers.push((widget: any) => {\n res(fn(widget));\n });\n }\n });\n }\n\n unread(): any {\n return this.withWidget((widget: any) => widget.state.ui.unreadCount);\n }\n\n instance(): any {\n return this.withWidget((widget: any) => widget);\n }\n\n open() {\n this.withWidget((widget: any) => widget.open());\n }\n\n close() {\n this.withWidget((widget: any) => widget.close());\n }\n\n private isString(obj): boolean {\n return obj !== undefined && obj !== null && obj.constructor === String;\n }\n\n ngAfterViewInit(): void {\n if (!(this.user || this.data)) {\n this.loaded();\n }\n }\n}\n","<div #ankRef style=\"display: inline\" [ngClass]=\"className\">\r\n <ng-content></ng-content>\r\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AnnouncekitComponent } from './announcekit.component';\n\n\n\n@NgModule({\n declarations: [\n AnnouncekitComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n AnnouncekitComponent\n ]\n})\nexport class AnnouncekitModule { }\n","/*\n * Public API Surface of announcekit-angular\n */\n\nexport * from './lib/announcekit.component';\nexport * from './lib/announcekit.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}