ng2-awesome-disqus
Version:
Angular Disqus Module
2 lines (1 loc) • 3.32 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core")):"function"==typeof define&&define.amd?define(["exports","@angular/core"],t):t(e.ng2AwesomeDisqus=e.ng2AwesomeDisqus||{},e.ng.core)}(this,function(e,t){"use strict";var i=function(){return"undefined"!=typeof window?window:void 0},n=function(){function e(){this.window=i()}return Object.defineProperty(e.prototype,"url",{get:function(){return this.window?this.window.location.href:global.url||""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disqus",{get:function(){return this.window?this.window.DISQUS:global.DISQUS},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disqusConfig",{get:function(){return this.window?this.window.disqus_config:global.disqus_config},set:function(e){this.window?this.window.disqus_config=e:global.disqus_config=e},enumerable:!0,configurable:!0}),e.prototype.validateUrl=function(e){if(e){var t=/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;if(t.test(e))return e;console.warn("[Disqus]: Invalid URL, fallback to Window URL")}return this.url},e}();n.decorators=[{type:t.Injectable}],n.ctorParameters=function(){return[]};var r=function(){function e(e,i,n){this.renderer=e,this.el=i,this.dService=n,this.comment=new t.EventEmitter}return e.prototype.ngOnChanges=function(e){if(this.dService.disqus){var t=e.identifier,i=e.url,n=e.categoryId,r=e.title,o=e.language,s=!1;t&&t.currentValue!==t.previousValue&&(s=!0),i&&i.currentValue!==i.previousValue&&(s=!0),n&&n.currentValue!==n.previousValue&&(s=!0),r&&r.currentValue!==r.previousValue&&(s=!0),o&&o.currentValue!==o.previousValue&&(s=!0),s&&this.reset()}else this.addDisqusScript()},e.prototype.addDisqusScript=function(){this.dService.disqusConfig=this.getConfig();var e=this.renderer.createElement("script");e.src="//"+this.shortname+".disqus.com/embed.js",e.async=!0,e.type="text/javascript",this.renderer.setAttribute(e,"data-timestamp",(new Date).getTime().toString()),this.renderer.appendChild(this.el.nativeElement,e)},e.prototype.reset=function(){this.dService.disqus.reset({reload:!0,config:this.getConfig()})},e.prototype.getConfig=function(){var e=this;return function(){this.page.identifier=e.identifier,this.page.url=e.dService.validateUrl(e.url),this.page.title=e.title,this.category_id=e.categoryId,this.language=e.language,this.callbacks.onNewComment=[function(t){e.comment.emit(t)}]}},e.prototype.ngOnDestroy=function(){this.dService.window?(this.dService.window.DISQUS=void 0,this.dService.window.disqusConfig=void 0):(global.DISQUS=void 0,global.disqusConfig=void 0)},e}();r.decorators=[{type:t.Component,args:[{selector:"disqus",template:'<div id="disqus_thread"></div>',changeDetection:t.ChangeDetectionStrategy.OnPush}]}],r.ctorParameters=function(){return[{type:t.Renderer2},{type:t.ElementRef},{type:n}]},r.propDecorators={shortname:[{type:t.Input}],identifier:[{type:t.Input}],url:[{type:t.Input}],categoryId:[{type:t.Input}],language:[{type:t.Input}],title:[{type:t.Input}],comment:[{type:t.Output}]};var o=function(){function e(){}return e}();o.decorators=[{type:t.NgModule,args:[{declarations:[r],providers:[n],exports:[r]}]}],o.ctorParameters=function(){return[]},e.DisqusModule=o,Object.defineProperty(e,"__esModule",{value:!0})});