UNPKG

joy-query-box

Version:

A React component for building and parsing SQL-like queries

1 lines 50.3 kB
(()=>{var e={124:(e,t,n)=>{var r=n(325);e.exports=function(){return r.Date.now()}},128:(e,t,n)=>{var r=n(800),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},221:(e,t,n)=>{var r=n(805),o=n(124),i=n(374),a=Math.max,s=Math.min;e.exports=function(e,t,n){var c,l,p,u,h,d,f=0,g=!1,m=!1,b=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function v(t){var n=c,r=l;return c=l=void 0,f=t,u=e.apply(r,n)}function x(e){var n=e-d;return void 0===d||n>=t||n<0||m&&e-f>=p}function w(){var e=o();if(x(e))return y(e);h=setTimeout(w,function(e){var n=t-(e-d);return m?s(n,p-(e-f)):n}(e))}function y(e){return h=void 0,b&&c?v(e):(c=l=void 0,u)}function _(){var e=o(),n=x(e);if(c=arguments,l=this,d=e,n){if(void 0===h)return function(e){return f=e,h=setTimeout(w,t),g?v(e):u}(d);if(m)return clearTimeout(h),h=setTimeout(w,t),v(d)}return void 0===h&&(h=setTimeout(w,t)),u}return t=i(t)||0,r(n)&&(g=!!n.leading,p=(m="maxWait"in n)?a(i(n.maxWait)||0,t):p,b="trailing"in n?!!n.trailing:b),_.cancel=function(){void 0!==h&&clearTimeout(h),f=0,c=d=l=h=void 0},_.flush=function(){return void 0===h?u:y(o())},_}},228:()=>{ace.define("ace/snippets/text",["require","exports","module"],(function(e,t,n){"use strict";t.snippetText=void 0,t.scope="text"}))},325:(e,t,n)=>{var r=n(840),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},346:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},350:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},351:()=>{ace.define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"],(function(e,t,n){t.isDark=!1,t.cssClass="ace-tomorrow",t.cssText=".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow {background-color: #FFFFFF;color: #4D4D4C}.ace-tomorrow .ace_cursor {color: #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_heading,.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}",e("../lib/dom").importCssString(t.cssText,t.cssClass)}))},374:(e,t,n)=>{var r=n(128),o=n(805),i=n(394),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=s.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):a.test(e)?NaN:+e}},394:(e,t,n)=>{var r=n(552),o=n(346);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},464:()=>{ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"],(function(e,t,n){"use strict";var r=e("./lib/oop"),o=e("./lib/event_emitter").EventEmitter,i=e("./lib/lang"),a=e("./range").Range,s=e("./anchor").Anchor,c=e("./keyboard/hash_handler").HashHandler,l=e("./tokenizer").Tokenizer,p=a.comparePoints,u=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,o),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}return u.$tokenizer=new l({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return"}"==r&&n.length||-1!="`$\\".indexOf(r)?e=r:n.inFormatString&&("n"==r||"t"==r?e="\n":-1!="ulULE".indexOf(r)&&(e={changeCase:r,local:r>"a"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,n,r){var o=e(t.substr(1),0,r);return r.unshift(o[0]),o},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(",")},next:"start"},{regex:"/("+t("/")+"+)/(?:("+t("/")+"*)/)(\\w*):?",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],""},next:"start"},{regex:"`"+t("`")+"*`",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),""},next:"start"},{regex:"\\?",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+t("/")+"+)/",token:"regex"},{regex:"",onMatch:function(e,t,n){n.inFormatString=!0},next:"start"}]}),u.prototype.getTokenizer=function(){return u.$tokenizer},u.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map((function(e){return e.value||e}))},this.$getDefaultValue=function(e,t){if(/^[A-Z]\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+"__"]||{})[n]}if(/^\d+$/.test(t))return(this.variables.__||{})[t];if(t=t.replace(/^TM_/,""),e){var r=e.session;switch(t){case"CURRENT_WORD":var o=r.getWordRange();case"SELECTION":case"SELECTED_TEXT":return r.getTextRange(o);case"CURRENT_LINE":return r.getLine(e.getCursorPosition().row);case"PREV_LINE":return r.getLine(e.getCursorPosition().row-1);case"LINE_INDEX":return e.getCursorPosition().column;case"LINE_NUMBER":return e.getCursorPosition().row+1;case"SOFT_TABS":return r.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return r.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||"":this.$getDefaultValue(e,t)||""},this.tmStrFormat=function(e,t,n){var r=t.flag||"",o=t.guard;o=new RegExp(o,r.replace(/[^gi]/,""));var i=this.tokenizeTmSnippet(t.fmt,"formatString"),a=this,s=e.replace(o,(function(){a.variables.__=arguments;for(var e=a.resolveVariables(i,n),t="E",r=0;r<e.length;r++){var o=e[r];if("object"==typeof o)if(e[r]="",o.changeCase&&o.local){var s=e[r+1];s&&"string"==typeof s&&("u"==o.changeCase?e[r]=s[0].toUpperCase():e[r]=s[0].toLowerCase(),e[r+1]=s.substr(1))}else o.changeCase&&(t=o.changeCase);else"U"==t?e[r]=o.toUpperCase():"L"==t&&(e[r]=o.toLowerCase())}return e.join("")}));return this.variables.__=null,s},this.resolveVariables=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r];if("string"==typeof o)n.push(o);else{if("object"!=typeof o)continue;if(o.skip)a(o);else{if(o.processed<r)continue;if(o.text){var i=this.getVariableValue(t,o.text);i&&o.fmtString&&(i=this.tmStrFormat(i,o)),o.processed=r,null==o.expectIf?i&&(n.push(i),a(o)):i?o.skip=o.elseBranch:a(o)}else(null!=o.tabstopId||null!=o.changeCase)&&n.push(o)}}}function a(t){var n=e.indexOf(t,r+1);-1!=n&&(r=n)}return n},this.insertSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),o=e.session.getTabString(),i=r.match(/^\s*/)[0];n.column<i.length&&(i=i.slice(0,n.column)),t=t.replace(/\r/g,"");var a=this.tokenizeTmSnippet(t);a=(a=this.resolveVariables(a,e)).map((function(e){return"\n"==e?e+i:"string"==typeof e?e.replace(/\t/g,o):e}));var s=[];a.forEach((function(e,t){if("object"==typeof e){var n=e.tabstopId,r=s[n];if(r||((r=s[n]=[]).index=n,r.value=""),-1===r.indexOf(e)){r.push(e);var o=a.indexOf(e,t+1);if(-1!==o){var i=a.slice(t+1,o);i.some((function(e){return"object"==typeof e}))&&!r.value?r.value=i:!i.length||r.value&&"string"==typeof r.value||(r.value=i.join(""))}}}})),s.forEach((function(e){e.length=0}));var c={};function l(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];if("object"==typeof r){if(c[r.tabstopId])continue;r=t[e.lastIndexOf(r,n-1)]||{tabstopId:r.tabstopId}}t[n]=r}return t}for(var p=0;p<a.length;p++){var u=a[p];if("object"==typeof u){var d=u.tabstopId,f=a.indexOf(u,p+1);if(c[d])c[d]===u&&(c[d]=null);else{var g=s[d],m="string"==typeof g.value?[g.value]:l(g.value);m.unshift(p+1,Math.max(0,f-p)),m.push(u),c[d]=u,a.splice.apply(a,m),-1===g.indexOf(u)&&g.push(u)}}}var b=0,v=0,x="";a.forEach((function(e){if("string"==typeof e){var t=e.split("\n");t.length>1?(v=t[t.length-1].length,b+=t.length-1):v+=e.length,x+=e}else e.start?e.end={row:b,column:v}:e.start={row:b,column:v}}));var w=e.getSelectionRange(),y=e.session.replace(w,x),_=new h(e),T=e.inVirtualSelectionMode&&e.selection.index;_.addTabstops(s,w.start,y,T)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection((function(){n.insertSnippetForSelection(e,t)}),null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";if("html"===(t=t.split("/").pop())||"php"===t){"php"!==t||e.session.$mode.inlinePhp||(t="html");var n=e.getCursorPosition(),r=e.session.getState(n.row);"object"==typeof r&&(r=r[0]),r.substring&&("js-"==r.substring(0,3)?t="javascript":"css-"==r.substring(0,4)?t="css":"php-"==r.substring(0,4)&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push("_"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection((function(){return n.expandSnippetForSelection(e,t)}),null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n,r=e.getCursorPosition(),o=e.session.getLine(r.row),i=o.substring(0,r.column),a=o.substr(r.column),s=this.snippetMap;return this.getActiveScopes(e).some((function(e){var t=s[e];return t&&(n=this.findMatchingSnippet(t,i,a)),!!n}),this),!!n&&(t&&t.dryRun||(e.session.doc.removeInLine(r.row,r.column-n.replaceBefore.length,r.column+n.replaceAfter.length),this.variables.M__=n.matchBefore,this.variables.T__=n.matchAfter,this.insertSnippetForSelection(e,n.content),this.variables.M__=this.variables.T__=null),!0)},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var o=e[r];if((!o.startRe||o.startRe.test(t))&&(!o.endRe||o.endRe.test(n))&&(o.startRe||o.endRe))return o.matchBefore=o.startRe?o.startRe.exec(t):[""],o.matchAfter=o.endRe?o.endRe.exec(n):[""],o.replaceBefore=o.triggerRe?o.triggerRe.exec(t)[0]:"",o.replaceAfter=o.endTriggerRe?o.endTriggerRe.exec(n)[0]:"",o}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){var n=this.snippetMap,r=this.snippetNameMap,o=this;function a(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function s(e,t,n){return e=a(e),t=a(t),n?(e=t+e)&&"$"!=e[e.length-1]&&(e+="$"):(e+=t)&&"^"!=e[0]&&(e="^"+e),new RegExp(e)}function c(e){e.scope||(e.scope=t||"_"),t=e.scope,n[t]||(n[t]=[],r[t]={});var a=r[t];if(e.name){var c=a[e.name];c&&o.unregister(c),a[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=i.escapeRegExp(e.tabTrigger)),(e.trigger||e.guard||e.endTrigger||e.endGuard)&&(e.startRe=s(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,"",!0),e.endRe=s(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,"",!0))}e||(e=[]),e&&e.content?c(e):Array.isArray(e)&&e.forEach(c),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){var n=this.snippetMap,r=this.snippetNameMap;function o(e){var o=r[e.scope||t];if(o&&o[e.name]){delete o[e.name];var i=n[e.scope||t],a=i&&i.indexOf(e);a>=0&&i.splice(a,1)}}e.content?o(e):Array.isArray(e)&&e.forEach(o)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");for(var t,n=[],r={},o=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;t=o.exec(e);){if(t[1])try{r=JSON.parse(t[1]),n.push(r)}catch(e){}if(t[4])r.content=t[4].replace(/^\t/gm,""),n.push(r),r={};else{var i=t[2],a=t[3];if("regex"==i){var s=/\/((?:[^\/\\]|\\.)*)|$/g;r.guard=s.exec(a)[1],r.trigger=s.exec(a)[1],r.endTrigger=s.exec(a)[1],r.endGuard=s.exec(a)[1]}else"snippet"==i?(r.tabTrigger=a.match(/^\S*/)[0],r.name||(r.name=a)):r[i]=a}}return n},this.getSnippetByName=function(e,t){var n,r=this.snippetNameMap;return this.getActiveScopes(t).some((function(t){var o=r[t];return o&&(n=o[e]),!!n}),this),n}}).call(u.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=i.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t="r"==e.action[0],n=e.start,r=e.end,o=n.row,i=r.row-o,a=r.column-n.column;if(t&&(i=-i,a=-a),!this.$inChange&&t){var s=this.selectedTabstop,c=s&&!s.some((function(e){return p(e.start,n)<=0&&p(e.end,r)>=0}));if(c)return this.detach()}for(var l=this.ranges,u=0;u<l.length;u++){var h=l[u];h.end.row<n.row||(t&&p(n,h.start)<0&&p(r,h.end)>0?(this.removeRange(h),u--):(h.start.row==o&&h.start.column>n.column&&(h.start.column+=a),h.end.row==o&&h.end.column>=n.column&&(h.end.column+=a),h.start.row>=o&&(h.start.row+=i),h.end.row>=o&&(h.end.row+=i),p(h.start,h.end)>0&&this.removeRange(h)))}l.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(e&&e.hasLinkedRanges){this.$inChange=!0;for(var n=this.editor.session,r=n.getTextRange(e.firstNonLinked),o=e.length;o--;){var i=e[o];if(i.linked){var a=t.snippetManager.tmStrFormat(r,i.original);n.replace(i,a)}}this.$inChange=!1}},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(this.editor){for(var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty(),r=this.ranges.length;r--;)if(!this.ranges[r].linked){var o=this.ranges[r].contains(e.row,e.column),i=n||this.ranges[r].contains(t.row,t.column);if(o&&i)return}this.detach()}},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);(n=Math.min(Math.max(n,1),t))==t&&(n=0),this.selectTabstop(n),0===n&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];if(t&&this.addTabstopMarkers(t),this.index=e,(t=this.tabstops[this.index])&&t.length){if(this.selectedTabstop=t,this.editor.inVirtualSelectionMode)this.editor.selection.setRange(t.firstNonLinked);else{var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;)t.hasLinkedRanges&&t[r].linked||n.addRange(t[r].clone(),!0);n.ranges[0]&&n.addRange(n.ranges[0].clone())}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)}},this.addTabstops=function(e,t,n){if(this.$openTabstops||(this.$openTabstops=[]),!e[0]){var r=a.fromPoints(n,n);g(r.start,t),g(r.end,t),e[0]=[r],e[0].index=0}var o=[this.index+1,0],i=this.ranges;e.forEach((function(e,n){for(var r=this.$openTabstops[n]||e,s=e.length;s--;){var c=e[s],l=a.fromPoints(c.start,c.end||c.start);f(l.start,t),f(l.end,t),l.original=c,l.tabstop=r,i.push(l),r!=e?r.unshift(l):r[s]=l,c.fmtString?(l.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=l)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(o.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)}),this),o.length>2&&(this.tabstops.length&&o.push(o.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,o))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach((function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))}))},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach((function(e){t.removeMarker(e.markerId),e.markerId=null}))},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(-1!=(t=this.tabstops.indexOf(e.tabstop))&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new c,this.keyboardHandler.bindKeys({Tab:function(e){t.snippetManager&&t.snippetManager.expandWithTab(e)||e.tabstopManager.tabNext(1)},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var d={};d.onChange=s.prototype.onChange,d.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},d.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var f=function(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row},g=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e("./lib/dom").importCssString(".ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute;}"),t.snippetManager=new u;var m=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)})),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],(function(e,t,n){"use strict";var r=e("../virtual_renderer").VirtualRenderer,o=e("../editor").Editor,i=e("../range").Range,a=e("../lib/event"),s=e("../lib/lang"),c=e("../lib/dom"),l=function(e){var t=new r(e);t.$maxLines=4;var n=new o(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusWaitTimout=0,n.$highlightTagPending=!0,n};c.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover { position: absolute; z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller { background: none; border: none; box-shadow: none;}.ace_rightAlignedText { color: gray; display: inline-block; position: absolute; right: 4px; text-align: right; z-index: -1;}.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #000; text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete { width: 280px; z-index: 200000; background: #fbfbfb; color: #444; border: 1px lightgray solid; position: fixed; box-shadow: 2px 3px 5px rgba(0,0,0,.2); line-height: 1.4;}"),t.AcePopup=function(e){var t=c.createElement("div"),n=new l(t);e&&e.appendChild(t),t.style.display="none",n.renderer.content.style.cursor="default",n.renderer.setStyle("ace_autocomplete"),n.setOption("displayIndentGuides",!1),n.setOption("dragDelay",150);var r,o=function(){};n.focus=o,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=o,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(""),n.session.$searchHighlight.clazz="ace_highlight-marker",n.on("mousedown",(function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),u.start.row=u.end.row=t.row,e.stop()}));var p=new i(-1,0,-1,1/0),u=new i(-1,0,-1,1/0);u.id=n.session.addMarker(u,"ace_active-line","fullLine"),n.setSelectOnHover=function(e){e?p.id&&(n.session.removeMarker(p.id),p.id=null):p.id=n.session.addMarker(p,"ace_line-hover","fullLine")},n.setSelectOnHover(!1),n.on("mousemove",(function(e){if(r){if(r.x!=e.x||r.y!=e.y){(r=e).scrollTop=n.renderer.scrollTop;var t=r.getDocumentPosition().row;p.start.row!=t&&(p.id||n.setRow(t),d(t))}}else r=e})),n.renderer.on("beforeRender",(function(){if(r&&-1!=p.start.row){r.$pos=null;var e=r.getDocumentPosition().row;p.id||n.setRow(e),d(e,!0)}})),n.renderer.on("afterRender",(function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];r!=t.selectedNode&&(t.selectedNode&&c.removeCssClass(t.selectedNode,"ace_selected"),t.selectedNode=r,r&&c.addCssClass(r,"ace_selected"))}));var h=function(){d(-1)},d=function(e,t){e!==p.start.row&&(p.start.row=p.end.row=e,t||n.session._emit("changeBackMarker"),n._emit("changeHoverMarker"))};n.getHoveredRow=function(){return p.start.row},a.addListener(n.container,"mouseout",h),n.on("hide",h),n.on("changeSelection",h),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return"string"==typeof t?t:t&&t.value||""};var f=n.session.bgTokenizer;return f.$tokenizeRow=function(e){var t=n.data[e],r=[];if(!t)return r;"string"==typeof t&&(t={value:t}),t.caption||(t.caption=t.value||t.name);for(var o,i,a=-1,s=0;s<t.caption.length;s++)i=t.caption[s],a!==(o=t.matchMask&1<<s?1:0)?(r.push({type:t.className||(o?"completion-highlight":""),value:i}),a=o):r[r.length-1].value+=i;if(t.meta){var c=n.renderer.$size.scrollerWidth/n.renderer.layerConfig.characterWidth,l=t.meta;l.length+t.caption.length>c-2&&(l=l.substr(0,c-t.caption.length-3)+"…"),r.push({type:"rightAlignedText",value:l})}return r},f.$updateOnChange=o,f.start=o,n.session.$computeWidth=function(){return this.screenWidth=0},n.$blockScrolling=1/0,n.isOpen=!1,n.isTopdown=!1,n.autoSelect=!0,n.data=[],n.setData=function(e){n.setValue(s.stringRepeat("\n",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return u.start.row},n.setRow=function(e){e=Math.max(this.autoSelect?0:-1,Math.min(this.data.length,e)),u.start.row!=e&&(n.selection.clearSelection(),u.start.row=u.end.row=e||0,n.session._emit("changeBackMarker"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal("select"))},n.on("changeSelection",(function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()})),n.hide=function(){this.container.style.display="none",this._signal("hide"),n.isOpen=!1},n.show=function(e,t,o){var i=this.container,a=window.innerHeight,s=window.innerWidth,c=this.renderer,l=c.$maxLines*t*1.4,p=e.top+this.$borderSize;p>a/2&&!o&&p+t+l>a?(c.$maxPixelHeight=p-2*this.$borderSize,i.style.top="",i.style.bottom=a-p+"px",n.isTopdown=!1):(p+=t,c.$maxPixelHeight=a-p-.2*t,i.style.top=p+"px",i.style.bottom="",n.isTopdown=!0),i.style.display="",this.renderer.$textLayer.checkForSizeChanges();var u=e.left;u+i.offsetWidth>s&&(u=s-i.offsetWidth),i.style.left=u+"px",this._signal("show"),r=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n}})),ace.define("ace/autocomplete/util",["require","exports","module"],(function(e,t,n){"use strict";t.parForEach=function(e,t,n){var r=0,o=e.length;0===o&&n();for(var i=0;i<o;i++)t(e[i],(function(e,t){++r===o&&n(e,t)}))};var r=/[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;for(var o=[],i=t-1;i>=0&&n.test(e[i]);i--)o.push(e[i]);return o.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;for(var o=[],i=t;i<e.length&&n.test(e[i]);i++)o.push(e[i]);return o},t.getCompletionPrefix=function(e){var t,n=e.getCursorPosition(),r=e.session.getLine(n.row);return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!t&&e&&(t=this.retrievePrecedingIdentifier(r,n.column,e))}.bind(this))}.bind(this)),t||this.retrievePrecedingIdentifier(r,n.column)}})),ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"],(function(e,t,n){"use strict";var r=e("./keyboard/hash_handler").HashHandler,o=e("./autocomplete/popup").AcePopup,i=e("./autocomplete/util"),a=(e("./lib/event"),e("./lib/lang")),s=e("./lib/dom"),c=e("./snippets").snippetManager,l=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=a.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=a.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new o(document.body||document.documentElement),this.popup.on("click",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.tooltipTimer.bind(null,null)),this.popup.on("select",this.tooltipTimer.bind(null,null)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.autoSelect=this.autoSelect,this.popup.setData(this.completions.filtered),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;if(this.popup.setRow(this.autoSelect?0:-1),n)n&&!t&&this.detach();else{this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var o=r.layerConfig.lineHeight,i=r.$cursorLayer.getPixelPosition(this.base,!0);i.left-=this.popup.getTextLeftOffset();var a=e.container.getBoundingClientRect();i.top+=a.top-r.layerConfig.offset,i.left+=a.left-e.renderer.scrollLeft,i.left+=r.gutterWidth,this.popup.show(i,o)}},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(e.relatedTarget),o=this.popup&&this.popup.container;t==n||t.parentNode==o||r||t==this.tooltipNode||e.relatedTarget==n||this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case"up":t=t<=0?n:t-1;break;case"down":t=t>=n?-1:t+1;break;case"start":t=0;break;case"end":t=n}this.popup.setRow(t)},this.insertMatch=function(e,t){if(e||(e=this.popup.getData(this.popup.getRow())),!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText)for(var n,r=this.editor.selection.getAllRanges(),o=0;n=r[o];o++)n.start.column-=this.completions.filterText.length,this.editor.session.remove(n);e.snippet?c.insertSnippet(this.editor,e.snippet):this.editor.execCommand("insertstring",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo("up")},Down:function(e){e.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(e){e.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(e){e.completer.goTo("end")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},"Shift-Return":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(t||e.tabstopManager)return t;e.completer.goTo("down")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),o=i.getCompletionPrefix(e);this.base=n.doc.createAnchor(r.row,r.column-o.length),this.base.$insertRight=!0;var a=[],s=e.completers.length;return e.completers.forEach((function(c,l){c.getCompletions(e,n,r,o,(function(n,r){!n&&r&&(a=a.concat(r)),t(null,{prefix:i.getCompletionPrefix(e),matches:a,finished:0==--s})}))})),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on("changeSelection",this.changeListener),e.on("blur",this.blurListener),e.on("mousedown",this.mousedownListener),e.on("mousewheel",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;return this.completions.setFilter(n),this.completions.filtered.length&&(1!=this.completions.filtered.length||this.completions.filtered[0].value!=n||this.completions.filtered[0].snippet)?void this.openPopup(this.editor,n,e):this.detach()}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var o=function(){if(n.finished)return this.detach()}.bind(this),i=n.prefix,a=n&&n.matches;if(!a||!a.length)return o();if(0===i.indexOf(n.prefix)&&r==this.gatherCompletionsId){this.completions=new p(a),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(i);var s=this.completions.filtered;return s.length&&(1!=s.length||s[0].value!=i||s[0].snippet)?this.autoInsert&&1==s.length&&n.finished?this.insertMatch(s[0]):void this.openPopup(this.editor,i,e):o()}}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;return n&&this.editor&&this.popup.isOpen?(this.editor.completers.some((function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r})),r||(r=n),"string"==typeof r&&(r={docText:r}),r&&(r.docHTML||r.docText)?void this.showDocTooltip(r):this.hideDocTooltip()):this.hideDocTooltip()},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=s.createElement("div"),this.tooltipNode.className="ace_tooltip ace_doc-tooltip",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,window.innerWidth-r.right<320?(t.style.right=window.innerWidth-r.left+"px",t.style.left=""):(t.style.left=r.right+1+"px",t.style.right=""),t.style.display="block"},this.hideDocTooltip=function(){if(this.tooltipTimer.cancel(),this.tooltipNode){var e=this.tooltipNode;this.editor.isFocused()||document.activeElement!=e||this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)}},this.onTooltipClick=function(e){for(var t=e.target;t&&t!=this.tooltipNode;){if("A"==t.nodeName&&t.href){t.rel="noreferrer",t.target="_blank";break}t=t.parentNode}}}).call(l.prototype),l.startCommand={name:"startAutocomplete",exec:function(e){e.completer||(e.completer=new l),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var p=function(e,t){this.all=e,this.filtered=e,this.filterText=t||"",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&0===e.lastIndexOf(this.filterText,0))var t=this.filtered;else t=this.all;this.filterText=e,t=(t=this.filterCompletions(t,this.filterText)).sort((function(e,t){return t.exactMatch-e.exactMatch||t.score-e.score}));var n=null;t=t.filter((function(e){var t=e.snippet||e.caption||e.value;return t!==n&&(n=t,!0)})),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),o=t.toLowerCase();e:for(var i,a=0;i=e[a];a++){var s=i.value||i.caption||i.snippet;if(s){var c,l,p=-1,u=0,h=0;if(this.exactMatch){if(t!==s.substr(0,t.length))continue e}else for(var d=0;d<t.length;d++){var f=s.indexOf(o[d],p+1),g=s.indexOf(r[d],p+1);if((c=f>=0&&(g<0||f<g)?f:g)<0)continue e;(l=c-p-1)>0&&(-1===p&&(h+=10),h+=l),u|=1<<c,p=c}i.matchMask=u,i.exactMatch=h?0:1,i.score=(i.score||0)-h,n.push(i)}}return n}}).call(p.prototype),t.Autocomplete=l,t.FilteredList=p})),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],(function(e,t,n){var r=e("../range").Range,o=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;t.getCompletions=function(e,t,n,i,a){var s=function(e,t){var n=function(e,t){return e.getTextRange(r.fromPoints({row:0,column:0},t)).split(o).length-1}(e,t),i=e.getValue().split(o),a=Object.create(null),s=i[n];return i.forEach((function(e,t){if(e&&e!==s){var r=Math.abs(n-t),o=i.length-r;a[e]?a[e]=Math.max(o,a[e]):a[e]=o}})),a}(t,n);a(null,Object.keys(s).map((function(e){return{caption:e,value:e,score:s[e],meta:"local"}})))}})),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],(function(e,t,n){"use strict";var r=e("../snippets").snippetManager,o=e("../autocomplete").Autocomplete,i=e("../config"),a=e("../lib/lang"),s=e("../autocomplete/util"),c=e("../autocomplete/text_completer"),l={getCompletions:function(e,t,n,r,o){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,o);var i=e.session.getState(n.row);o(null,t.$mode.getCompletions(i,t,n,r))}},p={getCompletions:function(e,t,n,o,i){var a=r.snippetMap,s=[];r.getActiveScopes(e).forEach((function(e){for(var t=a[e]||[],n=t.length;n--;){var r=t[n],o=r.name||r.tabTrigger;o&&s.push({caption:o,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+"⇥ ":"snippet",type:"snippet"})}}),this),i(null,s)},getDocTooltip:function(e){"snippet"!=e.type||e.docHTML||(e.docHTML=["<b>",a.escapeHTML(e.caption),"</b>","<hr></hr>",a.escapeHTML(e.snippet)].join(""))}},u=[p,c,l];t.setCompleters=function(e){u.length=0,e&&u.push.apply(u,e)},t.addCompleter=function(e){u.push(e)},t.textCompleter=c,t.keyWordCompleter=l,t.snippetCompleter=p;var h={name:"expandSnippet",exec:function(e){return r.expandWithTab(e)},bindKey:"Tab"},d=function(e,t){f(t.session.$mode)},f=function(e){var t=e.$id;r.files||(r.files={}),g(t),e.modes&&e.modes.forEach(f)},g=function(e){if(e&&!r.files[e]){var t=e.replace("mode","snippets");r.files[e]={},i.loadModule(t,(function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach((function(e){g("ace/mode/"+e)}))))}))}},m=function(e){var t=e.editor,n=t.completer&&t.completer.activated;"backspace"===e.command.name?n&&!s.getCompletionPrefix(t)&&t.completer.detach():"insertstring"===e.command.name&&s.getCompletionPrefix(t)&&!n&&(t.completer||(t.completer=new o),t.completer.autoInsert=!1,t.completer.showPopup(t))},b=e("../editor").Editor;e("../config").defineOptions(b.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:u),this.commands.addCommand(o.startCommand)):this.commands.removeCommand(o.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:u),this.commands.on("afterExec",m)):this.commands.removeListener("afterExec",m)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(h),this.on("changeMode",d),d(0,this)):(this.commands.removeCommand(h),this.off("changeMode",d))},value:!1}})})),ace.acequire(["ace/ext/language_tools"],(function(){}))},552:(e,t,n)=>{var r=n(873),o=n(659),i=n(350),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},556:(e,t,n)=>{e.exports=n(694)()},659:(e,t,n)=>{var r=n(873),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},694:(e,t,n)=>{"use strict";var r=n(925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},800:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},805:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},840:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},873:(e,t,n)=>{var r=n(325).Symbol;e.exports=r},925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{default:()=>S});const e=require("react");var t=n.n(e),o=n(556),i=n.n(o);const a=require("pegjs");function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,p(r.key),r)}}function l(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function p(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t,n){return t=f(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,d()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function d(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(d=function(){return!!e})()}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function g(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}function m(e,t){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},m(e,t)}require("brace"),n(351),n(228),n(464);var b=function(){function e(){var t;u(this,e);var n=(t=h(this,e)).createKeywordMapper({"keyword.operator":"is|like|contains|startwith|equal|and|or","constant.language":"true|false"},"identifier",!0);return t.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"string",regex:"`.*?`"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:n,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+"}]},t.normalizeRules(),t}return g(e,window.ace.acequire("ace/mode/text_highlight_rules").TextHighlightRules),l(e)}(),v=function(){function e(){var t;return u(this,e),(t=h(this,e)).HighlightRules=b,t}return g(e,window.ace.acequire("ace/mode/text").Mode),l(e)}(),x=n(221),w=n.n(x),y=[],_=a.generate('// Grammar: API Query Language (aql)\n// =================================\n\n{\n\tfunction parseAnd(res, term){\n const entities = Object.entries(term);\n if(entities.length ===1){\n const [exprKey, exprValue] = entities[0];\n if(res.hasOwnProperty(exprKey) && exprKey != \'$or\'){\n const originExpr = Object.assign({}, res[exprKey])\n res[exprKey] = {\'$and\': Object.assign(originExpr, exprValue)}\n }else{\n Object.assign(res, term)\n }\n }\n else{\n Object.assign(res, term)\n }\n \treturn res;\n }\n \n function parseOr(res, term){\n \treturn res.$or.push(term)\n }\n \n function parselogicExpr (res, op ,term) {\n \treturn op === \'$and\' ? parseAnd(res, term) : parseOr(res, term);\n }\n \n\tfunction ParseConjExpr(head, tail){\n \tif(!tail.length) return head;\n var result = tail.reduce(function(res, element, ix){\n \tvar op = element[1];\n var term = element[3];\n \n \tif(ix === 0) parselogicExpr(res, op, head);\n parselogicExpr(res, op, term);\n return res;\n },{$or:[]});\n \n if(!result.$or.length) delete result.$or;\n \n return result;\n }\n\n function parseBetween(left, right) {\n const [min, max] = right;\n return {\n "$gte": min,\n "$lte": max\n };\n }\n\n function parseIn(values) {\n return {\n "$in": values\n };\n }\n}\n\nSimpleQuery\t\t= head:IrlExpr tail:(_ LogicOperators _ IrlExpr)* {return ParseConjExpr(head, tail)}\nIrlExpr\t\t\t= ConjExpr / GroupExpr\nGroupExpr\t\t= LP _ exprs:ConjExpr _ RP {return exprs}\nConjExpr\t\t= head:CompExpr tail:(_ LogicOperators _ CompExpr)* {return ParseConjExpr(head, tail)}\nCompExpr \t\t= BetweenExpr / InExpr / BasicCompExpr\nBasicCompExpr = left:Identifier _ op:CompOperators _ right:Expr { return {[left]: {[op]: right}} }\nBetweenExpr = left:Identifier _ "between" _ min:Number _ "and" _ max:Number { return {[left]: parseBetween(left, [min, max])} }\nInExpr = left:Identifier _ "in" _ LP _ values:InList _ RP { return {[left]: parseIn(values)} }\nInList = head:Expr tail:(_ "," _ Expr)* { return [head].concat(tail.map(item => item[3])) }\n\nLogicOperators \t= logicOp:(AndOp / And / OrOp / Or) {return logicOp}\nAndOp \t\t\t= "&" {return "$and"}\nAnd \t\t\t= "and" {return "$and"}\n\nOrOp\t\t\t= "|" {return "$or" }\nOr\t\t\t = "or" {return "$or" }\n\nLP\t\t\t\t= "("\nRP\t\t\t\t= ")"\n \nCompOperators \t= EqualOp / GreaterThanOrEqualOp / GreaterThanOp / LessThanOrEqualOp / LessThanOp / Contains / Like / StartWith / Is / NotIs /\n Equal / GreaterThanOrEqual / GreaterThan / LessThanOrEqual / LessThan\nEqualOp\t\t\t\t = "="\t {return "$eq"}\nEqual\t\t\t\t = "equal"\t {return "$eq"}\n\nGreaterThanOp \t\t = ">"\t {return "$gt"}\nGreaterThan\t\t = "greater than"\t {return "$gt"}\n\nGreaterThanOrEqualOp \t= ">="\t {return "$gte"}\nGreaterThanOrEqual \t = "greater than or equal"\t {return "$gte"}\n\nLessThanOp \t\t\t = "<"\t {return "$lt"} \nLessThan \t\t\t = "less than"\t {return "$lt"} \n\nLessThanOrEqualOp \t = "<="\t {return "$lte"} \nLessThanOrEqual \t = "less than or equal"\t{return "$lte"} \n\nStartWith \t\t = "startwith"\t{return "$startWith"} \nContains = "contains"\t{return "$contains"} \nLike \t\t\t = "like" {return "$like"} \nIs \t\t\t = "is" {return "$is"} \nNotIs = "is not" {return "$isNot"}\n\nExpr = Boolean / Float / Integer / Identifier / String\n\nBoolean = TrueVal / FalseVal\nTrueVal = "true" { return true }\nFalseVal = "false" { return false }\n\nIdentifier \t= [a-zA-Z0-9_]+ {return text()}\n\nNumber \t= Float / Integer\nInteger = n:[0-9]+ {return parseInt(n.join(""), 10);}\nFloat\t= left:Integer "." right:Integer { return parseFloat([left.toString(), right.toString()].join("."))}\n\nString \t= "\'" str:ValidStringChar* "\'" {return str.join("")}\nValidStringChar\t= !"\'" c:. { return c;}\n\n_ "whitespace"\n = (" "\n / "\\t"\n / "\\v"\n / "\\f")*'),T=function(n){var r=n.id,o=n.className,i=n.onSearch,a=n.queryText,s=n.words,c=(0,e.useRef)(null),l=(0,e.useRef)(null),p=(0,e.useRef)(a),u=(0,e.useMemo)((function(){return r||Date.now().toString(16)}),[r]),h=(0,e.useMemo)((function(){return y.concat((s||[]).map((function(e){var t=e.word;return{caption:t,value:t,meta:e.desc}})))}),[s]),d=(0,e.useMemo)((function(){return{getCompletions:function(e,t,n,r,o){o(null,h)}}}),[h]),f=(0,e.useCallback)(w()((function(e){var t=null,n=null,r="";try{if(!(r=e.trim()))return void i(null,{},"");n=_.parse(r)}catch(e){t=e,console.error("Query parsing error:",e)}finally{i(t,n,r)}}),300),[i]);return(0,e.useEffect)((function(){return l.current=window.ace.edit(c.current),l.current.$blockScrolling=!0,window.ace.acequire("ace/ext/language_tools").addCompleter(d),l.current.setOptions({maxLines:1,autoScrollEditorIntoView:!0,enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,enableSnippets:!0,highlightActiveLine:!1,printMargin:!1,showGutter:!1,theme:"ace/theme/tomorrow",fontSize:13}),l.current.commands.addCommand({name:"submit-query",bindKey:{mac:"Enter",win:"Enter"},exec:function(e){return f(e.getSession().getValue())}}),l.current.getSession().setMode(new v),function(){l.current&&(l.current.destroy(),l.current=null)}}),[d,f]),(0,e.useEffect)((function(){if(l.current&&a!==p.current){var e=l.current.getSession().getValue();a!==e&&(l.current.getSession().setValue(a),p.current=a)}}),[a]),t().createElement("div",{className:o||"flex-fill bg-white border py-2",role:"search","aria-label":"Query input"},t().createElement("div",{ref: