\n\n\n\n\n\n","function autocomplete(inp, arr, listener) {\n /*the autocomplete function takes two arguments,\n the text field element and an array of possible autocompleted values:*/\n let currentFocus;\n\n /*execute a function when someone writes in the text field:*/\n inp.addEventListener(\"input\", function() {\n let a, b, i, val = this.value;\n /*close any already open lists of autocompleted values*/\n closeAllLists();\n if (!val) {\n return false;\n }\n\n currentFocus = -1;\n\n /*create a DIV element that will contain the items (values):*/\n a = document.createElement(\"DIV\");\n a.setAttribute(\"id\", this.id + \"autocomplete-list\");\n a.setAttribute(\"class\", \"autocomplete-items\");\n\n /*append the DIV element as a child of the autocomplete container:*/\n this.parentNode.appendChild(a);\n\n /*for each item in the array...*/\n for (i = 0; i < arr.length; i++) {\n /*check if the item starts with the same letters as the text field value:*/\n if (arr[i].substr(0, val.length).toUpperCase() === val.toUpperCase()) {\n /*create a DIV element for each matching element:*/\n b = document.createElement(\"DIV\");\n /*make the matching letters bold:*/\n b.innerHTML = \"\" + arr[i].substr(0, val.length) + \"\";\n b.innerHTML += arr[i].substr(val.length);\n /*insert a input field that will hold the current array item's value:*/\n b.innerHTML += \"\";\n /*execute a function when someone clicks on the item value (DIV element):*/\n b.addEventListener(\"click\", function(e) {\n /*insert the value for the autocomplete text field:*/\n inp.value = this.getElementsByTagName(\"input\")[0].value;\n /*trigger event listener if any:*/\n if (listener) {\n listener(e, inp.value);\n }\n /*close the list of autocompleted values,\n (or any other open lists of autocompleted values:*/\n closeAllLists();\n });\n a.appendChild(b);\n }\n }\n });\n\n inp.addEventListener(\"keyup\", function(e) {\n if ([\"ArrowUp\", \"ArrowDown\", \"Tab\", \"Enter\"].indexOf(e.key) >= 0) {\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\") {\n this.blur();\n }\n });\n\n /*execute a function presses a key on the keyboard:*/\n inp.addEventListener(\"keydown\", function(e) {\n let x = document.getElementById(this.id + \"autocomplete-list\");\n if (x) x = x.getElementsByTagName(\"div\");\n if (e.key === 'ArrowDown' || (e.key === 'Tab' && !e.shiftKey)) {\n /*If the arrow DOWN key is pressed,\n increase the currentFocus variable:*/\n currentFocus++;\n /*and and make the current item more visible:*/\n addActive(x);\n e.preventDefault();\n } else if (e.key === 'ArrowUp' || (e.key === 'Tab' && e.shiftKey)) { //up\n /*If the arrow UP key is pressed,\n decrease the currentFocus variable:*/\n currentFocus--;\n /*and and make the current item more visible:*/\n addActive(x);\n e.preventDefault();\n } else if (e.key === 'Enter') {\n /*If the ENTER key is pressed, prevent the form from being submitted,*/\n if (currentFocus > -1 && x && x.length) {\n e.preventDefault();\n /*and simulate a click on the \"active\" item:*/\n x[currentFocus].click();\n /*and restore the focus on the input element:*/\n this.focus();\n }\n }\n });\n\n function addActive(x) {\n /*a function to classify an item as \"active\":*/\n if (!x) return false;\n /*start by removing the \"active\" class on all items:*/\n removeActive(x);\n if (currentFocus >= x.length) currentFocus = 0;\n if (currentFocus < 0) currentFocus = (x.length - 1);\n /*add class \"autocomplete-active\":*/\n x[currentFocus].classList.add(\"autocomplete-active\");\n }\n\n function removeActive(x) {\n /*a function to remove the \"active\" class from all autocomplete items:*/\n for (let i = 0; i < x.length; i++) {\n x[i].classList.remove(\"autocomplete-active\");\n }\n }\n\n function closeAllLists(elmnt) {\n /*close all autocomplete lists in the document,\n except the one passed as an argument:*/\n const x = document.getElementsByClassName(\"autocomplete-items\");\n for (let i = 0; i < x.length; i++) {\n if (elmnt !== x[i] && elmnt !== inp) {\n x[i].parentNode.removeChild(x[i]);\n }\n }\n }\n\n /*execute a function when someone clicks in the document:*/\n document.addEventListener(\"click\", function (e) {\n closeAllLists(e.target);\n });\n}\n\nexport default autocomplete;\n","import { render } from \"./Index.vue?vue&type=template&id=6b8bef9c\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=6b8bef9c&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","for","ref","onClick","loading","autocomplete","executeAction","type","id","checked","structuredInput","onInputTypeChange","placeholder","disabled","running","action","name","actionChanged","updateAction","length","title","selectedDoc","href","currentActionDocURL","docLoading","actions","Object","keys","args","supportsExtraArgs","key","value","selectAttrDoc","resetAttrDoc","selectedAttrDoc","selectedAttr","extraArgs","i","removeParameter","addParameter","error","response","copyToClipboard","rawRequest","rawRequestPlaceholder","procedures","sort","selectedProcedure","updateProcedure","$event","executeProcedure","$emit","argname","stopPropagation","inp","arr","listener","currentFocus","addActive","x","removeActive","classList","add","remove","closeAllLists","elmnt","document","getElementsByClassName","parentNode","removeChild","addEventListener","a","b","val","this","createElement","setAttribute","appendChild","substr","toUpperCase","innerHTML","e","getElementsByTagName","indexOf","blur","getElementById","shiftKey","preventDefault","click","focus","target","components","Loading","mixins","Utils","data","undefined","plugins","actionDocsCache","computed","plugin","split","slice","join","actionName","actionClass","map","token","methods","async","request","values","has_kwargs","self","$refs","_","entries","reduce","entry","default","html","parseDoc","doc","docString","text","event","getAttribute","arg","console","warn","push","pop","$nextTick","rawAction","onResponse","JSON","stringify","onError","onDone","output","replace","navigator","clipboard","writeText","param","parse","debug","then","catch","finally","execute","notify","toString","tagName","toLowerCase","window","open","mounted","refresh","__exports__","render"],"sourceRoot":""}