UNPKG

ngx-fastcomments

Version:

This is an Angular library for FastComments, a live embedded commenting library.

1 lines 8.15 kB
{"version":3,"file":"ngx-fastcomments.mjs","sources":["../../../projects/fastcomments-angular/src/lib/fast-comments.component.ts","../../../projects/fastcomments-angular/src/lib/fast-comments.module.ts","../../../projects/fastcomments-angular/src/public-api.ts","../../../projects/fastcomments-angular/src/ngx-fastcomments.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnInit, ViewChild} from '@angular/core';\nimport {FastCommentsCommentWidgetConfig} from 'fastcomments-typescript';\n\nenum LoadStatus {\n Started,\n ScriptLoaded,\n Done,\n Error\n}\n\ninterface FastCommentsState {\n status: LoadStatus;\n}\n\ninterface WidgetInstance {\n destroy: () => void;\n update: (FastCommentsCommentWidgetConfig) => void;\n}\n\n@Component({\n selector: 'lib-fastcomments',\n template: `\n <div #fastCommentsElement></div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: []\n})\nexport class FastCommentsComponent implements OnInit, OnChanges {\n\n @Input() config: FastCommentsCommentWidgetConfig;\n @ViewChild('fastCommentsElement', {\n static: true,\n })\n fastCommentsElement: ElementRef;\n lastWidgetInstance: WidgetInstance | null;\n state: FastCommentsState;\n\n constructor() {\n this.state = {\n status: LoadStatus.Started\n };\n }\n\n ngOnInit() {\n if (!this.config) {\n throw new Error('Configuration is required!Like: <lib-fastcomments [config]=\"myConfigObject\"></lib-fastcomments>' +\n ' or <lib-fastcomments [config]=\"{ tenantId: \\'demo\\' }\"></lib-fastcomments>');\n }\n if (this.state.status === LoadStatus.ScriptLoaded) {\n return this.reset();\n } else {\n return this.loadInstance();\n }\n }\n\n ngOnChanges() {\n if (this.state.status === LoadStatus.ScriptLoaded) {\n return this.reset();\n }\n }\n\n async insertScript(src: string, id: string, parentElement: Element) {\n return new Promise((resolve, reject) => {\n const script = window.document.createElement('script');\n script.async = true;\n script.src = src;\n script.id = id;\n parentElement.appendChild(script);\n\n script.addEventListener('load', resolve);\n script.addEventListener('error', reject);\n });\n }\n\n async loadInstance() {\n return new Promise<void>(async (resolve, reject) => {\n switch (this.state.status) {\n case LoadStatus.Started:\n try {\n // @ts-ignore\n if (window && !window.FastCommentsUI) {\n const src = this.config.region === 'eu' ? 'https://cdn-eu.fastcomments.com/js/embed-v2.min.js' : 'https://cdn.fastcomments.com/js/embed-v2.min.js';\n await this.insertScript(src, 'fastcomments-widget-script', window.document.body);\n }\n this.state.status = LoadStatus.ScriptLoaded;\n await this.loadInstance();\n resolve();\n } catch (e) {\n console.error('FastComments Script Load Failure', e);\n this.state.status = LoadStatus.Error;\n reject();\n }\n break;\n case LoadStatus.ScriptLoaded:\n this.instantiateWidget();\n this.state.status = LoadStatus.Done;\n resolve();\n break;\n default:\n resolve();\n break;\n }\n });\n }\n\n reset() {\n if (!this.config) {\n return;\n }\n if (this.lastWidgetInstance) {\n this.lastWidgetInstance.update(this.config);\n } else {\n this.instantiateWidget();\n }\n }\n\n instantiateWidget() {\n const element = this.fastCommentsElement.nativeElement;\n if (element) {\n // @ts-ignore\n this.lastWidgetInstance = window.FastCommentsUI(element, this.config);\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FastCommentsComponent } from './fast-comments.component';\n\n\n\n@NgModule({\n declarations: [FastCommentsComponent],\n imports: [\n ],\n exports: [FastCommentsComponent]\n})\nexport class FastCommentsModule { }\n","/*\n * Public API Surface of ngx-fastcomments\n */\n\nexport * from './lib/fast-comments.component';\nexport * from './lib/fast-comments.module';\nexport * from 'fastcomments-typescript';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}