1 |
- {"version":3,"file":"oauth2-oauth2.js?v=8d21a5156f0c6ebc4c31","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOutline.vue?9ce8","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=30219a41","webpack:///nextcloud/apps/oauth2/src/components/OAuthItem.vue","webpack:///nextcloud/apps/oauth2/src/components/OAuthItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/oauth2/src/components/OAuthItem.vue?d625","webpack://nextcloud/./apps/oauth2/src/components/OAuthItem.vue?7546","webpack://nextcloud/./apps/oauth2/src/components/OAuthItem.vue?098f","webpack:///nextcloud/apps/oauth2/src/App.vue","webpack:///nextcloud/apps/oauth2/src/App.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/oauth2/src/App.vue?3408","webpack://nextcloud/./apps/oauth2/src/App.vue?8831","webpack://nextcloud/./apps/oauth2/src/App.vue?40c9","webpack:///nextcloud/apps/oauth2/src/main.js","webpack:///nextcloud/apps/oauth2/src/App.vue?vue&type=style&index=0&id=597479ba&prod&scoped=true&lang=css","webpack:///nextcloud/apps/oauth2/src/components/OAuthItem.vue?vue&type=style&index=0&id=39c6252a&prod&scoped=true&lang=css","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=30219a41\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<tr>\n\t\t<td>{{ name }}</td>\n\t\t<td>{{ redirectUri }}</td>\n\t\t<td><code>{{ clientId }}</code></td>\n\t\t<td>\n\t\t\t<div class=\"action-secret\">\n\t\t\t\t<code>{{ renderedSecret }}</code>\n\t\t\t\t<NcButton v-if=\"clientSecret !== ''\"\n\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t:aria-label=\"toggleAriaLabel\"\n\t\t\t\t\t@click=\"toggleSecret\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<EyeOutline :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</td>\n\t\t<td class=\"action-column\">\n\t\t\t<NcButton type=\"tertiary-no-background\"\n\t\t\t\t:aria-label=\"t('oauth2', 'Delete')\"\n\t\t\t\t@click=\"$emit('delete', id)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\"\n\t\t\t\t\t\t:title=\"t('oauth2', 'Delete')\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</td>\n\t</tr>\n</template>\n\n<script>\n\nimport Delete from 'vue-material-design-icons/Delete.vue'\nimport EyeOutline from 'vue-material-design-icons/EyeOutline.vue'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'OAuthItem',\n\tcomponents: {\n\t\tDelete,\n\t\tNcButton,\n\t\tEyeOutline,\n\t},\n\tprops: {\n\t\tclient: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tid: this.client.id,\n\t\t\tname: this.client.name,\n\t\t\tredirectUri: this.client.redirectUri,\n\t\t\tclientId: this.client.clientId,\n\t\t\tclientSecret: this.client.clientSecret,\n\t\t\trenderSecret: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\trenderedSecret() {\n\t\t\tif (this.renderSecret) {\n\t\t\t\treturn this.clientSecret\n\t\t\t} else {\n\t\t\t\treturn '****'\n\t\t\t}\n\t\t},\n\t\ttoggleAriaLabel() {\n\t\t\tif (!this.renderSecret) {\n\t\t\t\treturn t('oauth2', 'Show client secret')\n\t\t\t}\n\t\t\treturn t('oauth2', 'Hide client secret')\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleSecret() {\n\t\t\tthis.renderSecret = !this.renderSecret\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\t.action-secret {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\t.action-secret code {\n\t\tpadding-top: 5px;\n\t}\n\ttd code {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t}\n\ttable.inline td {\n\t\tborder: none;\n\t\tpadding: 5px;\n\t}\n\n\t.action-column {\n\t\tdisplay: flex;\n\t\tjustify-content: flex-end;\n\t\tpadding-inline-end: 0;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=style&index=0&id=39c6252a&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=style&index=0&id=39c6252a&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OAuthItem.vue?vue&type=template&id=39c6252a&scoped=true\"\nimport script from \"./OAuthItem.vue?vue&type=script&lang=js\"\nexport * from \"./OAuthItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./OAuthItem.vue?vue&type=style&index=0&id=39c6252a&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39c6252a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('td',[_vm._v(_vm._s(_vm.name))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.redirectUri))]),_vm._v(\" \"),_c('td',[_c('code',[_vm._v(_vm._s(_vm.clientId))])]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"action-secret\"},[_c('code',[_vm._v(_vm._s(_vm.renderedSecret))]),_vm._v(\" \"),(_vm.clientSecret !== '')?_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.toggleAriaLabel},on:{\"click\":_vm.toggleSecret},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EyeOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,2687940113)}):_vm._e()],1)]),_vm._v(\" \"),_c('td',{staticClass:\"action-column\"},[_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('oauth2', 'Delete')},on:{\"click\":function($event){return _vm.$emit('delete', _vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20,\"title\":_vm.t('oauth2', 'Delete')}})]},proxy:true}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcSettingsSection :name=\"t('oauth2', 'OAuth 2.0 clients')\"\n\t\t:description=\"t('oauth2', 'OAuth 2.0 allows external services to request access to {instanceName}.', { instanceName })\"\n\t\t:doc-url=\"oauthDocLink\">\n\t\t<table v-if=\"clients.length > 0\" class=\"grid\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>\n\t\t\t\t\t\t{{ t('oauth2', 'Name') }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th>\n\t\t\t\t\t\t{{ t('oauth2', 'Redirection URI') }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th>\n\t\t\t\t\t\t{{ t('oauth2', 'Client Identifier') }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th>\n\t\t\t\t\t\t{{ t('oauth2', 'Secret key') }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th>\n\t\t\t\t\t\t{{ t('oauth2', 'Delete client') }}\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<OAuthItem v-for=\"client in clients\"\n\t\t\t\t\t:key=\"client.id\"\n\t\t\t\t\t:client=\"client\"\n\t\t\t\t\t@delete=\"deleteClient\" />\n\t\t\t</tbody>\n\t\t</table>\n\t\t<NcNoteCard v-if=\"showSecretWarning\"\n\t\t\ttype=\"warning\">\n\t\t\t{{ t('oauth2', 'Make sure you store the secret key, it cannot be recovered.') }}\n\t\t</NcNoteCard>\n\n\t\t<br>\n\t\t<h3>{{ t('oauth2', 'Add client') }}</h3>\n\t\t<span v-if=\"newClient.error\" class=\"msg error\">{{ newClient.errorMsg }}</span>\n\t\t<form class=\"oauth2-form\" @submit.prevent=\"addClient\">\n\t\t\t<NcTextField id=\"name\"\n\t\t\t\t:value.sync=\"newClient.name\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"oauth2-form--input\"\n\t\t\t\tname=\"name\"\n\t\t\t\t:label=\"t('oauth2', 'Name')\"\n\t\t\t\t:placeholder=\"t('oauth2', 'Name')\" />\n\t\t\t<NcTextField id=\"redirectUri\"\n\t\t\t\t:value.sync=\"newClient.redirectUri\"\n\t\t\t\ttype=\"url\"\n\t\t\t\tclass=\"oauth2-form--input\"\n\t\t\t\tname=\"redirectUri\"\n\t\t\t\t:label=\"t('oauth2', 'Redirection URI')\"\n\t\t\t\t:placeholder=\"t('oauth2', 'Redirection URI')\" />\n\t\t\t<NcButton native-type=\"submit\" class=\"inline-button\">\n\t\t\t\t{{ t('oauth2', 'Add') }}\n\t\t\t</NcButton>\n\t\t</form>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport OAuthItem from './components/OAuthItem.vue'\nimport { generateUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcNoteCard from '@nextcloud/vue/dist/Components/NcNoteCard.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\n\nexport default {\n\tname: 'App',\n\tcomponents: {\n\t\tOAuthItem,\n\t\tNcSettingsSection,\n\t\tNcButton,\n\t\tNcTextField,\n\t\tNcNoteCard,\n\t},\n\tprops: {\n\t\tclients: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewClient: {\n\t\t\t\tname: '',\n\t\t\t\tredirectUri: '',\n\t\t\t\terrorMsg: '',\n\t\t\t\terror: false,\n\t\t\t},\n\t\t\toauthDocLink: loadState('oauth2', 'oauth2-doc-link'),\n\t\t\tshowSecretWarning: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tinstanceName() {\n\t\t\treturn getCapabilities().theming.name\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteClient(id) {\n\t\t\taxios.delete(generateUrl('apps/oauth2/clients/{id}', { id }))\n\t\t\t\t.then(() => {\n\t\t\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\t\t\tthis.clients = this.clients.filter(client => client.id !== id)\n\t\t\t\t})\n\t\t},\n\t\taddClient() {\n\t\t\tthis.newClient.error = false\n\n\t\t\taxios.post(\n\t\t\t\tgenerateUrl('apps/oauth2/clients'),\n\t\t\t\t{\n\t\t\t\t\tname: this.newClient.name,\n\t\t\t\t\tredirectUri: this.newClient.redirectUri,\n\t\t\t\t},\n\t\t\t).then(response => {\n\t\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\t\tthis.clients.push(response.data)\n\t\t\t\tthis.showSecretWarning = true\n\n\t\t\t\tthis.newClient.name = ''\n\t\t\t\tthis.newClient.redirectUri = ''\n\t\t\t}).catch(reason => {\n\t\t\t\tthis.newClient.error = true\n\t\t\t\tthis.newClient.errorMsg = reason.response.data.message\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n\ttable {\n\t\tmax-width: 800px;\n\t}\n\n\t/** Overwrite button height and position to be aligned with the text input */\n\t.inline-button {\n\t\tmin-height: 34px !important;\n\t\tdisplay: inline-flex !important;\n\t}\n\t.oauth2-form {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t}\n\t.oauth2-form--input {\n\t\tmax-width: 200px;\n\t\tmargin-inline-end: 10px;\n\t}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=597479ba&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=597479ba&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=597479ba&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=597479ba&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"597479ba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('oauth2', 'OAuth 2.0 clients'),\"description\":_vm.t('oauth2', 'OAuth 2.0 allows external services to request access to {instanceName}.', { instanceName: _vm.instanceName }),\"doc-url\":_vm.oauthDocLink}},[(_vm.clients.length > 0)?_c('table',{staticClass:\"grid\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Name'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Redirection URI'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Client Identifier'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Secret key'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Delete client'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.clients),function(client){return _c('OAuthItem',{key:client.id,attrs:{\"client\":client},on:{\"delete\":_vm.deleteClient}})}),1)]):_vm._e(),_vm._v(\" \"),(_vm.showSecretWarning)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('oauth2', 'Make sure you store the secret key, it cannot be recovered.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('oauth2', 'Add client')))]),_vm._v(\" \"),(_vm.newClient.error)?_c('span',{staticClass:\"msg error\"},[_vm._v(_vm._s(_vm.newClient.errorMsg))]):_vm._e(),_vm._v(\" \"),_c('form',{staticClass:\"oauth2-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.addClient.apply(null, arguments)}}},[_c('NcTextField',{staticClass:\"oauth2-form--input\",attrs:{\"id\":\"name\",\"value\":_vm.newClient.name,\"type\":\"text\",\"name\":\"name\",\"label\":_vm.t('oauth2', 'Name'),\"placeholder\":_vm.t('oauth2', 'Name')},on:{\"update:value\":function($event){return _vm.$set(_vm.newClient, \"name\", $event)}}}),_vm._v(\" \"),_c('NcTextField',{staticClass:\"oauth2-form--input\",attrs:{\"id\":\"redirectUri\",\"value\":_vm.newClient.redirectUri,\"type\":\"url\",\"name\":\"redirectUri\",\"label\":_vm.t('oauth2', 'Redirection URI'),\"placeholder\":_vm.t('oauth2', 'Redirection URI')},on:{\"update:value\":function($event){return _vm.$set(_vm.newClient, \"redirectUri\", $event)}}}),_vm._v(\" \"),_c('NcButton',{staticClass:\"inline-button\",attrs:{\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Add'))+\"\\n\\t\\t\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport App from './App.vue'\nimport { loadState } from '@nextcloud/initial-state'\n\nVue.prototype.t = t\nVue.prototype.OC = OC\n\nconst clients = loadState('oauth2', 'clients')\n\nconst View = Vue.extend(App)\nconst oauth = new View({\n\tpropsData: {\n\t\tclients,\n\t},\n})\noauth.$mount('#oauth2')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\ntable[data-v-597479ba] {\n\tmax-width: 800px;\n}\n\n/** Overwrite button height and position to be aligned with the text input */\n.inline-button[data-v-597479ba] {\n\tmin-height: 34px !important;\n\tdisplay: inline-flex !important;\n}\n.oauth2-form[data-v-597479ba] {\n\tdisplay: flex;\n\tflex-direction: row;\n}\n.oauth2-form--input[data-v-597479ba] {\n\tmax-width: 200px;\n\tmargin-inline-end: 10px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/oauth2/src/App.vue\"],\"names\":[],\"mappings\":\";AAgKA;CACA,gBAAA;AACA;;AAEA,4EAAA;AACA;CACA,2BAAA;CACA,+BAAA;AACA;AACA;CACA,aAAA;CACA,mBAAA;AACA;AACA;CACA,gBAAA;CACA,uBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<template>\\n\\t<NcSettingsSection :name=\\\"t('oauth2', 'OAuth 2.0 clients')\\\"\\n\\t\\t:description=\\\"t('oauth2', 'OAuth 2.0 allows external services to request access to {instanceName}.', { instanceName })\\\"\\n\\t\\t:doc-url=\\\"oauthDocLink\\\">\\n\\t\\t<table v-if=\\\"clients.length > 0\\\" class=\\\"grid\\\">\\n\\t\\t\\t<thead>\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<th>\\n\\t\\t\\t\\t\\t\\t{{ t('oauth2', 'Name') }}\\n\\t\\t\\t\\t\\t</th>\\n\\t\\t\\t\\t\\t<th>\\n\\t\\t\\t\\t\\t\\t{{ t('oauth2', 'Redirection URI') }}\\n\\t\\t\\t\\t\\t</th>\\n\\t\\t\\t\\t\\t<th>\\n\\t\\t\\t\\t\\t\\t{{ t('oauth2', 'Client Identifier') }}\\n\\t\\t\\t\\t\\t</th>\\n\\t\\t\\t\\t\\t<th>\\n\\t\\t\\t\\t\\t\\t{{ t('oauth2', 'Secret key') }}\\n\\t\\t\\t\\t\\t</th>\\n\\t\\t\\t\\t\\t<th>\\n\\t\\t\\t\\t\\t\\t{{ t('oauth2', 'Delete client') }}\\n\\t\\t\\t\\t\\t</th>\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t</thead>\\n\\t\\t\\t<tbody>\\n\\t\\t\\t\\t<OAuthItem v-for=\\\"client in clients\\\"\\n\\t\\t\\t\\t\\t:key=\\\"client.id\\\"\\n\\t\\t\\t\\t\\t:client=\\\"client\\\"\\n\\t\\t\\t\\t\\t@delete=\\\"deleteClient\\\" />\\n\\t\\t\\t</tbody>\\n\\t\\t</table>\\n\\t\\t<NcNoteCard v-if=\\\"showSecretWarning\\\"\\n\\t\\t\\ttype=\\\"warning\\\">\\n\\t\\t\\t{{ t('oauth2', 'Make sure you store the secret key, it cannot be recovered.') }}\\n\\t\\t</NcNoteCard>\\n\\n\\t\\t<br>\\n\\t\\t<h3>{{ t('oauth2', 'Add client') }}</h3>\\n\\t\\t<span v-if=\\\"newClient.error\\\" class=\\\"msg error\\\">{{ newClient.errorMsg }}</span>\\n\\t\\t<form class=\\\"oauth2-form\\\" @submit.prevent=\\\"addClient\\\">\\n\\t\\t\\t<NcTextField id=\\\"name\\\"\\n\\t\\t\\t\\t:value.sync=\\\"newClient.name\\\"\\n\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\tclass=\\\"oauth2-form--input\\\"\\n\\t\\t\\t\\tname=\\\"name\\\"\\n\\t\\t\\t\\t:label=\\\"t('oauth2', 'Name')\\\"\\n\\t\\t\\t\\t:placeholder=\\\"t('oauth2', 'Name')\\\" />\\n\\t\\t\\t<NcTextField id=\\\"redirectUri\\\"\\n\\t\\t\\t\\t:value.sync=\\\"newClient.redirectUri\\\"\\n\\t\\t\\t\\ttype=\\\"url\\\"\\n\\t\\t\\t\\tclass=\\\"oauth2-form--input\\\"\\n\\t\\t\\t\\tname=\\\"redirectUri\\\"\\n\\t\\t\\t\\t:label=\\\"t('oauth2', 'Redirection URI')\\\"\\n\\t\\t\\t\\t:placeholder=\\\"t('oauth2', 'Redirection URI')\\\" />\\n\\t\\t\\t<NcButton native-type=\\\"submit\\\" class=\\\"inline-button\\\">\\n\\t\\t\\t\\t{{ t('oauth2', 'Add') }}\\n\\t\\t\\t</NcButton>\\n\\t\\t</form>\\n\\t</NcSettingsSection>\\n</template>\\n\\n<script>\\nimport axios from '@nextcloud/axios'\\nimport OAuthItem from './components/OAuthItem.vue'\\nimport { generateUrl } from '@nextcloud/router'\\nimport { getCapabilities } from '@nextcloud/capabilities'\\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\\nimport NcNoteCard from '@nextcloud/vue/dist/Components/NcNoteCard.js'\\nimport { loadState } from '@nextcloud/initial-state'\\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\\n\\nexport default {\\n\\tname: 'App',\\n\\tcomponents: {\\n\\t\\tOAuthItem,\\n\\t\\tNcSettingsSection,\\n\\t\\tNcButton,\\n\\t\\tNcTextField,\\n\\t\\tNcNoteCard,\\n\\t},\\n\\tprops: {\\n\\t\\tclients: {\\n\\t\\t\\ttype: Array,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tnewClient: {\\n\\t\\t\\t\\tname: '',\\n\\t\\t\\t\\tredirectUri: '',\\n\\t\\t\\t\\terrorMsg: '',\\n\\t\\t\\t\\terror: false,\\n\\t\\t\\t},\\n\\t\\t\\toauthDocLink: loadState('oauth2', 'oauth2-doc-link'),\\n\\t\\t\\tshowSecretWarning: false,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tinstanceName() {\\n\\t\\t\\treturn getCapabilities().theming.name\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tdeleteClient(id) {\\n\\t\\t\\taxios.delete(generateUrl('apps/oauth2/clients/{id}', { id }))\\n\\t\\t\\t\\t.then(() => {\\n\\t\\t\\t\\t\\t// eslint-disable-next-line vue/no-mutating-props\\n\\t\\t\\t\\t\\tthis.clients = this.clients.filter(client => client.id !== id)\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t\\taddClient() {\\n\\t\\t\\tthis.newClient.error = false\\n\\n\\t\\t\\taxios.post(\\n\\t\\t\\t\\tgenerateUrl('apps/oauth2/clients'),\\n\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\tname: this.newClient.name,\\n\\t\\t\\t\\t\\tredirectUri: this.newClient.redirectUri,\\n\\t\\t\\t\\t},\\n\\t\\t\\t).then(response => {\\n\\t\\t\\t\\t// eslint-disable-next-line vue/no-mutating-props\\n\\t\\t\\t\\tthis.clients.push(response.data)\\n\\t\\t\\t\\tthis.showSecretWarning = true\\n\\n\\t\\t\\t\\tthis.newClient.name = ''\\n\\t\\t\\t\\tthis.newClient.redirectUri = ''\\n\\t\\t\\t}).catch(reason => {\\n\\t\\t\\t\\tthis.newClient.error = true\\n\\t\\t\\t\\tthis.newClient.errorMsg = reason.response.data.message\\n\\t\\t\\t})\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n\\ttable {\\n\\t\\tmax-width: 800px;\\n\\t}\\n\\n\\t/** Overwrite button height and position to be aligned with the text input */\\n\\t.inline-button {\\n\\t\\tmin-height: 34px !important;\\n\\t\\tdisplay: inline-flex !important;\\n\\t}\\n\\t.oauth2-form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t}\\n\\t.oauth2-form--input {\\n\\t\\tmax-width: 200px;\\n\\t\\tmargin-inline-end: 10px;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.action-secret[data-v-39c6252a] {\n\tdisplay: flex;\n\talign-items: center;\n}\n.action-secret code[data-v-39c6252a] {\n\tpadding-top: 5px;\n}\ntd code[data-v-39c6252a] {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\ntable.inline td[data-v-39c6252a] {\n\tborder: none;\n\tpadding: 5px;\n}\n.action-column[data-v-39c6252a] {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tpadding-inline-end: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/oauth2/src/components/OAuthItem.vue\"],\"names\":[],\"mappings\":\";AA+GA;CACA,aAAA;CACA,mBAAA;AACA;AACA;CACA,gBAAA;AACA;AACA;CACA,qBAAA;CACA,sBAAA;AACA;AACA;CACA,YAAA;CACA,YAAA;AACA;AAEA;CACA,aAAA;CACA,yBAAA;CACA,qBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<template>\\n\\t<tr>\\n\\t\\t<td>{{ name }}</td>\\n\\t\\t<td>{{ redirectUri }}</td>\\n\\t\\t<td><code>{{ clientId }}</code></td>\\n\\t\\t<td>\\n\\t\\t\\t<div class=\\\"action-secret\\\">\\n\\t\\t\\t\\t<code>{{ renderedSecret }}</code>\\n\\t\\t\\t\\t<NcButton v-if=\\\"clientSecret !== ''\\\"\\n\\t\\t\\t\\t\\ttype=\\\"tertiary-no-background\\\"\\n\\t\\t\\t\\t\\t:aria-label=\\\"toggleAriaLabel\\\"\\n\\t\\t\\t\\t\\t@click=\\\"toggleSecret\\\">\\n\\t\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t\\t<EyeOutline :size=\\\"20\\\" />\\n\\t\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t</NcButton>\\n\\t\\t\\t</div>\\n\\t\\t</td>\\n\\t\\t<td class=\\\"action-column\\\">\\n\\t\\t\\t<NcButton type=\\\"tertiary-no-background\\\"\\n\\t\\t\\t\\t:aria-label=\\\"t('oauth2', 'Delete')\\\"\\n\\t\\t\\t\\t@click=\\\"$emit('delete', id)\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<Delete :size=\\\"20\\\"\\n\\t\\t\\t\\t\\t\\t:title=\\\"t('oauth2', 'Delete')\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcButton>\\n\\t\\t</td>\\n\\t</tr>\\n</template>\\n\\n<script>\\n\\nimport Delete from 'vue-material-design-icons/Delete.vue'\\nimport EyeOutline from 'vue-material-design-icons/EyeOutline.vue'\\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\\n\\nexport default {\\n\\tname: 'OAuthItem',\\n\\tcomponents: {\\n\\t\\tDelete,\\n\\t\\tNcButton,\\n\\t\\tEyeOutline,\\n\\t},\\n\\tprops: {\\n\\t\\tclient: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tid: this.client.id,\\n\\t\\t\\tname: this.client.name,\\n\\t\\t\\tredirectUri: this.client.redirectUri,\\n\\t\\t\\tclientId: this.client.clientId,\\n\\t\\t\\tclientSecret: this.client.clientSecret,\\n\\t\\t\\trenderSecret: false,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\trenderedSecret() {\\n\\t\\t\\tif (this.renderSecret) {\\n\\t\\t\\t\\treturn this.clientSecret\\n\\t\\t\\t} else {\\n\\t\\t\\t\\treturn '****'\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\ttoggleAriaLabel() {\\n\\t\\t\\tif (!this.renderSecret) {\\n\\t\\t\\t\\treturn t('oauth2', 'Show client secret')\\n\\t\\t\\t}\\n\\t\\t\\treturn t('oauth2', 'Hide client secret')\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\ttoggleSecret() {\\n\\t\\t\\tthis.renderSecret = !this.renderSecret\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\n\\t.action-secret {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\t.action-secret code {\\n\\t\\tpadding-top: 5px;\\n\\t}\\n\\ttd code {\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t}\\n\\ttable.inline td {\\n\\t\\tborder: none;\\n\\t\\tpadding: 5px;\\n\\t}\\n\\n\\t.action-column {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: flex-end;\\n\\t\\tpadding-inline-end: 0;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6174;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t6174: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(99747)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","Delete","NcButton","EyeOutline","client","Object","required","data","id","redirectUri","clientId","clientSecret","renderSecret","computed","renderedSecret","toggleAriaLabel","t","methods","toggleSecret","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","OAuthItem","NcSettingsSection","NcTextField","NcNoteCard","clients","Array","newClient","errorMsg","error","oauthDocLink","loadState","showSecretWarning","instanceName","getCapabilities","theming","deleteClient","axios","delete","generateUrl","then","filter","addClient","post","response","push","catch","reason","message","length","_l","preventDefault","apply","arguments","$set","Vue","prototype","OC","extend","App","propsData","$mount","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","e","Promise","resolve","g","globalThis","Function","window","obj","prop","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}
|