platypush/platypush/backend/http/webapp/dist/static/js/chunk-36760726.5007ff45.js.map

1 line
26 KiB
Plaintext

{"version":3,"sources":["webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./src/components/panels/CameraAndroidIpcam/Index.vue?de31","webpack:///./src/components/panels/CameraAndroidIpcam/Index.vue","webpack:///./src/components/panels/CameraAndroidIpcam/Index.vue?7e3b","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js"],"names":["toObject","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","module","exports","matched","str","position","captures","namedCaptures","replacement","tailPos","length","m","symbols","undefined","call","match","ch","capture","charAt","slice","n","f","$","getOwnPropertyDescriptor","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$startsWith","startsWith","min","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","prototype","writable","target","proto","forced","searchString","that","this","index","arguments","search","class","selected","disabled","title","ref","alt","src","autoplay","preload","loading","onCameraSelected","Object","keys","cameras","name","key","value","type","updateCameraStatus","streaming","capturing","captured","stopStreaming","startStreaming","flipCamera","recording","selectedCamera","audio_url","components","Loading","mixins","Utils","data","computed","config","$root","methods","cam","$refs","frame","setAttribute","stream_url","removeAttribute","image_url","Date","getTime","onFrameLoaded","event","ffc","request","activate","camera","reduce","attr","username","password","substr","mounted","addEventListener","render","__scopeId","fixRegExpWellKnownSymbolLogic","fails","anObject","toInteger","advanceStringIndex","getSubstitution","regExpExec","wellKnownSymbol","REPLACE","max","maybeToString","it","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","result","groups","a","_","nativeReplace","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","replacer","string","indexOf","res","done","rx","S","functionalReplace","global","fullUnicode","unicode","lastIndex","results","push","matchStr","accumulatedResult","nextSourcePosition","i","j","replacerArgs","concat","apply","isRegExp","TypeError","MATCH","METHOD_NAME","regexp","error1","error2"],"mappings":"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","file":"static/js/chunk-36760726.5007ff45.js","sourcesContent":["var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar $startsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Index.vue?vue&type=style&index=0&id=a0c26180&lang=scss&scoped=true\"","<template>\n <div class=\"camera\">\n <Loading v-if=\"loading\" />\n\n <div class=\"camera-selector\">\n <div class=\"left\">\n <label>\n <select ref=\"cameraSelector\" @change=\"onCameraSelected\">\n <option selected disabled v-if=\"!Object.keys(cameras).length\">-- No cameras available</option>\n <option v-for=\"name in Object.keys(cameras)\" :key=\"name\" :value=\"name\" v-text=\"name\" />\n </select>\n </label>\n </div>\n\n <div class=\"right\">\n <button type=\"button\" @click=\"updateCameraStatus\" :disabled=\"loading\">\n <i class=\"fas fa-sync-alt\" title=\"Refresh cameras\" />\n </button>\n </div>\n </div>\n\n <div class=\"camera-container\">\n <div class=\"frame-container\" ref=\"frameContainer\">\n <div class=\"no-frame\" v-if=\"!streaming && !capturing && !captured\">The camera is not active</div>\n <img class=\"frame\" ref=\"frame\" alt=\"\" src=\"\">\n </div>\n\n <div class=\"controls\">\n <div class=\"left\">\n <button type=\"button\" @click=\"startStreaming\" :disabled=\"capturing || loading\" v-if=\"!streaming\">\n <i class=\"fa fa-play\" title=\"Start video\" />\n </button>\n\n <button type=\"button\" @click=\"stopStreaming\" :disabled=\"capturing || loading\" v-else>\n <i class=\"fa fa-stop\" title=\"Stop video\" />\n </button>\n\n <button type=\"button\" @click=\"capture\" :disabled=\"streaming || capturing || loading\">\n <i class=\"fas fa-camera\" title=\"Take a picture\" />\n </button>\n </div>\n\n <div class=\"right\">\n <button type=\"button\" @click=\"flipCamera\" :disabled=\"loading\">\n <i class=\"fas fa-retweet\" title=\"Flip camera\" />\n </button>\n\n <button type=\"button\" @click=\"recording = true\" v-if=\"!recording\" :disabled=\"loading\">\n <i class=\"fa fa-volume-mute\" title=\"Start audio\" />\n </button>\n\n <button type=\"button\" @click=\"recording = false\" v-else :disabled=\"loading\">\n <i class=\"fa fa-volume-up\" title=\"Stop audio\" />\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"sound-container\">\n <audio autoplay preload=\"none\" ref=\"player\" v-if=\"recording\">\n <source :src=\"cameras[selectedCamera].audio_url\" type=\"audio/x-wav;codec=pcm\">\n Your browser does not support audio elements\n </audio>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\nimport Loading from \"@/components/Loading\";\n\nexport default {\n name: \"CameraAndroidIpcam\",\n components: {Loading},\n mixins: [Utils],\n\n data() {\n return {\n loading: false,\n streaming: false,\n capturing: false,\n recording: false,\n captured: false,\n cameras: {},\n selectedCamera: undefined,\n }\n },\n\n computed: {\n config() {\n return this.$root.config['camera.android.ipcam']\n },\n },\n\n methods: {\n startStreaming() {\n if (this.streaming)\n return\n\n const cam = this.cameras[this.selectedCamera]\n this.streaming = true\n this.capturing = false\n this.captured = false\n this.$refs.frame.setAttribute('src', cam.stream_url)\n },\n\n stopStreaming() {\n if (!this.streaming)\n return\n\n this.streaming = false\n this.capturing = false\n this.$refs.frame.removeAttribute('src')\n },\n\n capture() {\n if (this.capturing)\n return\n\n const cam = this.cameras[this.selectedCamera]\n this.streaming = false\n this.capturing = true\n this.captured = true\n this.$refs.frame.setAttribute('src', cam.image_url + '?t=' + (new Date()).getTime())\n },\n\n onFrameLoaded() {\n if (this.capturing)\n this.capturing = false\n },\n\n onCameraSelected(event) {\n this.selectedCamera = event.target.value\n },\n\n async flipCamera() {\n const cam = this.cameras[this.selectedCamera]\n this.loading = true\n\n try {\n const value = !cam.ffc\n await this.request('camera.android.ipcam.set_front_facing_camera', {\n activate: value, camera: cam.name\n })\n\n this.cameras[this.selectedCamera].ffc = value\n } finally {\n this.loading = false\n }\n },\n\n async updateCameraStatus() {\n this.loading = true\n\n try {\n const cameras = await this.request('camera.android.ipcam.status')\n this.cameras = cameras.reduce((cameras, cam) => {\n for (const attr of ['stream_url', 'image_url', 'audio_url']) {\n if (cam[attr].startsWith('https://')) {\n cam[attr] = cam[attr].replace('https://', 'http://')\n }\n\n if (cam.name in this.config.cameras && this.config.cameras[cam.name].username) {\n cam[attr] = 'http://' + this.config.cameras[cam.name].username + ':' +\n this.config.cameras[cam.name].password + '@' + cam[attr].substr(7)\n }\n }\n\n cameras[cam.name] = cam\n return cameras\n }, {})\n\n if (cameras.length)\n this.selectedCamera = cameras[0].name\n\n } finally {\n this.loading = false\n }\n },\n },\n\n mounted() {\n this.$refs.frame.addEventListener('load', this.onFrameLoaded)\n this.updateCameraStatus()\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"../Camera/common\";\n\n$controls-height: 3.5em;\n\n.camera {\n .camera-selector {\n width: 100%;\n height: $controls-height;\n margin-top: -3em;\n box-shadow: $border-shadow-bottom;\n display: flex;\n align-items: center;\n\n .left,\n .right {\n display: flex;\n }\n\n .left {\n width: 90%;\n }\n\n .right {\n width: 10%;\n justify-content: right;\n }\n\n label {\n width: 100%;\n padding-left: 1em;\n select {\n width: 100%;\n }\n }\n\n button {\n background: none;\n border: none;\n &:hover {\n color: $default-hover-fg;\n }\n }\n }\n\n .camera-container {\n margin-top: 2em;\n min-width: 640px;\n min-height: calc(480px + #{$controls-height});\n\n .frame-container {\n min-width: 640px;\n min-height: 480px;\n }\n\n .controls {\n height: $controls-height;\n }\n }\n}\n\n//.camera {\n// min-height: 90%;\n// overflow: auto;\n// display: flex;\n// flex-direction: column;\n// align-items: center;\n//\n// .camera-container {\n// min-width: 640px;\n// min-height: 480px;\n// position: relative;\n// background: black;\n// margin-bottom: 1em;\n//\n// .frame, .no-frame {\n// position: absolute;\n// top: 0;\n// width: 100%;\n// height: 100%;\n// }\n//\n// .frame {\n// z-index: 1;\n// }\n//\n// .no-frame {\n// display: flex;\n// background: rgba(0, 0, 0, 0.1);\n// color: white;\n// align-items: center;\n// justify-content: center;\n// z-index: 2;\n// }\n// }\n//}\n</style>\n","import { render } from \"./Index.vue?vue&type=template&id=a0c26180&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=a0c26180&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-a0c26180\"\n\nexport default script","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, this, string, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(this);\n var S = String(string);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n"],"sourceRoot":""}