platypush/platypush/backend/http/webapp/dist/static/js/3956.7c792927.js.map

1 line
42 KiB
Plaintext

{"version":3,"file":"static/js/3956.7c792927.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Execute/Index.vue","webpack://platypush/./src/components/elements/Autocomplete.js","webpack://platypush/./src/components/panels/Execute/Index.vue?99e5"],"sourcesContent":["<template>\n <div class=\"row plugin execute-container\">\n <Loading v-if=\"loading\" />\n <div class=\"section command-container\">\n <div class=\"section-title\">Execute Action</div>\n <form class=\"action-form\" ref=\"actionForm\" autocomplete=\"off\" @submit.prevent=\"executeAction\">\n <div class=\"request-type-container\">\n <input type=\"radio\" id=\"action-structured-input\"\n :checked=\"structuredInput\" @change=\"onInputTypeChange(true)\">\n <label for=\"action-structured-input\">Structured request</label>\n <input type=\"radio\" id=\"action-raw-input\"\n :checked=\"!structuredInput\" @change=\"onInputTypeChange(false)\">\n <label for=\"action-raw-input\">Raw request</label>\n </div>\n\n <div class=\"request structured-request\" :class=\"structuredInput ? '' : 'hidden'\">\n <div class=\"request-header\">\n <div class=\"autocomplete\">\n <label>\n <input ref=\"actionName\" type=\"text\" class=\"action-name\"\n placeholder=\"Action Name\" :disabled=\"running\" v-model=\"action.name\"\n @change=\"actionChanged=true\" @blur=\"updateAction\">\n </label>\n </div>\n <div class=\"buttons\">\n <button type=\"submit\" class=\"run-btn btn-primary\"\n :disabled=\"running || !action?.name?.length\" title=\"Run\">\n <i class=\"fas fa-play\" />\n </button>\n </div>\n </div>\n\n <div class=\"doc-container\" v-if=\"selectedDoc\">\n <div class=\"title\">\n Action documentation\n </div>\n\n <div class=\"doc html\">\n <Loading v-if=\"docLoading\" />\n <span v-html=\"selectedDoc\" v-else />\n </div>\n </div>\n\n <div class=\"options\" v-if=\"action.name in actions && (Object.keys(action.args).length ||\n action.supportsExtraArgs)\">\n <div class=\"params\" ref=\"params\"\n v-if=\"Object.keys(action.args).length || action.supportsExtraArgs\">\n <div class=\"param\" :key=\"name\" v-for=\"name in Object.keys(action.args)\">\n <label>\n <input type=\"text\" class=\"action-param-value\" :disabled=\"running\"\n :placeholder=\"name\" v-model=\"action.args[name].value\"\n @focus=\"selectAttrDoc(name)\"\n @blur=\"resetAttrDoc\">\n </label>\n\n <div class=\"attr-doc-container mobile\" v-if=\"selectedAttrDoc && selectedAttr === name\">\n <div class=\"title\">\n Attribute: <div class=\"attr-name\" v-text=\"selectedAttr\" />\n </div>\n\n <div class=\"doc html\">\n <Loading v-if=\"docLoading\" />\n <span v-html=\"selectedAttrDoc\" v-else />\n </div>\n </div>\n </div>\n\n <div class=\"extra-params\" ref=\"extraParams\" v-if=\"Object.keys(action.extraArgs).length\">\n <div class=\"param extra-param\" :key=\"i\" v-for=\"i in Object.keys(action.extraArgs)\">\n <label class=\"col-5\">\n <input type=\"text\" class=\"action-extra-param-name\" :disabled=\"running\"\n placeholder=\"Name\" v-model=\"action.extraArgs[i].name\">\n </label>\n <label class=\"col-6\">\n <input type=\"text\" class=\"action-extra-param-value\" :disabled=\"running\"\n placeholder=\"Value\" v-model=\"action.extraArgs[i].value\">\n </label>\n <label class=\"col-1 buttons\">\n <button type=\"button\" class=\"action-extra-param-del\" title=\"Remove parameter\"\n @click=\"removeParameter(i)\">\n <i class=\"fas fa-trash\" />\n </button>\n </label>\n </div>\n </div>\n\n <div class=\"add-param\" v-if=\"action.supportsExtraArgs\">\n <button type=\"button\" title=\"Add a parameter\" @click=\"addParameter\">\n <i class=\"fas fa-plus\" />\n </button>\n </div>\n </div>\n\n <div class=\"attr-doc-container widescreen\" v-if=\"selectedAttrDoc\">\n <div class=\"title\">\n Attribute: <div class=\"attr-name\" v-text=\"selectedAttr\" />\n </div>\n\n <div class=\"doc html\">\n <Loading v-if=\"docLoading\" />\n <span v-html=\"selectedAttrDoc\" v-else />\n </div>\n </div>\n </div>\n\n <div class=\"output-container\">\n <div class=\"header\" v-if=\"error != null || response != null\">\n <div class=\"title\" v-text=\"error != null ? 'Error' : 'Output'\" />\n <div class=\"buttons\">\n <button type=\"button\" title=\"Copy to clipboard\" @click=\"copyToClipboard\">\n <i class=\"fas fa-clipboard\" />\n </button>\n </div>\n </div>\n <div class=\"response\" v-html=\"response\" v-if=\"response != null\" />\n <div class=\"error\" v-html=\"error\" v-else-if=\"error != null\" />\n </div>\n </div>\n\n <div class=\"request raw-request\" :class=\"structuredInput ? 'hidden' : ''\">\n <div class=\"first-row\">\n <label>\n <textarea v-model=\"rawRequest\" ref=\"rawAction\" :placeholder=\"rawRequestPlaceholder\" />\n </label>\n <button type=\"submit\" :disabled=\"running\" class=\"run-btn btn-primary\" title=\"Run\">\n <i class=\"fas fa-play\" />\n </button>\n </div>\n\n <div class=\"output-container\" v-if=\"response != null || error != null\">\n <div class=\"header\" v-if=\"error != null || response != null\">\n <div class=\"title\" v-text=\"error != null ? 'Error' : 'Output'\" />\n <div class=\"buttons\">\n <button type=\"button\" title=\"Copy to clipboard\" @click=\"copyToClipboard\">\n <i class=\"fas fa-clipboard\" />\n </button>\n </div>\n </div>\n <div class=\"error\" v-html=\"error\" v-if=\"error != null\" />\n <div class=\"response\" v-html=\"response\" v-else-if=\"response != null\" />\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"section procedures-container\">\n <div class=\"section-title\">Execute Procedure</div>\n <div class=\"procedure\" :class=\"selectedProcedure.name === name ? 'selected' : ''\"\n v-for=\"name in Object.keys(procedures).sort()\" :key=\"name\" @click=\"updateProcedure(name, $event)\">\n <form ref=\"procedureForm\" autocomplete=\"off\" @submit.prevent=\"executeProcedure\">\n <div class=\"head\">\n <div class=\"name col-no-margin-11\" v-text=\"name\" />\n <div class=\"btn-container col-no-margin-1\">\n <button type=\"submit\" class=\"run-btn btn-default\" :disabled=\"running\" title=\"Run\"\n @click.stop=\"$emit('submit')\" v-if=\"selectedProcedure.name === name\">\n <i class=\"fas fa-play\" />\n </button>\n </div>\n </div>\n\n <div class=\"params\" v-if=\"selectedProcedure.name === name\">\n <div class=\"param\"\n v-for=\"argname in Object.keys(selectedProcedure.args)\"\n :key=\"argname\">\n <label>\n <input type=\"text\" class=\"action-param-value\" @click=\"$event.stopPropagation()\" :disabled=\"running\"\n :placeholder=\"argname\" v-model=\"selectedProcedure.args[argname]\">\n </label>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport autocomplete from \"@/components/elements/Autocomplete\"\nimport Utils from \"@/Utils\"\nimport Loading from \"@/components/Loading\";\n\nexport default {\n name: \"Execute\",\n components: {Loading},\n mixins: [Utils],\n\n data() {\n return {\n loading: false,\n running: false,\n docLoading: false,\n structuredInput: true,\n actionChanged: false,\n selectedDoc: undefined,\n selectedAttr: undefined,\n selectedAttrDoc: undefined,\n selectedProcedure: {\n name: undefined,\n args: {},\n },\n\n response: undefined,\n error: undefined,\n rawRequest: undefined,\n rawRequestPlaceholder: 'Raw JSON request. Example:\\n\\n' +\n '{\"type\": \"request\", \"action\": \"file.list\", \"args\": {\"path\": \"/\"}}',\n actions: {},\n plugins: {},\n procedures: {},\n actionDocsCache: {},\n action: {\n name: undefined,\n args: {},\n extraArgs: [],\n supportsExtraArgs: false,\n },\n }\n },\n\n methods: {\n async refresh() {\n this.loading = true\n\n try {\n this.procedures = await this.request('inspect.get_procedures')\n this.plugins = await this.request('inspect.get_all_plugins')\n } finally {\n this.loading = false\n }\n\n for (const plugin of Object.values(this.plugins)) {\n for (const action of Object.values(plugin.actions)) {\n action.name = plugin.name + '.' + action.name\n action.supportsExtraArgs = !!action.has_kwargs\n delete action.has_kwargs\n this.actions[action.name] = action\n }\n }\n\n const self = this\n autocomplete(this.$refs.actionName, Object.keys(this.actions).sort(), (_, value) => {\n this.action.name = value\n self.updateAction()\n })\n },\n\n async updateAction() {\n if (!(this.action.name in this.actions))\n this.selectedDoc = undefined\n\n if (!this.actionChanged || !(this.action.name in this.actions))\n return\n\n this.docLoading = true\n try {\n this.action = {\n ...this.actions[this.action.name],\n args: Object.entries(this.actions[this.action.name].args).reduce((args, entry) => {\n args[entry[0]] = {\n ...entry[1],\n value: entry[1].default,\n }\n\n return args\n }, {}),\n extraArgs: [],\n }\n } finally {\n this.docLoading = false\n }\n\n this.selectedDoc =\n this.actionDocsCache[this.action.name]?.html ||\n await this.parseDoc(this.action.doc)\n\n if (!this.actionDocsCache[this.action.name])\n this.actionDocsCache[this.action.name] = {}\n this.actionDocsCache[this.action.name].html = this.selectedDoc\n\n this.actionChanged = false\n this.response = undefined\n this.error = undefined\n },\n\n async parseDoc(docString) {\n if (!docString?.length)\n return docString\n\n return await this.request('utils.rst_to_html', {text: docString})\n },\n\n updateProcedure(name, event) {\n if (event.target.getAttribute('type') === 'submit') {\n return\n }\n\n if (this.selectedProcedure.name === name) {\n this.selectedProcedure = {\n name: undefined,\n args: {},\n }\n\n return\n }\n\n if (!(name in this.procedures)) {\n console.warn('Procedure not found: ' + name)\n return\n }\n\n this.selectedProcedure = {\n name: name,\n args: (this.procedures[name].args || []).reduce((args, arg) => {\n args[arg] = undefined\n return args\n }, {})\n }\n },\n\n addParameter() {\n this.action.extraArgs.push({\n name: undefined,\n value: undefined,\n })\n },\n\n removeParameter(i) {\n this.action.extraArgs.pop(i)\n },\n\n async selectAttrDoc(name) {\n this.selectedAttr = name\n this.selectedAttrDoc =\n this.actionDocsCache[this.action.name]?.[name]?.html ||\n await this.parseDoc(this.action.args[name].doc)\n\n if (!this.actionDocsCache[this.action.name])\n this.actionDocsCache[this.action.name] = {}\n\n this.actionDocsCache[this.action.name][name] = {html: this.selectedAttrDoc}\n },\n\n resetAttrDoc() {\n this.selectedAttr = undefined\n this.selectedAttrDoc = undefined\n },\n\n onInputTypeChange(structuredInput) {\n this.structuredInput = structuredInput\n this.response = undefined\n this.error = undefined\n this.$nextTick(() => {\n if (structuredInput) {\n this.$refs.actionName.focus()\n } else {\n this.$refs.rawAction.focus()\n }\n })\n },\n\n onResponse(response) {\n this.response = '<pre>' + JSON.stringify(response, null, 2) + '</pre>'\n this.error = undefined\n },\n\n onError(error) {\n this.response = undefined\n this.error = error\n },\n\n onDone() {\n this.running = false\n },\n\n async copyToClipboard() {\n const output = (\n this.error != null ? this.error : this.response\n ).replace(/^\\s*<pre>/g, '').replace(/<\\/pre>\\s*/g, '')\n\n await navigator.clipboard.writeText(output)\n },\n\n executeAction() {\n if (!this.action.name && !this.rawRequest || this.running)\n return\n\n this.running = true\n if (this.structuredInput) {\n const args = {\n ...Object.entries(this.action.args).reduce((args, param) => {\n if (param[1].value != null) {\n let value = param[1].value\n try {\n value = JSON.parse(value)\n } catch (e) {\n console.debug('Not a valid JSON value')\n console.debug(value)\n }\n\n args[param[0]] = value\n }\n return args\n }, {}),\n\n ...this.action.extraArgs.reduce((args, param) => {\n let value = args[param.value]\n try {\n value = JSON.parse(value)\n } catch (e) {\n console.debug('Not a valid JSON value')\n console.debug(value)\n }\n\n args[param.name] = value\n return args\n }, {})\n }\n\n this.request(this.action.name, args).then(this.onResponse).catch(this.onError).finally(this.onDone)\n } else {\n try {\n const request = JSON.parse(this.rawRequest)\n this.execute(request).then(this.onResponse).catch(this.onError).finally(this.onDone)\n } catch (e) {\n this.notify({\n error: true,\n title: 'Invalid JSON request',\n text: e.toString(),\n })\n }\n }\n },\n\n executeProcedure(event) {\n if (!this.selectedProcedure.name || this.running)\n return\n\n event.stopPropagation()\n this.running = true\n const args = {\n ...Object.entries(this.selectedProcedure.args).reduce((args, param) => {\n if (param[1] != null) {\n let value = param[1]\n try {\n value = JSON.parse(value)\n } catch (e) {\n console.debug('Not a valid JSON value')\n console.debug(value)\n }\n\n args[param[0]] = value\n }\n return args\n }, {}),\n }\n\n this.request('procedure.' + this.selectedProcedure.name, args)\n .then(this.onResponse).catch(this.onError).finally(this.onDone)\n },\n },\n\n mounted() {\n this.$nextTick(() => {\n this.$refs.actionName.focus()\n })\n\n this.refresh()\n },\n}\n</script>\n\n<style lang=\"scss\">\n@import \"vars\";\n@import \"~@/style/autocomplete.scss\";\n\n$params-desktop-width: 30em;\n$params-tablet-width: 20em;\n$request-headers-btn-width: 7.5em;\n\n@mixin header {\n background: $default-bg-5;\n display: flex;\n align-items: center;\n padding: 0.5em;\n border: $title-border;\n border-radius: 1em;\n box-shadow: $title-shadow;\n font-weight: normal;\n font-size: 1em;\n}\n\n.execute-container {\n width: 100%;\n height: 100%;\n color: $default-fg-2;\n font-weight: 400;\n border-bottom: $default-border-2;\n border-radius: 0 0 1em 1em;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .section {\n width: 100%;\n max-width: 1000px;\n display: flex;\n flex-direction: column;\n box-shadow: $section-shadow;\n\n @include from($desktop) {\n margin: 1em;\n border-radius: 1em 1em 0 0;\n }\n }\n\n form {\n padding: 0;\n margin: 0;\n border-radius: 0;\n border: none;\n }\n\n .action-form {\n background: $default-bg-2;\n padding: 1em .5em;\n }\n\n .request-header {\n width: 100%;\n display: flex;\n align-items: center;\n\n .autocomplete {\n width: calc(100% - $request-headers-btn-width);\n flex-grow: 1;\n }\n\n .buttons {\n width: $request-headers-btn-width;\n display: inline-flex;\n justify-content: flex-end;\n margin-right: 0.5em;\n }\n }\n\n .section-title {\n background: $header-bg;\n padding: .75em .5em;\n box-shadow: $title-shadow;\n font-size: 1.1em;\n margin-bottom: 0 !important;\n\n @include from($desktop) {\n border-radius: 0.5em 0.5em 0 0;\n }\n }\n\n .request-type-container {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n\n label {\n margin: 0 1em 0 .5em;\n }\n }\n\n .request {\n display: flex;\n flex-direction: column;\n margin: 0 .5em;\n\n form {\n margin-bottom: 0 !important;\n }\n\n .action-name {\n box-shadow: $action-name-shadow;\n width: 100%;\n }\n\n .options {\n display: flex;\n margin-top: .5em;\n margin-bottom: 1.5em;\n padding-top: .5em;\n\n @include until($tablet) {\n flex-direction: column;\n }\n }\n\n .params {\n @include until($tablet) {\n width: 100%;\n }\n\n @include from($tablet) {\n width: $params-tablet-width;\n margin-right: 1.5em;\n }\n\n @include from($desktop) {\n width: $params-desktop-width;\n }\n\n .param {\n margin-bottom: .25em;\n @include until($tablet) {\n width: 100%;\n }\n }\n\n .action-param-value {\n width: 100%;\n }\n }\n\n .add-param {\n width: 100%;\n\n button {\n width: 100%;\n background: $extra-params-btn-bg;\n border: $title-border;\n }\n }\n\n .extra-param {\n display: flex;\n margin-bottom: .5em;\n\n label {\n margin-left: 0.25em;\n }\n\n .buttons {\n display: flex;\n flex-grow: 1;\n justify-content: right;\n }\n\n .action-extra-param-del {\n border: 0;\n text-align: right;\n padding: 0 .5em;\n }\n\n input[type=text] {\n width: 100%;\n }\n\n .buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: .25em;\n\n button {\n background: none;\n\n &:hover {\n color: $default-hover-fg;\n }\n }\n }\n }\n\n .doc-container,\n .output-container {\n margin-top: .5em;\n }\n\n .doc-container,\n .attr-doc-container {\n .title {\n @include header;\n }\n }\n\n .attr-doc-container {\n .title {\n .attr-name {\n font-weight: bold;\n margin-left: 0.25em;\n }\n }\n }\n\n .output-container {\n flex-grow: 1;\n }\n\n .attr-doc-container {\n @include from($tablet) {\n width: calc(100% - #{$params-tablet-width} - 2em);\n }\n\n @include from($desktop) {\n width: calc(100% - #{$params-desktop-width} - 2em);\n }\n\n .doc {\n width: 100%;\n overflow: auto;\n }\n\n &.widescreen {\n @include until($tablet) {\n display: none;\n }\n }\n\n &.mobile {\n width: 100%;\n @include from($tablet) {\n display: none;\n }\n }\n }\n\n .doc-container,\n .attr-doc-container {\n .doc {\n padding: 1em !important;\n }\n }\n\n .output-container, .doc-container, .attr-doc-container {\n max-height: 50vh;\n display: flex;\n flex-direction: column;\n\n .header {\n @include header;\n\n .title {\n flex-grow: 1;\n }\n\n button {\n background: none;\n border: none;\n box-shadow: none;\n\n &:hover {\n color: $default-hover-fg;\n }\n }\n\n .attr-name {\n display: inline-block;\n font-weight: bold;\n }\n }\n\n .response,\n .error,\n .doc {\n height: 100%;\n padding: .5em .5em 0 .5em;\n border-radius: 1em;\n overflow: auto;\n margin-top: 0.1em;\n }\n\n .response {\n background: $response-bg;\n box-shadow: $response-shadow;\n }\n\n .error {\n background: $error-bg;\n padding: 1em;\n box-shadow: $error-shadow;\n }\n\n .doc {\n background: $doc-bg;\n box-shadow: $doc-shadow;\n }\n }\n\n textarea {\n width: 100%;\n height: 10em;\n margin-bottom: .5em;\n padding: .5em;\n border: $default-border-2;\n border-radius: 1em;\n box-shadow: $border-shadow-bottom-right;\n outline: none;\n\n &:hover {\n border: 1px solid $default-hover-fg-2;\n }\n\n &:focus {\n border: 1px solid $selected-fg;\n }\n }\n }\n\n .raw-request {\n .first-row {\n @include until($tablet) {\n width: 100%;\n }\n\n @include from($tablet) {\n width: 80%;\n max-width: 60em;\n }\n\n display: flex;\n flex-direction: column;\n\n button {\n margin-left: 0;\n }\n }\n }\n\n .procedures-container {\n .procedure {\n background: $background-color;\n border-bottom: $default-border-2;\n padding: 1.5em .5em;\n cursor: pointer;\n\n &:hover {\n background: $hover-bg;\n }\n\n &.selected {\n background: $selected-bg;\n }\n\n form {\n background: none;\n display: flex;\n margin-bottom: 0 !important;\n flex-direction: column;\n box-shadow: none;\n }\n\n .head {\n display: flex;\n align-items: center;\n }\n\n .btn-container {\n text-align: right;\n }\n\n button {\n background: $procedure-submit-btn-bg;\n }\n }\n }\n\n pre {\n background: none;\n }\n\n .run-btn {\n background: $background-color;\n border-radius: .25em;\n padding: .5em 1.5em;\n box-shadow: $primary-btn-shadow;\n cursor: pointer;\n\n &:hover {\n background: $hover-bg;\n box-shadow: none;\n }\n\n &:disabled {\n opacity: 0.7;\n color: $default-fg-2; \n cursor: initial;\n box-shadow: none;\n\n &:hover {\n background: $background-color;\n box-shadow: none;\n }\n }\n }\n}\n</style>\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 = \"<strong>\" + arr[i].substr(0, val.length) + \"</strong>\";\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 += \"<input type='hidden' value='\" + arr[i] + \"'>\";\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=448d1682\"\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=448d1682&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","loading","autocomplete","executeAction","type","id","checked","structuredInput","onInputTypeChange","placeholder","disabled","running","action","name","actionChanged","updateAction","length","title","selectedDoc","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","methods","async","request","plugin","values","has_kwargs","self","$refs","actionName","_","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","mounted","refresh","__exports__","render"],"sourceRoot":""}