Newer
Older
ubFramework / Portal / docroot / js / plugins / ui-codemirror / ui-codemirror.min.js
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 1 KB Cleaning Up Making It A Sub Module
/**
 * angular-ui-codemirror - This directive allows you to add CodeMirror to your textarea elements.
 * @version v0.1.6 - 2014-07-11
 * @link http://angular-ui.github.com
 * @license MIT
 */
"use strict";angular.module("ui.codemirror",[]).constant("uiCodemirrorConfig",{}).directive("uiCodemirror",["uiCodemirrorConfig",function(a){return{restrict:"EA",require:"?ngModel",priority:1,compile:function(){if(angular.isUndefined(window.CodeMirror))throw new Error("ui-codemirror need CodeMirror to work... (o rly?)");return function(b,c,d,e){var f,g,h,i;if(i=c.text(),f=a.codemirror||{},g=angular.extend({value:i},f,b.$eval(d.uiCodemirror),b.$eval(d.uiCodemirrorOpts)),"TEXTAREA"===c[0].tagName?h=window.CodeMirror.fromTextArea(c[0],g):(c.html(""),h=new window.CodeMirror(function(a){c.append(a)},g)),d.uiCodemirror||d.uiCodemirrorOpts){var j=Object.keys(window.CodeMirror.defaults);b.$watch(d.uiCodemirror||d.uiCodemirrorOpts,function(a,b){angular.isObject(a)&&j.forEach(function(c){if(a.hasOwnProperty(c)){if(b&&a[c]===b[c])return;h.setOption(c,a[c])}})},!0)}e&&(e.$formatters.push(function(a){if(angular.isUndefined(a)||null===a)return"";if(angular.isObject(a)||angular.isArray(a))throw new Error("ui-codemirror cannot use an object or an array as a model");return a}),e.$render=function(){var a=e.$viewValue||"";h.setValue(a)},h.on("change",function(a){var c=a.getValue();c!==e.$viewValue&&b.$apply(function(){e.$setViewValue(c)})})),d.uiRefresh&&b.$watch(d.uiRefresh,function(a,b){a!==b&&h.refresh()}),b.$on("CodeMirror",function(a,b){if(!angular.isFunction(b))throw new Error("the CodeMirror event requires a callback function");b(h)}),angular.isFunction(g.onLoad)&&g.onLoad(h)}}}}]);