platypush/platypush/backend/http/webapp/dist/static/js/3710.05c41d28.js.map

1 line
44 KiB
Plaintext

{"version":3,"file":"static/js/3710.05c41d28.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\" @click=\"onClick\">\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 <a :href=\"currentActionDocURL\">Action documentation</a>\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 computed: {\n currentActionDocURL() {\n if (!this.action?.name?.length)\n return undefined\n\n const plugin = this.action.name.split('.').slice(0, -1).join('.')\n const actionName = this.action.name.split('.').slice(-1)\n const actionClass = this.action.name\n .split('.')\n .slice(0, -1)\n .map((token) => token.slice(0, 1).toUpperCase() + token.slice(1))\n .join('') + 'Plugin'\n\n return 'https://docs.platypush.tech/platypush/plugins/' +\n `${plugin}.html#platypush.plugins.${plugin}.${actionClass}.${actionName}`\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 onClick(event) {\n // Intercept any clicks from RST rendered links and open them in a new tab\n if (event.target.tagName.toLowerCase() === 'a') {\n event.stopPropagation()\n event.preventDefault()\n window.open(event.target.getAttribute('href', '_blank'))\n }\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 .action-param-value {\n margin: 0.25em 0;\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=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":""}