/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.dataVisualizer_bundle_jsonpfunction=window.dataVisualizer_bundle_jsonpfunction||[]).push([[4],{121:function(e,t,n){var i=n(57),r=n(122);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[e.i,r,""]]);i(r,{insert:"head",singleton:!1}),e.exports=r.locals||{}},122:function(e,t,n){(t=n(58)(!1)).push([e.i,".metricDistributionChartContainer{padding-top:4px;width:100%}.dataVisualizerColumnHeaderIcon{max-width:12px}.fieldDataTopValuesContainer{padding-top:4px}.topValuesValueLabelContainer{margin-right:12px}.analysis-summary-list.euiDescriptionList .euiDescriptionList__title{flex-basis:15%}.analysis-summary-list.euiDescriptionList .euiDescriptionList__description{flex-basis:85%}.import-summary-list.euiDescriptionList .euiDescriptionList__title{flex-basis:15%}.import-summary-list.euiDescriptionList .euiDescriptionList__description{flex-basis:85%}.failure-list{max-height:200px;overflow-y:auto}.failure-list .error-message{color:#f86b63}.file-datavisualizer-file-picker{max-width:inherit}.file-datavisualizer-file-picker .euiFilePicker__prompt{background-color:#1d1e24;box-shadow:none}.file-datavisualizer-file-picker .euiFilePicker__prompt .euiFilePicker__icon{height:40px;width:40px}.results .euiDescriptionList dd,.results .euiDescriptionList dt{margin-top:5px}.results .euiDescriptionList dd:first-child,.results .euiDescriptionList dt:first-child{margin-top:0}.file-datavisualizer-about-panel__icon{height:96px;margin-left:32px;margin-right:24px;width:96px}.euiFlexItem.file-datavisualizer-about-panel__doc-icon{margin-left:32px;margin-right:4px;margin-top:16px}",""]),e.exports=t},123:function(e,t,n){var i=n(57),r=n(124);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[e.i,r,""]]);i(r,{insert:"head",singleton:!1}),e.exports=r.locals||{}},124:function(e,t,n){(t=n(58)(!1)).push([e.i,".metricDistributionChartContainer{padding-top:4px;width:100%}.dataVisualizerColumnHeaderIcon{max-width:12px}.fieldDataTopValuesContainer{padding-top:4px}.topValuesValueLabelContainer{margin-right:12px}.analysis-summary-list.euiDescriptionList .euiDescriptionList__title{flex-basis:15%}.analysis-summary-list.euiDescriptionList .euiDescriptionList__description{flex-basis:85%}.import-summary-list.euiDescriptionList .euiDescriptionList__title{flex-basis:15%}.import-summary-list.euiDescriptionList .euiDescriptionList__description{flex-basis:85%}.failure-list{max-height:200px;overflow-y:auto}.failure-list .error-message{color:#bd271e}.file-datavisualizer-file-picker{max-width:inherit}.file-datavisualizer-file-picker .euiFilePicker__prompt{background-color:#fff;box-shadow:none}.file-datavisualizer-file-picker .euiFilePicker__prompt .euiFilePicker__icon{height:40px;width:40px}.results .euiDescriptionList dd,.results .euiDescriptionList dt{margin-top:5px}.results .euiDescriptionList dd:first-child,.results .euiDescriptionList dt:first-child{margin-top:0}.file-datavisualizer-about-panel__icon{height:96px;margin-left:32px;margin-right:24px;width:96px}.euiFlexItem.file-datavisualizer-about-panel__doc-icon{margin-left:32px;margin-right:4px;margin-top:16px}",""]),e.exports=t},125: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 i=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,s=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:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{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:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(s,r),t.JsonHighlightRules=s})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var i=e("../range").Range,r=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 r=n[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var o=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),o)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),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 i=e("../../lib/oop"),r=e("../../range").Range,s=e("./fold_mode").FoldMode,o=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)))};i.inherits(o,s),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 i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var r=this._getFoldWidgetBase(e,t,n);return!r&&this.startRegionRe.test(i)?"start":r},this.getFoldWidgetRange=function(e,t,n,i){var r,s=e.getLine(n);if(this.startRegionRe.test(s))return this.getCommentRegionBlock(e,s,n);if(r=s.match(this.foldingStartMarker)){var o=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,o);var a=e.getCommentFoldRange(n,o+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}return"markbegin"!==t&&(r=s.match(this.foldingStopMarker))?(o=r.index+r[0].length,r[1]?this.closingBracketBlock(e,r[1],n,o):e.getCommentFoldRange(n,o,-1)):void 0},this.getSectionRange=function(e,t){for(var n=e.getLine(t),i=n.search(/\S/),s=t,o=n.length,a=t+=1,l=e.getLength();++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=s)break;if(u.isMultiLine())t=u.end.row;else if(i==c)break}a=t}}return new r(s,o,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),s=e.getLength(),o=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++no)return new r(o,i,n,t.length)}}.call(o.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,i){"use strict";var r=e("../lib/oop"),s=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,u=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,s),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(i+=n),i},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(126),"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}))},126: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.columnthis.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.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},40:function(e,t,n){"use strict";n.r(t),n.d(t,"FileDataVisualizer",(function(){return Dt})),n(99);var i=n(0),r=n.n(i),s=n(30),o=n(5),a=n(1),l=n.n(a),c=n(27),u=n(9),d=n(6),p=n(3),m=n(56),h=n(2);const g=({hasPermissionToImport:e})=>{const{services:{fileUpload:{getMaxBytesFormatted:t}}}=Object(m.a)(),n=t();return Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"xl",alignItems:"center"},Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiIcon,{size:"xxl",type:"addDataApp",className:"file-datavisualizer-about-panel__icon"})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiTitle,{size:"m"},Object(h.jsx)("h1",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.visualizeDataFromLogFileTitle",defaultMessage:"Visualize data from a log file"}))),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiText,null,Object(h.jsx)("p",null,e?Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.visualizeAndImportDataFromLogFileDescription",defaultMessage:"Upload your file, analyze its data, and optionally import the data into an Elasticsearch index."}):Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.visualizeDataFromLogFileDescription",defaultMessage:"Upload your file and analyze its data."}))),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.supportedFileFormatDescription",defaultMessage:"The following file formats are supported:"}))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"l"},Object(h.jsx)(u.EuiFlexItem,{grow:!1,className:"file-datavisualizer-about-panel__doc-icon"},Object(h.jsx)(u.EuiIcon,{size:"m",type:"document"})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.delimitedTextFilesDescription",defaultMessage:"Delimited text files, such as CSV and TSV"}))))),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"l"},Object(h.jsx)(u.EuiFlexItem,{grow:!1,className:"file-datavisualizer-about-panel__doc-icon"},Object(h.jsx)(u.EuiIcon,{size:"m",type:"document"})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.newlineDelimitedJsonDescription",defaultMessage:"Newline-delimited JSON"}))))),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"l"},Object(h.jsx)(u.EuiFlexItem,{grow:!1,className:"file-datavisualizer-about-panel__doc-icon"},Object(h.jsx)(u.EuiIcon,{size:"m",type:"document"})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.logFilesWithCommonFormatDescription",defaultMessage:"Log files with a common format for the timestamp"}))))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.welcomeContent.uploadedFilesAllowedSizeDescription",defaultMessage:"You can upload files up to {maxFileSize}.",values:{maxFileSize:n}})))))};var f={name:"1azakc",styles:"text-align:center"};const b=({onFilePickerChange:e,hasPermissionToImport:t})=>Object(h.jsx)(u.EuiPageTemplate.Section,{alignment:"center","data-test-subj":"dataVisualizerPageFileUpload"},Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(u.EuiFlexItem,{grow:!0},Object(h.jsx)(g,{hasPermissionToImport:t}),Object(h.jsx)(u.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)("div",{css:f},Object(h.jsx)(u.EuiFilePicker,{id:"filePicker",initialPromptText:p.i18n.translate("xpack.dataVisualizer.file.aboutPanel.selectOrDragAndDropFileDescription",{defaultMessage:"Select or drag and drop a file"}),onChange:t=>e(t),className:"file-datavisualizer-file-picker"})),Object(h.jsx)(u.EuiSpacer,{size:"l"})))),j=()=>Object(h.jsx)(u.EuiPageTemplate.Section,{alignment:"center","data-test-subj":"dataVisualizerPageFileLoading",className:"file-datavisualizer-about-panel__content"},Object(h.jsx)(u.EuiPageTemplate.EmptyPrompt,{title:Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h1",{role:"alert"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.aboutPanel.analyzingDataTitle",defaultMessage:"Analyzing data"})))},Object(h.jsx)(u.EuiLoadingSpinner,{size:"xl"})));var x=n(34),w=n(78),y=n.n(w);const{TextHighlightRules:v}=y.a.acequire("ace/mode/text_highlight_rules"),O=y.a.acequire("ace/lib/oop"),S=function(){const e=this.createKeywordMapper({keyword:["describe|between|in|like|not|and|or|desc|select|from|where|having|group|by|orderasc|desc|pivot|for|in|as|show|columns|include|frozen|tables|escape|limit|rlike|all|distinct|is","avg|count|first|first_value|last|last_value|max|min|sum|kurtosis|mad|percentile|percentile_rank|skewness|stddev_pop|sum_of_squares|var_pop|histogram|case|coalesce|greatest|ifnull|iif|isnull|least|nullif|nvl|curdate|current_date|current_time|current_timestamp|curtime|dateadd|datediff|datepart|datetrunc|date_add|date_diff|date_part|date_trunc|day|dayname|dayofmonth|dayofweek|dayofyear|day_name|day_of_month|day_of_week|day_of_year|dom|dow|doy|hour|hour_of_day|idow|isodayofweek|isodow|isoweek|isoweekofyear|iso_day_of_week|iso_week_of_year|iw|iwoy|minute|minute_of_day|minute_of_hour|month|monthname|month_name|month_of_year|now|quarter|second|second_of_minute|timestampadd|timestampdiff|timestamp_add|timestamp_diff|today|week|week_of_year|year|abs|acos|asin|atan|atan2|cbrt|ceil|ceiling|cos|cosh|cot|degrees|e|exp|expm1|floor|log|log10|mod|pi|power|radians|rand|random|round|sign|signum|sin|sinh|sqrt|tan|truncate|ascii|bit_length|char|character_length|char_length|concat|insert|lcase|left|length|locate|ltrim|octet_length|position|repeat|replace|right|rtrim|space|substring|ucase|cast|convert|database|user|st_astext|st_aswkt|st_distance|st_geometrytype|st_geomfromtext|st_wkttosql|st_x|st_y|st_z|score","true|false","null|boolean|byte|short|integer|long|double|float|half_float|scaled_float|keyword|text|binary|date|ip|object|nested|time|interval_year|interval_month|interval_day|interval_hour|interval_minute|interval_second|interval_year_to_monthinteval_day_to_hour|interval_day_to_minute|interval_day_to_second|interval_hour_to_minute|interval_hour_to_secondinterval_minute_to_second|geo_point|geo_shape|shape"].join("|")},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"constant",regex:"'.*?'"},{token:"string",regex:"`.*?`"},{token:"entity.name.function",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"⇐|<⇒|\\*|\\.|\\:\\:|\\+|\\-|\\/|\\/\\/|%|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};O.inherits(S,v);const E=y.a.acequire("ace/lib/oop"),{TextHighlightRules:F}=y.a.acequire("ace/mode/text_highlight_rules"),M="def|int|long|byte|String|float|double|char|null|if|else|while|do|for|continue|break|new|try|catch|throw|this|instanceof|return|ctx";function k(){this.name="ScriptHighlightRules",this.$rules={start:[{token:"script.comment",regex:"\\/\\/.*$"},{token:"script.string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"script.string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"script.constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"script.constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"script.constant.language.boolean",regex:"(?:true|false)\\b"},{token:"script.keyword",regex:M},{token:"script.text",regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"script.keyword.operator",regex:"\\?\\.|\\*\\.|=~|==~|!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|->|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|typeof|void)"},{token:"script.lparen",regex:"[[({]"},{token:"script.rparen",regex:"[\\])}]"},{token:"script.text",regex:"\\s+"}]}}E.inherits(k,F),n(125);const{JsonHighlightRules:C}=y.a.acequire("ace/mode/json_highlight_rules"),_=y.a.acequire("ace/lib/oop"),P=function(e){const t={},n=[{token:["variable","whitespace","ace.punctuation.colon","whitespace","punctuation.start_triple_quote"],regex:'("(?:[^"]*_)?script"|"inline"|"source")(\\s*?)(:)(\\s*?)(""")',next:"script-start",merge:!1,push:!0},{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"punctuation.start_triple_quote",regex:'"""',next:"string_literal",merge:!1,push:!0},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{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",merge:!1,regex:"{",next:e=e||"json",push:!0},{token:"paren.lparen",merge:!1,regex:"[[(]"},{token:"paren.rparen",merge:!1,regex:"[\\])]"},{token:"paren.rparen",regex:"}",merge:!1,next:"pop"},{token:"punctuation.comma",regex:","},{token:"punctuation.colon",regex:":"},{token:"whitespace",regex:"\\s+"},{token:"text",regex:".+?"}];return t[e]=n,t[e+"-sql"]=[{token:["variable","whitespace","ace.punctuation.colon","whitespace","punctuation.start_triple_quote"],regex:'("query")(\\s*?)(:)(\\s*?)(""")',next:"sql-start",merge:!1,push:!0}].concat(n),t.string_literal=[{token:"punctuation.end_triple_quote",regex:'"""',next:"pop"},{token:"multi_string",regex:"."}],t};function L(){this.$rules={...P("start")},this.embedRules(k,"script-",[{token:"punctuation.end_triple_quote",regex:'"""',next:"pop"}]),this.embedRules(S,"sql-",[{token:"punctuation.end_triple_quote",regex:'"""',next:"pop"}])}_.inherits(L,C);const R={id:"ace/mode/json_worker",src:'/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0 and the Server Side Public License, v 1; you may not use this file except\n * in compliance with, at your election, the Elastic License 2.0 or the Server\n * Side Public License, v 1.\n */\n\n/* @notice\n *\n * This product includes code that is based on Ace editor, which was available\n * under a "BSD" license.\n *\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* eslint-disable prettier/prettier,no-var,eqeqeq,no-use-before-define,block-scoped-var,no-undef,\n guard-for-in,one-var,strict,no-redeclare,no-sequences,no-proto,new-cap,no-nested-ternary,no-unused-vars,\n prefer-const,no-empty,no-extend-native,camelcase */\n/*\n This file is loaded up as a blob by Brace to hand to Ace to load as Jsonp\n (hence the redefining of everything). It is based on the json\n mode from the brace distro.\n\n It is very likely that this file will be removed in future but for now it enables\n extended JSON parsing, like e.g. """{}""" (triple quotes)\n*/\n// @internal\n// @ts-nocheck\n"no use strict";\n! function(window) {\n function resolveModuleId(id, paths) {\n for (var testPath = id, tail = ""; testPath;) {\n var alias = paths[testPath];\n if ("string" == typeof alias) return alias + tail;\n if (alias) return alias.location.replace(/\\/*$/, "/") + (tail || alias.main || alias.name);\n if (alias === !1) return "";\n var i = testPath.lastIndexOf("/");\n if (-1 === i) break;\n tail = testPath.substr(i) + tail, testPath = testPath.slice(0, i)\n }\n return id\n }\n if (!(void 0 !== window.window && window.document || window.acequire && window.define)) {\n window.console || (window.console = function() {\n var msgs = Array.prototype.slice.call(arguments, 0);\n postMessage({\n type: "log",\n data: msgs\n })\n }, 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) {\n postMessage({\n type: "error",\n data: {\n message: message,\n data: err.data,\n file: file,\n line: line,\n col: col,\n stack: err.stack\n }\n })\n }, window.normalizeModule = function(parentId, moduleName) {\n if (-1 !== moduleName.indexOf("!")) {\n var chunks = moduleName.split("!");\n return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1])\n }\n if ("." == moduleName.charAt(0)) {\n var base = parentId.split("/").slice(0, -1).join("/");\n for (moduleName = (base ? base + "/" : "") + moduleName; - 1 !== moduleName.indexOf(".") && previous != moduleName;) {\n var previous = moduleName;\n moduleName = moduleName.replace(/^\\.\\//, "").replace(/\\/\\.\\//, "/").replace(/[^\\/]+\\/\\.\\.\\//, "")\n }\n }\n return moduleName\n }, window.acequire = function acequire(parentId, id) {\n if (id || (id = parentId, parentId = null), !id.charAt) throw Error("worker.js acequire() accepts only (parentId, id) as arguments");\n id = window.normalizeModule(parentId, id);\n var module = window.acequire.modules[id];\n if (module) return module.initialized || (module.initialized = !0, module.exports = module.factory().exports), module.exports;\n if (!window.acequire.tlns) return console.log("unable to load " + id);\n var path = resolveModuleId(id, window.acequire.tlns);\n return ".js" != path.slice(-3) && (path += ".js"), window.acequire.id = id, window.acequire.modules[id] = {}, importScripts(path), window.acequire(parentId, id)\n }, window.acequire.modules = {}, window.acequire.tlns = {}, window.define = function(id, deps, factory) {\n 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] = {\n exports: factory,\n initialized: !0\n }, void 0;\n deps.length || (deps = ["require", "exports", "module"]);\n var req = function(childId) {\n return window.acequire(id, childId)\n };\n window.acequire.modules[id] = {\n exports: {},\n factory: function() {\n var module = this,\n returnExports = factory.apply(this, deps.map(function(dep) {\n switch (dep) {\n case "require":\n return req;\n case "exports":\n return module.exports;\n case "module":\n return module;\n default:\n return req(dep)\n }\n }));\n return returnExports && (module.exports = returnExports), module\n }\n }\n }, window.define.amd = {}, acequire.tlns = {}, window.initBaseUrls = function(topLevelNamespaces) {\n for (var i in topLevelNamespaces) acequire.tlns[i] = topLevelNamespaces[i]\n }, window.initSender = function() {\n var EventEmitter = window.acequire("ace/lib/event_emitter").EventEmitter,\n oop = window.acequire("ace/lib/oop"),\n Sender = function() {};\n return function() {\n oop.implement(this, EventEmitter), this.callback = function(data, callbackId) {\n postMessage({\n type: "call",\n id: callbackId,\n data: data\n })\n }, this.emit = function(name, data) {\n postMessage({\n type: "event",\n name: name,\n data: data\n })\n }\n }.call(Sender.prototype), new Sender\n };\n var main = window.main = null,\n sender = window.sender = null;\n window.onmessage = function(e) {\n var msg = e.data;\n if (msg.event && sender) sender._signal(msg.event, msg.data);\n else if (msg.command)\n if (main[msg.command]) main[msg.command].apply(main, msg.args);\n else {\n if (!window[msg.command]) throw Error("Unknown command:" + msg.command);\n window[msg.command].apply(window, msg.args)\n }\n else if (msg.init) {\n window.initBaseUrls(msg.tlns), acequire("ace/lib/es5-shim"), sender = window.sender = window.initSender();\n var clazz = acequire(msg.module)[msg.classname];\n main = window.main = new clazz(sender)\n }\n }\n }\n}(this), ace.define("ace/lib/oop", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n exports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n })\n }, exports.mixin = function(obj, mixin) {\n for (var key in mixin) obj[key] = mixin[key];\n return obj\n }, exports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin)\n }\n}), ace.define("ace/range", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n var comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column\n },\n Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n }, this.end = {\n row: endRow,\n column: endColumn\n }\n };\n (function() {\n this.isEqual = function(range) {\n 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\n }, this.toString = function() {\n return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"\n }, this.contains = function(row, column) {\n return 0 == this.compare(row, column)\n }, this.compareRange = function(range) {\n var cmp, end = range.end,\n start = range.start;\n 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)\n }, this.comparePoint = function(p) {\n return this.compare(p.row, p.column)\n }, this.containsRange = function(range) {\n return 0 == this.comparePoint(range.start) && 0 == this.comparePoint(range.end)\n }, this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return -1 == cmp || 0 == cmp || 1 == cmp\n }, this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column\n }, this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column\n }, this.setStart = function(row, column) {\n "object" == typeof row ? (this.start.column = row.column, this.start.row = row.row) : (this.start.row = row, this.start.column = column)\n }, this.setEnd = function(row, column) {\n "object" == typeof row ? (this.end.column = row.column, this.end.row = row.row) : (this.end.row = row, this.end.column = column)\n }, this.inside = function(row, column) {\n return 0 == this.compare(row, column) ? this.isEnd(row, column) || this.isStart(row, column) ? !1 : !0 : !1\n }, this.insideStart = function(row, column) {\n return 0 == this.compare(row, column) ? this.isEnd(row, column) ? !1 : !0 : !1\n }, this.insideEnd = function(row, column) {\n return 0 == this.compare(row, column) ? this.isStart(row, column) ? !1 : !0 : !1\n }, this.compare = function(row, column) {\n 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\n }, this.compareStart = function(row, column) {\n return this.start.row == row && this.start.column == column ? -1 : this.compare(row, column)\n }, this.compareEnd = function(row, column) {\n return this.end.row == row && this.end.column == column ? 1 : this.compare(row, column)\n }, this.compareInside = function(row, column) {\n return this.end.row == row && this.end.column == column ? 1 : this.start.row == row && this.start.column == column ? -1 : this.compare(row, column)\n }, this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow) var end = {\n row: lastRow + 1,\n column: 0\n };\n else if (firstRow > this.end.row) var end = {\n row: firstRow,\n column: 0\n };\n if (this.start.row > lastRow) var start = {\n row: lastRow + 1,\n column: 0\n };\n else if (firstRow > this.start.row) var start = {\n row: firstRow,\n column: 0\n };\n return Range.fromPoints(start || this.start, end || this.end)\n }, this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n if (0 == cmp) return this;\n if (-1 == cmp) var start = {\n row: row,\n column: column\n };\n else var end = {\n row: row,\n column: column\n };\n return Range.fromPoints(start || this.start, end || this.end)\n }, this.isEmpty = function() {\n return this.start.row === this.end.row && this.start.column === this.end.column\n }, this.isMultiLine = function() {\n return this.start.row !== this.end.row\n }, this.clone = function() {\n return Range.fromPoints(this.start, this.end)\n }, this.collapseRows = function() {\n 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)\n }, this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start),\n screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column)\n }, this.moveBy = function(row, column) {\n this.start.row += row, this.start.column += column, this.end.row += row, this.end.column += column\n }\n }).call(Range.prototype), Range.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column)\n }, Range.comparePoints = comparePoints, Range.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column\n }, exports.Range = Range\n}), ace.define("ace/apply_delta", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n exports.applyDelta = function(docLines, delta) {\n var row = delta.start.row,\n startColumn = delta.start.column,\n line = docLines[row] || "";\n switch (delta.action) {\n case "insert":\n var lines = delta.lines;\n if (1 === lines.length) docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args), docLines[row] = line.substring(0, startColumn) + docLines[row], docLines[row + delta.lines.length - 1] += line.substring(startColumn)\n }\n break;\n case "remove":\n var endColumn = delta.end.column,\n endRow = delta.end.row;\n 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))\n }\n }\n}), ace.define("ace/lib/event_emitter", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n var EventEmitter = {},\n stopPropagation = function() {\n this.propagationStopped = !0\n },\n preventDefault = function() {\n this.defaultPrevented = !0\n };\n EventEmitter._emit = EventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [],\n defaultHandler = this._defaultHandlers[eventName];\n if (listeners.length || defaultHandler) {\n "object" == typeof e && e || (e = {}), e.type || (e.type = eventName), e.stopPropagation || (e.stopPropagation = stopPropagation), e.preventDefault || (e.preventDefault = preventDefault), listeners = listeners.slice();\n for (var i = 0; listeners.length > i && (listeners[i](e, this), !e.propagationStopped); i++);\n return defaultHandler && !e.defaultPrevented ? defaultHandler(e, this) : void 0\n }\n }, EventEmitter._signal = function(eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (listeners) {\n listeners = listeners.slice();\n for (var i = 0; listeners.length > i; i++) listeners[i](e, this)\n }\n }, EventEmitter.once = function(eventName, callback) {\n var _self = this;\n callback && this.addEventListener(eventName, function newCallback() {\n _self.removeEventListener(eventName, newCallback), callback.apply(null, arguments)\n })\n }, EventEmitter.setDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (handlers || (handlers = this._defaultHandlers = {\n _disabled_: {}\n }), handlers[eventName]) {\n var old = handlers[eventName],\n disabled = handlers._disabled_[eventName];\n disabled || (handlers._disabled_[eventName] = disabled = []), disabled.push(old);\n var i = disabled.indexOf(callback); - 1 != i && disabled.splice(i, 1)\n }\n handlers[eventName] = callback\n }, EventEmitter.removeDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (handlers) {\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) handlers[eventName], disabled && this.setDefaultHandler(eventName, disabled.pop());\n else if (disabled) {\n var i = disabled.indexOf(callback); - 1 != i && disabled.splice(i, 1)\n }\n }\n }, EventEmitter.on = EventEmitter.addEventListener = function(eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n return listeners || (listeners = this._eventRegistry[eventName] = []), -1 == listeners.indexOf(callback) && listeners[capturing ? "unshift" : "push"](callback), callback\n }, EventEmitter.off = EventEmitter.removeListener = EventEmitter.removeEventListener = function(eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (listeners) {\n var index = listeners.indexOf(callback); - 1 !== index && listeners.splice(index, 1)\n }\n }, EventEmitter.removeAllListeners = function(eventName) {\n this._eventRegistry && (this._eventRegistry[eventName] = [])\n }, exports.EventEmitter = EventEmitter\n}), ace.define("ace/anchor", ["require", "exports", "module", "ace/lib/oop", "ace/lib/event_emitter"], function(acequire, exports) {\n "use strict";\n var oop = acequire("./lib/oop"),\n EventEmitter = acequire("./lib/event_emitter").EventEmitter,\n Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this), this.attach(doc), column === void 0 ? this.setPosition(row.row, row.column) : this.setPosition(row, column)\n };\n (function() {\n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return point1.row < point2.row || point1.row == point2.row && bColIsAfter\n }\n\n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = "insert" == delta.action,\n deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row),\n deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column),\n deltaStart = delta.start,\n deltaEnd = deltaIsInsert ? deltaStart : delta.end;\n return $pointsInOrder(point, deltaStart, moveIfEqual) ? {\n row: point.row,\n column: point.column\n } : $pointsInOrder(deltaEnd, point, !moveIfEqual) ? {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n } : {\n row: deltaStart.row,\n column: deltaStart.column\n }\n }\n oop.implement(this, EventEmitter), this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column)\n }, this.getDocument = function() {\n return this.document\n }, this.$insertRight = !1, this.onChange = function(delta) {\n if (!(delta.start.row == delta.end.row && delta.start.row != this.row || delta.start.row > this.row)) {\n var point = $getTransformedPoint(delta, {\n row: this.row,\n column: this.column\n }, this.$insertRight);\n this.setPosition(point.row, point.column, !0)\n }\n }, this.setPosition = function(row, column, noClip) {\n var pos;\n if (pos = noClip ? {\n row: row,\n column: column\n } : this.$clipPositionToDocument(row, column), this.row != pos.row || this.column != pos.column) {\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row, this.column = pos.column, this._signal("change", {\n old: old,\n value: pos\n })\n }\n }, this.detach = function() {\n this.document.removeEventListener("change", this.$onChange)\n }, this.attach = function(doc) {\n this.document = doc || this.document, this.document.on("change", this.$onChange)\n }, this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n 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\n }\n }).call(Anchor.prototype)\n}), ace.define("ace/document", ["require", "exports", "module", "ace/lib/oop", "ace/apply_delta", "ace/lib/event_emitter", "ace/range", "ace/anchor"], function(acequire, exports) {\n "use strict";\n var oop = acequire("./lib/oop"),\n applyDelta = acequire("./apply_delta").applyDelta,\n EventEmitter = acequire("./lib/event_emitter").EventEmitter,\n Range = acequire("./range").Range,\n Anchor = acequire("./anchor").Anchor,\n Document = function(textOrLines) {\n this.$lines = [""], 0 === textOrLines.length ? this.$lines = [""] : Array.isArray(textOrLines) ? this.insertMergedLines({\n row: 0,\n column: 0\n }, textOrLines) : this.insert({\n row: 0,\n column: 0\n }, textOrLines)\n };\n (function() {\n oop.implement(this, EventEmitter), this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length)), this.insert({\n row: 0,\n column: 0\n }, text)\n }, this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter())\n }, this.createAnchor = function(row, column) {\n return new Anchor(this, row, column)\n }, this.$split = 0 === "aaa".split(/a/).length ? function(text) {\n return text.replace(/\\r\\n|\\r/g, "\\n").split("\\n")\n } : function(text) {\n return text.split(/\\r\\n|\\r|\\n/)\n }, this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : "\\n", this._signal("changeNewLineMode")\n }, this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case "windows":\n return "\\r\\n";\n case "unix":\n return "\\n";\n default:\n return this.$autoNewLine || "\\n"\n }\n }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function(newLineMode) {\n this.$newLineMode !== newLineMode && (this.$newLineMode = newLineMode, this._signal("changeNewLineMode"))\n }, this.getNewLineMode = function() {\n return this.$newLineMode\n }, this.isNewLine = function(text) {\n return "\\r\\n" == text || "\\r" == text || "\\n" == text\n }, this.getLine = function(row) {\n return this.$lines[row] || ""\n }, this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1)\n }, this.getAllLines = function() {\n return this.getLines(0, this.getLength())\n }, this.getLength = function() {\n return this.$lines.length\n }, this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter())\n }, this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n else {\n lines = this.getLines(range.start.row, range.end.row), lines[0] = (lines[0] || "").substring(range.start.column);\n var l = lines.length - 1;\n range.end.row - range.start.row == l && (lines[l] = lines[l].substring(0, range.end.column))\n }\n return lines\n }, this.insertLines = function(row, lines) {\n return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(row, lines)\n }, this.removeLines = function(firstRow, lastRow) {\n return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(firstRow, lastRow)\n }, this.insertNewLine = function(position) {\n return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."), this.insertMergedLines(position, ["", ""])\n }, this.insert = function(position, text) {\n return 1 >= this.getLength() && this.$detectNewLine(text), this.insertMergedLines(position, this.$split(text))\n }, this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column),\n end = this.pos(position.row, position.column + text.length);\n return this.applyDelta({\n start: start,\n end: end,\n action: "insert",\n lines: [text]\n }, !0), this.clonePos(end)\n }, this.clippedPos = function(row, column) {\n var length = this.getLength();\n void 0 === row ? row = length : 0 > row ? row = 0 : row >= length && (row = length - 1, column = void 0);\n var line = this.getLine(row);\n return void 0 == column && (column = line.length), column = Math.min(Math.max(column, 0), line.length), {\n row: row,\n column: column\n }\n }, this.clonePos = function(pos) {\n return {\n row: pos.row,\n column: pos.column\n }\n }, this.pos = function(row, column) {\n return {\n row: row,\n column: column\n }\n }, this.$clipPosition = function(position) {\n var length = this.getLength();\n 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\n }, this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n this.getLength() > row ? (lines = lines.concat([""]), column = 0) : (lines = [""].concat(lines), row--, column = this.$lines[row].length), this.insertMergedLines({\n row: row,\n column: column\n }, lines)\n }, this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column),\n end = {\n row: start.row + lines.length - 1,\n column: (1 == lines.length ? start.column : 0) + lines[lines.length - 1].length\n };\n return this.applyDelta({\n start: start,\n end: end,\n action: "insert",\n lines: lines\n }), this.clonePos(end)\n }, this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column),\n end = this.clippedPos(range.end.row, range.end.column);\n return this.applyDelta({\n start: start,\n end: end,\n action: "remove",\n lines: this.getLinesForRange({\n start: start,\n end: end\n })\n }), this.clonePos(start)\n }, this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn),\n end = this.clippedPos(row, endColumn);\n return this.applyDelta({\n start: start,\n end: end,\n action: "remove",\n lines: this.getLinesForRange({\n start: start,\n end: end\n })\n }, !0), this.clonePos(start)\n }, this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1), lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0,\n deleteLastNewLine = this.getLength() - 1 > lastRow,\n startRow = deleteFirstNewLine ? firstRow - 1 : firstRow,\n startCol = deleteFirstNewLine ? this.getLine(startRow).length : 0,\n endRow = deleteLastNewLine ? lastRow + 1 : lastRow,\n endCol = deleteLastNewLine ? 0 : this.getLine(endRow).length,\n range = new Range(startRow, startCol, endRow, endCol),\n deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n return this.applyDelta({\n start: range.start,\n end: range.end,\n action: "remove",\n lines: this.getLinesForRange(range)\n }), deletedLines\n }, this.removeNewLine = function(row) {\n this.getLength() - 1 > row && row >= 0 && this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: "remove",\n lines: ["", ""]\n })\n }, this.replace = function(range, text) {\n if (range instanceof Range || (range = Range.fromPoints(range.start, range.end)), 0 === text.length && range.isEmpty()) return range.start;\n if (text == this.getTextRange(range)) return range.end;\n this.remove(range);\n var end;\n return end = text ? this.insert(range.start, text) : range.start\n }, this.applyDeltas = function(deltas) {\n for (var i = 0; deltas.length > i; i++) this.applyDelta(deltas[i])\n }, this.revertDeltas = function(deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) this.revertDelta(deltas[i])\n }, this.applyDelta = function(delta, doNotValidate) {\n var isInsert = "insert" == delta.action;\n (isInsert ? 1 >= delta.lines.length && !delta.lines[0] : !Range.comparePoints(delta.start, delta.end)) || (isInsert && delta.lines.length > 2e4 && this.$splitAndapplyLargeDelta(delta, 2e4), applyDelta(this.$lines, delta, doNotValidate), this._signal("change", delta))\n }, this.$splitAndapplyLargeDelta = function(delta, MAX) {\n for (var lines = delta.lines, l = lines.length, row = delta.start.row, column = delta.start.column, from = 0, to = 0;;) {\n from = to, to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk, delta.start.row = row + from, delta.start.column = column;\n break\n }\n chunk.push(""), this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, !0)\n }\n }, this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: "insert" == delta.action ? "remove" : "insert",\n lines: delta.lines.slice()\n })\n }, this.indexToPosition = function(index, startRow) {\n for (var lines = this.$lines || this.getAllLines(), newlineLength = this.getNewLineCharacter().length, i = startRow || 0, l = lines.length; l > i; i++)\n if (index -= lines[i].length + newlineLength, 0 > index) return {\n row: i,\n column: index + lines[i].length + newlineLength\n };\n return {\n row: l - 1,\n column: lines[l - 1].length\n }\n }, this.positionToIndex = function(pos, startRow) {\n for (var lines = this.$lines || this.getAllLines(), newlineLength = this.getNewLineCharacter().length, index = 0, row = Math.min(pos.row, lines.length), i = startRow || 0; row > i; ++i) index += lines[i].length + newlineLength;\n return index + pos.column\n }\n }).call(Document.prototype), exports.Document = Document\n}), ace.define("ace/lib/lang", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n exports.last = function(a) {\n return a[a.length - 1]\n }, exports.stringReverse = function(string) {\n return string.split("").reverse().join("")\n }, exports.stringRepeat = function(string, count) {\n for (var result = ""; count > 0;) 1 & count && (result += string), (count >>= 1) && (string += string);\n return result\n };\n var trimBeginRegexp = /^\\s\\s*/,\n trimEndRegexp = /\\s\\s*$/;\n exports.stringTrimLeft = function(string) {\n return string.replace(trimBeginRegexp, "")\n }, exports.stringTrimRight = function(string) {\n return string.replace(trimEndRegexp, "")\n }, exports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) copy[key] = obj[key];\n return copy\n }, exports.copyArray = function(array) {\n for (var copy = [], i = 0, l = array.length; l > i; i++) copy[i] = array[i] && "object" == typeof array[i] ? this.copyObject(array[i]) : array[i];\n return copy\n }, exports.deepCopy = function deepCopy(obj) {\n if ("object" != typeof obj || !obj) return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; obj.length > key; key++) copy[key] = deepCopy(obj[key]);\n return copy\n }\n if ("[object Object]" !== Object.prototype.toString.call(obj)) return obj;\n copy = {};\n for (var key in obj) copy[key] = deepCopy(obj[key]);\n return copy\n }, exports.arrayToMap = function(arr) {\n for (var map = {}, i = 0; arr.length > i; i++) map[arr[i]] = 1;\n return map\n }, exports.createMap = function(props) {\n var map = Object.create(null);\n for (var i in props) map[i] = props[i];\n return map\n }, exports.arrayRemove = function(array, value) {\n for (var i = 0; array.length >= i; i++) value === array[i] && array.splice(i, 1)\n }, exports.escapeRegExp = function(str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, "\\\\$1")\n }, exports.escapeHTML = function(str) {\n return str.replace(/&/g, "&").replace(/"/g, """).replace(/\'/g, "'").replace(/ i; i += 2) {\n if (Array.isArray(data[i + 1])) var d = {\n action: "insert",\n start: data[i],\n lines: data[i + 1]\n };\n else var d = {\n action: "remove",\n start: data[i],\n end: data[i + 1]\n };\n doc.applyDelta(d, !0)\n }\n return _self.$timeout ? deferredUpdate.schedule(_self.$timeout) : (_self.onUpdate(), void 0)\n })\n };\n (function() {\n this.$timeout = 500, this.setTimeout = function(timeout) {\n this.$timeout = timeout\n }, this.setValue = function(value) {\n this.doc.setValue(value), this.deferredUpdate.schedule(this.$timeout)\n }, this.getValue = function(callbackId) {\n this.sender.callback(this.doc.getValue(), callbackId)\n }, this.onUpdate = function() {}, this.isPending = function() {\n return this.deferredUpdate.isPending()\n }\n }).call(Mirror.prototype)\n}), ace.define("ace/mode/json/json_parse", ["require", "exports", "module"], function() {\n "use strict";\n var at, ch, text, value, escapee = {\n \'"\': \'"\',\n "\\\\": "\\\\",\n "/": "/",\n b: "\\b",\n f: "\\f",\n n: "\\n",\n r: "\\r",\n t: "\t"\n },\n error = function(m) {\n throw {\n name: "SyntaxError",\n message: m,\n at: at,\n text: text\n }\n },\n reset = function (newAt) {\n ch = text.charAt(newAt);\n at = newAt + 1;\n },\n next = function(c) {\n return c && c !== ch && error("Expected \'" + c + "\' instead of \'" + ch + "\'"), ch = text.charAt(at), at += 1, ch\n },\n nextUpTo = function (upTo, errorMessage) {\n let currentAt = at,\n i = text.indexOf(upTo, currentAt);\n if (i < 0) {\n error(errorMessage || \'Expected \\\'\' + upTo + \'\\\'\');\n }\n reset(i + upTo.length);\n return text.substring(currentAt, i);\n },\n peek = function (c) {\n return text.substr(at, c.length) === c; // nocommit - double check\n },\n number = function() {\n var number, string = "";\n for ("-" === ch && (string = "-", next("-")); ch >= "0" && "9" >= ch;) string += ch, next();\n if ("." === ch)\n for (string += "."; next() && ch >= "0" && "9" >= ch;) string += ch;\n if ("e" === ch || "E" === ch)\n for (string += ch, next(), ("-" === ch || "+" === ch) && (string += ch, next()); ch >= "0" && "9" >= ch;) string += ch, next();\n return number = +string, isNaN(number) ? (error("Bad number"), void 0) : number\n },\n string = function() {\n var hex, i, uffff, string = "";\n if (\'"\' === ch) {\n if (peek(\'""\')) {\n // literal\n next(\'"\');\n next(\'"\');\n return nextUpTo(\'"""\', \'failed to find closing \\\'"""\\\'\');\n } else {\n for (; next();) {\n if (\'"\' === ch) return next(), string;\n if ("\\\\" === ch)\n if (next(), "u" === ch) {\n for (uffff = 0, i = 0; 4 > i && (hex = parseInt(next(), 16), isFinite(hex)); i += 1) uffff = 16 * uffff + hex;\n string += String.fromCharCode(uffff)\n } else {\n if ("string" != typeof escapee[ch]) break;\n string += escapee[ch]\n }\n else string += ch\n }\n }\n }\n error("Bad string")\n },\n white = function() {\n for (; ch && " " >= ch;) next()\n },\n word = function() {\n switch (ch) {\n case "t":\n return next("t"), next("r"), next("u"), next("e"), !0;\n case "f":\n return next("f"), next("a"), next("l"), next("s"), next("e"), !1;\n case "n":\n return next("n"), next("u"), next("l"), next("l"), null\n }\n error("Unexpected \'" + ch + "\'")\n },\n array = function() {\n var array = [];\n if ("[" === ch) {\n if (next("["), white(), "]" === ch) return next("]"), array;\n for (; ch;) {\n if (array.push(value()), white(), "]" === ch) return next("]"), array;\n next(","), white()\n }\n }\n error("Bad array")\n },\n object = function() {\n var key, object = {};\n if ("{" === ch) {\n if (next("{"), white(), "}" === ch) return next("}"), object;\n for (; ch;) {\n if (key = string(), white(), next(":"), Object.hasOwnProperty.call(object, key) && error(\'Duplicate key "\' + key + \'"\'), object[key] = value(), white(), "}" === ch) return next("}"), object;\n next(","), white()\n }\n }\n error("Bad object")\n };\n return value = function() {\n switch (white(), ch) {\n case "{":\n return object();\n case "[":\n return array();\n case \'"\':\n return string();\n case "-":\n return number();\n default:\n return ch >= "0" && "9" >= ch ? number() : word()\n }\n },\n function(source, reviver) {\n var result;\n return text = source, at = 0, ch = " ", result = value(), white(), ch && error("Syntax error"), "function" == typeof reviver ? function walk(holder, key) {\n var k, v, value = holder[key];\n if (value && "object" == typeof value)\n for (k in value) Object.hasOwnProperty.call(value, k) && (v = walk(value, k), void 0 !== v ? value[k] = v : delete value[k]);\n return reviver.call(holder, key, value)\n }({\n "": result\n }, "") : result\n }\n}), ace.define("ace/mode/json_worker", ["require", "exports", "module", "ace/lib/oop", "ace/worker/mirror", "ace/mode/json/json_parse"], function(acequire, exports) {\n "use strict";\n var oop = acequire("../lib/oop"),\n Mirror = acequire("../worker/mirror").Mirror,\n parse = acequire("./json/json_parse"),\n JsonWorker = exports.JsonWorker = function(sender) {\n Mirror.call(this, sender), this.setTimeout(200)\n };\n oop.inherits(JsonWorker, Mirror),\n function() {\n this.onUpdate = function() {\n var value = this.doc.getValue(),\n errors = [];\n try {\n value && parse(value)\n } catch (e) {\n var pos = this.doc.indexToPosition(e.at - 1);\n errors.push({\n row: pos.row,\n column: pos.column,\n text: e.message,\n type: "error"\n })\n }\n this.sender.emit("annotate", errors)\n }\n }.call(JsonWorker.prototype)\n}), ace.define("ace/lib/es5-shim", ["require", "exports", "module"], function() {\n function Empty() {}\n\n function doesDefinePropertyWork(object) {\n try {\n return Object.defineProperty(object, "sentinel", {}), "sentinel" in object\n } catch (exception) {}\n }\n\n function toInteger(n) {\n return n = +n, n !== n ? n = 0 : 0 !== n && n !== 1 / 0 && n !== -(1 / 0) && (n = (n > 0 || -1) * Math.floor(Math.abs(n))), n\n }\n Function.prototype.bind || (Function.prototype.bind = function(that) {\n var target = this;\n if ("function" != typeof target) throw new TypeError("Function.prototype.bind called on incompatible " + target);\n var args = slice.call(arguments, 1),\n bound = function() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n return Object(result) === result ? result : this\n }\n return target.apply(that, args.concat(slice.call(arguments)))\n };\n return target.prototype && (Empty.prototype = target.prototype, bound.prototype = new Empty, Empty.prototype = null), bound\n });\n var defineGetter, defineSetter, lookupGetter, lookupSetter, supportsAccessors, call = Function.prototype.call,\n prototypeOfArray = Array.prototype,\n prototypeOfObject = Object.prototype,\n slice = prototypeOfArray.slice,\n _toString = call.bind(prototypeOfObject.toString),\n owns = call.bind(prototypeOfObject.hasOwnProperty);\n if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__")) && (defineGetter = call.bind(prototypeOfObject.__defineGetter__), defineSetter = call.bind(prototypeOfObject.__defineSetter__), lookupGetter = call.bind(prototypeOfObject.__lookupGetter__), lookupSetter = call.bind(prototypeOfObject.__lookupSetter__)), 2 != [1, 2].splice(0).length)\n if (function() {\n function makeArray(l) {\n var a = Array(l + 2);\n return a[0] = a[1] = 0, a\n }\n var lengthBefore, array = [];\n return array.splice.apply(array, makeArray(20)), array.splice.apply(array, makeArray(26)), lengthBefore = array.length, array.splice(5, 0, "XXX"), lengthBefore + 1 == array.length, lengthBefore + 1 == array.length ? !0 : void 0\n }()) {\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n return arguments.length ? array_splice.apply(this, [void 0 === start ? 0 : start, void 0 === deleteCount ? this.length - start : deleteCount].concat(slice.call(arguments, 2))) : []\n }\n } else Array.prototype.splice = function(pos, removeCount) {\n var length = this.length;\n pos > 0 ? pos > length && (pos = length) : void 0 == pos ? pos = 0 : 0 > pos && (pos = Math.max(length + pos, 0)), length > pos + removeCount || (removeCount = length - pos);\n var removed = this.slice(pos, pos + removeCount),\n insert = slice.call(arguments, 2),\n add = insert.length;\n if (pos === length) add && this.push.apply(this, insert);\n else {\n var remove = Math.min(removeCount, length - pos),\n tailOldPos = pos + remove,\n tailNewPos = tailOldPos + add - remove,\n tailCount = length - tailOldPos,\n lengthAfterRemove = length - remove;\n if (tailOldPos > tailNewPos)\n for (var i = 0; tailCount > i; ++i) this[tailNewPos + i] = this[tailOldPos + i];\n else if (tailNewPos > tailOldPos)\n for (i = tailCount; i--;) this[tailNewPos + i] = this[tailOldPos + i];\n if (add && pos === lengthAfterRemove) this.length = lengthAfterRemove, this.push.apply(this, insert);\n else\n for (this.length = lengthAfterRemove + add, i = 0; add > i; ++i) this[pos + i] = insert[i]\n }\n return removed\n };\n Array.isArray || (Array.isArray = function(obj) {\n return "[object Array]" == _toString(obj)\n });\n var boxedString = Object("a"),\n splitString = "a" != boxedString[0] || !(0 in boxedString);\n if (Array.prototype.forEach || (Array.prototype.forEach = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if ("[object Function]" != _toString(fun)) throw new TypeError;\n for (; length > ++i;) i in self && fun.call(thisp, self[i], i, object)\n }), Array.prototype.map || (Array.prototype.map = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++) i in self && (result[i] = fun.call(thisp, self[i], i, object));\n return result\n }), Array.prototype.filter || (Array.prototype.filter = function(fun) {\n var value, object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n result = [],\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++) i in self && (value = self[i], fun.call(thisp, value, i, object) && result.push(value));\n return result\n }), Array.prototype.every || (Array.prototype.every = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++)\n if (i in self && !fun.call(thisp, self[i], i, object)) return !1;\n return !0\n }), Array.prototype.some || (Array.prototype.some = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++)\n if (i in self && fun.call(thisp, self[i], i, object)) return !0;\n return !1\n }), Array.prototype.reduce || (Array.prototype.reduce = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0;\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n if (!length && 1 == arguments.length) throw new TypeError("reduce of empty array with no initial value");\n var result, i = 0;\n if (arguments.length >= 2) result = arguments[1];\n else\n for (;;) {\n if (i in self) {\n result = self[i++];\n break\n }\n if (++i >= length) throw new TypeError("reduce of empty array with no initial value")\n }\n for (; length > i; i++) i in self && (result = fun.call(void 0, result, self[i], i, object));\n return result\n }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0;\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n if (!length && 1 == arguments.length) throw new TypeError("reduceRight of empty array with no initial value");\n var result, i = length - 1;\n if (arguments.length >= 2) result = arguments[1];\n else\n for (;;) {\n if (i in self) {\n result = self[i--];\n break\n }\n if (0 > --i) throw new TypeError("reduceRight of empty array with no initial value")\n }\n do i in this && (result = fun.call(void 0, result, self[i], i, object)); while (i--);\n return result\n }), Array.prototype.indexOf && -1 == [0, 1].indexOf(1, 2) || (Array.prototype.indexOf = function(sought) {\n var self = splitString && "[object String]" == _toString(this) ? this.split("") : toObject(this),\n length = self.length >>> 0;\n if (!length) return -1;\n var i = 0;\n for (arguments.length > 1 && (i = toInteger(arguments[1])), i = i >= 0 ? i : Math.max(0, length + i); length > i; i++)\n if (i in self && self[i] === sought) return i;\n return -1\n }), Array.prototype.lastIndexOf && -1 == [0, 1].lastIndexOf(0, -3) || (Array.prototype.lastIndexOf = function(sought) {\n var self = splitString && "[object String]" == _toString(this) ? this.split("") : toObject(this),\n length = self.length >>> 0;\n if (!length) return -1;\n var i = length - 1;\n for (arguments.length > 1 && (i = Math.min(i, toInteger(arguments[1]))), i = i >= 0 ? i : length - Math.abs(i); i >= 0; i--)\n if (i in self && sought === self[i]) return i;\n return -1\n }), Object.getPrototypeOf || (Object.getPrototypeOf = function(object) {\n return object.__proto__ || (object.constructor ? object.constructor.prototype : prototypeOfObject)\n }), !Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a non-object: ";\n Object.getOwnPropertyDescriptor = function(object, property) {\n if ("object" != typeof object && "function" != typeof object || null === object) throw new TypeError(ERR_NON_OBJECT + object);\n if (owns(object, property)) {\n var descriptor, getter, setter;\n if (descriptor = {\n enumerable: !0,\n configurable: !0\n }, supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n var getter = lookupGetter(object, property),\n setter = lookupSetter(object, property);\n if (object.__proto__ = prototype, getter || setter) return getter && (descriptor.get = getter), setter && (descriptor.set = setter), descriptor\n }\n return descriptor.value = object[property], descriptor\n }\n }\n }\n if (Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function(object) {\n return Object.keys(object)\n }), !Object.create) {\n var createEmpty;\n createEmpty = null === Object.prototype.__proto__ ? function() {\n return {\n __proto__: null\n }\n } : function() {\n var empty = {};\n for (var i in empty) empty[i] = null;\n return empty.constructor = empty.hasOwnProperty = empty.propertyIsEnumerable = empty.isPrototypeOf = empty.toLocaleString = empty.toString = empty.valueOf = empty.__proto__ = null, empty\n }, Object.create = function(prototype, properties) {\n var object;\n if (null === prototype) object = createEmpty();\n else {\n if ("object" != typeof prototype) throw new TypeError("typeof prototype[" + typeof prototype + "] != \'object\'");\n var Type = function() {};\n Type.prototype = prototype, object = new Type, object.__proto__ = prototype\n }\n return void 0 !== properties && Object.defineProperties(object, properties), object\n }\n }\n if (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({}),\n definePropertyWorksOnDom = "undefined" == typeof document || doesDefinePropertyWork(document.createElement("div"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) var definePropertyFallback = Object.defineProperty\n }\n if (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ",\n ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: ",\n ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined on this javascript engine";\n Object.defineProperty = function(object, property, descriptor) {\n if ("object" != typeof object && "function" != typeof object || null === object) throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ("object" != typeof descriptor && "function" != typeof descriptor || null === descriptor) throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) try {\n return definePropertyFallback.call(Object, object, property, descriptor)\n } catch (exception) {}\n if (owns(descriptor, "value"))\n if (supportsAccessors && (lookupGetter(object, property) || lookupSetter(object, property))) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject, delete object[property], object[property] = descriptor.value, object.__proto__ = prototype\n } else object[property] = descriptor.value;\n else {\n if (!supportsAccessors) throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n owns(descriptor, "get") && defineGetter(object, property, descriptor.get), owns(descriptor, "set") && defineSetter(object, property, descriptor.set)\n }\n return object\n }\n }\n Object.defineProperties || (Object.defineProperties = function(object, properties) {\n for (var property in properties) owns(properties, property) && Object.defineProperty(object, property, properties[property]);\n return object\n }), Object.seal || (Object.seal = function(object) {\n return object\n }), Object.freeze || (Object.freeze = function(object) {\n return object\n });\n try {\n Object.freeze(function() {})\n } catch (exception) {\n Object.freeze = function(freezeObject) {\n return function(object) {\n return "function" == typeof object ? object : freezeObject(object)\n }\n }(Object.freeze)\n }\n if (Object.preventExtensions || (Object.preventExtensions = function(object) {\n return object\n }), Object.isSealed || (Object.isSealed = function() {\n return !1\n }), Object.isFrozen || (Object.isFrozen = function() {\n return !1\n }), Object.isExtensible || (Object.isExtensible = function(object) {\n if (Object(object) === object) throw new TypeError;\n for (var name = ""; owns(object, name);) name += "?";\n object[name] = !0;\n var returnValue = owns(object, name);\n return delete object[name], returnValue\n }), !Object.keys) {\n var hasDontEnumBug = !0,\n dontEnums = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],\n dontEnumsLength = dontEnums.length;\n for (var key in {\n toString: null\n }) hasDontEnumBug = !1;\n Object.keys = function(object) {\n if ("object" != typeof object && "function" != typeof object || null === object) throw new TypeError("Object.keys called on a non-object");\n var keys = [];\n for (var name in object) owns(object, name) && keys.push(name);\n if (hasDontEnumBug)\n for (var i = 0, ii = dontEnumsLength; ii > i; i++) {\n var dontEnum = dontEnums[i];\n owns(object, dontEnum) && keys.push(dontEnum)\n }\n return keys\n }\n }\n Date.now || (Date.now = function() {\n return (new Date).getTime()\n });\n var ws = "\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";\n if (!String.prototype.trim || ws.trim()) {\n ws = "[" + ws + "]";\n var trimBeginRegexp = RegExp("^" + ws + ws + "*"),\n trimEndRegexp = RegExp(ws + ws + "*$");\n String.prototype.trim = function() {\n return (this + "").replace(trimBeginRegexp, "").replace(trimEndRegexp, "")\n }\n }\n var toObject = function(o) {\n if (null == o) throw new TypeError("can\'t convert " + o + " to object");\n return Object(o)\n }\n});\n'},{WorkerClient:T}=y.a.acequire("ace/worker/worker_client"),N=y.a.acequire("ace/lib/oop"),{Mode:z}=y.a.acequire("ace/mode/json"),{Tokenizer:I}=y.a.acequire("ace/tokenizer"),{MatchingBraceOutdent:V}=y.a.acequire("ace/mode/matching_brace_outdent"),{CstyleBehaviour:D}=y.a.acequire("ace/mode/behaviour/cstyle"),{FoldMode:A}=y.a.acequire("ace/mode/folding/cstyle"),H=function(){const e=new L;e.normalizeRules(),this.$tokenizer=new I(e.getRules()),this.$outdent=new V,this.$behaviour=new D,this.foldingRules=new A};N.inherits(H,z),H.prototype.createWorker=function(e){const t=new T(["ace"],R,"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t};const{collapseLiteralStrings:B,expandLiteralStrings:q}=x.XJson,$="json",U=new H,X=({value:e,height:t="500px",width:n="99%",mode:i=$,readOnly:r=!1,onChange:o=(()=>{})})=>(i===U&&(e=q(e)),Object(h.jsx)(s.CodeEditor,{value:e,width:n,height:t,languageId:i,languageConfiguration:{autoClosingPairs:[{open:"{",close:"}"}]},options:{tabSize:2,readOnly:r,automaticLayout:!0,wordWrap:"on",wrappingIndent:"indent",minimap:{enabled:!1},scrollBeyondLastLine:!1,quickSuggestions:!0},onChange:o})),G=({data:e,format:t,numberOfLines:n})=>{let i="text";t===$&&(i=$);const s=function(e,t){return e.split("\n").slice(0,t).join("\n")}(e,n);return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h2",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileContents.fileContentsTitle",defaultMessage:"File contents"}))),Object(h.jsx)("div",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileContents.firstLinesDescription",defaultMessage:"First {numberOfLines, plural, zero {# line} one {# line} other {# lines}}",values:{numberOfLines:n}})),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(X,{mode:i,readOnly:!0,value:s,height:"200px"}))};var J=n(7);const W=({results:e})=>{const t=function(e){const t=[{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.analyzedLinesNumberTitle",defaultMessage:"Number of lines analyzed"}),description:e.num_lines_analyzed}];return void 0!==e.format&&(t.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.formatTitle",defaultMessage:"Format"}),description:e.format}),e.format===J.c.DELIMITED&&(t.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.delimiterTitle",defaultMessage:"Delimiter"}),description:e.delimiter}),t.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.hasHeaderRowTitle",defaultMessage:"Has header row"}),description:`${e.has_header_row}`}))),void 0!==e.grok_pattern&&t.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.grokPatternTitle",defaultMessage:"Grok pattern"}),description:e.grok_pattern}),void 0!==e.timestamp_field&&t.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.timeFieldTitle",defaultMessage:"Time field"}),description:e.timestamp_field}),void 0!==e.java_timestamp_formats&&t.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.timeFormatTitle",defaultMessage:"Time {timestampFormats, plural, zero {format} one {format} other {formats}}",values:{timestampFormats:e.java_timestamp_formats.length}}),description:e.java_timestamp_formats.join(", ")}),t}(e);return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h2",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.analysisSummary.summaryTitle",defaultMessage:"Summary"}))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiDescriptionList,{type:"column",listItems:t,className:"analysis-summary-list"}))};var Y=n(92),K=n(101),Q=n(112),Z=n(95);const ee=({item:e})=>{const t=e,{type:n,fieldName:i}=t,r=Object(K.a)();return Object(h.jsx)("div",{css:r,"data-test-subj":`dataVisualizerFieldExpandedRow-${i}`},function(){switch(n){case J.i.NUMBER:return Object(h.jsx)(Q.e,{config:t});case J.i.BOOLEAN:return Object(h.jsx)(Q.a,{config:t});case J.i.DATE:return Object(h.jsx)(Q.b,{config:t});case J.i.GEO_POINT:return Object(h.jsx)(Z.b,{config:t});case J.i.IP:return Object(h.jsx)(Q.c,{config:t});case J.i.KEYWORD:case J.i.VERSION:return Object(h.jsx)(Q.d,{config:t});case J.i.TEXT:return Object(h.jsx)(Q.g,{config:t});default:return Object(h.jsx)(Q.f,{config:t})}}())};var te=n(86);const ne=({fields:e,setVisibleFieldNames:t,visibleFieldNames:n})=>{const r=Object(i.useMemo)((()=>p.i18n.translate("xpack.dataVisualizer.fieldNameSelect",{defaultMessage:"Field name"})),[]),s=Object(i.useMemo)((()=>e.filter((e=>void 0!==e.fieldName)).map((e=>({value:e.fieldName})))),[e]);return Object(h.jsx)(te.a,{title:r,options:s,onChange:t,checkedOptions:n,dataTestSubj:"dataVisualizerFieldNameSelect"})};var ie=n(89),re=n(119),se=n(84);const oe=({fields:e,setVisibleFieldTypes:t,visibleFieldTypes:n})=>{const r=Object(i.useMemo)((()=>p.i18n.translate("xpack.dataVisualizer.fieldTypeSelect",{defaultMessage:"Field type"})),[]),s=Object(i.useMemo)((()=>{const t=new Set,n=[];return e.forEach((({type:e})=>{const i=Object(ie.a)(e);void 0===e||t.has(e)||void 0===i||(t.add(e),n.push({value:e,name:Object(h.jsx)(u.EuiFlexGroup,null,Object(h.jsx)(u.EuiFlexItem,{grow:!0}," ",i),e&&Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(se.a,{type:e,tooltipEnabled:!1})))}))})),n}),[e]);return Object(h.jsx)(te.a,{title:r,options:s,onChange:t,checkedOptions:n,dataTestSubj:"dataVisualizerFieldTypeSelect",postfix:Object(h.jsx)(re.a,{fieldTypes:s.map((e=>e.value))})})};var ae=n(73),le=n(10);var ce=n(90),ue=n(117);function de(e,t){return e.reduce(((e,n)=>{const i=t.find((e=>e.fieldName===n));return void 0!==i&&(e[n]=Object(h.jsx)(ee,{item:i})),e}),{})}const pe=({results:e})=>{var t,n;const r={pageIndex:0,pageSize:25,sortField:"fieldName",sortDirection:"asc",visibleFieldTypes:[],visibleFieldNames:[],showDistributions:!0},[s,o]=Object(i.useState)(r),a=null!==(t=s.visibleFieldTypes)&&void 0!==t?t:r.visibleFieldTypes,l=null!==(n=s.visibleFieldNames)&&void 0!==n?n:r.visibleFieldNames,{fields:c,totalFieldsCount:p,totalMetricFieldsCount:m}=Object(i.useMemo)((()=>function(e){const{mappings:t,field_stats:n,num_messages_analyzed:i,timestamp_field:r}=e;let s=0;if(t&&t.properties&&n){const o=function(e){const{mappings:t,field_stats:n,column_names:i}=e,r=void 0!==i?i:Object.keys(n),s=Object(d.difference)(Object.keys(t.properties),r),o=s.indexOf("@timestamp");return-1!==o&&s.splice(o,1),s.length&&r.push(...s),r}(e),a=o.map((e=>{if(void 0!==n[e]){const o={fieldName:e,type:J.i.UNKNOWN},a=n[e],l=t.properties[e];e===r&&o.type===J.i.UNKNOWN&&(o.type=J.i.DATE),void 0!==l&&(o.type=function(e){switch(e){case le.a.FLOAT:case le.a.HALF_FLOAT:case le.a.SCALED_FLOAT:case le.a.DOUBLE:case le.a.INTEGER:case le.a.LONG:case le.a.SHORT:case le.a.UNSIGNED_LONG:return J.i.NUMBER;case le.a.DATE:case le.a.DATE_NANOS:return J.i.DATE;default:return e}}(l.type),o.type===J.i.NUMBER&&(s+=1),void 0!==l.format&&(o.format=l.format));let c={};return void 0!==a.median_value&&(c={...c,median:Object(ae.a)(a.median_value),mean:Object(ae.a)(a.mean_value),min:Object(ae.a)(a.min_value),max:Object(ae.a)(a.max_value)}),void 0!==a.cardinality&&(c={...c,cardinality:a.cardinality,count:a.count,sampleCount:i}),void 0!==a.top_hits&&(c=o.type===J.i.TEXT?{...c,examples:a.top_hits.map((e=>e.value))}:{...c,topValues:a.top_hits.map((e=>({key:e.value,doc_count:e.count})))}),o.type===J.i.DATE&&(c={...c,earliest:a.earliest,latest:a.latest}),o.stats=c,o}return{fieldName:e,type:t.properties[e]&&t.properties[e].type===J.i.TEXT?J.i.TEXT:J.i.UNKNOWN,stats:{mean:0,count:0,sampleCount:i,cardinality:0}}}));return{fields:a,totalFieldsCount:a.length,totalMetricFieldsCount:s}}return{fields:[],totalFieldsCount:0,totalMetricFieldsCount:0}}(e)),[e]),{filteredFields:g,visibleFieldsCount:f,visibleMetricsCount:b}=Object(i.useMemo)((()=>Object(ce.a)(c,l,a)),[c,l,a]),j={visibleFieldsCount:f,totalFieldsCount:p},x={visibleMetricsCount:b,totalMetricFieldsCount:m};return Object(h.jsx)("div",null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiFlexGroup,{alignItems:"center",gutterSize:"xs",style:{marginLeft:4},"data-test-subj":"dataVisualizerFieldCountPanel",responsive:!0},Object(h.jsx)(ue.b,{fieldsCountStats:j}),Object(h.jsx)(ue.a,{metricsStats:x}),Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"xs","data-test-subj":"dataVisualizerFieldCountPanel",justifyContent:"flexEnd"},Object(h.jsx)(ne,{fields:c,setVisibleFieldNames:e=>{o({...s,visibleFieldNames:e})},visibleFieldNames:l}),Object(h.jsx)(oe,{fields:c,setVisibleFieldTypes:e=>{o({...s,visibleFieldTypes:e})},visibleFieldTypes:a}))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(Y.a,{items:g,pageState:s,updatePageState:o,getItemIdToExpandedRowMap:de,overallStatsRunning:!1}))};let me;!function(e){e[e.READ=0]="READ",e[e.IMPORT=1]="IMPORT"}(me||(me={}));const he=({data:e,fileName:t,results:n,showEditFlyout:i,showExplanationFlyout:r,disableButtons:s,onChangeMode:o,onCancel:a,disableImport:l})=>Object(h.jsx)(u.EuiPageBody,{"data-test-subj":"dataVisualizerPageFileResults"},Object(h.jsx)(u.EuiFlexGroup,null,Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiTitle,null,Object(h.jsx)("h2",{"data-test-subj":"dataVisualizerFileResultsTitle"},t))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{onClick:a,"data-test-subj":"dataVisualizerFileResultsCancelButton",size:"s"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsView.cancelButtonLabel",defaultMessage:"Select a different file"})))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)("div",{className:"results"},Object(h.jsx)(u.EuiPanel,{"data-test-subj":"dataVisualizerFileFileContentPanel",hasShadow:!1,hasBorder:!0},Object(h.jsx)(G,{data:e,format:n.format,numberOfLines:n.num_lines_analyzed})),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiPanel,{"data-test-subj":"dataVisualizerFileSummaryPanel",hasShadow:!1,hasBorder:!0},Object(h.jsx)(W,{results:n}),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{fill:!0,isDisabled:l,onClick:()=>o(me.IMPORT),"data-test-subj":"dataVisualizerFileOpenImportPageButton"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsView.importButtonLabel",defaultMessage:"Import"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{onClick:()=>i(),disabled:s},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsView.overrideSettingsButtonLabel",defaultMessage:"Override settings"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{onClick:()=>r(),disabled:s},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsView.analysisExplanationButtonLabel",defaultMessage:"Analysis explanation"}))))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiPanel,{"data-test-subj":"dataVisualizerFileFileStatsPanel",hasShadow:!1,hasBorder:!0},Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h2",{"data-test-subj":"dataVisualizerFileStatsTitle"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsView.fileStatsName",defaultMessage:"File stats"}))),Object(h.jsx)(pe,{results:n}))));var ge=n(41),fe=n.n(ge);const be=({fileSize:e,maxFileSize:t})=>{const n=fe()(e).format(J.d),i=fe()(t).format(J.d);let r;if(n!==i)r=Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.fileSizeExceedsAllowedSizeErrorMessage",defaultMessage:"The size of the file you selected for upload is {fileSizeFormatted} which exceeds the maximum permitted size of {maxFileSizeFormatted}",values:{fileSizeFormatted:n,maxFileSizeFormatted:i}}));else{const n=fe()(e-t).format(J.d);r=Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.fileSizeExceedsAllowedSizeByDiffFormatErrorMessage",defaultMessage:"The size of the file you selected for upload exceeds the maximum permitted size of {maxFileSizeFormatted} by {diffFormatted}",values:{maxFileSizeFormatted:i,diffFormatted:n}}))}return Object(h.jsx)(u.EuiCallOut,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.fileSizeTooLargeTitle",defaultMessage:"File size is too large"}),color:"danger",iconType:"cross","data-test-subj":"dataVisualizerFileUploadErrorCallout fileTooLarge"},r)},je=({error:e,loaded:t,showEditFlyout:n})=>{var i;const s=(null==e||null===(i=e.body)||void 0===i?void 0:i.message)||"";return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiCallOut,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.fileCouldNotBeReadTitle",defaultMessage:"File structure cannot be determined"}),color:"danger",iconType:"cross","data-test-subj":"dataVisualizerFileUploadErrorCallout fileCouldNotBeRead"},!1===t&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.applyOverridesDescription",defaultMessage:"If you know something about this data, such as the file format or timestamp format, adding initial overrides may help us to infer the rest of the structure."}),Object(h.jsx)("br",null),Object(h.jsx)(u.EuiButtonEmpty,{onClick:n,flush:"left",size:"s"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.overrideButton",defaultMessage:"Apply override settings"})),Object(h.jsx)(u.EuiHorizontalRule,null)),s,Object(h.jsx)(xe,{error:e}),t&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.revertingToPreviousSettingsDescription",defaultMessage:"Reverting to previous settings"}))))},xe=({error:e})=>{var t,n,i,s,o;if(null==e||null===(t=e.body)||void 0===t||null===(n=t.attributes)||void 0===n||null===(i=n.body)||void 0===i||null===(s=i.error)||void 0===s||null===(o=s.suppressed)||void 0===o||!o.length)return null;const a=e.body.attributes.body.error.suppressed[0].reason;return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"s"}),a.split("\n").map(((e,t)=>Object(h.jsx)("div",{key:t},e))))},we=()=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiCallOut,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.findFileStructurePermissionDenied.title",defaultMessage:"Permission denied"}),color:"danger",iconType:"cross","data-test-subj":"dataVisualizerFileStructurePermissionDeniedErrorCallout"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.fileErrorCallouts.findFileStructurePermissionDenied.description",defaultMessage:"You do not have sufficient privileges to analyze files."}))),ye="custom",ve=[ye,"dd/MMM/yyyy:HH:mm:ss XX","EEE MMM dd HH:mm zzz yyyy","EEE MMM dd HH:mm:ss yyyy","EEE MMM dd HH:mm:ss zzz yyyy","EEE MMM dd yyyy HH:mm zzz","EEE MMM dd yyyy HH:mm:ss zzz","EEE, dd MMM yyyy HH:mm XX","EEE, dd MMM yyyy HH:mm XXX","EEE, dd MMM yyyy HH:mm:ss XX","EEE, dd MMM yyyy HH:mm:ss XXX","ISO8601","MMM dd HH:mm:ss","MMM dd HH:mm:ss,SSS","MMM dd HH:mm:ss,SSSSSS","MMM dd HH:mm:ss,SSSSSSSSS","MMM dd HH:mm:ss.SSS","MMM dd HH:mm:ss.SSSSSS","MMM dd HH:mm:ss.SSSSSSSSS","MMM dd HH:mm:ss:SSS","MMM dd HH:mm:ss:SSSSSS","MMM dd HH:mm:ss:SSSSSSSSS","MMM dd yyyy HH:mm:ss","MMM dd, yyyy h:mm:ss a","TAI64N","UNIX","UNIX_MS","yyyy-MM-dd HH:mm:ss","yyyy-MM-dd HH:mm:ss,SSS","yyyy-MM-dd HH:mm:ss,SSSSSS","yyyy-MM-dd HH:mm:ss,SSSSSSSSS","yyyy-MM-dd HH:mm:ss.SSS","yyyy-MM-dd HH:mm:ss.SSSSSS","yyyy-MM-dd HH:mm:ss.SSSSSSSSS","yyyy-MM-dd HH:mm:ss:SSS","yyyy-MM-dd HH:mm:ss:SSSSSS","yyyy-MM-dd HH:mm:ss:SSSSSSSSS","yyyy-MM-dd HH:mm:ss,SSS XX","yyyy-MM-dd HH:mm:ss,SSSSSS XX","yyyy-MM-dd HH:mm:ss,SSSSSSSSS XX","yyyy-MM-dd HH:mm:ss.SSS XX","yyyy-MM-dd HH:mm:ss.SSSSSS XX","yyyy-MM-dd HH:mm:ss.SSSSSSSSS XX","yyyy-MM-dd HH:mm:ss:SSS XX","yyyy-MM-dd HH:mm:ss:SSSSSS XX","yyyy-MM-dd HH:mm:ss:SSSSSSSSS XX","yyyy-MM-dd HH:mm:ss,SSSXX","yyyy-MM-dd HH:mm:ss,SSSSSSXX","yyyy-MM-dd HH:mm:ss,SSSSSSSSSXX","yyyy-MM-dd HH:mm:ss.SSSXX","yyyy-MM-dd HH:mm:ss.SSSSSSXX","yyyy-MM-dd HH:mm:ss.SSSSSSSSSXX","yyyy-MM-dd HH:mm:ss:SSSXX","yyyy-MM-dd HH:mm:ss:SSSSSSXX","yyyy-MM-dd HH:mm:ss:SSSSSSSSSXX","yyyy-MM-dd HH:mm:ss,SSSXXX","yyyy-MM-dd HH:mm:ss,SSSSSSXXX","yyyy-MM-dd HH:mm:ss,SSSSSSSSSXXX","yyyy-MM-dd HH:mm:ss.SSSXXX","yyyy-MM-dd HH:mm:ss.SSSSSSXXX","yyyy-MM-dd HH:mm:ss.SSSSSSSSSXXX","yyyy-MM-dd HH:mm:ss:SSSXXX","yyyy-MM-dd HH:mm:ss:SSSSSSXXX","yyyy-MM-dd HH:mm:ss:SSSSSSSSSXXX","yyyy-MM-dd HH:mm:ssXX","yyyy-MM-dd HH:mm:ssXXX","yyyyMMddHHmmss"],Oe=["comma","tab","semicolon","pipe","space",ye];function Se(e){return e.map((e=>({label:e})))}const Ee={yyyy:!0,yy:!0,M:!0,MM:!0,MMM:!0,MMMM:!0,d:!0,dd:!0,EEE:!0,EEEE:!0,H:!0,HH:!0,h:!0,mm:!0,ss:!0,a:!0,XX:!0,XXX:!0,zzz:!0},Fe=/^%{\w*?}$/,Me=/(%{\w*?:\w*?})/,ke=/%{(\w*?):(\w*?)}/;function Ce(e){var t;return 1===(null!==(t=e.match(Fe))&&void 0!==t?t:[]).length}function _e(e,t=!1){const n=e.split(Me);return!0===t?n.filter((e=>"%"===e[0]&&"{"===e[1])):n}function Pe(e){if("%"!==e[0]&&"{"!==e[1])return{valid:!1,type:"",name:""};const t=e.match(ke);if(null===t)return{valid:!1,type:"",name:""};const[,n,i]=t;return{valid:!0,type:n,name:i}}function Le(e){return Ce(e)?[]:_e(e,!0).map((e=>{const{valid:t,name:n,type:i}=Pe(e);return!1===t?{name:e,type:i}:{name:n,type:i}}))}const Re=1e6;function Te(e,t){return void 0===t?[]:void 0===e?Le(t).map((e=>e.name)):Le(e).map((e=>e.name))}const Ne=Se(Object.values(J.c)),ze=Se(ve),Ie=Se(Oe),Ve=Se(["'",'"',"`"]);class overrides_OverridesUI extends i.Component{constructor(e){super(e),l()(this,"linesToSampleErrors",p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.linesToSampleErrorMessage",{defaultMessage:"Value must be greater than {min} and less than or equal to {max}",values:{min:3,max:Re}})),l()(this,"customTimestampFormatErrors",p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.customTimestampFormatErrorMessage",{defaultMessage:"Timestamp format must be a combination of these Java date/time formats:\n yy, yyyy, M, MM, MMM, MMMM, d, dd, EEE, EEEE, H, HH, h, mm, ss, S through SSSSSSSSS, a, XX, XXX, zzz"})),l()(this,"applyOverrides",(()=>{const e={...this.state.overrides};e.delimiter=function(e,t){switch(e){case"comma":return",";case"tab":return"\t";case"semicolon":return";";case"pipe":return"|";case"space":return" ";case ye:return t;default:return}}(e.delimiter,this.state.customDelimiter),e.timestampFormat===ye&&""!==this.state.customTimestampFormat&&(e.timestampFormat=this.state.customTimestampFormat),this.props.setOverrides(e)})),l()(this,"onFormatChange",(([e])=>{const t=e?e.label:"";this.setOverride({format:t})})),l()(this,"onTimestampFormatChange",(([e])=>{const t=e?e.label:"";this.setOverride({timestampFormat:t}),e!==ye&&this.props.setOverridesValid(!0)})),l()(this,"onCustomTimestampFormatChange",(e=>{this.setState({customTimestampFormat:e.target.value});const{isValid:t,errorMessage:n}=function(e){const t={isValid:!0,errorMessage:null};if(e.indexOf("?")>=0)return t.isValid=!1,t.errorMessage=p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.timestampQuestionMarkValidationErrorMessage",{defaultMessage:"Timestamp format {timestampFormat} not supported because it contains a question mark character ({fieldPlaceholder})",values:{timestampFormat:e,fieldPlaceholder:"?"}}),t;let n=!0,i=null,r=null,s=0;for(;s9)return t.isValid=!1,t.errorMessage=p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.timestampLetterValidationErrorMessage",{defaultMessage:"Letter { length, plural, one { {lg} } other { group {lg} } } in {format} is not supported",values:{length:s,lg:l,format:e}}),"S"===a&&(t.errorMessage=p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.timestampLetterSValidationErrorMessage",{defaultMessage:"Letter { length, plural, one { {lg} } other { group {lg} } } in {format} is not supported because it is not preceded by ss and a separator from {sep}",values:{length:s,lg:l,sep:":.,",format:e}})),t}r=l}i=a,++s}var o;return null==r&&(t.isValid=!1,t.errorMessage=p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.timestampEmptyValidationErrorMessage",{defaultMessage:"No time format letter groups in timestamp format {timestampFormat}",values:{timestampFormat:e}})),t}(e.target.value);this.setState({timestampFormatValid:t,timestampFormatError:n}),this.props.setOverridesValid(t)})),l()(this,"onTimestampFieldChange",(([e])=>{const t=e?e.label:"";this.setOverride({timestampField:t})})),l()(this,"onContainsTimeFieldChange",(e=>{this.setState({containsTimeField:e.target.checked}),!1===e.target.checked?this.setOverride({timestampFormat:J.g}):this.setOverride({timestampFormat:this.props.originalSettings.timestampFormat})})),l()(this,"onDelimiterChange",(([e])=>{const t=e?e.label:"";this.setOverride({delimiter:t})})),l()(this,"onCustomDelimiterChange",(e=>{this.setState({customDelimiter:e.target.value})})),l()(this,"onQuoteChange",(([e])=>{const t=e?e.label:"";this.setOverride({quote:t})})),l()(this,"onHasHeaderRowChange",(e=>{this.setOverride({hasHeaderRow:e.target.checked})})),l()(this,"onShouldTrimFieldsChange",(e=>{this.setOverride({shouldTrimFields:e.target.checked})})),l()(this,"onCharsetChange",(([e])=>{const t=e?e.label:"";this.setOverride({charset:t})})),l()(this,"onColumnNameChange",((e,t)=>{const n=this.state.overrides.columnNames;n[t]=e.target.value,this.setOverride({columnNames:n})})),l()(this,"onGrokPatternFieldChange",((e,t)=>{const n=e.target.value,i=function(e,t,n){if(Ce(e))return e;let i=0;return _e(e).map((e=>{const{valid:r,type:s}=Pe(e);if(r){if(i===n){i++;const n=`%{${s}:${t}}`,{valid:r}=Pe(n);return r?n:e}i++}return e})).join("")}(this.state.overrides.grokPattern,n,t),r=Te(i,this.state.overrides.grokPattern);this.setOverride({grokPattern:i,grokFieldNames:r})})),l()(this,"grokPatternChange",(e=>{const t=e.target.value,n=Te(t,this.state.overrides.grokPattern);this.setOverride({grokPattern:t,grokFieldNames:n})})),l()(this,"onLinesToSampleChange",(e=>{const t=+e.target.value;this.setOverride({linesToSample:t});const n=function(e){return e>3&&e<=Re}(t);this.setState({linesToSampleValid:n}),this.props.setOverridesValid(n)})),this.state={}}static getDerivedStateFromProps(e,t){const{originalSettings:n}=e,{charset:i,format:r,hasHeaderRow:s,columnNames:o,delimiter:a,quote:l,shouldTrimFields:c,grokPattern:u,timestampField:d,timestampFormat:p,linesToSample:m}=e.overrides,{delimiter:h,customDelimiter:g}=function(e){switch(e){case",":return{delimiter:"comma"};case"\t":return{delimiter:"tab"};case";":return{delimiter:"semicolon"};case"|":return{delimiter:"pipe"};case" ":return{delimiter:"space"};default:return{delimiter:ye,customDelimiter:e}}}(void 0===a?n.delimiter:a),{newColumnNames:f,originalColumnNames:b}=function(e,t){const n=void 0===e&&void 0!==t.columnNames?[...t.columnNames]:e;return{newColumnNames:n,originalColumnNames:void 0!==n?[...n]:[]}}(o,n),j=Te(u,n.grokPattern),x={charset:void 0===i?n.charset:i,format:void 0===r?n.format:r,hasHeaderRow:void 0===s?n.hasHeaderRow:s,columnNames:f,grokFieldNames:j,delimiter:h,quote:void 0===l?n.quote:l,shouldTrimFields:void 0===c?n.shouldTrimFields:c,grokPattern:void 0===u?n.grokPattern:u,timestampFormat:void 0===p?n.timestampFormat:p,timestampField:void 0===d?n.timestampField:d,linesToSample:void 0===m?n.linesToSample:+m};return{originalColumnNames:b,originalGrokFieldNames:j,customDelimiter:void 0===g?"":g,customTimestampFormat:"",linesToSampleValid:!0,timestampFormatValid:!0,timestampFormatError:null,containsTimeField:x.timestampFormat!==J.g,overrides:x,...t}}componentDidMount(){const e=this.props&&this.props.originalSettings&&this.props.originalSettings.timestampFormat;if("function"==typeof this.props.setApplyOverrides&&this.props.setApplyOverrides(this.applyOverrides),void 0!==e&&!1===ve.some((t=>t===e))){const t={...this.state.overrides};t.timestampFormat=ye,this.setState({customTimestampFormat:e,overrides:t})}}componentWillUnmount(){"function"==typeof this.props.unsetApplyOverrides&&this.props.unsetApplyOverrides()}setOverride(e){const t={...this.state.overrides,...e};this.setState({overrides:t})}render(){const{fields:e}=this.props,{customDelimiter:t,customTimestampFormat:n,originalColumnNames:i,originalGrokFieldNames:s,linesToSampleValid:o,timestampFormatError:a,timestampFormatValid:l,containsTimeField:d,overrides:m}=this.state,{timestampFormat:g,timestampField:f,format:b,delimiter:j,quote:x,hasHeaderRow:w,shouldTrimFields:y,columnNames:v,grokFieldNames:O,grokPattern:S,linesToSample:E}=m,F=function(e){return e.map((e=>({label:e}))).sort(((e,t)=>e.label.localeCompare(t.label,void 0,{numeric:!0})))}(e),M=[this.customTimestampFormatErrors,a],k=this.props.kibana.services.docLinks.links.aggs.date_format_pattern,C=Object(h.jsx)(u.EuiText,{size:"xs"},Object(h.jsx)(u.EuiLink,{href:k,target:"_blank"},p.i18n.translate("xpack.dataVisualizer.file.editFlyout.overrides.timestampFormatHelpText",{defaultMessage:"See more on accepted formats"})));return Object(h.jsx)(u.EuiForm,null,Object(h.jsx)(u.EuiFormRow,{error:this.linesToSampleErrors,isInvalid:!1===o,label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.linesToSampleFormRowLabel",defaultMessage:"Number of lines to sample"})},Object(h.jsx)(u.EuiFieldNumber,{value:E,onChange:this.onLinesToSampleChange,isInvalid:!1===o})),Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.dataFormatFormRowLabel",defaultMessage:"Data format"})},Object(h.jsx)(u.EuiComboBox,{options:Ne,selectedOptions:Ae(b),onChange:this.onFormatChange,singleSelection:{asPlainText:!0},isClearable:!1})),b===J.c.DELIMITED&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.delimiterFormRowLabel",defaultMessage:"Delimiter"})},Object(h.jsx)(u.EuiComboBox,{options:Ie,selectedOptions:Ae(j),onChange:this.onDelimiterChange,singleSelection:{asPlainText:!0},isClearable:!1})),j===ye&&Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.customDelimiterFormRowLabel",defaultMessage:"Custom delimiter"})},Object(h.jsx)(u.EuiFieldText,{value:t,onChange:this.onCustomDelimiterChange})),Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.quoteCharacterFormRowLabel",defaultMessage:"Quote character"})},Object(h.jsx)(u.EuiComboBox,{options:Ve,selectedOptions:Ae(x),onChange:this.onQuoteChange,singleSelection:{asPlainText:!0},isClearable:!1})),Object(h.jsx)(u.EuiFormRow,null,Object(h.jsx)(u.EuiCheckbox,{id:"hasHeaderRow",label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.hasHeaderRowLabel",defaultMessage:"Has header row"}),checked:w,onChange:this.onHasHeaderRowChange})),Object(h.jsx)(u.EuiFormRow,null,Object(h.jsx)(u.EuiCheckbox,{id:"shouldTrimFields",label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.trimFieldsLabel",defaultMessage:"Should trim fields"}),checked:y,onChange:this.onShouldTrimFieldsChange}))),b===J.c.SEMI_STRUCTURED_TEXT&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.grokPatternFormRowLabel",defaultMessage:"Grok pattern"})},Object(h.jsx)(u.EuiTextArea,{placeholder:S,value:S,onChange:this.grokPatternChange}))),Object(h.jsx)(u.EuiFormRow,null,Object(h.jsx)(u.EuiCheckbox,{id:"shouldTrimFields",label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.containsTimeFieldLabel",defaultMessage:"Contains time field"}),checked:d,onChange:this.onContainsTimeFieldChange})),d?Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{helpText:C,label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.timestampFormatFormRowLabel",defaultMessage:"Timestamp format"})},Object(h.jsx)(u.EuiComboBox,{options:ze,selectedOptions:Ae(g),onChange:this.onTimestampFormatChange,singleSelection:{asPlainText:!0},isClearable:!1})),g===ye&&Object(h.jsx)(u.EuiFormRow,{error:M,isInvalid:!1===l,label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.customTimestampFormatFormRowLabel",defaultMessage:"Custom timestamp format"})},Object(h.jsx)(u.EuiFieldText,{value:n,onChange:this.onCustomTimestampFormatChange,isInvalid:!1===l})),Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.timeFieldFormRowLabel",defaultMessage:"Time field"})},Object(h.jsx)(u.EuiComboBox,{options:F,selectedOptions:Ae(f),onChange:this.onTimestampFieldChange,singleSelection:{asPlainText:!0},isClearable:!1}))):null,b===J.c.DELIMITED&&i.length>0&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,null),Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.editFieldNamesTitle",defaultMessage:"Edit field names"}))),i.map(((e,t)=>Object(h.jsx)(u.EuiFormRow,{label:e,key:e},Object(h.jsx)(u.EuiFieldText,{value:v[t],onChange:e=>this.onColumnNameChange(e,t)}))))),b===J.c.SEMI_STRUCTURED_TEXT&&s.length>0&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,null),Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrides.editFieldNamesTitle",defaultMessage:"Edit field names"}))),s.map(((e,t)=>Object(h.jsx)(u.EuiFormRow,{label:e,key:e},Object(h.jsx)(u.EuiFieldText,{value:O[t],onChange:e=>this.onGrokPatternFieldChange(e,t,S)}))))))}}const De=Object(s.withKibana)(overrides_OverridesUI);function Ae(e){return[{label:e||""}]}class edit_flyout_EditFlyout extends i.Component{constructor(e){super(e),l()(this,"applyAndClose",(()=>{this.applyOverrides(),this.props.closeEditFlyout()})),l()(this,"setApplyOverrides",(e=>{this.applyOverrides=e})),l()(this,"unsetApplyOverrides",(()=>{this.applyOverrides=()=>{}})),l()(this,"setOverridesValid",(e=>{this.setState({overridesValid:e})})),this.applyOverrides=()=>{},this.state={overridesValid:!0}}render(){const{isFlyoutVisible:e,closeEditFlyout:t,setOverrides:n,overrides:i,originalSettings:s,fields:o}=this.props;return Object(h.jsx)(r.a.Fragment,null,e&&Object(h.jsx)(u.EuiFlyout,{onClose:t,size:"m"},Object(h.jsx)(u.EuiFlyoutHeader,null,Object(h.jsx)(u.EuiTitle,null,Object(h.jsx)("h2",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.overrideSettingsTitle",defaultMessage:"Override settings"})))),Object(h.jsx)(u.EuiFlyoutBody,null,Object(h.jsx)(De,{setOverrides:n,overrides:i,originalSettings:s,setApplyOverrides:this.setApplyOverrides,setOverridesValid:this.setOverridesValid,fields:o})),Object(h.jsx)(u.EuiFlyoutFooter,null,Object(h.jsx)(u.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{iconType:"cross",onClick:t,flush:"left"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.closeOverrideSettingsButtonLabel",defaultMessage:"Close"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{onClick:this.applyAndClose,isDisabled:!1===this.state.overridesValid,fill:!0},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.editFlyout.applyOverrideSettingsButtonLabel",defaultMessage:"Apply"})))))))}}const He=({results:e,closeFlyout:t})=>{const n=e.explanation;return Object(h.jsx)(u.EuiFlyout,{onClose:t,hideCloseButton:!0,size:"m"},Object(h.jsx)(u.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(u.EuiTitle,{size:"m"},Object(h.jsx)("h2",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.explanationFlyout.title",defaultMessage:"Analysis explanation"})))),Object(h.jsx)(u.EuiFlyoutBody,null,Object(h.jsx)(Be,{explanation:n})),Object(h.jsx)(u.EuiFlyoutFooter,null,Object(h.jsx)(u.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{iconType:"cross",onClick:t,flush:"left"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.explanationFlyout.closeButton",defaultMessage:"Close"}))))))},Be=({explanation:e})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiText,{size:"s"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.explanationFlyout.content",defaultMessage:"The logical steps that have produced the analysis results."}),Object(h.jsx)(u.EuiSpacer,{size:"l"}),Object(h.jsx)(u.EuiSubSteps,null,Object(h.jsx)("ul",{style:{wordBreak:"break-word"}},e.map(((e,t)=>Object(h.jsx)("li",{key:t},e,Object(h.jsx)(u.EuiSpacer,{size:"s"}))))))));var qe=n(12),$e=n(29),Ue=n.n($e),Xe=n(61);const Ge=3e3,Je=({fieldStats:e,index:t,dataViewId:n,timeFieldName:r,createDataView:s,showFilebeatFlyout:o,getAdditionalLinks:a})=>{const{services:{fileUpload:l,application:{getUrlForApp:p,capabilities:g},discover:f}}=Object(m.a)(),[b,j]=Object(i.useState)({from:"now-30m",to:"now"}),[x,w]=Object(i.useState)(),[y,v]=Object(i.useState)(""),[O,S]=Object(i.useState)(""),[E,F]=Object(i.useState)(""),[M,k]=Object(i.useState)();async function C(e=!0){if(void 0!==r){const{from:n,to:i}=await async function(e,t,{getTimeFieldRange:n}){const i=await n(e,{bool:{must:[{query_string:{analyze_wildcard:!0,query:"*"}}]}},t);return{from:Ue()(i.start.epoch).toISOString(),to:Ue()(i.end.epoch).toISOString()}}(t,r,l);j({from:null===n?b.from:n,to:null===i?b.to:i}),!e||null!==n&&null!==i||setTimeout((()=>{C(!1)}),Ge)}}return Object(i.useEffect)((()=>{let e=!1;return(async()=>{var t,i;if(null===(t=null===(i=g.discover)||void 0===i?void 0:i.show)||void 0===t||!t)return;if(!f.locator)return void console.error("Discover locator not available");const r=await f.locator.getUrl({indexPatternId:n,timeRange:null!=x&&x.time?x.time:void 0});e||v(r)})(),Array.isArray(a)&&Promise.all(a.map((async e=>{const t=await e({dataViewId:n,globalState:x});if(Array.isArray(t))return await Promise.all(t.map((async e=>({...e,canDisplay:await e.canDisplay(),href:await e.getUrl()}))))}))).then((e=>{k(Object(d.flatten)(e).filter(Xe.a).filter((e=>!0===e.canDisplay)))})),e||(S(p("management",{path:"/data/index_management/indices"})),!0===g.indexPatterns.save&&F(p("management",{path:"/kibana/dataViews"+(s?`/dataView/${n}`:"")}))),()=>{e=!0}}),[n,f,JSON.stringify(x)]),Object(i.useEffect)((()=>{C()}),[]),Object(i.useEffect)((()=>{const e={time:{from:b.from,to:b.to}};w(e)}),[b]),Object(i.useEffect)((()=>{e&&"object"==typeof e&&void 0!==r&&e.hasOwnProperty(r)&&void 0!==e[r].earliest&&void 0!==e[r].latest&&w({time:{from:e[r].earliest,to:e[r].latest}})}),[r,e]),Object(h.jsx)(u.EuiFlexGroup,{gutterSize:"l"},s&&y&&Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiCard,{icon:Object(h.jsx)(u.EuiIcon,{size:"xxl",type:"discoverApp"}),title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.viewIndexInDiscoverTitle",defaultMessage:"View index in Discover"}),description:"",href:y})),O&&Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiCard,{icon:Object(h.jsx)(u.EuiIcon,{size:"xxl",type:"managementApp"}),title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.indexManagementTitle",defaultMessage:"Index Management"}),description:"",href:O})),E&&Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiCard,{icon:Object(h.jsx)(u.EuiIcon,{size:"xxl",type:"managementApp"}),title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.dataViewManagementTitle",defaultMessage:"Data View Management"}),description:"",href:E})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(u.EuiCard,{icon:Object(h.jsx)(u.EuiIcon,{size:"xxl",type:"filebeatApp"}),"data-test-subj":"fileDataVisFilebeatConfigLink",title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.fileBeatConfig",defaultMessage:"Create Filebeat configuration"}),description:"",onClick:o})),Array.isArray(M)&&M.map((e=>Object(h.jsx)(u.EuiFlexItem,{key:e.title},Object(h.jsx)(u.EuiCard,{icon:Object(h.jsx)(u.EuiIcon,{size:"xxl",type:e.icon}),"data-test-subj":"fileDataVisLink",title:e.title,description:e.description,href:e.href})))))};function We(e){return"UTF-8"!==e.charset?[` encoding: ${e.charset}`]:[]}function Ye(e){return void 0!==e.exclude_lines_pattern?[` exclude_lines: ['${e.exclude_lines_pattern.replace(/'/g,"''")}']`]:[]}function Ke(e){return void 0!==e.multiline_start_pattern?[" multiline:",` pattern: '${e.multiline_start_pattern.replace(/'/g,"''")}'`," match: after"," negate: true"]:[]}function Qe(e){return!0===e.need_client_timezone?["processors:","- add_locale: ~",""]:[]}function Ze(e){return null!==e?[` username: "${e}"`,' password: ""']:[]}let et;var tt;(tt=et||(et={}))[tt.HIDDEN=0]="HIDDEN",tt[tt.READONLY=1]="READONLY",tt[tt.EDITABLE=2]="EDITABLE";const nt=({index:e,results:t,ingestPipelineId:n,closeFlyout:r})=>{const[s,o]=Object(i.useState)(""),[a,l]=Object(i.useState)(null),{services:{security:d}}=Object(m.a)();return Object(i.useEffect)((()=>{void 0!==d&&d.authc.getCurrentUser().then((e=>{l(void 0===e.username?null:e.username)}))}),[d]),Object(i.useEffect)((()=>{const i=function(e,t,n,i){return["filebeat.inputs:","- type: log"," paths:",` - '<${p.i18n.translate("xpack.dataVisualizer.fileBeatConfig.paths",{defaultMessage:"add path to your files here"})}>'`,...We(t),...Ye(t),...Ke(t),"",...Qe(t),"output.elasticsearch:",' hosts: [""]',...Ze(i),` index: "${e}"`,` pipeline: "${n}"`,"","setup:"," template.enabled: false"," ilm.enabled: false"].join("\n")}(e,t,n,a);o(i)}),[a,e,n,t]),Object(h.jsx)(u.EuiFlyout,{onClose:r,hideCloseButton:!0,size:"m",ownFocus:!1},Object(h.jsx)(u.EuiFlyoutBody,null,Object(h.jsx)(u.EuiFlexGroup,null,Object(h.jsx)(it,{value:s,username:a,index:e}))),Object(h.jsx)(u.EuiFlyoutFooter,null,Object(h.jsx)(u.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{iconType:"cross",onClick:r,flush:"left","data-test-subj":"fileBeatConfigFlyoutCloseButton"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.fileBeatConfigFlyout.closeButton",defaultMessage:"Close"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiCopy,{textToCopy:s},(e=>Object(h.jsx)(u.EuiButton,{onClick:e},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.fileBeatConfigFlyout.copyButton",defaultMessage:"Copy to clipboard"}))))))))},it=({value:e,index:t,username:n})=>Object(h.jsx)(u.EuiFlexItem,{"data-test-subj":"fileDataVisFilebeatConfigPanel"},Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h5",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.fileBeatConfigTitle",defaultMessage:"Filebeat configuration"}))),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.fileBeatConfigTopText1",defaultMessage:"Additional data can be uploaded to the {index} index using Filebeat.",values:{index:Object(h.jsx)(u.EuiCode,null,t)}})),Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.fileBeatConfigTopText2",defaultMessage:"Modify {filebeatYml} to set the connection information:",values:{filebeatYml:Object(h.jsx)(u.EuiCode,null,"filebeat.yml")}})),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiCodeBlock,{language:"bash"},e),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)("p",null,null===n?Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.fileBeatConfigBottomTextNoUsername",defaultMessage:"Where {esUrl} is the URL of Elasticsearch.",values:{esUrl:Object(h.jsx)(u.EuiCode,null,"")}}):Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.resultsLinks.fileBeatConfigBottomText",defaultMessage:"Where {password} is the password of the {user} user, {esUrl} is the URL of Elasticsearch.",values:{user:Object(h.jsx)(u.EuiCode,null,n),password:Object(h.jsx)(u.EuiCode,null,""),esUrl:Object(h.jsx)(u.EuiCode,null,"")}})));let rt;!function(e){e.INCOMPLETE="incomplete",e.COMPLETE="complete",e.FAILED="danger"}(rt||(rt={}));const st=({statuses:e})=>{const{reading:t,readStatus:n,parseJSONStatus:i,indexCreatedStatus:s,ingestPipelineCreatedStatus:o,dataViewCreatedStatus:a,uploadProgress:l,uploadStatus:d,createDataView:m,createPipeline:g}=e;let f=null,b=0;!0===t&&n===rt.INCOMPLETE&&i===rt.INCOMPLETE&&(b=0),n===rt.COMPLETE&&s===rt.INCOMPLETE&&o===rt.INCOMPLETE&&(b=1),s===rt.COMPLETE&&(b=2),(o===rt.COMPLETE||!1===g&&s===rt.COMPLETE)&&(b=3),d===rt.COMPLETE&&(b=4),a===rt.COMPLETE&&(b=5);let j=p.i18n.translate("xpack.dataVisualizer.file.importProgress.processFileTitle",{defaultMessage:"Process file"}),x=p.i18n.translate("xpack.dataVisualizer.file.importProgress.createIndexTitle",{defaultMessage:"Create index"}),w=p.i18n.translate("xpack.dataVisualizer.file.importProgress.createIngestPipelineTitle",{defaultMessage:"Create ingest pipeline"}),y=p.i18n.translate("xpack.dataVisualizer.file.importProgress.uploadDataTitle",{defaultMessage:"Upload data"}),v=p.i18n.translate("xpack.dataVisualizer.file.importProgress.createDataViewTitle",{defaultMessage:"Create data view"});const O=Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importProgress.stepTwoCreatingIndexDescription",defaultMessage:"Creating index"})),S=Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importProgress.stepTwoCreatingIndexIngestPipelineDescription",defaultMessage:"Creating index and ingest pipeline"}));b>=0&&(j=p.i18n.translate("xpack.dataVisualizer.file.importProgress.processingFileTitle",{defaultMessage:"Processing file"}),f=Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importProgress.processingImportedFileDescription",defaultMessage:"Processing file for import"}))),b>=1&&(j=p.i18n.translate("xpack.dataVisualizer.file.importProgress.fileProcessedTitle",{defaultMessage:"File processed"}),x=p.i18n.translate("xpack.dataVisualizer.file.importProgress.creatingIndexTitle",{defaultMessage:"Creating index"}),f=!0===g?S:O),b>=2&&(x=p.i18n.translate("xpack.dataVisualizer.file.importProgress.indexCreatedTitle",{defaultMessage:"Index created"}),w=p.i18n.translate("xpack.dataVisualizer.file.importProgress.creatingIngestPipelineTitle",{defaultMessage:"Creating ingest pipeline"}),f=!0===g?S:O),b>=3&&(w=p.i18n.translate("xpack.dataVisualizer.file.importProgress.ingestPipelineCreatedTitle",{defaultMessage:"Ingest pipeline created"}),y=p.i18n.translate("xpack.dataVisualizer.file.importProgress.uploadingDataTitle",{defaultMessage:"Uploading data"}),f=Object(h.jsx)(ot,{progress:l})),b>=4&&(y=p.i18n.translate("xpack.dataVisualizer.file.importProgress.dataUploadedTitle",{defaultMessage:"Data uploaded"}),!0===m?(v=p.i18n.translate("xpack.dataVisualizer.file.importProgress.creatingDataViewTitle",{defaultMessage:"Creating data view"}),f=Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importProgress.creatingDataViewDescription",defaultMessage:"Creating data view"}))):f=null),b>=5&&(v=p.i18n.translate("xpack.dataVisualizer.file.importProgress.dataViewCreatedTitle",{defaultMessage:"Data view created"}),f=null);const E=[{title:j,status:i===rt.FAILED?i:n===rt.COMPLETE&&i===rt.COMPLETE?"complete":"selected",onClick:()=>{}},{title:x,status:s!==rt.INCOMPLETE?s:1===b?"selected":"incomplete",onClick:()=>{}},{title:y,status:d!==rt.INCOMPLETE?d:3===b?"selected":"incomplete",onClick:()=>{}}];return!0===g&&E.splice(2,0,{title:w,status:o!==rt.INCOMPLETE?o:2===b?"selected":"incomplete",onClick:()=>{}}),!0===m&&E.push({title:v,status:a!==rt.INCOMPLETE?a:4===b?"selected":"incomplete",onClick:()=>{}}),Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiStepsHorizontal,{steps:E,style:{backgroundColor:"transparent"}}),f&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),f))},ot=({progress:e})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importProgress.uploadingDataDescription",defaultMessage:"Uploading data"})),e<100&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiProgress,{value:e,max:100,color:"primary",size:"s"}))),at=({errors:e,statuses:t})=>Object(h.jsx)(u.EuiCallOut,{title:lt(t),color:"danger",iconType:"cross"},e.map(((e,t)=>Object(h.jsx)(ct,{error:e,key:t}))));function lt(e){switch(rt.FAILED){case e.readStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.readingFileErrorMessage",defaultMessage:"Error reading file"});case e.parseJSONStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.parsingJSONErrorMessage",defaultMessage:"Error parsing JSON"});case e.indexCreatedStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.creatingIndexErrorMessage",defaultMessage:"Error creating index"});case e.ingestPipelineCreatedStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.creatingIngestPipelineErrorMessage",defaultMessage:"Error creating ingest pipeline"});case e.uploadStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.uploadingDataErrorMessage",defaultMessage:"Error uploading data"});case e.dataViewCreatedStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.creatingDataViewErrorMessage",defaultMessage:"Error creating data view"});case e.permissionCheckStatus:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.checkingPermissionErrorMessage",defaultMessage:"Import permissions error"});default:return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.defaultErrorMessage",defaultMessage:"Error"})}}const ct=({error:e})=>{const t=function(e){if("string"==typeof e)return{msg:e};if("object"==typeof e){if(void 0!==e.msg)return{msg:e.msg};if(void 0===e.error)return{msg:JSON.stringify(e)};if("object"!=typeof e.error)return{msg:e.error};{var t;const i=null!==(t=e.error.reason)&&void 0!==t?t:e.error.meta.body.error.reason;if(void 0!==i){var n;const t={msg:i},r=null!==(n=e.error.root_cause)&&void 0!==n?n:e.error.meta.body.error.root_cause;return void 0!==r&&(t.more=JSON.stringify(r)),t}if(void 0!==e.error.message)return{msg:e.error.message}}}return{msg:p.i18n.translate("xpack.dataVisualizer.file.importErrors.unknownErrorMessage",{defaultMessage:"Unknown error"})}}(e);return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)("p",null,t.msg),void 0!==t.more&&Object(h.jsx)(u.EuiAccordion,{id:"more",buttonContent:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importErrors.moreButtonLabel",defaultMessage:"More"}),paddingSize:"m"},t.more))},ut=100;class failures_Failures extends i.Component{constructor(...e){super(...e),l()(this,"state",{page:0})}_renderPaginationControl(){return this.props.failedDocs.length>ut?Object(h.jsx)(u.EuiPagination,{pageCount:Math.floor(this.props.failedDocs.length/ut),activePage:this.state.page,onPageClick:e=>this.setState({page:e}),compressed:!0}):null}render(){const e=this.props.failedDocs.length-1,t=this.state.page*ut,n=t+ut>e?e:t+ut;return Object(h.jsx)(u.EuiAccordion,{id:"failureList",buttonContent:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.failedDocumentsButtonLabel",defaultMessage:"Failed documents"}),paddingSize:"m"},Object(h.jsx)("div",{className:"failure-list"},this._renderPaginationControl(),this.props.failedDocs.slice(t,n).map((({item:e,reason:t,doc:n})=>Object(h.jsx)("div",{key:e},Object(h.jsx)("div",{className:"error-message"},e,": ",t),Object(h.jsx)("div",null,JSON.stringify(n)))))))}}const dt=({index:e,dataView:t,ingestPipelineId:n,docCount:i,importFailures:s,createDataView:o,createPipeline:a})=>{const l=function(e,t,n,i,r,s,o){const a=[{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.indexTitle",defaultMessage:"Index"}),description:e},{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.documentsIngestedTitle",defaultMessage:"Documents ingested"}),description:i-(r&&r.length||0)}];return o&&a.splice(1,0,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.ingestPipelineTitle",defaultMessage:"Ingest pipeline"}),description:n}),s&&a.splice(1,0,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.dataViewTitle",defaultMessage:"Data view"}),description:t}),r&&r.length>0&&a.push({title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.failedDocumentsTitle",defaultMessage:"Failed documents"}),description:r.length}),a}(e,t,n,i,s,o,a);return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiCallOut,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.importCompleteTitle",defaultMessage:"Import complete"}),color:"success",iconType:"check","data-test-subj":"dataVisualizerFileImportSuccessCallout"},Object(h.jsx)(u.EuiDescriptionList,{type:"column",listItems:l,className:"import-summary-list"})),s&&s.length>0&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiCallOut,{title:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.documentsCouldNotBeImportedTitle",defaultMessage:"Some documents could not be imported"}),color:"warning",iconType:"help"},Object(h.jsx)("p",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importSummary.documentsCouldNotBeImportedDescription",defaultMessage:"{importFailuresLength} out of {docCount} documents could not be imported. This could be due to lines not matching the Grok pattern.",values:{importFailuresLength:s.length,docCount:i}})),Object(h.jsx)(failures_Failures,{failedDocs:s}))))};var pt=n(49);const mt=["latitude","lat"],ht=["longitude","long","lon"];function gt(e,t){const n={...e};return t.forEach((e=>{n.properties[e.combinedFieldName]={type:e.mappingType}})),n}function ft(e,t){const n=Object(d.cloneDeep)(e);return t.forEach((e=>{n.processors.push({set:{field:e.combinedFieldName,value:e.fieldNames.map((e=>`{{${e}}}`)).join(e.delimiter)}})})),n}function bt(e,t){return e in t&&"max_value"in t[e]&&t[e].max_value<=90&&"min_value"in t[e]&&t[e].min_value>=-90}function jt(e,t){return e in t&&"max_value"in t[e]&&t[e].max_value<=180&&"min_value"in t[e]&&t[e].min_value>=-180}function xt(e,t,n){return{mappingType:"geo_point",delimiter:",",combinedFieldName:n,fieldNames:[e,t]}}function wt(e){return p.i18n.translate("xpack.dataVisualizer.nameCollisionMsg",{defaultMessage:'"{name}" already exists, please provide a unique name',values:{name:e}})}function yt(e){return void 0!==e.column_names?e.column_names:Object.keys(e.field_stats)}function vt({combinedField:e}){return Object(h.jsx)(u.EuiText,{size:"s"},function(e){return`${e.fieldNames.join(e.delimiter)} => ${e.combinedFieldName} (${e.mappingType})`}(e))}function Ot({combinedFields:e}){return e.length?Object(h.jsx)(u.EuiFormRow,{label:p.i18n.translate("xpack.dataVisualizer.combinedFieldsReadOnlyLabel",{defaultMessage:"Combined fields"}),helpText:p.i18n.translate("xpack.dataVisualizer.combinedFieldsReadOnlyHelpTextLabel",{defaultMessage:"Edit combined fields in advanced tab"})},Object(h.jsx)("div",null,e.map(((e,t)=>Object(h.jsx)(vt,{key:t,combinedField:e}))))):null}class geo_point_GeoPointForm extends i.Component{constructor(e){super(e),l()(this,"onLatFieldChange",(e=>{this.setState({latField:e.target.value})})),l()(this,"onLonFieldChange",(e=>{this.setState({lonField:e.target.value})})),l()(this,"onGeoPointFieldChange",(e=>{const t=e.target.value;this.setState({geoPointField:t}),this.hasNameCollision(t)})),l()(this,"hasNameCollision",Object(d.debounce)((e=>{try{const t=this.props.hasNameCollision(e)?wt(e):"";this.setState({geoPointFieldError:t})}catch(e){this.setState({submitError:e.message})}}),200)),l()(this,"onSubmit",(()=>{try{this.props.addCombinedField(xt(this.state.latField,this.state.lonField,this.state.geoPointField)),this.setState({submitError:""})}catch(e){this.setState({submitError:e.message})}}));const t=[{value:"",text:""}],n=[{value:"",text:""}];yt(e.results).forEach((i=>{bt(i,e.results.field_stats)&&t.push({value:i,text:i}),jt(i,e.results.field_stats)&&n.push({value:i,text:i})})),this.state={latField:"",lonField:"",geoPointField:"",geoPointFieldError:"",submitError:"",latFields:t,lonFields:n}}render(){let e;return this.state.submitError&&(e=Object(h.jsx)(u.EuiFormErrorText,null,this.state.submitError)),Object(h.jsx)(i.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:p.i18n.translate("xpack.dataVisualizer.file.geoPointForm.latFieldLabel",{defaultMessage:"Latitude field"})},Object(h.jsx)(u.EuiSelect,{options:this.state.latFields,value:this.state.latField,onChange:this.onLatFieldChange})),Object(h.jsx)(u.EuiFormRow,{label:p.i18n.translate("xpack.dataVisualizer.file.geoPointForm.lonFieldLabel",{defaultMessage:"Longitude field"})},Object(h.jsx)(u.EuiSelect,{options:this.state.lonFields,value:this.state.lonField,onChange:this.onLonFieldChange})),Object(h.jsx)(u.EuiFormRow,{label:p.i18n.translate("xpack.dataVisualizer.file.geoPointForm.geoPointFieldLabel",{defaultMessage:"Geo point field"}),isInvalid:""!==this.state.geoPointFieldError,error:[this.state.geoPointFieldError]},Object(h.jsx)(u.EuiFieldText,{value:this.state.geoPointField,onChange:this.onGeoPointFieldChange,isInvalid:""!==this.state.geoPointFieldError,"aria-label":p.i18n.translate("xpack.dataVisualizer.file.geoPointForm.geoPointFieldAriaLabel",{defaultMessage:"Geo point field, required field"})})),Object(h.jsx)(u.EuiSpacer,{size:"s"}),e,Object(h.jsx)(u.EuiTextAlign,{textAlign:"right"},Object(h.jsx)(u.EuiButton,{size:"s",fill:!0,disabled:!this.state.latField||!this.state.lonField||!this.state.geoPointField||""!==this.state.geoPointFieldError,onClick:this.onSubmit},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.geoPointForm.submitButtonLabel",defaultMessage:"Add"}))))}}class combined_fields_form_CombinedFieldsForm extends i.Component{constructor(...e){super(...e),l()(this,"state",{isPopoverOpen:!1}),l()(this,"togglePopover",(()=>{this.setState((e=>({isPopoverOpen:!e.isPopoverOpen})))})),l()(this,"closePopover",(()=>{this.setState({isPopoverOpen:!1})})),l()(this,"addCombinedField",(e=>{if(this.hasNameCollision(e.combinedFieldName))throw new Error(wt(e.combinedFieldName));const t=this.parseMappings(),n=this.parsePipeline();this.props.onMappingsStringChange(JSON.stringify(gt(t,[e]),null,2)),this.props.onPipelineStringChange(JSON.stringify(ft(n,[e]),null,2)),this.props.onCombinedFieldsChange([...this.props.combinedFields,e]),this.closePopover()})),l()(this,"removeCombinedField",(e=>{let t,n;try{t=this.parseMappings(),n=this.parsePipeline()}catch(e){return}const i=[...this.props.combinedFields],r=i.splice(e,1);this.props.onMappingsStringChange(JSON.stringify(function(e,t){const n={...e};return t.forEach((e=>{delete n.properties[e.combinedFieldName]})),n}(t,r),null,2)),this.props.onPipelineStringChange(JSON.stringify(function(e,t){return{...e,processors:e.processors.filter((e=>!("set"in e)||!t.some((t=>e.set.field===t.combinedFieldName))))}}(n,r),null,2)),this.props.onCombinedFieldsChange(i)})),l()(this,"hasNameCollision",(e=>{var t;return!(null===(t=this.props.results.column_names)||void 0===t||!t.includes(e))||(!!this.props.combinedFields.some((t=>t.combinedFieldName===e))||this.parseMappings().properties.hasOwnProperty(e))}))}parseMappings(){try{return JSON.parse(this.props.mappingsString)}catch(e){throw new Error(p.i18n.translate("xpack.dataVisualizer.combinedFieldsForm.mappingsParseError",{defaultMessage:"Error parsing mappings: {error}",values:{error:e.message}}))}}parsePipeline(){try{return JSON.parse(this.props.pipelineString)}catch(e){throw new Error(p.i18n.translate("xpack.dataVisualizer.combinedFieldsForm.pipelineParseError",{defaultMessage:"Error parsing pipeline: {error}",values:{error:e.message}}))}}render(){const e=p.i18n.translate("xpack.dataVisualizer.file.geoPointForm.combinedFieldLabel",{defaultMessage:"Add geo point field"}),t=[{id:0,items:[{name:e,panel:1}]},{id:1,title:e,content:Object(h.jsx)(geo_point_GeoPointForm,{addCombinedField:this.addCombinedField,hasNameCollision:this.hasNameCollision,results:this.props.results})}];return Object(h.jsx)(u.EuiFormRow,{label:p.i18n.translate("xpack.dataVisualizer.combinedFieldsLabel",{defaultMessage:"Combined fields"})},Object(h.jsx)("div",null,this.props.combinedFields.map(((e,t)=>Object(h.jsx)(u.EuiFlexGroup,{key:t,gutterSize:"s"},Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(vt,{combinedField:e})),!this.props.isDisabled&&Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonIcon,{iconType:"trash",color:"danger",onClick:this.removeCombinedField.bind(null,t),title:p.i18n.translate("xpack.dataVisualizer.removeCombinedFieldsLabel",{defaultMessage:"Remove combined field"}),"aria-label":p.i18n.translate("xpack.dataVisualizer.removeCombinedFieldsLabel",{defaultMessage:"Remove combined field"})}))))),Object(h.jsx)(u.EuiPopover,{id:"combineFieldsPopover",button:Object(h.jsx)(u.EuiButtonEmpty,{onClick:this.togglePopover,size:"xs",iconType:"plusInCircleFilled",isDisabled:this.props.isDisabled},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.addCombinedFieldsLabel",defaultMessage:"Add combined field"})),isOpen:this.state.isPopoverOpen,closePopover:this.closePopover,anchorPosition:"rightCenter"},Object(h.jsx)(u.EuiContextMenu,{initialPanelId:0,panels:t}))))}}const St=({children:e,showTooltip:t})=>Object(h.jsx)(u.EuiToolTip,{position:"top",content:t?Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.cannotCreateDataView.tooltip",defaultMessage:"You need permission to create data views."}):null},e),Et=({index:e,initialized:t,onIndexChange:n,createDataView:i,onCreateDataViewChange:s,indexNameError:o,combinedFields:a,canCreateDataView:l})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.simpleImportSettings.indexNameFormRowLabel",defaultMessage:"Index name"}),isInvalid:""!==o,error:[o]},Object(h.jsx)(u.EuiFieldText,{placeholder:p.i18n.translate("xpack.dataVisualizer.file.simpleImportSettings.indexNamePlaceholder",{defaultMessage:"index name"}),value:e,disabled:!0===t,onChange:n,isInvalid:""!==o,"aria-label":p.i18n.translate("xpack.dataVisualizer.file.simpleImportSettings.indexNameAriaLabel",{defaultMessage:"Index name, required field"}),"data-test-subj":"dataVisualizerFileIndexNameInput"})),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(St,{showTooltip:!1===l},Object(h.jsx)(u.EuiCheckbox,{id:"createDataView",label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.simpleImportSettings.createDataViewLabel",defaultMessage:"Create data view"}),checked:!0===i,disabled:!0===t||!1===l,onChange:s,"data-test-subj":"dataVisualizerFileCreateDataViewCheckbox"})),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(Ot,{combinedFields:a})),Ft="300px",Mt=({index:e,dataView:t,initialized:n,onIndexChange:i,createDataView:s,onCreateDataViewChange:o,onDataViewChange:a,indexSettingsString:l,mappingsString:d,pipelineString:m,onIndexSettingsStringChange:g,onMappingsStringChange:f,onPipelineStringChange:b,indexNameError:j,dataViewNameError:x,combinedFields:w,onCombinedFieldsChange:y,results:v,canCreateDataView:O})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.advancedImportSettings.indexNameLabel",defaultMessage:"Index name"}),isInvalid:""!==j,error:[j]},Object(h.jsx)(u.EuiFieldText,{placeholder:p.i18n.translate("xpack.dataVisualizer.file.advancedImportSettings.indexNamePlaceholder",{defaultMessage:"index name"}),value:e,disabled:!0===n,onChange:i,isInvalid:""!==j,"aria-label":p.i18n.translate("xpack.dataVisualizer.file.advancedImportSettings.indexNameAriaLabel",{defaultMessage:"Index name, required field"})})),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(St,{showTooltip:!1===O},Object(h.jsx)(u.EuiCheckbox,{id:"createDataView",label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.advancedImportSettings.createDataViewLabel",defaultMessage:"Create data view"}),checked:!0===s,disabled:!0===n||!1===O,onChange:o})),Object(h.jsx)(u.EuiSpacer,{size:"s"}),Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.advancedImportSettings.dataViewNameLabel",defaultMessage:"Data view name"}),isInvalid:""!==x,error:[x]},Object(h.jsx)(u.EuiFieldText,{disabled:!1===s||!0===n,placeholder:!0===s?e:"",value:t,onChange:a,isInvalid:""!==x})),Object(h.jsx)(combined_fields_form_CombinedFieldsForm,{mappingsString:d,pipelineString:m,onMappingsStringChange:f,onPipelineStringChange:b,combinedFields:w,onCombinedFieldsChange:y,results:v,isDisabled:!0===n}),Object(h.jsx)(u.EuiFlexGroup,null,Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(kt,{initialized:n,data:l,onChange:g})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(Ct,{initialized:n,data:d,onChange:f})),Object(h.jsx)(u.EuiFlexItem,null,Object(h.jsx)(_t,{initialized:n,data:m,onChange:b})))),kt=({initialized:e,data:t,onChange:n})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.advancedImportSettings.indexSettingsLabel",defaultMessage:"Index settings"}),fullWidth:!0},Object(h.jsx)(X,{mode:$,readOnly:!0===e,value:t,height:Ft,onChange:n}))),Ct=({initialized:e,data:t,onChange:n})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.advancedImportSettings.mappingsLabel",defaultMessage:"Mappings"}),fullWidth:!0},Object(h.jsx)(X,{mode:$,readOnly:!0===e,value:t,height:Ft,onChange:n}))),_t=({initialized:e,data:t,onChange:n})=>Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiFormRow,{label:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.advancedImportSettings.ingestPipelineLabel",defaultMessage:"Ingest pipeline"}),fullWidth:!0},Object(h.jsx)(X,{mode:$,readOnly:!0===e,value:t,height:Ft,onChange:n}))),Pt=({index:e,dataView:t,initialized:n,onIndexChange:i,createDataView:s,onCreateDataViewChange:o,onDataViewChange:a,indexSettingsString:l,mappingsString:c,pipelineString:d,onIndexSettingsStringChange:g,onMappingsStringChange:f,onPipelineStringChange:b,indexNameError:j,dataViewNameError:x,combinedFields:w,onCombinedFieldsChange:y,results:v})=>{const{services:{application:{capabilities:O}}}=Object(m.a)(),S=!0===O.savedObjectsManagement.edit||!0===O.indexPatterns.save,E=[{id:"simple-settings",name:p.i18n.translate("xpack.dataVisualizer.file.importSettings.simpleTabName",{defaultMessage:"Simple"}),content:Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(Et,{index:e,initialized:n,onIndexChange:i,createDataView:s,onCreateDataViewChange:o,indexNameError:j,combinedFields:w,canCreateDataView:S}))},{id:"advanced-settings",name:p.i18n.translate("xpack.dataVisualizer.file.importSettings.advancedTabName",{defaultMessage:"Advanced"}),content:Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(Mt,{index:e,dataView:t,initialized:n,onIndexChange:i,createDataView:s,onCreateDataViewChange:o,onDataViewChange:a,indexSettingsString:l,mappingsString:c,pipelineString:d,onIndexSettingsStringChange:g,onMappingsStringChange:f,onPipelineStringChange:b,indexNameError:j,dataViewNameError:x,combinedFields:w,onCombinedFieldsChange:y,results:v,canCreateDataView:S}))}];return Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiTabbedContent,{tabs:E,initialSelectedTab:E[0],onTabClick:()=>{}}))},Lt="@timestamp",Rt={number_of_shards:1},Tt={index:"",importing:!1,imported:!1,initialized:!1,reading:!1,readProgress:0,readStatus:rt.INCOMPLETE,parseJSONStatus:rt.INCOMPLETE,indexCreatedStatus:rt.INCOMPLETE,dataViewCreatedStatus:rt.INCOMPLETE,ingestPipelineCreatedStatus:rt.INCOMPLETE,permissionCheckStatus:rt.INCOMPLETE,uploadProgress:0,uploadStatus:rt.INCOMPLETE,createDataView:!0,dataView:"",dataViewId:"",ingestPipelineId:"",errors:[],importFailures:[],docCount:0,configMode:0,indexSettingsString:"",mappingsString:"",pipelineString:"",indexNames:[],dataViewNames:[],indexNameError:"",dataViewNameError:"",timeFieldName:void 0,isFilebeatFlyoutVisible:!1,checkingValidIndex:!1,combinedFields:[]};class import_view_ImportView extends i.Component{constructor(e){super(e),l()(this,"clickReset",(()=>{const e=Nt(this.state,this.props.results,this.props.capabilities);this.setState(e,(()=>{this.loadDataViewNames()}))})),l()(this,"clickImport",(()=>{this.import()})),l()(this,"onConfigModeChange",(e=>{this.setState({configMode:e})})),l()(this,"onIndexChange",(e=>{const t=e.target.value;this.setState({index:t,checkingValidIndex:!0}),this.debounceIndexCheck(t)})),l()(this,"debounceIndexCheck",Object(d.debounce)((async e=>{if(""===e)return void this.setState({checkingValidIndex:!1});const t=await this.props.fileUpload.checkIndexExists(e)?Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.indexNameAlreadyExistsErrorMessage",defaultMessage:"Index name already exists"}):function(e){const t=new RegExp('[\\\\/*?"<>|\\s,#]+');return e!==e.toLowerCase()||"."===e||".."===e||null!==e.match(/^[-_+]/)||null!==e.match(t)?Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.indexNameContainsIllegalCharactersErrorMessage",defaultMessage:"Index name contains illegal characters"}):""}(e);this.setState({checkingValidIndex:!1,indexNameError:t})}),500)),l()(this,"onDataViewChange",(e=>{const t=e.target.value,{dataViewNames:n,index:i}=this.state;this.setState({dataView:t,dataViewNameError:zt(t,n,i)})})),l()(this,"onCreateDataViewChange",(e=>{this.setState({createDataView:e.target.checked})})),l()(this,"onIndexSettingsStringChange",(e=>{this.setState({indexSettingsString:e})})),l()(this,"onMappingsStringChange",(e=>{this.setState({mappingsString:e})})),l()(this,"onPipelineStringChange",(e=>{this.setState({pipelineString:e})})),l()(this,"onCombinedFieldsChange",(e=>{this.setState({combinedFields:e})})),l()(this,"setImportProgress",(e=>{this.setState({uploadProgress:e})})),l()(this,"setReadProgress",(e=>{this.setState({readProgress:e})})),l()(this,"showFilebeatFlyout",(()=>{this.setState({isFilebeatFlyoutVisible:!0})})),l()(this,"closeFilebeatFlyout",(()=>{this.setState({isFilebeatFlyoutVisible:!1})})),this.state=Nt(Tt,this.props.results,this.props.capabilities),this.dataViewsContract=e.dataViewsContract}componentDidMount(){this.loadDataViewNames()}async import(){const{data:e,results:t,dataViewsContract:n,fileUpload:i}=this.props,{format:r}=t;let{timeFieldName:s}=this.state;const{index:o,dataView:a,createDataView:l,indexSettingsString:c,mappingsString:u,pipelineString:d}=this.state,m=[];""!==o&&this.setState({importing:!0,errors:m},(async()=>{if(!1===await i.hasImportPermission({checkCreateDataView:l,checkHasManagePipeline:!0,indexName:o}))return m.push(p.i18n.translate("xpack.dataVisualizer.file.importView.importPermissionError",{defaultMessage:"You do not have permission to create or import data into index {index}.",values:{index:o}})),void this.setState({permissionCheckStatus:rt.FAILED,importing:!1,imported:!1,errors:m});this.setState({importing:!0,imported:!1,reading:!0,initialized:!0,permissionCheckStatus:rt.COMPLETE},(()=>{setTimeout((async()=>{let h=!0;const g=""!==d;let f={},b={},j={};try{f=JSON.parse(c)}catch(e){h=!1;const t=p.i18n.translate("xpack.dataVisualizer.file.importView.parseSettingsError",{defaultMessage:"Error parsing settings:"});m.push(`${t} ${e.message}`)}try{b=JSON.parse(u)}catch(e){h=!1;const t=p.i18n.translate("xpack.dataVisualizer.file.importView.parseMappingsError",{defaultMessage:"Error parsing mappings:"});m.push(`${t} ${e.message}`)}try{g&&(j=JSON.parse(d))}catch(e){h=!1;const t=p.i18n.translate("xpack.dataVisualizer.file.importView.parsePipelineError",{defaultMessage:"Error parsing ingest pipeline:"});m.push(`${t} ${e.message}`)}if(this.setState({parseJSONStatus:h?rt.COMPLETE:rt.FAILED}),Object(qe.a)(b.properties,[Lt])&&(s=Lt,this.setState({timeFieldName:s})),h){const c=await i.importerFactory(r,{excludeLinesPattern:t.exclude_lines_pattern,multilineStartPattern:t.multiline_start_pattern});if(void 0!==c){const t=c.read(e,this.setReadProgress);if(h=t.success,this.setState({readStatus:h?rt.COMPLETE:rt.FAILED,reading:!1}),!1===t.success&&(console.error(t.error),m.push(t.error)),h){const e=await c.initializeImport(o,f,b,j),t=void 0!==e.index;if(this.setState({indexCreatedStatus:t?rt.COMPLETE:rt.FAILED}),g){const n=void 0!==e.pipelineId;t&&this.setState({ingestPipelineCreatedStatus:n?rt.COMPLETE:rt.FAILED,ingestPipelineId:n?e.pipelineId:""}),h=t&&n}else h=t;if(h){const t=e.id,i=e.pipelineId,r=await c.import(t,o,i,this.setImportProgress);if(h=r.success,this.setState({uploadStatus:r.success?rt.COMPLETE:rt.FAILED,importFailures:r.failures,docCount:r.docCount}),h){if(l){const e=""===a?o:a,t=await async function(e,t,n){try{return{success:!0,id:(await t.createAndSave({title:e,timeFieldName:n})).id}}catch(e){return{success:!1,error:e}}}(e,n,s);h=t.success,this.setState({dataViewCreatedStatus:t.success?rt.COMPLETE:rt.FAILED,dataViewId:t.id}),!1===t.success&&m.push(t.error)}}else m.push(r.error)}else m.push(e.error)}}}this.setState({importing:!1,imported:h,errors:m})}),500)}))}))}async loadDataViewNames(){try{const e=await this.dataViewsContract.getTitles();this.setState({dataViewNames:e})}catch(e){console.error("failed to load data views",e)}}render(){var e,t;const{index:n,dataView:i,dataViewId:s,ingestPipelineId:o,importing:a,imported:l,reading:d,initialized:p,readStatus:m,parseJSONStatus:g,indexCreatedStatus:f,ingestPipelineCreatedStatus:b,dataViewCreatedStatus:j,permissionCheckStatus:x,uploadProgress:w,uploadStatus:y,createDataView:v,errors:O,docCount:S,importFailures:E,indexSettingsString:F,mappingsString:M,pipelineString:k,indexNameError:C,dataViewNameError:_,timeFieldName:P,isFilebeatFlyoutVisible:L,checkingValidIndex:R,combinedFields:T}=this.state,N=""!==k,z={reading:d,readStatus:m,parseJSONStatus:g,indexCreatedStatus:f,ingestPipelineCreatedStatus:b,dataViewCreatedStatus:j,permissionCheckStatus:x,uploadProgress:w,uploadStatus:y,createDataView:v,createPipeline:N},I=""===n||""!==C||!0===v&&""!==_||!0===p||!0===R;return Object(h.jsx)(u.EuiPageBody,{"data-test-subj":"dataVisualizerPageFileImport"},Object(h.jsx)(u.EuiPageContentHeader_Deprecated,null,Object(h.jsx)(u.EuiTitle,null,Object(h.jsx)("h1",null,this.props.fileName))),Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiPanel,{"data-test-subj":"dataVisualizerFileImportSettingsPanel"},Object(h.jsx)(u.EuiTitle,{size:"s"},Object(h.jsx)("h2",null,Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.importDataTitle",defaultMessage:"Import data"}))),Object(h.jsx)(Pt,{index:n,dataView:i,initialized:p,onIndexChange:this.onIndexChange,createDataView:v,onCreateDataViewChange:this.onCreateDataViewChange,onDataViewChange:this.onDataViewChange,indexSettingsString:F,mappingsString:M,pipelineString:k,onIndexSettingsStringChange:this.onIndexSettingsStringChange,onMappingsStringChange:this.onMappingsStringChange,onPipelineStringChange:this.onPipelineStringChange,indexNameError:C,dataViewNameError:_,combinedFields:T,onCombinedFieldsChange:this.onCombinedFieldsChange,results:this.props.results}),Object(h.jsx)(u.EuiSpacer,{size:"m"}),(!1===p||!0===a)&&Object(h.jsx)(u.EuiFlexGroup,null,Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{isDisabled:I,onClick:this.clickImport,isLoading:a,iconSide:"right",fill:!0,"data-test-subj":"dataVisualizerFileImportButton"},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.importButtonLabel",defaultMessage:"Import"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{onClick:()=>this.props.onChangeMode(me.READ),isDisabled:a},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.backButtonLabel",defaultMessage:"Back"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{onClick:()=>this.props.onCancel(),isDisabled:a},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.cancelButtonLabel",defaultMessage:"Select a different file"})))),!0===p&&!1===a&&Object(h.jsx)(u.EuiFlexGroup,null,Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{onClick:this.clickReset},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.resetButtonLabel",defaultMessage:"Reset"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButton,{onClick:()=>this.props.onChangeMode(me.READ),isDisabled:a},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.backButtonLabel",defaultMessage:"Back"}))),Object(h.jsx)(u.EuiFlexItem,{grow:!1},Object(h.jsx)(u.EuiButtonEmpty,{onClick:()=>this.props.onCancel(),isDisabled:a},Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.importNewButtonLabel",defaultMessage:"Import a new file"}))))),!0===p&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(u.EuiPanel,null,Object(h.jsx)(st,{statuses:z}),!0===l&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(dt,{index:n,dataView:""===i?n:i,ingestPipelineId:o,docCount:S,importFailures:E,createDataView:v,createPipeline:N}),Object(h.jsx)(u.EuiSpacer,{size:"l"}),Object(h.jsx)(Je,{fieldStats:null===(e=this.props.results)||void 0===e?void 0:e.field_stats,index:n,dataViewId:s,timeFieldName:P,createDataView:v,showFilebeatFlyout:this.showFilebeatFlyout,getAdditionalLinks:null!==(t=this.props.getAdditionalLinks)&&void 0!==t?t:[]}),L&&Object(h.jsx)(nt,{index:n,results:this.props.results,ingestPipelineId:o,closeFlyout:this.closeFilebeatFlyout})))),O.length>0&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(u.EuiSpacer,{size:"m"}),Object(h.jsx)(at,{errors:O,statuses:z})))}}function Nt(e,t,n){const i=""===e.indexSettingsString?JSON.stringify(Rt,null,2):e.indexSettingsString,r=e.combinedFields.length?e.combinedFields:function(e){const t=[],n=function(e){const t=yt(e),n=t.find((t=>mt.includes(t.toLowerCase())&&bt(t,e.field_stats))),i=t.find((t=>ht.includes(t.toLowerCase())&&jt(t,e.field_stats)));if(!n||!i)return null;const r=["location","point_location",`${n}_${i}`,`location_${Object(pt.v4)()}`].find((e=>!t.includes(e)));return r?xt(n,i,r):null}(e);return n&&t.push(n),t}(t),s=""===e.mappingsString?JSON.stringify(gt(t.mappings,r),null,2):e.mappingsString,o=""===e.pipelineString&&void 0!==t.ingest_pipeline?JSON.stringify(ft(t.ingest_pipeline,r),null,2):e.pipelineString,a=t.timestamp_field,l=(!1!==n.savedObjectsManagement.edit||!1!==n.indexPatterns.save)&&e.createDataView;return{...Tt,indexSettingsString:i,mappingsString:s,pipelineString:o,timeFieldName:a,combinedFields:r,createDataView:l}}function zt(e,t,n){if(""===e)return"";if(t.find((t=>t===e)))return Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.dataViewNameAlreadyExistsErrorMessage",defaultMessage:"Data view name already exists"});let i=e.replace(/\./g,"\\.");i=i.replace(/\+/g,"\\+"),i=i.replace(/\*/g,".*");const r=new RegExp(`^${i}$`);return null===n.match(r)?Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.importView.indexPatternDoesNotMatchDataViewErrorMessage",defaultMessage:"Data view does not match index name"}):""}var It=n(72),Vt=n(50);class file_data_visualizer_view_FileDataVisualizerView extends i.Component{constructor(e){super(e),l()(this,"onFilePickerChange",(e=>{this.overrides={},this.setState({loading:e.length>0,loaded:!1,fileName:"",fileContents:"",data:[],fileSize:0,fileTooLarge:!1,fileCouldNotBeRead:!1,fileCouldNotBeReadPermissionError:!1,serverError:null,results:void 0,explanation:void 0},(()=>{e.length&&this.loadFile(e[0])}))})),l()(this,"closeEditFlyout",(()=>{this.setState({isEditFlyoutVisible:!1})})),l()(this,"showEditFlyout",(()=>{this.setState({isEditFlyoutVisible:!0})})),l()(this,"closeExplanationFlyout",(()=>{this.setState({isExplanationFlyoutVisible:!1})})),l()(this,"showExplanationFlyout",(()=>{this.setState({isExplanationFlyoutVisible:!0})})),l()(this,"setOverrides",(e=>{this.setState({loading:!0,loaded:!1},(()=>{const t=Object(It.b)(e,this.originalSettings);this.analyzeFile(this.state.fileContents,t)}))})),l()(this,"changeMode",(e=>{this.setState({mode:e})})),l()(this,"onCancel",(()=>{this.overrides={},this.previousOverrides={},this.originalSettings={linesToSample:It.a},this.changeMode(me.READ),this.onFilePickerChange([])})),this.state={files:{},fileName:"",fileContents:"",data:[],fileSize:0,fileTooLarge:!1,fileCouldNotBeRead:!1,serverError:null,loading:!1,loaded:!1,results:void 0,explanation:void 0,mode:me.READ,isEditFlyoutVisible:!1,isExplanationFlyoutVisible:!1,hasPermissionToImport:!1,fileCouldNotBeReadPermissionError:!1},this.overrides={},this.previousOverrides={},this.originalSettings={linesToSample:It.a},this.maxFileUploadBytes=e.fileUpload.getMaxBytes()}async componentDidMount(){const e=await this.props.fileUpload.hasImportPermission({checkCreateDataView:!1,checkHasManagePipeline:!0});this.setState({hasPermissionToImport:e})}async loadFile(e){if(e.size<=this.maxFileUploadBytes)try{const{data:t,fileContents:n}=await Object(It.g)(e);this.setState({data:t,fileContents:n,fileName:e.name,fileSize:e.size}),await this.analyzeFile(n)}catch(e){this.setState({loaded:!1,loading:!1,fileCouldNotBeRead:!0})}else this.setState({loaded:!1,loading:!1,fileTooLarge:!0,fileName:e.name,fileSize:e.size})}async analyzeFile(e,t,n=!1){try{const i=await this.props.fileUpload.analyzeFile(e,t),r=Object(It.f)(i),s=i.overrides;if(this.previousOverrides=t,this.overrides={},"xml"===r.format)throw{message:Object(h.jsx)(c.FormattedMessage,{id:"xpack.dataVisualizer.file.xmlNotCurrentlySupportedErrorMessage",defaultMessage:"XML not currently supported"})};void 0===s?this.originalSettings=r:(Object.keys(s).forEach((e=>{const t=e.replace(/_\w/g,(e=>e[1].toUpperCase()));this.overrides[t]=s[e]})),Object.keys(r).forEach((e=>{const t=r[e];void 0===this.overrides[e]&&(Array.isArray(t)&&!1===Object(d.isEqual)(t,this.originalSettings[e])||t!==this.originalSettings[e])&&(this.originalSettings[e]=t)}))),this.setState({results:i.results,explanation:i.explanation,loaded:!0,loading:!1,fileCouldNotBeRead:n})}catch(t){const i=403===t.body.statusCode;this.setState({results:void 0,explanation:void 0,loaded:!1,loading:!1,fileCouldNotBeRead:!0,fileCouldNotBeReadPermissionError:i,serverError:t}),!1===n&&!1===i&&(this.setState({loading:!0,loaded:!1}),this.analyzeFile(e,this.previousOverrides,!0))}}render(){const{loading:e,loaded:t,results:n,explanation:i,fileContents:s,data:o,fileName:a,fileSize:l,fileTooLarge:c,fileCouldNotBeRead:d,serverError:p,mode:m,isEditFlyoutVisible:g,isExplanationFlyoutVisible:f,hasPermissionToImport:x,fileCouldNotBeReadPermissionError:w}=this.state,y=void 0!==n&&void 0!==n.field_stats?Object.keys(n.field_stats):[];return Object(h.jsx)("div",null,m===me.READ&&Object(h.jsx)(r.a.Fragment,null,!e&&!t&&Object(h.jsx)(b,{onFilePickerChange:this.onFilePickerChange,hasPermissionToImport:x}),e&&Object(h.jsx)(j,null),c&&Object(h.jsx)(be,{fileSize:l,maxFileSize:this.maxFileUploadBytes}),d&&!1===e&&Object(h.jsx)(r.a.Fragment,null,w?Object(h.jsx)(we,null):Object(h.jsx)(je,{error:p,loaded:t,showEditFlyout:this.showEditFlyout}),Object(h.jsx)(u.EuiSpacer,{size:"l"})),t&&Object(h.jsx)(he,{results:n,explanation:i,fileName:a,data:s,showEditFlyout:this.showEditFlyout,showExplanationFlyout:this.showExplanationFlyout,disableButtons:g||f,onChangeMode:this.changeMode,onCancel:this.onCancel,disableImport:!1===x}),Object(h.jsx)(edit_flyout_EditFlyout,{setOverrides:this.setOverrides,closeEditFlyout:this.closeEditFlyout,isFlyoutVisible:g,originalSettings:this.originalSettings,overrides:this.overrides,fields:y}),f&&Object(h.jsx)(He,{results:n,closeFlyout:this.closeExplanationFlyout})),m===me.IMPORT&&Object(h.jsx)(r.a.Fragment,null,Object(h.jsx)(import_view_ImportView,{results:n,fileName:a,fileContents:s,data:o,dataViewsContract:this.props.dataViewsContract,fileUpload:this.props.fileUpload,getAdditionalLinks:this.props.getAdditionalLinks,capabilities:this.props.capabilities,mode:m,onChangeMode:this.changeMode,onCancel:this.onCancel})),Object(h.jsx)(Vt.Chat,null))}}const Dt=({getAdditionalLinks:e})=>{const t=Object(o.a)(),{data:n,maps:i,embeddable:a,discover:l,share:c,security:u,fileUpload:d,cloud:p}=Object(o.b)(),m={data:n,maps:i,embeddable:a,discover:l,share:c,security:u,fileUpload:d,...t},g=(null==p?void 0:p.CloudContextProvider)||(({children:e})=>Object(h.jsx)(r.a.Fragment,null,e));return Object(h.jsx)(s.KibanaThemeProvider,{theme$:t.theme.theme$},Object(h.jsx)(s.KibanaContextProvider,{services:{...m}},Object(h.jsx)(g,null,Object(h.jsx)(file_data_visualizer_view_FileDataVisualizerView,{dataViewsContract:n.dataViews,http:t.http,fileUpload:d,getAdditionalLinks:e,capabilities:t.application.capabilities}))))};t.default=Dt},78:function(e,t,n){e.exports=n(20)(1801)},99:function(e,t,n){switch(window.__kbnThemeTag__){case"v8dark":return n(121);case"v8light":return n(123)}}}]);