{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/common/lang/en.js","webpack:///./src/common/lang/zh.js","webpack:///./src/store/index.js","webpack:///./src/App.vue?a3a8","webpack:///./src/App.vue","webpack:///./src/router/index.js","webpack:///./src/utils/browser.js","webpack:///./src/main.js","webpack:///./src/App.vue?c650","webpack:///./src/utils/flexible.js","webpack:///./src/plugins/i18n.js"],"names":["i","chunkIds","length","deferredModules","j","deferredModule","chunkId","type","target","script","enumerable","get","getter","value","key","bind","module","Object","prototype","hasOwnProperty","call","object","property","console","error","err","jsonpArray","webpackJsonpCallback","m","header","langure","buy","home","d3","sdk","view","sell","about","keywords","index","metaDescriptions","depthCamera","footer","p1","p2","p3","e","p4","type1","1","2","3","icon10","icon99","icon9","info","4","5","6","7","wechat","p5","icon12","icon11","icon19","t1","t2","icon3","icon4","icon5","icon6","icon7","icon8","Vue","use","Vuex","Store","state","locale","undefined","browserDefaultLanguage","mutations","updateLocale","newLocale","updateBrowserDefaultLanguage","lang","actions","changeLocale","commit","setBrowserDefaultLanguage","plugins","createPersistedState","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","component","Router","knownPaths","changeLocaleWhenNecessary","i18n","availableLocales","includes","store","dispatch","isPath","matchedString","toLowerCase","path","mode","base","routes","name","beforeEnter","to","from","next","App","params","children","meta","title","deviceInfo","MethodLibrary","getOS","os","navigator","userAgent","indexOf","getOSVersion","OSVision","u","isIOS","match","split","getOrientationStatu","getDeviceType","deviceType","sUserAgent","bIsIpad","bIsIphoneOs","bIsMidp","bIsUc7","bIsUc","bIsAndroid","bIsCE","bIsWM","getNetWork","createFingerprint","domain","fingerprint","bin2hex","s","l","n","o","charCodeAt","toString","canvas","document","createElement","ctx","getContext","txt","window","location","host","textBaseline","font","fillStyle","fillRect","fillText","b64","toDataURL","replace","bin","atob","crc","slice","LogicLibrary","DeviceInfoObj","OS","OSVersion","appVersion","screenHeight","screen","height","screenWidth","width","language","infoTemp","forEach","item","getDeviceInfo","hotcss","viewportEl","querySelector","hotcssEl","dpr","devicePixelRatio","maxWidth","designWidth","hotcssCon","getAttribute","initialDprMatch","parseFloat","maxWidthMatch","designWidthMatch","documentElement","setAttribute","scale","content","head","appendChild","px2rem","px","parseInt","rem2px","rem","mresize","innerWidth","getBoundingClientRect","style","fontSize","callback","addEventListener","clearTimeout","tid","setTimeout","config","productionTip","router","beforeEach","messages","getMessages","$","addClass","render","h","$mount","win","lib","init","doc","docEl","whdef","wW","innerHeight","VueI18n","getDefaultLocale","languages","browserLanguage","userLanguage","require","en"],"mappings":"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","file":"js/app.44240b1d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-175e2926\":\"a23bb211\",\"chunk-19cdd83c\":\"a0b520e3\",\"chunk-2ce7b712\":\"26d65781\",\"chunk-3d177ed8\":\"498e6f5b\",\"chunk-468e49d0\":\"1883a66f\",\"chunk-a20a1e18\":\"3db39b92\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export const m = {\r\n header: {\r\n langure: '中文',\r\n buy: 'Buy',\r\n home: 'Home',\r\n d3: 'Depth Camera',\r\n sdk: 'Skeletal Tracking',\r\n view: 'Machine Vision',\r\n sell: 'Retail Store Solution',\r\n about: 'About'\r\n },\r\n keywords: {\r\n index:\r\n 'depth camera, motion sense, motion sensing, motion tracking, machine vision, skeletal tracking'\r\n },\r\n metaDescriptions: {\r\n index: 'Motion sensing solution via depth camera',\r\n depthCamera: 'Depth camera solution',\r\n about: 'About YDSENS company',\r\n sdk: 'Skeletal tracking SDK',\r\n sell: 'Retail store solution via motion sensing',\r\n view: 'Machine vision solution via motion sensing'\r\n },\r\n footer: {\r\n p1: 'Beijing Yundong Motion Sensing Technology Co.,Ltd.',\r\n p2:\r\n 'Address:Building 2,China Central Place,No.79 Jianguo Road,Chaoyang District,Beijing,China',\r\n p3: 'E-mail:',\r\n e: 'contact@ydsens.com',\r\n p4: '(reply in 24 hours)'\r\n },\r\n type1: {\r\n 1: 'YDSENS RGB-D Depth Camera',\r\n 2: 'Independent research and development, Millimeter precision, Provide 30 FPS VGA depth data and 30 FPS VGA color data',\r\n 3: 'Supporting Multi-platforms (Windows/Android/Linux/Mac)'\r\n },\r\n d3: {\r\n p1: 'YDSENS RGB-D Depth Camera',\r\n p2:\r\n 'Independent research and development, Millimeter precision, Provide 30 FPS VGA depth data and 30 FPS VGA color data',\r\n p3:\r\n 'Supporting multi-depth cameras work together and multi-platforms (Windows/Android/Linux/Mac)'\r\n },\r\n sell: {\r\n icon10: {\r\n p1: 'Retail store solution',\r\n p2:\r\n 'Our special skeletal tracking version provides fundamental data for user tracking',\r\n p3: 'and user behavior analysis to self-service retail store'\r\n },\r\n icon99: {\r\n p1: 'Face ID payment',\r\n p2:\r\n 'Providing fundamental data for face recognition and payment to self-service retail store'\r\n },\r\n icon9: {\r\n p1: '3D Face recognition',\r\n p2: 'Providing total solution to self-service retail store',\r\n p3: ''\r\n },\r\n 1: 'YDSENS3D深度传感器',\r\n 2: '自主知识产权RGB-D深度传感器,毫米级精度,提供每秒30帧的深度数据及彩色数据',\r\n 3: '支持多平台(Windows/Android/Linux/Mac)'\r\n },\r\n about: {\r\n p1: 'YDSENS',\r\n p2: '韵动体感科技',\r\n info: {\r\n 1: 'We are an innovation company founded by passionate engineers',\r\n 2: 'from TOP Fortune 500 global high-tech company and mainly focusing',\r\n 3: 'on machine version and motion sensing areas. Our products include',\r\n 4: 'RGB-D depth camera and skeletal tracking SDK which providing the',\r\n 5: 'fundamental technology to the next generation of nature user interface. ',\r\n 6: 'The quality and performance of our products put us in the leading',\r\n 7: 'position in these areas in the world.'\r\n },\r\n wechat: 'Wechat'\r\n },\r\n sdk: {\r\n 1: {\r\n p1: 'Skeletal Tracking SDK',\r\n p2: 'Real-time six users tracking',\r\n p3: 'High accuracy and stability',\r\n p4: 'Tracking and interacting solution',\r\n p5: 'to motion control games'\r\n },\r\n 2: {\r\n p1: 'Multi-platforms,Multi-programing languages support',\r\n p2:\r\n 'Supporting multi-platforms (Windows/Android/Linux/Mac),multi-programing ',\r\n p3:\r\n 'interfaces (C++,Unity 3D,Java) and customizing SDK features according to different requirements'\r\n },\r\n 3: {\r\n p1: 'Supporting different users',\r\n p2:\r\n 'Tracking user of different age, height, gender, no user initial pose required before tracking'\r\n }\r\n },\r\n view: {\r\n icon12: {\r\n p1: 'Package volume measurement solution for handheld device',\r\n p2:\r\n 'Embedded depth camera module and our patent algorithm providing volume measurement solution for handheld device'\r\n },\r\n icon11: {\r\n p1: 'Automatic package volume measurement solution',\r\n p2:\r\n 'Real-time automatic volume measure solution can be integrated with conveyor belt and saving cost for large logistics company'\r\n },\r\n icon19: {\r\n p1: 'Automatically package sorting solution',\r\n p2: 'Saving cost and increasing efficiency to logistics company',\r\n p3: ''\r\n },\r\n 1: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n },\r\n 2: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n },\r\n 3: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n },\r\n 4: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n }\r\n },\r\n icon3: {\r\n p1: 'Embedded Depth Camera Module',\r\n p2:\r\n 'Providing face recognition and face ID payment solution to mobile phone and tablet'\r\n },\r\n icon4: {\r\n p1: 'AI Skeletal Tracking SDK',\r\n p2:\r\n 'High accuracy and stability, Real-time six users tracking at the same time',\r\n p3: 'Supporting Multi-platforms (Windows/Android/Linux/Mac)'\r\n },\r\n icon5: {\r\n p1: 'Machine vision solution',\r\n p2:\r\n 'Automatic package volume measurement and intelligence obstacle detection provide “eyes” to machines',\r\n p3: 'Saving cost for logistics company'\r\n },\r\n icon6: {\r\n p1: 'Retail store solution',\r\n p2:\r\n 'Face ID payment solution and supermarket customer tracking and behavior ',\r\n p3: 'recognition provide support for self-service store'\r\n },\r\n icon7: {\r\n p1: 'Embedded version depth camera',\r\n p2:\r\n 'Providing face recognition and face ID payment solution to mobile phone and tablet'\r\n },\r\n icon8: {\r\n p1: 'VR device integration',\r\n p2: 'Providing interaction solution to VR device'\r\n }\r\n}\r\n","export const m = {\r\n header: {\r\n langure: 'English',\r\n buy: '购买',\r\n home: '首页',\r\n d3: '3D深度传感器',\r\n sdk: 'AI骨骼识别SDK',\r\n view: '机器视觉解决方案',\r\n sell: '新零售解决方案',\r\n about: '关于韵动'\r\n },\r\n keywords: {\r\n index: '深度相机, 运动感知, 运动追踪, 机器视觉, 骨骼追踪'\r\n },\r\n metaDescriptions: {\r\n index: '运用深度相机的运动感知解决方案',\r\n depthCamera: '深度相机解决方案',\r\n about: '关于YDSENS公司',\r\n sdk: '骨骼追踪SDK',\r\n sell: '运动感知零售商店解决方案',\r\n view: '运用运动感知的机器视觉解决方案'\r\n },\r\n footer: {\r\n p1: '北京韵动体感科技有限公司',\r\n p2: '北京市朝阳区建国路华贸中心2号楼',\r\n p3: '邮箱:',\r\n e: 'contact@ydsens.com',\r\n p4: '(24小时之内回复)'\r\n },\r\n type1: {\r\n 1: 'YDSENS 3D深度传感器',\r\n 2: '自主知识产权RGB-D深度传感器,毫米级精度,提供每秒30帧的深度数据及彩色数据',\r\n 3: '支持多平台(Windows/Android/Linux/Mac)'\r\n },\r\n d3: {\r\n p1: 'YDSENS 3D深度传感器',\r\n p2:\r\n '毫米级精度,稳定性更强,提供每秒30帧的深度数据及彩色数据,多设备同时运行不受影响',\r\n p3: '支持多平台(Windows/Android/Linux/Mac)'\r\n },\r\n sell: {\r\n icon10: {\r\n p1: '行为动作识别分析',\r\n p2: '独有的无人零售视觉跟踪及动作识别方案',\r\n p3: '为用户行为分析及完全实现无人购物提供终极解决方案'\r\n },\r\n icon99: {\r\n p1: '3D人脸识别',\r\n p2: '3D人脸识别更快速、精准,误差率低,安全性高'\r\n },\r\n icon9: {\r\n p1: '3D人脸识别',\r\n p2: '提供一站式无人零售整体解决方案',\r\n p3: ''\r\n },\r\n 1: 'YDSENS3D深度传感器',\r\n 2: '自主知识产权RGB-D深度传感器,毫米级精度,提供每秒30帧的深度数据及彩色数据',\r\n 3: '支持多平台(Windows/Android/Linux/Mac)'\r\n },\r\n about: {\r\n p1: 'YDSENS',\r\n p2: '韵动体感科技',\r\n info: {\r\n 1: '我们是致力于体感交互技术的AI视觉感知创新公司,',\r\n 2: '由来自于全球顶级外企核心研发团队成员联合创办。',\r\n 3: '自主研发行业领先的3D传感器和体感识别算法技术,',\r\n 4: '打造世界级的体感应用平台及整体解决方案,',\r\n 5: '为未来的人机交互及机器视觉提供技术基础。',\r\n 6: '',\r\n 7: ''\r\n },\r\n wechat: '微信公众号'\r\n },\r\n sdk: {\r\n 1: {\r\n p1: '韵动AI骨骼识别SDK',\r\n p2: '支持实时多达六人的同时识别',\r\n p3: '准确率高,稳定性强',\r\n p4: '为体感游戏及交互提供完整解决方案',\r\n p5: ''\r\n },\r\n 2: {\r\n p1: '多平台,多接口支持',\r\n p2: '支持多平台 (Windows/Android/Linux/Mac)',\r\n p3: '提供多种开发语言接口类型(C++,Unity 3D,Java),支持方案定制服务'\r\n },\r\n 3: {\r\n p1: '支持不同年龄、身高及性别',\r\n p2: '即时识别,无需初始姿态,支持不同身高、年龄及性别'\r\n }\r\n },\r\n view: {\r\n icon12: {\r\n p1: '手持终端体积测量',\r\n p2: '小型化深度传感器及专利测量算法为移动终端设备包裹体积检测提供基础'\r\n },\r\n icon11: {\r\n p1: '自动化体积测量',\r\n p2: '实时货物包裹体积测量及独有的动态物体测量方案为智慧物流提供基础'\r\n },\r\n icon19: {\r\n p1: '机器视觉解决方案',\r\n p2: '3D视觉为机器装上一双智慧之眼,实现全自动智能分拣、搬运',\r\n p3: '让企业更高效、低成本、安全可控'\r\n },\r\n 1: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n },\r\n 2: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n },\r\n 3: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n },\r\n 4: {\r\n t1: '骨骼识别sdk',\r\n t2: '支持不同年龄,身高及性别'\r\n }\r\n },\r\n icon3: {\r\n p1: '小型化的3D深度传感器',\r\n p2: '为手机和平板等移动终端设备人脸识别及支付提供支持'\r\n },\r\n icon4: {\r\n p1: '韵动AI骨骼识别SDK',\r\n p2: '识别准备率高,稳定性强,实时多达六人同时识别',\r\n p3: '支持多平台 (Windows/Android/Linux/Mac)'\r\n },\r\n icon5: {\r\n p1: '机器视觉解决方案',\r\n p2: '自动化体积测量和智能导航避障系统为机器装上一双智慧之眼',\r\n p3: '让物流更高效并节约成本'\r\n },\r\n icon6: {\r\n p1: '新零售解决方案',\r\n p2: '人脸识别支付系统和特有的超市行为识别分析系统',\r\n p3: '实现全自助无人新零售'\r\n },\r\n icon7: {\r\n p1: '小型化的3D深度传感器',\r\n p2: '为移动端设备人脸识别及支付提供完美解决方案'\r\n },\r\n icon8: {\r\n p1: '与VR设备集成',\r\n p2: '为VR提供感知世界的窗口及与用户交互的渠道'\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport createPersistedState from 'vuex-persistedstate'\r\nVue.use(Vuex)\r\nexport default new Vuex.Store({\r\n state: {\r\n locale: undefined,\r\n browserDefaultLanguage: undefined\r\n },\r\n mutations: {\r\n updateLocale(state, newLocale) {\r\n state.locale = newLocale\r\n },\r\n updateBrowserDefaultLanguage(state, lang) {\r\n state.browserDefaultLanguage = lang\r\n }\r\n },\r\n actions: {\r\n changeLocale({ commit }, newLocale) {\r\n commit('updateLocale', newLocale)\r\n },\r\n setBrowserDefaultLanguage({ commit }, lang) {\r\n commit('updateBrowserDefaultLanguage', lang)\r\n }\r\n },\r\n plugins: [createPersistedState()]\r\n})\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7c51b73a&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport store from '@/store'\r\nimport i18n from '@/plugins/i18n'\r\nimport App from '@/App.vue'\r\n\r\nVue.use(Router)\r\n\r\nconst knownPaths = ['depthcamera', 'retail', 'machinevision', 'about', 'sdk']\r\n\r\nconst changeLocaleWhenNecessary = (lang) => {\r\n if (i18n.availableLocales.includes(lang) && store.state.locale !== lang) {\r\n store.dispatch('changeLocale', lang)\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\nconst isPath = (matchedString) => {\r\n if (matchedString && matchedString.toLowerCase) {\r\n const path = matchedString.toLowerCase()\r\n return knownPaths.includes(path)\r\n }\r\n\r\n return false\r\n}\r\n\r\nexport default new Router({\r\n mode: 'history',\r\n base: '/',\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'root',\r\n beforeEnter(to, from, next) {\r\n next(store.state.locale)\r\n }\r\n },\r\n {\r\n path: '/:lang',\r\n component: App,\r\n beforeEnter(to, from, next) {\r\n const lang = to.params.lang\r\n if (isPath(lang)) {\r\n return next('/' + store.state.locale + '/' + lang)\r\n }\r\n\r\n if (changeLocaleWhenNecessary(lang)) {\r\n return next('/')\r\n }\r\n\r\n return next()\r\n },\r\n children: [\r\n {\r\n path: '',\r\n name: 'index',\r\n component: () => import('@/views/Index.vue'),\r\n meta: {\r\n title: 'home'\r\n }\r\n },\r\n {\r\n path: 'depthcamera',\r\n name: '3d',\r\n component: () => import('@/views/3d.vue'),\r\n meta: {\r\n title: 'd3'\r\n }\r\n },\r\n {\r\n path: 'retail',\r\n name: 'sell',\r\n component: () => import('@/views/sell.vue'),\r\n meta: {\r\n title: 'sell'\r\n }\r\n },\r\n {\r\n path: 'machinevision',\r\n name: 'view',\r\n component: () => import('@/views/view.vue'),\r\n meta: {\r\n title: 'view'\r\n }\r\n },\r\n {\r\n path: 'about',\r\n name: 'about',\r\n component: () => import('@/views/about.vue'),\r\n meta: {\r\n title: 'about'\r\n }\r\n },\r\n {\r\n path: 'sdk',\r\n name: 'sdk',\r\n component: () => import('@/views/sdk.vue'),\r\n meta: {\r\n title: 'sdk'\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n})\r\n","const deviceInfo = (function () {\r\n var MethodLibrary = (function () {\r\n // 方法库\r\n return {\r\n /**\r\n * @function 监测DOM树是否加载完毕.\r\n * @param fn\r\n */\r\n getOS: function () {\r\n // 获取当前操作系统\r\n var os\r\n if (\r\n navigator.userAgent.indexOf('Android') > -1 ||\r\n navigator.userAgent.indexOf('Linux') > -1\r\n ) {\r\n os = 'Android'\r\n } else if (navigator.userAgent.indexOf('iPhone') > -1) {\r\n os = 'iOS'\r\n } else if (navigator.userAgent.indexOf('Windows Phone') > -1) {\r\n os = 'WP'\r\n } else {\r\n os = 'Others'\r\n }\r\n return os\r\n },\r\n getOSVersion: function () {\r\n // 获取操作系统版本\r\n var OSVision = '1.0'\r\n var u = navigator.userAgent\r\n var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 // Android\r\n var isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端\r\n if (isAndroid) {\r\n // OSVision = navigator.userAgent.split(';')[1].match(/\\d+\\.\\d+/g)[0]\r\n }\r\n if (isIOS) {\r\n OSVision = navigator.userAgent\r\n .split(';')[1]\r\n .match(/(\\d+)_(\\d+)_?(\\d+)?/)[0]\r\n }\r\n return OSVision\r\n },\r\n getOrientationStatu: function () {\r\n // // 获取横竖屏状态\r\n // var orientationStatu\r\n // if (\r\n // window.screen.orientation.angle == 180 ||\r\n // window.screen.orientation.angle == 0\r\n // ) {\r\n // // 竖屏\r\n // orientationStatu = '竖屏'\r\n // }\r\n // if (\r\n // window.screen.orientation.angle == 90 ||\r\n // window.screen.orientation.angle == -90\r\n // ) {\r\n // // 横屏\r\n // orientationStatu = '横屏'\r\n // }\r\n // return orientationStatu\r\n return null\r\n },\r\n getDeviceType: function () {\r\n // 获取设备类型\r\n var deviceType\r\n var sUserAgent = navigator.userAgent.toLowerCase()\r\n var bIsIpad = sUserAgent.match(/(ipad)/i) == 'ipad'\r\n var bIsIphoneOs = sUserAgent.match(/iphone os/i) == 'iphone os'\r\n var bIsMidp = sUserAgent.match(/midp/i) == 'midp'\r\n var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == 'rv:1.2.3.4'\r\n var bIsUc = sUserAgent.match(/ucweb/i) == 'ucweb'\r\n var bIsAndroid = sUserAgent.match(/android/i) == 'android'\r\n var bIsCE = sUserAgent.match(/windows ce/i) == 'windows ce'\r\n var bIsWM = sUserAgent.match(/windows mobile/i) == 'windows mobile'\r\n\r\n if (\r\n !(\r\n bIsIpad ||\r\n bIsIphoneOs ||\r\n bIsMidp ||\r\n bIsUc7 ||\r\n bIsUc ||\r\n bIsAndroid ||\r\n bIsCE ||\r\n bIsWM\r\n )\r\n ) {\r\n deviceType = 'PC' // pc\r\n } else if (\r\n bIsIphoneOs ||\r\n bIsMidp ||\r\n bIsUc7 ||\r\n bIsUc ||\r\n bIsAndroid ||\r\n bIsCE ||\r\n bIsWM\r\n ) {\r\n deviceType = 'Phone' // phone\r\n } else if (bIsIpad) {\r\n deviceType = 'ipad' // ipad\r\n } else {\r\n deviceType = '未知'\r\n }\r\n return deviceType\r\n },\r\n getNetWork: function () {\r\n // var netWork\r\n // switch (navigator.connection.effectiveType) {\r\n // case 'wifi':\r\n // netWork = 'wifi' // wifi\r\n // break\r\n // case '4g':\r\n // netWork = '4G' // 4g\r\n // break\r\n // case '2g':\r\n // netWork = '2G' // 2g\r\n // break\r\n // case '3g':\r\n // netWork = '3G' // 3g\r\n // break\r\n // case 'ethernet':\r\n // netWork = '以太网' // ethernet\r\n // break\r\n // case 'default':\r\n // netWork = '未知' // 未知\r\n // break\r\n // }\r\n return null\r\n },\r\n createFingerprint: function (domain) {\r\n // 生成浏览器指纹\r\n var fingerprint\r\n\r\n function bin2hex (s) {\r\n var i,\r\n l,\r\n n,\r\n o = ''\r\n s += ''\r\n for (i = 0, l = s.length; i < l; i++) {\r\n n = s.charCodeAt(i).toString(16)\r\n o += n.length < 2 ? '0' + n : n\r\n }\r\n return o\r\n }\r\n\r\n var canvas = document.createElement('canvas')\r\n var ctx = canvas.getContext('2d')\r\n var txt = domain || window.location.host\r\n ctx.textBaseline = 'top'\r\n ctx.font = \"14px 'Arial'\"\r\n ctx.textBaseline = 'tencent'\r\n ctx.fillStyle = '#f60'\r\n ctx.fillRect(125, 1, 62, 20)\r\n ctx.fillStyle = '#069'\r\n ctx.fillText(txt, 2, 15)\r\n ctx.fillStyle = 'rgba(102, 204, 0, 0.7)'\r\n ctx.fillText(txt, 4, 17)\r\n var b64 = canvas.toDataURL().replace('data:image/png;base64,', '')\r\n var bin = atob(b64)\r\n var crc = bin2hex(bin.slice(-16, -12))\r\n fingerprint = crc\r\n return fingerprint\r\n }\r\n }\r\n })()\r\n var LogicLibrary = (function () {\r\n // 逻辑层\r\n return {\r\n DeviceInfoObj: function (params) {\r\n var info = {\r\n deviceType: MethodLibrary.getDeviceType(), // 设备类型\r\n OS: MethodLibrary.getOS(), // 操作系统\r\n OSVersion: MethodLibrary.getOSVersion(), // 操作系统版本\r\n userAgent: navigator.userAgent, // 包含以下属性中所有或一部分的字符串:appCodeName,appName,appVersion,language,platform\r\n appVersion: navigator.appVersion, // 浏览器的版本号\r\n screenHeight: window.screen.height, // 屏幕高\r\n screenWidth: window.screen.width, // 屏幕宽\r\n language: navigator.language, // 当前使用的语言-国家\r\n // netWork: MethodLibrary.getNetWork(), // 联网类型\r\n fingerprint: MethodLibrary.createFingerprint(params.domain), // 浏览器指纹\r\n // orientation: MethodLibrary.getOrientationStatu() // 横竖屏\r\n }\r\n if (!params.info || params.info.length == 0) {\r\n return info\r\n } else {\r\n var infoTemp = {}\r\n for (var i in info) {\r\n params.info.forEach(function (item) {\r\n if (item.toLowerCase() == i.toLowerCase()) {\r\n item = i\r\n infoTemp[item] = info[item]\r\n }\r\n })\r\n }\r\n return infoTemp\r\n }\r\n }\r\n }\r\n })()\r\n return {\r\n getDeviceInfo: function (params) {\r\n return LogicLibrary.DeviceInfoObj(params)\r\n }\r\n }\r\n})()\r\nexport default deviceInfo\r\nconst deviceType = deviceInfo.getDeviceInfo({ info: ['deviceType'] }).deviceType\r\nif (deviceType === 'Phone') {\r\n ;(function (window, document) {\r\n 'use strict'\r\n\r\n // 给hotcss开辟个命名空间,别问我为什么,我要给你准备你会用到的方法,免得用到的时候还要自己写。\r\n var hotcss = {}\r\n\r\n ;(function () {\r\n // 根据devicePixelRatio自定计算scale\r\n // 可以有效解决移动端1px这个世纪难题。\r\n var viewportEl = document.querySelector('meta[name=\"viewport\"]'),\r\n hotcssEl = document.querySelector('meta[name=\"hotcss\"]'),\r\n dpr = window.devicePixelRatio || 1,\r\n maxWidth = 540,\r\n designWidth = 0\r\n\r\n dpr = dpr >= 3 ? 3 : dpr >= 2 ? 2 : 1\r\n\r\n // 允许通过自定义name为hotcss的meta头,通过initial-dpr来强制定义页面缩放\r\n if (hotcssEl) {\r\n var hotcssCon = hotcssEl.getAttribute('content')\r\n if (hotcssCon) {\r\n var initialDprMatch = hotcssCon.match(/initial\\-dpr=([\\d\\.]+)/)\r\n if (initialDprMatch) {\r\n dpr = parseFloat(initialDprMatch[1])\r\n }\r\n var maxWidthMatch = hotcssCon.match(/max\\-width=([\\d\\.]+)/)\r\n if (maxWidthMatch) {\r\n maxWidth = parseFloat(maxWidthMatch[1])\r\n }\r\n var designWidthMatch = hotcssCon.match(/design\\-width=([\\d\\.]+)/)\r\n if (designWidthMatch) {\r\n designWidth = parseFloat(designWidthMatch[1])\r\n }\r\n }\r\n }\r\n\r\n document.documentElement.setAttribute('data-dpr', dpr)\r\n hotcss.dpr = dpr\r\n\r\n document.documentElement.setAttribute('max-width', maxWidth)\r\n hotcss.maxWidth = maxWidth\r\n\r\n if (designWidth) {\r\n document.documentElement.setAttribute('design-width', designWidth)\r\n }\r\n hotcss.designWidth = designWidth // 保证px2rem 和 rem2px 不传第二个参数时, 获取hotcss.designWidth是undefined导致的NaN\r\n\r\n var scale = 1 / dpr,\r\n content =\r\n 'width=device-width, initial-scale=' +\r\n scale +\r\n ', minimum-scale=' +\r\n scale +\r\n ', maximum-scale=' +\r\n scale +\r\n ', user-scalable=no'\r\n\r\n if (viewportEl) {\r\n viewportEl.setAttribute('content', content)\r\n } else {\r\n viewportEl = document.createElement('meta')\r\n viewportEl.setAttribute('name', 'viewport')\r\n viewportEl.setAttribute('content', content)\r\n document.head.appendChild(viewportEl)\r\n }\r\n })()\r\n\r\n hotcss.px2rem = function (px, designWidth) {\r\n // 预判你将会在JS中用到尺寸,特提供一个方法助你在JS中将px转为rem。就是这么贴心。\r\n if (!designWidth) {\r\n // 如果你在JS中大量用到此方法,建议直接定义 hotcss.designWidth 来定义设计图尺寸;\r\n // 否则可以在第二个参数告诉我你的设计图是多大。\r\n designWidth = parseInt(hotcss.designWidth, 10)\r\n }\r\n\r\n return (parseInt(px, 10) * 320) / designWidth / 20\r\n }\r\n\r\n hotcss.rem2px = function (rem, designWidth) {\r\n // 新增一个rem2px的方法。用法和px2rem一致。\r\n if (!designWidth) {\r\n designWidth = parseInt(hotcss.designWidth, 10)\r\n }\r\n // rem可能为小数,这里不再做处理了\r\n return (rem * 20 * designWidth) / 320\r\n }\r\n\r\n hotcss.mresize = function () {\r\n // 对,这个就是核心方法了,给HTML设置font-size。\r\n var innerWidth =\r\n document.documentElement.getBoundingClientRect().width ||\r\n window.innerWidth\r\n\r\n if (hotcss.maxWidth && innerWidth / hotcss.dpr > hotcss.maxWidth) {\r\n innerWidth = hotcss.maxWidth * hotcss.dpr\r\n }\r\n\r\n if (!innerWidth) {\r\n return false\r\n }\r\n\r\n document.documentElement.style.fontSize = (innerWidth * 20) / 320 + 'px'\r\n\r\n hotcss.callback && hotcss.callback()\r\n }\r\n\r\n hotcss.mresize()\r\n // 直接调用一次\r\n\r\n window.addEventListener(\r\n 'resize',\r\n function () {\r\n clearTimeout(hotcss.tid)\r\n hotcss.tid = setTimeout(hotcss.mresize, 33)\r\n },\r\n false\r\n )\r\n // 绑定resize的时候调用\r\n\r\n window.addEventListener('load', hotcss.mresize, false)\r\n // 防止不明原因的bug。load之后再调用一次。\r\n\r\n setTimeout(function () {\r\n hotcss.mresize()\r\n // 防止某些机型怪异现象,异步再调用一次\r\n }, 333)\r\n\r\n window.hotcss = hotcss\r\n // 命名空间暴露给你,控制权交给你,想怎么调怎么调。\r\n })(window, document)\r\n}\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport 'jquery'\r\nimport deviceInfo from './utils/browser'\r\nimport 'normalize.css/normalize.css'\r\nimport './utils/flexible'\r\nimport '@/assets/scss/app.scss'\r\nimport store from './store'\r\nimport i18n, { getMessages } from './plugins/i18n'\r\n\r\nVue.config.productionTip = false\r\nconst deviceType = deviceInfo.getDeviceInfo({ info: ['deviceType'] }).deviceType\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const messages = getMessages()\r\n if (to.meta.title) {\r\n if (to.meta.title !== 'home') {\r\n document.title =\r\n messages.m.header[to.meta.title] + '-' + messages.m.footer.p1\r\n } else {\r\n document.title = messages.m.footer.p1\r\n }\r\n }\r\n next()\r\n})\r\n\r\n$('html').addClass(deviceType)\r\nnew Vue({\r\n store,\r\n router,\r\n i18n,\r\n render: (h) => h(App)\r\n}).$mount('#app')\r\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"",";(function (win, lib) {\r\n function init() {\r\n const doc = win.document\r\n const docEl = doc.documentElement\r\n const whdef = 100 / 1495\r\n const wH = window.innerHeight\r\n let wW = window.innerWidth\r\n wW = wW < 1284 ? 1284 : wW\r\n const rem = wW * whdef\r\n docEl.style.fontSize = rem + 'px'\r\n }\r\n init()\r\n})(window, window['lib'] || (window['lib'] = {}))\r\n","import VueI18n from 'vue-i18n'\r\nimport Vue from 'vue'\r\nimport store from '../store'\r\n\r\nVue.use(VueI18n)\r\nconst getDefaultLocale = () => {\r\n if (store.state.locale) {\r\n return store.state.locale\r\n }\r\n\r\n let locale = 'en'\r\n var language =\r\n navigator &&\r\n ((navigator.languages && navigator.languages[0]) ||\r\n navigator.language ||\r\n navigator.browserLanguage ||\r\n navigator.userLanguage)\r\n if (language && language.indexOf) {\r\n if (language.indexOf('zh-') === 0 || language === 'zh') {\r\n locale = 'zh-CN'\r\n } else if (language.toLowerCase() === 'en-us') {\r\n locale = 'en-US'\r\n }\r\n }\r\n\r\n store.dispatch('setBrowserDefaultLanguage', locale)\r\n store.dispatch('changeLocale', locale)\r\n return locale\r\n}\r\n\r\nconst i18n = new VueI18n({\r\n locale: getDefaultLocale(),\r\n messages: {\r\n 'zh-CN': require('../common/lang/zh'),\r\n 'en-US': require('../common/lang/en'),\r\n en: require('../common/lang/en')\r\n }\r\n})\r\n\r\nexport default i18n\r\n\r\nexport const getMessages = () => {\r\n const locale = store.state.locale\r\n return i18n.messages[locale]\r\n}\r\n"],"sourceRoot":""}