forked from angular-tools/ng-jsoneditor
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathng-jsoneditor.min.js
More file actions
1 lines (1 loc) · 2.21 KB
/
ng-jsoneditor.min.js
File metadata and controls
1 lines (1 loc) · 2.21 KB
1
(function(){var module=angular.module("ng.jsoneditor",[]);module.constant("ngJsoneditorConfig",{}),module.directive("ngJsoneditor",["ngJsoneditorConfig","$timeout",function(ngJsoneditorConfig,$timeout){var defaults=ngJsoneditorConfig||{};return{restrict:"A",require:"ngModel",scope:{options:"=",ngJsoneditor:"=",preferText:"="},link:function($scope,element,attrs,ngModel){function _createEditor(options){var settings=angular.extend({},defaults,options),theOptions=angular.extend({},settings,{change:function(){debounceTo!==void 0&&$timeout.cancel(debounceTo),debounceTo=$timeout(function(){if(editor){internalTrigger=!0;var error=void 0;try{ngModel.$setViewValue($scope.preferText===!0?editor.getText():editor.get())}catch(err){error=err}settings&&settings.hasOwnProperty("change")&&settings.change(error)}},settings.timeout||100)}});element.html("");var instance=new JSONEditor(element[0],theOptions);return $scope.ngJsoneditor instanceof Function&&$timeout(function(){$scope.ngJsoneditor(instance)}),instance}var debounceTo,debounceFrom,editor,internalTrigger=!1;if(!angular.isDefined(window.JSONEditor))throw Error("Please add the jsoneditor.js script first!");$scope.$watch("options",function(newValue,oldValue){if(editor){for(var k in newValue)if(newValue.hasOwnProperty(k)){var v=newValue[k];if(!oldValue||newValue[k]!==oldValue[k])if("mode"===k)editor.setMode(v);else if("name"===k)editor.setName(v);else{if("expanded"!==k)return editor=_createEditor(newValue),$scope.updateJsonEditor(),void 0;newValue[k]?editor.expandAll&&editor.expandAll():editor.collapseAll&&editor.collapseAll()}}}else editor=_createEditor($scope.options),$scope.options?editor.expandAll&&editor.expandAll():editor.collapseAll&&editor.collapseAll()},!0),$scope.$on("$destroy",function(){}),$scope.updateJsonEditor=function(){return internalTrigger?(internalTrigger=!1,void 0):(debounceFrom!==void 0&&$timeout.cancel(debounceFrom),debounceFrom=$timeout(function(){$scope.preferText!==!0||angular.isObject(ngModel.$viewValue)?editor.set(ngModel.$viewValue||{}):editor.setText(ngModel.$viewValue||"{}")},$scope.options&&$scope.options.timeout||100),void 0)},ngModel.$render=$scope.updateJsonEditor,$scope.$watch(function(){return ngModel.$modelValue},$scope.updateJsonEditor,!0)}}}])})();