UNPKG

@inceptiongt/json-schema-editor-visual-new

Version:
1 lines 110 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("prop-types"),require("underscore"),require("antd"),require("react-redux"),require("react-dom"),require("brace"),require("moox")):"function"==typeof define&&define.amd?define(["react","prop-types","underscore","antd","react-redux","react-dom","brace","moox"],t):"object"==typeof exports?exports.schema=t(require("react"),require("prop-types"),require("underscore"),require("antd"),require("react-redux"),require("react-dom"),require("brace"),require("moox")):e.schema=t(e.React,e[void 0],e._,e[void 0],e[void 0],e.ReactDom,e.ace,e[void 0])}(window,function(e,t,n,r,o,a,i,l){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=10)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.JSONPATH_JOIN_CHAR=".",t.lang="en_US",t.format=[{name:"date-time"},{name:"date"},{name:"time"},{name:"email"},{name:"idn-email"},{name:"hostname"},{name:"idn-hostname"},{name:"ipv4"},{name:"ipv6"},{name:"uri"},{name:"uri-reference"},{name:"uri-template"},{name:"iri"},{name:"iri-reference"},{name:"json-pointer"},{name:"relative-json-pointer"},{name:"regex"}];n(3);function o(e,t){if("object"===e.type){var n=function(e){var t=[];return Object.keys(e).map(function(e){t.push(e)}),t}(e.properties);t?e.required=[].concat(n):delete e.required,function(e,t){for(var n in e)"array"!==e[n].type&&"object"!==e[n].type||o(e[n],t)}(e.properties,t)}else{if("array"!==e.type)return e;o(e.items,t)}}t.SCHEMA_TYPE=["string","number","array","object","boolean","integer"],t.defaultSchema={string:{type:"string"},number:{type:"number"},array:{type:"array",items:{type:"string"},default:[]},object:{type:"object",properties:{},additionalProperties:!1,default:{}},boolean:{type:"boolean"},integer:{type:"integer"}},t.debounce=function(e,t){var n=void 0;return function(){clearTimeout(n),n=setTimeout(e,t)}},t.getData=function(e,t){for(var n=e,r=0;r<t.length;r++)n=n[t[r]];return n},t.setData=function(e,t,n){for(var r=e,o=0;o<t.length-1;o++)r=r[t[o]];r[t[t.length-1]]=n},t.deleteData=function(e,t){for(var n=e,r=0;r<t.length-1;r++)n=n[t[r]];delete n[t[t.length-1]]},t.getParentKeys=function(e){if(1===e.length)return[];var t=[].concat(e);return t.splice(e.length-1,1),t},t.clearSomeFields=function(e,t){var n=Object.assign({},t);return e.forEach(function(e){delete n[e]}),n},t.handleSchemaRequired=o,t.cloneObject=function e(t){if("object"===(void 0===t?"undefined":r(t))){if(Array.isArray(t)){var n=[];return t.forEach(function(t,r){n[r]=e(t)}),n}var o={};for(var a in t)o[a]=e(t[a]);return o}return t}},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t){e.exports=r},function(e,t){e.exports=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(1));o(n(0));function o(e){return e&&e.__esModule?e:{default:e}}var a={en_US:{title:"Title",import_json:"Import JSON",base_setting:"Base Setting",all_setting:"Source Code",default:"Default",description:"Description",adv_setting:"Advanced Settings",add_child_node:"Add child node",add_sibling_node:"Add sibling nodes",add_node:"Add sibling/child nodes",child_node:"Child node",sibling_node:"Sibling node",ok:"OK",cancel:"Cancel",minLength:"Min length",maxLength:"Max length",pattern:"MUST be a string and SHOULD be a valid regular expression.",exclusiveMinimum:"Value strictly less than",exclusiveMaximum:"Value strictly more than",minimum:"Min",maximum:"Max",unique_items:"Unique Items",min_items:"MinItems",max_items:"MaxItems",checked_all:"Checked All",valid_json:"Not valid json",enum:"Enum",enum_msg:"One value per line",enum_desc:"desc",enum_desc_msg:"enum description",required:"required",mock:"mock",mockLink:"Help",additional_properties:"Additional Properties"},zh_CN:{title:"标题",import_json:"导入 json",base_setting:"基础设置",all_setting:"编辑源码",default:"默认值",description:"备注",adv_setting:"高级设置",add_child_node:"添加子节点",add_sibling_node:"添加兄弟节点",add_node:"添加兄弟/子节点",child_node:"子节点",sibling_node:"兄弟节点",ok:"确定",cancel:"取消",minLength:"最小长度",maxLength:"最大长度",pattern:"用正则表达式约束字符串",exclusiveMinimum:"开启后,数据必须大于最小值",exclusiveMaximum:"开启后,数据必须小于最大值",minimum:"最小值",maximum:"最大值",unique_items:"开启后,每个元素都不相同",min_items:"最小元素个数",max_items:"最大元素个数",checked_all:"全选",valid_json:"不是合法的json字符串",enum:"枚举",enum_msg:"每行只能写一个值",enum_desc:"备注",enum_desc_msg:"备注描述信息",required:"是否必须",mock:"mock",mockLink:"查看文档",additional_properties:"开启后允许增加属性"}};t.default=function(e){return a[r.default.lang][e]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=s(n(0)),a=s(n(13)),i=s(n(2)),l=s(n(3));function s(e){return e&&e.__esModule?e:{default:e}}var c={javascript:"ace/mode/javascript",json:"ace/mode/json",text:"ace/mode/text",xml:"ace/mode/xml",html:"ace/mode/html"};function u(e,t){try{return e=JSON.parse(e),t=JSON.parse(t),!l.default.isEqual(e,t)}catch(e){return!0}}function d(e){return c[e]||c.text}var f=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default.PureComponent),r(t,[{key:"componentDidMount",value:function(){this.editor=(0,a.default)({container:this.editorElement,data:this.props.data,onChange:this.props.onChange,readOnly:this.props.readOnly,fullScreen:this.props.fullScreen});var e=this.props.mode||"javascript";this.editor.editor.getSession().setMode(d(e)),"function"==typeof this.props.callback&&this.props.callback(this.editor.editor)}},{key:"componentWillReceiveProps",value:function(e){if(this.editor&&u(e.data,this.props.data)&&u(this.editor.getValue(),e.data)){this.editor.setValue(e.data);var t=e.mode||"javascript";this.editor.editor.getSession().setMode(d(t)),this.editor.editor.clearSelection()}}},{key:"render",value:function(){var e=this;return o.default.createElement("div",{className:this.props.className,style:this.props.className?void 0:this.props.style||{width:"100%",height:"200px"},ref:function(t){e.editorElement=t}})}}]),t}();f.propTypes={data:i.default.string,onChange:i.default.func,className:i.default.string,mode:i.default.string,readOnly:i.default.bool,callback:i.default.func,style:i.default.object,fullScreen:i.default.bool,insertCode:i.default.func},t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=s(n(0)),a=n(4),i=s(n(2)),l=s(n(6));function s(e){return e&&e.__esModule?e:{default:e}}var c=a.AutoComplete.Option,u=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.state={mock:""},r.mock=n.Model.__jsonSchemaMock||[],r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default.Component),r(t,[{key:"render",value:function(){var e=this,t=this.props.schema,n=this.mock.map(function(e){return o.default.createElement(c,{key:e.mock},e.mock)});return o.default.createElement("div",null,o.default.createElement(a.AutoComplete,{className:"certain-category-search",dropdownMatchSelectWidth:!1,dataSource:n,placeholder:(0,l.default)("mock"),optionLabelProp:"value",filterOption:!0,value:t.mock?t.mock.mock:"",onChange:this.props.onChange,disabled:"object"===t.type||"array"===t.type},o.default.createElement(a.Input,{addonAfter:o.default.createElement(a.Icon,{type:"edit",onClick:function(t){t.stopPropagation(),e.props.showEdit()}})})))}}]),t}();u.propTypes={schema:i.default.object,showEdit:i.default.func,onChange:i.default.func},t.default=u,u.contextTypes={Model:i.default.object}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function o(e){!e.type&&e.properties&&"object"===r(e.properties)&&(e.type="object")}function a(e){if(!e||e.type||e.properties||(e.type="string"),o(e),"object"===e.type)e.properties||(e.properties={}),function(e){for(var t in e)o(e[t]),"array"!==e[t].type&&"object"!==e[t].type||a(e[t])}(e.properties);else{if("array"!==e.type)return e;e.items||(e.items={type:"string"}),a(e.items)}}e.exports=a},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=d(n(0)),a=(n(11),n(5)),i=d(n(12)),l=d(n(1)),s=d(n(22)),c=d(n(23)),u=d(n(2));function d(e){return e&&e.__esModule?e:{default:e}}e.exports=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.lang&&(l.default.lang=e.lang);var t=(0,s.default)({schema:c.default});e.format?t.__jsonSchemaFormat=e.format:t.__jsonSchemaFormat=l.default.format,e.mock&&(t.__jsonSchemaMock=e.mock);var n=t.getStore(),d=function(e){return o.default.createElement(a.Provider,{store:n,className:"wrapper"},o.default.createElement(i.default,r({Model:t},e)))};return d.propTypes={data:u.default.string,onChange:u.default.func,showEditor:u.default.bool},d}},function(e,t){e.exports=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=h(n(0)),a=n(4);n(24);var i=h(n(7)),l=(h(n(3)),n(5)),s=h(n(17)),c=h(n(2)),u=n(1),d=h(n(9)),f=h(n(19)),p=h(n(6)),m=h(n(8));function h(e){return e&&e.__esModule?e:{default:e}}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}a.Form.Item;var y=a.Select.Option,v=a.Input.TextArea,w=a.Tabs.TabPane,b=n(20),E=n(1),x=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.showModal=function(){n.setState({visible:!0})},n.handleOk=function(){if("schema"!==n.importJsonType){if(!n.jsonData)return a.message.error("json 数据格式有误");var e=b(n.jsonData);n.Model.changeEditorSchemaAction({value:e})}else{if(!n.jsonSchemaData)return a.message.error("json 数据格式有误");n.Model.changeEditorSchemaAction({value:n.jsonSchemaData})}n.setState({visible:!1})},n.handleCancel=function(){n.setState({visible:!1})},n.alterMsg=function(){},n.handleParams=function(e){if(e.text){if(!0!==e.format)return n.alterMsg();(0,d.default)(e.jsonData),n.Model.changeEditorSchemaAction({value:e.jsonData})}},n.changeType=function(e,t){n.Model.changeTypeAction({key:[e],value:t})},n.handleImportJson=function(e){if(!e.text||!0!==e.format)return n.jsonData=null;n.jsonData=e.jsonData},n.handleImportJsonSchema=function(e){if(!e.text||!0!==e.format)return n.jsonSchemaData=null;n.jsonSchemaData=e.jsonData},n.addChildField=function(e){n.Model.addChildFieldAction({key:[e]}),n.setState({show:!0})},n.clickIcon=function(){n.setState({show:!n.state.show})},n.changeValue=function(e,t){"mock"===e[0]&&(t=t?{mock:t}:""),n.Model.changeValueAction({key:e,value:t})},n.handleEditOk=function(e){n.setState({editVisible:!1});var t=n.state[e];"mock"===e&&(t=t?{mock:t}:""),n.Model.changeValueAction({key:n.state.descriptionKey,value:t})},n.handleEditCancel=function(){n.setState({editVisible:!1})},n.showEdit=function(e,t,r,o){var a;if("object"!==o&&"array"!==o){var i=[].concat(e,t);r="mock"===t?r?r.mock:"":r,n.setState((g(a={editVisible:!0},t,r),g(a,"descriptionKey",i),g(a,"editorModalName",t),a))}},n.changeDesc=function(e,t){n.setState(g({},t,e))},n.handleAdvOk=function(){0===n.state.itemKey.length?n.Model.changeEditorSchemaAction({value:n.state.curItemCustomValue}):n.Model.changeValueAction({key:n.state.itemKey,value:n.state.curItemCustomValue}),n.setState({advVisible:!1})},n.handleAdvCancel=function(){n.setState({advVisible:!1})},n.showAdv=function(e,t){n.setState({advVisible:!0,itemKey:e,curItemCustomValue:t})},n.changeCustomValue=function(e){n.setState({curItemCustomValue:e})},n.changeCheckBox=function(e){n.setState({checked:e}),n.Model.requireAllAction({required:e,value:n.props.schema})},n.alterMsg=(0,u.debounce)(n.alterMsg,2e3),n.state={visible:!1,show:!0,editVisible:!1,description:"",descriptionKey:null,advVisible:!1,itemKey:[],curItemCustomValue:null,checked:!1,editorModalName:"",mock:""},n.Model=n.props.Model.schema,n.jsonSchemaData=null,n.jsonData=null,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default.Component),r(t,[{key:"componentWillReceiveProps",value:function(e){if("function"==typeof this.props.onChange&&this.props.schema!==e.schema){var t=JSON.stringify(this.props.schema||""),n=JSON.stringify(e.schema||"");if(t!==n)return this.props.onChange(n)}this.props.data&&this.props.data!==e.data&&this.Model.changeEditorSchemaAction({value:JSON.parse(e.data)})}},{key:"componentWillMount",value:function(){var e=this.props.data;e||(e='{\n "type": "object",\n "title": "title",\n "properties":{},\n "additionalProperties": false,\n "default": {}\n }'),this.Model.changeEditorSchemaAction({value:JSON.parse(e)})}},{key:"getChildContext",value:function(){var e=this;return{getOpenValue:function(t){return E.getData(e.props.open,t)},changeCustomValue:this.changeCustomValue,Model:this.props.Model,isMock:this.props.isMock}}},{key:"render",value:function(){var e=this,t=this.state,n=t.visible,r=t.editVisible,l=(t.description,t.advVisible),c=(t.type,t.checked),d=t.editorModalName,h=this.props.schema,g="object"!==this.props.schema.type&&"array"!==this.props.schema.type;return o.default.createElement("div",{className:"json-schema-react-editor"},o.default.createElement(a.Button,{className:"import-json-button",type:"primary",onClick:this.showModal},(0,p.default)("import_json")),o.default.createElement(a.Modal,{maskClosable:!1,visible:n,title:(0,p.default)("import_json"),onOk:this.handleOk,onCancel:this.handleCancel,className:"json-schema-react-editor-import-modal",okText:"ok",cancelText:(0,p.default)("cancel"),footer:[o.default.createElement(a.Button,{key:"back",onClick:this.handleCancel},(0,p.default)("cancel")),o.default.createElement(a.Button,{key:"submit",type:"primary",onClick:this.handleOk},(0,p.default)("ok"))]},o.default.createElement(a.Tabs,{defaultActiveKey:"json",onChange:function(t){e.importJsonType=t}},o.default.createElement(w,{tab:"JSON",key:"json"},o.default.createElement(i.default,{data:"",mode:"json",onChange:this.handleImportJson})),o.default.createElement(w,{tab:"JSON-SCHEMA",key:"schema"},o.default.createElement(i.default,{data:"",mode:"json",onChange:this.handleImportJsonSchema})))),o.default.createElement(a.Modal,{title:o.default.createElement("div",null,(0,p.default)(d)," ","mock"===d&&o.default.createElement(a.Tooltip,{title:(0,p.default)("mockLink")},o.default.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/YMFE/json-schema-editor-visual/issues/38"},o.default.createElement(a.Icon,{type:"question-circle-o"})))),maskClosable:!1,visible:r,onOk:function(){return e.handleEditOk(d)},onCancel:this.handleEditCancel,okText:(0,p.default)("ok"),cancelText:(0,p.default)("cancel")},o.default.createElement(v,{value:this.state[d],placeholder:(0,p.default)(d),onChange:function(t){return e.changeDesc(t.target.value,d)},autosize:{minRows:6,maxRows:10}})),l&&o.default.createElement(a.Modal,{title:(0,p.default)("adv_setting"),maskClosable:!1,visible:l,onOk:this.handleAdvOk,onCancel:this.handleAdvCancel,okText:(0,p.default)("ok"),width:780,cancelText:(0,p.default)("cancel"),className:"json-schema-react-editor-adv-modal"},o.default.createElement(f.default,{data:JSON.stringify(this.state.curItemCustomValue,null,2)})),o.default.createElement(a.Row,null,this.props.showEditor&&o.default.createElement(a.Col,{span:8},o.default.createElement(i.default,{className:"pretty-editor",mode:"json",data:JSON.stringify(h,null,2),onChange:this.handleParams})),o.default.createElement(a.Col,{span:this.props.showEditor?16:24,className:"wrapper object-style"},o.default.createElement(a.Row,{type:"flex",align:"middle"},o.default.createElement(a.Col,{span:8,className:"col-item name-item col-item-name"},o.default.createElement(a.Row,{type:"flex",justify:"space-around",align:"middle"},o.default.createElement(a.Col,{span:2,className:"down-style-col"},"object"===h.type?o.default.createElement("span",{className:"down-style",onClick:this.clickIcon},this.state.show?o.default.createElement(a.Icon,{className:"icon-object",type:"caret-down"}):o.default.createElement(a.Icon,{className:"icon-object",type:"caret-right"})):null),o.default.createElement(a.Col,{span:22},o.default.createElement(a.Input,{addonAfter:o.default.createElement(a.Tooltip,{placement:"top",title:"checked_all"},o.default.createElement(a.Checkbox,{checked:c,disabled:g,onChange:function(t){return e.changeCheckBox(t.target.checked)}})),disabled:!0,value:"root"})))),o.default.createElement(a.Col,{span:3,className:"col-item col-item-type"},o.default.createElement(a.Select,{className:"type-select-style",onChange:function(t){return e.changeType("type",t)},value:h.type||"object"},u.SCHEMA_TYPE.map(function(e,t){return o.default.createElement(y,{value:e,key:t},e)}))),this.props.isMock&&o.default.createElement(a.Col,{span:3,className:"col-item col-item-mock"},o.default.createElement(m.default,{schema:h,showEdit:function(){return e.showEdit([],"mock",h.mock,h.type)},onChange:function(t){return e.changeValue(["mock"],t)}})),o.default.createElement(a.Col,{span:this.props.isMock?4:5,className:"col-item col-item-mock"},o.default.createElement(a.Input,{placeholder:"default",value:JSON.stringify(this.props.schema.default),disabled:!0})),o.default.createElement(a.Col,{span:this.props.isMock?4:5,className:"col-item col-item-desc"},o.default.createElement(a.Input,{addonAfter:o.default.createElement(a.Icon,{type:"edit",onClick:function(){return e.showEdit([],"description",e.props.schema.description)}}),placeholder:"description",value:h.description,onChange:function(t){return e.changeValue(["description"],t.target.value)}})),o.default.createElement(a.Col,{span:2,className:"col-item col-item-setting"},o.default.createElement("span",{className:"adv-set",onClick:function(){return e.showAdv([],e.props.schema)}},o.default.createElement(a.Tooltip,{placement:"top",title:(0,p.default)("adv_setting")},o.default.createElement(a.Icon,{type:"setting"}))),"object"===h.type?o.default.createElement("span",{onClick:function(){return e.addChildField("properties")}},o.default.createElement(a.Tooltip,{placement:"top",title:(0,p.default)("add_child_node")},o.default.createElement(a.Icon,{type:"plus",className:"plus"}))):null)),this.state.show&&o.default.createElement(s.default,{data:this.props.schema,showEdit:this.showEdit,showAdv:this.showAdv}))))}}]),t}();x.childContextTypes={getOpenValue:c.default.func,changeCustomValue:c.default.func,Model:c.default.object,isMock:c.default.bool},x.propTypes={data:c.default.string,onChange:c.default.func,showEditor:c.default.bool,isMock:c.default.bool,Model:c.default.object},t.default=(0,l.connect)(function(e){return{schema:e.schema.data,open:e.schema.open}})(x)},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(14);n(15),e.exports=function(e){var t,n,a,i;function l(e){var t=n.curData;try{t.text=e;var r=JSON.parse(e);t.format=!0,t.jsonData=r}catch(e){t.format=e.message}}function s(e){return"string"==typeof(e=e||"")?e:"object"===(void 0===e?"undefined":r(e))?JSON.stringify(e,null," "):void 0}return a=(e=e||{}).container||"mock-editor",e.wordList&&"object"===r(e.wordList)&&e.wordList.name&&e.wordList.mock&&wordList.push(e.wordList),i=e.data||"",e.readOnly=e.readOnly||!1,e.fullScreen=e.fullScreen||!1,(t=o.edit(a)).$blockScrolling=1/0,t.getSession().setMode("ace/mode/json"),!0===e.readOnly&&(t.setReadOnly(!0),t.renderer.$cursorLayer.element.style.display="none"),t.setOptions({useWorker:!0}),t._fullscreen_yapi=e.fullScreen,(n={curData:{},getValue:function(){return n.curData.text},setValue:function(e){t.setValue(s(e))},editor:t,options:e,insertCode:function(e){var n=t.selection.getCursor();t.session.insert(n,e)}}).setValue(s(i)),l(t.getValue()),t.clearSelection(),t.getSession().on("change",function(){l(t.getValue()),"function"==typeof e.onChange&&e.onChange.call(n,n.curData),t.clearSelection()}),n}},function(e,t){e.exports=i},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,a=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(a,o),t.JsonHighlightRules=a}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var o=n[1].length,a=e.findMatchingBracket({row:t,column:o});if(!a||a.row==t)return 0;var i=this.$getIndent(e.getLine(a.row));e.replace(new r(t,0,t,o-1),i)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),o=e("../../range").Range,a=e("./fold_mode").FoldMode,i=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(i,a),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(r)?"start":o},this.getFoldWidgetRange=function(e,t,n,r){var o,a=e.getLine(n);if(this.startRegionRe.test(a))return this.getCommentRegionBlock(e,a,n);if(o=a.match(this.foldingStartMarker)){var i=o.index;if(o[1])return this.openingBracketBlock(e,o[1],n,i);var l=e.getCommentFoldRange(n,i+o[0].length,1);return l&&!l.isMultiLine()&&(r?l=this.getSectionRange(e,n):"all"!=t&&(l=null)),l}if("markbegin"!==t&&(o=a.match(this.foldingStopMarker))){i=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],n,i):e.getCommentFoldRange(n,i,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),r=n.search(/\S/),a=t,i=n.length,l=t+=1,s=e.getLength();++t<s;){var c=(n=e.getLine(t)).search(/\S/);if(-1!==c){if(r>c)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=a)break;if(u.isMultiLine())t=u.end.row;else if(r==c)break}l=t}}return new o(a,i,l,e.getLine(l).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),a=e.getLength(),i=n,l=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,s=1;++n<a;){t=e.getLine(n);var c=l.exec(t);if(c&&(c[1]?s--:s++,!s))break}if(n>i)return new o(i,r,n,t.length)}}.call(i.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,r){"use strict";var o=e("../lib/oop"),a=e("./text").Mode,i=e("./json_highlight_rules").JsonHighlightRules,l=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=i,this.$outdent=new l,this.$behaviour=new s,this.foldingRules=new c};o.inherits(d,a),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);"start"==e&&(t.match(/^.*[\{\(\[]\s*$/)&&(r+=n));return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],n(16),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.ins