platypush/platypush/backend/http/webapp/dist/static/js/chunk-690ef4aa.f4ca9bdd.js.map

1 line
25 KiB
Plaintext

{"version":3,"sources":["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":["$","getOwnPropertyDescriptor","f","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","nativeStartsWith","startsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","prototype","writable","target","proto","forced","searchString","that","this","index","arguments","length","undefined","search","call","slice","class","selected","disabled","title","ref","alt","src","autoplay","preload","loading","onCameraSelected","Object","keys","cameras","name","key","value","type","updateCameraStatus","streaming","capturing","captured","stopStreaming","startStreaming","capture","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","replace","username","password","substr","mounted","addEventListener","render","__scopeId","fixRegExpWellKnownSymbolLogic","anObject","toObject","toInteger","advanceStringIndex","regExpExec","max","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","replacer","regexp","indexOf","res","done","rx","S","functionalReplace","global","fullUnicode","unicode","lastIndex","results","result","push","matchStr","accumulatedResult","nextSourcePosition","i","matched","position","captures","j","namedCaptures","groups","replacerArgs","concat","replacement","apply","getSubstitution","str","tailPos","m","symbols","match","ch","charAt","n","isRegExp","module","exports","TypeError","wellKnownSymbol","MATCH","METHOD_NAME","error1","error2"],"mappings":"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","file":"static/js/chunk-690ef4aa.f4ca9bdd.js","sourcesContent":["'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\nvar nativeStartsWith = ''.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.github.io/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 nativeStartsWith\n ? nativeStartsWith.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 anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-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 regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/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.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\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\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(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 nativeReplace.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});\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":""}