angular.module("ui.tinymce",[]).value("uiTinymceConfig",{}).directive("uiTinymce",["$rootScope","$compile","$timeout","$window","$sce","uiTinymceConfig","uiTinymceService",function(g,y,b,p,h,U,T){return(U=U||{}).baseUrl&&(tinymce.baseURL=U.baseUrl),{require:["ngModel","^?form"],priority:599,link:function(o,u,c,e){if(p.tinymce){var t,n,i=e[0],r=e[1]||null,a={debounce:!0},s=function(e){var t=e.getContent({format:a.format}).trim();t=h.trustAsHtml(t),i.$setViewValue(t),g.$$phase||o.$digest()},d=T.getUniqueId();c.$set("id",d),t={},angular.extend(t,o.$eval(c.uiTinymce));var m,f=function(t){b.cancel(m),m=b(function(){var e;(e=t).isDirty()&&(e.save(),s(e))},400)},l={setup:function(e){e.on("init",function(){i.$render(),i.$setPristine(),i.$setUntouched(),r&&r.$setPristine()}),e.on("ExecCommand change NodeChange ObjectResized",function(){if(!a.debounce)return e.save(),void s(e);f(e)}),e.on("blur",function(){u[0].blur(),i.$setTouched(),g.$$phase||o.$digest()}),e.on("remove",function(){u.remove()}),U.setup&&U.setup(e,{updateView:s}),t.setup&&t.setup(e,{updateView:s})},format:t.format||"html",selector:"#"+c.id};angular.extend(a,U,t,l),b(function(){a.baseURL&&(tinymce.baseURL=a.baseURL);var e=tinymce.init(a);e&&"function"==typeof e.then?e.then(function(){$(o.$eval(c.ngDisabled))}):$(o.$eval(c.ngDisabled))}),i.$formatters.unshift(function(e){return e?h.trustAsHtml(e):""}),i.$parsers.unshift(function(e){return e?h.getTrustedHtml(e):""}),i.$render=function(){v();var e=i.$viewValue?h.getTrustedHtml(i.$viewValue):"";n&&n.getDoc()&&(n.setContent(e),n.fire("change"))},c.$observe("disabled",$),o.$on("$tinymce:refresh",function(e,t){var n=c.id;if(angular.isUndefined(t)||t===n){var i=u.parent(),r=u.clone();r.removeAttr("id"),r.removeAttr("style"),r.removeAttr("aria-hidden"),tinymce.execCommand("mceRemoveEditor",!1,n),i.append(y(r)(o))}}),o.$on("$destroy",function(){v(),n&&(n.remove(),n=null)})}function $(e){e?(v(),n&&n.getBody().setAttribute("contenteditable",!1)):(v(),n&&!n.settings.readonly&&n.getDoc()&&n.getBody().setAttribute("contenteditable",!0))}function v(){n||(n=tinymce.get(c.id))}}}}]).service("uiTinymceService",[function(){return new function(){var e=0;return{getUniqueId:function(){return"ui-tinymce-"+ ++e}}}}]);