You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
19 KiB
1 lines
19 KiB
{"version":3,"sources":["webpack:///C:/Users/18634/Desktop/项目/fude_mini/components/gg-camera/gg-camera.vue?2ff8","webpack:///C:/Users/18634/Desktop/项目/fude_mini/components/gg-camera/gg-camera.vue?7219","webpack:///C:/Users/18634/Desktop/项目/fude_mini/components/gg-camera/gg-camera.vue?68f3","webpack:///C:/Users/18634/Desktop/项目/fude_mini/components/gg-camera/gg-camera.vue?7004","uni-app:///components/gg-camera/gg-camera.vue","webpack:///C:/Users/18634/Desktop/项目/fude_mini/components/gg-camera/gg-camera.vue?802b","webpack:///C:/Users/18634/Desktop/项目/fude_mini/components/gg-camera/gg-camera.vue?b823"],"names":["name","data","flash","orientation","device","showSelector","selectedWaterMarkConfig","maxZoom","outputPath","showTips","components","previewer","selector","outputer","mounted","success","console","fail","beforeDestroy","methods","switchCamera","rotateCamera","getCameraPhoto","frame","filePath","width","height","quality","src","photoInfo","takePhoto","uni","icon","title","error","saveImageToPhotosAlbum","sharePhoto","path"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkI;AAClI;AAC6D;AACL;AACsC;;;AAG9F;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,+EAAM;AACR,EAAE,gGAAM;AACR,EAAE,yGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,oGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAmmB,CAAgB,6nBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;AC6EvnB;AAAA;EAAA;IAAA;EAAA;AAAA;AAAA;EAAA;IAAA;EAAA;AAAA;AAAA;EAAA;IAAA;EAAA;AAAA;AAAA,eACA;EACAA;EACAC;IACA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MACAC;MACAC;MACAC;MACAC;IACA;EACA;EACAC;IACAC;IAAAC;IAAAC;EACA;EACAC;IAAA;IACA;IACA;MACA;QACA;QACA;MACA;IACA;IACA;MACAC;QACAC;MACA;MACAC;QACA;QACAD;MACA;IACA;EACA;EACAE;IAAA;IACA;MACAH;QACA;QACAC;MACA;MACAC;QACA;QACAD;MACA;IACA;EACA;EACAG;IACAC;MACA;QACA;MACA;QACA;MACA;IACA;IACAC,uCAEA;IACAC;MAAA;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,MACA;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACA;kBACA;gBACA;cAAA;gBAFAC;gBAAA,iCAGA;kBACAC;kBACAC;kBACAC;gBACA;cAAA;gBAAA;gBAAA,OAEA;kBACAC;gBACA;cAAA;gBAAA;gBAFAH;gBAAA;gBAAA,OAGA;kBACAI;gBACA;cAAA;gBAFAC;gBAAA,iCAGA;kBACAL;kBACAC;kBACAC;gBACA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IAEA;IACAI;MAAA;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,KACA;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAIA;gBAAA;gBAAA,OACA;cAAA;gBAAAD;gBAAA;gBAAA,OACA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAEAb;gBACAe;kBACAC;kBACAC;gBACA;cAAA;gBAAA;gBAEA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IAEA;IACAlB;MACA;MACAC;IACA;IACAkB;MACAlB;MACA;QACAgB;QACAC;MACA;IACA;IACAE;MACAJ;QACAP;QACAT;UACAC;UACAe;YACAC;YACAC;UACA;QACA;QACAhB;UACAD;UACAe;YACAC;YACAC;UACA;QACA;MACA;IACA;IACAG;MACAL;QACAM;MACA;IACA;EACA;AACA;AAAA,2B;;;;;;;;;;;;;ACtNA;AAAA;AAAA;AAAA;AAAsqC,CAAgB,4oCAAG,EAAC,C;;;;;;;;;;;ACA1rC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"components/gg-camera/gg-camera.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./gg-camera.vue?vue&type=template&id=48d9222a&scoped=true&\"\nvar renderjs\nimport script from \"./gg-camera.vue?vue&type=script&lang=js&\"\nexport * from \"./gg-camera.vue?vue&type=script&lang=js&\"\nimport style0 from \"./gg-camera.vue?vue&type=style&index=0&id=48d9222a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48d9222a\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"components/gg-camera/gg-camera.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--17-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./gg-camera.vue?vue&type=template&id=48d9222a&scoped=true&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n if (!_vm._isMounted) {\n _vm.e0 = function ($event) {\n _vm.showSelector = false\n }\n _vm.e1 = function ($event) {\n $event.stopPropagation()\n _vm.showSelector = false\n }\n _vm.e2 = function ($event) {\n _vm.flash = \"on\"\n }\n _vm.e3 = function ($event) {\n _vm.flash = \"torch\"\n }\n _vm.e4 = function ($event) {\n _vm.flash = \"off\"\n }\n _vm.e5 = function ($event) {\n _vm.flash = \"auto\"\n }\n _vm.e6 = function ($event) {\n _vm.showTips = false\n }\n _vm.e7 = function ($event) {\n $event.stopPropagation()\n _vm.outputPath = \"\"\n }\n _vm.e8 = function ($event) {\n $event.stopPropagation()\n _vm.showSelector = true\n }\n }\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./gg-camera.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./gg-camera.vue?vue&type=script&lang=js&\"","<template>\n <view style=\"width:100vw;height:100vh;position:relative;\" @click=\"showSelector=false\">\n <view style=\"width:100vw;height:100vh;display:flex;flex-direction: column;\">\r\n <camera \n frame-size=\"large\" device-frame-size=\"large\" \n resolution=\"high\" device-resolution=\"high\"\n :position=\"device\" :device-position=\"device\" \n :flash=\"flash\" :device-flash=\"flash\" \n @error=\"error\" @initdone=\"success\" style=\"flex:1;position: relative;\">\r\n <view class=\"previewer1\" :class=\"{'hidden':outputPath}\" @click.stop=\"showSelector=false\">\n <previewer :config=\"selectedWaterMarkConfig\" ref=\"previewer\"></previewer>\n </view>\n <cover-view class=\"tools1\" :class=\"{'hidden':showSelector || outputPath}\">\n \t<cover-image class=\"img\" src=\"@/static/png/menu.png\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/pintu.png\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/huafu.png\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/fl.png\" v-show=\"flash==='auto'\" @click=\"flash='on'\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/fl-on.png\" v-show=\"flash==='on'\" @click=\"flash='torch'\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/fl-torch.png\" v-show=\"flash==='torch'\" @click=\"flash='off'\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/fl-off.png\" v-show=\"flash==='off'\" @click=\"flash='auto'\"></cover-image>\n <cover-image class=\"img\" src=\"@/static/png/hengping.png\"></cover-image>\n </cover-view>\n <cover-view class=\"output\" :class=\"{'hidden':!outputPath}\">\n <cover-image v-if=\"outputPath\" :src=\"outputPath\"></cover-image>\n <cover-view class=\"tips\" :class=\"{'hidden':!showTips}\">\n <cover-view style=\"position: relative;padding: 50rpx;\">\n <cover-view class=\"tips2\">\n <cover-view style=\"display: flex;flex-direction: column;color:#ffffff;font-size:22rpx;\">\n <cover-view style=\"font-size: 32rpx;font-weight: bold;line-height: 50rpx;\">添加到【我的小程序】</cover-view>\n <cover-view style=\"line-height: 40rpx;\">微信首页下拉即可看到【水印相机】</cover-view>\n <cover-view style=\"line-height: 40rpx;\">提示:水印相机不存储照片,请妥善保管</cover-view>\n </cover-view>\n <cover-image class=\"img\" style=\"margin:-10rpx 0 0 20rpx\" src=\"@/static/png/hand.png\"></cover-image>\n </cover-view>\n <cover-image class=\"close\" src=\"@/static/png/close2.png\" @click=\"showTips=false\"></cover-image>\n </cover-view>\n </cover-view>\n </cover-view>\n </camera>\r\n <selector :visible.sync=\"showSelector\" v-model=\"selectedWaterMarkConfig\"></selector>\n <view :class=\"{'hidden':!outputPath}\" style=\"display: flex;padding:30rpx;justify-content: space-around;align-items: center;\">\n <view class=\"flex-col-center\">\n <image class=\"image1\" @click.stop=\"outputPath=''\" src=\"@/static/png/back.png\"></image>\n <view class=\"btn1\">返回</view>\n </view>\n <view class=\"cameraBtn\">\n <image class=\"image1\" @click=\"sharePhoto\" src=\"@/static/png/send.png\"></image>\n </view>\n <view class=\"flex-col-center\">\n <image class=\"image1\" @click=\"saveImageToPhotosAlbum\" src=\"@/static/png/dd.png\"></image>\n <view class=\"btn1\">保存相册</view>\n </view>\n </view>\n <view :class=\"{'hidden':showSelector || outputPath}\" style=\"display: flex;padding:30rpx;justify-content: space-around;align-items: center;\">\n <view class=\"flex-col-center\">\n <image class=\"image1\" @click.stop=\"showSelector=true\" src=\"@/static/png/print.png\"></image>\n <view class=\"btn1\">水印</view>\n </view>\n <view class=\"cameraBtn\" @click=\"takePhoto\">\n <view class=\"cameraBtn2\"></view>\n </view>\n <view class=\"flex-col-center\">\n <image class=\"image1\" @click=\"switchCamera\" src=\"@/static/png/cam.png\"></image>\n <view class=\"btn1\">摄像头</view>\n </view>\n </view>\n </view>\n <view style=\"position: absolute;top: -999999px;\">\n \t<outputer ref=\"outputer\"></outputer>\n </view>\n </view>\n</template>\n\n<script>\n import previewer from './previewer'\n import outputer from './outputer'\n import selector from './selector'\n import jpeg from 'jpeg-js'\n export default {\n name:'gg-camera',\n \tdata() {\n \t\treturn {\n flash: 'auto', //闪光灯,值为auto, on, off,torch\n orientation:'vertical',//画面方向,默认vertical竖屏,horizontal横屏\n \t\t\tdevice: 'back', //前置或后置摄像头,值为front, back\n showSelector:false,\n selectedWaterMarkConfig:null,\n maxZoom:1,\n outputPath:'',\n showTips:true,\n \t\t}\n \t},\n components:{\n previewer,selector,outputer,\n },\n \tmounted() {\n this.cameraCTX = uni.createCameraContext();\n this.frameListen=this.cameraCTX.onCameraFrame((frame) => {\n if(this.waitCameraFrame){\n this.waitCameraFrame(frame)\n this.waitCameraFrame=null;\n }\n });\n this.frameListen.start({\n success(){\n console.log('frameListen start success')\n },\n fail(){\n this.frameListen=null;\n console.log('frameListen start fail')\n }\n })\n \t},\n beforeDestroy() {\n this.frameListen && this.frameListen.stop({\n success:()=>{\n this.frameListen=null;\n console.log('frameListen stop success')\n },\n fail:()=>{\n this.frameListen=null;\n console.log('frameListen stop fail')\n }\n })\n },\n \tmethods: {\n \t\tswitchCamera() {\n \t\t\tif (this.device == 'front') {\n \t\t\t\tthis.device = 'back'\n \t\t\t} else {\n \t\t\t\tthis.device = 'front'\n \t\t\t}\n \t\t},\n rotateCamera(){\n \n },\n async getCameraPhoto(){\n if(this.frameListen && 1===2){\n const frame=await new Promise((resolve)=>{\n this.waitCameraFrame=resolve;\n });\n return {\n filePath:new Uint8ClampedArray(frame.data),\n width:frame.width,\n height:frame.height,\n };\n }else{\n const {tempImagePath:filePath}=await this.$tools.promisify(this.cameraCTX.takePhoto)({\n quality: 'high',\n });\n const photoInfo=await this.$tools.promisify(uni.getImageInfo)({\n src: filePath,\n });\n return {\n filePath:filePath,\n width:photoInfo.width,\n height:photoInfo.height,\n };\n }\n },\n \t\tasync takePhoto() {\n if(this.handing){\n return;\n }\n try{\n this.handing=true;\n const photoInfo=await this.getCameraPhoto();\n this.outputPath = await this.$refs.outputer.output(this.orientation,this.selectedWaterMarkConfig,photoInfo);\n }catch(err){\n console.error(err);\n uni.showToast({\n icon:'error',\n title:'处理失败'\n })\n }finally{\n this.handing=false;\n }\n \t\t},\n success(e){\n this.maxZoom=e.detail.maxZoom;\n console.log('初始化相机成功',e)\n },\n \t\terror(e) {\n console.error('初始化相机失败',e)\n \t\t\treturn uni.showToast({\n \t\t\t icon:'error',\n \t\t\t title:'初始化相机失败'\n \t\t\t})\n \t\t},\n saveImageToPhotosAlbum(){\n uni.saveImageToPhotosAlbum({\n filePath:this.outputPath,\n success:(res)=>{\n console.log(res)\n uni.showToast({\n icon:'success',\n title:'保存成功'\n })\n },\n fail:(err)=>{\n console.error(err)\n uni.showToast({\n icon:'error',\n title:'保存失败'\n })\n }\n });\n },\n sharePhoto(){\n uni.showShareImageMenu({\n path:this.outputPath,\n })\n }\n \t}\n }\n</script>\n\n<style scoped lang=\"scss\">\n\t@import './camera.scss';\n</style>","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./gg-camera.vue?vue&type=style&index=0&id=48d9222a&scoped=true&lang=scss&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./gg-camera.vue?vue&type=style&index=0&id=48d9222a&scoped=true&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1690182808595\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} |