diginext-utils 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"mappings":"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;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,MAAG,EAAC,KAAK;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,EAAE;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,EAAE;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,EAAE;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,EAAE;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,IAAI;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;IAAC,CAAC,EAAC,GAAG;CAAE,AAAC;AAE3rD,iBAAiB;AACjB,MAAM,0BAAI,GAAG;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAAE,IAAI;IAA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","sources":["packages/diginext-utils/index.js","packages/diginext-utils/src/permission/requestCamera.js","packages/diginext-utils/src/permission/requestDeviceOrientationControl.js","packages/diginext-utils/src/device/index.js","packages/diginext-utils/src/array/index.js","packages/diginext-utils/src/math/index.js","packages/diginext-utils/src/device/browser.js","packages/diginext-utils/src/device/camera.js","packages/diginext-utils/src/object/index.js","packages/diginext-utils/src/string/index.js","packages/diginext-utils/src/string/url.js"],"sourcesContent":["export * from \"./src/array\";\nexport * from \"./src/device\";\nexport * from \"./src/device/browser\";\nexport * from \"./src/device/camera\";\nexport * from \"./src/math\";\nexport * from \"./src/object\";\nexport * from \"./src/string\";\nexport * from \"./src/string/url\";\nimport requestCamera from \"./src/permission/requestCamera\";\nimport requestDeviceOrientationControl from \"./src/permission/requestDeviceOrientationControl\";\n\nexport { requestCamera, requestDeviceOrientationControl };\n","const requestCamera = ({ audio = true, video = true }) => {\n\tif (typeof window == \"undefined\") return false;\n\n\treturn new Promise((resolve, reject) => {\n\t\t// Older browsers might not implement mediaDevices at all, so we set an empty object first\n\t\tif (navigator.mediaDevices === undefined) {\n\t\t\tnavigator.mediaDevices = {};\n\t\t}\n\n\t\t// Some browsers partially implement mediaDevices. We can't just assign an object\n\t\t// with getUserMedia as it would overwrite existing properties.\n\t\t// Here, we will just add the getUserMedia property if it's missing.\n\t\tif (navigator.mediaDevices.getUserMedia === undefined) {\n\t\t\tnavigator.mediaDevices.getUserMedia = function (constraints) {\n\t\t\t\t// First get ahold of the legacy getUserMedia, if present\n\t\t\t\tvar getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;\n\n\t\t\t\t// Some browsers just don't implement it - return a rejected promise with an error\n\t\t\t\t// to keep a consistent interface\n\t\t\t\tif (!getUserMedia) {\n\t\t\t\t\treturn Promise.reject(new Error(\"getUserMedia is not implemented in this browser\"));\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, wrap the call to the old navigator.getUserMedia with a Promise\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tgetUserMedia.call(navigator, constraints, resolve, reject);\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tnavigator.mediaDevices\n\t\t\t.getUserMedia({ audio, video })\n\t\t\t.then(function (stream) {\n\t\t\t\tresolve(true);\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tconsole.log(err.name + \": \" + err.message);\n\t\t\t\tresolve(false);\n\t\t\t});\n\t});\n};\n\nexport default requestCamera;\n","import { isAndroid } from \"../device\";\n\nconst requestDeviceOrientationControl = () => {\n\tif (typeof window == \"undefined\") return false;\n\treturn new Promise((resolve, reject) => {\n\t\tif (isAndroid()) resolve(true);\n\n\t\tif (typeof DeviceMotionEvent != \"undefined\" && DeviceMotionEvent.requestPermission) {\n\t\t\t// (optional) Do something before API request prompt.\n\t\t\tDeviceOrientationEvent.requestPermission()\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// (optional) Do something after API prompt dismissed.\n\t\t\t\t\tif (response == \"granted\") {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t// resolve({ status: true })\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t// resolve({ status: false, reason: \"DeviceMotionEvent is not support\" })\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((response) => {\n\t\t\t\t\tresolve(false);\n\t\t\t\t\t// resolve({ status: false, reason: response })\n\t\t\t\t});\n\t\t} else {\n\t\t\tresolve(false);\n\t\t\t// resolve({ status: false, reason: \"DeviceMotionEvent is not defined\" })\n\t\t}\n\t});\n};\n\nexport default requestDeviceOrientationControl;\n","export const isIos = () => {\n\tconst deviceInfo = checkOS();\n\tif (deviceInfo) return deviceInfo.os.toLowerCase() == \"ios\";\n\tconsole.log(\"Can't check OS\");\n\treturn null;\n};\n\nexport const isAndroid = () => {\n\tconst deviceInfo = checkOS();\n\tif (deviceInfo) return deviceInfo.os.toLowerCase() == \"android\";\n\tconsole.log(\"Can't check OS\");\n\treturn null;\n};\n\nexport const isMobile = () => {\n\tif (typeof navigator == \"undefined\") return null;\n\n\tif (\n\t\tnavigator.userAgent.match(/Android/i) ||\n\t\tnavigator.userAgent.match(/webOS/i) ||\n\t\tnavigator.userAgent.match(/iPhone/i) ||\n\t\tnavigator.userAgent.match(/iPad/i) ||\n\t\tnavigator.userAgent.match(/iPod/i) ||\n\t\tnavigator.userAgent.match(/BlackBerry/i) ||\n\t\tnavigator.userAgent.match(/Windows Phone/i)\n\t) {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/**\n *\n * @returns {{\n * screen,\n * browser,\n * browserVersion,\n * browserMajorVersion,\n * mobile,\n * os,\n * osVersion,\n * cookies,\n * flashVersion,\n * }}\n */\nexport const checkOS = () => {\n\tif (typeof window == \"undefined\") return {};\n\n\tif (typeof window?.deviceInfo == \"undefined\") {\n\t\tvar unknown = \"-\";\n\n\t\t// screen\n\t\tvar screenSize = \"\";\n\t\tif (screen.width) {\n\t\t\tvar width = screen.width ? screen.width : \"\";\n\t\t\tvar height = screen.height ? screen.height : \"\";\n\t\t\tscreenSize += \"\" + width + \" x \" + height;\n\t\t}\n\n\t\t// browser\n\t\tvar nVer = navigator.appVersion;\n\t\tvar nAgt = navigator.userAgent;\n\t\tvar browser = navigator.appName;\n\t\tvar version = \"\" + parseFloat(navigator.appVersion);\n\t\tvar majorVersion = parseInt(navigator.appVersion, 10);\n\t\tvar nameOffset, verOffset, ix;\n\n\t\t// Opera\n\t\tif ((verOffset = nAgt.indexOf(\"Opera\")) != -1) {\n\t\t\tbrowser = \"Opera\";\n\t\t\tversion = nAgt.substring(verOffset + 6);\n\t\t\tif ((verOffset = nAgt.indexOf(\"Version\")) != -1) {\n\t\t\t\tversion = nAgt.substring(verOffset + 8);\n\t\t\t}\n\t\t}\n\t\t// Opera Next\n\t\tif ((verOffset = nAgt.indexOf(\"OPR\")) != -1) {\n\t\t\tbrowser = \"Opera\";\n\t\t\tversion = nAgt.substring(verOffset + 4);\n\t\t}\n\t\t// Edge\n\t\telse if ((verOffset = nAgt.indexOf(\"Edge\")) != -1) {\n\t\t\tbrowser = \"Microsoft Edge\";\n\t\t\tversion = nAgt.substring(verOffset + 5);\n\t\t}\n\t\t// MSIE\n\t\telse if ((verOffset = nAgt.indexOf(\"MSIE\")) != -1) {\n\t\t\tbrowser = \"Microsoft Internet Explorer\";\n\t\t\tversion = nAgt.substring(verOffset + 5);\n\t\t}\n\t\t// Chrome\n\t\telse if ((verOffset = nAgt.indexOf(\"Chrome\")) != -1) {\n\t\t\tbrowser = \"Chrome\";\n\t\t\tversion = nAgt.substring(verOffset + 7);\n\t\t}\n\t\t// Safari\n\t\telse if ((verOffset = nAgt.indexOf(\"Safari\")) != -1) {\n\t\t\tbrowser = \"Safari\";\n\t\t\tversion = nAgt.substring(verOffset + 7);\n\t\t\tif ((verOffset = nAgt.indexOf(\"Version\")) != -1) {\n\t\t\t\tversion = nAgt.substring(verOffset + 8);\n\t\t\t}\n\t\t}\n\t\t// Firefox\n\t\telse if ((verOffset = nAgt.indexOf(\"Firefox\")) != -1) {\n\t\t\tbrowser = \"Firefox\";\n\t\t\tversion = nAgt.substring(verOffset + 8);\n\t\t}\n\t\t// MSIE 11+\n\t\telse if (nAgt.indexOf(\"Trident/\") != -1) {\n\t\t\tbrowser = \"Microsoft Internet Explorer\";\n\t\t\tversion = nAgt.substring(nAgt.indexOf(\"rv:\") + 3);\n\t\t}\n\t\t// Other browsers\n\t\telse if ((nameOffset = nAgt.lastIndexOf(\" \") + 1) < (verOffset = nAgt.lastIndexOf(\"/\"))) {\n\t\t\tbrowser = nAgt.substring(nameOffset, verOffset);\n\t\t\tversion = nAgt.substring(verOffset + 1);\n\t\t\tif (browser.toLowerCase() == browser.toUpperCase()) {\n\t\t\t\tbrowser = navigator.appName;\n\t\t\t}\n\t\t}\n\t\t// trim the version string\n\t\tif ((ix = version.indexOf(\";\")) != -1) version = version.substring(0, ix);\n\t\tif ((ix = version.indexOf(\" \")) != -1) version = version.substring(0, ix);\n\t\tif ((ix = version.indexOf(\")\")) != -1) version = version.substring(0, ix);\n\n\t\tmajorVersion = parseInt(\"\" + version, 10);\n\t\tif (isNaN(majorVersion)) {\n\t\t\tversion = \"\" + parseFloat(navigator.appVersion);\n\t\t\tmajorVersion = parseInt(navigator.appVersion, 10);\n\t\t}\n\n\t\t// mobile version\n\t\tvar mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);\n\n\t\t// cookie\n\t\tvar cookieEnabled = navigator.cookieEnabled ? true : false;\n\n\t\tif (typeof navigator.cookieEnabled == \"undefined\" && !cookieEnabled) {\n\t\t\tdocument.cookie = \"testcookie\";\n\t\t\tcookieEnabled = document.cookie.indexOf(\"testcookie\") != -1 ? true : false;\n\t\t}\n\n\t\t// system\n\t\tvar os = unknown;\n\t\tvar clientStrings = [\n\t\t\t{ s: \"Windows 10\", r: /(Windows 10.0|Windows NT 10.0)/ },\n\t\t\t{ s: \"Windows 8.1\", r: /(Windows 8.1|Windows NT 6.3)/ },\n\t\t\t{ s: \"Windows 8\", r: /(Windows 8|Windows NT 6.2)/ },\n\t\t\t{ s: \"Windows 7\", r: /(Windows 7|Windows NT 6.1)/ },\n\t\t\t{ s: \"Windows Vista\", r: /Windows NT 6.0/ },\n\t\t\t{ s: \"Windows Server 2003\", r: /Windows NT 5.2/ },\n\t\t\t{ s: \"Windows XP\", r: /(Windows NT 5.1|Windows XP)/ },\n\t\t\t{ s: \"Windows 2000\", r: /(Windows NT 5.0|Windows 2000)/ },\n\t\t\t{ s: \"Windows ME\", r: /(Win 9x 4.90|Windows ME)/ },\n\t\t\t{ s: \"Windows 98\", r: /(Windows 98|Win98)/ },\n\t\t\t{ s: \"Windows 95\", r: /(Windows 95|Win95|Windows_95)/ },\n\t\t\t{ s: \"Windows NT 4.0\", r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },\n\t\t\t{ s: \"Windows CE\", r: /Windows CE/ },\n\t\t\t{ s: \"Windows 3.11\", r: /Win16/ },\n\t\t\t{ s: \"Android\", r: /Android/ },\n\t\t\t{ s: \"Open BSD\", r: /OpenBSD/ },\n\t\t\t{ s: \"Sun OS\", r: /SunOS/ },\n\t\t\t{ s: \"Linux\", r: /(Linux|X11)/ },\n\t\t\t{ s: \"iOS\", r: /(iPhone|iPad|iPod)/ },\n\t\t\t{ s: \"Mac OS X\", r: /Mac OS X/ },\n\t\t\t{ s: \"Mac OS\", r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\n\t\t\t{ s: \"QNX\", r: /QNX/ },\n\t\t\t{ s: \"UNIX\", r: /UNIX/ },\n\t\t\t{ s: \"BeOS\", r: /BeOS/ },\n\t\t\t{ s: \"OS/2\", r: /OS\\/2/ },\n\t\t\t{ s: \"Search Bot\", r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/ },\n\t\t];\n\t\tfor (var id in clientStrings) {\n\t\t\tvar cs = clientStrings[id];\n\t\t\tif (cs.r.test(nAgt)) {\n\t\t\t\tos = cs.s;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tvar osVersion = unknown;\n\n\t\tif (/Windows/.test(os)) {\n\t\t\tosVersion = /Windows (.*)/.exec(os)[1];\n\t\t\tos = \"Windows\";\n\t\t}\n\n\t\tswitch (os) {\n\t\t\tcase \"Mac OS X\":\n\t\t\t\tosVersion = /Mac OS X (10[\\.\\_\\d]+)/.exec(nAgt)[1];\n\t\t\t\tbreak;\n\n\t\t\tcase \"Android\":\n\t\t\t\tosVersion = /Android ([\\.\\_\\d]+)/.exec(nAgt)[1];\n\t\t\t\tbreak;\n\n\t\t\tcase \"iOS\":\n\t\t\t\tosVersion = /OS (\\d+)_(\\d+)_?(\\d+)?/.exec(nVer);\n\t\t\t\tosVersion = osVersion[1] + \".\" + osVersion[2] + \".\" + (osVersion[3] | 0);\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// flash (you'll need to include swfobject)\n\t\t/* script src=\"//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js\" */\n\t\tvar flashVersion = \"no check\";\n\t\tif (typeof swfobject != \"undefined\") {\n\t\t\tvar fv = swfobject.getFlashPlayerVersion();\n\t\t\tif (fv.major > 0) {\n\t\t\t\tflashVersion = fv.major + \".\" + fv.minor + \" r\" + fv.release;\n\t\t\t} else {\n\t\t\t\tflashVersion = unknown;\n\t\t\t}\n\t\t}\n\n\t\tconst deviceInfo = {\n\t\t\tscreen: screenSize,\n\t\t\tbrowser: browser,\n\t\t\tbrowserVersion: version,\n\t\t\tbrowserMajorVersion: majorVersion,\n\t\t\tmobile: mobile,\n\t\t\tos: os,\n\t\t\tosVersion: osVersion,\n\t\t\tcookies: cookieEnabled,\n\t\t\tflashVersion: flashVersion,\n\t\t};\n\n\t\twindow.deviceInfo = deviceInfo;\n\t}\n\n\treturn window.deviceInfo;\n};\n","import { randInt } from \"../math\";\n\n/**\n *\n * @param {Array} array\n * @param {string} key\n * @returns {Number}\n*/\nexport const sumArray = (array, key) => {\n if (!array) {\n console.warn(\"ARRAY NOT EXITED !\");\n return 0;\n }\n if (key) return array.reduce((c, v) => c + v[key], 0);\n else return array.reduce((c, v) => c + v, 0);\n};\n\n/**\n *\n * @param {Array} array\n * @param {string} key\n * @returns {Number}\n */\nexport const averageArray = (array, key) => {\n if (!array) {\n console.warn(\"ARRAY NOT EXITED !\");\n return 0;\n }\n return this.sum(array, key) / array.length || 0;\n};\n\n/**\n *\n * @param {Array} array\n * @param {string} key\n * @returns {Number}\n */\nexport const minArray = (array, key) => {\n if (!array) {\n console.warn(\"ARRAY NOT EXITED !\");\n return 0;\n }\n if (array.length > 0) {\n if (key) return array.reduce((c, v) => (c < v[key] ? c : v[key]));\n else return array.reduce((c, v) => (c < v ? c : v));\n }\n return 0;\n};\n\n/**\n *\n * @param {Array} array\n * @param {string} key\n * @returns {Number}\n */\nexport const maxArray = (array, key) => {\n if (!array) {\n console.warn(\"ARRAY NOT EXITED !\");\n return 0;\n }\n if (array.length > 0) {\n if (key) return array.reduce((c, v) => (c > v[key] ? c : v[key]));\n else return array.reduce((c, v) => (c > v ? c : v));\n }\n return 0;\n};\n\n/**\n *\n * @param {Array} array\n * @param {string} key\n * @returns {Array}\n */\nexport const sortElementByString = (array, key) => {\n if (!Array.isArray(array)) return [];\n if (key)\n return array.sort((x, y) => {\n var a = x[key].toUpperCase(),\n b = y[key].toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n console.log(\"NO KEY\");\n};\n\n/**\n *\n * @param {Array} array\n * @param {string} key\n * @returns {Array}\n */\nexport const sortElementByNumber = (array, key) => {\n if (!Array.isArray(array)) return [];\n if (key)\n return array.sort((a, b) => {\n return a[key] - b[key];\n });\n console.log(\"NO KEY\");\n};\n\n/**\n *\n * @param {Array} array\n * @returns {any}\n */\nexport const firstElement = (array) => {\n if (array) if (array.length || array.length > 0) return array[0];\n return null;\n};\n\n/**\n *\n * @param {Array} array\n * @returns {any}\n */\nexport const lastElement = (array) => {\n if (array) if (array.length || array.length > 0) return array[array.length - 1];\n return null;\n};\n\n/**\n *\n * @param {Array} array\n * @returns {any}\n */\nexport const randomIndex = (array) => {\n if (array) return randInt(0, array.length - 1);\n return -1;\n};\n\n/**\n *\n * @param {Array} array\n * @returns {any}\n */\nexport const randomElement = (array) => {\n if (array) return array[randomIndex(array)];\n return null;\n};\n\n/**\n * Remove same elements from 2 arrays\n * @param {Array} list1\n * @param {Array} list2\n * @param {string} key\n * @returns {Array}\n */\nexport const mergeAndMakeUniqueElement = (list1, list2, key) => {\n if (!list1 || !list2) return;\n\n if (key) {\n return list1\n .concat(list2)\n .filter((item, index, self) => {\n return self.findIndex(x => x[key] == item[key]) === index\n })\n }\n else {\n return list1.concat(list2)\n .filter((x, index, self) => {\n return self.indexOf(x) === index\n })\n }\n\n};\n\n/**\n * check target == toMatch\n * @param {Array} target\n * @param {Array} toMatch\n * @returns {Boolean}\n */\nexport const allMatchInArray = (target, toMatch) => {\n if (!target || !toMatch) return false;\n const found = toMatch.every((item) => {\n return target.includes(item);\n });\n return found;\n};\n\n\n\n/**\n *\n * @param {any} item\n * @param {Array} array\n * @returns {Array}\n */\nexport const removeItem = (item, array) => {\n const index = array.indexOf(item);\n if (index == -1) {\n console.warn(\"[ArrayExtra.removeItem] Item not found.\");\n return array;\n }\n array.splice(index, 1);\n return array;\n};\n\n/**\n *\n * @param {string} key\n * @param {any} value\n * @param {Array} array\n * @returns {Array}\n */\nexport const removeItemByKey = (key, value, array) => {\n const foundIndex = array.findIndex((item) => {\n return item[key] == value;\n });\n\n\tif (foundIndex < 0) {\n\t\tconsole.warn(\"[ArrayExtra.removeItemByKey] Item not found.\", key, value);\n\t\treturn array;\n\t}\n\tarray.splice(foundIndex, 1);\n\treturn array;\n};\n\n/**\n * Get an array with shuffle element\n * @param {Array} array\n * @param {Number} n\n * @returns {Array}\n */\n export const getRandom = (array, n) => {\n\tvar result = new Array(n),\n\t\tlen = array.length,\n\t\ttaken = new Array(len);\n\tif (n > len) throw new RangeError(\"getRandom: more elements taken than available\");\n\twhile (n--) {\n\t\tvar x = Math.floor(Math.random() * len);\n\t\tresult[n] = array[x in taken ? taken[x] : x];\n\t\ttaken[x] = --len in taken ? taken[len] : len;\n\t}\n\treturn result;\n};\n\n/**\n * Get an array with shuffle element\n * @param {Array} array\n * @param {Number} n\n * @returns {Array}\n */\n export const getHalfRandom = (array, n) => {\n\tvar n = Math.ceil(array.length / 2);\n\treturn array.getRandom(n);\n};\n\n/**\n * Make array shuffle itself\n * @param {Array} array\n * @returns {Array}\n */\n export const shuffle = (array) => {\n\tvar i = array.length,\n\t\tj,\n\t\ttemp;\n\tif (i == 0) return array;\n\twhile (--i) {\n\t\tj = Math.floor(Math.random() * (i + 1));\n\t\ttemp = array[i];\n\t\tarray[i] = array[j];\n\t\tarray[j] = temp;\n\t}\n\treturn array;\n};\n\n/**\n *\n * @param {Array} array\n * @param {Number} oldIndex\n * @param {Number} newIndex\n * @returns {Array}\n */\n export const moveIndex = (array, oldIndex, newIndex) => {\n\tif (newIndex >= array.length) {\n\t\tvar k = newIndex - array.length + 1;\n\t\twhile (k--) {\n\t\t\tarray.push(undefined);\n\t\t}\n\t}\n\tarray.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n\treturn array; \n};\n\n\nexport const moveArray = (array, oldIndex, newIndex) => {\n\twhile (oldIndex < 0) {\n\t\toldIndex += array.length;\n\t}\n\twhile (newIndex < 0) {\n\t\tnewIndex += array.length;\n\t}\n\tif (newIndex >= array.length) {\n\t\tvar k = newIndex - array.length;\n\t\twhile (k-- + 1) {\n\t\t\tarray.push(999);\n\t\t}\n\t}\n\tarray.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n\treturn array;\n};\n","const DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n/**\n *\n * @param {Number} number\n * @return {Number}\n */\nexport const randRound = (number) => {\n\treturn Math.round(Math.random() * number);\n};\n\n/**\n *\n * @param {Number} number\n * @return {Number}\n */\nexport const rand = (number) => {\n\treturn (Math.random() - Math.random()) * number;\n};\n\n/**\n *\n * @param {Number} number\n * @return {Number}\n */\nexport const randHalt = (number) => {\n\tvar rand = Math.random() - Math.random();\n\tvar res;\n\tif (rand > 0) {\n\t\tres = rand * (number / 2) + number / 2;\n\t} else {\n\t\tres = rand * (number / 2) - number / 2;\n\t}\n\treturn Math.abs(res);\n};\n/**\n *\n * @param {Number} low\n * @param {Number} high\n * @return {Number}\n */\nexport const randInt = (low, high) => {\n\treturn low + Math.floor(Math.random() * (high - low + 1));\n};\n\n/**\n *\n * @param {Number} low\n * @param {Number} high\n * @return {Number}\n */\nexport const randFloat = (low, high) => {\n\treturn low + Math.random() * (high - low);\n};\n/**\n *\n * @param {Number} degrees\n * @return {Number}\n */\nexport const degToRad = (degrees) => {\n\treturn degrees * DEG2RAD;\n};\n\n/**\n *\n * @param {Number} degrees\n * @return {Number}\n */\nexport const radToDeg = (radians) => {\n\treturn radians * RAD2DEG;\n};\n\n// const MathExtra = {\n// isRotateLeft(a, b, c) {\n// return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x) > 0;\n// },\n\n// deg_between_points_360(cx, cy, ex, ey) {\n// var theta = this.angleLine(cx, cy, ex, ey); // range (-180, 180]\n// if (theta < 0) theta = 360 + theta; // range [0, 360)\n// return theta;\n// },\n\n// deg_between_points(cx, cy, ex, ey) {\n// var dy = ey - cy;\n// var dx = ex - cx;\n// var theta = Math.atan2(dy, dx); // range (-PI, PI]\n// theta *= 180 / Math.PI; // rads to degs, range (-180, 180]\n// return theta;\n// },\n\n// angle_between_points(cx, cy, ex, ey) {\n// var dy = ey - cy;\n// var dx = ex - cx;\n// var theta = Math.atan2(dy, dx); // range (-PI, PI]\n// // theta *= 180 / Math.PI; // rads to degs, range (-180, 180]\n// return theta;\n// },\n\n// distance2Point(x1, y1, x2, y2) {\n// var dist = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n// return dist;\n// },\n\n// clamp(value, min, max) {\n// return Math.max(min, Math.min(max, value));\n// },\n\n// // compute euclidian modulo of m % n\n// // https://en.wikipedia.org/wiki/Modulo_operation\n\n// euclideanModulo(n, m) {\n// return ((n % m) + m) % m;\n// },\n\n// // Linear mapping from range <a1, a2> to range <b1, b2>\n\n// mapLinear(x, a1, a2, b1, b2) {\n// return b1 + ((x - a1) * (b2 - b1)) / (a2 - a1);\n// },\n\n// // https://en.wikipedia.org/wiki/Linear_interpolation\n\n// lerp(x, y, t) {\n// return (1 - t) * x + t * y;\n// },\n\n// // http://en.wikipedia.org/wiki/Smoothstep\n\n// smoothstep(x, min, max) {\n// if (x <= min) return 0;\n// if (x >= max) return 1;\n\n// x = (x - min) / (max - min);\n\n// return x * x * (3 - 2 * x);\n// },\n\n// smootherstep(x, min, max) {\n// if (x <= min) return 0;\n// if (x >= max) return 1;\n\n// x = (x - min) / (max - min);\n\n// return x * x * x * (x * (x * 6 - 15) + 10);\n// },\n\n// // Random integer from <low, high> interval\n\n// // Random float from <-range/2, range/2> interval\n\n// randFloatSpread(range) {\n// return range * (0.5 - Math.random());\n// },\n\n// rotationDegToRad(rotation) {\n// return {\n// x: this.degToRad(rotation.x),\n// y: this.degToRad(rotation.y),\n// z: this.degToRad(rotation.z),\n// };\n// },\n\n// radToDeg(radians) {\n// return radians * RAD2DEG;\n// },\n\n// isPowerOfTwo(value) {\n// return (value & (value - 1)) === 0 && value !== 0;\n// },\n\n// nearestPowerOfTwo(value) {\n// return Math.pow(2, Math.round(Math.log(value) / Math.LN2));\n// },\n\n// nextPowerOfTwo(value) {\n// value--;\n// value |= value >> 1;\n// value |= value >> 2;\n// value |= value >> 4;\n// value |= value >> 8;\n// value |= value >> 16;\n// value++;\n\n// return value;\n// },\n\n// circleByPercentRadius(percent, radius) {\n// const theta = ((percent * 360 - 90) * Math.PI) / 180;\n\n// const x = radius * Math.cos(theta);\n// const y = -radius * Math.sin(theta);\n// return { x, y };\n// },\n\n// /**\n// *\n// * @param {Array} array\n// */\n// arrayToVector(array = [0, 0, 0]) {\n// const keys = ['x', 'y', 'z', 'w'];\n// const result = {};\n// array.map((item, index) => {\n// result[keys[index]] = item;\n// });\n// return result;\n// },\n// };\n\n// export default MathExtra;\n","export const isPotrait = (params) => {\n\tif (typeof window == \"undefined\") return false;\n\n\tif (!window.orientation) return window.matchMedia(\"(orientation: portrait)\").matches;\n\treturn !(window.orientation === 90 || window.orientation === -90);\n};\n\nexport const isLandscape = (params) => {\n\treturn !isPotrait();\n};\n\nexport const ua = (params) => {\n\tif (typeof navigator == \"undefined\") return null;\n\tif (typeof window == \"undefined\") return null;\n\n\treturn navigator.userAgent || navigator.vendor || window.opera;\n};\n\nexport const isFacebookWebview = (params) => {\n\tvar ua = ua();\n\tif (ua) return ua.indexOf(\"FBAN\") > -1 || ua.indexOf(\"FBAV\") > -1;\n};\n\nexport const isInAppWebview = (params) => {\n\tconst rules = [\"WebView\", \"(iPhone|iPod|iPad)(?!.*Safari/)\", \"Android.*(wv|.0.0.0)\"];\n\tconst regex = new RegExp(`(${rules.join(\"|\")})`, \"ig\");\n\tif (ua()) return Boolean(ua().match(regex));\n\treturn false;\n};\n","import requestCamera from \"../permission/requestCamera\";\n\n/**\n *\n * @param {{\n * container,\n * facingMode : environment | user,\n * audio : boolean,\n * }} param0\n * @returns\n */\nexport function getWebcam({\n\t//\n\tcontainer,\n\tfacingMode = \"environment\",\n\taudio = false,\n}) {\n\tif (typeof window == \"undefined\") return;\n\tcontainer = container || document.body;\n\n\treturn new Promise(async (resolve, reject) => {\n\t\tconst video = document.createElement(\"video\");\n\t\tvideo.style.position = \"absolute\";\n\t\tvideo.style.top = 0;\n\t\tvideo.style.left = 0;\n\t\tvideo.style.width = \"100%\";\n\t\tvideo.style.height = \"100%\";\n\t\tcontainer.append(video);\n\n\t\tlet inputCameras = [];\n\t\tlet currentCamera;\n\n\t\t/**\n\t\t * @type {MediaStreamConstraints}\n\t\t */\n\t\tconst requestedMediaConstraints = {\n\t\t\tvideo: {\n\t\t\t\tfacingMode: { exact: facingMode },\n\t\t\t},\n\t\t\taudio,\n\t\t};\n\n\t\t/**\n\t\t * @type {MediaStream}\n\t\t */\n\t\tlet stream;\n\t\tlet isAllowed = false;\n\n\t\tconsole.log(\"[Camera.js] Requesting:\", requestedMediaConstraints);\n\t\tconst res = await requestCamera({ audio });\n\t\tif (!res) {\n\t\t\tsetTimeout(function () {\n\t\t\t\thandleError({ name: \"Error\", message: \"NotSupported\" });\n\t\t\t}, 50);\n\t\t}\n\n\t\t// start requesting media permissions:\n\n\t\t// console.log(\"[Camera.js] Requesting:\", requestedMediaConstraints);\n\n\t\t// if (navigator.mediaDevices.enumerateDevices === undefined) {\n\t\t// \tsetTimeout(function () {\n\t\t// \t\thandleError({ name: \"Error\", message: \"NotSupported\" });\n\t\t// \t}, 50);\n\t\t// } else {\n\t\tnavigator.mediaDevices.enumerateDevices().then(parseDevices).catch(handleError);\n\t\t// }\n\n\t\t/**\n\t\t * @param {MediaDeviceInfo[]} devices\n\t\t */\n\t\tfunction parseDevices(devices) {\n\t\t\tinputCameras = [];\n\t\t\tlet backCameras = [];\n\n\t\t\tdevices.forEach(function (device) {\n\t\t\t\tif (device.kind == \"videoinput\" && typeof device.deviceId != \"undefined\" && device.deviceId != \"\") {\n\t\t\t\t\tinputCameras.push(device);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// //alert (JSON.stringify (devices));\n\t\t\tconsole.log(\"[Camera.js] inputCameras:\", inputCameras);\n\n\t\t\tif (inputCameras.length > 0) {\n\t\t\t\tlet cams = \"\";\n\t\t\t\tlet backCamera;\n\n\t\t\t\tinputCameras.map((cam, index) => {\n\t\t\t\t\tcams += `[${cam.deviceId}] ${cam.kind} | ${cam.label}\\n`;\n\t\t\t\t\t// console.log(cam);\n\t\t\t\t\tlet label = cam.label.toLowerCase();\n\t\t\t\t\tif (label.indexOf(\"back\") > -1 || label.indexOf(\"facetime\") > -1) {\n\t\t\t\t\t\tbackCamera = cam;\n\t\t\t\t\t\tbackCameras.push(backCamera);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (backCameras.length > 1) {\n\t\t\t\t\tbackCamera = backCameras[backCameras.length - 1];\n\t\t\t\t}\n\n\t\t\t\tconsole.log(`[Camera.js] All input sources:`, cams);\n\t\t\t\tconsole.log(`[Camera.js] This device has ${backCameras.length} back camera${backCameras.length > 1 ? \"s\" : \"\"}.`);\n\t\t\t\tconsole.log(\"[Camera.js] backCameras:\", JSON.stringify(backCameras));\n\n\t\t\t\tcurrentCamera = backCamera;\n\n\t\t\t\tif (scope.onGotDevices) {\n\t\t\t\t\tscope.onGotDevices(devices);\n\t\t\t\t}\n\n\t\t\t\t// Lấy stream của camera sau\n\t\t\t\t// (Lấy cái cuối cùng trong danh sách trước, thường sẽ là camera chính trên Android)\n\t\t\t\tgetStreamOfCameraId(backCamera.deviceId)\n\t\t\t\t\t.then(onStreamReceived)\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tif (backCameras.length > 1) {\n\t\t\t\t\t\t\t// nếu thiết bị có nhiều hơn 1 camera sau -> thử lấy camera khác\n\t\t\t\t\t\t\tbackCamera = backCameras[backCameras.length - 2];\n\t\t\t\t\t\t\tgetStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch(handleError);\n\t\t\t\t\t\t} else if (backCameras.length > 2) {\n\t\t\t\t\t\t\t// nếu thiết bị có nhiều hơn 2 camera sau -> thử lấy camera khác nữa\n\t\t\t\t\t\t\tbackCamera = backCameras[backCameras.length - 3];\n\t\t\t\t\t\t\tgetStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch(handleError);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// nếu thiết bị đéo có camera sau...\n\t\t\t\t\t\t\thandleError(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnavigator.mediaDevices.getUserMedia(requestedMediaConstraints).then(onStreamReceived).catch(handleError);\n\n\t\t\t\t// if (scope.onGotDevicesFailed) scope.onGotDevicesFailed();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @param {MediaStream} stream\n\t\t */\n\t\tfunction onStreamReceived(stream) {\n\t\t\tif (inputCameras.length == 0) {\n\t\t\t\tconsole.log(\"[Camera.js] Not found any back cameras, request again?\");\n\t\t\t\tnavigator.mediaDevices.enumerateDevices().then(parseDevices).catch(handleError);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tisAllowed = true;\n\n\t\t\tplayWebcamVideo(stream);\n\t\t}\n\n\t\t/**\n\t\t * @param {MediaStream} _stream\n\t\t */\n\t\tfunction playWebcamVideo(_stream) {\n\t\t\tstream = _stream;\n\n\t\t\tif (\"srcObject\" in video) {\n\t\t\t\t// //alert ('GOT STREAM VIDEO OBJECT');\n\t\t\t\tvideo.srcObject = _stream;\n\t\t\t} else {\n\t\t\t\t// //alert ('GOT STREAM VIDEO SOURCE URL');\n\t\t\t\t// Avoid using this in new browsers, as it is going away.\n\t\t\t\tvideo.src = window.URL.createObjectURL(_stream);\n\t\t\t}\n\n\t\t\t// required to tell iOS safari we don't want fullscreen\n\t\t\tvideo.setAttribute(\"playsinline\", true);\n\t\t\tvideo.setAttribute(\"muted\", true);\n\t\t\tvideo.setAttribute(\"autoplay\", true);\n\t\t\tvideo.muted = true;\n\t\t\tvideo.autoplay = true;\n\t\t\tvideo.style.objectFit = \"cover\";\n\t\t\tvideo.play();\n\n\t\t\t// auto play\n\t\t\tvideo.addEventListener(\"canplay\", function (e) {\n\t\t\t\t// //alert ('CAN PLAY');\n\t\t\t});\n\n\t\t\tvideo.addEventListener(\"canplaythrough\", function (e) {\n\t\t\t\t// //alert ('CAN PLAY THROUGH');\n\t\t\t});\n\n\t\t\tvideo.addEventListener(\"error\", (e) => console.log(\"[Camera.js] <video> error:\", e));\n\n\t\t\tvideo.addEventListener(\"stalled\", function (e) {\n\t\t\t\t// //alert ('CANNOT GET METADATA');\n\t\t\t\tisAllowed = false;\n\t\t\t\tconsole.log(\"[Camera.js] <video> stalled:\", e);\n\n\t\t\t\treject();\n\t\t\t});\n\n\t\t\tvideo.addEventListener(\"loadedmetadata\", function (e) {\n\t\t\t\tif (currentCamera.label.toLowerCase().indexOf(\"facetime\") > -1) {\n\t\t\t\t\tvideo.style.transform = \"scaleX(-1)\";\n\t\t\t\t\tvideo.style.webkitTransform = \"scaleX(-1)\";\n\t\t\t\t}\n\n\t\t\t\tvideo.play();\n\n\t\t\t\tresolve(video);\n\t\t\t});\n\t\t}\n\n\t\tfunction getStreamOfCameraId(id) {\n\t\t\tconst constraints = {\n\t\t\t\tvideo: { deviceId: { exact: id } },\n\t\t\t\taudio: false,\n\t\t\t};\n\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tnavigator.mediaDevices.getUserMedia(constraints).then(resolve).catch(reject);\n\t\t\t});\n\t\t}\n\n\t\tfunction handleError(err) {\n\t\t\tconsole.error(err);\n\t\t\tconst errMsg = \"[Camera.js] \" + err.name + \": \" + err.message;\n\t\t\tconsole.error(errMsg);\n\n\t\t\tisAllowed = false;\n\n\t\t\treject();\n\t\t}\n\t});\n}\n","export const isNull = (object) => {\n\tif (typeof object == \"undefined\") return true;\n\tif (object == \"\") return true;\n\tif (Array.isArray(object)) return object.length == 0;\n\n\treturn object == null;\n};\n\nexport const toBool = (object) => {\n\tif (isNull(object)) return false;\n\tobject = object.toString();\n\n\treturn object === \"true\" || object == \"1\";\n};\n\nexport const toInt = (object) => {\n\tif (isNull(object)) return 0;\n\tobject = object.toString();\n\n\treturn parseInt(object, 10);\n};\n\nexport const toFloat = (object) => {\n\tif (isNull(object)) return 0;\n\tobject = object.toString();\n\n\treturn parseFloat(object);\n};\n\n/**\n * Convert value in object to array\n * @param {object} obj\n * @returns {Array}\n */\nexport const toArray = (obj) => {\n\tconst array = [];\n\tfor (const key in obj) {\n\t\tarray.push(obj[key]);\n\t}\n\treturn array;\n};\n","// import { log } from \"../../helper/log\";\n// import { startCase, toLower } from \"lodash\";\nimport { isNull } from \"../object\";\n\nexport const textLowCase = \"abcdefghijklmnopqrstuvwxyz\";\nexport const numeric = \"0123456789\";\nexport const punctuation = \"!@#$%^&*()_+~|}{[];?><,./-=\";\nexport const allCharacter = `đĐaáàảãạăắằẳẵặâấầẩẫậeéèẻẽẹêếềểễệoóòỏõọôốồổỗộơớờởỡợiíìỉĩịuúùủũụưứừửữựyýỳỷỹỵAÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬEÉÈẺẼẸÊẾỀỂỄỆOÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢIÍÌỈĨỊUÚÙỦŨỤƯỨỪỬỮỰYÝỲ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\\`abcdefghijklmnopqrstuvwxyz{|}`;\n\n//prettier-ignore\nconst char_map={À:\"A\",Á:\"A\",Â:\"A\",Ã:\"A\",Ä:\"A\",Å:\"A\",Æ:\"AE\",Ç:\"C\",È:\"E\",É:\"E\",Ê:\"E\",Ë:\"E\",Ì:\"I\",Í:\"I\",Î:\"I\",Ï:\"I\",Ð:\"D\",Ñ:\"N\",Ò:\"O\",Ó:\"O\",Ô:\"O\",Õ:\"O\",Ö:\"O\",Ő:\"O\",Ø:\"O\",Ù:\"U\",Ú:\"U\",Û:\"U\",Ü:\"U\",Ű:\"U\",Ý:\"Y\",Þ:\"TH\",ß:\"ss\",à:\"a\",á:\"a\",â:\"a\",ã:\"a\",ä:\"a\",å:\"a\",æ:\"ae\",ç:\"c\",è:\"e\",é:\"e\",ê:\"e\",ë:\"e\",ì:\"i\",í:\"i\",î:\"i\",ï:\"i\",ð:\"d\",ñ:\"n\",ò:\"o\",ó:\"o\",ô:\"o\",õ:\"o\",ö:\"o\",ő:\"o\",ø:\"o\",ù:\"u\",ú:\"u\",û:\"u\",ü:\"u\",ű:\"u\",ý:\"y\",þ:\"th\",ÿ:\"y\",\"©\":\"(c)\",Α:\"A\",Β:\"B\",Γ:\"G\",Δ:\"D\",Ε:\"E\",Ζ:\"Z\",Η:\"H\",Θ:\"8\",Ι:\"I\",Κ:\"K\",Λ:\"L\",Μ:\"M\",Ν:\"N\",Ξ:\"3\",Ο:\"O\",Π:\"P\",Ρ:\"R\",Σ:\"S\",Τ:\"T\",Υ:\"Y\",Φ:\"F\",Χ:\"X\",Ψ:\"PS\",Ω:\"W\",Ά:\"A\",Έ:\"E\",Ί:\"I\",Ό:\"O\",Ύ:\"Y\",Ή:\"H\",Ώ:\"W\",Ϊ:\"I\",Ϋ:\"Y\",α:\"a\",β:\"b\",γ:\"g\",δ:\"d\",ε:\"e\",ζ:\"z\",η:\"h\",θ:\"8\",ι:\"i\",κ:\"k\",λ:\"l\",μ:\"m\",ν:\"n\",ξ:\"3\",ο:\"o\",π:\"p\",ρ:\"r\",σ:\"s\",τ:\"t\",υ:\"y\",φ:\"f\",χ:\"x\",ψ:\"ps\",ω:\"w\",ά:\"a\",έ:\"e\",ί:\"i\",ό:\"o\",ύ:\"y\",ή:\"h\",ώ:\"w\",ς:\"s\",ϊ:\"i\",ΰ:\"y\",ϋ:\"y\",ΐ:\"i\",Ş:\"S\",İ:\"I\",Ç:\"C\",Ü:\"U\",Ö:\"O\",Ğ:\"G\",ş:\"s\",ı:\"i\",ç:\"c\",ü:\"u\",ö:\"o\",ğ:\"g\",А:\"A\",Б:\"B\",В:\"V\",Г:\"G\",Д:\"D\",Е:\"E\",Ё:\"Yo\",Ж:\"Zh\",З:\"Z\",И:\"I\",Й:\"J\",К:\"K\",Л:\"L\",М:\"M\",Н:\"N\",О:\"O\",П:\"P\",Р:\"R\",С:\"S\",Т:\"T\",У:\"U\",Ф:\"F\",Х:\"H\",Ц:\"C\",Ч:\"Ch\",Ш:\"Sh\",Щ:\"Sh\",Ъ:\"\",Ы:\"Y\",Ь:\"\",Э:\"E\",Ю:\"Yu\",Я:\"Ya\",а:\"a\",б:\"b\",в:\"v\",г:\"g\",д:\"d\",е:\"e\",ё:\"yo\",ж:\"zh\",з:\"z\",и:\"i\",й:\"j\",к:\"k\",л:\"l\",м:\"m\",н:\"n\",о:\"o\",п:\"p\",р:\"r\",с:\"s\",т:\"t\",у:\"u\",ф:\"f\",х:\"h\",ц:\"c\",ч:\"ch\",ш:\"sh\",щ:\"sh\",ъ:\"\",ы:\"y\",ь:\"\",э:\"e\",ю:\"yu\",я:\"ya\",Є:\"Ye\",І:\"I\",Ї:\"Yi\",Ґ:\"G\",є:\"ye\",і:\"i\",ї:\"yi\",ґ:\"g\",Č:\"C\",Ď:\"D\",Ě:\"E\",Ň:\"N\",Ř:\"R\",Š:\"S\",Ť:\"T\",Ů:\"U\",Ž:\"Z\",č:\"c\",ď:\"d\",ě:\"e\",ň:\"n\",ř:\"r\",š:\"s\",ť:\"t\",ů:\"u\",ž:\"z\",Ą:\"A\",Ć:\"C\",Ę:\"e\",Ł:\"L\",Ń:\"N\",Ó:\"o\",Ś:\"S\",Ź:\"Z\",Ż:\"Z\",ą:\"a\",ć:\"c\",ę:\"e\",ł:\"l\",ń:\"n\",ó:\"o\",ś:\"s\",ź:\"z\",ż:\"z\",Ā:\"A\",Č:\"C\",Ē:\"E\",Ģ:\"G\",Ī:\"i\",Ķ:\"k\",Ļ:\"L\",Ņ:\"N\",Š:\"S\",Ū:\"u\",Ž:\"Z\",ā:\"a\",č:\"c\",ē:\"e\",ģ:\"g\",ī:\"i\",ķ:\"k\",ļ:\"l\",ņ:\"n\",š:\"s\",ū:\"u\",ž:\"z\",};\n\n//prettier-ignore\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\n/**\n * allCharacter = `đĐaáàảãạăắằẳẵặâấầẩẫậeéèẻẽẹêếềểễệoóòỏõọôốồổỗộơớờởỡợiíìỉĩịuúùủũụưứừửữựyýỳỷỹỵAÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬEÉÈẺẼẸÊẾỀỂỄỆOÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢIÍÌỈĨỊUÚÙỦŨỤƯỨỪỬỮỰYÝỲ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\\`abcdefghijklmnopqrstuvwxyz{|}`;\n * @param {number} length\n * @returns {string}\n */\nexport const randAllCharacterByLength = (length = 0) => {\n\treturn randomStringByLength(length, allCharacter);\n};\n\n/**\n * @param {number} length\n * @param {textLowCase | numeric | punctuation | allCharacter} str\n * @returns {string}\n */\nexport const randomStringByLength = (length, str = textLowCase) => {\n\tlet result = \"\";\n\n\tfor (let i = 0; i < length; i++) {\n\t\tresult += str.charAt(Math.floor(Math.random() * str.length));\n\t}\n\treturn result;\n};\n\n/**\n * Get string between str1 and str2 from text\n * @param {string} text\n * @param {string} str1\n * @param {string} str2\n * @return {string}\n */\nexport const getBetween = (text, str1, str2 = \"\") => {\n\tif (!text) return \"\";\n\tif (text.indexOf(str1) <= -1) return \"\";\n\n\tconst firstIndex = text.indexOf(str1) + str1.length;\n\tconst secondIndex = str2 ? text.indexOf(str2, firstIndex) : text.length;\n\treturn text.substring(firstIndex, secondIndex);\n};\n\n/**\n * Convert object to string\n * @param {*} object\n * @return {string}\n */\nexport const makeString = (object = \"\") => {\n\t/// Ensure some object is a coerced to a string\n\tif (isNull(object)) return \"\";\n\n\treturn \"\" + object;\n};\n\n/**\n * toUpperCase\n * @param {*} str\n * @return {string}\n */\nexport const toUpperCase = (str = \"\") => {\n\treturn makeString(str).toUpperCase();\n};\n\n/**\n * toLowerCase\n * @param {*} str\n * @return {string}\n */\nexport const toLowerCase = (str = \"\") => {\n\treturn makeString(str).toLowerCase();\n};\n\n/**\n * toLowerCase\n * @param {*} str\n * @return {string}\n */\nexport const titleize = (str = \"\") => {\n\tconst regString = new RegExp(/(?:^|\\s|-)\\S/g);\n\treturn toLowerCase(str).replace(regString, function (c) {\n\t\treturn c.toUpperCase();\n\t});\n};\n\n/**\n * Convert only first charater to UpperCase\n * @param {*} str\n * @return {string}\n */\nexport const capitalize = (str, lowercaseRest = 1) => {\n\tstr = makeString(str);\n\tconst remainingChars = !lowercaseRest ? str.slice(1) : str.slice(1).toLowerCase();\n\n\treturn str.charAt(0).toUpperCase() + remainingChars;\n};\n\n/**\n * Convert first character from every single words to UpperCase\n * @param {*} str\n * @return {string}\n */\nexport const capitalizeName = (str) => {\n\tstr = makeString(str);\n\n\tstr = str.trim();\n\tstr = str.replace(/^\\s+|\\s+$/gm, \"\");\n\n\tstr = str.toLowerCase();\n\n\tconst arr = str.split(\" \");\n\n\tstr = arr\n\t\t.map((item) => {\n\t\t\treturn capitalize(item);\n\t\t})\n\t\t.filter((x) => x)\n\t\t.join(\" \");\n\n\treturn str;\n};\n\n/**\n *\n * @param {string} s - Input string\n * @param {{delimiter,limit,lowercase,replacements,transliterate}} opt - Option\n * @return {string}\n */\nexport const clearUnicodeCharacters = (s, opt = {}) => {\n\ts = makeString(s);\n\n\tvar defaults = {\n\t\tdelimiter: \" \",\n\t\tlimit: undefined,\n\t\tlowercase: true,\n\t\treplacements: {},\n\t\ttransliterate: typeof XRegExp === \"undefined\" ? true : false,\n\t};\n\n\t// Merge options\n\tfor (var k in defaults) {\n\t\tif (!opt.hasOwnProperty(k)) {\n\t\t\topt[k] = defaults[k];\n\t\t}\n\t}\n\n\t// Vietnamese\n\ts = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, \"a\");\n\ts = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, \"e\");\n\ts = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, \"i\");\n\ts = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, \"o\");\n\ts = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, \"u\");\n\ts = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, \"y\");\n\ts = s.replace(/đ/gi, \"d\");\n\ts = \"@\" + s + \"@\";\n\ts = s.replace(/\\@\\-|\\-\\@|\\@/gi, \"\");\n\n\t// Make custom replacements\n\tfor (var k in opt.replacements) {\n\t\ts = s.replace(RegExp(k, \"g\"), opt.replacements[k]);\n\t}\n\n\t// Transliterate characters to ASCII\n\tif (opt.transliterate) {\n\t\tfor (var k in char_map) {\n\t\t\ts = s.replace(RegExp(k, \"g\"), char_map[k]);\n\t\t}\n\t}\n\n\t// Replace non-alphanumeric characters with our delimiter\n\tvar alnum = typeof XRegExp === \"undefined\" ? RegExp(\"[^a-z0-9]+\", \"ig\") : XRegExp(\"[^\\\\p{L}\\\\p{N}]+\", \"ig\");\n\ts = s.replace(alnum, opt.delimiter);\n\n\t// Remove duplicate delimiters\n\ts = s.replace(RegExp(\"[\" + opt.delimiter + \"]{2,}\", \"g\"), opt.delimiter);\n\n\t// Truncate slug to max. characters\n\ts = s.substring(0, opt.limit);\n\n\t// Remove delimiter from ends\n\ts = s.replace(RegExp(\"(^\" + opt.delimiter + \"|\" + opt.delimiter + \"$)\", \"g\"), \"\");\n\n\treturn opt.lowercase ? s.toLowerCase() : s;\n};\n\nexport function generateUUID() {\n\t// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n\n\tconst d0 = (Math.random() * 0xffffffff) | 0;\n\tconst d1 = (Math.random() * 0xffffffff) | 0;\n\tconst d2 = (Math.random() * 0xffffffff) | 0;\n\tconst d3 = (Math.random() * 0xffffffff) | 0;\n\tconst uuid =\n\t\t_lut[d0 & 0xff] +\n\t\t_lut[(d0 >> 8) & 0xff] +\n\t\t_lut[(d0 >> 16) & 0xff] +\n\t\t_lut[(d0 >> 24) & 0xff] +\n\t\t\"-\" +\n\t\t_lut[d1 & 0xff] +\n\t\t_lut[(d1 >> 8) & 0xff] +\n\t\t\"-\" +\n\t\t_lut[((d1 >> 16) & 0x0f) | 0x40] +\n\t\t_lut[(d1 >> 24) & 0xff] +\n\t\t\"-\" +\n\t\t_lut[(d2 & 0x3f) | 0x80] +\n\t\t_lut[(d2 >> 8) & 0xff] +\n\t\t\"-\" +\n\t\t_lut[(d2 >> 16) & 0xff] +\n\t\t_lut[(d2 >> 24) & 0xff] +\n\t\t_lut[d3 & 0xff] +\n\t\t_lut[(d3 >> 8) & 0xff] +\n\t\t_lut[(d3 >> 16) & 0xff] +\n\t\t_lut[(d3 >> 24) & 0xff];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n}\n","import { isNull } from \"../object\";\n\nvar urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n\nexport const getUrlParams = (parameter, staticURL, decode) => {\n\tif (typeof window == \"undefined\") return \"\";\n\n\tstaticURL = staticURL == undefined ? window.location : staticURL;\n\tvar currLocation = staticURL.length ? staticURL : window.location.search;\n\n\tif (currLocation.split(\"?\").length < 2) return \"\";\n\n\tvar parArr = currLocation.split(\"?\")[1].split(\"&\"),\n\t\treturnBool = true;\n\n\tfor (var i = 0; i < parArr.length; i++) {\n\t\tvar parr = parArr[i].split(\"=\");\n\t\tif (parr[0] == parameter) {\n\t\t\treturn decode ? decodeURIComponent(parr[1]) : parr[1];\n\t\t\treturnBool = true;\n\t\t} else {\n\t\t\treturnBool = false;\n\t\t}\n\t}\n\n\tif (!returnBool) return false;\n};\n\n/**\n *\n * @return {boolean}\n */\nexport const isLink = (str) => {\n\treturn urlRegex.test(str);\n};\n\n// /**\n// *\n// * @return {JSX.Element}\n// */\n// export const strToJsxLink = (str, altText) => {\n// \treturn isLink(str) ? <a href={src}>{altText || src}</a> : str;\n// };\n\n/**\n *\n * @param {string} url\n * @return {string}\n */\nexport const getFileNameWithoutExtension = (url) => {\n\turl = decodeURIComponent(url);\n\tif (url) {\n\t\tconst m = url.toString().match(/.*\\/(.+?)\\./);\n\t\tif (m && m.length > 1) {\n\t\t\treturn m[1];\n\t\t}\n\n\t\tif (!isNull(url)) {\n\t\t\treturn url.split(\".\").shift();\n\t\t}\n\t}\n\treturn \"\";\n};\n\n/**\n *\n * @param {string} url\n * @return {string}\n */\nexport const getFileNameWithExtension = (url) => {\n\turl = decodeURIComponent(url);\n\tif (url) {\n\t\tconst m = url.toString().match(/.*\\/(.*)$/);\n\n\t\tif (m && m.length > 1) {\n\t\t\treturn m[1].split(\"/\").pop().split(\"?\")[0];\n\t\t}\n\n\t\tif (!isNull(url)) {\n\t\t\treturn url;\n\t\t}\n\t}\n\treturn \"\";\n};\n\n/**\n *\n * @param {string} url\n * @return {string}\n */\nexport const getFileExtension = (url) => {\n\treturn getFileNameWithExtension(url).split(\".\").pop();\n};\n"],"names":[],"version":3,"file":"module.js.map"}
package/index.js DELETED
@@ -1,13 +0,0 @@
1
- export * from "./src/array";
2
- export * from "./src/device";
3
- export * from "./src/device/browser";
4
- export * from "./src/device/camera";
5
- export * from "./src/math";
6
- export * from "./src/object";
7
- export * from "./src/string";
8
- export * from "./src/string/url";
9
- import Timer from "./src/Timer";
10
- import requestCamera from "./src/permission/requestCamera";
11
- import requestDeviceOrientationControl from "./src/permission/requestDeviceOrientationControl";
12
-
13
- export { requestCamera, requestDeviceOrientationControl, Timer };
package/src/Browser.js DELETED
@@ -1,297 +0,0 @@
1
- import { findKey } from "lodash";
2
- import Swal from "sweetalert2";
3
-
4
- const BROWSER = {
5
- messenger: /\bFB[\w_]+\/(Messenger|MESSENGER)/,
6
- facebook: /\bFB[\w_]+\//,
7
- twitter: /\bTwitter/i,
8
- line: /\bLine\//i,
9
- wechat: /\bMicroMessenger\//i,
10
- puffin: /\bPuffin/i,
11
- miui: /\bMiuiBrowser\//i,
12
- instagram: /\bInstagram/i,
13
- chrome: /\bCrMo\b|CriOS|Android.*Chrome\/[.0-9]* (Mobile)?/,
14
- safari: /Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari/,
15
- ie: /IEMobile|MSIEMobile/,
16
- firefox: /fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS/,
17
- };
18
-
19
- let isInit = false;
20
- let _listeners = [];
21
- export class BrowserEvent {
22
- static get CHANGED() {
23
- return "changed";
24
- }
25
- static get VIEW_MODE_CHANGED() {
26
- return "view_mode_changed";
27
- }
28
- static get ORIENTATION_CHANGED() {
29
- return "orientation_changed";
30
- }
31
- }
32
-
33
- const Browser = {
34
- get ua() {
35
- return navigator.userAgent || navigator.vendor || window.opera;
36
- },
37
-
38
- get browser() {
39
- return findKey(BROWSER, (regex) => regex.test(this.ua)) || "other";
40
- },
41
-
42
- get isMobile() {
43
- return /(iPhone|Mobile|Android)/i.test(this.ua) || false;
44
- },
45
-
46
- get isTablet() {
47
- return !this.isMobile && !this.isDesktop;
48
- },
49
-
50
- get isMobileAndTablet() {
51
- return this.isMobile && this.isTablet;
52
- },
53
-
54
- get isTouchDevice() {
55
- return this.isMobileAndTablet;
56
- },
57
-
58
- get isDesktop() {
59
- return typeof window != "undefined" && !("ontouchstart" in window);
60
- },
61
-
62
- get isFacebookWebview() {
63
- var ua = ua;
64
- return ua.indexOf("FBAN") > -1 || ua.indexOf("FBAV") > -1;
65
- },
66
-
67
- get isInAppWebview() {
68
- const rules = ["WebView", "(iPhone|iPod|iPad)(?!.*Safari/)", "Android.*(wv|.0.0.0)"];
69
- const regex = new RegExp(`(${rules.join("|")})`, "ig");
70
- return Boolean(this.ua.match(regex));
71
- },
72
-
73
- orientation: "potrait",
74
- viewMode: "normal",
75
- device: "desktop",
76
- init: (autoFixFullscreen = true) => {
77
- isInit = true;
78
- var isLandscape = false;
79
- var isFullscreen = false;
80
- var scope = Browser;
81
-
82
- onResize();
83
-
84
- window.addEventListener("resize", onResize);
85
- // window.addEventListener('touchstart', onTouchMove)
86
- window.addEventListener("touchmove", onTouchMove, { passive: false });
87
-
88
- function onTouchMove(e) {
89
- if (e.changedTouches.length > 1) {
90
- e.preventDefault();
91
- }
92
- }
93
-
94
- function onResize(e) {
95
- setTimeout(() => {
96
- var _isLandscape = window.matchMedia("(orientation: landscape)").matches;
97
- var _isFullscreen = window.innerHeight >= window.outerHeight - 64;
98
-
99
- // console.log(window.outerHeight, window.innerHeight, window.screen.height)
100
- // console.log(window.outerWidth, window.innerWidth, window.screen.width)
101
-
102
- // setCurrentOrientation(isLandscape ? "landscape" : "potrait")
103
- // setCurrentView(isFullscreen ? "fullscreen" : "normal")
104
-
105
- // var scope = Browser;
106
- // console.log(scope)
107
- scope.orientation = _isLandscape ? "landscape" : "potrait";
108
- scope.viewMode = _isFullscreen ? "fullscreen" : "normal";
109
- // console.log('window.orientation:', window.orientation)
110
-
111
- if (scope.isDesktop) {
112
- scope.device = "desktop";
113
- } else if (scope.isTablet) {
114
- scope.device = "tablet";
115
- } else {
116
- scope.device = "mobile";
117
- }
118
-
119
- if (_isFullscreen != isFullscreen) {
120
- scope.dispatchEvent(BrowserEvent.VIEW_MODE_CHANGED);
121
- isFullscreen = _isFullscreen;
122
- }
123
-
124
- if (_isLandscape != isLandscape) {
125
- scope.dispatchEvent(BrowserEvent.ORIENTATION_CHANGED);
126
- isLandscape = _isLandscape;
127
- }
128
-
129
- scope.dispatchEvent(BrowserEvent.CHANGED);
130
-
131
- if (autoFixFullscreen) {
132
- if (!isLandscape) {
133
- // POTRAIT
134
- // window.document.body.style.height = "10000px"
135
- // window.document.body.style.overflow = "auto";
136
- window.document.body.style.height = "100%";
137
- window.document.body.style.overflow = "hidden";
138
- } else {
139
- // LANDSCAPE
140
- if (isFullscreen) {
141
- if (scope.isMobile) {
142
- window.document.body.style.height = "100%";
143
- window.document.body.style.overflow = "hidden";
144
- }
145
- } else {
146
- window.document.body.style.height = "10000px";
147
- window.document.body.style.overflow = "auto";
148
- }
149
- }
150
- }
151
- }, 50);
152
- }
153
- },
154
-
155
- addEventListener: (event, cb) => {
156
- if (!isInit) {
157
- console.warn("You need to call 'Browser.init()' first.");
158
- return;
159
- }
160
-
161
- switch (event) {
162
- case BrowserEvent.CHANGED:
163
- _listeners.push({ event: event, listener: cb });
164
- break;
165
- case BrowserEvent.CHANGED:
166
- _listeners.push({ event: event, listener: cb });
167
- break;
168
- default:
169
- console.warn(`No event "${event}" found`);
170
- break;
171
- }
172
- },
173
-
174
- dispatchEvent: (event) => {
175
- var scope = Browser;
176
- var response = {
177
- event: event,
178
- orientation: scope.orientation,
179
- viewMode: scope.viewMode,
180
- device: scope.device,
181
- };
182
- _listeners.forEach((dispatcher) => {
183
- if (dispatcher.event == event) {
184
- if (dispatcher.listener) dispatcher.listener(response);
185
- }
186
- });
187
- },
188
-
189
- get isSupportWebGL() {
190
- // return Detector.webgl();
191
- var Detector = {
192
- canvas: window && !!window.CanvasRenderingContext2D,
193
- webgl: (function () {
194
- try {
195
- var canvas = document.createElement("canvas");
196
- return !!(window.WebGLRenderingContext && (canvas.getContext("webgl") || canvas.getContext("experimental-webgl")));
197
- } catch (e) {
198
- return false;
199
- }
200
- })(),
201
- workers: !!window.Worker,
202
- fileapi: window.File && window.FileReader && window.FileList && window.Blob,
203
-
204
- getWebGLErrorMessage: function () {
205
- var element = document.createElement("div");
206
- element.id = "webgl-error-message";
207
- element.style.fontFamily = "monospace";
208
- element.style.fontSize = "13px";
209
- element.style.fontWeight = "normal";
210
- element.style.textAlign = "center";
211
- element.style.background = "#fff";
212
- element.style.color = "#000";
213
- element.style.padding = "1.5em";
214
- element.style.width = "400px";
215
- element.style.margin = "5em auto 0";
216
-
217
- if (!this.webgl) {
218
- element.innerHTML = window.WebGLRenderingContext
219
- ? [
220
- 'Your graphics card does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">WebGL</a>.<br />',
221
- 'Find out how to get it <a href="http://get.webgl.org/" style="color:#000">here</a>.',
222
- ].join("\n")
223
- : [
224
- 'Your browser does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">WebGL</a>.<br/>',
225
- 'Find out how to get it <a href="http://get.webgl.org/" style="color:#000">here</a>.',
226
- ].join("\n");
227
- }
228
-
229
- return element;
230
- },
231
-
232
- addGetWebGLMessage: function (parameters) {
233
- var parent, id, element;
234
-
235
- parameters = parameters || {};
236
-
237
- parent = parameters.parent !== undefined ? parameters.parent : document.body;
238
- id = parameters.id !== undefined ? parameters.id : "oldie";
239
-
240
- element = Detector.getWebGLErrorMessage();
241
- element.id = id;
242
-
243
- parent.appendChild(element);
244
- },
245
- };
246
-
247
- return Detector.webgl;
248
- },
249
-
250
- requestUsingSafariIOS(options) {
251
- var _this = this;
252
- _this.ftpBridgeToSafari = "ftp://159.65.130.187/bridge.html";
253
- _this.minChrome = "<b>Chrome</b>";
254
- _this.minFirefox = "<b>Firefox</b>";
255
- _this.minOpera = "<b>Opera</b>";
256
- _this.brands = "<b>Samsung</b>";
257
- _this.veTrangChu = "Về <b>Trang chủ</b>!";
258
- _this.skip = "<b>Bỏ qua!</b>!";
259
- _this.direct_link = location.host + location.pathname + "?redirect_src=inappwebview";
260
-
261
- if (typeof gaTrackingClick != "undefined") gaTrackingClick("tee_device", "not_support_get_camera");
262
- if (typeof gaTrackingClick != "undefined") gaTrackingClick("tee_browser", "no_support_webRTC");
263
-
264
- options = typeof options != "undefined" ? options : {};
265
-
266
- var onCancelCallback = options.hasOwnProperty("onCancelCallback") ? options["onCancelCallback"] : null;
267
-
268
- Swal.fire({
269
- html: "<b>Rất tiếc, trình duyệt trên chương trình này chưa hỗ trợ.</b> Vui lòng sử dụng Safari để có trải nghiệm tốt nhất!",
270
- type: "warning",
271
- allowOutsideClick: false,
272
- confirmButtonText: '<a href="#" style="color: white;"">Mở Safari!</a> ',
273
- showCancelButton: true,
274
- cancelButtonText: '<a href="#" style="color: white;"">' + _this.skip + "</a> ",
275
- }).then(function (result) {
276
- if (result.value) {
277
- // if (typeof gaTrackingClick != "undefined") gaTrackingClick('popup', 'tai-lai-trang');
278
- // if (typeof trackingClickGA != "undefined") trackingClickGA('ChangeBrowser', 'ChangeBrowser');
279
-
280
- // var _browser = window.deviceInfo.browser.toLowerCase();
281
- // if (typeof gaTrackingClick != "undefined") gaTrackingClick('tee_browser', 'redirect_' + _browser + '_' + "safari");
282
-
283
- window.open(_this.ftpBridgeToSafari + "?url=" + location.href);
284
- // window.open(_this.ftpBridgeToSafari + "?url=" + location.href);
285
- } else {
286
- // if (typeof gaTrackingClick != "undefined") gaTrackingClick('tee_redirect_from_other_browser', 'cancel');
287
- // if (typeof gaTrackingClick != "undefined") gaTrackingClick('popup', 'cta-trang-chu');
288
-
289
- Swal.close();
290
- if (onCancelCallback != null) onCancelCallback();
291
- // window.open(basePath, "_self");
292
- }
293
- });
294
- },
295
- };
296
-
297
- export default Browser;
package/src/ReactUtils.js DELETED
@@ -1,25 +0,0 @@
1
- import React from "react";
2
-
3
- export const isClassComponent = (component) => {
4
- return typeof component === "function" && !!component.prototype.isReactComponent;
5
- };
6
-
7
- export const isFunctionComponent = (component) => {
8
- return typeof component === "function" && String(component).includes("return React.createElement");
9
- };
10
-
11
- export const isReactComponent = (component) => {
12
- return isClassComponent(component) || isFunctionComponent(component);
13
- };
14
-
15
- export const isElement = (element) => {
16
- return React.isValidElement(element);
17
- };
18
-
19
- export const isDOMTypeElement = (element) => {
20
- return isElement(element) && typeof element.type === "string";
21
- };
22
-
23
- export const isCompositeTypeElement = (element) => {
24
- return isElement(element) && typeof element.type === "function";
25
- };
package/src/ScrollPos.js DELETED
@@ -1,31 +0,0 @@
1
- import React, { useEffect } from "react";
2
-
3
- /**
4
- *
5
- * @param {Element} target DOM element or window | document , default is window
6
- * @param {Function} callback handle function
7
- * @param {String} eventName Event name
8
- */
9
- const useEventListener = (eventName = "load", callback, options) => {
10
- useEffect(() => {
11
- options = options || {};
12
- let target = options["target"] ? options.target : window || document;
13
-
14
- if (typeof target === "string" && typeof document !== "undefined") {
15
- target = document.querySelector(target);
16
- }
17
-
18
- if (!target) {
19
- // console.log("[useEventListener] target is not defined!");
20
- return;
21
- }
22
- // console.log("[useEventListener]", target);
23
- target.addEventListener(eventName, callback);
24
-
25
- return () => {
26
- target.removeEventListener(eventName, callback);
27
- };
28
- }, [eventName, callback]);
29
- };
30
-
31
- export default useEventListener;
@@ -1,28 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
-
3
- // Copied from https://stackoverflow.com/a/11381730
4
- function isMobileOrTablet() {
5
- var check = false;
6
- (function (a) {
7
- if (
8
- /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(
9
- a
10
- ) ||
11
- /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
12
- a.substr(0, 4)
13
- )
14
- )
15
- check = true;
16
- })(navigator.userAgent || navigator.vendor || window.opera);
17
- return check;
18
- }
19
-
20
- export function useIsMobileOrTablet() {
21
- const [isMobOrTab, setIsMobOrTab] = useState(false);
22
- useEffect(() => {
23
- setIsMobOrTab(isMobileOrTablet());
24
- });
25
- return isMobOrTab;
26
- }
27
-
28
- export default isMobileOrTablet;