{"version":3,"file":"js/app.4e5d24e9.js","mappings":"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","sources":["webpack://oauth-playground-vue/./src/App.vue","webpack://oauth-playground-vue/./src/App.vue?65e5","webpack://oauth-playground-vue/./src/utils/x.ts","webpack://oauth-playground-vue/./src/utils/persistence.ts","webpack://oauth-playground-vue/./src/utils/request/index.ts","webpack://oauth-playground-vue/./src/api/playground.ts","webpack://oauth-playground-vue/./src/views/playground/components/Authorization.vue?5aff","webpack://oauth-playground-vue/./src/views/playground/components/Authorization.vue","webpack://oauth-playground-vue/./src/views/playground/components/Password.vue?be4e","webpack://oauth-playground-vue/./src/views/playground/components/Password.vue","webpack://oauth-playground-vue/./src/views/playground/components/Client.vue?c949","webpack://oauth-playground-vue/./src/views/playground/components/Client.vue","webpack://oauth-playground-vue/./src/api/common.ts","webpack://oauth-playground-vue/./src/views/playground/components/Device.vue?b4b2","webpack://oauth-playground-vue/./src/views/playground/components/Device.vue","webpack://oauth-playground-vue/./src/views/playground/components/PKCE.vue?d218","webpack://oauth-playground-vue/./src/views/playground/components/PKCE.vue","webpack://oauth-playground-vue/./src/store/index.js","webpack://oauth-playground-vue/./src/views/playground/index.vue?3ee4","webpack://oauth-playground-vue/./src/views/playground/index.vue","webpack://oauth-playground-vue/./src/views/Layout.vue?ea53","webpack://oauth-playground-vue/./src/views/Layout.vue","webpack://oauth-playground-vue/./src/router/index.ts","webpack://oauth-playground-vue/./src/main.ts","webpack://oauth-playground-vue/webpack/bootstrap","webpack://oauth-playground-vue/webpack/runtime/chunk loaded","webpack://oauth-playground-vue/webpack/runtime/compat get default export","webpack://oauth-playground-vue/webpack/runtime/define property getters","webpack://oauth-playground-vue/webpack/runtime/global","webpack://oauth-playground-vue/webpack/runtime/hasOwnProperty shorthand","webpack://oauth-playground-vue/webpack/runtime/jsonp chunk loading","webpack://oauth-playground-vue/webpack/startup"],"sourcesContent":["\n\n\n","import { render } from \"./App.vue?vue&type=template&id=4d88d202\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=4d88d202&lang=css\"\n\nimport exportComponent from \"../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const protocol = window.location.protocol;\nconst hostname = window.location.hostname;\nconst port = window.location.port;\nconst prefix = `${protocol}//${hostname}${port ? ':' + port : ''}`;\n\nconst evn = 0;\nconst devBase = \"http://10.24.65.197\";\nconst prodBase = prefix;\n\nexport function getApiBase() {\n let _l = \"\";\n switch(evn){\n // @ts-ignore\n case 0:\n _l = devBase;\n break;\n // @ts-ignore\n case 1:\n _l = prodBase;\n break;\n default:\n _l = devBase;\n }\n return _l;\n}\n\nexport const getParam = (_k) => {\n const pv = new RegExp(`(^|&)${ _k }=([^&]*)(&|$)`, \"i\");\n const r = window.location.search.slice(1).match(pv);\n if(r !== null){\n return decodeURIComponent(r[2]);\n }\n return '';\n};\n\nexport const generateRandomString = (input: string) => {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const timestamp = Date.now().toString();\n const randomLength = Math.floor(Math.random() * input.length) + 1;\n let result = '';\n for(let i = 0; i < randomLength; i++){\n result += input.charAt(Math.floor(Math.random() * input.length));\n }\n for(let i = 0; i < 14 - randomLength; i++){\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n result += timestamp.slice(-2);\n return result;\n};\n","interface StorageItem {\n key: string;\n value: any;\n}\n\nexport class LocalStorageService {\n private storage: Storage;\n\n constructor() {\n this.storage = window.localStorage;\n }\n\n addItem(item: StorageItem): void {\n const existingItem = this.getItem(item.key);\n if (existingItem) {\n this.updateItem(item);\n } else {\n this.storage.setItem(item.key, JSON.stringify(item.value));\n }\n }\n\n getItem(key: string): any {\n const item = this.storage.getItem(key);\n return item ? JSON.parse(item) : null;\n }\n\n updateItem(item: StorageItem): void {\n const existingItem = this.getItem(item.key);\n if (existingItem) {\n this.storage.setItem(item.key, JSON.stringify(item.value));\n } else {\n this.addItem(item);\n }\n }\n\n removeItem(key: string): void {\n this.storage.removeItem(key);\n }\n}","import axios, { AxiosError, AxiosInstance, AxiosPromise, AxiosRequestConfig, AxiosResponse } from 'axios';\n\nexport interface Result{\n data: T;\n code: number;\n msg: string;\n}\n\nclass HttpService{\n private readonly http!: AxiosInstance;\n\n constructor() {\n const proto = process.env.VUE_APP_API_PROTO;\n const host = process.env.VUE_APP_API_HOST;\n const port = process.env.VUE_APP_API_PORT?.length>0?\":\".concat(process.env.VUE_APP_API_PORT):\"\";\n const route = process.env.VUE_APP_ROUTER_BASE+process.env.VUE_APP_API_VERSION;\n const baseURL = host ? proto+\"://\"+host+port+route : route;\n this.http = axios.create({\n baseURL: baseURL,\n timeout: 60000,\n });\n\n this.addInterceptors(this.http);\n }\n\n get(url: string, config?: AxiosRequestConfig) {\n return this.handleErrorWrapper(this.http.get(url, config));\n }\n\n post(url: string, param: unknown, config?: AxiosRequestConfig) {\n return this.handleErrorWrapper(this.http.post(url, param, config));\n }\n\n postDownload(url: string, param: unknown) {\n return this.handleErrorWrapper(this.http.post(url, param, {responseType: 'arraybuffer'}));\n }\n\n put(url: string, param: unknown, config?: AxiosRequestConfig) {\n return this.handleErrorWrapper(this.http.put(url, param, config));\n }\n\n delete(url: string, param: unknown, config?: AxiosRequestConfig) {\n return this.handleErrorWrapper(this.http.delete(url, {data: param, ...config}));\n }\n\n private addInterceptors(http: AxiosInstance) {\n http.interceptors.request.use((config) => {\n return config;\n });\n\n http.interceptors.response.use(\n (response: AxiosResponse) => {\n return response;\n },\n (error) => {\n return Promise.reject(error);\n },\n );\n }\n\n private async handleErrorWrapper(p: AxiosPromise): Promise | {}> {\n return p\n .then((response) => {\n return response.data;\n })\n .catch((error: AxiosError) => {\n return {\n ...(error.response?.data as object)\n };\n });\n }\n}\n\nexport const http = new HttpService();","import { http } from \"/@/utils/request\";\n\ntype Result = {\n code: string;\n msg: string;\n data: {\n request?: object | any;\n response?:object | any;\n rawjson?: object | any;\n example?: object | any;\n }\n}\n\n/** authorization_code */\n/** Step 2 */\n/** Get access_token with code */\nexport const fetchACToken = (data) => {\n return http.post(\"/oauth2/authorization_code\", data);\n};\n\n/** Get new access_token with refresh_token */\nexport const fetchRefreshToken = (data) => {\n return http.post(\"/oauth2/refresh_token\", data);\n}\n\n/** Step 3*/\n/** Get data from API */\nexport const fetchApiData = (data) => {\n return http.post(\"/api\", data);\n}\n\n\n/** Client Credentials */\nexport const fetchACTokenByClient = (data) => {\n return http.post(\"/oauth2/client_credentials\", data);\n};\n\n/** Password */\nexport const fetchACTokenByPassword = (data) => {\n return http.post(\"/oauth2/password\", data);\n};\n\n/** Device Flow */\n/** Step 2 */\n/** Get access_token with device_code */\nexport const fetchACTokenByDevice = (data) => {\n return http.post(\"/oauth2/device_flow\", data);\n};\n\n/** PKCE */\n/** Step 2 */\n/** Get access_token with PKCE */\nexport const fetchACTokenByPkce = (data) => {\n return http.post(\"/oauth2/pkce\", data);\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1e374e4b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"demo-collapse\",\n id: \"main\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 1: Request for Authorization Code\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Authorization Endpoint\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Redirect Uri\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Scope\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Response Type\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"State\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Grant Url\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 2: Fetch token with Authorization Code\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Authorization Code\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Refresh Token\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Current Access Token\", -1))\nconst _hoisted_13 = { class: \"tokenArea\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, [\n /*#__PURE__*/_createTextVNode(\"Step 3: Request to API with the \"),\n /*#__PURE__*/_createElementVNode(\"code\", { style: {\"color\":\"#cd3221\"} }, \"access_token\")\n], -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Request URI\", -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Method\", -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"display\":\"flex\"} }, \"Enter the data that will be added to the body of the request:\", -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Access Token\", -1))\nconst _hoisted_19 = { class: \"http-left\" }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"REQUEST INFO\", -1))\nconst _hoisted_21 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0em\",\"position\":\"relative\",\"overflow\":\"auto\",\"max-height\":\"350px\",\"width\":\"100%\"}\n}\nconst _hoisted_22 = { class: \"http-right\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"RESPONSE INFO\", -1))\nconst _hoisted_24 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0em\",\"position\":\"relative\",\"overflow\":\"auto\",\"max-height\":\"300px\",\"width\":\"100%\"}\n}\n\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport {ElMessage, FormInstance} from 'element-plus'\nimport { generateRandomString } from \"/@/utils/x\";\nimport { LocalStorageService } from \"/@/utils/persistence\"\nimport useClipboard from 'vue-clipboard3';\nimport { fetchACToken, fetchApiData, fetchRefreshToken } from \"/@/api/playground\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Authorization',\n props: {\n cfgData: {\n type: Object,\n default: () => {\n return {\n trust_domain: [],\n authorization_endpoint: \"\",\n token_endpoint: \"\",\n userinfo_endpoint: \"\",\n default_scope: \"\",\n access_token_type: \"\",\n client_id: \"\",\n client_secret: \"\"\n };\n }\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst {toClipboard} = useClipboard();\nconst isHorizontal = ref(false);\nconst toggleLayout = () => {\n isHorizontal.value = !isHorizontal.value;\n};\n\n// Http Info\nconst requestInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n },\n header: '',\n body: '',\n code: '',\n});\nconst responseInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n status: '',\n },\n header: '',\n strHeader: '',\n body: '',\n code: '',\n});\nconst rawJsonInfo = reactive({});\nconst exampleInfo = reactive({});\nconst isWrapRes = ref(true);//控制body是否自动换行\n\nfunction updateReqAndRes() {\n requestInfo.body = atob(requestInfo.body);\n requestInfo.code = JSON.stringify(requestInfo.header, undefined, 0.1)\n //去掉首尾的{}\n requestInfo.code = requestInfo.code.slice(1, requestInfo.code.length - 1);\n requestInfo.code = requestInfo.meta.method + ' ' + requestInfo.meta.path + ' ' + requestInfo.meta.proto + requestInfo.code;\n requestInfo.code = requestInfo.code + 'Host: ' + requestInfo.meta.host;\n requestInfo.code = requestInfo.code.replaceAll('\"', '');\n\n // responseInfo.meta = res[\"data\"][\"response\"][\"meta\"];\n // responseInfo.body = res[\"data\"][\"response\"][\"body\"];\n // responseInfo.body = atob(responseInfo.body);\n responseInfo.body = decodeURIComponent(escape(window.atob(responseInfo.body)))\n // responseInfo.header = res[\"data\"][\"response\"][\"header\"];\n responseInfo.strHeader = JSON.stringify(responseInfo.header, undefined, 0.1)\n //去掉首尾的{}\n responseInfo.strHeader = responseInfo.strHeader.slice(1, responseInfo.strHeader.length - 1)\n responseInfo.strHeader = responseInfo.meta.proto + ' ' + responseInfo.meta.status + responseInfo.strHeader;\n responseInfo.strHeader = responseInfo.strHeader.replaceAll('\"', '')\n}\n\n// Step 1\nconst activeName = ref('1');\nconst s1Data = reactive({\n authorization_endpoint: \"\",\n redirect_uri: window.location.href.split(\"?\")[0],\n scope: \"\",\n response_type: \"code\",\n state: \"\",\n});\n\nconst initialAddress = ref(\"\");\n\nfunction handleS1Change() {\n initialAddress.value = s1Data.authorization_endpoint.concat(\n \"?response_type=code\",\n s1Data.scope?.length > 0 ? \"&scope=\".concat(s1Data.scope) : \"\",\n props.cfgData.client_id?.length > 0 ? \"&client_id=\".concat(props.cfgData.client_id) : \"\",\n \"&redirect_uri=\",\n s1Data.redirect_uri,\n s1Data.state?.length > 0 ? \"&state=\".concat(s1Data.state) : \"\"\n );\n}\n\nfunction handleGetAuthorizationCode() {\n if(s1Data.scope.length === 0){\n ElMessage.error('scope cannot be empty');\n return;\n }else if(s1Data.state.length === 0){\n ElMessage.error('state cannot be empty');\n return;\n }else{\n if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id is empty, please click the config button on the right side, and check the configuration');\n return;\n }else{\n const lss = new LocalStorageService();\n const ci = {key: \"id\", value: props.cfgData.client_id};\n const cs = {key: \"secret\", value: props.cfgData.client_secret};\n lss.addItem(ci);\n if(cs.value.length > 0){\n lss.addItem(cs);\n }\n window.location.href = initialAddress.value;\n }\n }\n}\n\n// Step 2\nconst code = ref(\"\");\nconst state = ref(\"\");\nconst currentToken = ref(\"\");\nconst currentRefreshToken = ref(\"\");\n\nasync function handleGetToken() {\n if(code.value.length === 0){\n ElMessage.error('code cannot be empty');\n return;\n }else if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id cannot be empty');\n return;\n }else if(props.cfgData.client_secret.length === 0){\n ElMessage.error('client_secret cannot be empty');\n return;\n }else{\n const dataObject = {\n code: code.value,\n client_id: props.cfgData.client_id,\n client_secret: props.cfgData.client_secret,\n scope: props.cfgData.default_scope,\n redirect_uri: window.location.href.split(\"?\")[0]\n };\n fetchACToken(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n const {access_token, refresh_token} = rawjson || {};\n currentToken.value = access_token??\"Uncertain\";\n currentRefreshToken.value = refresh_token??\"Uncertain\";\n s3CurrentToken.value = access_token??\"Uncertain\";\n toClipboard(access_token).finally(() => {\n ElMessage.success(`get access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n\n window.history.replaceState({}, document.title, window.location.pathname);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n }\n });\n\n }\n}\n\nfunction handleRefreshToken() {\n if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id is empty, please click the config button on the right side, and check the configuration');\n return;\n }else if(props.cfgData.client_secret.length === 0){\n ElMessage.error('client_secret is empty, please click the config button on the right side, and check the configuration');\n return;\n }else if(currentRefreshToken.value.length === 0){\n ElMessage.error('refresh_token is empty, please get the access_token firstly');\n return;\n }else{\n const dataObject = {\n refresh_token: currentRefreshToken.value,\n client_id: props.cfgData.client_id,\n client_secret: props.cfgData.client_secret\n };\n\n fetchRefreshToken(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n const {access_token, refresh_token} = rawjson || {};\n currentToken.value = access_token??\"Uncertain\";\n currentRefreshToken.value = refresh_token??\"Uncertain\";\n s3CurrentToken.value = access_token??\"Uncertain\";\n toClipboard(access_token).finally(() => {\n ElMessage.success(`refresh access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\n// Step 3\nconst requestUri = ref(\"\");\nconst requestMethod = ref(\"GET\");\nconst s3CurrentToken = ref(\"\");\nconst s3TokenType = ref(\"Bearer\");\nconst contentType = ref(\"application/json\");\nconst headerDialogVisible = ref(false);\nconst bodyDialogVisible = ref(false);\nconst newHeader = reactive({\n name: '',\n value: ''\n});\nconst headerFormRef = ref()\nconst headerRules = reactive({\n name: [{ required: true, message: 'Please enter header name', trigger: 'blur' }],\n value: [{ required: true, message: 'Please enter header value', trigger: 'blur' }]\n});\nconst additionalHeaders = reactive([]);\nconst additionalBody = ref(\"\")\n\nconst methodOptions = [\n {label: 'GET', value: 'GET', disabled: false},\n {label: 'POST', value: 'POST', disabled: false},\n {label: 'PUT', value: 'PUT', disabled: false},\n {label: 'DELETE', value: 'DELETE', disabled: false},\n {label: 'PATCH', value: 'PATCH', disabled: true},\n {label: 'HEAD', value: 'HEAD', disabled: true},\n {label: 'OPTIONS', value: 'OPTIONS', disabled: true}\n];\n\nconst contentTypeOptions = [\n {label: 'application/json', value: 'application/json', disabled: false},\n {label: 'application/atom+xml', value: 'application/atom+xml', disabled: true},\n {label: 'text/plain', value: 'text/plain', disabled: true},\n {label: 'text/csv', value: 'text/csv', disabled: true},\n // {label: 'Custom', value: 'Custom', disabled: true}, // TODO:参考google,跳出添加header的dialog,header name = “Content-Type”,value由用户填\n]\n\nfunction handleMethodChange(value) {\n requestMethod.value = value;\n ElMessage.info(`当前请求方法: ${value}`);\n}\n\nfunction handleContentTypeChange(value) {\n contentType.value = value;\n ElMessage.info(`当前Content-Type: ${value}`);\n}\n\nasync function handleRequestAPI() {\n if(requestUri.value.length === 0){\n ElMessage.error('api address cannot be empty');\n return;\n }else if(s3CurrentToken.value.length === 0){\n ElMessage.error('access_token is empty, please get the access_token firstly');\n return;\n }else{\n // 将 additionalHeaders 数组转换对象\n const additionalHeadersObject = additionalHeaders.reduce((map, header) => {\n if (header.name && header.value) {\n map[header.name] = header.value;\n }\n return map;\n }, {});\n const dataObject = {\n method: requestMethod.value,\n api_addr: requestUri.value,\n access_token: s3CurrentToken.value,\n access_token_type: s3TokenType.value,\n header: additionalHeadersObject,\n http_body: additionalBody.value\n };\n fetchApiData(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\nfunction isJsonResponse(header) {\n const contentType = header[\"Content-Type\"];\n return contentType != null && contentType.includes(\"application/json\");\n}\n\nfunction formatJson(jsonStr) {\n // 格式化 JSON 内容\n try {\n let resStr = JSON.stringify(JSON.parse(jsonStr), null, ' ');\n return resStr;\n } catch (error) {\n // 解析失败,返回原始内容\n console.error('格式化json失败');\n return jsonStr;\n }\n}\n\nasync function addHeader(headerForm) {\n if (!headerForm)\n return;\n await headerForm.validate((valid, fields) => {\n if (valid) {\n additionalHeaders.push({name: newHeader.name, value: newHeader.value});\n // 添加之后清空\n newHeader.name = '';\n newHeader.value = '';\n } else {\n console.log('error add', fields)\n }\n })\n}\n\nfunction deleteRow(index) {\n additionalHeaders.splice(index, 1)\n}\n\nwatch(props.cfgData, (newValue) => {\n s1Data.authorization_endpoint = newValue.authorization_endpoint;\n s1Data.scope = newValue.default_scope;\n initialAddress.value = newValue.authorization_endpoint.concat(\n \"?response_type=code\",\n newValue.default_scope?.length > 0 ? \"&scope=\".concat(newValue.default_scope) : \"\",\n newValue.client_id?.length > 0 ? \"&client_id=\".concat(newValue.client_id) : \"\",\n \"&redirect_uri=\",\n s1Data.redirect_uri,\n s1Data.state?.length > 0 ? \"&state=\".concat(s1Data.state) : \"\"\n );\n requestUri.value = newValue.userinfo_endpoint;\n s3TokenType.value = newValue.access_token_type;\n});\n\nonMounted(() => {\n // handleDrag(agS1Ref.value.$el, agS1ContainerRef.value.$el);\n s1Data.state = generateRandomString(props.cfgData.default_scope);\n\n const urlParams = new URLSearchParams(window.location.search);\n if(urlParams.get('code')?.length > 0){\n code.value = urlParams.get('code');\n state.value = urlParams.get('state');\n activeName.value = '2';\n // window.history.replaceState({}, document.title, window.location.pathname);\n }\n requestUri.value = props.cfgData.userinfo_endpoint;\n s3TokenType.value = props.cfgData.access_token_type;\n additionalHeaders.length = 0;\n additionalBody.value = '';\n\n});\n\n\nconst agS1ContainerRef = ref(null);\nconst agS1Ref = ref(null);\nconst handleDrag = (floatButton, container) => {\n // todo: drag float button\n};\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n const _component_el_collapse_item = _resolveComponent(\"el-collapse-item\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_collapse = _resolveComponent(\"el-collapse\")!\n const _component_el_divider = _resolveComponent(\"el-divider\")!\n const _component_highlightjs = _resolveComponent(\"highlightjs\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 8,\n lg: 8,\n xl: 8\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_el_collapse, {\n modelValue: activeName.value,\n \"onUpdate:modelValue\": _cache[22] || (_cache[22] = ($event: any) => ((activeName).value = $event)),\n accordion: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"1\"\n }, {\n title: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, {\n class: \"fitSide\",\n ref_key: \"agS1ContainerRef\",\n ref: agS1ContainerRef\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createVNode(_component_el_input, {\n modelValue: s1Data.authorization_endpoint,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((s1Data.authorization_endpoint) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_4,\n _createVNode(_component_el_input, {\n modelValue: s1Data.redirect_uri,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((s1Data.redirect_uri) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_5,\n _createVNode(_component_el_input, {\n modelValue: s1Data.scope,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((s1Data.scope) = $event)),\n placeholder: \"Scope\",\n onInput: handleS1Change,\n onBlur: handleS1Change\n }, null, 8, [\"modelValue\"]),\n _hoisted_6,\n _createVNode(_component_el_input, {\n modelValue: s1Data.response_type,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((s1Data.response_type) = $event)),\n placeholder: \"Response Type\",\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_7,\n _createVNode(_component_el_input, {\n modelValue: s1Data.state,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((s1Data.state) = $event)),\n placeholder: \"State\",\n onInput: handleS1Change,\n onBlur: handleS1Change\n }, null, 8, [\"modelValue\"]),\n _hoisted_8,\n _createVNode(_component_el_input, {\n modelValue: initialAddress.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((initialAddress).value = $event)),\n type: \"textarea\",\n autosize: { minRows: 4, maxRows: 6 },\n placeholder: \"Request grant code address\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n ref_key: \"agS1Ref\",\n ref: agS1Ref,\n type: \"primary\",\n onClick: handleGetAuthorizationCode,\n class: \"n-button side-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" GO \")\n ]),\n _: 1\n }, 512)\n ]),\n _: 1\n }, 512)\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"2\"\n }, {\n title: _withCtx(() => [\n _hoisted_9\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_10,\n _createVNode(_component_el_input, {\n modelValue: code.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((code).value = $event)),\n placeholder: \"Authorization Code\"\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleGetToken,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Get the token \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_11,\n _createVNode(_component_el_input, {\n modelValue: currentRefreshToken.value,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((currentRefreshToken).value = $event)),\n placeholder: \"Refresh Token\"\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRefreshToken,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Refresh Token \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_12,\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"strong\", null, [\n _createElementVNode(\"code\", null, _toDisplayString(currentToken.value), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"3\"\n }, {\n title: _withCtx(() => [\n _hoisted_14\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_15,\n _createVNode(_component_el_input, {\n modelValue: requestUri.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((requestUri).value = $event)),\n placeholder: \"Authorization Code\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_16,\n _createVNode(_component_el_select, {\n modelValue: requestMethod.value,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((requestMethod).value = $event)),\n onChange: handleMethodChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(methodOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, { span: 6 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (headerDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Add Headers \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, { span: 8 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[11] || (_cache[11] = ($event: any) => (bodyDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Enter Request Body \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n span: 10,\n style: {\"margin-top\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: contentType.value,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((contentType).value = $event)),\n onChange: handleContentTypeChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(contentTypeOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: headerDialogVisible.value,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((headerDialogVisible).value = $event)),\n title: \"Headers\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_el_form, {\n ref_key: \"headerFormRef\",\n ref: headerFormRef,\n inline: true,\n model: newHeader,\n rules: headerRules,\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, {\n prop: \"name\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.name,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((newHeader.name) = $event)),\n placeholder: \"header name\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n prop: \"value\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.value,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((newHeader.value) = $event)),\n placeholder: \"header value\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { style: {\"width\":\"260px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[15] || (_cache[15] = ($event: any) => (addHeader(headerFormRef.value))),\n style: {\"margin-bottom\":\"10px\",\"margin-left\":\"-10px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Add\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\"]),\n _createVNode(_component_el_table, {\n data: additionalHeaders,\n border: \"\",\n style: {\"width\":\"100%\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n label: \"Header Name\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.name), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n label: \"Header Value\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.value), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n fixed: \"right\",\n width: \"260\"\n }, {\n default: _withCtx((scope) => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: ($event: any) => (deleteRow(scope.$index))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Remove \")\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"data\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[16] || (_cache[16] = ($event: any) => (headerDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_dialog, {\n modelValue: bodyDialogVisible.value,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((bodyDialogVisible).value = $event)),\n title: \"Request Body\"\n }, {\n default: _withCtx(() => [\n _hoisted_17,\n _createVNode(_component_el_input, {\n modelValue: additionalBody.value,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = ($event: any) => ((additionalBody).value = $event)),\n rows: 15,\n type: \"textarea\",\n placeholder: \"Please input\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[19] || (_cache[19] = ($event: any) => (bodyDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_18,\n _createVNode(_component_el_input, {\n modelValue: s3CurrentToken.value,\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = ($event: any) => ((s3CurrentToken).value = $event)),\n placeholder: \"access_token\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRequestAPI,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Fetch Data \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 16,\n lg: 16,\n xl: 16\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"http-container\", { 'http-horizontal': isHorizontal.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_20\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_21, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: requestInfo.code\n }, null, 8, [\"code\"]),\n _createVNode(_component_highlightjs, {\n class: _normalizeClass({ 'bodyWrap': isWrapRes.value }),\n autodetect: \"\",\n code: requestInfo.body\n }, null, 8, [\"class\", \"code\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_checkbox, {\n modelValue: isWrapRes.value,\n \"onUpdate:modelValue\": _cache[23] || (_cache[23] = ($event: any) => ((isWrapRes).value = $event)),\n label: \"Wrap Lines\",\n size: \"large\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_23\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_24, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: responseInfo.strHeader\n }, null, 8, [\"code\"]),\n (isJsonResponse(responseInfo.header))\n ? (_openBlock(), _createBlock(_component_highlightjs, {\n key: 0,\n autodetect: \"\",\n code: formatJson(responseInfo.body)\n }, null, 8, [\"code\"]))\n : (_openBlock(), _createBlock(_component_highlightjs, {\n key: 1,\n autodetect: \"\",\n code: responseInfo.body\n }, null, 8, [\"code\"]))\n ]),\n _: 1\n }),\n _createVNode(_component_el_checkbox, {\n modelValue: isWrapRes.value,\n \"onUpdate:modelValue\": _cache[24] || (_cache[24] = ($event: any) => ((isWrapRes).value = $event)),\n label: \"Wrap Lines\",\n size: \"large\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createVNode(_component_el_button, {\n class: \"http-button http-side-button\",\n onClick: toggleLayout\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Switch\")\n ]),\n _: 1\n })\n ], 2)\n ]),\n _: 1\n })\n ], 64))\n}\n}\n\n})","import script from \"./Authorization.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Authorization.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Authorization.vue?vue&type=style&index=0&id=1e374e4b&scoped=true&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1e374e4b\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0132958a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"demo-collapse\",\n id: \"main\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 1: Fetch token with Password\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Username\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Password\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Current Access Token\", -1))\nconst _hoisted_6 = { class: \"tokenArea\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, [\n /*#__PURE__*/_createTextVNode(\"Step 2: Request to API with the \"),\n /*#__PURE__*/_createElementVNode(\"code\", { style: {\"color\":\"#cd3221\"} }, \"access_token\")\n], -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Request URI\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Method\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"display\":\"flex\"} }, \"Add a header:\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"display\":\"flex\"} }, \"Enter the data that will be added to the body of the request:\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Access Token\", -1))\nconst _hoisted_13 = { class: \"http-left\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"REQUEST INFO\", -1))\nconst _hoisted_15 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0px\",\"position\":\"relative\"}\n}\nconst _hoisted_16 = { class: \"http-right\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"RESPONSE INFO\", -1))\nconst _hoisted_18 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0em\",\"position\":\"relative\",\"overflow\":\"auto\",\"max-height\":\"300px\",\"width\":\"100%\"}\n}\n\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport {ElMessage, FormInstance} from 'element-plus'\nimport useClipboard from 'vue-clipboard3';\nimport { fetchACTokenByPassword, fetchApiData } from \"/@/api/playground\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Password',\n props: {\n cfgData: {\n type: Object,\n default: () => {\n return {\n trust_domain: [],\n authorization_endpoint: \"\",\n token_endpoint: \"\",\n userinfo_endpoint: \"\",\n default_scope: \"\",\n access_token_type: \"\",\n client_id: \"\",\n client_secret: \"\"\n };\n }\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst {toClipboard} = useClipboard();\nconst isHorizontal = ref(false);\nconst toggleLayout = () => {\n isHorizontal.value = !isHorizontal.value;\n};\n\n// Http Info\nconst requestInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n },\n header: '',\n body: '',\n code: '',\n});\nconst responseInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n status: '',\n },\n header: '',\n strHeader: '',\n body: '',\n code: '',\n});\nconst rawJsonInfo = reactive({});\nconst exampleInfo = reactive({});\nconst isWrapRes = ref(true);//控制body是否自动换行\n\nfunction updateReqAndRes() {\n requestInfo.body = atob(requestInfo.body);\n requestInfo.code = JSON.stringify(requestInfo.header, undefined, 0.1)\n //去掉首尾的{}\n requestInfo.code = requestInfo.code.slice(1, requestInfo.code.length - 1);\n requestInfo.code = requestInfo.meta.method + ' ' + requestInfo.meta.path + ' ' + requestInfo.meta.proto + requestInfo.code;\n requestInfo.code = requestInfo.code + 'Host: ' + requestInfo.meta.host;\n requestInfo.code = requestInfo.code.replaceAll('\"', '');\n\n // responseInfo.meta = res[\"data\"][\"response\"][\"meta\"];\n // responseInfo.body = res[\"data\"][\"response\"][\"body\"];\n // responseInfo.body = atob(responseInfo.body);\n responseInfo.body = decodeURIComponent(escape(window.atob(responseInfo.body)))\n // responseInfo.header = res[\"data\"][\"response\"][\"header\"];\n responseInfo.strHeader = JSON.stringify(responseInfo.header, undefined, 0.1)\n //去掉首尾的{}\n responseInfo.strHeader = responseInfo.strHeader.slice(1, responseInfo.strHeader.length - 1)\n responseInfo.strHeader = responseInfo.meta.proto + ' ' + responseInfo.meta.status + responseInfo.strHeader;\n responseInfo.strHeader = responseInfo.strHeader.replaceAll('\"', '')\n}\n\n// Step 1\nconst activeName = ref('1');\n\nconst username = ref(\"\");\nconst password =ref(\"\")\nconst currentToken = ref(\"\");\n\nasync function handleGetTokenByPassword() {\n if(username.value.length === 0){\n ElMessage.error('username cannot be empty');\n return;\n }else if(password.value.length === 0){\n ElMessage.error('password cannot be empty');\n return;\n }else if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id cannot be empty');\n return;\n }else if(props.cfgData.client_secret.length === 0){\n ElMessage.error('client_secret cannot be empty');\n return;\n }else{\n const dataObject = {\n client_id: props.cfgData.client_id,\n client_secret: props.cfgData.client_secret,\n username : username.value,\n password : password.value\n };\n fetchACTokenByPassword(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n if (rawjson !== null) { // 认证错误时rawjson为null,要判断,不然报错\n const {access_token} = rawjson;\n currentToken.value = access_token??\"Uncertain\";\n s3CurrentToken.value = access_token??\"Uncertain\";\n toClipboard(access_token).finally(() => {\n ElMessage.success(`get access_token success: ${access_token}`);\n });\n }\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n\n window.history.replaceState({}, document.title, window.location.pathname);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n }\n });\n\n }\n}\n\n\n// Step 3\nconst requestUri = ref(\"\");\nconst requestMethod = ref(\"GET\");\nconst s3CurrentToken = ref(\"\");\nconst s3TokenType = ref(\"Bearer\");\nconst contentType = ref(\"application/json\");\nconst headerDialogVisible = ref(false);\nconst bodyDialogVisible = ref(false);\nconst newHeader = reactive({\n name: '',\n value: ''\n});\nconst headerFormRef = ref()\nconst headerRules = reactive({\n name: [{ required: true, message: 'Please enter header name', trigger: 'blur' }],\n value: [{ required: true, message: 'Please enter header value', trigger: 'blur' }]\n});\nconst additionalHeaders = reactive([]);\nconst additionalBody = ref(\"\")\n\nconst methodOptions = [\n {label: 'GET', value: 'GET', disabled: false},\n {label: 'POST', value: 'POST', disabled: false},\n {label: 'PUT', value: 'PUT', disabled: false},\n {label: 'DELETE', value: 'DELETE', disabled: false},\n {label: 'PATCH', value: 'PATCH', disabled: true},\n {label: 'HEAD', value: 'HEAD', disabled: true},\n {label: 'OPTIONS', value: 'OPTIONS', disabled: true}\n];\n\nconst contentTypeOptions = [\n {label: 'application/json', value: 'application/json', disabled: false},\n {label: 'application/atom+xml', value: 'application/atom+xml', disabled: true},\n {label: 'text/plain', value: 'text/plain', disabled: true},\n {label: 'text/csv', value: 'text/csv', disabled: true},\n // {label: 'Custom', value: 'Custom', disabled: true}, // TODO:参考google,跳出添加header的dialog,header name = “Content-Type”,value由用户填\n]\n\nfunction handleMethodChange(value) {\n requestMethod.value = value;\n ElMessage.info(`当前请求方法: ${value}`);\n}\n\nfunction handleContentTypeChange(value) {\n contentType.value = value;\n ElMessage.info(`当前Content-Type: ${value}`);\n}\n\nasync function handleRequestAPI() {\n if(requestUri.value.length === 0){\n ElMessage.error('api address cannot be empty');\n return;\n }else if(s3CurrentToken.value.length === 0){\n ElMessage.error('access_token is empty, please get the access_token firstly');\n return;\n }else{\n // 将 additionalHeaders 数组转换对象\n const additionalHeadersObject = additionalHeaders.reduce((map, header) => {\n if (header.name && header.value) {\n map[header.name] = header.value;\n }\n return map;\n }, {});\n const dataObject = {\n method: requestMethod.value,\n api_addr: requestUri.value,\n access_token: s3CurrentToken.value,\n access_token_type: s3TokenType.value,\n header: additionalHeadersObject,\n http_body: additionalBody.value\n };\n fetchApiData(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\nfunction isJsonResponse(header) {\n const contentType = header[\"Content-Type\"];\n return contentType != null && contentType.includes(\"application/json\");\n}\n\nfunction formatJson(jsonStr) {\n // 格式化 JSON 内容\n try {\n let resStr = JSON.stringify(JSON.parse(jsonStr), null, ' ');\n // console.log(resStr);\n return resStr;\n } catch (error) {\n // 解析失败,返回原始内容\n console.error('格式化json失败');\n return jsonStr;\n }\n}\n\nasync function addHeader(headerForm) {\n if (!headerForm)\n return;\n await headerForm.validate((valid, fields) => {\n if (valid) {\n additionalHeaders.push({name: newHeader.name, value: newHeader.value});\n // 添加之后清空\n newHeader.name = '';\n newHeader.value = '';\n } else {\n console.log('error add', fields)\n }\n })\n}\n\nfunction deleteRow(index) {\n additionalHeaders.splice(index, 1)\n}\n\nwatch(props.cfgData, (newValue) => {\n requestUri.value = newValue.userinfo_endpoint;\n s3TokenType.value = newValue.access_token_type;\n});\n\nonMounted(() => {\n requestUri.value = props.cfgData.userinfo_endpoint;\n s3TokenType.value = props.cfgData.access_token_type;\n additionalHeaders.length = 0;\n additionalBody.value = '';\n});\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n const _component_el_collapse_item = _resolveComponent(\"el-collapse-item\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_collapse = _resolveComponent(\"el-collapse\")!\n const _component_el_divider = _resolveComponent(\"el-divider\")!\n const _component_highlightjs = _resolveComponent(\"highlightjs\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 8,\n lg: 8,\n xl: 8\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_el_collapse, {\n modelValue: activeName.value,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = ($event: any) => ((activeName).value = $event)),\n accordion: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"1\"\n }, {\n title: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createVNode(_component_el_input, {\n modelValue: username.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n placeholder: \"username\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_4,\n _createVNode(_component_el_input, {\n modelValue: password.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((password).value = $event)),\n placeholder: \"password\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleGetTokenByPassword,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Get Token \")\n ]),\n _: 1\n }),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"strong\", null, [\n _createElementVNode(\"code\", null, _toDisplayString(currentToken.value), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"3\"\n }, {\n title: _withCtx(() => [\n _hoisted_7\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_8,\n _createVNode(_component_el_input, {\n modelValue: requestUri.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((requestUri).value = $event)),\n placeholder: \"Authorization Code\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_9,\n _createVNode(_component_el_select, {\n modelValue: requestMethod.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((requestMethod).value = $event)),\n onChange: handleMethodChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(methodOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, { span: 6 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (headerDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Add Headers \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, { span: 8 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (bodyDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Enter Request Body \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n span: 10,\n style: {\"margin-top\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: contentType.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((contentType).value = $event)),\n onChange: handleContentTypeChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(contentTypeOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: headerDialogVisible.value,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((headerDialogVisible).value = $event)),\n title: \"Headers\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _hoisted_10,\n _createVNode(_component_el_form, {\n ref_key: \"headerFormRef\",\n ref: headerFormRef,\n inline: true,\n model: newHeader,\n rules: headerRules,\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, {\n prop: \"name\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.name,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((newHeader.name) = $event)),\n placeholder: \"header name\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n prop: \"value\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((newHeader.value) = $event)),\n placeholder: \"header value\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { style: {\"width\":\"260px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (addHeader(headerFormRef.value))),\n style: {\"margin-bottom\":\"10px\",\"margin-left\":\"-10px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Add\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\"]),\n _createVNode(_component_el_table, {\n data: additionalHeaders,\n border: \"\",\n style: {\"width\":\"100%\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n label: \"Header Name\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.name), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n label: \"Header Value\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.value), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n fixed: \"right\",\n width: \"260\"\n }, {\n default: _withCtx((scope) => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: ($event: any) => (deleteRow(scope.$index))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Remove \")\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"data\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (headerDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_dialog, {\n modelValue: bodyDialogVisible.value,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((bodyDialogVisible).value = $event)),\n title: \"Request Body\"\n }, {\n default: _withCtx(() => [\n _hoisted_11,\n _createVNode(_component_el_input, {\n modelValue: additionalBody.value,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((additionalBody).value = $event)),\n rows: 15,\n type: \"textarea\",\n placeholder: \"Please input\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[13] || (_cache[13] = ($event: any) => (bodyDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_12,\n _createVNode(_component_el_input, {\n modelValue: s3CurrentToken.value,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((s3CurrentToken).value = $event)),\n placeholder: \"access_token\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRequestAPI,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Fetch Data \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 16,\n lg: 16,\n xl: 16\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"http-container\", { 'http-horizontal': isHorizontal.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: requestInfo.code\n }, null, 8, [\"code\"]),\n _createVNode(_component_highlightjs, {\n class: _normalizeClass({ 'bodyWrap': isWrapRes.value }),\n autodetect: \"\",\n code: requestInfo.body\n }, null, 8, [\"class\", \"code\"])\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: responseInfo.strHeader\n }, null, 8, [\"code\"]),\n (isJsonResponse(responseInfo.header))\n ? (_openBlock(), _createBlock(_component_highlightjs, {\n key: 0,\n autodetect: \"\",\n code: formatJson(responseInfo.body)\n }, null, 8, [\"code\"]))\n : (_openBlock(), _createBlock(_component_highlightjs, {\n key: 1,\n autodetect: \"\",\n code: responseInfo.body\n }, null, 8, [\"code\"]))\n ]),\n _: 1\n }),\n _createVNode(_component_el_checkbox, {\n modelValue: isWrapRes.value,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((isWrapRes).value = $event)),\n label: \"Wrap Lines\",\n size: \"large\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createVNode(_component_el_button, {\n class: \"http-button http-side-button\",\n onClick: toggleLayout\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Switch\")\n ]),\n _: 1\n })\n ], 2)\n ]),\n _: 1\n })\n ], 64))\n}\n}\n\n})","import script from \"./Password.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Password.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Password.vue?vue&type=style&index=0&id=0132958a&scoped=true&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0132958a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24c066b0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"demo-collapse\",\n id: \"main\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 1: Fetch token with Client Credentials\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Current Access Token\", -1))\nconst _hoisted_4 = { class: \"tokenArea\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, [\n /*#__PURE__*/_createTextVNode(\"Step 2: Request to API with the \"),\n /*#__PURE__*/_createElementVNode(\"code\", { style: {\"color\":\"#cd3221\"} }, \"access_token\")\n], -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Request URI\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Method\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"display\":\"flex\"} }, \"Enter the data that will be added to the body of the request:\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Access Token\", -1))\nconst _hoisted_10 = { class: \"http-left\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"REQUEST INFO\", -1))\nconst _hoisted_12 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0px\",\"position\":\"relative\"}\n}\nconst _hoisted_13 = { class: \"http-right\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"RESPONSE INFO\", -1))\nconst _hoisted_15 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0em\",\"position\":\"relative\",\"overflow\":\"auto\",\"max-height\":\"350px\",\"width\":\"100%\"}\n}\n\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport {ElMessage, FormInstance} from 'element-plus'\nimport useClipboard from 'vue-clipboard3';\nimport { fetchACTokenByClient, fetchApiData } from \"/@/api/playground\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Client',\n props: {\n cfgData: {\n type: Object,\n default: () => {\n return {\n trust_domain: [],\n authorization_endpoint: \"\",\n token_endpoint: \"\",\n userinfo_endpoint: \"\",\n default_scope: \"\",\n access_token_type: \"\",\n client_id: \"\",\n client_secret: \"\"\n };\n }\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst {toClipboard} = useClipboard();\nconst isHorizontal = ref(false);\nconst toggleLayout = () => {\n isHorizontal.value = !isHorizontal.value;\n};\n\n// Http Info\nconst requestInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n },\n header: '',\n body: '',\n code: '',\n});\nconst responseInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n status: '',\n },\n header: '',\n strHeader: '',\n body: '',\n code: '',\n});\nconst rawJsonInfo = reactive({});\nconst exampleInfo = reactive({});\nconst isWrapRes = ref(true);//控制body是否自动换行\n\nfunction updateReqAndRes() {\n requestInfo.body = atob(requestInfo.body);\n requestInfo.code = JSON.stringify(requestInfo.header, undefined, 0.1)\n //去掉首尾的{}\n requestInfo.code = requestInfo.code.slice(1, requestInfo.code.length - 1);\n requestInfo.code = requestInfo.meta.method + ' ' + requestInfo.meta.path + ' ' + requestInfo.meta.proto + requestInfo.code;\n requestInfo.code = requestInfo.code + 'Host: ' + requestInfo.meta.host;\n requestInfo.code = requestInfo.code.replaceAll('\"', '');\n\n // responseInfo.meta = res[\"data\"][\"response\"][\"meta\"];\n // responseInfo.body = res[\"data\"][\"response\"][\"body\"];\n // responseInfo.body = atob(responseInfo.body);\n responseInfo.body = decodeURIComponent(escape(window.atob(responseInfo.body)))\n // responseInfo.header = res[\"data\"][\"response\"][\"header\"];\n responseInfo.strHeader = JSON.stringify(responseInfo.header, undefined, 0.1)\n //去掉首尾的{}\n responseInfo.strHeader = responseInfo.strHeader.slice(1, responseInfo.strHeader.length - 1)\n responseInfo.strHeader = responseInfo.meta.proto + ' ' + responseInfo.meta.status + responseInfo.strHeader;\n responseInfo.strHeader = responseInfo.strHeader.replaceAll('\"', '')\n}\n\n// Step 1\nconst activeName = ref('1');\nconst currentToken = ref(\"\");\n\nasync function handleGetTokenByClient() {\n if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id cannot be empty');\n return;\n }else if(props.cfgData.client_secret.length === 0){\n ElMessage.error('client_secret cannot be empty');\n return;\n }else{\n const dataObject = {\n client_id: props.cfgData.client_id,\n client_secret: props.cfgData.client_secret\n };\n fetchACTokenByClient(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n const {access_token} = rawjson || {};\n currentToken.value = access_token??\"Uncertain\";\n s3CurrentToken.value = access_token??\"Uncertain\";\n toClipboard(access_token).finally(() => {\n ElMessage.success(`get access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n\n window.history.replaceState({}, document.title, window.location.pathname);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n }\n });\n\n }\n}\n\n\n// Step 3\nconst requestUri = ref(\"\");\nconst requestMethod = ref(\"GET\");\nconst s3CurrentToken = ref(\"\");\nconst s3TokenType = ref(\"Bearer\");\nconst contentType = ref(\"application/json\");\nconst headerDialogVisible = ref(false);\nconst bodyDialogVisible = ref(false);\nconst newHeader = reactive({\n name: '',\n value: ''\n});\nconst headerFormRef = ref()\nconst headerRules = reactive({\n name: [{ required: true, message: 'Please enter header name', trigger: 'blur' }],\n value: [{ required: true, message: 'Please enter header value', trigger: 'blur' }]\n});\nconst additionalHeaders = reactive([]);\nconst additionalBody = ref(\"\")\nconst methodOptions = [\n {label: 'GET', value: 'GET', disabled: false},\n {label: 'POST', value: 'POST', disabled: false},\n {label: 'PUT', value: 'PUT', disabled: false},\n {label: 'DELETE', value: 'DELETE', disabled: false},\n {label: 'PATCH', value: 'PATCH', disabled: true},\n {label: 'HEAD', value: 'HEAD', disabled: true},\n {label: 'OPTIONS', value: 'OPTIONS', disabled: true}\n];\n\nconst contentTypeOptions = [\n {label: 'application/json', value: 'application/json', disabled: false},\n {label: 'application/atom+xml', value: 'application/atom+xml', disabled: true},\n {label: 'text/plain', value: 'text/plain', disabled: true},\n {label: 'text/csv', value: 'text/csv', disabled: true},\n // {label: 'Custom', value: 'Custom', disabled: true}, // TODO:参考google,跳出添加header的dialog,header name = “Content-Type”,value由用户填\n]\n\nfunction handleMethodChange(value) {\n requestMethod.value = value;\n ElMessage.info(`当前请求方法: ${requestMethod.value}`);\n}\n\nfunction handleContentTypeChange(value) {\n contentType.value = value;\n ElMessage.info(`当前Content-Type: ${value}`);\n}\n\nasync function handleRequestAPI() {\n if(requestUri.value.length === 0){\n ElMessage.error('api address cannot be empty');\n return;\n }else if(s3CurrentToken.value.length === 0){\n ElMessage.error('access_token is empty, please get the access_token firstly');\n return;\n }else{\n // 将 additionalHeaders 数组转换对象\n const additionalHeadersObject = additionalHeaders.reduce((map, header) => {\n if (header.name && header.value) {\n map[header.name] = header.value;\n }\n return map;\n }, {});\n const dataObject = {\n method: requestMethod.value,\n api_addr: requestUri.value,\n access_token: s3CurrentToken.value,\n access_token_type: s3TokenType.value,\n header: additionalHeadersObject,\n http_body: additionalBody.value\n };\n fetchApiData(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\nfunction isJsonResponse(header) {\n const contentType = header[\"Content-Type\"];\n return contentType != null && contentType.includes(\"application/json\");\n}\n\nfunction formatJson(jsonStr) {\n // 格式化 JSON 内容\n try {\n let resStr = JSON.stringify(JSON.parse(jsonStr), null, ' ');\n // console.log(resStr);\n return resStr;\n } catch (error) {\n // 解析失败,返回原始内容\n console.error('格式化json失败');\n return jsonStr;\n }\n}\n\nasync function addHeader(headerForm) {\n if (!headerForm)\n return;\n await headerForm.validate((valid, fields) => {\n if (valid) {\n additionalHeaders.push({name: newHeader.name, value: newHeader.value});\n // 添加之后清空\n newHeader.name = '';\n newHeader.value = '';\n } else {\n console.log('error add', fields)\n }\n })\n}\n\nfunction deleteRow(index) {\n additionalHeaders.splice(index, 1)\n}\n\nwatch(props.cfgData, (newValue) => {\n requestUri.value = newValue.userinfo_endpoint;\n s3TokenType.value = newValue.access_token_type;\n});\n\nonMounted(() => {\n requestUri.value = props.cfgData.userinfo_endpoint;\n s3TokenType.value = props.cfgData.access_token_type;\n additionalHeaders.length = 0;\n additionalBody.value = '';\n});\n\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n const _component_el_collapse_item = _resolveComponent(\"el-collapse-item\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_collapse = _resolveComponent(\"el-collapse\")!\n const _component_el_divider = _resolveComponent(\"el-divider\")!\n const _component_highlightjs = _resolveComponent(\"highlightjs\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 8,\n lg: 8,\n xl: 8\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_el_collapse, {\n modelValue: activeName.value,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((activeName).value = $event)),\n accordion: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"1\"\n }, {\n title: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleGetTokenByClient,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Get Token \")\n ]),\n _: 1\n }),\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"strong\", null, [\n _createElementVNode(\"code\", null, _toDisplayString(currentToken.value), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"3\"\n }, {\n title: _withCtx(() => [\n _hoisted_5\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_6,\n _createVNode(_component_el_input, {\n modelValue: requestUri.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((requestUri).value = $event)),\n placeholder: \"Authorization Code\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_7,\n _createVNode(_component_el_select, {\n modelValue: requestMethod.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((requestMethod).value = $event)),\n onChange: handleMethodChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(methodOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, { span: 6 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (headerDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Add Headers \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, { span: 8 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (bodyDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Enter Request Body \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n span: 10,\n style: {\"margin-top\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: contentType.value,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((contentType).value = $event)),\n onChange: handleContentTypeChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(contentTypeOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: headerDialogVisible.value,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((headerDialogVisible).value = $event)),\n title: \"Headers\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_el_form, {\n ref_key: \"headerFormRef\",\n ref: headerFormRef,\n inline: true,\n model: newHeader,\n rules: headerRules,\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, {\n prop: \"name\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.name,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((newHeader.name) = $event)),\n placeholder: \"header name\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n prop: \"value\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((newHeader.value) = $event)),\n placeholder: \"header value\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { style: {\"width\":\"260px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[7] || (_cache[7] = ($event: any) => (addHeader(headerFormRef.value))),\n style: {\"margin-bottom\":\"10px\",\"margin-left\":\"-10px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Add\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\"]),\n _createVNode(_component_el_table, {\n data: additionalHeaders,\n border: \"\",\n style: {\"width\":\"100%\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n label: \"Header Name\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.name), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n label: \"Header Value\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.value), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n fixed: \"right\",\n width: \"260\"\n }, {\n default: _withCtx((scope) => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: ($event: any) => (deleteRow(scope.$index))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Remove \")\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"data\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (headerDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_dialog, {\n modelValue: bodyDialogVisible.value,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((bodyDialogVisible).value = $event)),\n title: \"Request Body\"\n }, {\n default: _withCtx(() => [\n _hoisted_8,\n _createVNode(_component_el_input, {\n modelValue: additionalBody.value,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((additionalBody).value = $event)),\n rows: 15,\n type: \"textarea\",\n placeholder: \"Please input\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[11] || (_cache[11] = ($event: any) => (bodyDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_9,\n _createVNode(_component_el_input, {\n modelValue: s3CurrentToken.value,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((s3CurrentToken).value = $event)),\n placeholder: \"access_token\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRequestAPI,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Fetch Data \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 16,\n lg: 16,\n xl: 16\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"http-container\", { 'http-horizontal': isHorizontal.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: requestInfo.code\n }, null, 8, [\"code\"]),\n _createVNode(_component_highlightjs, {\n class: _normalizeClass({ 'bodyWrap': isWrapRes.value }),\n autodetect: \"\",\n code: requestInfo.body\n }, null, 8, [\"class\", \"code\"])\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: responseInfo.strHeader\n }, null, 8, [\"code\"]),\n (isJsonResponse(responseInfo.header))\n ? (_openBlock(), _createBlock(_component_highlightjs, {\n key: 0,\n autodetect: \"\",\n code: formatJson(responseInfo.body)\n }, null, 8, [\"code\"]))\n : (_openBlock(), _createBlock(_component_highlightjs, {\n key: 1,\n autodetect: \"\",\n code: responseInfo.body\n }, null, 8, [\"code\"]))\n ]),\n _: 1\n }),\n _createVNode(_component_el_checkbox, {\n modelValue: isWrapRes.value,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((isWrapRes).value = $event)),\n label: \"Wrap Lines\",\n size: \"large\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createVNode(_component_el_button, {\n class: \"http-button http-side-button\",\n onClick: toggleLayout\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Switch\")\n ]),\n _: 1\n })\n ], 2)\n ]),\n _: 1\n })\n ], 64))\n}\n}\n\n})","import script from \"./Client.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Client.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Client.vue?vue&type=style&index=0&id=24c066b0&scoped=true&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24c066b0\"]])\n\nexport default __exports__","import {http} from \"/@/utils/request\";\nimport {getApiBase} from \"/@/utils/x\";\n\ntype Result = {\n code?: number;\n message?: string;\n data?: object | any;\n};\n\n/** 获取当前配置信息 */\nexport const fetchConfig = () => {\n return http.get(\"/config\");\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3050afba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"demo-collapse\",\n id: \"main\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 1: Request for Device Flow Authorization\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Authorization Endpoint\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Scope\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Response Type\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Grant Url\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 2: Fetch token with Device Flow\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"User Code\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"display\":\"flex\"} }, \"The user code will expire in 5 minutes\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"margin-left\":\"-10px\"} }, \"Fresh User Code\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\",\"margin-top\":\"5px\"} }, \"Verification Uri\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"display\":\"flex\"} }, \"Go to the following link or scan the QR code,then enter the user code above\", -1))\nconst _hoisted_13 = [\"src\"]\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Refresh Token\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Current Access Token\", -1))\nconst _hoisted_16 = {\n key: 0,\n class: \"tokenArea\"\n}\nconst _hoisted_17 = {\n key: 1,\n class: \"tokenArea\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, [\n /*#__PURE__*/_createElementVNode(\"code\", null, \"Waiting for authorization...\")\n], -1))\nconst _hoisted_19 = [\n _hoisted_18\n]\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, [\n /*#__PURE__*/_createTextVNode(\"Step 3: Request to API with the \"),\n /*#__PURE__*/_createElementVNode(\"code\", { style: {\"color\":\"#cd3221\"} }, \"access_token\")\n], -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Request URI\", -1))\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Method\", -1))\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"display\":\"flex\"} }, \"Enter the data that will be added to the body of the request:\", -1))\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Access Token\", -1))\nconst _hoisted_25 = { class: \"http-left\" }\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"REQUEST INFO\", -1))\nconst _hoisted_27 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0px\",\"position\":\"relative\"}\n}\nconst _hoisted_28 = { class: \"http-right\" }\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"RESPONSE INFO\", -1))\nconst _hoisted_30 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0em\",\"position\":\"relative\",\"overflow\":\"auto\",\"max-height\":\"300px\",\"width\":\"100%\"}\n}\n\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport {ElMessage, FormInstance} from 'element-plus'\nimport { LocalStorageService } from \"/@/utils/persistence\"\nimport useClipboard from 'vue-clipboard3';\nimport { fetchACTokenByDevice, fetchApiData, fetchRefreshToken} from \"/@/api/playground\";\nimport * as QRCode from 'qrcode'\nimport axios from \"axios\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Device',\n props: {\n cfgData: {\n type: Object,\n default: () => {\n return {\n trust_domain: [],\n authorization_endpoint: \"\",\n token_endpoint: \"\",\n userinfo_endpoint: \"\",\n default_scope: \"\",\n access_token_type: \"\",\n client_id: \"\",\n client_secret: \"\"\n };\n }\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst {toClipboard} = useClipboard();\nconst isHorizontal = ref(false);\nconst toggleLayout = () => {\n isHorizontal.value = !isHorizontal.value;\n};\n\n// Http Info\nconst requestInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n },\n header: '',\n body: '',\n code: '',\n});\nconst responseInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n status: '',\n },\n header: '',\n strHeader: '',\n body: '',\n code: '',\n});\nconst rawJsonInfo = reactive({});\nconst exampleInfo = reactive({});\nconst isWrapRes = ref(true);\n\nfunction updateReqAndRes() {\n requestInfo.body = atob(requestInfo.body);\n requestInfo.code = JSON.stringify(requestInfo.header, undefined, 0.1)\n //去掉首尾的{}\n requestInfo.code = requestInfo.code.slice(1, requestInfo.code.length - 1);\n requestInfo.code = requestInfo.meta.method + ' ' + requestInfo.meta.path + ' ' + requestInfo.meta.proto + requestInfo.code;\n requestInfo.code = requestInfo.code + 'Host: ' + requestInfo.meta.host;\n requestInfo.code = requestInfo.code.replaceAll('\"', '');\n\n // responseInfo.meta = res[\"data\"][\"response\"][\"meta\"];\n // responseInfo.body = res[\"data\"][\"response\"][\"body\"];\n // responseInfo.body = atob(responseInfo.body);\n responseInfo.body = decodeURIComponent(escape(window.atob(responseInfo.body)))\n // responseInfo.header = res[\"data\"][\"response\"][\"header\"];\n responseInfo.strHeader = JSON.stringify(responseInfo.header, undefined, 0.1)\n //去掉首尾的{}\n responseInfo.strHeader = responseInfo.strHeader.slice(1, responseInfo.strHeader.length - 1)\n responseInfo.strHeader = responseInfo.meta.proto + ' ' + responseInfo.meta.status + responseInfo.strHeader;\n responseInfo.strHeader = responseInfo.strHeader.replaceAll('\"', '')\n}\n\n// Step 1\nconst activeName = ref('1');\nconst s1Data = reactive({\n authorization_endpoint: \"\",\n // redirect_uri: window.location.href.split(\"?\")[0],\n scope: \"\",\n response_type: \"device_code\",\n // state: \"\",\n});\n\nconst initialAddress = ref(\"\");\n\n// 修改的同时拼接成url显示在Grant Url中\nfunction handleS1Change() {\n initialAddress.value = s1Data.authorization_endpoint.concat(\n \"?response_type=device_code\",\n s1Data.scope?.length > 0 ? \"&scope=\".concat(s1Data.scope) : \"\",\n props.cfgData.client_id?.length > 0 ? \"&client_id=\".concat(props.cfgData.client_id) : \"\"\n );\n}\n\nfunction handleDeviceFlow() {\n if (s1Data.scope.length === 0) {\n ElMessage.error('scope cannot be empty');\n return;\n } else {\n if (props.cfgData.client_id.length === 0) {\n ElMessage.error('client_id is empty, please click the config button on the right side, and check the configuration');\n return;\n } else {\n const lss = new LocalStorageService();\n const ci = {key: \"id\", value: props.cfgData.client_id};\n const cs = {key: \"secret\", value: props.cfgData.client_secret};\n lss.addItem(ci);\n if(cs.value.length > 0){\n lss.addItem(cs);\n }\n // window.location.href = initialAddress.value;\n axios.post(initialAddress.value).then((res) => {\n user_code.value = res.data.user_code\n verification_uri.value = res.data.verification_uri\n device_code.value = res.data.device_code\n expires_in.value = res.data.expires_in\n // 检查是否获取到user_code,若长度不为0,则跳到Step 2\n if (device_code.value.length === 0 || user_code.value.length === 0 || verification_uri.value.length === 0) {\n ElMessage.error(\"Authorization failed. Check your configurations.\");\n return;\n }\n activeName.value = '2';\n // 轮询是否获取到token\n tokenAvailablelong(expires_in.value);\n }).catch((err) => {\n console.error('get user code failed: ', err)\n })\n }\n }\n}\n\n// Step 2\nconst currentToken = ref(\"\");\nconst currentRefreshToken = ref(\"\");\nconst verification_uri = ref(\"\");\nconst user_code = ref(\"\");\nconst device_code = ref(\"\");\nconst expires_in = ref(\"\");\nconst interval = ref(\"\");\n\nconst timerId = ref(null);\nconst qrCodeSrc = ref(\"\");\n\n// 长轮询\nfunction tokenAvailablelong(expire) {\n const dataObject = {\n client_id: props.cfgData.client_id,\n code: device_code.value,\n response_type: \"device_code\",\n expires_in: expire\n };\n fetchACTokenByDevice(dataObject).then(({code, msg, data}) => {\n if (code === 0) {\n const {request, response, rawjson, example} = data;\n const {access_token, refresh_token} = rawjson || {};\n if (access_token !== undefined && access_token !== null) {\n currentToken.value = access_token;\n currentRefreshToken.value = refresh_token;\n s3CurrentToken.value = access_token;\n toClipboard(access_token).finally(() => {\n ElMessage.success(`get access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n window.history.replaceState({}, document.title, window.location.pathname);\n updateReqAndRes();\n } else {\n ElMessage.error(\"Get token failed. Please refresh the user code!\");\n resetData();\n }\n } else if (code === -1) {\n ElMessage.error('Authorization timeout. Please refresh the user code!')\n resetData();\n }\n }).catch((error) => {\n console.error('Error checking token:', error);\n })\n}\n\nfunction resetData() {\n verification_uri.value = \"\";\n user_code.value = \"\";\n device_code.value = \"\";\n expires_in.value = \"\";\n interval.value = \"\";\n currentToken.value = \"\";\n currentRefreshToken.value = \"\";\n}\n\nfunction handleRefreshToken() {\n if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id is empty, please click the config button on the right side, and check the configuration');\n return;\n }\n else if(props.cfgData.client_secret.length === 0){\n ElMessage.error('client_secret is empty, please click the config button on the right side, and check the configuration');\n return;\n }else if(currentRefreshToken.value.length === 0){\n ElMessage.error('refresh_token is empty, please get the access_token firstly');\n return;\n }else{\n const dataObject = {\n refresh_token: currentRefreshToken.value,\n client_id: props.cfgData.client_id,\n client_secret: props.cfgData.client_secret\n };\n\n fetchRefreshToken(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n const {access_token, refresh_token} = rawjson || {};\n currentToken.value = access_token??\"Uncertain\";\n currentRefreshToken.value = refresh_token??\"Uncertain\";\n s3CurrentToken.value = access_token??\"Uncertain\";\n toClipboard(access_token).finally(() => {\n ElMessage.success(`refresh access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\n// Step 3\nconst requestUri = ref(\"\");\nconst requestMethod = ref(\"GET\");\nconst s3CurrentToken = ref(\"\");\nconst s3TokenType = ref(\"Bearer\");\nconst contentType = ref(\"application/json\");\nconst headerDialogVisible = ref(false);\nconst bodyDialogVisible = ref(false);\nconst newHeader = reactive({\n name: '',\n value: ''\n});\nconst headerFormRef = ref()\nconst headerRules = reactive({\n name: [{ required: true, message: 'Please enter header name', trigger: 'blur' }],\n value: [{ required: true, message: 'Please enter header value', trigger: 'blur' }]\n});\nconst additionalHeaders = reactive([]);\nconst additionalBody = ref(\"\")\n\nconst methodOptions = [\n {label: 'GET', value: 'GET', disabled: false},\n {label: 'POST', value: 'POST', disabled: false},\n {label: 'PUT', value: 'PUT', disabled: false},\n {label: 'DELETE', value: 'DELETE', disabled: false},\n {label: 'PATCH', value: 'PATCH', disabled: true},\n {label: 'HEAD', value: 'HEAD', disabled: true},\n {label: 'OPTIONS', value: 'OPTIONS', disabled: true}\n];\n\nconst contentTypeOptions = [\n {label: 'application/json', value: 'application/json', disabled: false},\n {label: 'application/atom+xml', value: 'application/atom+xml', disabled: true},\n {label: 'text/plain', value: 'text/plain', disabled: true},\n {label: 'text/csv', value: 'text/csv', disabled: true},\n // {label: 'Custom', value: 'Custom', disabled: true}, // TODO:参考google playground\n]\n\nfunction handleMethodChange(value) {\n requestMethod.value = value;\n ElMessage.info(`当前请求方法: ${value}`);\n}\n\nfunction handleContentTypeChange(value) {\n contentType.value = value;\n ElMessage.info(`当前Content-Type: ${value}`);\n}\n\nasync function handleRequestAPI() {\n if(requestUri.value.length === 0){\n ElMessage.error('api address cannot be empty');\n return;\n }else if(s3CurrentToken.value.length === 0){\n ElMessage.error('access_token is empty, please get the access_token firstly');\n return;\n }else{\n // 将 additionalHeaders 数组转换对象\n const additionalHeadersObject = additionalHeaders.reduce((map, header) => {\n if (header.name && header.value) {\n map[header.name] = header.value;\n }\n return map;\n }, {});\n const dataObject = {\n method: requestMethod.value,\n api_addr: requestUri.value,\n access_token: s3CurrentToken.value,\n access_token_type: s3TokenType.value,\n header: additionalHeadersObject,\n http_body: additionalBody.value\n };\n fetchApiData(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\nfunction isJsonResponse(header) {\n const contentType = header[\"Content-Type\"];\n return contentType != null && contentType.includes(\"application/json\");\n}\n\nfunction formatJson(jsonStr) {\n // 格式化 JSON 内容\n try {\n let resStr = JSON.stringify(JSON.parse(jsonStr), null, ' ');\n return resStr;\n } catch (error) {\n // 解析失败,返回原始内容\n console.error('格式化json失败');\n return jsonStr;\n }\n}\nasync function addHeader(headerForm) {\n if (!headerForm)\n return;\n await headerForm.validate((valid, fields) => {\n if (valid) {\n additionalHeaders.push({name: newHeader.name, value: newHeader.value});\n // 添加之后清空\n newHeader.name = '';\n newHeader.value = '';\n } else {\n console.log('error add', fields)\n }\n })\n}\n\nfunction deleteRow(index) {\n additionalHeaders.splice(index, 1)\n}\n\nasync function generateQRCode(url) {\n try {\n qrCodeSrc.value = await QRCode.toDataURL(url);\n console.log()\n } catch (err) {\n console.error('Failed to generate QR code: ', err)\n }\n}\n\nwatch(props.cfgData, (newValue) => {\n s1Data.authorization_endpoint = newValue.authorization_endpoint;\n s1Data.scope = newValue.default_scope;\n initialAddress.value = newValue.authorization_endpoint.concat(\n \"?response_type=device_code\",\n newValue.default_scope?.length > 0 ? \"&scope=\".concat(newValue.default_scope) : \"\",\n newValue.client_id?.length > 0 ? \"&client_id=\".concat(newValue.client_id) : \"\",\n // \"&redirect_uri=\",\n // s1Data.redirect_uri,\n // s1Data.state?.length > 0 ? \"&state=\".concat(s1Data.state) : \"\"\n );\n requestUri.value = newValue.userinfo_endpoint;\n s3TokenType.value = newValue.access_token_type;\n});\n\nwatch(verification_uri, (newValue) => {\n generateQRCode(newValue);\n});\n\nonMounted(() => {\n requestUri.value = props.cfgData.userinfo_endpoint;\n s3TokenType.value = props.cfgData.access_token_type;\n additionalHeaders.length = 0;\n additionalBody.value = '';\n\n if (verification_uri.value.length != 0) {\n generateQRCode(verification_uri.value);\n }\n});\n\n\nconst agS1ContainerRef = ref(null);\nconst agS1Ref = ref(null);\nconst handleDrag = (floatButton, container) => {\n // todo: drag float button\n};\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n const _component_el_collapse_item = _resolveComponent(\"el-collapse-item\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_collapse = _resolveComponent(\"el-collapse\")!\n const _component_el_divider = _resolveComponent(\"el-divider\")!\n const _component_highlightjs = _resolveComponent(\"highlightjs\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 8,\n lg: 8,\n xl: 8\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_el_collapse, {\n modelValue: activeName.value,\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = ($event: any) => ((activeName).value = $event)),\n accordion: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"1\"\n }, {\n title: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, {\n class: \"fitSide\",\n ref_key: \"agS1ContainerRef\",\n ref: agS1ContainerRef\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createVNode(_component_el_input, {\n modelValue: s1Data.authorization_endpoint,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((s1Data.authorization_endpoint) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_4,\n _createVNode(_component_el_input, {\n modelValue: s1Data.scope,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((s1Data.scope) = $event)),\n placeholder: \"Scope\",\n onInput: handleS1Change,\n onBlur: handleS1Change\n }, null, 8, [\"modelValue\"]),\n _hoisted_5,\n _createVNode(_component_el_input, {\n modelValue: s1Data.response_type,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((s1Data.response_type) = $event)),\n placeholder: \"Response Type\",\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_6,\n _createVNode(_component_el_input, {\n modelValue: initialAddress.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((initialAddress).value = $event)),\n type: \"textarea\",\n autosize: { minRows: 4, maxRows: 6 },\n placeholder: \"Request grant code address\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n ref_key: \"agS1Ref\",\n ref: agS1Ref,\n type: \"primary\",\n onClick: handleDeviceFlow,\n class: \"n-button side-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" GO \")\n ]),\n _: 1\n }, 512)\n ]),\n _: 1\n }, 512)\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"2\"\n }, {\n title: _withCtx(() => [\n _hoisted_7\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_8,\n _hoisted_9,\n _createVNode(_component_el_input, {\n modelValue: user_code.value,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((user_code).value = $event)),\n placeholder: \"User Code\"\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleDeviceFlow,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_11,\n _hoisted_12,\n _createVNode(_component_el_input, {\n modelValue: verification_uri.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((verification_uri).value = $event)),\n placeholder: \"Verification Uri\"\n }, null, 8, [\"modelValue\"]),\n _createElementVNode(\"div\", null, [\n (qrCodeSrc.value != '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: qrCodeSrc.value,\n alt: \"QR Code\"\n }, null, 8, _hoisted_13))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_14,\n _createVNode(_component_el_input, {\n modelValue: currentRefreshToken.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((currentRefreshToken).value = $event)),\n placeholder: \"Refresh Token\"\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRefreshToken,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Refresh Token \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_15,\n (currentToken.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"strong\", null, [\n _createElementVNode(\"code\", null, _toDisplayString(currentToken.value), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, _hoisted_19))\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"3\"\n }, {\n title: _withCtx(() => [\n _hoisted_20\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_21,\n _createVNode(_component_el_input, {\n modelValue: requestUri.value,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((requestUri).value = $event)),\n placeholder: \"Authorization Code\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_22,\n _createVNode(_component_el_select, {\n modelValue: requestMethod.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((requestMethod).value = $event)),\n onChange: handleMethodChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(methodOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, { span: 6 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (headerDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Add Headers \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, { span: 8 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (bodyDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Enter Request Body \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n span: 10,\n style: {\"margin-top\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: contentType.value,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((contentType).value = $event)),\n onChange: handleContentTypeChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(contentTypeOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: headerDialogVisible.value,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = ($event: any) => ((headerDialogVisible).value = $event)),\n title: \"Headers\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_el_form, {\n ref_key: \"headerFormRef\",\n ref: headerFormRef,\n inline: true,\n model: newHeader,\n rules: headerRules,\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, {\n prop: \"name\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.name,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((newHeader.name) = $event)),\n placeholder: \"header name\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n prop: \"value\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.value,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((newHeader.value) = $event)),\n placeholder: \"header value\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { style: {\"width\":\"260px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[14] || (_cache[14] = ($event: any) => (addHeader(headerFormRef.value))),\n style: {\"margin-bottom\":\"10px\",\"margin-left\":\"-10px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Add\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\"]),\n _createVNode(_component_el_table, {\n data: additionalHeaders,\n border: \"\",\n style: {\"width\":\"100%\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n label: \"Header Name\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.name), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n label: \"Header Value\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.value), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n fixed: \"right\",\n width: \"260\"\n }, {\n default: _withCtx((scope) => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: ($event: any) => (deleteRow(scope.$index))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Remove \")\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"data\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[15] || (_cache[15] = ($event: any) => (headerDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_dialog, {\n modelValue: bodyDialogVisible.value,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = ($event: any) => ((bodyDialogVisible).value = $event)),\n title: \"Request Body\"\n }, {\n default: _withCtx(() => [\n _hoisted_23,\n _createVNode(_component_el_input, {\n modelValue: additionalBody.value,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((additionalBody).value = $event)),\n rows: 15,\n type: \"textarea\",\n placeholder: \"Please input\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[18] || (_cache[18] = ($event: any) => (bodyDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_24,\n _createVNode(_component_el_input, {\n modelValue: s3CurrentToken.value,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((s3CurrentToken).value = $event)),\n placeholder: \"access_token\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRequestAPI,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Fetch Data \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 16,\n lg: 16,\n xl: 16\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"http-container\", { 'http-horizontal': isHorizontal.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: requestInfo.code\n }, null, 8, [\"code\"]),\n _createVNode(_component_highlightjs, {\n class: _normalizeClass({ 'bodyWrap': isWrapRes.value }),\n autodetect: \"\",\n code: requestInfo.body\n }, null, 8, [\"class\", \"code\"])\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_29\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_30, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: responseInfo.strHeader\n }, null, 8, [\"code\"]),\n (isJsonResponse(responseInfo.header))\n ? (_openBlock(), _createBlock(_component_highlightjs, {\n key: 0,\n autodetect: \"\",\n code: formatJson(responseInfo.body)\n }, null, 8, [\"code\"]))\n : (_openBlock(), _createBlock(_component_highlightjs, {\n key: 1,\n autodetect: \"\",\n code: responseInfo.body\n }, null, 8, [\"code\"]))\n ]),\n _: 1\n }),\n _createVNode(_component_el_checkbox, {\n modelValue: isWrapRes.value,\n \"onUpdate:modelValue\": _cache[22] || (_cache[22] = ($event: any) => ((isWrapRes).value = $event)),\n label: \"Wrap Lines\",\n size: \"large\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createVNode(_component_el_button, {\n class: \"http-button http-side-button\",\n onClick: toggleLayout\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Switch\")\n ]),\n _: 1\n })\n ], 2)\n ]),\n _: 1\n })\n ], 64))\n}\n}\n\n})","import script from \"./Device.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Device.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Device.vue?vue&type=style&index=0&id=3050afba&scoped=true&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3050afba\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bfd07ebe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"demo-collapse\",\n id: \"main\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 1: Request for Device Flow Authorization\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Authorization Endpoint\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Redirect Uri\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Scope\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Response Type\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"State\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Code Verifier\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"display\":\"flex\"} }, \"A random string of 26 letters (case sensitive) with a length of 32 bits\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Code Challenge\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Grant Url\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, \"Step 2: Fetch token with Authorization Code\", -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Authorization Code\", -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Refresh Token\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Current Access Token\", -1))\nconst _hoisted_16 = { class: \"tokenArea\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stepTitle\" }, [\n /*#__PURE__*/_createTextVNode(\"Step 3: Request to API with the \"),\n /*#__PURE__*/_createElementVNode(\"code\", { style: {\"color\":\"#cd3221\"} }, \"access_token\")\n], -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Request URI\", -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Method\", -1))\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"display\":\"flex\"} }, \"Enter the data that will be added to the body of the request:\", -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"text-align\":\"left\",\"margin\":\"0\"} }, \"Access Token\", -1))\nconst _hoisted_22 = { class: \"http-left\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"REQUEST INFO\", -1))\nconst _hoisted_24 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0px\",\"position\":\"relative\"}\n}\nconst _hoisted_25 = { class: \"http-right\" }\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"RESPONSE INFO\", -1))\nconst _hoisted_27 = {\n class: \"http-content\",\n style: {\"text-align\":\"start\",\"padding\":\"0em\",\"position\":\"relative\",\"overflow\":\"auto\",\"max-height\":\"300px\",\"width\":\"100%\"}\n}\n\nimport {onMounted, reactive, ref, toRefs, watch} from 'vue'\nimport {ElMessage, FormInstance} from 'element-plus'\nimport { LocalStorageService } from \"/@/utils/persistence\"\nimport useClipboard from 'vue-clipboard3';\nimport {fetchACTokenByPkce, fetchApiData, fetchRefreshToken} from \"/@/api/playground\";\nimport CryptoJS from 'crypto-js'\nimport { generateRandomString } from \"/@/utils/x\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PKCE',\n props: {\n cfgData: {\n type: Object,\n default: () => {\n return {\n trust_domain: [],\n authorization_endpoint: \"\",\n token_endpoint: \"\",\n userinfo_endpoint: \"\",\n default_scope: \"\",\n access_token_type: \"\",\n client_id: \"\",\n client_secret: \"\"\n };\n }\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst {toClipboard} = useClipboard();\nconst isHorizontal = ref(false);\nconst toggleLayout = () => {\n isHorizontal.value = !isHorizontal.value;\n};\n\n// Http Info\nconst requestInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n },\n header: '',\n body: '',\n code: '',\n});\nconst responseInfo = reactive({\n meta: {\n method: '',\n path: '',\n proto: '',\n host: '',\n status: '',\n },\n header: '',\n strHeader: '',\n body: '',\n code: '',\n});\nconst rawJsonInfo = reactive({});\nconst exampleInfo = reactive({});\nconst isWrapRes = ref(true);\n\nfunction updateReqAndRes() {\n requestInfo.body = atob(requestInfo.body);\n requestInfo.code = JSON.stringify(requestInfo.header, undefined, 0.1)\n //去掉首尾的{}\n requestInfo.code = requestInfo.code.slice(1, requestInfo.code.length - 1);\n requestInfo.code = requestInfo.meta.method + ' ' + requestInfo.meta.path + ' ' + requestInfo.meta.proto + requestInfo.code;\n requestInfo.code = requestInfo.code + 'Host: ' + requestInfo.meta.host;\n requestInfo.code = requestInfo.code.replaceAll('\"', '');\n\n // responseInfo.meta = res[\"data\"][\"response\"][\"meta\"];\n // responseInfo.body = res[\"data\"][\"response\"][\"body\"];\n // responseInfo.body = atob(responseInfo.body);\n responseInfo.body = decodeURIComponent(escape(window.atob(responseInfo.body)))\n // responseInfo.header = res[\"data\"][\"response\"][\"header\"];\n responseInfo.strHeader = JSON.stringify(responseInfo.header, undefined, 0.1)\n //去掉首尾的{}\n responseInfo.strHeader = responseInfo.strHeader.slice(1, responseInfo.strHeader.length - 1)\n responseInfo.strHeader = responseInfo.meta.proto + ' ' + responseInfo.meta.status + responseInfo.strHeader;\n responseInfo.strHeader = responseInfo.strHeader.replaceAll('\"', '')\n}\n\n// Step 1\nconst activeName = ref('1');\nconst s1Data = reactive({\n authorization_endpoint: \"\",\n redirect_uri: window.location.href.split(\"?\")[0],\n scope: \"\",\n response_type: \"code\",\n code_verifier: \"\",\n code_challenge: \"\",\n state: \"\",\n});\n\nconst initialAddress = ref(\"\");\n\n// 修改的同时拼接成url显示在Grant Url中\nfunction handleS1Change() {\n initialAddress.value = s1Data.authorization_endpoint.concat(\n \"?response_type=code\",\n s1Data.scope?.length > 0 ? \"&scope=\".concat(s1Data.scope) : \"\",\n props.cfgData.client_id?.length > 0 ? \"&client_id=\".concat(props.cfgData.client_id) : \"\",\n \"&redirect_uri=\", s1Data.redirect_uri,\n s1Data.state?.length > 0 ? \"&state=\".concat(s1Data.state) : \"\",\n s1Data.code_challenge.length > 0 ? \"&code_challenge=\".concat(s1Data.code_challenge) : \"\",\n \"&code_challenge_method=S256\"\n );\n}\n\nfunction handleCodeVerifierChange() {\n // 验证s1Data.code_verifier字符串是否满足以下条件:\n // 1.字符在A-Za-z范围内\n // 2.长度为32\n const isLengthValid = s1Data.code_verifier.length === 32;\n const isCharacterValid = /^[A-Za-z0-9]+$/.test(s1Data.code_verifier);\n\n if (!isLengthValid) {\n ElMessage.error(`Code verifier's length must be 32 characters.Current length: ${s1Data.code_verifier.length}`);\n s1Data.code_challenge = \"\";\n } else if (!isCharacterValid) {\n ElMessage.error(`Code verifier must contain only alphanumeric characters`);\n s1Data.code_challenge = \"\";\n } else {\n // code_verifier changes\n localStorage.setItem('code_verifier', s1Data.code_verifier)\n s1Data.code_challenge = generateCodeChallenge(s1Data.code_verifier);\n }\n}\n\n// 生成code_verify\nfunction generateCodeverify() {\n return generateRandomStringByLength(32);\n}\n\nfunction handleRefreshCodeVerifier() {\n s1Data.code_verifier = generateCodeverify();\n localStorage.setItem('code_verifier', s1Data.code_verifier)\n s1Data.code_challenge = generateCodeChallenge(s1Data.code_verifier);\n}\n\n// 生成 code_hallenge\nfunction generateCodeChallenge(code_verifier: string) {\n return base64URL(CryptoJS.SHA256(code_verifier))\n}\n\n// 生成随机字符串\nfunction generateRandomStringByLength(length) {\n let text = ''\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n for (let i = 0; i < length; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length))\n }\n return text\n}\n\n// 将字符串base64url编码\nfunction base64URL(str: CryptoJS.lib.WordArray) {\n return str\n .toString(CryptoJS.enc.Base64)\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n}\n\n// 将字符串加密为Base64格式\n// function base64Str(str: string) {\n// return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str));\n// }\n\nfunction getAuthorizationCode() {\n if(s1Data.scope.length === 0){\n ElMessage.error('scope cannot be empty');\n return;\n }else if(s1Data.state.length === 0){\n ElMessage.error('state cannot be empty');\n return;\n }else{\n if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id is empty, please click the config button on the right side, and check the configuration');\n return;\n }else{\n const lss = new LocalStorageService();\n const ci = {key: \"id\", value: props.cfgData.client_id};\n // const cs = {key: \"secret\", value: props.cfgData.client_secret};\n lss.addItem(ci);\n // if(cs.value.length > 0){\n // lss.addItem(cs);\n // }\n window.location.href = initialAddress.value;\n }\n }\n}\n\n// Step 2\nconst code = ref(\"\");\nconst state = ref(\"\");\nconst code_verifier = ref(\"\");\n// const code_challenge = ref(s1Data.code_challenge);\nconst currentToken = ref(\"\");\nconst currentRefreshToken = ref(\"\");\n\nasync function handleGetToken() {\n if(code.value.length === 0){\n ElMessage.error('code cannot be empty');\n return;\n }else if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id cannot be empty');\n return;\n }\n // else if(props.cfgData.client_secret.length === 0){\n // ElMessage.error('client_secret cannot be empty');\n // return;\n // }\n else{\n code_verifier.value = s1Data.code_verifier\n const dataObject = {\n code: code.value,\n client_id: props.cfgData.client_id,\n // client_secret: props.cfgData.client_secret,\n code_verifier: code_verifier.value,\n scope: props.cfgData.default_scope,\n redirect_uri: window.location.href.split(\"?\")[0],\n };\n fetchACTokenByPkce(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n const {access_token, refresh_token} = rawjson || {};\n if (access_token !== undefined && access_token !== null) {\n currentToken.value = access_token;\n currentRefreshToken.value = refresh_token;\n s3CurrentToken.value = access_token;\n toClipboard(access_token).finally(() => {\n ElMessage.success(`get access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n window.history.replaceState({}, document.title, window.location.pathname);\n updateReqAndRes();\n } else {\n ElMessage.error(\"Get token failed. Please go back to Step 1 to refresh the code verifier!\");\n resetData()\n }\n }else{\n ElMessage.error(msg);\n }\n });\n }\n}\n\nfunction resetData() {\n currentToken.value = \"\";\n currentRefreshToken.value = \"\";\n s3CurrentToken.value = '';\n code.value = '';\n state.value = '';\n s1Data.code_verifier = '';\n code_verifier.value = '';\n localStorage.setItem('code_verifier', '');\n console.log('清空后的值: ' + localStorage.getItem('code_verifier'))\n s1Data.code_challenge = '';\n}\n\nfunction handleRefreshToken() {\n if(props.cfgData.client_id.length === 0){\n ElMessage.error('client_id is empty, please click the config button on the right side, and check the configuration');\n return;\n }\n // else if(props.cfgData.client_secret.length === 0){\n // ElMessage.error('client_secret, please click the config button on the right side, and check the configuration');\n // return;\n // }\n else if(currentRefreshToken.value.length === 0){\n ElMessage.error('refresh_token is empty, please get the access_token firstly');\n return;\n }else{\n const dataObject = {\n refresh_token: currentRefreshToken.value,\n client_id: props.cfgData.client_id,\n // client_secret: props.cfgData.client_secret\n };\n fetchRefreshToken(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n const {access_token, refresh_token} = rawjson || {};\n if (access_token !== undefined && access_token !== null) {\n currentToken.value = access_token;\n currentRefreshToken.value = refresh_token;\n s3CurrentToken.value = access_token;\n toClipboard(access_token).finally(() => {\n ElMessage.success(`get access_token success: ${access_token}`);\n });\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n window.history.replaceState({}, document.title, window.location.pathname);\n updateReqAndRes();\n } else {\n ElMessage.error(\"Refresh token failed. Please retry\");\n }\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\n// Step 3\nconst requestUri = ref(\"\");\nconst requestMethod = ref(\"GET\");\nconst s3CurrentToken = ref(\"\");\nconst s3TokenType = ref(\"Bearer\");\nconst contentType = ref(\"application/json\");\nconst headerDialogVisible = ref(false);\nconst bodyDialogVisible = ref(false);\nconst newHeader = reactive({\n name: '',\n value: ''\n});\nconst headerFormRef = ref()\nconst headerRules = reactive({\n name: [{ required: true, message: 'Please enter header name', trigger: 'blur' }],\n value: [{ required: true, message: 'Please enter header value', trigger: 'blur' }]\n});\nconst additionalHeaders = reactive([]);\nconst additionalBody = ref(\"\")\n\nconst methodOptions = [\n {label: 'GET', value: 'GET', disabled: false},\n {label: 'POST', value: 'POST', disabled: false},\n {label: 'PUT', value: 'PUT', disabled: false},\n {label: 'DELETE', value: 'DELETE', disabled: false},\n {label: 'PATCH', value: 'PATCH', disabled: true},\n {label: 'HEAD', value: 'HEAD', disabled: true},\n {label: 'OPTIONS', value: 'OPTIONS', disabled: true}\n];\n\nconst contentTypeOptions = [\n {label: 'application/json', value: 'application/json', disabled: false},\n {label: 'application/atom+xml', value: 'application/atom+xml', disabled: true},\n {label: 'text/plain', value: 'text/plain', disabled: true},\n {label: 'text/csv', value: 'text/csv', disabled: true},\n // {label: 'Custom', value: 'Custom', disabled: true}, // TODO:参考google,跳出添加header的dialog,header name = “Content-Type”,value由用户填\n]\n\nfunction handleMethodChange(value) {\n requestMethod.value = value;\n ElMessage.info(`当前请求方法: ${value}`);\n}\n\nfunction handleContentTypeChange(value) {\n contentType.value = value;\n ElMessage.info(`当前Content-Type: ${value}`);\n}\n\nasync function handleRequestAPI() {\n if(requestUri.value.length === 0){\n ElMessage.error('api address cannot be empty');\n return;\n }else if(s3CurrentToken.value.length === 0){\n ElMessage.error('access_token is empty, please get the access_token firstly');\n return;\n }else{\n // 将 additionalHeaders 数组转换对象\n const additionalHeadersObject = additionalHeaders.reduce((map, header) => {\n if (header.name && header.value) {\n map[header.name] = header.value;\n }\n return map;\n }, {});\n const dataObject = {\n method: requestMethod.value,\n api_addr: requestUri.value,\n access_token: s3CurrentToken.value,\n access_token_type: s3TokenType.value,\n header: additionalHeadersObject,\n http_body: additionalBody.value\n };\n fetchApiData(dataObject).then(({code, msg, data}) => {\n if(code === 0){\n const {request, response, rawjson, example} = data;\n Object.assign(requestInfo, request);\n Object.assign(responseInfo, response);\n Object.assign(rawJsonInfo, rawjson);\n Object.assign(exampleInfo, example);\n updateReqAndRes();\n }else{\n ElMessage.error(msg);\n return;\n }\n });\n }\n}\n\nfunction isJsonResponse(header) {\n const contentType = header[\"Content-Type\"];\n return contentType != null && contentType.includes(\"application/json\");\n}\n\nfunction formatJson(jsonStr) {\n // 格式化 JSON 内容\n try {\n let resStr = JSON.stringify(JSON.parse(jsonStr), null, ' ');\n return resStr;\n } catch (error) {\n // 解析失败,返回原始内容\n console.error('格式化json失败');\n return jsonStr;\n }\n}\nasync function addHeader(headerForm) {\n if (!headerForm)\n return;\n await headerForm.validate((valid, fields) => {\n if (valid) {\n additionalHeaders.push({name: newHeader.name, value: newHeader.value});\n // 添加之后清空\n newHeader.name = '';\n newHeader.value = '';\n } else {\n console.log('error add', fields)\n }\n })\n}\n\nfunction deleteRow(index) {\n additionalHeaders.splice(index, 1)\n}\n\nwatch(props.cfgData, (newValue) => {\n s1Data.authorization_endpoint = newValue.authorization_endpoint;\n s1Data.scope = newValue.default_scope;\n initialAddress.value = newValue.authorization_endpoint.concat(\n \"?response_type=code\",\n newValue.default_scope?.length > 0 ? \"&scope=\".concat(newValue.default_scope) : \"\",\n newValue.client_id?.length > 0 ? \"&client_id=\".concat(newValue.client_id) : \"\",\n \"&redirect_uri=\", s1Data.redirect_uri,\n s1Data.state?.length > 0 ? \"&state=\".concat(s1Data.state) : \"\",\n s1Data.code_challenge.length > 0 ? \"&code_challenge=\".concat(s1Data.code_challenge) : \"\",\n \"&code_challenge_method=S256\"\n );\n requestUri.value = newValue.userinfo_endpoint;\n s3TokenType.value = newValue.access_token_type;\n});\n\nwatch(toRefs(s1Data).code_challenge, (newValue) => {\n handleS1Change();\n})\n\nonMounted(() => {\n // console.log('code_verifier:' + localStorage.getItem('code_verifier').length)\n if (localStorage.getItem('code_verifier') === null || localStorage.getItem('code_verifier').length === 0) {\n s1Data.code_verifier = generateCodeverify();\n localStorage.setItem('code_verifier', s1Data.code_verifier)\n } else {\n s1Data.code_verifier = localStorage.getItem('code_verifier');\n }\n s1Data.code_challenge = generateCodeChallenge(s1Data.code_verifier);\n s1Data.state = generateRandomString(props.cfgData.default_scope);\n\n const urlParams = new URLSearchParams(window.location.search);\n if(urlParams.get('code')?.length > 0){\n code.value = urlParams.get('code');\n state.value = urlParams.get('state');\n activeName.value = '2';\n }\n\n requestUri.value = props.cfgData.userinfo_endpoint;\n s3TokenType.value = props.cfgData.access_token_type;\n additionalHeaders.length = 0;\n additionalBody.value = '';\n});\n\nconst agS1ContainerRef = ref(null);\nconst agS1Ref = ref(null);\nconst handleDrag = (floatButton, container) => {\n // todo: drag float button\n};\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n const _component_el_collapse_item = _resolveComponent(\"el-collapse-item\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_collapse = _resolveComponent(\"el-collapse\")!\n const _component_el_divider = _resolveComponent(\"el-divider\")!\n const _component_highlightjs = _resolveComponent(\"highlightjs\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 8,\n lg: 8,\n xl: 8\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_el_collapse, {\n modelValue: activeName.value,\n \"onUpdate:modelValue\": _cache[24] || (_cache[24] = ($event: any) => ((activeName).value = $event)),\n accordion: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"1\"\n }, {\n title: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, {\n class: \"fitSide\",\n ref_key: \"agS1ContainerRef\",\n ref: agS1ContainerRef\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createVNode(_component_el_input, {\n modelValue: s1Data.authorization_endpoint,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((s1Data.authorization_endpoint) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_4,\n _createVNode(_component_el_input, {\n modelValue: s1Data.redirect_uri,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((s1Data.redirect_uri) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_5,\n _createVNode(_component_el_input, {\n modelValue: s1Data.scope,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((s1Data.scope) = $event)),\n placeholder: \"Scope\",\n onInput: handleS1Change,\n onBlur: handleS1Change\n }, null, 8, [\"modelValue\"]),\n _hoisted_6,\n _createVNode(_component_el_input, {\n modelValue: s1Data.response_type,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((s1Data.response_type) = $event)),\n placeholder: \"Response Type\",\n disabled: \"\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_7,\n _createVNode(_component_el_input, {\n modelValue: s1Data.state,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((s1Data.state) = $event)),\n placeholder: \"State\",\n onInput: handleS1Change,\n onBlur: handleS1Change\n }, null, 8, [\"modelValue\"]),\n _hoisted_8,\n _hoisted_9,\n _createVNode(_component_el_input, {\n modelValue: s1Data.code_verifier,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((s1Data.code_verifier) = $event)),\n placeholder: \"code verifier\",\n onBlur: handleCodeVerifierChange\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRefreshCodeVerifier,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Refresh \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_10,\n _createVNode(_component_el_input, {\n modelValue: s1Data.code_challenge,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((s1Data.code_challenge) = $event)),\n placeholder: \"code challenge\",\n disabled: true,\n onInput: handleS1Change,\n onBlur: handleS1Change\n }, null, 8, [\"modelValue\"]),\n _hoisted_11,\n _createVNode(_component_el_input, {\n modelValue: initialAddress.value,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((initialAddress).value = $event)),\n type: \"textarea\",\n autosize: { minRows: 4, maxRows: 6 },\n placeholder: \"Request grant code address\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n ref_key: \"agS1Ref\",\n ref: agS1Ref,\n type: \"primary\",\n onClick: getAuthorizationCode,\n class: \"n-button side-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" GO \")\n ]),\n _: 1\n }, 512)\n ]),\n _: 1\n }, 512)\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"2\"\n }, {\n title: _withCtx(() => [\n _hoisted_12\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_13,\n _createVNode(_component_el_input, {\n modelValue: code.value,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((code).value = $event)),\n placeholder: \"Authorization Code\"\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleGetToken,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Get the token \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_14,\n _createVNode(_component_el_input, {\n modelValue: currentRefreshToken.value,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((currentRefreshToken).value = $event)),\n placeholder: \"Refresh Token\"\n }, {\n append: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRefreshToken,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Refresh Token \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_15,\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"strong\", null, [\n _createElementVNode(\"code\", null, _toDisplayString(currentToken.value), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_collapse_item, {\n class: \"el-collapse-item\",\n name: \"3\"\n }, {\n title: _withCtx(() => [\n _hoisted_17\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_scrollbar, { class: \"fitSide\" }, {\n default: _withCtx(() => [\n _hoisted_18,\n _createVNode(_component_el_input, {\n modelValue: requestUri.value,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((requestUri).value = $event)),\n placeholder: \"Authorization Code\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_19,\n _createVNode(_component_el_select, {\n modelValue: requestMethod.value,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((requestMethod).value = $event)),\n onChange: handleMethodChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(methodOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, { span: 6 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[12] || (_cache[12] = ($event: any) => (headerDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Add Headers \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, { span: 8 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[13] || (_cache[13] = ($event: any) => (bodyDialogVisible.value = true)),\n class: \"user-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Enter Request Body \")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n span: 10,\n style: {\"margin-top\":\"10px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: contentType.value,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((contentType).value = $event)),\n onChange: handleContentTypeChange\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(contentTypeOptions, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value,\n disabled: item.disabled\n }, null, 8, [\"label\", \"value\", \"disabled\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: headerDialogVisible.value,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = ($event: any) => ((headerDialogVisible).value = $event)),\n title: \"Headers\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_el_form, {\n ref_key: \"headerFormRef\",\n ref: headerFormRef,\n inline: true,\n model: newHeader,\n rules: headerRules,\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, {\n prop: \"name\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.name,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((newHeader.name) = $event)),\n placeholder: \"header name\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n prop: \"value\",\n style: {\"width\":\"280px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: newHeader.value,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = ($event: any) => ((newHeader.value) = $event)),\n placeholder: \"header value\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { style: {\"width\":\"260px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[17] || (_cache[17] = ($event: any) => (addHeader(headerFormRef.value))),\n style: {\"margin-bottom\":\"10px\",\"margin-left\":\"-10px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Add\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\"]),\n _createVNode(_component_el_table, {\n data: additionalHeaders,\n border: \"\",\n style: {\"width\":\"100%\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n label: \"Header Name\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.name), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n label: \"Header Value\",\n width: \"260\"\n }, {\n default: _withCtx(({ row }) => [\n _createTextVNode(_toDisplayString(row.value), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, {\n fixed: \"right\",\n width: \"260\"\n }, {\n default: _withCtx((scope) => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: ($event: any) => (deleteRow(scope.$index))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Remove \")\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"data\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[18] || (_cache[18] = ($event: any) => (headerDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_dialog, {\n modelValue: bodyDialogVisible.value,\n \"onUpdate:modelValue\": _cache[22] || (_cache[22] = ($event: any) => ((bodyDialogVisible).value = $event)),\n title: \"Request Body\"\n }, {\n default: _withCtx(() => [\n _hoisted_20,\n _createVNode(_component_el_input, {\n modelValue: additionalBody.value,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((additionalBody).value = $event)),\n rows: 15,\n type: \"textarea\",\n placeholder: \"Please input\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n onClick: _cache[21] || (_cache[21] = ($event: any) => (bodyDialogVisible.value = false)),\n style: {\"display\":\"flex\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Close\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_21,\n _createVNode(_component_el_input, {\n modelValue: s3CurrentToken.value,\n \"onUpdate:modelValue\": _cache[23] || (_cache[23] = ($event: any) => ((s3CurrentToken).value = $event)),\n placeholder: \"access_token\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: handleRequestAPI,\n class: \"t-button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Fetch Data \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 16,\n lg: 16,\n xl: 16\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"http-container\", { 'http-horizontal': isHorizontal.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_22, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_23\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_24, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: requestInfo.code\n }, null, 8, [\"code\"]),\n _createVNode(_component_highlightjs, {\n class: _normalizeClass({ 'bodyWrap': isWrapRes.value }),\n autodetect: \"\",\n code: requestInfo.body\n }, null, 8, [\"class\", \"code\"])\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createVNode(_component_el_divider, {\n \"content-position\": \"left\",\n direction: \"horizontal\",\n class: \"http-info-type\"\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_el_scrollbar, { class: \"http-render\" }, {\n default: _withCtx(() => [\n _createVNode(_component_highlightjs, {\n autodetect: \"\",\n code: responseInfo.strHeader\n }, null, 8, [\"code\"]),\n (isJsonResponse(responseInfo.header))\n ? (_openBlock(), _createBlock(_component_highlightjs, {\n key: 0,\n autodetect: \"\",\n code: formatJson(responseInfo.body)\n }, null, 8, [\"code\"]))\n : (_openBlock(), _createBlock(_component_highlightjs, {\n key: 1,\n autodetect: \"\",\n code: responseInfo.body\n }, null, 8, [\"code\"]))\n ]),\n _: 1\n }),\n _createVNode(_component_el_checkbox, {\n modelValue: isWrapRes.value,\n \"onUpdate:modelValue\": _cache[25] || (_cache[25] = ($event: any) => ((isWrapRes).value = $event)),\n label: \"Wrap Lines\",\n size: \"large\"\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createVNode(_component_el_button, {\n class: \"http-button http-side-button\",\n onClick: toggleLayout\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Switch\")\n ]),\n _: 1\n })\n ], 2)\n ]),\n _: 1\n })\n ], 64))\n}\n}\n\n})","import script from \"./PKCE.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PKCE.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PKCE.vue?vue&type=style&index=0&id=bfd07ebe&scoped=true&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bfd07ebe\"]])\n\nexport default __exports__","import { createStore } from \"vuex\"\nimport createPersistedState from 'vuex-persistedstate';\n\n\nconst store = createStore({\n state() {\n return {\n backendUrl: 'http://localhost:80',\n authServerUrl: '',\n grantTypes: \"1\"\n }\n },\n mutations: {\n setBackEndUrl(state, v) {\n state.backendUrl = v\n },\n setGrantTypes(state, v) {\n state.grantTypes = v;\n },\n },\n plugins: [createPersistedState()],\n})\n\nexport default store\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createBlock as _createBlock, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-13b3ab8f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mainContent\" }\nconst _hoisted_2 = { class: \"rowHeader\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"bigTitle\" }, \"OAuth 2.0 Playground\", -1))\nconst _hoisted_4 = {\n id: \"settings\",\n style: {\"position\":\"fixed\",\"right\":\"0\"}\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { style: {\"margin-right\":\"8px\"} }, \"Configuration Settings\", -1))\nconst _hoisted_6 = { class: \"rowContent\" }\n\nimport { computed, onMounted, reactive, ref } from \"vue\";\nimport Authorization from './components/Authorization.vue'\nimport Password from './components/Password.vue'\nimport Client from './components/Client.vue'\nimport { fetchConfig } from '/@/api/common'\nimport { Setting } from '@element-plus/icons-vue'\nimport { ElMessage } from 'element-plus'\nimport { LocalStorageService } from \"/@/utils/persistence\"\nimport Device from \"/@/views/playground/components/Device.vue\";\nimport PKCE from \"/@/views/playground/components/PKCE.vue\";\nimport store from \"/@/store/index\"\n\n\nexport default /*#__PURE__*/_defineComponent({\n ...{\n name: \"Playground\"\n},\n __name: 'index',\n setup(__props) {\n\n\n\nconst grantTypes = ref(store.state.grantTypes)\nconst configData = reactive({\n trust_domain: [],\n authorization_endpoint: \"\",\n token_endpoint: \"\",\n userinfo_endpoint: \"\",\n default_scope: \"\",\n access_token_type: \"bearer\",\n client_id: \"\",\n client_secret: \"\"\n});\n\nconst att = [\n {label: \"authorization header w/ Bearer prefix\", value: \"bearer\"},\n {label: \"access_token URL parameter\", value: \"query\"}\n];\n\nasync function getGlobalConfig() {\n const {data} = await fetchConfig();\n Object.assign(configData, data);\n const lss = new LocalStorageService();\n const id = lss.getItem(\"id\");\n const secret = lss.getItem(\"secret\");\n Object.assign(configData, {client_id: id??\"\", client_secret: secret??\"\"});\n lss.removeItem(\"id\");\n lss.removeItem(\"secret\");\n}\n\nfunction handleSaveTokenType(){\n ElMessage.success(configData.access_token_type);\n}\n\nfunction handleSaveAccount() {\n ElMessage.success(configData.client_id);\n}\n\nfunction changeGrantType(newV) {\n grantTypes.value = newV;\n store.commit('setGrantTypes', newV);\n}\n\nconst computedPopWidth = computed(() => {\n return window.innerWidth < 640 ? \"100%\" : \"60%\";\n});\n\nonMounted(() => {\n getGlobalConfig();\n grantTypes.value = store.state.grantTypes\n})\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_radio_button = _resolveComponent(\"el-radio-button\")!\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_tag = _resolveComponent(\"el-tag\")!\n const _component_el_descriptions_item = _resolveComponent(\"el-descriptions-item\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_descriptions = _resolveComponent(\"el-descriptions\")!\n const _component_el_popover = _resolveComponent(\"el-popover\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_main = _resolveComponent(\"el-main\")!\n\n return (_openBlock(), _createBlock(_component_el_main, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_el_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, {\n xs: 24,\n sm: 24,\n md: 8,\n lg: 8,\n xl: 8,\n class: \"titleRow\"\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 20,\n sm: 22,\n md: 14,\n lg: 14,\n xl: 14,\n class: \"contentRow\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_radio_group, {\n modelValue: grantTypes.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((grantTypes).value = $event)),\n size: \"small\",\n onChange: changeGrantType\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_radio_button, { label: \"1\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Authorization Code\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_radio_button, { label: \"2\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Resource Owner Password Credentials\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_radio_button, { label: \"3\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Client Credentials\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, {\n xs: 4,\n sm: 2,\n md: 2,\n lg: 2,\n xl: 2,\n class: \"contentRow\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_el_popover, {\n placement: \"bottom\",\n trigger: \"click\",\n width: computedPopWidth.value\n }, {\n reference: _withCtx(() => [\n _createVNode(_component_el_button, { style: {\"vertical-align\":\"middle\"} }, {\n default: _withCtx(() => [\n _hoisted_5,\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(Setting))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_descriptions, {\n title: \"Config\",\n column: 1,\n border: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_descriptions_item, { label: \"Trust Domain\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(configData.trust_domain, (item) => {\n return (_openBlock(), _createBlock(_component_el_tag, {\n key: item,\n style: {\"margin-right\":\"5px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Authorization Endpoint\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(configData.authorization_endpoint), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Token Endpoint\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(configData.token_endpoint), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Userinfo Endpoint\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(configData.userinfo_endpoint), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Default Scope\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(configData.default_scope), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Client Id\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n size: \"small\",\n modelValue: configData.client_id,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((configData.client_id) = $event)),\n placeholder: \"Client Id\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Client Secret\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n size: \"small\",\n modelValue: configData.client_secret,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((configData.client_secret) = $event)),\n placeholder: \"Client Secret\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_descriptions_item, { label: \"Access token location\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: configData.access_token_type,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((configData.access_token_type) = $event)),\n size: \"small\",\n style: {\"width\":\"100%\"},\n onChange: handleSaveTokenType\n }, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(att, (item) => {\n return _createVNode(_component_el_option, {\n key: item.label,\n label: item.label,\n value: item.value\n }, null, 8, [\"label\", \"value\"])\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"width\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _withDirectives(_createVNode(_component_el_row, { class: \"contentBox\" }, {\n default: _withCtx(() => [\n _createVNode(Authorization, { cfgData: configData }, null, 8, [\"cfgData\"])\n ]),\n _: 1\n }, 512), [\n [_vShow, grantTypes.value==='1']\n ]),\n _withDirectives(_createVNode(_component_el_row, { class: \"contentBox\" }, {\n default: _withCtx(() => [\n _createVNode(Password, { cfgData: configData }, null, 8, [\"cfgData\"])\n ]),\n _: 1\n }, 512), [\n [_vShow, grantTypes.value==='2']\n ]),\n _withDirectives(_createVNode(_component_el_row, { class: \"contentBox\" }, {\n default: _withCtx(() => [\n _createVNode(Client, { cfgData: configData }, null, 8, [\"cfgData\"])\n ]),\n _: 1\n }, 512), [\n [_vShow, grantTypes.value==='3']\n ]),\n _withDirectives(_createVNode(_component_el_row, { class: \"contentBox\" }, {\n default: _withCtx(() => [\n _createVNode(Device, { cfgData: configData }, null, 8, [\"cfgData\"])\n ]),\n _: 1\n }, 512), [\n [_vShow, grantTypes.value==='4']\n ]),\n _withDirectives(_createVNode(_component_el_row, { class: \"contentBox\" }, {\n default: _withCtx(() => [\n _createVNode(PKCE, { cfgData: configData }, null, 8, [\"cfgData\"])\n ]),\n _: 1\n }, 512), [\n [_vShow, grantTypes.value==='5']\n ])\n ])\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=13b3ab8f&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-13b3ab8f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5961eded\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"logo\" }, \"ECNU\", -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"/oauth2playground/\" }, \"在线调试\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"https://developer.ecnu.edu.cn/doc/#/architecture/api\" }, \"数据接口\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"https://developer.ecnu.edu.cn/dashboard\" }, \"数据分析\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"https://ip.ecnu.edu.cn\" }, \"IP查询\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"https://speedtest.ecnu.edu.cn\" }, \"网络测速\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"https://developer.ecnu.edu.cn/playground\" }, \"回到旧版\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"https://github.com/ecnu/open-oauth2playground\" }, \"Github\", -1))\n\nimport { ref } from \"vue\";\nimport Playground from \"./playground\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n ...{\nname: \"Layout\"\n},\n __name: 'Layout',\n setup(__props) {\n\n\n\nconst activePage = ref(\"1\");\n\nfunction handlePageChange(index: string) {\n activePage.value = index;\n}\n\nfunction isPageActive(index: string) {\n return activePage.value === index;\n}\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_menu_item = _resolveComponent(\"el-menu-item\")!\n const _component_el_menu = _resolveComponent(\"el-menu\")!\n const _component_el_header = _resolveComponent(\"el-header\")!\n const _component_el_container = _resolveComponent(\"el-container\")!\n\n return (_openBlock(), _createBlock(_component_el_container, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_header, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_menu, {\n \"default-active\": \"1\",\n class: \"el-menu-demo\",\n mode: \"horizontal\",\n onSelect: handlePageChange\n }, {\n default: _withCtx(() => [\n _hoisted_1,\n _createVNode(_component_el_menu_item, { index: \"1\" }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }),\n _createVNode(_component_el_menu_item, { index: \"2\" }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }),\n _createVNode(_component_el_menu_item, { index: \"3\" }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_el_menu_item, { index: \"4\" }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }),\n _createVNode(_component_el_menu_item, { index: \"5\" }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }),\n _createVNode(_component_el_menu_item, { index: \"5\" }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }),\n _createVNode(_component_el_menu_item, { index: \"5\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n (isPageActive('1'))\n ? (_openBlock(), _createBlock(_unref(Playground), { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./Layout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Layout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Layout.vue?vue&type=style&index=0&id=5961eded&lang=less&scoped=true\"\n\nimport exportComponent from \"../../node_modules/.pnpm/vue-loader@17.2.2_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@5.85.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5961eded\"]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router';\nimport Layout from '/@/views/Layout.vue';\n\nconst routes = [\n {\n path: process.env.VUE_APP_ROUTER_BASE,\n name: 'Layout',\n component: Layout,\n meta: {title: 'OO2P'}\n }\n];\n\nconst router = createRouter({\n history: createWebHistory(\"/\"),\n routes: routes\n});\n\nrouter.beforeEach((to, from, next) => {\n /* 路由发生变化修改页面title */\n if(to.meta?.title){\n document.title = to.meta?.title as string;\n }\n next();\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport ElementPlus from 'element-plus'\nimport 'element-plus/dist/index.css'\nimport 'highlight.js/styles/atom-one-light.css';\n// import 'highlight.js/styles/mono-blue.css';\nimport 'highlight.js/lib/common';\nimport hljsVuePlugin from '@highlightjs/vue-plugin';\n\nconst app = createApp(App);\napp.use(ElementPlus);\napp.use(router);\napp.use(store);\napp.use(hljsVuePlugin);\napp.mount('#app');","// 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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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","var deferred = [];\n__webpack_require__.O = function(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(function(key) { return __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};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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};","__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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\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\t143: 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 = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(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(function(id) { return 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[\"webpackChunkoauth_playground_vue\"] = self[\"webpackChunkoauth_playground_vue\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// 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, [998], function() { return __webpack_require__(747); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_createBlock","_component_router_view","script","__exports__","render","window","location","protocol","hostname","port","generateRandomString","input","characters","timestamp","Date","now","toString","randomLength","Math","floor","random","length","result","i","charAt","slice","LocalStorageService","constructor","_defineProperty","this","storage","localStorage","addItem","item","existingItem","getItem","key","updateItem","setItem","JSON","stringify","value","parse","removeItem","HttpService","proto","process","host","route","baseURL","http","axios","timeout","addInterceptors","get","url","config","handleErrorWrapper","post","param","postDownload","responseType","put","delete","data","interceptors","request","use","response","error","Promise","reject","async","p","then","catch","fetchACToken","fetchRefreshToken","fetchApiData","fetchACTokenByClient","fetchACTokenByPassword","fetchACTokenByDevice","fetchACTokenByPkce","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","class","id","_hoisted_2","_createElementVNode","_hoisted_3","style","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_createTextVNode","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_defineComponent","__name","props","cfgData","type","Object","default","trust_domain","authorization_endpoint","token_endpoint","userinfo_endpoint","default_scope","access_token_type","client_id","client_secret","setup","__props","toClipboard","useClipboard","isHorizontal","ref","toggleLayout","requestInfo","reactive","meta","method","path","header","body","code","responseInfo","status","strHeader","rawJsonInfo","exampleInfo","isWrapRes","updateReqAndRes","atob","undefined","replaceAll","decodeURIComponent","escape","activeName","s1Data","redirect_uri","href","split","scope","response_type","state","initialAddress","handleS1Change","concat","handleGetAuthorizationCode","lss","ci","cs","ElMessage","currentToken","currentRefreshToken","handleGetToken","dataObject","msg","rawjson","example","access_token","refresh_token","s3CurrentToken","finally","success","assign","history","replaceState","document","title","pathname","handleRefreshToken","requestUri","requestMethod","s3TokenType","contentType","headerDialogVisible","bodyDialogVisible","newHeader","name","headerFormRef","headerRules","required","message","trigger","additionalHeaders","additionalBody","methodOptions","label","disabled","contentTypeOptions","handleMethodChange","info","handleContentTypeChange","handleRequestAPI","additionalHeadersObject","reduce","map","api_addr","http_body","isJsonResponse","includes","formatJson","jsonStr","resStr","console","addHeader","headerForm","validate","valid","fields","push","log","deleteRow","index","splice","watch","newValue","onMounted","urlParams","URLSearchParams","search","agS1ContainerRef","agS1Ref","_ctx","_cache","_component_el_input","_resolveComponent","_component_el_button","_component_el_scrollbar","_component_el_collapse_item","_component_el_option","_component_el_select","_component_el_col","_component_el_row","_component_el_form_item","_component_el_form","_component_el_table_column","_component_el_table","_component_el_dialog","_component_el_collapse","_component_el_divider","_component_highlightjs","_component_el_checkbox","_openBlock","_createElementBlock","_Fragment","_createVNode","xs","sm","md","lg","xl","_withCtx","modelValue","$event","accordion","ref_key","placeholder","onInput","onBlur","autosize","minRows","maxRows","onClick","_","append","_toDisplayString","onChange","_renderList","span","inline","model","rules","prop","border","width","row","fixed","size","$index","rows","_normalizeClass","direction","autodetect","username","password","handleGetTokenByPassword","handleGetTokenByClient","fetchConfig","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","handleDeviceFlow","res","user_code","verification_uri","device_code","expires_in","tokenAvailablelong","err","interval","qrCodeSrc","expire","resetData","generateQRCode","QRCode","src","alt","_createCommentVNode","code_verifier","code_challenge","handleCodeVerifierChange","isLengthValid","isCharacterValid","test","generateCodeChallenge","generateCodeverify","generateRandomStringByLength","handleRefreshCodeVerifier","base64URL","CryptoJS","text","possible","str","Base64","replace","getAuthorizationCode","toRefs","store","createStore","backendUrl","authServerUrl","grantTypes","mutations","setBackEndUrl","v","setGrantTypes","plugins","createPersistedState","configData","att","getGlobalConfig","secret","handleSaveTokenType","changeGrantType","newV","commit","computedPopWidth","computed","innerWidth","_component_el_radio_button","_component_el_radio_group","_component_el_icon","_component_el_tag","_component_el_descriptions_item","_component_el_descriptions","_component_el_popover","_component_el_main","placement","reference","_unref","Setting","column","_withDirectives","Authorization","_vShow","Password","Client","Device","PKCE","activePage","handlePageChange","isPageActive","_component_el_menu_item","_component_el_menu","_component_el_header","_component_el_container","mode","onSelect","Playground","routes","component","Layout","router","createRouter","createWebHistory","beforeEach","to","from","next","app","createApp","App","ElementPlus","hljsVuePlugin","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","keys","every","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","g","globalThis","Function","e","obj","prototype","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}