2017-07-04 01:23:32 +08:00
/ * !
* jsoneditor . js
*
* @ brief
* JSONEditor is a web - based tool to view , edit , format , and validate JSON .
* It has various modes such as a tree editor , a code editor , and a plain text
* editor .
*
* Supported browsers : Chrome , Firefox , Safari , Opera , Internet Explorer 8 +
*
* @ license
* Licensed under the Apache License , Version 2.0 ( the "License" ) ; you may not
* use this file except in compliance with the License . You may obtain a copy
* of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS , WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the
* License for the specific language governing permissions and limitations under
* the License .
*
* Copyright ( c ) 2011 - 2017 Jos de Jong , http : //jsoneditoronline.org
*
* @ author Jos de Jong , < wjosdejong @ gmail . com >
2018-08-18 02:22:52 +08:00
* @ version 5.23 . 1
* @ date 2018 - 08 - 17
2017-07-04 01:23:32 +08:00
* /
2018-08-15 18:29:56 +08:00
! function ( e , t ) { "object" == typeof exports && "object" == typeof module ? module . exports = t ( ) : "function" == typeof define && define . amd ? define ( [ ] , t ) : "object" == typeof exports ? exports . JSONEditor = t ( ) : e . JSONEditor = t ( ) } ( this , function ( ) { return function ( e ) { function t ( n ) { if ( i [ n ] ) return i [ n ] . exports ; var r = i [ n ] = { exports : { } , id : n , loaded : ! 1 } ; return e [ n ] . call ( r . exports , r , r . exports , t ) , r . loaded = ! 0 , r . exports } var i = { } ; return t . m = e , t . c = i , t . p = "" , t ( 0 ) } ( [ function ( e , t , i ) { "use strict" ; function n ( e , t , i ) { if ( ! ( this instanceof n ) ) throw new Error ( 'JSONEditor constructor called without "new".' ) ; var r = a . getInternetExplorerVersion ( ) ; if ( - 1 != r && r < 9 ) throw new Error ( "Unsupported browser, IE9 or newer required. Please install the newest version of your browser." ) ; t && ( t . error && ( console . warn ( 'Option "error" has been renamed to "onError"' ) , t . onError = t . error , delete t . error ) , t . change && ( console . warn ( 'Option "change" has been renamed to "onChange"' ) , t . onChange = t . change , delete t . change ) , t . editable && ( console . warn ( 'Option "editable" has been renamed to "onEditable"' ) , t . onEditable = t . editable , delete t . editable ) , t . onChangeJSON && ( "text" === t . mode || "code" === t . mode || t . modes && ( - 1 !== t . modes . indexOf ( "text" ) || - 1 !== t . modes . indexOf ( "code" ) ) ) && console . warn ( 'Option "onChangeJSON" is not applicable to modes "text" and "code". Use "onChangeText" or "onChange" instead.' ) , t && Object . keys ( t ) . forEach ( function ( e ) { - 1 === n . VALID _OPTIONS . indexOf ( e ) && console . warn ( 'Unknown option "' + e + '". This option will be ignored' ) } ) ) , arguments . length && this . _create ( e , t , i ) } var r ; try { r = i ( 1 ) } catch ( e ) { } var o = i ( 51 ) , s = i ( 72 ) , a = i ( 56 ) ; n . modes = { } , n . prototype . DEBOUNCE _INTERVAL = 150 , n . VALID _OPTIONS = [ "ajv" , "schema" , "schemaRefs" , "templates" , "ace" , "theme" , "autocomplete" , "onChange" , "onChangeJSON" , "onChangeText" , "onEditable" , "onError" , "onEvent" , "onModeChange" , "onValidate" , "onSelectionChange" , "onTextSelectionChange" , "escapeUnicode" , "history" , "search" , "mode" , "modes" , "name" , "indentation" , "sortObjectKeys" , "navigationBar" , "statusBar" , "languages" , "language" ] , n . prototype . _create = function ( e , t , i ) { this . container = e , this . options = t || { } , this . json = i || { } ; var n = this . options . mode || this . options . modes && this . options . modes [ 0 ] || "tree" ; this . setMode ( n ) } , n . prototype . destroy = function ( ) { } , n . prototype . set = function ( e ) { this . json = e } , n . prototype . get = function ( ) { return this . json } , n . prototype . setText = function ( e ) { this . json = a . parse ( e ) } , n . prototype . getText = function ( ) { return JSON . stringify ( this . json ) } , n . prototype . setName = function ( e ) { this . options || ( this . options = { } ) , this . options . name = e } , n . prototype . getName = function ( ) { return this . options && this . options . name } , n . prototype . setMode = function ( e ) { if ( e !== this . options . mode || ! this . create ) { var t , i , r = this . container , o = a . extend ( { } , this . options ) , s = o . mode ; o . mode = e ; var l = n . modes [ e ] ; if ( ! l ) throw new Error ( 'Unknown mode "' + o . mode + '"' ) ; try { var c = "text" == l . data ; if ( i = this . getName ( ) , t = this [ c ? "getText" : "get" ] ( ) , this . destroy ( ) , a . clear ( this ) , a . extend ( this , l . mixin ) , this . create ( r , o ) , this . setName ( i ) , this [ c ? "setText" : "set" ] ( t ) , "function" == typeof l . load ) try { l . load . call ( this ) } catch ( e ) { console . error ( e ) } if ( "function" == typeof o . onModeChange && e !== s ) try { o . onModeChange ( e , s ) } catch ( e ) { console . error ( e ) } } catch ( e ) { this . _onError ( e ) } } } , n . prototype . getMode = function ( ) { return this . options . mode } , n . prototype . _onError = function ( e ) { if ( ! this . options || "function" != typeof this . options . onError ) throw e ; this . options . onError ( e ) } , n . prototype . setSchema = function ( e , t ) { if ( e ) { var i ; try { i = this . options . ajv || r ( { allErrors : ! 0 , verbose : ! 0 } ) } catch ( e ) { console . warn ( "Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`." ) } if ( i ) { if ( t ) { for ( var n in t ) i . removeSchema ( n ) , t [ n ] && i . addSchema ( t [ n ] , n ) ; this . options . schemaRefs = t } this . validateSchema = i . compile ( e ) , this . options . schema = e , this . validate ( ) } this . refresh ( ) } else this . validateSchema = null , this . options . schema = null , this . options . schemaRefs = null , this . validate ( ) , this . refresh ( ) } , n . prototype . validate = function ( ) { } , n . prototype . refresh = function ( ) { } , n . registerMode = function ( e ) { var t , i ; if ( a . isArray ( e ) ) for ( t = 0 ; t < e . length ; t ++ ) n . registerMode ( e [ t ] ) ; el
var n = " " , r = e . level , o = e . dataLevel , s = e . schema [ t ] , a = e . schemaPath + e . util . getProperty ( t ) , l = e . errSchemaPath + "/" + t , c = ! e . opts . allErrors , h = "data" + ( o || "" ) , d = "errs__" + r , u = e . util . copy ( e ) , f = "" ; u . level ++ ; var p = "valid" + u . level , m = { } , g = { } , v = e . opts . ownProperties ; for ( b in s ) { var y = s [ b ] , w = Array . isArray ( y ) ? g : m ; w [ b ] = y } n += "var " + d + " = errors;" ; var C = e . errorPath ; n += "var missing" + r + ";" ; for ( var b in g ) if ( w = g [ b ] , w . length ) { if ( n += " if ( " + h + e . util . getProperty ( b ) + " !== undefined " , v && ( n += " && Object.prototype.hasOwnProperty.call(" + h + ", '" + e . util . escapeQuotes ( b ) + "') " ) , c ) { n += " && ( " ; var A = w ; if ( A ) for ( var E , F = - 1 , x = A . length - 1 ; F < x ; ) { E = A [ F += 1 ] , F && ( n += " || " ) ; var S = e . util . getProperty ( E ) , _ = h + S ; n += " ( ( " + _ + " === undefined " , v && ( n += " || ! Object.prototype.hasOwnProperty.call(" + h + ", '" + e . util . escapeQuotes ( E ) + "') " ) , n += ") && (missing" + r + " = " + e . util . toQuotedString ( e . opts . jsonPointers ? E : S ) + ") ) " } n += ")) { " ; var D = "missing" + r , k = "' + " + D + " + '" ; e . opts . _errorDataPathProperty && ( e . errorPath = e . opts . jsonPointers ? e . util . getPathExpr ( C , D , ! 0 ) : C + " + " + D ) ; var $ = $ || [ ] ; $ . push ( n ) , n = "" , ! 1 !== e . createErrors ? ( n += " { keyword: 'dependencies' , dataPath: (dataPath || '') + " + e . errorPath + " , schemaPath: " + e . util . toQuotedString ( l ) + " , params: { property: '" + e . util . escapeQuotes ( b ) + "', missingProperty: '" + k + "', depsCount: " + w . length + ", deps: '" + e . util . escapeQuotes ( 1 == w . length ? w [ 0 ] : w . join ( ", " ) ) + "' } " , ! 1 !== e . opts . messages && ( n += " , message: 'should have " , 1 == w . length ? n += "property " + e . util . escapeQuotes ( w [ 0 ] ) : n += "properties " + e . util . escapeQuotes ( w . join ( ", " ) ) , n += " when property " + e . util . escapeQuotes ( b ) + " is present' " ) , e . opts . verbose && ( n += " , schema: validate.schema" + a + " , parentSchema: validate.schema" + e . schemaPath + " , data: " + h + " " ) , n += " } " ) : n += " {} " ; var B = n ; n = $ . pop ( ) , ! e . compositeRule && c ? e . async ? n += " throw new ValidationError([" + B + "]); " : n += " validate.errors = [" + B + "]; return false; " : n += " var err = " + B + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; " } else { n += " ) { " ; var L = w ; if ( L ) for ( var E , R = - 1 , T = L . length - 1 ; R < T ; ) { E = L [ R += 1 ] ; var S = e . util . getProperty ( E ) , k = e . util . escapeQuotes ( E ) , _ = h + S ; e . opts . _errorDataPathProperty && ( e . errorPath = e . util . getPath ( C , E , e . opts . jsonPointers ) ) , n += " if ( " + _ + " === undefined " , v && ( n += " || ! Object.prototype.hasOwnProperty.call(" + h + ", '" + e . util . escapeQuotes ( E ) + "') " ) , n += ") { var err = " , ! 1 !== e . createErrors ? ( n += " { keyword: 'dependencies' , dataPath: (dataPath || '') + " + e . errorPath + " , schemaPath: " + e . util . toQuotedString ( l ) + " , params: { property: '" + e . util . escapeQuotes ( b ) + "', missingProperty: '" + k + "', depsCount: " + w . length + ", deps: '" + e . util . escapeQuotes ( 1 == w . length ? w [ 0 ] : w . join ( ", " ) ) + "' } " , ! 1 !== e . opts . messages && ( n += " , message: 'should have " , 1 == w . length ? n += "property " + e . util . escapeQuotes ( w [ 0 ] ) : n += "properties " + e . util . escapeQuotes ( w . join ( ", " ) ) , n += " when property " + e . util . escapeQuotes ( b ) + " is present' " ) , e . opts . verbose && ( n += " , schema: validate.schema" + a + " , parentSchema: validate.schema" + e . schemaPath + " , data: " + h + " " ) , n += " } " ) : n += " {} " , n += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } " } } n += " } " , c && ( f += "}" , n += " else { " ) } e . errorPath = C ; var P = u . baseId ; for ( var b in m ) { var y = m [ b ] ; e . util . schemaHasRules ( y , e . RULES . all ) && ( n += " " + p + " = true; if ( " + h + e . util . getProperty ( b ) + " !== undefined " , v && ( n += " && Object.prototype.hasOwnProperty.call(" + h + ", '" + e . util . escapeQuotes ( b ) + "') " ) , n += ") { " , u . schema = y , u . schemaPath = a + e . util . getProperty ( b ) , u . errSchemaPath = l + "/" + e . util . escapeFragment ( b ) , n += " " + e . validate ( u ) + " " , u . baseId = P , n += " } " , c && ( n += " if (" + p + ") { " , f += "}" ) ) } return c && ( n += " " + f + " if (" + d + " == errors) {" ) , n = e . util . cleanUpCode ( n ) } } , function ( e , t ) { "use strict" ; e . exports = function ( e , t , i ) { var n = " " , r = e . level , o = e . dataLevel , s = e . schema [ t ] , a = e . schemaPath + e . util . getProperty ( t ) , l = e . errSchemaPath + "/" + t , c = ! e . opts . allErrors , h = "data" + ( o || "" ) , d = "valid" + r , u = e . opts . $data && s && s . $data ; u && ( n += " var schema" + r + " = " + e . util . getData ( s . $data , o , e . dataPathArr ) + "; " ) ; var f = "i" + r , p = "schema" + r ; u || ( n += " var " + p + " = validate.schema" + a + ";" ) , n += "var " + d + ";" , u && ( n += " if (schema" + r + " === undefined) " + d + " = true ; else if ( ! Array . isArray ( s
this . options . navigationBar && ( this . navBar = document . createElement ( "div" ) , this . navBar . className = "jsoneditor-navigation-bar nav-bar-empty" , this . frame . appendChild ( this . navBar ) , this . treePath = new a ( this . navBar ) , this . treePath . onSectionSelected ( this . _onTreePathSectionSelected . bind ( this ) ) , this . treePath . onContextMenuItemSelected ( this . _onTreePathMenuItemSelected . bind ( this ) ) ) } , y . _onUndo = function ( ) { this . history && ( this . history . undo ( ) , this . _onChange ( ) ) } , y . _onRedo = function ( ) { this . history && ( this . history . redo ( ) , this . _onChange ( ) ) } , y . _onEvent = function ( e ) { "keydown" === e . type && this . _onKeyDown ( e ) , "focus" === e . type && ( this . focusTarget = e . target ) , "mousedown" === e . type && this . _startDragDistance ( e ) , "mousemove" !== e . type && "mouseup" !== e . type && "click" !== e . type || this . _updateDragDistance ( e ) ; var t = l . getNodeFromTarget ( e . target ) ; if ( t && this . options && this . options . navigationBar && t && ( "keydown" === e . type || "mousedown" === e . type ) ) { var i = this ; setTimeout ( function ( ) { i . _updateTreePath ( t . getNodePath ( ) ) } ) } if ( t && t . selected ) { if ( "click" === e . type ) { if ( e . target === t . dom . menu ) return void this . showContextMenu ( e . target ) ; e . hasMoved || this . deselect ( ) } "mousedown" === e . type && l . onDragStart ( this . multiselection . nodes , e ) } else "mousedown" === e . type && ( this . deselect ( ) , t && e . target === t . dom . drag ? l . onDragStart ( t , e ) : ( ! t || e . target !== t . dom . field && e . target !== t . dom . value && e . target !== t . dom . select ) && this . _onMultiSelectStart ( e ) ) ; t && t . onEvent ( e ) } , y . _updateTreePath = function ( e ) { function t ( e ) { return e . parent ? "array" === e . parent . type ? e . index : e . field : e . type } if ( e && e . length ) { h . removeClassName ( this . navBar , "nav-bar-empty" ) ; var i = [ ] ; e . forEach ( function ( e ) { var n = { name : t ( e ) , node : e , children : [ ] } ; e . childs && e . childs . length && e . childs . forEach ( function ( e ) { n . children . push ( { name : t ( e ) , node : e } ) } ) , i . push ( n ) } ) , this . treePath . setPath ( i ) } else h . addClassName ( this . navBar , "nav-bar-empty" ) } , y . _onTreePathSectionSelected = function ( e ) { e && e . node && ( e . node . expandTo ( ) , e . node . focus ( ) ) } , y . _onTreePathMenuItemSelected = function ( e , t ) { if ( e && e . children . length ) { var i = e . children . find ( function ( e ) { return e . name === t } ) ; i && i . node && ( this . _updateTreePath ( i . node . getNodePath ( ) ) , i . node . expandTo ( ) , i . node . focus ( ) ) } } , y . _startDragDistance = function ( e ) { this . dragDistanceEvent = { initialTarget : e . target , initialPageX : e . pageX , initialPageY : e . pageY , dragDistance : 0 , hasMoved : ! 1 } } , y . _updateDragDistance = function ( e ) { this . dragDistanceEvent || this . _startDragDistance ( e ) ; var t = e . pageX - this . dragDistanceEvent . initialPageX , i = e . pageY - this . dragDistanceEvent . initialPageY ; return this . dragDistanceEvent . dragDistance = Math . sqrt ( t * t + i * i ) , this . dragDistanceEvent . hasMoved = this . dragDistanceEvent . hasMoved || this . dragDistanceEvent . dragDistance > 10 , e . dragDistance = this . dragDistanceEvent . dragDistance , e . hasMoved = this . dragDistanceEvent . hasMoved , e . dragDistance } , y . _onMultiSelectStart = function ( e ) { var t = l . getNodeFromTarget ( e . target ) ; if ( "tree" === this . options . mode && void 0 === this . options . onEditable ) { this . multiselection = { start : t || null , end : null , nodes : [ ] } , this . _startDragDistance ( e ) ; var i = this ; this . mousemove || ( this . mousemove = h . addEventListener ( window , "mousemove" , function ( e ) { i . _onMultiSelect ( e ) } ) ) , this . mouseup || ( this . mouseup = h . addEventListener ( window , "mouseup" , function ( e ) { i . _onMultiSelectEnd ( e ) } ) ) } } , y . _onMultiSelect = function ( e ) { if ( e . preventDefault ( ) , this . _updateDragDistance ( e ) , e . hasMoved ) { var t = l . getNodeFromTarget ( e . target ) ; t && ( null == this . multiselection . start && ( this . multiselection . start = t ) , this . multiselection . end = t ) , this . deselect ( ) ; var i = this . multiselection . start , n = this . multiselection . end || this . multiselection . start ; if ( i && n ) { if ( this . multiselection . nodes = this . _findTopLevelNodes ( i , n ) , this . multiselection . nodes && this . multiselection . nodes . length ) { var r = this . multiselection . nodes [ 0 ] ; this . multiselection . start === r || this . multiselection . start . isDescendantOf ( r ) ? this . multiselection . direction = "down" : this . multiselection . direction = "up" } this . select ( this . multiselection . nodes ) } } } , y . _onMultiSelectEnd = function ( e ) { this . multiselection . nodes [ 0 ] && this . multiselection . nodes [ 0 ] . dom . menu . focus ( ) , this . multiselection . start = null , this . multiselection . end = null , this . mousemove && ( h . removeEventListener ( window , "mousemove" , this . mousemove ) , delete this . mousemove ) , this . mouseup && ( h
2018-08-18 02:22:52 +08:00
void 0 !== this . field && t . length <= this . MAX _SEARCH _RESULTS ) { i = String ( this . field ) . toLowerCase ( ) . indexOf ( n ) , - 1 !== i && ( this . searchField = ! 0 , t . push ( { node : this , elem : "field" } ) ) , this . _updateDomField ( ) } if ( this . _hasChilds ( ) ) this . childs && this . childs . forEach ( function ( i ) { i . search ( e , t ) } ) ; else if ( void 0 !== this . value && t . length <= this . MAX _SEARCH _RESULTS ) { var r = String ( this . value ) . toLowerCase ( ) ; i = r . indexOf ( n ) , - 1 !== i && ( this . searchValue = ! 0 , t . push ( { node : this , elem : "value" } ) ) , this . _updateDomValue ( ) } return t } , n . prototype . scrollTo = function ( e ) { this . expandPathToNode ( ) , this . dom . tr && this . dom . tr . parentNode && this . editor . scrollTo ( this . dom . tr . offsetTop , e ) } , n . prototype . expandPathToNode = function ( ) { for ( var e = this ; e && e . parent ; ) { for ( var t = "array" === e . parent . type ? e . index : e . parent . childs . indexOf ( e ) ; e . parent . visibleChilds < t + 1 ; ) e . parent . visibleChilds += n . prototype . MAX _VISIBLE _CHILDS ; e . parent . expand ( ! 1 ) , e = e . parent } } , n . focusElement = void 0 , n . prototype . focus = function ( e ) { if ( n . focusElement = e , this . dom . tr && this . dom . tr . parentNode ) { var t = this . dom ; switch ( e ) { case "drag" : t . drag ? t . drag . focus ( ) : t . menu . focus ( ) ; break ; case "menu" : t . menu . focus ( ) ; break ; case "expand" : this . _hasChilds ( ) ? t . expand . focus ( ) : t . field && this . fieldEditable ? ( t . field . focus ( ) , f . selectContentEditable ( t . field ) ) : t . value && ! this . _hasChilds ( ) ? ( t . value . focus ( ) , f . selectContentEditable ( t . value ) ) : t . menu . focus ( ) ; break ; case "field" : t . field && this . fieldEditable ? ( t . field . focus ( ) , f . selectContentEditable ( t . field ) ) : t . value && ! this . _hasChilds ( ) ? ( t . value . focus ( ) , f . selectContentEditable ( t . value ) ) : this . _hasChilds ( ) ? t . expand . focus ( ) : t . menu . focus ( ) ; break ; case "value" : default : t . select ? t . select . focus ( ) : t . value && ! this . _hasChilds ( ) ? ( t . value . focus ( ) , f . selectContentEditable ( t . value ) ) : t . field && this . fieldEditable ? ( t . field . focus ( ) , f . selectContentEditable ( t . field ) ) : this . _hasChilds ( ) ? t . expand . focus ( ) : t . menu . focus ( ) } } } , n . select = function ( e ) { setTimeout ( function ( ) { f . selectContentEditable ( e ) } , 0 ) } , n . prototype . blur = function ( ) { this . _getDomValue ( ! 1 ) , this . _getDomField ( ! 1 ) } , n . prototype . containsNode = function ( e ) { if ( this == e ) return ! 0 ; var t = this . childs ; if ( t ) for ( var i = 0 , n = t . length ; i < n ; i ++ ) if ( t [ i ] . containsNode ( e ) ) return ! 0 ; return ! 1 } , n . prototype . removeChild = function ( e , t ) { if ( this . childs ) { var i = this . childs . indexOf ( e ) ; if ( - 1 !== i ) { i < this . visibleChilds && this . expanded && this . visibleChilds -- , e . hide ( ) , delete e . searchField , delete e . searchValue ; var n = this . childs . splice ( i , 1 ) [ 0 ] ; return n . parent = null , ! 1 !== t && this . updateDom ( { updateIndexes : ! 0 } ) , n } } } , n . prototype . _remove = function ( e ) { this . removeChild ( e ) } , n . prototype . changeType = function ( e ) { var t = this . type ; if ( t != e ) { if ( "string" != e && "auto" != e || "string" != t && "auto" != t ) { var i = this . _detachFromDom ( ) ; this . clearDom ( ) , this . type = e , "object" == e ? ( this . childs || ( this . childs = [ ] ) , this . childs . forEach ( function ( e , t ) { e . clearDom ( ) , delete e . index , e . fieldEditable = ! 0 , void 0 == e . field && ( e . field = "" ) } ) , "string" != t && "auto" != t || ( this . expanded = ! 0 ) ) : "array" == e ? ( this . childs || ( this . childs = [ ] ) , this . childs . forEach ( function ( e , t ) { e . clearDom ( ) , e . fieldEditable = ! 1 , e . index = t } ) , "string" != t && "auto" != t || ( this . expanded = ! 0 ) ) : this . expanded = ! 1 , this . _attachToDom ( i ) } else this . type = e ; "auto" != e && "string" != e || ( this . value = "string" == e ? String ( this . value ) : this . _stringCast ( String ( this . value ) ) , this . focus ( ) ) , this . updateDom ( { updateIndexes : ! 0 } ) } } , n . prototype . deepEqual = function ( e ) { var t ; if ( "array" === this . type ) { if ( ! Array . isArray ( e ) ) return ! 1 ; if ( this . childs . length !== e . length ) return ! 1 ; for ( t = 0 ; t < this . childs . length ; t ++ ) if ( ! this . childs [ t ] . deepEqual ( e [ t ] ) ) return ! 1 } else if ( "object" === this . type ) { if ( "object" != typeof e ) return ! 1 ; var i = { } , n = 0 ; for ( t = 0 ; t < this . childs . length ; t ++ ) { var r = this . childs [ t ] ; if ( ! i [ r . field ] ) { if ( i [ r . field ] = ! 0 , n ++ , ! ( r . field in e ) ) return ! 1 ; if ( ! r . deepEqual ( e [ r . field ] ) ) return ! 1 } } if ( n !== Object . keys ( e ) . length ) return ! 1 } else if ( this . value !== e ) return ! 1 ; return ! 0 } , n . prototype . _getDomValue = function ( e ) { if ( this . dom . value && "array" != this . type && "object" != this . type && ( this . valueInnerText = f . getInnerText ( this . dom . value ) ) , void 0 != this . valueInnerText ) try { var t ; if ( "string" == this . type ) t = this . _unescapeHTML ( this . valueInnerText ) ; else { var i = this . _unescapeHTML ( this . valueInnerText ) ; t = this . _stringCast ( i ) } t !== this . value && ( this . value = t , this . _d
; var l = document . createElement ( "tr" ) ; l . appendChild ( document . createElement ( "td" ) ) , l . appendChild ( document . createElement ( "td" ) ) , l . appendChild ( a ) , l . className = "jsoneditor-show-more" , this . dom . tr = l , this . dom . moreContents = o , this . dom . moreText = s } return this . updateDom ( ) , this . dom . tr } , t . prototype . updateDom = function ( e ) { if ( this . isVisible ( ) ) { if ( this . dom . tr . node = this . parent . childs [ this . parent . visibleChilds ] , ! this . dom . tr . parentNode ) { var t = this . parent . _getNextTr ( ) ; t && t . parentNode . insertBefore ( this . dom . tr , t ) } this . dom . moreText . nodeValue = this . _getShowMoreText ( ) , this . dom . moreContents . style . marginLeft = 24 * ( this . getLevel ( ) + 1 ) + "px" } else this . dom . tr && this . dom . tr . parentNode && this . dom . tr . parentNode . removeChild ( this . dom . tr ) } , t . prototype . _getShowMoreText = function ( ) { return r ( "showMoreStatus" , { visibleChilds : this . parent . visibleChilds , totalChilds : this . parent . childs . length } ) + " " } , t . prototype . isVisible = function ( ) { return this . parent . expanded && this . parent . childs . length > this . parent . visibleChilds } , t . prototype . onEvent = function ( e ) { "keydown" === e . type && this . onKeyDown ( e ) } , t } var r = i ( 59 ) . translate ; e . exports = n } , function ( e , t , i ) { function n ( e , t ) { var i = '<div class="pico-modal-contents"><div class="pico-modal-header">' + o ( "sort" ) + "</div><form><table><tbody><tr> <td>" + o ( "sortFieldLabel" ) + ' </td> <td class="jsoneditor-modal-input"> <div class="jsoneditor-select-wrapper"> <select id="field" title="' + o ( "sortFieldTitle" ) + '"> </select> </div> </td></tr><tr> <td>' + o ( "sortDirectionLabel" ) + ' </td> <td class="jsoneditor-modal-input"> <div id="direction" class="jsoneditor-button-group"><input type="button" value="' + o ( "sortAscending" ) + '" title="' + o ( "sortAscendingTitle" ) + '" data-value="asc" class="jsoneditor-button-first jsoneditor-button-asc"/><input type="button" value="' + o ( "sortDescending" ) + '" title="' + o ( "sortDescendingTitle" ) + '" data-value="desc" class="jsoneditor-button-last jsoneditor-button-desc"/> </div> </td></tr><tr><td colspan="2" class="jsoneditor-modal-input jsoneditor-modal-actions"> <input type="submit" id="ok" value="' + o ( "ok" ) + '" /></td></tr></tbody></table></form></div>' ; r ( { parent : t , content : i , overlayClass : "jsoneditor-modal-overlay" , modalClass : "jsoneditor-modal jsoneditor-modal-sort" } ) . afterCreate ( function ( t ) { function i ( e ) { s . value = e , s . className = "jsoneditor-button-group jsoneditor-button-group-value-" + s . value } var n = t . modalElem ( ) . querySelector ( "form" ) , r = t . modalElem ( ) . querySelector ( "#ok" ) , o = t . modalElem ( ) . querySelector ( "#field" ) , s = t . modalElem ( ) . querySelector ( "#direction" ) , a = "array" === e . type ? e . getChildPaths ( ) : [ "." ] ; a . forEach ( function ( e ) { var t = document . createElement ( "option" ) ; t . text = e , t . value = e , o . appendChild ( t ) } ) , o . value = e . sortedBy ? e . sortedBy . path : a [ 0 ] , i ( e . sortedBy ? e . sortedBy . direction : "asc" ) , s . onclick = function ( e ) { i ( e . target . getAttribute ( "data-value" ) ) } , r . onclick = function ( i ) { i . preventDefault ( ) , i . stopPropagation ( ) , t . close ( ) ; var n = o . value , r = "." === n ? [ ] : n . split ( "." ) . slice ( 1 ) ; e . sortedBy = { path : n , direction : s . value } , e . sort ( r , s . value ) } , n && ( n . onsubmit = r . onclick ) } ) . afterClose ( function ( e ) { e . destroy ( ) } ) . show ( ) } var r = i ( 67 ) , o = i ( 59 ) . translate ; e . exports = n } , function ( e , t , i ) { var n , r , o ; ! function ( i , s ) { "use strict" ; r = [ ] , n = s , void 0 !== ( o = "function" == typeof n ? n . apply ( t , r ) : n ) && ( e . exports = o ) } ( 0 , function ( ) { "use strict" ; function e ( e ) { return "object" == typeof Node ? e instanceof Node : e && "object" == typeof e && "number" == typeof e . nodeType } function t ( e ) { return "string" == typeof e } function i ( ) { var e = [ ] ; return { watch : e . push . bind ( e ) , trigger : function ( t , i ) { for ( var n = ! 0 , r = { detail : i , preventDefault : function ( ) { n = ! 1 } } , o = 0 ; o < e . length ; o ++ ) e [ o ] ( t , r ) ; return n } } } function n ( e ) { return "none" === window . getComputedStyle ( e ) . display } function r ( e ) { this . elem = e } function o ( e , t ) { return r . make ( e ( "parent" ) ) . clazz ( "pico-overlay" ) . clazz ( e ( "overlayClass" , "" ) ) . stylize ( { display : "none" , position : "fixed" , top : "0px" , left : "0px" , height : "100%" , width : "100%" , zIndex : 1e4 } ) . stylize ( e ( "overlayStyles" , { opacity : . 5 , background : "#000" } ) ) . onClick ( function ( ) { e ( "overlayClose" , ! 0 ) && t ( ) } ) } function s ( e , t ) { var i = e ( "width" , "auto" ) ; "number" == typeof i && ( i += "px" ) ; var n = e ( "modalId" , "pico-" + d ++ ) ; return r . make ( e ( "parent" ) ) . clazz ( "pico-content" ) . clazz ( e ( "modalClass" , "" ) ) . st
; if ( void 0 == c && n . original ) return ; s . push ( c ) } return i && i . apply ( null , s ) || ! 0 } } , n = function ( e , t ) { var r = i ( "" , e , t ) ; return void 0 == r && n . original ? n . original . apply ( this , arguments ) : r } , r = function ( e , t ) { if ( - 1 !== t . indexOf ( "!" ) ) { var i = t . split ( "!" ) ; return r ( e , i [ 0 ] ) + "!" + r ( e , i [ 1 ] ) } if ( "." == t . charAt ( 0 ) ) { var n = e . split ( "/" ) . slice ( 0 , - 1 ) . join ( "/" ) ; for ( t = n + "/" + t ; - 1 !== t . indexOf ( "." ) && o != t ; ) { var o = t ; t = t . replace ( /\/\.\// , "/" ) . replace ( /[^\/]+\/\.\.\// , "" ) } } return t } , o = function ( e , n ) { n = r ( e , n ) ; var o = t . modules [ n ] ; if ( ! o ) { if ( "function" == typeof ( o = t . payloads [ n ] ) ) { var s = { } , a = { id : n , uri : "" , exports : s , packaged : ! 0 } ; s = o ( function ( e , t ) { return i ( n , e , t ) } , s , a ) || a . exports , t . modules [ n ] = s , delete t . payloads [ n ] } o = t . modules [ n ] = s || o } return o } ; ! function ( i ) { var r = e ; i && ( e [ i ] || ( e [ i ] = { } ) , r = e [ i ] ) , r . define && r . define . packaged || ( t . original = r . define , r . define = t , r . define . packaged = ! 0 ) , r . acequire && r . acequire . packaged || ( n . original = r . acequire , r . acequire = n , r . acequire . packaged = ! 0 ) } ( "ace" ) } ( ) , ace . define ( "ace/lib/regexp" , [ "require" , "exports" , "module" ] , function ( e , t , i ) { "use strict" ; function n ( e ) { return ( e . global ? "g" : "" ) + ( e . ignoreCase ? "i" : "" ) + ( e . multiline ? "m" : "" ) + ( e . extended ? "x" : "" ) + ( e . sticky ? "y" : "" ) } function r ( e , t , i ) { if ( Array . prototype . indexOf ) return e . indexOf ( t , i ) ; for ( var n = i || 0 ; n < e . length ; n ++ ) if ( e [ n ] === t ) return n ; return - 1 } var o = { exec : RegExp . prototype . exec , test : RegExp . prototype . test , match : String . prototype . match , replace : String . prototype . replace , split : String . prototype . split } , s = void 0 === o . exec . call ( /()??/ , "" ) [ 1 ] , a = function ( ) { return o . test . call ( /^/g , "" ) , ! /^/g . lastIndex } ( ) ; a && s || ( RegExp . prototype . exec = function ( e ) { var t , i , l = o . exec . apply ( this , arguments ) ; if ( "string" == typeof e && l ) { if ( ! s && l . length > 1 && r ( l , "" ) > - 1 && ( i = RegExp ( this . source , o . replace . call ( n ( this ) , "g" , "" ) ) , o . replace . call ( e . slice ( l . index ) , i , function ( ) { for ( var e = 1 ; e < arguments . length - 2 ; e ++ ) void 0 === arguments [ e ] && ( l [ e ] = void 0 ) } ) ) , this . _xregexp && this . _xregexp . captureNames ) for ( var c = 1 ; c < l . length ; c ++ ) ( t = this . _xregexp . captureNames [ c - 1 ] ) && ( l [ t ] = l [ c ] ) ; ! a && this . global && ! l [ 0 ] . length && this . lastIndex > l . index && this . lastIndex -- } return l } , a || ( RegExp . prototype . test = function ( e ) { var t = o . exec . call ( this , e ) ; return t && this . global && ! t [ 0 ] . length && this . lastIndex > t . index && this . lastIndex -- , ! ! t } ) ) } ) , ace . define ( "ace/lib/es5-shim" , [ "require" , "exports" , "module" ] , function ( e , t , i ) { function n ( ) { } function r ( e ) { try { return Object . defineProperty ( e , "sentinel" , { } ) , "sentinel" in e } catch ( e ) { } } function o ( e ) { return e = + e , e !== e ? e = 0 : 0 !== e && e !== 1 / 0 && e !== - 1 / 0 && ( e = ( e > 0 || - 1 ) * Math . floor ( Math . abs ( e ) ) ) , e } Function . prototype . bind || ( Function . prototype . bind = function ( e ) { var t = this ; if ( "function" != typeof t ) throw new TypeError ( "Function.prototype.bind called on incompatible " + t ) ; var i = p . call ( arguments , 1 ) , r = function ( ) { if ( this instanceof r ) { var n = t . apply ( this , i . concat ( p . call ( arguments ) ) ) ; return Object ( n ) === n ? n : this } return t . apply ( e , i . concat ( p . call ( arguments ) ) ) } ; return t . prototype && ( n . prototype = t . prototype , r . prototype = new n , n . prototype = null ) , r } ) ; var s , a , l , c , h , d = Function . prototype . call , u = Array . prototype , f = Object . prototype , p = u . slice , m = d . bind ( f . toString ) , g = d . bind ( f . hasOwnProperty ) ; if ( ( h = g ( f , "__defineGetter__" ) ) && ( s = d . bind ( f . _ _defineGetter _ _ ) , a = d . bind ( f . _ _defineSetter _ _ ) , l = d . bind ( f . _ _lookupGetter _ _ ) , c = d . bind ( f . _ _lookupSetter _ _ ) ) , 2 != [ 1 , 2 ] . splice ( 0 ) . length ) if ( function ( ) { function e ( e ) { var t = new Array ( e + 2 ) ; return t [ 0 ] = t [ 1 ] = 0 , t } var t , i = [ ] ; if ( i . splice . apply ( i , e ( 20 ) ) , i . splice . apply ( i , e ( 26 ) ) , t = i . length , i . splice ( 5 , 0 , "XXX" ) , i . length , t + 1 == i . length ) return ! 0 } ( ) ) { var v = Array . prototype . splice ; Array . prototype . splice = function ( e , t ) { return arguments . length ? v . apply ( this , [ void 0 === e ? 0 : e , void 0 === t ? this . length - e : t ] . concat ( p . call ( arguments , 2 ) ) ) : [ ] } } else Array . prototype . splice = function ( e , t ) { var i = this . length ; e > 0 ? e > i && ( e = i ) : void 0 == e ? e = 0 : e < 0 && ( e = Math . max ( i + e , 0 ) ) , e + t < i || ( t = i - e ) ; var n = this . slice ( e , e + t ) , r = p . call ( arguments , 2 ) , o = r . length ; if ( e === i ) o && this . push . apply ( this , r ) ; else { var s = Math . min ( t , i - e ) , a = e + s , l = a + o - s , c = i - a , h = i - s ; if ( l < a ) for ( var d = 0 ; d < c ; ++ d ) this [ l + d ] = this [ a + d ] ; else if ( l > a ) for ( d = c ; d -- ; ) this [ l + d ] = this [ a + d ] ; if ( o && e === h ) this . length = h , this . push . apply ( this , r ) ; else for ( this . length = h + o , d = 0 ; d < o ; ++ d ) this [ e + d ] = r [ d ] } return n } ; Array . isArray || ( Array . isA
o . $onCaptureMouseMove = o . releaseMouse = null , e && o . onMouseEvent ( "mouseup" , e ) } , c = function ( ) { o [ o . state ] && o [ o . state ] ( ) , o . $mouseMoved = ! 1 } ; if ( r . isOldIE && "dblclick" == e . domEvent . type ) return setTimeout ( function ( ) { l ( e ) } ) ; o . $onCaptureMouseMove = s , o . releaseMouse = n . capture ( this . editor . container , s , l ) ; var h = setInterval ( c , 20 ) } , this . releaseMouse = null , this . cancelContextMenu = function ( ) { var e = function ( t ) { t && t . domEvent && "contextmenu" != t . domEvent . type || ( this . editor . off ( "nativecontextmenu" , e ) , t && t . domEvent && n . stopEvent ( t . domEvent ) ) } . bind ( this ) ; setTimeout ( e , 10 ) , this . editor . on ( "nativecontextmenu" , e ) } } ) . call ( h . prototype ) , c . defineOptions ( h . prototype , "mouseHandler" , { scrollSpeed : { initialValue : 2 } , dragDelay : { initialValue : r . isMac ? 150 : 0 } , dragEnabled : { initialValue : ! 0 } , focusTimout : { initialValue : 0 } , tooltipFollowsMouse : { initialValue : ! 0 } } ) , t . MouseHandler = h } ) , ace . define ( "ace/mouse/fold_handler" , [ "require" , "exports" , "module" ] , function ( e , t , i ) { "use strict" ; function n ( e ) { e . on ( "click" , function ( t ) { var i = t . getDocumentPosition ( ) , n = e . session , r = n . getFoldAt ( i . row , i . column , 1 ) ; r && ( t . getAccelKey ( ) ? n . removeFold ( r ) : n . expandFold ( r ) , t . stop ( ) ) } ) , e . on ( "gutterclick" , function ( t ) { if ( "foldWidgets" == e . renderer . $gutterLayer . getRegion ( t ) ) { var i = t . getDocumentPosition ( ) . row , n = e . session ; n . foldWidgets && n . foldWidgets [ i ] && e . session . onFoldWidgetClick ( i , t ) , e . isFocused ( ) || e . focus ( ) , t . stop ( ) } } ) , e . on ( "gutterdblclick" , function ( t ) { if ( "foldWidgets" == e . renderer . $gutterLayer . getRegion ( t ) ) { var i = t . getDocumentPosition ( ) . row , n = e . session , r = n . getParentFoldRangeData ( i , ! 0 ) , o = r . range || r . firstRange ; if ( o ) { i = o . start . row ; var s = n . getFoldAt ( i , n . getLine ( i ) . length , 1 ) ; s ? n . removeFold ( s ) : ( n . addFold ( "..." , o ) , e . renderer . scrollCursorIntoView ( { row : o . start . row , column : 0 } ) ) } t . stop ( ) } } ) } t . FoldHandler = n } ) , ace . define ( "ace/keyboard/keybinding" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/event" ] , function ( e , t , i ) { "use strict" ; var n = e ( "../lib/keys" ) , r = e ( "../lib/event" ) , o = function ( e ) { this . $editor = e , this . $data = { editor : e } , this . $handlers = [ ] , this . setDefaultHandler ( e . commands ) } ; ( function ( ) { this . setDefaultHandler = function ( e ) { this . removeKeyboardHandler ( this . $defaultHandler ) , this . $defaultHandler = e , this . addKeyboardHandler ( e , 0 ) } , this . setKeyboardHandler = function ( e ) { var t = this . $handlers ; if ( t [ t . length - 1 ] != e ) { for ( ; t [ t . length - 1 ] && t [ t . length - 1 ] != this . $defaultHandler ; ) this . removeKeyboardHandler ( t [ t . length - 1 ] ) ; this . addKeyboardHandler ( e , 1 ) } } , this . addKeyboardHandler = function ( e , t ) { if ( e ) { "function" != typeof e || e . handleKeyboard || ( e . handleKeyboard = e ) ; var i = this . $handlers . indexOf ( e ) ; - 1 != i && this . $handlers . splice ( i , 1 ) , void 0 == t ? this . $handlers . push ( e ) : this . $handlers . splice ( t , 0 , e ) , - 1 == i && e . attach && e . attach ( this . $editor ) } } , this . removeKeyboardHandler = function ( e ) { var t = this . $handlers . indexOf ( e ) ; return - 1 != t && ( this . $handlers . splice ( t , 1 ) , e . detach && e . detach ( this . $editor ) , ! 0 ) } , this . getKeyboardHandler = function ( ) { return this . $handlers [ this . $handlers . length - 1 ] } , this . getStatusText = function ( ) { var e = this . $data , t = e . editor ; return this . $handlers . map ( function ( i ) { return i . getStatusText && i . getStatusText ( t , e ) || "" } ) . filter ( Boolean ) . join ( " " ) } , this . $callKeyboardHandlers = function ( e , t , i , n ) { for ( var o , s = ! 1 , a = this . $editor . commands , l = this . $handlers . length ; l -- && ! ( ( o = this . $handlers [ l ] . handleKeyboard ( this . $data , e , t , i , n ) ) && o . command && ( s = "null" == o . command || a . exec ( o . command , this . $editor , o . args , n ) , s && n && - 1 != e && 1 != o . passEvent && 1 != o . command . passEvent && r . stopEvent ( n ) , s ) ) ; ) ; return s || - 1 != e || ( o = { command : "insertstring" } , s = a . exec ( "insertstring" , this . $editor , t ) ) , s && this . $editor . _signal && this . $editor . _signal ( "keyboardActivity" , o ) , s } , this . onCommandKey = function ( e , t , i ) { var r = n . keyCodeToString ( i ) ; this . $callKeyboardHandlers ( t , r , i , e ) } , this . onTextInput = function ( e ) { this . $callKeyboardHandlers ( - 1 , e ) } } ) . call ( o . prototype ) , t . KeyBinding = o } ) , ace . define ( "ace/lib/bidiutil" , [ "require" , "exports" , "module" ] , function ( e , t , i ) { "use strict" ; function n ( e , t , i , n ) { var r = a ? p : f , m = null , g = null , v = null , y = 0 , w = null , C = - 1 , E = null , x = null , S = [ ] ; if ( ! n ) for ( E = 0 , n = [ ] ; E < i ; E ++ ) n [ E ] = s ( e [ E ] ) ; for ( l = a , c = ! 1 , h = ! 1 , d = ! 1 , u = ! 1 , x = 0 ; x < i ; x ++ ) { if ( m = y , S [ x ] = g = o ( e , n , S , x ) , y = r [ m ] [ g ] , w = 240 & y , y &= 15 , t [ x ] = v = r [ y ] [ 5 ] , w > 0 ) if ( 16 == w ) { for ( E = C ; E < x ; E ++ ) t [ E ] = 1 ; C = - 1 } else C = - 1 ; if ( r [ y ]
2018-08-15 18:29:56 +08:00
C : "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF" , Cc : "0000-001F007F-009F" , Cf : "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB" , Co : "E000-F8FF" , Cs : "D800-DFFF" , Cn : " 03780379037 F - 0383038 B038D03A20526 - 05300557055805600588058 B - 059005 C8 - 05 CF05EB - 05 EF05F5 - 05 FF06040605061C061D0620065F070E074B074C07B2 - 07 BF07FB - 07 FF082E082F083F - 08 FF093A093B094F095609570973 - 097809800984098 D098E0991099209A909B109B3 - 09 B509BA09BB09C509C609C909CA09CF - 09 D609D8 - 09 DB09DE09E409E509FC - 0 A000A040A0B - 0 A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43 - 0 A460A490A4A0A4E - 0 A500A52 - 0 A580A5D0A5F - 0 A650A76 - 0 A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1 - 0 ADF0AE40AE50AF00AF2 - 0B000 B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E - 0 B550B58 - 0 B5B0B5E0B640B650B72 - 0 B810B840B8B - 0 B8D0B910B96 - 0 B980B9B0B9D0BA0 - 0 BA20BA5 - 0 BA70BAB - 0 BAD0BBA - 0 BBD0BC3 - 0 BC50BC90BCE0BCF0BD1 - 0 BD60BD8 - 0 BE50BFB - 0 C000C040C0D0C110C290C340C3A - 0 C3C0C450C490C4E - 0 C540C570C5A - 0 C5F0C640C650C70 - 0 C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE - 0 CD40CD7 - 0 CDD0CDF0CE40CE50CF00CF3 - 0 D010D040D0D0D110D290D3A - 0 D3C0D450D490D4E - 0 D560D58 - 0 D5F0D640D650D76 - 0 D780D800D810D840D97 - 0 D990DB20DBC0DBE0DBF0DC7 - 0 DC90DCB - 0 DCE0DD50DD70DE0 - 0 DF10DF5 - 0E000 E3B - 0E3 E0E5C - 0E800 E830E850E860E890E8B0E8C0E8E - 0E930 E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE - 0 EFF0F480F6D - 0 F700F8C - 0 F8F0F980FBD0FCD0FD9 - 0 FFF10C6 - 10 CF10FD - 10 FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B - 135E137 D
; null == i && ( i = 1 / 0 ) , n = n || 0 ; var r , o ; for ( o = 0 ; o < t . length && ( r = t . charCodeAt ( o ) , 9 == r ? n += this . getScreenTabSize ( n ) : r >= 4352 && e ( r ) ? n += 2 : n += 1 , ! ( n > i ) ) ; o ++ ) ; return [ n , o ] } , this . lineWidgets = null , this . getRowLength = function ( e ) { if ( this . lineWidgets ) var t = this . lineWidgets [ e ] && this . lineWidgets [ e ] . rowCount || 0 ; else t = 0 ; return this . $useWrapMode && this . $wrapData [ e ] ? this . $wrapData [ e ] . length + 1 + t : 1 + t } , this . getRowLineCount = function ( e ) { return this . $useWrapMode && this . $wrapData [ e ] ? this . $wrapData [ e ] . length + 1 : 1 } , this . getRowWrapIndent = function ( e ) { if ( this . $useWrapMode ) { var t = this . screenToDocumentPosition ( e , Number . MAX _VALUE ) , i = this . $wrapData [ t . row ] ; return i . length && i [ 0 ] < t . column ? i . indent : 0 } return 0 } , this . getScreenLastRowColumn = function ( e ) { var t = this . screenToDocumentPosition ( e , Number . MAX _VALUE ) ; return this . documentToScreenColumn ( t . row , t . column ) } , this . getDocumentLastRowColumn = function ( e , t ) { var i = this . documentToScreenRow ( e , t ) ; return this . getScreenLastRowColumn ( i ) } , this . getDocumentLastRowColumnPosition = function ( e , t ) { var i = this . documentToScreenRow ( e , t ) ; return this . screenToDocumentPosition ( i , Number . MAX _VALUE / 10 ) } , this . getRowSplitData = function ( e ) { return this . $useWrapMode ? this . $wrapData [ e ] : void 0 } , this . getScreenTabSize = function ( e ) { return this . $tabSize - e % this . $tabSize } , this . screenToDocumentRow = function ( e , t ) { return this . screenToDocumentPosition ( e , t ) . row } , this . screenToDocumentColumn = function ( e , t ) { return this . screenToDocumentPosition ( e , t ) . column } , this . screenToDocumentPosition = function ( e , t , i ) { if ( e < 0 ) return { row : 0 , column : 0 } ; var n , r , o = 0 , s = 0 , a = 0 , l = 0 , c = this . $screenRowCache , h = this . $getRowCacheIndex ( c , e ) , d = c . length ; if ( d && h >= 0 ) var a = c [ h ] , o = this . $docRowCache [ h ] , u = e > c [ d - 1 ] ; else var u = ! d ; for ( var f = this . getLength ( ) - 1 , p = this . getNextFoldLine ( o ) , m = p ? p . start . row : 1 / 0 ; a <= e && ( l = this . getRowLength ( o ) , ! ( a + l > e || o >= f ) ) ; ) a += l , ++ o > m && ( o = p . end . row + 1 , p = this . getNextFoldLine ( o , p ) , m = p ? p . start . row : 1 / 0 ) , u && ( this . $docRowCache . push ( o ) , this . $screenRowCache . push ( a ) ) ; if ( p && p . start . row <= o ) n = this . getFoldDisplayLine ( p ) , o = p . start . row ; else { if ( a + l <= e || o > f ) return { row : f , column : this . getLine ( f ) . length } ; n = this . getLine ( o ) , p = null } var g = 0 , v = Math . floor ( e - a ) ; if ( this . $useWrapMode ) { var y = this . $wrapData [ o ] ; y && ( r = y [ v ] , v > 0 && y . length && ( g = y . indent , s = y [ v - 1 ] || y [ y . length - 1 ] , n = n . substring ( s ) ) ) } return void 0 !== i && this . $bidiHandler . isBidiRow ( a + v , o , v ) && ( t = this . $bidiHandler . offsetToCol ( i ) ) , s += this . $getStringScreenWidth ( n , t - g ) [ 1 ] , this . $useWrapMode && s >= r && ( s = r - 1 ) , p ? p . idxToPosition ( s ) : { row : o , column : s } } , this . documentToScreenPosition = function ( e , t ) { if ( void 0 === t ) var i = this . $clipPositionToDocument ( e . row , e . column ) ; else i = this . $clipPositionToDocument ( e , t ) ; e = i . row , t = i . column ; var n = 0 , r = null , o = null ; ( o = this . getFoldAt ( e , t , 1 ) ) && ( e = o . start . row , t = o . start . column ) ; var s , a = 0 , l = this . $docRowCache , c = this . $getRowCacheIndex ( l , e ) , h = l . length ; if ( h && c >= 0 ) var a = l [ c ] , n = this . $screenRowCache [ c ] , d = e > l [ h - 1 ] ; else var d = ! h ; for ( var u = this . getNextFoldLine ( a ) , f = u ? u . start . row : 1 / 0 ; a < e ; ) { if ( a >= f ) { if ( ( s = u . end . row + 1 ) > e ) break ; u = this . getNextFoldLine ( s , u ) , f = u ? u . start . row : 1 / 0 } else s = a + 1 ; n += this . getRowLength ( a ) , a = s , d && ( this . $docRowCache . push ( a ) , this . $screenRowCache . push ( n ) ) } var p = "" ; u && a >= f ? ( p = this . getFoldDisplayLine ( u , e , t ) , r = u . start . row ) : ( p = this . getLine ( e ) . substring ( 0 , t ) , r = e ) ; var m = 0 ; if ( this . $useWrapMode ) { var g = this . $wrapData [ r ] ; if ( g ) { for ( var v = 0 ; p . length >= g [ v ] ; ) n ++ , v ++ ; p = p . substring ( g [ v - 1 ] || 0 , p . length ) , m = v > 0 ? g . indent : 0 } } return { row : n , column : m + this . $getStringScreenWidth ( p ) [ 0 ] } } , this . documentToScreenColumn = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . column } , this . documentToScreenRow = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . row } , this . getScreenLength = function ( ) { var e = 0 , t = null ; if ( this . $useWrapMode ) for ( var i = this . $wrapData . length , n = 0 , r = 0 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ; n < i ; ) { var s = this . $wrapData [ n ] ; e += s ? s . length + 1 : 1 , n ++ , n > o && ( n = t . end . row + 1 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ) } else { e = this . getLength ( ) ; for ( var a = this . $foldData , r = 0 ; r < a . length ; r ++ ) t = a [ r ] , e -= t . end . row - t . start . row } return this . lineWidgets && ( e += this . $getWidgetScreenLength ( ) ) , e } , this . $setFontMetrics = function ( e ) { this . $enableVarChar && ( this . $getStringScreenWidth = function ( t , i , n ) { if ( 0 === i ) return [ 0 , 0 ] ;
this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . destroy = function ( ) { this . renderer . destroy ( ) , this . _signal ( "destroy" , this ) , this . session && this . session . destroy ( ) } , this . setAutoScrollEditorIntoView = function ( e ) { if ( e ) { var t , i = this , n = ! 1 ; this . $scrollAnchor || ( this . $scrollAnchor = document . createElement ( "div" ) ) ; var r = this . $scrollAnchor ; r . style . cssText = "position:absolute" , this . container . insertBefore ( r , this . container . firstChild ) ; var o = this . on ( "changeSelection" , function ( ) { n = ! 0 } ) , s = this . renderer . on ( "beforeRender" , function ( ) { n && ( t = i . renderer . container . getBoundingClientRect ( ) ) } ) , a = this . renderer . on ( "afterRender" , function ( ) { if ( n && t && ( i . isFocused ( ) || i . searchBox && i . searchBox . isFocused ( ) ) ) { var e = i . renderer , o = e . $cursorLayer . $pixelPos , s = e . layerConfig , a = o . top - s . offset ; n = o . top >= 0 && a + t . top < 0 || ! ( o . top < s . height && o . top + t . top + s . lineHeight > window . innerHeight ) && null , null != n && ( r . style . top = a + "px" , r . style . left = o . left + "px" , r . style . height = s . lineHeight + "px" , r . scrollIntoView ( n ) ) , n = t = null } } ) ; this . setAutoScrollEditorIntoView = function ( e ) { e || ( delete this . setAutoScrollEditorIntoView , this . off ( "changeSelection" , o ) , this . renderer . off ( "afterRender" , a ) , this . renderer . off ( "beforeRender" , s ) ) } } } , this . $resetCursorStyle = function ( ) { var e = this . $cursorStyle || "ace" , t = this . renderer . $cursorLayer ; t && ( t . setSmoothBlinking ( /smooth/ . test ( e ) ) , t . isBlinking = ! this . $readOnly && "wide" != e , r . setCssClass ( t . element , "ace_slim-cursors" , /slim/ . test ( e ) ) ) } } . call ( w . prototype ) , v . defineOptions ( w . prototype , "editor" , { selectionStyle : { set : function ( e ) { this . onSelectionChange ( ) , this . _signal ( "changeSelectionStyle" , { data : e } ) } , initialValue : "line" } , highlightActiveLine : { set : function ( ) { this . $updateHighlightActiveLine ( ) } , initialValue : ! 0 } , highlightSelectedWord : { set : function ( e ) { this . $onSelectionChange ( ) } , initialValue : ! 0 } , readOnly : { set : function ( e ) { this . $resetCursorStyle ( ) } , initialValue : ! 1 } , cursorStyle : { set : function ( e ) { this . $resetCursorStyle ( ) } , values : [ "ace" , "slim" , "smooth" , "wide" ] , initialValue : "ace" } , mergeUndoDeltas : { values : [ ! 1 , ! 0 , "always" ] , initialValue : ! 0 } , behavioursEnabled : { initialValue : ! 0 } , wrapBehavioursEnabled : { initialValue : ! 0 } , autoScrollEditorIntoView : { set : function ( e ) { this . setAutoScrollEditorIntoView ( e ) } } , keyboardHandler : { set : function ( e ) { this . setKeyboardHandler ( e ) } , get : function ( ) { return this . keybindingId } , handlesSet : ! 0 } , hScrollBarAlwaysVisible : "renderer" , vScrollBarAlwaysVisible : "renderer" , highlightGutterLine : "renderer" , animatedScroll : "renderer" , showInvisibles : "renderer" , showPrintMargin : "renderer" , printMarginColumn : "renderer" , printMargin : "renderer" , fadeFoldWidgets : "renderer" , showFoldWidgets : "renderer" , showLineNumbers : "renderer" , showGutter : "renderer" , displayIndentGuides : "renderer" , fontSize : "renderer" , fontFamily : "renderer" , maxLines : "renderer" , minLines : "renderer" , scrollPastEnd : "renderer" , fixedWidthGutter : "renderer" , theme : "renderer" , scrollSpeed : "$mouseHandler" , dragDelay : "$mouseHandler" , dragEnabled : "$mouseHandler" , focusTimout : "$mouseHandler" , tooltipFollowsMouse : "$mouseHandler" , firstLineNumber : "session" , overwrite : "session" , newLineMode : "session" , useWorker : "session" , useSoftTabs : "session" , tabSize : "session" , wrap : "session" , indentedSoftWrap : "session" , foldStyle : "session" , mode : "session" } ) , t . Editor = w } ) , ace . define ( "ace/undomanager" , [ "require" , "exports" , "module" ] , function ( e , t , i ) { "use strict" ; var n = function ( ) { this . reset ( ) } ; ( function ( ) { function e ( e ) { return { action : e . action , start : e . start , end : e . end , lines : 1 == e . lines . length ? null : e . lines , text : 1 == e . lines . length ? e . lines [ 0 ] : null } } function t ( e ) { return { action : e . action , start : e . start , end : e . end , lines : e . lines || [ e . text ] } } function i ( e , t ) { for ( var i = new Array ( e . length ) , n = 0 ; n < e . length ; n ++ ) { for ( var r = e [ n ] , o = { group : r . group , deltas : new Array ( r . length ) } , s = 0 ; s < r . deltas . length ; s ++ ) { var a = r . deltas [ s ] ; o . deltas [ s ] = t ( a ) } i [ n ] = o } return i } this . execute = function ( e ) { var t = e . args [ 0 ] ; this . $doc = e . args [ 1 ] , e . merge && this . hasUndo ( ) && ( this . dirtyCounter -- , t = this . $undoStack . pop ( ) . concat ( t ) ) , this . $undoStack . push ( t ) , this . $redoStack = [ ] , this . dirtyCounter < 0 && ( this . dirtyCounter = NaN ) , this . dirtyCounter ++ } , this . undo = function ( e ) { var t = this . $undoStack . pop ( ) , i = null ; return t && ( i = this . $doc . undoChanges ( t , e ) , this . $redoStack . push ( t ) , this . dirtyCounter -
this . $gutterLayer . setAnnotations ( e ) , this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . updateCursor = function ( ) { this . $loop . schedule ( this . CHANGE _CURSOR ) } , this . hideCursor = function ( ) { this . $cursorLayer . hideCursor ( ) } , this . showCursor = function ( ) { this . $cursorLayer . showCursor ( ) } , this . scrollSelectionIntoView = function ( e , t , i ) { this . scrollCursorIntoView ( e , i ) , this . scrollCursorIntoView ( t , i ) } , this . scrollCursorIntoView = function ( e , t , i ) { if ( 0 !== this . $size . scrollerHeight ) { var n = this . $cursorLayer . getPixelPosition ( e ) , r = n . left , o = n . top , s = i && i . top || 0 , a = i && i . bottom || 0 , l = this . $scrollAnimation ? this . session . getScrollTop ( ) : this . scrollTop ; l + s > o ? ( t && l + s > o + this . lineHeight && ( o -= t * this . $size . scrollerHeight ) , 0 === o && ( o = - this . scrollMargin . top ) , this . session . setScrollTop ( o ) ) : l + this . $size . scrollerHeight - a < o + this . lineHeight && ( t && l + this . $size . scrollerHeight - a < o - this . lineHeight && ( o += t * this . $size . scrollerHeight ) , this . session . setScrollTop ( o + this . lineHeight - this . $size . scrollerHeight ) ) ; var c = this . scrollLeft ; c > r ? ( r < this . $padding + 2 * this . layerConfig . characterWidth && ( r = - this . scrollMargin . left ) , this . session . setScrollLeft ( r ) ) : c + this . $size . scrollerWidth < r + this . characterWidth ? this . session . setScrollLeft ( Math . round ( r + this . characterWidth - this . $size . scrollerWidth ) ) : c <= this . $padding && r - c < this . characterWidth && this . session . setScrollLeft ( 0 ) } } , this . getScrollTop = function ( ) { return this . session . getScrollTop ( ) } , this . getScrollLeft = function ( ) { return this . session . getScrollLeft ( ) } , this . getScrollTopRow = function ( ) { return this . scrollTop / this . lineHeight } , this . getScrollBottomRow = function ( ) { return Math . max ( 0 , Math . floor ( ( this . scrollTop + this . $size . scrollerHeight ) / this . lineHeight ) - 1 ) } , this . scrollToRow = function ( e ) { this . session . setScrollTop ( e * this . lineHeight ) } , this . alignCursor = function ( e , t ) { "number" == typeof e && ( e = { row : e , column : 0 } ) ; var i = this . $cursorLayer . getPixelPosition ( e ) , n = this . $size . scrollerHeight - this . lineHeight , r = i . top - n * ( t || 0 ) ; return this . session . setScrollTop ( r ) , r } , this . STEPS = 8 , this . $calcSteps = function ( e , t ) { var i = 0 , n = this . STEPS , r = [ ] ; for ( i = 0 ; i < n ; ++ i ) r . push ( function ( e , t , i ) { return i * ( Math . pow ( e - 1 , 3 ) + 1 ) + t } ( i / this . STEPS , e , t - e ) ) ; return r } , this . scrollToLine = function ( e , t , i , n ) { var r = this . $cursorLayer . getPixelPosition ( { row : e , column : 0 } ) , o = r . top ; t && ( o -= this . $size . scrollerHeight / 2 ) ; var s = this . scrollTop ; this . session . setScrollTop ( o ) , ! 1 !== i && this . animateScrolling ( s , n ) } , this . animateScrolling = function ( e , t ) { var i = this . scrollTop ; if ( this . $animatedScroll ) { var n = this ; if ( e != i ) { if ( this . $scrollAnimation ) { var r = this . $scrollAnimation . steps ; if ( r . length && ( e = r [ 0 ] ) == i ) return } var o = n . $calcSteps ( e , i ) ; this . $scrollAnimation = { from : e , to : i , steps : o } , clearInterval ( this . $timer ) , n . session . setScrollTop ( o . shift ( ) ) , n . session . $scrollTop = i , this . $timer = setInterval ( function ( ) { o . length ? ( n . session . setScrollTop ( o . shift ( ) ) , n . session . $scrollTop = i ) : null != i ? ( n . session . $scrollTop = - 1 , n . session . setScrollTop ( i ) , i = null ) : ( n . $timer = clearInterval ( n . $timer ) , n . $scrollAnimation = null , t && t ( ) ) } , 10 ) } } } , this . scrollToY = function ( e ) { this . scrollTop !== e && ( this . $loop . schedule ( this . CHANGE _SCROLL ) , this . scrollTop = e ) } , this . scrollToX = function ( e ) { this . scrollLeft !== e && ( this . scrollLeft = e ) , this . $loop . schedule ( this . CHANGE _H _SCROLL ) } , this . scrollTo = function ( e , t ) { this . session . setScrollTop ( t ) , this . session . setScrollLeft ( t ) } , this . scrollBy = function ( e , t ) { t && this . session . setScrollTop ( this . session . getScrollTop ( ) + t ) , e && this . session . setScrollLeft ( this . session . getScrollLeft ( ) + e ) } , this . isScrollableBy = function ( e , t ) { return t < 0 && this . session . getScrollTop ( ) >= 1 - this . scrollMargin . top || ( t > 0 && this . session . getScrollTop ( ) + this . $size . scrollerHeight - this . layerConfig . maxHeight < - 1 + this . scrollMargin . bottom || ( e < 0 && this . session . getScrollLeft ( ) >= 1 - this . scrollMargin . left || ( e > 0 && this . session . getScrollLeft ( ) + this . $size . scrollerWidth - this . layerConfig . width < - 1 + this . scrollMargin . right || void 0 ) ) ) } , this . pixelToScreenCoordinates = function ( e , t ) { var i = this . scroller . getBoundingClientRect ( ) , n = e + this . scrollLeft - i . left - this . $padding , r = n / this . characterWidth , o = Math . floor ( ( t + this . scrollTop - i . top ) / this . lineHeight ) , s = Math . round ( r ) ; return { row : o , column : s , side : r - s > 0 ? 1 : - 1 , offsetX : n } } , this . screenToTextCoordinates = function ( e , t ) { var i = this . scroller .
2018-08-14 02:57:11 +08:00
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"
2017-07-04 01:23:32 +08:00
//# sourceMappingURL=jsoneditor.map