platypush/platypush/backend/http/webapp/dist/static/js/9334.218a8dd3.js.map

1 line
21 KiB
Plaintext

{"version":3,"file":"static/js/9334.218a8dd3.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Camera/Index.vue","webpack://platypush/./src/components/panels/Camera/Mixin.vue","webpack://platypush/./src/components/panels/Camera/Mixin.vue?be5e","webpack://platypush/./src/components/panels/Camera/Index.vue?8810","webpack://platypush/./src/components/panels/CameraFfmpeg/Index.vue","webpack://platypush/./src/components/panels/CameraFfmpeg/Index.vue?3548"],"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\" v-if=\"!streaming\"\n title=\"Take a picture\">\n <i class=\"fas fa-camera\" />\n </button>\n </div>\n\n <div class=\"right\">\n <button type=\"button\" @click=\"startAudio\" title=\"Start audio\" v-if=\"!audioOn\">\n <i class=\"fas fa-volume-mute\" />\n </button>\n\n <button type=\"button\" @click=\"stopAudio\" title=\"Stop audio\" v-else>\n <i class=\"fas fa-volume-up\" />\n </button>\n\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=\"audio-container\">\n <audio autoplay preload=\"none\" ref=\"player\" v-if=\"audioOn\">\n <source :src=\"`/sound/stream.aac?t=${(new Date()).getTime()}`\">\n Your browser does not support audio elements\n </audio>\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\n <Slot />\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@import \"common\";\n</style>\n","<script>\nimport Utils from \"@/Utils\";\n\nexport default {\n name: \"CameraMixin\",\n mixins: [Utils],\n\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 audioOn: 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 let width = Math.round(this.params.scale_x * Math.abs(this.params.resolution[0] * Math.cos(rot) + this.params.resolution[1] * Math.sin(rot)))\n let height = Math.round(this.params.scale_y * Math.abs(this.params.resolution[0] * Math.sin(rot) + this.params.resolution[1] * Math.cos(rot)))\n\n if (width > window.innerWidth) {\n height = Math.round(height * (window.innerWidth / width))\n width = window.innerWidth\n }\n\n if (height > window.innerHeight) {\n width = Math.round(width * (window.innerHeight / height))\n height = window.innerHeight\n }\n\n this.$refs.frameContainer.style.width = `${width}px`\n this.$refs.frameContainer.style.height = `${height}px`\n },\n\n onFpsChanged() {},\n onGrayscaleChanged() {},\n\n startAudio() {\n this.audioOn = true\n },\n\n async stopAudio() {\n this.audioOn = false\n await this.request('sound.stop_recording')\n },\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 this.$watch(() => this.attrs.resolution, this.onSizeChanged)\n this.$watch(() => this.attrs.horizontal_flip, this.onSizeChanged)\n this.$watch(() => this.attrs.vertical_flip, this.onSizeChanged)\n this.$watch(() => this.attrs.rotate, this.onSizeChanged)\n this.$watch(() => this.attrs.scale_x, this.onSizeChanged)\n this.$watch(() => this.attrs.scale_y, 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\nconst __exports__ = script;\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=a4970096\"\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=a4970096&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Camera camera-plugin=\"ffmpeg\" />\n</template>\n\n<script>\nimport Camera from \"@/components/panels/Camera/Index\";\n\nexport default {\n name: \"CameraFfmpeg\",\n components: {Camera},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=dd632828\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","ref","_createElementVNode","_hoisted_9","_hoisted_12","_hoisted_15","_hoisted_18","_hoisted_20","_hoisted_22","autoplay","preload","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_ctx","streaming","capturing","captured","_hoisted_4","src","url","alt","_hoisted_6","_hoisted_7","type","onClick","_cache","args","stopStreaming","disabled","title","$options","startStreaming","capture","_hoisted_17","audioOn","stopAudio","startAudio","$event","$refs","paramsModal","show","_hoisted_24","_hoisted_25","Date","getTime","length","_hoisted_27","_hoisted_28","_hoisted_29","name","value","fullURL","_createVNode","_component_Modal","_hoisted_31","_hoisted_32","_hoisted_33","attrs","device","onChange","onDeviceChanged","_hoisted_34","_hoisted_35","resolution","onSizeChanged","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","horizontal_flip","onFlipChanged","_hoisted_40","_hoisted_41","vertical_flip","_hoisted_42","_hoisted_43","rotate","_hoisted_44","_hoisted_45","scale_x","_hoisted_46","_hoisted_47","scale_y","_hoisted_48","_hoisted_49","fps","onFpsChanged","_hoisted_50","_hoisted_51","grayscale","onGrayscaleChanged","_component_Slot","mixins","Utils","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","onFrameLoaded","degToRad","deg","Math","PI","rot","width","round","abs","cos","sin","height","window","innerWidth","innerHeight","frameContainer","style","request","created","config","$root","mounted","frame","addEventListener","$watch","__exports__","components","Modal","CameraMixin","location","protocol","host","render","_createBlock","_component_Camera","Camera"],"sourceRoot":""}