platypush/platypush/backend/http/dist/static/js/chunk-0a9aba75.bc40521f.js.map

1 line
19 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/panels/Camera/Index.vue","webpack:///./src/components/panels/Camera/Mixin.vue","webpack:///./src/components/panels/Camera/Mixin.vue?597a","webpack:///./src/components/panels/Camera/Index.vue?a4e7","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./src/components/panels/Camera/Index.vue?95ca"],"names":["class","ref","streaming","capturing","captured","src","url","alt","type","stopStreaming","disabled","title","startStreaming","capture","$refs","paramsModal","show","length","name","value","fullURL","attrs","device","onDeviceChanged","resolution","onSizeChanged","horizontal_flip","onFlipChanged","vertical_flip","rotate","scale_x","scale_y","fps","onFpsChanged","grayscale","onGrayscaleChanged","props","cameraPlugin","String","required","data","computed","params","this","parseInt","parseFloat","methods","getUrl","plugin","action","Object","entries","filter","entry","map","k","v","join","_startStreaming","stream_format","_capture","Date","getTime","onFrameLoaded","degToRad","deg","Math","PI","rot","frameContainer","style","width","round","abs","cos","sin","height","created","config","$root","mounted","frame","addEventListener","components","Modal","mixins","window","location","protocol","host","render","$","$filter","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","target","proto","forced","callbackfn","arguments","undefined"],"mappings":"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","file":"static/js/chunk-0a9aba75.bc40521f.js","sourcesContent":["<template>\n <div class=\"camera\">\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\" :src=\"url\" ref=\"frame\" alt=\"\">\n </div>\n\n <div class=\"controls\">\n <div class=\"left\">\n <button type=\"button\" @click=\"startStreaming\" :disabled=\"capturing\" title=\"Start video\" v-if=\"!streaming\">\n <i class=\"fa fa-play\" />\n </button>\n\n <button type=\"button\" @click=\"stopStreaming\" :disabled=\"capturing\" title=\"Stop video\" v-else>\n <i class=\"fa fa-stop\" />\n </button>\n\n <button type=\"button\" @click=\"capture\" :disabled=\"streaming || capturing\" title=\"Take a picture\">\n <i class=\"fas fa-camera\" />\n </button>\n </div>\n\n <div class=\"right\">\n <button type=\"button\" @click=\"$refs.paramsModal.show()\" title=\"Settings\">\n <i class=\"fas fa-cog\" />\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"url\" v-if=\"url?.length\">\n <label class=\"row\">\n <span class=\"name\">Stream URL</span>\n <input name=\"url\" type=\"text\" :value=\"fullURL\" disabled=\"disabled\"/>\n </label>\n </div>\n\n <Modal ref=\"paramsModal\" title=\"Camera Parameters\">\n <div class=\"params\">\n <label class=\"row\">\n <span class=\"name\">Device</span>\n <input name=\"device\" type=\"text\" v-model=\"attrs.device\" @change=\"onDeviceChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Width</span>\n <input name=\"width\" type=\"text\" v-model=\"attrs.resolution[0]\" @change=\"onSizeChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Height</span>\n <input name=\"height\" type=\"text\" v-model=\"attrs.resolution[1]\" @change=\"onSizeChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Horizontal Flip</span>\n <input name=\"horizontal_flip\" type=\"checkbox\" v-model=\"attrs.horizontal_flip\" @change=\"onFlipChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Vertical Flip</span>\n <input name=\"vertical_flip\" type=\"checkbox\" v-model=\"attrs.vertical_flip\" @change=\"onFlipChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Rotate</span>\n <input name=\"rotate\" type=\"text\" v-model=\"attrs.rotate\" @change=\"onSizeChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Scale-X</span>\n <input name=\"scale_x\" type=\"text\" v-model=\"attrs.scale_x\" @change=\"onSizeChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Scale-Y</span>\n <input name=\"scale_y\" type=\"text\" v-model=\"attrs.scale_y\" @change=\"onSizeChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Frames per second</span>\n <input name=\"fps\" type=\"text\" v-model=\"attrs.fps\" @change=\"onFpsChanged\"/>\n </label>\n\n <label class=\"row\">\n <span class=\"name\">Grayscale</span>\n <input name=\"grayscale\" type=\"checkbox\" v-model=\"attrs.grayscale\" @change=\"onGrayscaleChanged\"/>\n </label>\n </div>\n </Modal>\n </div>\n</template>\n\n<script>\nimport CameraMixin from \"@/components/panels/Camera/Mixin\";\nimport Modal from \"@/components/Modal\";\n\nexport default {\n name: \"Camera\",\n components: {Modal},\n mixins: [CameraMixin],\n props: {\n cameraPlugin: {\n type: String,\n required: true,\n },\n },\n\n computed: {\n fullURL() {\n return `${window.location.protocol}//${window.location.host}${this.url}`\n },\n },\n\n methods: {\n startStreaming() {\n this._startStreaming(this.cameraPlugin)\n },\n\n capture() {\n this._capture(this.cameraPlugin)\n },\n },\n}\n</script>\n\n<style lang=\"scss\">\n$camera-background: #101520;\n\n.camera {\n width: 100%;\n height: 100%;\n background: $background-color;\n overflow: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 3em;\n\n .camera-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n background: $camera-background;\n\n .frame-container {\n position: relative;\n }\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 color: white;\n align-items: center;\n justify-content: center;\n z-index: 2;\n background: black;\n }\n\n .controls {\n width: 100%;\n display: flex;\n border-top: 1px solid #202530;\n padding: .5em .25em;\n\n .left,.right {\n width: 50%;\n }\n\n .right {\n text-align: right;\n }\n\n button {\n background: none;\n color: white;\n border: none;\n\n &:hover {\n color: $default-hover-fg-2;\n }\n }\n }\n }\n\n .url {\n @media screen and (max-width: calc(#{$tablet} - 1px)) {\n width: 80%;\n }\n\n @media screen and (min-width: $tablet) {\n width: 640px;\n }\n\n display: flex;\n margin: 1em;\n\n .row {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .name {\n width: 140px;\n }\n\n input {\n width: 500px;\n font-weight: normal;\n }\n }\n\n .params {\n @media screen and (min-width: $tablet) {\n width: 640px;\n }\n\n display: flex;\n flex-direction: column;\n margin: -2em;\n\n label {\n font-weight: normal;\n }\n\n .head {\n display: flex;\n justify-content: center;\n\n label {\n width: 100%;\n display: flex;\n justify-content: right;\n\n .name {\n margin-right: 1em;\n }\n }\n }\n\n .row {\n width: 100%;\n display: flex;\n align-items: center;\n padding: 0.5em 1em;\n\n .name {\n width: 30%;\n }\n\n input {\n width: 70%;\n }\n\n &:nth-child(even) {\n background: $default-bg-4;\n }\n\n &:hover {\n background: $hover-bg;\n }\n }\n }\n\n .modal {\n .content {\n @media screen and (max-width: calc(#{$tablet} - 1px)) {\n width: 90% !important;\n }\n }\n }\n}\n</style>\n","<script>\nexport default {\n name: \"CameraMixin\",\n props: {\n cameraPlugin: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n streaming: false,\n capturing: false,\n captured: false,\n url: null,\n attrs: {},\n }\n },\n\n computed: {\n params() {\n return {\n resolution: this.attrs.resolution,\n device: this.attrs.device?.length ? this.attrs.device : null,\n horizontal_flip: parseInt(0 + this.attrs.horizontal_flip),\n vertical_flip: parseInt(0 + this.attrs.vertical_flip),\n rotate: parseFloat(this.attrs.rotate),\n scale_x: parseFloat(this.attrs.scale_x),\n scale_y: parseFloat(this.attrs.scale_y),\n fps: parseFloat(this.attrs.fps),\n grayscale: parseInt(0 + this.attrs.grayscale),\n }\n },\n },\n\n methods: {\n getUrl(plugin, action) {\n return '/camera/' + plugin + '/' + action + '?' +\n Object.entries(this.params).filter((entry) => entry[1] != null && ('' + entry[1]).length > 0)\n .map(([k, v]) => k + '=' + v).join('&')\n },\n\n _startStreaming(plugin) {\n if (this.streaming)\n return\n\n this.streaming = true\n this.capturing = false\n this.captured = false\n this.url = this.getUrl(plugin, 'video.' + this.attrs.stream_format)\n },\n\n stopStreaming() {\n if (!this.streaming)\n return\n\n this.streaming = false\n this.capturing = false\n this.url = null\n },\n\n _capture(plugin) {\n if (this.capturing)\n return\n\n this.streaming = false\n this.capturing = true\n this.captured = true\n this.url = this.getUrl(plugin, 'photo.jpg') + '&t=' + (new Date()).getTime()\n },\n\n onFrameLoaded() {\n if (this.capturing) {\n this.capturing = false\n }\n },\n\n onDeviceChanged() {},\n onFlipChanged() {},\n onSizeChanged() {\n const degToRad = (deg) => (deg * Math.PI)/180\n const rot = degToRad(this.params.rotate)\n this.$refs.frameContainer.style.width = Math.round(this.params.scale_x * Math.abs(this.params.resolution[0] * Math.cos(rot) + this.params.resolution[1] * Math.sin(rot))) + 'px'\n this.$refs.frameContainer.style.height = Math.round(this.params.scale_y * Math.abs(this.params.resolution[0] * Math.sin(rot) + this.params.resolution[1] * Math.cos(rot))) + 'px'\n },\n\n onFpsChanged() {},\n onGrayscaleChanged() {},\n },\n\n created() {\n const config = this.$root.config[`camera.${this.cameraPlugin}`] || {}\n this.attrs = {\n resolution: config.resolution || [640, 480],\n device: config.device,\n horizontal_flip: config.horizontal_flip || 0,\n vertical_flip: config.vertical_flip || 0,\n rotate: config.rotate || 0,\n scale_x: config.scale_x || 1.0,\n scale_y: config.scale_y || 1.0,\n fps: config.fps || 16.0,\n grayscale: config.grayscale || 0,\n stream_format: config.stream_format || 'mjpeg',\n }\n },\n\n mounted() {\n this.$refs.frame.addEventListener('load', this.onFrameLoaded)\n this.onSizeChanged()\n },\n}\n</script>\n","import script from \"./Mixin.vue?vue&type=script&lang=js\"\nexport * from \"./Mixin.vue?vue&type=script&lang=js\"\n\nexport default script","import { render } from \"./Index.vue?vue&type=template&id=18087230\"\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=18087230&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\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/cli-service/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/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Index.vue?vue&type=style&index=0&id=18087230&lang=scss\""],"sourceRoot":""}