platypush/platypush/backend/http/webapp/dist/static/js/1807.4ba7d261.js.map

1 line
60 KiB
Plaintext

{"version":3,"file":"static/js/1807.4ba7d261.js","mappings":"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","sources":["webpack://platypush/./src/components/Action/ActionEditor.vue","webpack://platypush/./src/components/Action/ActionArgs.vue","webpack://platypush/./src/components/Action/Argdoc.vue","webpack://platypush/./src/components/Action/Argdoc.vue?4aa9","webpack://platypush/./src/components/Action/ActionArgs.vue?edb8","webpack://platypush/./src/components/Action/ActionDoc.vue","webpack://platypush/./src/components/Action/ActionDoc.vue?d15e","webpack://platypush/./src/components/elements/Autocomplete.vue","webpack://platypush/./src/components/elements/Autocomplete.vue?5778","webpack://platypush/./src/components/Action/ActionEditor.vue?362f","webpack://platypush/./src/components/Action/Response.vue","webpack://platypush/./src/components/Action/Response.vue?7e38"],"sourcesContent":["<template>\n <div class=\"action-editor-container\" :class=\"{'with-save': withSave}\" @click=\"onClick\">\n <Loading v-if=\"loading\" />\n\n <!-- Action executor container -->\n <div class=\"action-editor\">\n <!-- cURL snippet modal -->\n <div class=\"curl-modal-container\">\n <Modal ref=\"curlModal\" title=\"curl request\" v-if=\"curlSnippet?.length\">\n <div class=\"output curl-snippet\" @click=\"copyToClipboard(curlSnippet)\" >\n <pre><code v-html=\"highlightedCurlSnippet\" /></pre>\n </div>\n </Modal>\n </div>\n\n <!-- Execute panel views -->\n <div class=\"header-container\">\n <div class=\"tabs-container\">\n <Tabs>\n <Tab :selected=\"structuredInput\" icon-class=\"fas fa-list\" @input=\"onInputTypeChange(true)\">\n Structured\n </Tab>\n\n <Tab :selected=\"!structuredInput\" icon-class=\"fas fa-code\" @input=\"onInputTypeChange(false)\">\n Raw\n </Tab>\n </Tabs>\n </div>\n\n <div class=\"buttons\" v-if=\"withSave\">\n <button type=\"submit\" class=\"save-btn btn-primary\"\n :disabled=\"running || !isValidAction\" title=\"Save\"\n @click.stop=\"onSubmit\">\n <i class=\"fas fa-save\" />\n </button>\n </div>\n </div>\n\n <form ref=\"actionForm\" autocomplete=\"off\" @submit.prevent=\"onSubmit\">\n <!-- Structured request container -->\n <div class=\"request structured\" v-if=\"structuredInput\">\n <!-- Request header -->\n <header>\n <!-- Action autocomplete container -->\n <div class=\"autocomplete-container\">\n <Autocomplete\n ref=\"autocomplete\"\n :items=\"autocompleteItems\"\n @input=\"updateAction\"\n placeholder=\"Action\"\n show-results-when-blank\n autofocus\n :disabled=\"running\"\n :value=\"action.name\" />\n\n <button :type=\"withSave ? 'button' : 'submit'\" class=\"run-btn btn-primary\"\n :disabled=\"running || !isValidAction\" title=\"Run\" @click.stop=\"executeAction\">\n <i class=\"fas fa-play\" />\n </button>\n </div>\n </header>\n\n <!-- Action documentation container -->\n <ActionDoc\n :action=\"action\"\n :curl-snippet=\"curlSnippet\"\n :loading=\"docLoading\"\n :doc=\"selectedDoc\"\n @curl-modal=\"$refs.curlModal.show()\" />\n\n <!-- Action arguments container -->\n <section class=\"args\"\n v-if=\"action.name in actions && (Object.keys(action.args).length || action.supportsExtraArgs)\">\n <h2>\n <i class=\"fas fa-code\" /> &nbsp;\n Arguments\n </h2>\n\n <ActionArgs :action=\"action\"\n :loading=\"loading\"\n :running=\"running\"\n :selected-arg=\"selectedArg\"\n :selected-argdoc=\"selectedArgdoc\"\n @add=\"addArg\"\n @select=\"selectArgdoc\"\n @remove=\"removeArg\"\n @arg-edit=\"action.args[$event.name].value = $event.value\"\n @extra-arg-name-edit=\"action.extraArgs[$event.index].name = $event.value\"\n @extra-arg-value-edit=\"action.extraArgs[$event.index].value = $event.value\" />\n </section>\n\n <!-- Structured response container -->\n <Response :response=\"response\" :error=\"error\" />\n </div>\n\n <!-- Raw request container -->\n <div class=\"request raw-request\" v-if=\"!structuredInput\">\n <div class=\"first-row\">\n <label>\n <textarea v-model=\"rawRequest\" ref=\"rawAction\" :placeholder=\"rawRequestPlaceholder\" />\n </label>\n <button :type=\"withSave ? 'button' : 'submit'\" :disabled=\"running\"\n class=\"raw-run-btn btn-primary\" title=\"Run\" @click.stop=\"executeAction\">\n <i class=\"fas fa-play\" />\n </button>\n </div>\n\n <!-- Raw response container -->\n <Response :response=\"response\" :error=\"error\" />\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script>\nimport 'highlight.js/lib/common'\nimport 'highlight.js/styles/stackoverflow-dark.min.css'\nimport hljs from \"highlight.js\"\nimport ActionArgs from \"./ActionArgs\"\nimport ActionDoc from \"./ActionDoc\"\nimport Autocomplete from \"@/components/elements/Autocomplete\"\nimport Loading from \"@/components/Loading\"\nimport Modal from \"@/components/Modal\"\nimport Response from \"./Response\"\nimport Tab from \"@/components/elements/Tab\"\nimport Tabs from \"@/components/elements/Tabs\"\nimport Utils from \"@/Utils\"\n\nexport default {\n mixins: [Utils],\n emits: ['input'],\n components: {\n ActionArgs,\n ActionDoc,\n Autocomplete,\n Loading,\n Modal,\n Response,\n Tab,\n Tabs,\n },\n\n props: {\n value: {\n type: Object,\n },\n\n withSave: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n loading: false,\n running: false,\n docLoading: false,\n structuredInput: true,\n selectedDoc: undefined,\n selectedArg: undefined,\n selectedArgdoc: undefined,\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 return this.action?.doc_url\n },\n\n isValidAction() {\n return (\n this.action?.name?.length &&\n this.action.name in this.actions &&\n Object.values(this.action.args).every((arg) => !arg.required || arg.value?.length)\n )\n },\n\n autocompleteItems() {\n if (this.getPluginName(this.action.name) in this.plugins) {\n return Object.keys(this.actions).sort()\n }\n\n return Object.keys(this.plugins).sort().map((pluginName) => `${pluginName}.`)\n },\n\n actionInput() {\n return this.$refs.autocomplete.$el.parentElement.querySelector('input[type=text]')\n },\n\n requestArgs() {\n if (!this.action.name)\n return {}\n\n return {\n ...Object.entries(this.action.args).reduce((args, arg) => {\n if (arg[1].value != null) {\n let value = arg[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[arg[0]] = value\n }\n return args\n }, {}),\n\n ...(this.action.extraArgs || []).reduce((args, arg) => {\n let value = arg.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[arg.name] = value\n return args\n }, {})\n }\n },\n\n curlURL() {\n return `${window.location.protocol}//${window.location.host}/execute`\n },\n\n curlSnippet() {\n if (!this.action.name)\n return ''\n\n const request = {\n type: 'request',\n action: this.action.name,\n args: this.requestArgs,\n }\n\n const reqStr = JSON.stringify(request, null, 2)\n\n return (\n 'curl -XPOST -H \"Content-Type: application/json\" \\\\\\n ' +\n `-H \"Cookie: session_token=${this.getCookies()['session_token']}\"`+\n \" \\\\\\n -d '\\n {\\n \" +\n this.indent(\n reqStr.split('\\n').slice(1, reqStr.length - 2).join('\\n'), 2\n ).trim() +\n \"' \\\\\\n \" +\n `'${this.curlURL}'`\n )\n },\n\n highlightedCurlSnippet() {\n return hljs.highlight(\n '# Note: Replace the cookie with a JWT token for production cases\\n' +\n this.curlSnippet,\n {language: 'bash'}\n ).value\n },\n },\n\n methods: {\n async refresh() {\n this.loading = true\n\n try {\n [this.procedures, this.plugins] = await Promise.all([\n this.request('inspect.get_procedures'),\n this.request('inspect.get_all_plugins'),\n ])\n } finally {\n this.loading = false\n }\n\n // Register procedures as actions\n this.plugins.procedure = {\n name: 'procedure',\n actions: Object.entries(this.procedures || {}).reduce((actions, [name, procedure]) => {\n actions[name] = {\n name: name,\n args: (procedure.args || []).reduce((args, arg) => {\n args[arg] = {\n name: arg,\n required: false,\n }\n\n return args\n }, {}),\n supportsExtraArgs: true,\n }\n\n return actions\n }, {}),\n }\n\n // Parse actions from the plugins map\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 // If an action has been passed on the URL, set it\n const args = this.getUrlArgs()\n const actionName = args?.action\n if (actionName?.length && actionName in this.actions && actionName !== this.action.name) {\n this.updateAction(actionName)\n }\n },\n\n async updateAction(actionName, params) {\n let {force, args, extraArgs} = params || {}\n if (!args)\n args = {}\n if (!extraArgs)\n extraArgs = []\n\n if (actionName === this.action.name && !force)\n return\n\n this.action.name = actionName\n if (!(this.action.name in this.actions)) {\n this.selectedDoc = undefined\n this.resetArgdoc()\n return\n }\n\n this.resetArgdoc()\n this.docLoading = true\n\n try {\n this.action = {\n ...this.actions[this.action.name],\n args: Object.entries(this.actions[this.action.name].args).reduce((a, entry) => {\n a[entry[0]] = {\n ...entry[1],\n value: args?.[entry[0]] ?? entry[1].default,\n }\n\n return a\n }, {}),\n extraArgs: 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\n this.actionDocsCache[this.action.name].html = this.selectedDoc\n this.setUrlArgs({action: this.action.name})\n\n const firstArg = this.$el.querySelector('.action-arg-value')\n if (firstArg) {\n firstArg.focus()\n } else {\n this.$nextTick(() => {\n this.actionInput.focus()\n })\n }\n\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 addArg() {\n this.action.extraArgs.push({\n name: undefined,\n value: undefined,\n })\n },\n\n removeArg(i) {\n this.action.extraArgs.pop(i)\n },\n\n async selectArgdoc(name) {\n this.selectedArg = name\n this.selectedArgdoc =\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.selectedArgdoc}\n },\n\n resetArgdoc() {\n this.selectedArg = undefined\n this.selectedArgdoc = 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.actionInput.focus()\n } else {\n this.$refs.rawAction.focus()\n if (this.isValidAction) {\n this.rawRequest = JSON.stringify(this.toRequest(this.action), null, 2)\n }\n }\n })\n },\n\n onResponse(response) {\n this.response = (\n typeof response === 'string' ? response : JSON.stringify(response, null, 2)\n ).trim()\n\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 getPluginName(actionName) {\n if (!actionName?.length)\n return ''\n\n return actionName.split('.').slice(0, -1).join('.')\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 this.request(this.action.name, this.requestArgs).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 toRequest(action) {\n return {\n type: 'request',\n action: action.name,\n args: this.requestArgs,\n }\n },\n\n emitInput(value) {\n value = value || this.value\n if (!value)\n return\n\n this.$emit(\"input\", this.toRequest(value))\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 onValueChanged(value) {\n value = value || this.value\n if (!value)\n return\n\n const action = value.name || value.action\n this.$nextTick(() => {\n this.updateAction(action, {\n force: true,\n args: value.args || {},\n extraArgs: value.extraArgs || [],\n })\n })\n },\n\n onSubmit() {\n if (!this.isValidAction)\n return\n\n if (this.withSave) {\n this.emitInput(this.action)\n } else {\n this.executeAction()\n }\n },\n },\n\n watch: {\n value: {\n immediate: true,\n handler(value) {\n this.onValueChanged(value)\n },\n },\n },\n\n async mounted() {\n await this.refresh()\n await this.onValueChanged()\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n\n$btn-width: 3.5em;\n\n.action-editor-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .action-editor {\n width: 100%;\n max-width: 1000px;\n display: flex;\n flex-direction: column;\n box-shadow: $section-shadow;\n }\n\n .request {\n display: flex;\n flex-direction: column;\n margin: 0 .5em;\n }\n\n .run-btn {\n width: $btn-width;\n height: 2.5em;\n background: $background-color;\n border-color: $border-color-3;\n border-left: none;\n border-radius: 0 1em 1em 0;\n padding: .5em 1em;\n box-shadow: none;\n cursor: pointer;\n\n &:hover {\n background: $hover-bg;\n border-color: $active-glow-bg-2;\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 .raw-run-btn {\n padding: .5em 1.5em;\n border-radius: 1em;\n }\n\n .curl-modal-container {\n :deep(.modal) {\n .content {\n width: 100%;\n }\n\n .content .body {\n height: auto;\n }\n\n .output {\n border-radius: 0;\n }\n }\n }\n\n .autocomplete-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n :deep(.autocomplete) {\n width: calc(100% - $btn-width);\n\n input[type=text] {\n height: 2.5em;\n border-radius: 1em 0 0 1em;\n box-shadow: none;\n }\n }\n }\n\n .raw-request {\n height: 100%;\n overflow: auto;\n\n textarea {\n width: 100%;\n min-height: 15em;\n border: $default-border-2;\n box-shadow: $border-shadow-bottom;\n padding: 1em;\n font-family: monospace;\n font-size: 0.9em;\n }\n }\n\n &.with-save {\n .header-container {\n width: 100%;\n height: $tab-height;\n display: flex;\n flex-direction: row;\n background: $tabs-bg;\n border-bottom: 1px solid $border-color-3;\n box-shadow: $border-shadow-bottom;\n\n .buttons {\n width: $btn-width;\n height: calc($tab-height - 1px);\n background: $tab-bg;\n\n button {\n width: $btn-width;\n height: $tab-height;\n\n &:disabled {\n opacity: 0.7;\n background: $default-bg-6;\n cursor: initial;\n box-shadow: none;\n\n &:hover {\n background: $tab-bg;\n box-shadow: none;\n }\n }\n }\n }\n\n .tabs-container {\n width: calc(100% - $btn-width);\n\n :deep(.tabs) {\n width: 100%;\n height: calc($tab-height - 1px);\n box-shadow: none;\n\n @include until($tablet) {\n .tab {\n width: 50%;\n flex-grow: 0;\n }\n }\n }\n }\n }\n }\n}\n</style>\n","<template>\n <div class=\"args-body\">\n <div class=\"args-list\"\n v-if=\"Object.keys(action.args).length || action.supportsExtraArgs\">\n <!-- Supported action arguments -->\n <div class=\"arg\" :key=\"name\" v-for=\"name in Object.keys(action.args)\">\n <label>\n <input type=\"text\"\n class=\"action-arg-value\"\n :class=\"{required: action.args[name].required}\"\n :disabled=\"running\"\n :placeholder=\"name\"\n :value=\"action.args[name].value\"\n @input=\"onArgEdit(name, $event)\"\n @focus=\"onSelect(name)\">\n <span class=\"required-flag\" v-if=\"action.args[name].required\">*</span>\n </label>\n\n <Argdoc :name=\"selectedArg\"\n :args=\"action.args[selectedArg]\"\n :doc=\"selectedArgdoc\"\n :loading=\"loading\"\n is-mobile\n v-if=\"selectedArgdoc && selectedArg && name === selectedArg\" />\n </div>\n\n <!-- Extra action arguments -->\n <div class=\"extra-args\" v-if=\"Object.keys(action.extraArgs).length\">\n <div class=\"arg extra-arg\" :key=\"i\" v-for=\"(arg, i) in action.extraArgs\">\n <label class=\"col-5\">\n <input type=\"text\"\n class=\"action-extra-arg-name\"\n placeholder=\"Name\"\n :disabled=\"running\"\n :value=\"arg.name\"\n @input=\"onExtraArgNameEdit(i, $event.target.value)\">\n </label>\n <label class=\"col-6\">\n <input type=\"text\"\n class=\"action-extra-arg-value\"\n placeholder=\"Value\"\n :disabled=\"running\"\n :value=\"arg.value\"\n @input=\"onExtraArgValueEdit(i, $event.target.value)\">\n </label>\n <label class=\"col-1 buttons\">\n <button type=\"button\" class=\"action-extra-arg-del\" title=\"Remove argument\" @click=\"$emit('remove', i)\">\n <i class=\"fas fa-trash\" />\n </button>\n </label>\n </div>\n </div>\n\n <div class=\"add-arg\" v-if=\"action.supportsExtraArgs\">\n <button type=\"button\" title=\"Add an argument\" @click=\"onArgAdd\">\n <i class=\"fas fa-plus\" />\n </button>\n </div>\n </div>\n\n <Argdoc :name=\"selectedArg\"\n :args=\"action.args[selectedArg]\"\n :doc=\"selectedArgdoc\"\n :loading=\"loading\"\n v-if=\"selectedArgdoc && selectedArg\" />\n </div>\n</template>\n\n<script>\nimport Argdoc from \"./Argdoc\"\n\nexport default {\n name: 'ActionArgs',\n components: { Argdoc },\n emits: [\n 'add',\n 'arg-edit',\n 'extra-arg-name-edit',\n 'extra-arg-value-edit',\n 'remove',\n 'select',\n ],\n props: {\n action: Object,\n loading: Boolean,\n running: Boolean,\n selectedArg: String,\n selectedArgdoc: String,\n },\n\n methods: {\n onArgAdd() {\n this.$emit('add')\n this.$nextTick(() => {\n const args = this.$el.querySelectorAll('.action-extra-arg-name')\n if (!args.length)\n return\n\n args[args.length - 1].focus()\n })\n },\n\n onArgEdit(name, event) {\n this.$emit('arg-edit', {\n name: name,\n value: event.target.value,\n })\n },\n\n onExtraArgNameEdit(i, value) {\n this.$emit('extra-arg-name-edit', {\n index: i,\n value: value,\n })\n },\n\n onExtraArgValueEdit(i, value) {\n this.$emit('extra-arg-value-edit', {\n index: i,\n value: value,\n })\n },\n\n onSelect(arg) {\n this.$emit('select', arg)\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n</style>\n","<template>\n <article class=\"argdoc-container\" :class=\"{mobile: isMobile, widescreen: !isMobile}\">\n <h2>\n Argument: <div class=\"argname\" v-text=\"name\" />\n <span class=\"flag required\" v-if=\"args.required\">[Required]</span>\n <span class=\"flag optional\" v-else>[Optional]</span>\n </h2>\n\n <div class=\"doc html\">\n <Loading v-if=\"loading\" />\n <span v-else>\n <span v-html=\"doc\" v-if=\"doc?.length\" />\n <div class=\"type\" v-if=\"args.type\">\n <b>Type:</b> &nbsp; {{ args.type }}\n </div>\n </span>\n </div>\n </article>\n</template>\n\n<script>\nimport Loading from \"@/components/Loading\"\n\nexport default {\n name: 'Argdoc',\n components: { Loading },\n props: {\n args: {\n type: Object,\n default: () => ({}),\n },\n name: {\n type: String,\n required: true,\n },\n doc: String,\n loading: Boolean,\n isMobile: Boolean,\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n\n.argdoc-container {\n max-height: 50vh;\n display: flex;\n flex-direction: column;\n\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 .argname {\n font-weight: bold;\n margin-left: 0.25em;\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 .flag {\n font-size: 0.9em;\n margin-left: 0.5em;\n margin-bottom: 0.2em;\n\n &.required {\n color: $error-fg;\n }\n\n &.optional {\n color: $selected-fg;\n }\n }\n}\n</style>\n","import { render } from \"./Argdoc.vue?vue&type=template&id=2df98b7b&scoped=true\"\nimport script from \"./Argdoc.vue?vue&type=script&lang=js\"\nexport * from \"./Argdoc.vue?vue&type=script&lang=js\"\n\nimport \"./Argdoc.vue?vue&type=style&index=0&id=2df98b7b&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2df98b7b\"]])\n\nexport default __exports__","import { render } from \"./ActionArgs.vue?vue&type=template&id=1edf7bde&scoped=true\"\nimport script from \"./ActionArgs.vue?vue&type=script&lang=js\"\nexport * from \"./ActionArgs.vue?vue&type=script&lang=js\"\n\nimport \"./ActionArgs.vue?vue&type=style&index=0&id=1edf7bde&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1edf7bde\"]])\n\nexport default __exports__","<template>\n <section class=\"doc-container\" v-if=\"doc?.length\">\n <h2>\n <div class=\"title\">\n <i class=\"fas fa-book\" /> &nbsp;\n <a :href=\"action?.doc_url\">Action documentation</a>\n </div>\n\n <div class=\"buttons\" v-if=\"action?.name\">\n <button type=\"button\" title=\"Go to extension\" v-if=\"pluginName?.length\" @click=\"onExtClick\">\n <i class=\"fas fa-puzzle-piece\" />\n </button>\n\n <button type=\"button\" title=\"cURL command\" v-if=\"curlSnippet?.length\" @click=\"$emit('curl-modal')\">\n <i class=\"fas fa-terminal\" />\n </button>\n </div>\n </h2>\n\n <div class=\"doc html\">\n <Loading v-if=\"loading\" />\n <span v-html=\"doc\" v-else />\n </div>\n </section>\n</template>\n\n<script>\nimport Loading from \"@/components/Loading\"\n\nexport default {\n name: 'ActionDoc',\n components: { Loading },\n emits: ['curl-modal'],\n props: {\n action: Object,\n doc: String,\n curlSnippet: String,\n loading: Boolean,\n },\n\n computed: {\n pluginName() {\n const tokens = (this.action?.name || '').split('.')\n return tokens.length > 1 ? tokens.slice(0, -1).join('.') : null\n },\n },\n\n methods: {\n onExtClick() {\n window.location.href = `/#extensions?extension=${this.pluginName}`\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n\n.doc-container {\n .buttons {\n margin-right: 1.25em;\n\n button {\n i {\n padding: 0 0.75em;\n }\n\n &:hover {\n background-color: $hover-bg;\n }\n }\n }\n}\n</style>\n","import { render } from \"./ActionDoc.vue?vue&type=template&id=105c186a&scoped=true\"\nimport script from \"./ActionDoc.vue?vue&type=script&lang=js\"\nexport * from \"./ActionDoc.vue?vue&type=script&lang=js\"\n\nimport \"./ActionDoc.vue?vue&type=style&index=0&id=105c186a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-105c186a\"]])\n\nexport default __exports__","<template>\n <div class=\"autocomplete\">\n <label :text=\"label\">\n <input\n type=\"text\"\n class=\"input\"\n ref=\"input\" \n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :value=\"value\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @blur=\"onBlur\"\n @keydown=\"onInputKeyDown\"\n @keyup=\"onInputKeyUp\"\n >\n </label>\n\n <div class=\"items\" v-if=\"showItems\">\n <div\n class=\"item\"\n :class=\"{ active: i === curIndex }\"\n :key=\"item\"\n :data-item=\"item\"\n v-for=\"(item, i) in visibleItems\"\n @click=\"onItemSelect(item)\">\n <span class=\"matching\" v-if=\"value?.length\">{{ item.substr(0, value.length) }}</span>\n <span class=\"normal\">{{ item.substr(value?.length || 0) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"Autocomplete\",\n emits: [\"input\"],\n props: {\n items: {\n type: Array,\n required: true,\n },\n\n value: {\n type: String,\n default: \"\",\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n autofocus: {\n type: Boolean,\n default: false,\n },\n\n label: {\n type: String,\n },\n\n placeholder: {\n type: String,\n },\n\n showResultsWhenBlank: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n visible: false,\n curIndex: -1,\n }\n },\n\n computed: {\n visibleItems() {\n if (!this.value?.length)\n return this.items\n\n const val = this.value.toUpperCase()\n if (!val?.length)\n return this.showResultsWhenBlank ? this.items : []\n\n return this.items.filter(\n (item) => item.substr(0, val.length).toUpperCase() === val\n )\n },\n\n showItems() {\n return this.visible && this.items?.length\n },\n },\n\n methods: {\n selectNextItem() {\n this.curIndex++\n this.normalizeIndex()\n },\n\n selectPrevItem() {\n this.curIndex--\n this.normalizeIndex()\n },\n\n normalizeIndex() {\n // Go to the beginning after reaching the end\n if (this.curIndex >= this.visibleItems.length)\n this.curIndex = 0\n\n // Go to the end after moving back from the start\n if (this.curIndex < 0)\n this.curIndex = this.visibleItems.length - 1\n\n // Scroll to the element\n const el = this.$el.querySelector(\"[data-item='\" + this.visibleItems[this.curIndex] + \"']\")\n if (el)\n el.scrollIntoView({\n block: \"start\",\n inline: \"nearest\",\n behavior: \"smooth\",\n })\n },\n\n valueIsInItems() {\n if (!this.value)\n return false\n\n return this.items.indexOf(this.value) >= 0\n },\n\n onFocus() {\n if (this.showResultsWhenBlank || this.value?.length)\n this.visible = true\n },\n\n onInput(e) {\n let val = e.target.value\n if (this.valueIsInItems())\n this.visible = false\n\n e.stopPropagation()\n this.$emit(\"input\", val)\n this.curIndex = -1\n this.visible = true\n },\n\n onBlur(e) {\n this.onInput(e)\n this.$nextTick(() => {\n if (this.valueIsInItems())\n this.visible = false\n })\n },\n\n onItemSelect(item) {\n this.$emit(\"input\", item)\n this.$nextTick(() => {\n if (this.valueIsInItems()) {\n this.visible = false\n }\n })\n },\n\n onInputKeyUp(e) {\n if ([\"ArrowUp\", \"ArrowDown\", \"Tab\", \"Enter\", \"Escape\"].indexOf(e.key) >= 0)\n e.stopPropagation()\n\n if (e.key === \"Enter\" && this.valueIsInItems()) {\n this.$refs.input.blur()\n this.visible = false\n }\n },\n\n onInputKeyDown(e) {\n if (\n e.key === 'ArrowDown' ||\n (e.key === 'Tab' && !e.shiftKey) ||\n (e.key === 'j' && e.ctrlKey)\n ) {\n this.selectNextItem()\n e.preventDefault()\n } else if (\n e.key === 'ArrowUp' ||\n (e.key === 'Tab' && e.shiftKey) ||\n (e.key === 'k' && e.ctrlKey)\n ) {\n this.selectPrevItem()\n e.preventDefault()\n } else if (e.key === 'Enter') {\n if (this.curIndex > -1 && this.visible) {\n e.preventDefault()\n this.onItemSelect(this.visibleItems[this.curIndex])\n this.$refs.input.focus()\n }\n } else if (e.key === 'Escape') {\n this.visible = false\n }\n },\n\n onDocumentClick(e) {\n if (this.$el.contains(e.target) || e.target.classList.contains(\"item\"))\n return\n\n this.visible = false\n },\n },\n\n mounted() {\n document.addEventListener(\"click\", this.onDocumentClick)\n if (this.autofocus)\n this.$refs.input.focus()\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.autocomplete {\n width: 100%;\n position: relative;\n display: inline-block;\n\n .input {\n width: 100%;\n box-shadow: $search-bar-shadow;\n }\n\n .items {\n width: 100%;\n max-height: 50vh;\n position: absolute;\n overflow: auto;\n border: $default-border-2;\n border-bottom: none;\n border-top: none;\n border-radius: 1em;\n box-shadow: $search-bar-shadow;\n z-index: 99;\n top: 100%;\n left: 0;\n right: 0;\n\n .item {\n padding: 1em;\n cursor: pointer;\n border-bottom: $default-border-2;\n background-color: $background-color;\n\n &:hover {\n background-color: $hover-bg-2;\n }\n\n .matching {\n font-weight: bold;\n }\n }\n }\n\n .active {\n background-color: $hover-bg-2 !important;\n }\n}\n</style>\n","import { render } from \"./Autocomplete.vue?vue&type=template&id=1f70dd66&scoped=true\"\nimport script from \"./Autocomplete.vue?vue&type=script&lang=js\"\nexport * from \"./Autocomplete.vue?vue&type=script&lang=js\"\n\nimport \"./Autocomplete.vue?vue&type=style&index=0&id=1f70dd66&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1f70dd66\"]])\n\nexport default __exports__","import { render } from \"./ActionEditor.vue?vue&type=template&id=48afe350&scoped=true\"\nimport script from \"./ActionEditor.vue?vue&type=script&lang=js\"\nexport * from \"./ActionEditor.vue?vue&type=script&lang=js\"\n\nimport \"./ActionEditor.vue?vue&type=style&index=0&id=48afe350&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-48afe350\"]])\n\nexport default __exports__","<template>\n <section class=\"response\">\n <h2 v-if=\"error != null || response != null\">\n <span class=\"title\">\n {{ error != null ? 'Error' : 'Output' }}\n </span>\n <span class=\"buttons\">\n <button type=\"button\" title=\"Copy to clipboard\" @click=\"copyToClipboard(response)\">\n <i class=\"fas fa-clipboard\" />\n </button>\n </span>\n </h2>\n\n <div class=\"output response\" v-if=\"response != null\">\n <pre><code v-html=\"jsonResponse\" v-if=\"jsonResponse != null\" /><code v-text=\"response\" v-else /></pre>\n </div>\n\n <div class=\"output error\" v-else-if=\"error != null\">\n <pre v-text=\"error\" />\n </div>\n </section>\n</template>\n\n<script>\nimport 'highlight.js/lib/common'\nimport 'highlight.js/styles/stackoverflow-dark.min.css'\nimport hljs from \"highlight.js\"\nimport Utils from \"@/Utils\"\n\nexport default {\n name: 'Response',\n mixins: [Utils],\n props: {\n response: String,\n error: String,\n },\n\n computed: {\n isJSON() {\n try {\n return JSON.parse(this.response) != null\n } catch (e) {\n return false\n }\n },\n\n jsonResponse() {\n if (this.isJSON) {\n return hljs.highlight(this.response, {language: 'json'}).value\n }\n\n return null\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n</style>\n","import { render } from \"./Response.vue?vue&type=template&id=801045b2&scoped=true\"\nimport script from \"./Response.vue?vue&type=script&lang=js\"\nexport * from \"./Response.vue?vue&type=script&lang=js\"\n\nimport \"./Response.vue?vue&type=style&index=0&id=801045b2&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-801045b2\"]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_hoisted_8","_hoisted_13","_hoisted_21","_createElementBlock","_normalizeClass","$props","withSave","onClick","_cache","args","$options","$data","loading","_createBlock","_component_Loading","key","_hoisted_1","_hoisted_2","curlSnippet","length","_component_Modal","ref","title","$event","_ctx","copyToClipboard","innerHTML","highlightedCurlSnippet","_hoisted_3","_hoisted_4","_hoisted_5","_createVNode","_component_Tabs","_component_Tab","selected","structuredInput","onInput","onInputTypeChange","_hoisted_6","type","disabled","running","isValidAction","_withModifiers","onSubmit","autocomplete","_hoisted_10","_hoisted_11","_component_Autocomplete","items","autocompleteItems","updateAction","placeholder","autofocus","value","action","name","executeAction","_component_ActionDoc","docLoading","doc","selectedDoc","onCurlModal","$refs","curlModal","show","actions","Object","keys","supportsExtraArgs","_hoisted_15","_hoisted_16","_component_ActionArgs","selectedArg","selectedArgdoc","onAdd","addArg","onSelect","selectArgdoc","onRemove","removeArg","onArgEdit","onExtraArgNameEdit","extraArgs","index","onExtraArgValueEdit","_component_Response","response","error","_hoisted_17","_hoisted_18","rawRequest","rawRequestPlaceholder","_hoisted_12","_Fragment","_renderList","required","onFocus","_component_Argdoc","arg","i","target","$emit","_hoisted_14","onArgAdd","mobile","isMobile","widescreen","_toDisplayString","_hoisted_7","components","Loading","props","default","String","Boolean","__exports__","Argdoc","emits","methods","this","$nextTick","$el","querySelectorAll","focus","event","href","doc_url","pluginName","onExtClick","computed","tokens","split","slice","join","window","location","text","label","onBlur","onKeydown","onInputKeyDown","onKeyup","onInputKeyUp","showItems","visibleItems","item","active","curIndex","onItemSelect","substr","Array","showResultsWhenBlank","data","visible","val","toUpperCase","filter","selectNextItem","normalizeIndex","selectPrevItem","el","querySelector","scrollIntoView","block","inline","behavior","valueIsInItems","indexOf","e","stopPropagation","input","blur","shiftKey","ctrlKey","preventDefault","onDocumentClick","contains","classList","mounted","document","addEventListener","mixins","Utils","ActionArgs","ActionDoc","Autocomplete","Modal","Response","Tab","Tabs","undefined","plugins","procedures","actionDocsCache","currentActionDocURL","values","every","getPluginName","sort","map","actionInput","parentElement","requestArgs","entries","reduce","JSON","parse","console","debug","curlURL","protocol","host","request","reqStr","stringify","getCookies","indent","trim","hljs","highlight","language","refresh","Promise","all","procedure","plugin","has_kwargs","getUrlArgs","actionName","params","force","resetArgdoc","a","entry","html","parseDoc","setUrlArgs","firstArg","docString","push","pop","rawAction","toRequest","onResponse","onError","onDone","then","catch","finally","execute","notify","toString","emitInput","tagName","toLowerCase","open","getAttribute","onValueChanged","watch","immediate","handler","render","jsonResponse","isJSON"],"sourceRoot":""}