diginext-utils 1.0.1 → 1.0.5
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.
- package/dist/README.md +3 -0
- package/dist/babel.config.json +21 -0
- package/dist/index.js +148 -0
- package/dist/package.json +34 -0
- package/dist/src/Camera.js +420 -0
- package/dist/src/Checker.js +34 -0
- package/dist/src/Color.js +102 -0
- package/dist/src/Device.js +67 -0
- package/dist/src/EventDispatcher.js +62 -0
- package/dist/src/FileUpload.js +73 -0
- package/dist/src/FileUtils.js +47 -0
- package/dist/src/Slug.js +384 -0
- package/dist/src/Timer.js +16 -0
- package/dist/src/UserLS.js +127 -0
- package/dist/src/Validation.js +46 -0
- package/dist/src/array/index.js +377 -0
- package/dist/src/backend/file/createDir.js +24 -0
- package/dist/src/backend/file/fileMove.js +42 -0
- package/dist/src/backend/file/findFilesByExt.js +55 -0
- package/dist/src/backend/zip/extractZip.js +55 -0
- package/dist/src/console/enableConsole.js +16 -0
- package/dist/src/console/index.js +20 -0
- package/dist/src/device/browser.js +52 -0
- package/dist/src/device/camera.js +238 -0
- package/dist/src/device/index.js +304 -0
- package/{src → dist/src}/math/index.js +57 -59
- package/dist/src/object/index.js +65 -0
- package/dist/src/permission/requestCamera.js +55 -0
- package/dist/src/permission/requestDeviceOrientationControl.js +36 -0
- package/dist/src/string/index.js +531 -0
- package/dist/src/string/url.js +128 -0
- package/package.json +17 -13
- package/.eslintrc.json +0 -21
- package/dist/main.js +0 -1611
- package/dist/main.js.map +0 -1
- package/dist/module.js +0 -1584
- package/dist/module.js.map +0 -1
- package/index.js +0 -13
- package/src/Browser.js +0 -297
- package/src/Camera.js +0 -412
- package/src/Checker.js +0 -24
- package/src/Color.js +0 -81
- package/src/Device.js +0 -56
- package/src/EventDispatcher.js +0 -58
- package/src/FileUpload.js +0 -59
- package/src/FileUtils.js +0 -30
- package/src/ReactUtils.js +0 -25
- package/src/ScrollPos.js +0 -31
- package/src/Slug.js +0 -383
- package/src/Timer.js +0 -7
- package/src/UserLS.js +0 -104
- package/src/Validation.js +0 -35
- package/src/array/index.js +0 -301
- package/src/backend/file/createDir.js +0 -13
- package/src/backend/file/fileMove.js +0 -35
- package/src/backend/file/findFilesByExt.js +0 -42
- package/src/backend/zip/extractZip.js +0 -58
- package/src/console/enableConsole.js +0 -6
- package/src/console/index.js +0 -10
- package/src/device/browser.js +0 -29
- package/src/device/camera.js +0 -228
- package/src/device/index.js +0 -233
- package/src/isMobileOrTablet.js +0 -28
- package/src/object/index.js +0 -41
- package/src/permission/requestCamera.js +0 -43
- package/src/permission/requestDeviceOrientationControl.js +0 -32
- package/src/string/index.js +0 -228
- package/src/string/url.js +0 -93
package/dist/module.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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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,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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","sources":["packages/diginext-utils/index.js","packages/diginext-utils/src/Timer.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 Timer from \"./src/Timer\";\nimport requestCamera from \"./src/permission/requestCamera\";\nimport requestDeviceOrientationControl from \"./src/permission/requestDeviceOrientationControl\";\n\nexport { requestCamera, requestDeviceOrientationControl, Timer };\n","const Timer = {\n\twait: async (ms) => {\n\t\treturn new Promise((resolve) => setTimeout(resolve, ms));\n\t},\n};\n\nexport default Timer;\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;
|