platypush/platypush/backend/http/webapp/dist/static/js/4548.686dd66b.js.map

1 line
18 KiB
Plaintext

{"version":3,"file":"static/js/4548.686dd66b.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/CameraPi/Index.vue","webpack://platypush/./src/components/panels/CameraPi/Index.vue?7074"],"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 <!--suppress HtmlUnknownTarget -->\n <source :src=\"`/sound/stream?t=${(new Date()).getTime()}`\" type=\"audio/x-wav;codec=pcm\">\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 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 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=bfa8f2aa\"\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=bfa8f2aa&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Camera camera-plugin=\"pi\" />\n</template>\n\n<script>\nimport Camera from \"@/components/panels/Camera/Index\";\n\nexport default {\n name: \"CameraPi\",\n components: {Camera},\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=6f4a0590\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","ref","autoplay","preload","streaming","capturing","captured","src","url","alt","type","stopStreaming","disabled","title","startStreaming","capture","audioOn","stopAudio","startAudio","$refs","paramsModal","show","Date","getTime","length","name","value","fullURL","attrs","device","onDeviceChanged","resolution","onSizeChanged","horizontal_flip","onFlipChanged","vertical_flip","rotate","scale_x","scale_y","fps","onFpsChanged","grayscale","onGrayscaleChanged","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","frameContainer","style","width","round","abs","cos","sin","height","async","request","created","config","$root","mounted","frame","addEventListener","$watch","__exports__","components","Modal","window","location","protocol","host","render","Camera"],"sourceRoot":""}