ngx-tinymce
Version:
Angular for tinymce
2 lines • 5.33 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/forms"),require("rxjs"),require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-tinymce",["exports","@angular/forms","rxjs","@angular/core","@angular/common"],e):e(t["ngx-tinymce"]={},t.ng.forms,t.rxjs,t.ng.core,t.ng.common)}(this,function(t,e,n,i,o){"use strict";var s=function d(){this.baseURL="./assets/tinymce/",this.fileName="tinymce.min.js"},a=function(){function t(t){this.doc=t,this.loaded=!1,this.list={},this.emitter=new n.Subject}return t.prototype.getChangeEmitter=function(){return this.emitter},t.prototype.load=function(t){var e=this;if(this.loaded)return this;this.loaded=!0;var n=[];return[t].forEach(function(t){return n.push(e.loadScript(t))}),Promise.all(n).then(function(t){e.emitter.next(!0)}),this},t.prototype.loadScript=function(i){var o=this;return new Promise(function(e,t){if(!0!==o.list[i]){o.list[i]=!0;var n=o.doc.createElement("script");n.type="text/javascript",n.src=i,n.charset="utf-8",n.readyState?n.onreadystatechange=function(){"loaded"!==n.readyState&&"complete"!==n.readyState||(n.onreadystatechange=null,e({path:i,loaded:!0,status:"Loaded"}))}:n.onload=function(){e({path:i,loaded:!0,status:"Loaded"})},n.onerror=function(t){return e({path:i,loaded:!1,status:"Loaded"})},o.doc.getElementsByTagName("head")[0].appendChild(n)}else e({path:i,loaded:!0,status:"Loaded"})})},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:undefined,decorators:[{type:i.Inject,args:[o.DOCUMENT]}]}]},t}(),r=function(){function t(t,e,n){this.defConfig=t,this.ss=e,this.cd=n,this.load=!0,this.id="_tinymce-"+Math.random().toString(36).substring(2),this._disabled=!1,this.delay=0,this.ready=new i.EventEmitter}return Object.defineProperty(t.prototype,"disabled",{set:function(t){this._disabled=t,this.setDisabled()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"loading",{set:function(t){t instanceof i.TemplateRef?(this._loading=null,this._loadingTpl=t):this._loading=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"instance",{get:function(){return this._instance},enumerable:!0,configurable:!0}),t.prototype.initDelay=function(){var t=this;0<this.delay?setTimeout(function(){return t.init()},this.delay):this.init()},t.prototype.init=function(){var e=this;if(!window.tinymce)throw new Error("tinymce js文件加载失败");var t=this,n=t.defConfig,i=t.config,o=t.id;if(!this._instance){if(n.baseURL){var s=""+n.baseURL;s.endsWith("/")&&(s=s.substr(0,s.length-1)),tinymce.baseURL=s}var a=Object.assign({},n.config,i),r=Object.assign({selector:"#"+o},n.config,i,{setup:function(t){(e._instance=t).on("change keyup",function(){e.value=t.getContent(),e.onChange(e.value),e.cd.detectChanges()}),"function"==typeof a.setup&&a.setup(t)},init_instance_callback:function(t){t&&e.value&&t.setContent(e.value),e.setDisabled(),"function"==typeof a.init_instance_callback&&a.init_instance_callback(t),e.ready.emit(e._instance)}});a.auto_focus&&(r.auto_focus=o),tinymce.init(r),this.load=!1,this.cd.detectChanges()}},t.prototype.destroy=function(){this._instance&&(this._instance.off(),this._instance.remove("#"+this.id),this._instance=null)},t.prototype.setDisabled=function(){this._instance&&this._instance.setMode(this._disabled?"readonly":"design")},t.prototype.ngAfterViewInit=function(){var t=this;if(window.tinymce)this.initDelay();else{var e=this.defConfig,n=e&&e.baseURL,i=e&&e.fileName;this.ss.load((n||"./assets/tinymce/")+(i||"tinymce.min.js")).getChangeEmitter().subscribe(function(){return t.initDelay()})}},t.prototype.ngOnChanges=function(t){this._instance&&t.config&&(this.destroy(),this.initDelay())},t.prototype.ngOnDestroy=function(){this.destroy()},t.prototype._onReuseInit=function(){this.destroy(),this.initDelay()},t.prototype.writeValue=function(t){this.value=t||"",this._instance&&this._instance.setContent(this.value)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this.disabled=t,this.setDisabled()},t.decorators=[{type:i.Component,args:[{selector:"tinymce",template:'<textarea id="{{id}}" [placeholder]="placeholder" class="tinymce-selector"></textarea>\n<div class="loading" *ngIf="load">\n <ng-container *ngIf="_loading; else _loadingTpl">{{_loading}}</ng-container>\n</div>\n',encapsulation:i.ViewEncapsulation.None,providers:[{provide:e.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return t}),multi:!0}],changeDetection:i.ChangeDetectionStrategy.OnPush,styles:["tinymce .tinymce-selector { display: none; }"]}]}],t.ctorParameters=function(){return[{type:s},{type:a},{type:i.ChangeDetectorRef}]},t.propDecorators={config:[{type:i.Input}],placeholder:[{type:i.Input}],disabled:[{type:i.Input}],loading:[{type:i.Input}],delay:[{type:i.Input}],ready:[{type:i.Output}]},t}(),c=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[a,{provide:s,useValue:t}]}},e.decorators=[{type:i.NgModule,args:[{imports:[o.CommonModule],declarations:[r],exports:[r]}]}],e}();t.ɵa=a,t.TinymceComponent=r,t.TinymceOptions=s,t.NgxTinymceModule=c,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-tinymce.umd.min.js.map