',disabled:!0,charcount:0,activeState:function(){var a=this.$editor().displayElements.text,b=a[0].innerText||a[0].textContent,c=b.replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=c,this.$editor().charcount=c,!1}})}]),function(){"Use Strict";function a(a){try{return 0!==angular.element(a).length}catch(b){return!1}}function b(a,c){var d=[],e=a.children();return e.length&&angular.forEach(e,function(a){d=d.concat(b(angular.element(a),c))}),void 0!==a.attr(c)&&d.push(a),d}function c(b,c){if(!b||""===b||r.hasOwnProperty(b))throw"textAngular Error: A unique name is required for a Tool Definition";if(c.display&&(""===c.display||!a(c.display))||!c.display&&!c.buttontext&&!c.iconclass)throw'textAngular Error: Tool Definition for "'+b+'" does not have a valid display/iconclass/buttontext value';r[b]=c}if(!window.rangy)throw"rangy-core.js and rangy-selectionsaverestore.js are required for textAngular to work correctly, rangy-core is not yet loaded.";if(window.rangy.init(),!window.rangy.saveSelection)throw"rangy-selectionsaverestore.js are required for textAngular to work correctly.";var d=!1;/AppleWebKit\/([\d.]+)/.exec(navigator.userAgent)&&(document.addEventListener("click",function(a){var b=a||window.event,c=b.target;if(d&&null!==c){for(var e=!1,f=c;null!==f&&"html"!==f.tagName.toLowerCase()&&!e;)e="true"===f.contentEditable,f=f.parentNode;e||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),c.focus())}d=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element(''))}));var e=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/gi,f=/^(ul|li|ol)$/gi,g=function(){var a,b=-1,c=window.navigator.userAgent,d=c.indexOf("MSIE "),e=c.indexOf("Trident/");if(d>0)b=parseInt(c.substring(d+5,c.indexOf(".",d)),10);else if(e>0){var f=c.indexOf("rv:");b=parseInt(c.substring(f+3,c.indexOf(".",f)),10)}return b>-1?b:a}();String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var h,i,j,k,l;if(g>8||void 0===g){for(var m,n=document.styleSheets,o=0;o"),html:angular.element(""),text:angular.element(""),scrollWindow:angular.element(""),popover:angular.element(''),popoverArrow:angular.element(''),popoverContainer:angular.element(''),resize:{overlay:angular.element(''),background:angular.element(''),anchors:[angular.element(''),angular.element(''),angular.element(''),angular.element('')],info:angular.element('')}},l.displayElements.popover.append(l.displayElements.popoverArrow),l.displayElements.popover.append(l.displayElements.popoverContainer),l.displayElements.scrollWindow.append(l.displayElements.popover),l.displayElements.popover.on("mousedown",function(a,b){return b&&angular.extend(a,b),a.preventDefault(),!1}),l.showPopover=function(a){l.displayElements.popover.css("display","block"),l.reflowPopover(a),i.addClass(l.displayElements.popover,"in"),A(m,"click keyup",function(){l.hidePopover()})},l.reflowPopover=function(a){l.displayElements.text[0].offsetHeight-51>a[0].offsetTop?(l.displayElements.popover.css("top",a[0].offsetTop+a[0].offsetHeight+"px"),l.displayElements.popover.removeClass("top").addClass("bottom")):(l.displayElements.popover.css("top",a[0].offsetTop-54+"px"),l.displayElements.popover.removeClass("bottom").addClass("top"));var b=l.displayElements.text[0].offsetWidth-l.displayElements.popover[0].offsetWidth,c=a[0].offsetLeft+a[0].offsetWidth/2-l.displayElements.popover[0].offsetWidth/2;l.displayElements.popover.css("left",Math.max(0,Math.min(b,c))+"px"),l.displayElements.popoverArrow.css("margin-left",Math.min(c,Math.max(0,c-b))-11+"px")},l.hidePopover=function(){i.removeClass(l.displayElements.popover,"in",function(){l.displayElements.popover.css("display",""),l.displayElements.popoverContainer.attr("style",""),l.displayElements.popoverContainer.attr("class","popover-content")})},l.displayElements.resize.overlay.append(l.displayElements.resize.background),angular.forEach(l.displayElements.resize.anchors,function(a){l.displayElements.resize.overlay.append(a)}),l.displayElements.resize.overlay.append(l.displayElements.resize.info),l.displayElements.scrollWindow.append(l.displayElements.resize.overlay),l.reflowResizeOverlay=function(a){a=angular.element(a)[0],l.displayElements.resize.overlay.css({display:"block",left:a.offsetLeft-5+"px",top:a.offsetTop-5+"px",width:a.offsetWidth+10+"px",height:a.offsetHeight+10+"px"}),l.displayElements.resize.info.text(a.offsetWidth+" x "+a.offsetHeight)},l.showResizeOverlay=function(a){var b=function(b){var c={width:parseInt(a.attr("width")),height:parseInt(a.attr("height")),x:b.clientX,y:b.clientY};void 0===c.width&&(c.width=a[0].offsetWidth),void 0===c.height&&(c.height=a[0].offsetHeight),l.hidePopover();var d=c.height/c.width,e=function(b){var e={x:Math.max(0,c.width+(b.clientX-c.x)),y:Math.max(0,c.height+(b.clientY-c.y))},f=function(a,b){a=angular.element(a),"img"===a[0].tagName.toLowerCase()&&(b.height&&(a.attr("height",b.height),delete b.height),b.width&&(a.attr("width",b.width),delete b.width)),a.css(b)};if(b.shiftKey){var g=e.y/e.x;f(a,{width:d>g?e.x:e.y/d,height:d>g?e.x*d:e.y})}else f(a,{width:e.x,height:e.y});l.reflowResizeOverlay(a)};h.find("body").on("mousemove",e),A(l.displayElements.resize.overlay,"mouseup",function(){h.find("body").off("mousemove",e),l.showPopover(a)}),b.stopPropagation(),b.preventDefault()};l.displayElements.resize.anchors[3].on("mousedown",b),l.reflowResizeOverlay(a),A(m,"click",function(){l.hideResizeOverlay()})},l.hideResizeOverlay=function(){l.displayElements.resize.overlay.css("display","")},l.setup.htmlEditorSetup(l.displayElements.html),l.setup.textEditorSetup(l.displayElements.text),l.displayElements.html.attr({id:"taHtmlElement"+y,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html"}),l.displayElements.text.attr({id:"taTextElement"+y,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html"}),l.displayElements.scrollWindow.attr({"ng-hide":"showHtml"}),n.taDefaultWrap&&l.displayElements.text.attr("ta-default-wrap",n.taDefaultWrap),n.taUnsafeSanitizer&&(l.displayElements.text.attr("ta-unsafe-sanitizer",n.taUnsafeSanitizer),l.displayElements.html.attr("ta-unsafe-sanitizer",n.taUnsafeSanitizer)),l.displayElements.scrollWindow.append(l.displayElements.text),m.append(l.displayElements.scrollWindow),m.append(l.displayElements.html),l.displayElements.forminput.attr("name",z),m.append(l.displayElements.forminput),n.tabindex&&(m.removeAttr("tabindex"),l.displayElements.text.attr("tabindex",n.tabindex),l.displayElements.html.attr("tabindex",n.tabindex)),n.placeholder&&(l.displayElements.text.attr("placeholder",n.placeholder),l.displayElements.html.attr("placeholder",n.placeholder)),n.taDisabled&&(l.displayElements.text.attr("ta-readonly","disabled"),l.displayElements.html.attr("ta-readonly","disabled"),l.disabled=l.$parent.$eval(n.taDisabled),l.$parent.$watch(n.taDisabled,function(a){l.disabled=a,l.disabled?m.addClass(l.classes.disabled):m.removeClass(l.classes.disabled)})),a(l.displayElements.scrollWindow)(l),a(l.displayElements.html)(l),l.updateTaBindtaTextElement=l["updateTaBindtaTextElement"+y],l.updateTaBindtaHtmlElement=l["updateTaBindtaHtmlElement"+y],m.addClass("ta-root"),l.displayElements.scrollWindow.addClass("ta-text ta-editor "+l.classes.textEditor),l.displayElements.html.addClass("ta-html ta-editor "+l.classes.htmlEditor),l._actionRunning=!1;var B=!1;if(l.startAction=function(){return l._actionRunning=!0,B=g.rangy.saveSelection(),function(){B&&g.rangy.restoreSelection(B)}},l.endAction=function(){l._actionRunning=!1,B&&g.rangy.removeMarkers(B),B=!1,l.updateSelectedStyles(),l.showHtml||l["updateTaBindtaTextElement"+y]()},t=function(){m.addClass(l.classes.focussed),w.focus()},l.displayElements.html.on("focus",t),l.displayElements.text.on("focus",t),u=function(a){return l._actionRunning||h[0].activeElement===l.displayElements.html[0]||h[0].activeElement===l.displayElements.text[0]||(m.removeClass(l.classes.focussed),w.unfocus(),b(function(){m.triggerHandler("blur")},0)),a.preventDefault(),!1},l.displayElements.html.on("blur",u),l.displayElements.text.on("blur",u),l.queryFormatBlockState=function(a){return!l.showHtml&&a.toLowerCase()===h[0].queryCommandValue("formatBlock").toLowerCase()},l.queryCommandState=function(a){return l.showHtml?"":h[0].queryCommandState(a)},l.switchView=function(){l.showHtml=!l.showHtml,i.enabled(!1,l.displayElements.html),i.enabled(!1,l.displayElements.text),l.showHtml?b(function(){return i.enabled(!0,l.displayElements.html),i.enabled(!0,l.displayElements.text),l.displayElements.html[0].focus()},100):b(function(){return i.enabled(!0,l.displayElements.html),i.enabled(!0,l.displayElements.text),l.displayElements.text[0].focus()},100)},n.ngModel){var C=!0;o.$render=function(){if(C){C=!1;var a=l.$parent.$eval(n.ngModel);void 0!==a&&null!==a||!v||""===v||o.$setViewValue(v)}l.displayElements.forminput.val(o.$viewValue),l._elementSelectTriggered||h[0].activeElement===l.displayElements.html[0]||h[0].activeElement===l.displayElements.text[0]||(l.html=o.$viewValue||"")};var D=function(a){return n.required&&o.$setValidity("required",!(!a||""===a.trim())),a};o.$parsers.push(D),o.$formatters.push(D)}else l.displayElements.forminput.val(v),l.html=v;if(l.$watch("html",function(a,b){a!==b&&(n.ngModel&&o.$viewValue!==a&&o.$setViewValue(a),l.displayElements.forminput.val(a))}),n.taTargetToolbars)w=f.registerEditor(z,l,n.taTargetToolbars.split(","));else{var E=angular.element('
"),h.element.append(h.lastLi),h.lastLi.html(j.html().replace(/[\s\S]*?/gi,"")),j.remove()}}text=g.html()}text=a(text),k.insertHtml(text),b(function(){r.$setViewValue(B())},0)}};if(o.on("paste",function(a,b){b&&angular.extend(a,b);var d=c.rangy.saveSelection();if(x)return a.stopPropagation(),a.preventDefault(),!1;var e=o[0].innerHTML,f=(a.originalEvent||a).clipboardData;return f&&f.getData?(o[0].innerHTML=/text\/html/.test(f.types)?f.getData("text/html"):/text\/plain/.test(f.types)?f.getData("text/plain"):"",D(e,d,E),a.stopPropagation(),a.preventDefault(),!1):(o[0].innerHTML="",D(e,d,E),!0)}),o.on("cut",function(a){x?a.preventDefault():b(function(){r.$setViewValue(B())},0)}),o.on("keyup",function(a,b){if(b&&angular.extend(a,b),!x&&!A.test(a.keyCode)){if(""!==s&&13===a.keyCode&&!a.shiftKey){for(var c=k.getSelectionElement(),d=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/gi;!c.tagName.match(d)&&c!==o[0];)c=c.parentNode;if(c.tagName.toLowerCase()!==q.taDefaultWrap&&"li"!==c.tagName.toLowerCase()&&(""===c.innerHTML.trim()||" "===c.innerHTML.trim())){var e=angular.element(s);angular.element(c).replaceWith(e),k.setSelectionToElementStart(e[0])}}var f=B();""!==s&&""===f.trim()&&(o[0].innerHTML=s,k.setSelectionToElementStart(o.children()[0])),C(f)}}),o.on("blur",function(){y=!1,x||C(),r.$render()}),q.placeholder&&(g>8||void 0===g)){var F;if(!q.id)throw"textAngular Error: An unique ID is required for placeholders to work";F=i("#"+q.id+".placeholder-text:before",'content: "'+q.placeholder+'"'),h.$on("$destroy",function(){j(F)})}o.on("focus",function(){y=!0,r.$render()}),o.on("mousedown",function(a,b){b&&angular.extend(a,b),a.stopPropagation()})}else o.on("change blur",function(){x||r.$setViewValue(B())});var G=function(b){return r.$oldViewValue=a(f(b),r.$oldViewValue,z)},H=function(a){return q.required&&r.$setValidity("required",!(!a||a.trim()===t||a.trim().match(u)||""===a.trim())),a};r.$parsers.push(G),r.$parsers.push(H),r.$formatters.push(G),r.$formatters.push(H);var I=function(a){return h.$emit("ta-element-select",this),a.preventDefault(),!1},J=function(a,c){if(c&&angular.extend(a,c),!p&&!x){p=!0;var d;d=a.originalEvent?a.originalEvent.dataTransfer:a.dataTransfer,h.$emit("ta-drop-event",this,a,d),b(function(){p=!1},100)}},K=h["reApplyOnSelectorHandlers"+(q.id||"")]=function(){x||angular.forEach(l,function(a){o.find(a).off("click",I).on("click",I)})},L=function(a){o[0].innerHTML=a};r.$render=function(){var a=r.$viewValue||"";e[0].activeElement!==o[0]?v?(q.placeholder?""===a?(y?o.removeClass("placeholder-text"):o.addClass("placeholder-text"),L(s)):(o.removeClass("placeholder-text"),L(a)):L(""===a?s:a),x?o.off("drop",J):(K(),o.on("drop",J))):"textarea"!==o[0].tagName.toLowerCase()&&"input"!==o[0].tagName.toLowerCase()?L(m(a)):o.val(a):v&&o.removeClass("placeholder-text")},q.taReadonly&&(x=h.$eval(q.taReadonly),x?(o.addClass("ta-readonly"),("textarea"===o[0].tagName.toLowerCase()||"input"===o[0].tagName.toLowerCase())&&o.attr("disabled","disabled"),void 0!==o.attr("contenteditable")&&o.attr("contenteditable")&&o.removeAttr("contenteditable")):(o.removeClass("ta-readonly"),"textarea"===o[0].tagName.toLowerCase()||"input"===o[0].tagName.toLowerCase()?o.removeAttr("disabled"):v&&o.attr("contenteditable","true")),h.$watch(q.taReadonly,function(a,b){b!==a&&(a?(o.addClass("ta-readonly"),("textarea"===o[0].tagName.toLowerCase()||"input"===o[0].tagName.toLowerCase())&&o.attr("disabled","disabled"),void 0!==o.attr("contenteditable")&&o.attr("contenteditable")&&o.removeAttr("contenteditable"),angular.forEach(l,function(a){o.find(a).on("click",I)}),o.off("drop",J)):(o.removeClass("ta-readonly"),"textarea"===o[0].tagName.toLowerCase()||"input"===o[0].tagName.toLowerCase()?o.removeAttr("disabled"):v&&o.attr("contenteditable","true"),angular.forEach(l,function(a){o.find(a).off("click",I)}),o.on("drop",J)),x=a)})),v&&!x&&(angular.forEach(l,function(a){o.find(a).on("click",I)}),o.on("drop",J),o.on("blur",function(){/AppleWebKit\/([\d.]+)/.exec(navigator.userAgent)&&(d=!0)}))}}}]).factory("taApplyCustomRenderers",["taCustomRenderers",function(a){return function(c){var d=angular.element("");return d[0].innerHTML=c,angular.forEach(a,function(a){var c=[];a.selector&&""!==a.selector?c=d.find(a.selector):a.customAttribute&&""!==a.customAttribute&&(c=b(d,a.customAttribute)),angular.forEach(c,function(b){b=angular.element(b),a.selector&&""!==a.selector&&a.customAttribute&&""!==a.customAttribute?void 0!==b.attr(a.customAttribute)&&a.renderLogic(b):a.renderLogic(b)})}),d[0].innerHTML}}]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a){var b=angular.element("");b.html(a);var c=b.text().length;return f>=c?(d.$setValidity("taMaxText",!0),a):void d.$setValidity("taMaxText",!1)}var f=parseInt(a.$eval(c.taMaxText));if(isNaN(f))throw"Max text must be an integer";c.$observe("taMaxText",function(a){if(f=parseInt(a),isNaN(f))throw"Max text must be an integer";d.$dirty&&d.$setViewValue(d.$viewValue)}),d.$parsers.unshift(e)}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a){var b=angular.element("");b.html(a);var c=b.text().length;return!c||c>=f?(d.$setValidity("taMinText",!0),a):void d.$setValidity("taMinText",!1)}var f=parseInt(a.$eval(c.taMinText));if(isNaN(f))throw"Min text must be an integer";c.$observe("taMinText",function(a){if(f=parseInt(a),isNaN(f))throw"Min text must be an integer";d.$dirty&&d.$setViewValue(d.$viewValue)}),d.$parsers.unshift(e)}}}).factory("taFixChrome",function(){var a=function(a){for(var b=angular.element("
',disabled:!0,charcount:0,activeState:function(){var a=this.$editor().displayElements.text,b=a[0].innerText||a[0].textContent,c=b.replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=c,this.$editor().charcount=c,!1}})}]),function(){"Use Strict";function a(a){try{return 0!==angular.element(a).length}catch(b){return!1}}function b(a,c){var d=[],e=a.children();return e.length&&angular.forEach(e,function(a){d=d.concat(b(angular.element(a),c))}),void 0!==a.attr(c)&&d.push(a),d}function c(b,c){if(!b||""===b||t.hasOwnProperty(b))throw"textAngular Error: A unique name is required for a Tool Definition";if(c.display&&(""===c.display||!a(c.display))||!c.display&&!c.buttontext&&!c.iconclass)throw'textAngular Error: Tool Definition for "'+b+'" does not have a valid display/iconclass/buttontext value';t[b]=c}if(!window.rangy)throw"rangy-core.js and rangy-selectionsaverestore.js are required for textAngular to work correctly, rangy-core is not yet loaded.";if(window.rangy.init(),!window.rangy.saveSelection)throw"rangy-selectionsaverestore.js are required for textAngular to work correctly.";var d=function(){var a,b=-1,c=window.navigator.userAgent,d=c.indexOf("MSIE "),e=c.indexOf("Trident/");if(d>0)b=parseInt(c.substring(d+5,c.indexOf(".",d)),10);else if(e>0){var f=c.indexOf("rv:");b=parseInt(c.substring(f+3,c.indexOf(".",f)),10)}return b>-1?b:a}(),e=/AppleWebKit\/([\d.]+)/.test(navigator.userAgent),f=!1;e&&(document.addEventListener("click",function(a){var b=a||window.event,c=b.target;if(f&&null!==c){for(var d=!1,e=c;null!==e&&"html"!==e.tagName.toLowerCase()&&!d;)d="true"===e.contentEditable,e=e.parentNode;d||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),c.focus())}f=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element(''))}));var g=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/gi,h=/^(ul|li|ol)$/gi,i=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/gi;String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var j,k,l,m,n;if(d>8||void 0===d){for(var o,p=document.styleSheets,q=0;q"),html:angular.element(""),text:angular.element(""),scrollWindow:angular.element(""),popover:angular.element(''),popoverArrow:angular.element(''),popoverContainer:angular.element(''),resize:{overlay:angular.element(''),background:angular.element(''),anchors:[angular.element(''),angular.element(''),angular.element(''),angular.element('')],info:angular.element('')}},l.displayElements.popover.append(l.displayElements.popoverArrow),l.displayElements.popover.append(l.displayElements.popoverContainer),l.displayElements.scrollWindow.append(l.displayElements.popover),l.displayElements.popover.on("mousedown",function(a,b){return b&&angular.extend(a,b),a.preventDefault(),!1}),l.showPopover=function(a){l.displayElements.popover.css("display","block"),l.reflowPopover(a),i.addClass(l.displayElements.popover,"in"),A(m,"click keyup",function(){l.hidePopover()})},l.reflowPopover=function(a){l.displayElements.text[0].offsetHeight-51>a[0].offsetTop?(l.displayElements.popover.css("top",a[0].offsetTop+a[0].offsetHeight+"px"),l.displayElements.popover.removeClass("top").addClass("bottom")):(l.displayElements.popover.css("top",a[0].offsetTop-54+"px"),l.displayElements.popover.removeClass("bottom").addClass("top"));var b=l.displayElements.text[0].offsetWidth-l.displayElements.popover[0].offsetWidth,c=a[0].offsetLeft+a[0].offsetWidth/2-l.displayElements.popover[0].offsetWidth/2;l.displayElements.popover.css("left",Math.max(0,Math.min(b,c))+"px"),l.displayElements.popoverArrow.css("margin-left",Math.min(c,Math.max(0,c-b))-11+"px")},l.hidePopover=function(){i.removeClass(l.displayElements.popover,"in",function(){l.displayElements.popover.css("display",""),l.displayElements.popoverContainer.attr("style",""),l.displayElements.popoverContainer.attr("class","popover-content")})},l.displayElements.resize.overlay.append(l.displayElements.resize.background),angular.forEach(l.displayElements.resize.anchors,function(a){l.displayElements.resize.overlay.append(a)}),l.displayElements.resize.overlay.append(l.displayElements.resize.info),l.displayElements.scrollWindow.append(l.displayElements.resize.overlay),l.reflowResizeOverlay=function(a){a=angular.element(a)[0],l.displayElements.resize.overlay.css({display:"block",left:a.offsetLeft-5+"px",top:a.offsetTop-5+"px",width:a.offsetWidth+10+"px",height:a.offsetHeight+10+"px"}),l.displayElements.resize.info.text(a.offsetWidth+" x "+a.offsetHeight)},l.showResizeOverlay=function(a){var b=function(b){var c={width:parseInt(a.attr("width")),height:parseInt(a.attr("height")),x:b.clientX,y:b.clientY};void 0===c.width&&(c.width=a[0].offsetWidth),void 0===c.height&&(c.height=a[0].offsetHeight),l.hidePopover();var d=c.height/c.width,e=function(b){var e={x:Math.max(0,c.width+(b.clientX-c.x)),y:Math.max(0,c.height+(b.clientY-c.y))},f=function(a,b){a=angular.element(a),"img"===a[0].tagName.toLowerCase()&&(b.height&&(a.attr("height",b.height),delete b.height),b.width&&(a.attr("width",b.width),delete b.width)),a.css(b)};if(b.shiftKey){var g=e.y/e.x;f(a,{width:d>g?e.x:e.y/d,height:d>g?e.x*d:e.y})}else f(a,{width:e.x,height:e.y});l.reflowResizeOverlay(a)};h.find("body").on("mousemove",e),A(l.displayElements.resize.overlay,"mouseup",function(){h.find("body").off("mousemove",e),l.showPopover(a)}),b.stopPropagation(),b.preventDefault()};l.displayElements.resize.anchors[3].on("mousedown",b),l.reflowResizeOverlay(a),A(m,"click",function(){l.hideResizeOverlay()})},l.hideResizeOverlay=function(){l.displayElements.resize.overlay.css("display","")},l.setup.htmlEditorSetup(l.displayElements.html),l.setup.textEditorSetup(l.displayElements.text),l.displayElements.html.attr({id:"taHtmlElement"+y,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html"}),l.displayElements.text.attr({id:"taTextElement"+y,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html"}),l.displayElements.scrollWindow.attr({"ng-hide":"showHtml"}),n.taDefaultWrap&&l.displayElements.text.attr("ta-default-wrap",n.taDefaultWrap),n.taUnsafeSanitizer&&(l.displayElements.text.attr("ta-unsafe-sanitizer",n.taUnsafeSanitizer),l.displayElements.html.attr("ta-unsafe-sanitizer",n.taUnsafeSanitizer)),l.displayElements.scrollWindow.append(l.displayElements.text),m.append(l.displayElements.scrollWindow),m.append(l.displayElements.html),l.displayElements.forminput.attr("name",z),m.append(l.displayElements.forminput),n.tabindex&&(m.removeAttr("tabindex"),l.displayElements.text.attr("tabindex",n.tabindex),l.displayElements.html.attr("tabindex",n.tabindex)),n.placeholder&&(l.displayElements.text.attr("placeholder",n.placeholder),l.displayElements.html.attr("placeholder",n.placeholder)),n.taDisabled&&(l.displayElements.text.attr("ta-readonly","disabled"),l.displayElements.html.attr("ta-readonly","disabled"),l.disabled=l.$parent.$eval(n.taDisabled),l.$parent.$watch(n.taDisabled,function(a){l.disabled=a,l.disabled?m.addClass(l.classes.disabled):m.removeClass(l.classes.disabled)})),a(l.displayElements.scrollWindow)(l),a(l.displayElements.html)(l),l.updateTaBindtaTextElement=l["updateTaBindtaTextElement"+y],l.updateTaBindtaHtmlElement=l["updateTaBindtaHtmlElement"+y],m.addClass("ta-root"),l.displayElements.scrollWindow.addClass("ta-text ta-editor "+l.classes.textEditor),l.displayElements.html.addClass("ta-html ta-editor "+l.classes.htmlEditor),l._actionRunning=!1;var B=!1;if(l.startAction=function(){return l._actionRunning=!0,B=g.rangy.saveSelection(),function(){B&&g.rangy.restoreSelection(B)}},l.endAction=function(){l._actionRunning=!1,B&&g.rangy.removeMarkers(B),B=!1,l.updateSelectedStyles(),l.showHtml||l["updateTaBindtaTextElement"+y]()},t=function(){m.addClass(l.classes.focussed),w.focus()},l.displayElements.html.on("focus",t),l.displayElements.text.on("focus",t),u=function(a){return l._actionRunning||h[0].activeElement===l.displayElements.html[0]||h[0].activeElement===l.displayElements.text[0]||(m.removeClass(l.classes.focussed),w.unfocus(),b(function(){m.triggerHandler("blur")},0)),a.preventDefault(),!1},l.displayElements.html.on("blur",u),l.displayElements.text.on("blur",u),l.queryFormatBlockState=function(a){return!l.showHtml&&a.toLowerCase()===h[0].queryCommandValue("formatBlock").toLowerCase()},l.queryCommandState=function(a){return l.showHtml?"":h[0].queryCommandState(a)},l.switchView=function(){l.showHtml=!l.showHtml,i.enabled(!1,l.displayElements.html),i.enabled(!1,l.displayElements.text),l.showHtml?b(function(){return i.enabled(!0,l.displayElements.html),i.enabled(!0,l.displayElements.text),l.displayElements.html[0].focus()},100):b(function(){return i.enabled(!0,l.displayElements.html),i.enabled(!0,l.displayElements.text),l.displayElements.text[0].focus()},100)},n.ngModel){var C=!0;o.$render=function(){if(C){C=!1;var a=l.$parent.$eval(n.ngModel);void 0!==a&&null!==a||!v||""===v||o.$setViewValue(v)}l.displayElements.forminput.val(o.$viewValue),l._elementSelectTriggered||h[0].activeElement===l.displayElements.html[0]||h[0].activeElement===l.displayElements.text[0]||(l.html=o.$viewValue||"")};var D=function(a){return n.required&&o.$setValidity("required",!(!a||""===a.trim())),a};o.$parsers.push(D),o.$formatters.push(D)}else l.displayElements.forminput.val(v),l.html=v;if(l.$watch("html",function(a,b){a!==b&&(n.ngModel&&o.$viewValue!==a&&o.$setViewValue(a),l.displayElements.forminput.val(a))}),n.taTargetToolbars)w=f.registerEditor(z,l,n.taTargetToolbars.split(","));else{var E=angular.element('
"),h.element.append(h.lastLi),h.lastLi.html(k.html().replace(/[\s\S]*?/gi,"")),k.remove()}}text=g.html()}text=a(text),j.insertHtml(text),b(function(){s.$setViewValue(H())},0)}};if(p.on("paste",function(a,b){b&&angular.extend(a,b);var d=c.rangy.saveSelection();if(z)return a.stopPropagation(),a.preventDefault(),!1;var e=p[0].innerHTML,f=(a.originalEvent||a).clipboardData;return f&&f.getData?(p[0].innerHTML=/text\/html/.test(f.types)?f.getData("text/html"):/text\/plain/.test(f.types)?f.getData("text/plain"):"",J(e,d,K),a.stopPropagation(),a.preventDefault(),!1):(p[0].innerHTML="",J(e,d,K),!0)}),p.on("cut",function(a){z?a.preventDefault():b(function(){s.$setViewValue(H())},0)}),p.on("keydown",function(a,b){b&&angular.extend(a,b),z||(a.metaKey||a.ctrlKey)&&(90!==a.keyCode||a.shiftKey?(90===a.keyCode&&a.shiftKey||89===a.keyCode&&!a.shiftKey)&&(G(),a.preventDefault()):(F(),a.preventDefault()))}),p.on("keyup",function(a,c){if(c&&angular.extend(a,c),E&&b.cancel(E),!z&&!C.test(a.keyCode)){if(""!==u&&13===a.keyCode&&!a.shiftKey){for(var d=j.getSelectionElement();!d.tagName.match(i)&&d!==p[0];)d=d.parentNode;if(d.tagName.toLowerCase()!==q.taDefaultWrap&&"li"!==d.tagName.toLowerCase()&&(""===d.innerHTML.trim()||" "===d.innerHTML.trim())){var e=angular.element(u);angular.element(d).replaceWith(e),j.setSelectionToElementStart(e[0])}}var f=H();""!==u&&""===f.trim()&&(p[0].innerHTML=u,j.setSelectionToElementStart(p.children()[0]));var g=t!==a.keyCode&&D.test(a.keyCode);I(f,g),g||(E=b(function(){s.$undoManager.push(f)},250)),t=a.keyCode}}),p.on("blur",function(){A=!1,z||I(),s.$render()}),q.placeholder&&(d>8||void 0===d)){var L;if(!q.id)throw"textAngular Error: An unique ID is required for placeholders to work";L=k("#"+q.id+".placeholder-text:before",'content: "'+q.placeholder+'"'),h.$on("$destroy",function(){l(L)})}p.on("focus",function(){A=!0,s.$render()}),p.on("mousedown",function(a,b){b&&angular.extend(a,b),a.stopPropagation()})}else p.on("change blur",function(){z||s.$setViewValue(H())});var M=function(b){return s.$oldViewValue=a(g(b),s.$oldViewValue,B)},N=function(a){return q.required&&s.$setValidity("required",!(!a||a.trim()===v||a.trim().match(w)||""===a.trim())),a};s.$parsers.push(M),s.$parsers.push(N),s.$formatters.push(M),s.$formatters.push(N),s.$formatters.push(function(a){return s.$undoManager.push(a||"")});var O=function(a){return h.$emit("ta-element-select",this),a.preventDefault(),!1},P=function(a,c){if(c&&angular.extend(a,c),!r&&!z){r=!0;var d;d=a.originalEvent?a.originalEvent.dataTransfer:a.dataTransfer,h.$emit("ta-drop-event",this,a,d),b(function(){r=!1,I(),Q()},100)}},Q=h["reApplyOnSelectorHandlers"+(q.id||"")]=function(){z||angular.forEach(m,function(a){p.find(a).off("click",O).on("click",O)})},R=function(a){p[0].innerHTML=a};s.$render=function(){var a=s.$viewValue||"";e[0].activeElement!==p[0]?x?(q.placeholder?""===a?(A?p.removeClass("placeholder-text"):p.addClass("placeholder-text"),R(u)):(p.removeClass("placeholder-text"),R(a)):R(""===a?u:a),z?p.off("drop",P):(Q(),p.on("drop",P))):"textarea"!==p[0].tagName.toLowerCase()&&"input"!==p[0].tagName.toLowerCase()?R(n(a)):p.val(a):x&&p.removeClass("placeholder-text")},q.taReadonly&&(z=h.$eval(q.taReadonly),z?(p.addClass("ta-readonly"),("textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase())&&p.attr("disabled","disabled"),void 0!==p.attr("contenteditable")&&p.attr("contenteditable")&&p.removeAttr("contenteditable")):(p.removeClass("ta-readonly"),"textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase()?p.removeAttr("disabled"):x&&p.attr("contenteditable","true")),h.$watch(q.taReadonly,function(a,b){b!==a&&(a?(p.addClass("ta-readonly"),("textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase())&&p.attr("disabled","disabled"),void 0!==p.attr("contenteditable")&&p.attr("contenteditable")&&p.removeAttr("contenteditable"),angular.forEach(m,function(a){p.find(a).on("click",O)}),p.off("drop",P)):(p.removeClass("ta-readonly"),"textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase()?p.removeAttr("disabled"):x&&p.attr("contenteditable","true"),angular.forEach(m,function(a){p.find(a).off("click",O)}),p.on("drop",P)),z=a)})),x&&!z&&(angular.forEach(m,function(a){p.find(a).on("click",O)}),p.on("drop",P),p.on("blur",function(){/AppleWebKit\/([\d.]+)/.exec(navigator.userAgent)&&(f=!0)}))}}}]).factory("taApplyCustomRenderers",["taCustomRenderers",function(a){return function(c){var d=angular.element("");return d[0].innerHTML=c,angular.forEach(a,function(a){var c=[];a.selector&&""!==a.selector?c=d.find(a.selector):a.customAttribute&&""!==a.customAttribute&&(c=b(d,a.customAttribute)),angular.forEach(c,function(b){b=angular.element(b),a.selector&&""!==a.selector&&a.customAttribute&&""!==a.customAttribute?void 0!==b.attr(a.customAttribute)&&a.renderLogic(b):a.renderLogic(b)})}),d[0].innerHTML}}]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a){var b=angular.element("");b.html(a);var c=b.text().length;return f>=c?(d.$setValidity("taMaxText",!0),a):void d.$setValidity("taMaxText",!1)}var f=parseInt(a.$eval(c.taMaxText));if(isNaN(f))throw"Max text must be an integer";c.$observe("taMaxText",function(a){if(f=parseInt(a),isNaN(f))throw"Max text must be an integer";d.$dirty&&d.$setViewValue(d.$viewValue)}),d.$parsers.unshift(e)}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a){var b=angular.element("");b.html(a);var c=b.text().length;return!c||c>=f?(d.$setValidity("taMinText",!0),a):void d.$setValidity("taMinText",!1)}var f=parseInt(a.$eval(c.taMinText));if(isNaN(f))throw"Min text must be an integer";c.$observe("taMinText",function(a){if(f=parseInt(a),isNaN(f))throw"Min text must be an integer";d.$dirty&&d.$setViewValue(d.$viewValue)}),d.$parsers.unshift(e)}}}).factory("taFixChrome",function(){var a=function(a){for(var b=angular.element("