platypush/platypush/backend/http/webapp/dist/static/js/5824-legacy.e042a7c9.js.map

1 line
43 KiB
Plaintext

{"version":3,"file":"static/js/5824-legacy.e042a7c9.js","mappings":"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","sources":["webpack://platypush/./node_modules/core-js/internals/string-trim-forced.js","webpack://platypush/./node_modules/core-js/modules/es.string.trim.js","webpack://platypush/./src/components/widgets/Component/Index.vue","webpack://platypush/./src/components/widgets/Component/components/mixins.js","webpack://platypush/./src/components/widgets/Component/components/Run.vue","webpack://platypush/./src/components/widgets/Component/components/Run.vue?73ce","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue?66dc","webpack://platypush/./src/components/widgets/Component/components/Slider.vue","webpack://platypush/./src/components/widgets/Component/components/Slider.vue?fc3e","webpack://platypush/./src/components/widgets/Component/components/Switch.vue","webpack://platypush/./src/components/widgets/Component/components/Switch.vue?ce7f","webpack://platypush/./src/components/widgets/Component/index.js","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/elements/ToggleSwitch.vue","webpack://platypush/./src/components/elements/ToggleSwitch.vue?94aa","webpack://platypush/./src/components/widgets/Component/Index.vue?276d"],"sourcesContent":["var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","<template>\n <div class=\"component-widget\">\n <Loading v-if=\"loading\" />\n <div class=\"container\" ref=\"container\" />\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\nimport Loading from \"@/components/Loading\";\nimport components from './index'\nimport { createApp, h } from \"vue\";\nimport mitt from 'mitt';\n\nconst bus = mitt();\n\nexport default {\n name: \"Elements\",\n components: {Loading},\n mixins: [Utils],\n props: {\n content: {\n type: String,\n },\n },\n\n data() {\n return {\n loading: false,\n unwatch: null,\n }\n },\n\n methods: {\n _parseActions(element) {\n const actionsTags = [...element.children].filter((node) => node.tagName?.toLowerCase() === 'actions')\n const children = actionsTags?.length ? actionsTags[0].children : element.children\n const actionTags = [...children].filter((node) => node.tagName?.toLowerCase() === 'action')\n\n if (!actionTags?.length)\n return\n\n return [...actionTags]\n .map((actionTag) => {\n return {\n action: actionTag.attributes.name.value,\n args: [...actionTag.children].reduce((obj, arg) => {\n let value = undefined\n try {\n value = JSON.parse(arg.innerText)\n } catch (e) {\n if (arg.innerText?.length)\n value = arg.innerText\n }\n\n obj[arg.tagName.toLowerCase()] = value\n return obj\n }, {}),\n }\n })\n },\n\n _parseVars(element) {\n const varsTags = [...element.children].filter((node) => node.tagName?.toLowerCase() === 'vars')\n if (!varsTags?.length)\n return\n\n return [...varsTags[0].children].reduce((vars, varTag) => {\n let value = undefined\n try {\n value = JSON.parse(varTag.innerText)\n } catch (e) {\n if (varTag.innerText?.length)\n value = varTag.innerText\n }\n vars[varTag.tagName.toLowerCase()] = value\n return vars\n }, {})\n },\n\n _parseHandlers(element) {\n const handlers = {}\n const parseHndlScript = (hndlText) => {\n return (app) => {\n return eval(`// noinspection JSUnusedLocalSymbols\n (async function (self) {\n ${hndlText}\n })`)(app)\n }\n }\n\n const parseEventHndl = (hndlText) => {\n return (app) => {\n return (event) => {\n return eval(`// noinspection JSUnusedLocalSymbols\n (async function (self, event) {\n ${hndlText}\n })`)(app, event)\n }\n }\n }\n\n const hndlTags = [...element.children].filter((node) => node.tagName?.toLowerCase() === 'handlers')\n if (hndlTags?.length) {\n const mounted = [...hndlTags[0].children].filter((node) => node.tagName?.toLowerCase() === 'mounted')\n if (mounted?.length)\n handlers.mounted = parseHndlScript(mounted[0].innerText)\n\n const refresh = [...hndlTags[0].children].filter((node) => node.tagName?.toLowerCase() === 'refresh')\n if (refresh?.length) {\n handlers.refresh = {\n handler: parseHndlScript(refresh[0].innerText),\n interval: refresh[0].attributes.interval?.value || 10,\n }\n }\n\n const events = [...hndlTags[0].children].filter((node) => node.tagName?.toLowerCase() === 'event')\n if (events?.length)\n handlers.events = events.reduce((events, hndlTag) => {\n events[hndlTag.attributes.type.value] = parseEventHndl(hndlTag.innerText)\n return events\n }, {})\n }\n\n const actionsTags = [...element.children].filter((node) => node.tagName?.toLowerCase() === 'actions')\n if (actionsTags?.length) {\n const beforeActionsTags = [...actionsTags[0].children].filter((node) => node.tagName?.toLowerCase() === 'before')\n if (beforeActionsTags?.length)\n handlers.beforeActions = parseHndlScript(beforeActionsTags[0].innerText)\n\n const afterActionsTags = [...actionsTags[0].children].filter((node) => node.tagName?.toLowerCase() === 'after')\n if (afterActionsTags?.length)\n handlers.afterActions = parseHndlScript(afterActionsTags[0].innerText)\n }\n\n return handlers\n },\n\n _parseProps(element) {\n return [...element.attributes].reduce((obj, attr) => {\n obj[attr.name] = attr.value\n return obj\n }, {})\n },\n\n propagateEvent(event) {\n bus.emit('event', event)\n },\n\n _addEventHandler() {\n this.unwatch = this.subscribe((event) => {\n bus.emit('event', event)\n })\n },\n\n _removeEventHandler() {\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n },\n },\n\n mounted() {\n this.loading = true\n this._addEventHandler()\n\n try {\n this.$refs.container.innerHTML = this.content\n\n Object.entries(components).forEach(([name, component]) => {\n this.$options.components[name] = component;\n [...this.$refs.container.getElementsByTagName(name)].forEach((element) => {\n const props = this._parseProps(element)\n props.actions = this._parseActions(element)\n props.handlers = this._parseHandlers(element)\n props._vars = this._parseVars(element)\n\n const newEl = document.createElement('div')\n newEl.setAttribute('class', 'component')\n newEl.innerHTML = element.innerHTML\n element.parentNode.replaceChild(newEl, element)\n\n createApp({\n render() { return h(component, props) },\n data() {\n return { bus: bus }\n },\n }).mount(newEl)\n })\n })\n\n for (const tagName of ['handlers', 'actions', 'vars'])\n this.$refs.container.getElementsByTagName(tagName).forEach((hndlTag) => {\n hndlTag.parentNode.removeChild(hndlTag)\n })\n } finally {\n this.loading = false\n }\n },\n\n unmounted() {\n this._removeEventHandler()\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.component-widget {\n margin: -.75em 0 0 -.75em !important;\n padding: 0;\n width: calc(100% + 1.5em);\n height: calc(100% + 1.5em);\n}\n</style>\n","import Utils from \"@/Utils\";\n\nexport default {\n mixins: [Utils],\n props: {\n /**\n * Component name\n */\n name: {\n type: String,\n default: '[Unnamed sensor]',\n },\n\n /**\n * Action (FontAwesome) icon class (default: `fa fa-play`)\n */\n iconClass: {\n type: String,\n },\n\n /**\n * Action icon URL (default: `fa fa-play`)\n */\n iconUrl: {\n type: String,\n },\n\n /**\n * Action icon color override, for FontAwesome icons\n */\n iconColor: {\n type: String,\n },\n\n /**\n * Actions to run upon interaction with the widget. Format:\n *\n * [\n * {\n * \"action\": \"light.hue.toggle\",\n * \"args\": {\n * \"lights\": [\"Bulb 1\", \"Bulb 2\"]\n * }\n * },\n * {\n * \"action\": \"music.mpd.pause\"\n * }\n * ]\n */\n actions: {\n type: Array,\n default: () => { return [] },\n },\n\n /**\n * Map of variables used by this component, in the form\n * variable_name -> variable_value.\n */\n _vars: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Map of handlers, in the form of event_type -> functions.\n * Supported event handler types:\n *\n * - mounted: Function to execute when the component is mounted.\n * - beforeActions: Function to execute before the component action is run.\n * - afterActions: Function to execute after the component action is run.\n * - refresh: Function to be called at startup (if mounted is also specified\n * then refresh will be called after mounted when the component is\n * first mounted) and at regular intervals defined on the\n * interval property (default: 10 seconds).\n * - events: This is a mapping of functions that react to Platypush\n * platform events published on the websocket (e.g. lights or\n * switches toggles, media events etc.). The form is\n * platypush_event_type -> function.\n */\n handlers: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Event bus\n */\n bus: {\n type: Object,\n },\n },\n\n data() {\n return {\n vars: {...(this._vars || {})},\n _interval: undefined,\n refresh: null,\n refreshInterval: null,\n value: null,\n loading: false,\n }\n },\n\n computed: {\n iconStyle() {\n if (!this.iconClass?.length && this.iconColor?.length)\n return\n\n return {'color': this.iconColor}\n },\n\n hasIcon() {\n return this.iconUrl?.length || this.iconClass?.length\n },\n },\n\n methods: {\n async run() {\n if (this.handlers.input)\n return this.handlers.input(this)(this.value)\n\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n for (const action of this.actions)\n await this.request_(action)\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n\n async request_(action) {\n const args = Object.entries(action.args).reduce((args, [key, value]) => {\n if (value.trim) {\n value = value.trim()\n const m = value.match(/^{{\\s*(.*)\\s*}}/)\n if (m) {\n value = eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this)\n }\n }\n\n args[key] = value\n return args\n }, {})\n\n await this.request(action.action, args)\n },\n\n async processEvent(event) {\n const hndl = (this.handlers.events || {})[event.type]\n if (hndl)\n await hndl(this)(event)\n },\n },\n\n async mounted() {\n this.$root.bus.on('event', this.processEvent)\n\n if (this.handlers.mounted)\n await this.handlers.mounted(this)\n\n if (this.handlers.refresh) {\n this.refreshInterval = (this.handlers.refresh?.interval || 0) * 1000\n this.refresh = () => {\n this.handlers.refresh.handler(this)\n }\n\n await this.refresh()\n if (this.refreshInterval) {\n const self = this\n const wrapper = () => { return self.refresh() }\n this._interval = setInterval(wrapper, this.refreshInterval)\n }\n }\n },\n\n unmounted() {\n if (this._interval)\n clearInterval(this._interval)\n }\n}\n","<template>\n <div class=\"run component-row\" @click=\"run\">\n <div class=\"col-1 icon-container\" v-if=\"hasIcon\">\n <img class=\"icon\" :src=\"iconUrl\" :alt=\"name\" v-if=\"iconUrl?.length\">\n <i class=\"icon\" :class=\"iconClass\" :style=\"iconStyle\" v-else />\n </div>\n <div :class=\"{'col-11': hasIcon, 'col-12': !hasIcon}\" v-text=\"name\" />\n </div>\n</template>\n\n<script>\nimport mixins from './mixins';\n\n/**\n * This component is used to run one or more actions.\n */\nexport default {\n name: \"Run\",\n mixins: [mixins],\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"mixins\";\n</style>\n","import { render } from \"./Run.vue?vue&type=template&id=7478b72d&scoped=true\"\nimport script from \"./Run.vue?vue&type=script&lang=js\"\nexport * from \"./Run.vue?vue&type=script&lang=js\"\n\nimport \"./Run.vue?vue&type=style&index=0&id=7478b72d&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","<template>\n <div class=\"sensor component-row\" @click=\"run\">\n <div class=\"col-1 icon-container\" v-if=\"hasIcon\">\n <img class=\"icon\" :src=\"iconUrl\" :alt=\"name\" v-if=\"iconUrl?.length\">\n <i class=\"icon\" :class=\"iconClass\" :style=\"iconStyle\" v-else />\n </div>\n <div :class=\"{'col-8': hasIcon, 'col-9': !hasIcon}\" v-text=\"name\" />\n <div class=\"col-3 value-container\">\n <div class=\"value\">\n {{ value }}\n <span v-if=\"unit\" v-text=\"unit\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport mixins from './mixins';\n\n/**\n * This component is used to monitor values from sensors.\n */\nexport default {\n name: \"Sensor\",\n mixins: [mixins],\n props: {\n /**\n * Optional unit used for the sensor value\n */\n unit: {\n type: String,\n },\n },\n\n methods: {\n async run() {\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n\n if (this.actions?.length)\n for (const action of this.actions)\n await this.request_(action)\n else\n await this.refresh()\n\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"mixins\";\n\n.sensor {\n .value-container {\n position: relative;\n\n .value {\n position: absolute;\n right: 0;\n font-weight: bold;\n }\n }\n}\n</style>\n","import { render } from \"./Sensor.vue?vue&type=template&id=53594122&scoped=true\"\nimport script from \"./Sensor.vue?vue&type=script&lang=js\"\nexport * from \"./Sensor.vue?vue&type=script&lang=js\"\n\nimport \"./Sensor.vue?vue&type=style&index=0&id=53594122&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","<template>\n <div class=\"slider-root component-row\">\n <div class=\"col-1 icon-container\" v-if=\"hasIcon\">\n <img class=\"icon\" :src=\"iconUrl\" :alt=\"name\" v-if=\"iconUrl?.length\">\n <i class=\"icon\" :class=\"iconClass\" :style=\"iconStyle\" v-else />\n </div>\n <div :class=\"{'col-6': hasIcon, 'col-7': !hasIcon}\" v-text=\"name\" />\n <div class=\"col-5 slider-container\">\n <div class=\"slider\">\n <SliderElement :value=\"value\" :range=\"[parseFloat(min), parseFloat(max)]\" @mouseup=\"run\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport mixins from './mixins';\nimport SliderElement from \"@/components/elements/Slider\";\n\n/**\n * This component can be used to run action on the basis of a\n * numeric value included in a specified interval (i.e. a slider).\n */\nexport default {\n name: \"Slider\",\n components: {SliderElement},\n mixins: [mixins],\n props: {\n /**\n * Minimum value for the slider (default: 0).\n */\n min: {\n type: [String, Number],\n default: 0,\n },\n\n /**\n * Maximum value for the slider.\n */\n max: {\n type: [String, Number],\n required: true,\n },\n },\n\n methods: {\n async run(event) {\n this.value = parseFloat(event.target.value)\n\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n for (const action of this.actions)\n await this.request_(action)\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"mixins\";\n\n.slider-root {\n .slider-container {\n position: relative;\n\n .slider {\n position: absolute;\n right: 0;\n }\n }\n}\n</style>\n","import { render } from \"./Slider.vue?vue&type=template&id=772cf288&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=772cf288&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-772cf288\"]])\n\nexport default __exports__","<template>\n <div class=\"switch component-row\" @click=\"run\">\n <div class=\"col-1 icon-container\" v-if=\"hasIcon\">\n <img class=\"icon\" :src=\"iconUrl\" :alt=\"name\" v-if=\"iconUrl?.length\">\n <i class=\"icon\" :class=\"iconClass\" :style=\"iconStyle\" v-else />\n </div>\n <div :class=\"{'col-9': hasIcon, 'col-10': !hasIcon}\" v-text=\"name\" />\n <div class=\"col-2 toggle-container\">\n <div class=\"toggle\">\n <ToggleSwitch :value=\"value\" @input.stop=\"run\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport mixins from './mixins';\nimport ToggleSwitch from \"@/components/elements/ToggleSwitch\";\n\n/**\n * This component can be used to trigger toggle actions on\n * entities with a binary (ON/OFF) state.\n */\nexport default {\n name: \"Switch\",\n components: {ToggleSwitch},\n mixins: [mixins],\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"mixins\";\n\n.switch {\n .toggle-container {\n position: relative;\n\n .toggle {\n position: absolute;\n right: 0;\n }\n }\n}\n</style>\n","import { render } from \"./Switch.vue?vue&type=template&id=97d3a936&scoped=true\"\nimport script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=97d3a936&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-97d3a936\"]])\n\nexport default __exports__","import Run from './components/Run'\nimport Sensor from \"./components/Sensor\";\nimport Slider from './components/Slider'\nimport Switch from './components/Switch'\n\nexport default {\n Run,\n Sensor,\n Slider,\n Switch,\n}\n","<template>\n <label class=\"slider-wrapper\">\n <input class=\"slider\"\n type=\"range\"\n :class=\"{'with-label': withLabel}\"\n :min=\"range[0]\"\n :max=\"range[1]\"\n :step=\"step\"\n :disabled=\"disabled\"\n :value=\"value\"\n ref=\"range\"\n @input.stop=\"onUpdate\"\n @change.stop=\"onUpdate\">\n\n <div class=\"track\" :class=\"{'with-label': withLabel}\">\n <div class=\"track-inner\" ref=\"track\"></div>\n </div>\n <div class=\"thumb\" ref=\"thumb\"></div>\n <span class=\"label\" v-if=\"withLabel\" v-text=\"value\" ref=\"label\"></span>\n </label>\n</template>\n\n<script>\nexport default {\n name: \"Slider\",\n emits: ['input', 'change', 'mouseup', 'mousedown', 'touchstart', 'touchend', 'keyup', 'keydown'],\n props: {\n value: {\n type: Number,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n range: {\n type: Array,\n default: () => [0, 100],\n },\n\n step: {\n type: Number,\n default: 1,\n },\n\n withLabel: {\n type: Boolean,\n default: false,\n }\n },\n\n methods: {\n onUpdate(event) {\n this.update(event.target.value)\n this.$emit(event.type, {\n ...event,\n target: {\n ...event.target,\n value: this.$refs.range.value,\n }\n })\n },\n\n update(value) {\n const sliderWidth = this.$refs.range.clientWidth\n const percent = (value - this.range[0]) / (this.range[1] - this.range[0])\n const innerWidth = percent * sliderWidth\n const thumb = this.$refs.thumb\n\n thumb.style.left = `${innerWidth - thumb.clientWidth / 2}px`\n this.$refs.thumb.style.transform = `translate(-${percent}%, -50%)`\n this.$refs.track.style.width = `${innerWidth}px`\n },\n },\n\n mounted() {\n if (this.value != null)\n this.update(this.value)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$label-width: 3em;\n\n.slider-wrapper {\n width: 100%;\n display: flex;\n position: relative;\n\n .slider {\n width: 100%;\n cursor: pointer;\n opacity: 0;\n\n &::-ms-tooltip {\n display: none;\n }\n }\n\n .track {\n width: 100%;\n height: 0.75em;\n background: $slider-bg;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n border-radius: 0.5em;\n box-shadow: inset 1px 0px 3px 0 $slider-track-shadow;\n pointer-events: none;\n\n .track-inner {\n width: 0;\n height: 100%;\n background: $slider-progress-bg;\n border-radius: 0.5em 0 0 0.5em;\n }\n\n &.with-label {\n width: calc(100% - $label-width);\n }\n }\n\n .thumb {\n width: 1.25em;\n height: 1.25em;\n background: $slider-thumb-bg;\n position: absolute;\n top: 50%;\n left: 0;\n transform: translate(0%, -50%);\n border-radius: 50%;\n box-shadow: 1px 0px 2px 0 $slider-thumb-shadow;\n pointer-events: none;\n }\n\n .label {\n width: $label-width;\n position: relative;\n font-weight: normal;\n text-align: center;\n }\n}\n</style>\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__","<template>\n <div class=\"power-switch\" :class=\"{disabled: disabled}\" @click.stop=\"onInput\">\n <!--suppress HtmlFormInputWithoutLabel -->\n <input type=\"checkbox\" :checked=\"value\">\n <label>\n <!--suppress HtmlUnknownTag -->\n <div class=\"switch\">\n <div class=\"dot\" />\n </div>\n <span class=\"label\">\n <slot />\n </span>\n </label>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"ToggleSwitch\",\n emits: ['input'],\n props: {\n value: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n methods: {\n onInput(event) {\n if (this.disabled)\n return false\n\n this.$emit('input', event)\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.power-switch {\n position: relative;\n transition: transform .3s;\n transform: scale(var(--scale, 1)) translateZ(0);\n\n &:active {\n --scale: .96;\n }\n\n &.disabled {\n opacity: 0.6;\n }\n\n input {\n display: none;\n & + label {\n border-radius: 1em;\n display: inline-flex;\n cursor: pointer;\n position: relative;\n transition: box-shadow .4s;\n\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n background: none;\n opacity: var(--gradient, 0);\n transition: opacity .4s;\n }\n\n .switch {\n position: relative;\n display: inline-block;\n vertical-align: top;\n height: 1.4em;\n width: 2.5em;\n border-radius: 1em;\n background: $slider-bg;\n box-shadow: inset 1px 0px 3px 0 $slider-track-shadow;\n\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n background: $slider-progress-bg;\n opacity: var(--gradient, 0);\n transition: opacity .4s;\n }\n\n .dot {\n background: $toggle-dot-bg;\n position: absolute;\n width: 1.5em;\n height: 1.5em;\n border-radius: 50%;\n box-shadow: 1px 0px 3.5px 0 $slider-thumb-shadow;\n left: -0.25em;\n top: -0.05em;\n transform: translateX(var(--offset, 0));\n transition: transform .4s, box-shadow .4s;\n\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n background: $toggle-selected-dot-bg;\n opacity: var(--gradient, 0);\n transition: opacity .4s;\n }\n }\n }\n\n span {\n line-height: 2em;\n font-size: 1.2em;\n color: var(--text, #646B8C);\n font-weight: 500;\n display: inline-block;\n vertical-align: top;\n position: relative;\n margin-left: 0.5em;\n transition: color .4s;\n }\n\n & + span {\n text-align: center;\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 100%;\n opacity: 0;\n font-size: 1em;\n font-weight: 500;\n color: $slider-bg;\n transform: translateY(0.2em);\n transition: opacity .4s, transform .4s;\n }\n }\n\n &:not(:checked) {\n & + label {\n pointer-events: none;\n & + span {\n opacity: 1;\n transform: translateY(0.6em);\n }\n }\n }\n\n &:checked {\n & + label {\n --offset: 1.5em;\n --text: $slider-progress-bg;\n --gradient: 1;\n --shadow: rgba(0, 39, 6, .1);\n }\n }\n }\n}\n</style>\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=a6396ae8&scoped=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=a6396ae8&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-a6396ae8\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=450fcab1&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=450fcab1&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","non","module","exports","METHOD_NAME","name","$","$trim","forcedStringTrimMethod","target","proto","forced","trim","this","bus","components","Loading","mixins","props","content","type","String","data","loading","unwatch","methods","_parseActions","element","actionsTags","children","filter","node","tagName","toLowerCase","length","actionTags","map","actionTag","action","attributes","value","args","reduce","obj","arg","undefined","JSON","parse","innerText","e","_parseVars","varsTags","vars","varTag","_parseHandlers","handlers","parseHndlScript","hndlText","app","eval","parseEventHndl","event","hndlTags","mounted","refresh","handler","interval","events","hndlTag","beforeActionsTags","beforeActions","afterActionsTags","afterActions","_parseProps","attr","propagateEvent","emit","_addEventHandler","subscribe","_removeEventHandler","$refs","container","innerHTML","Object","entries","forEach","component","$options","getElementsByTagName","actions","_vars","newEl","document","createElement","setAttribute","parentNode","replaceChild","render","h","mount","removeChild","unmounted","Utils","default","iconClass","iconUrl","iconColor","Array","_interval","refreshInterval","computed","iconStyle","hasIcon","run","input","request_","key","m","match","request","processEvent","hndl","$root","on","self","wrapper","setInterval","clearInterval","class","src","alt","style","__exports__","unit","range","parseFloat","min","max","SliderElement","Slider","Number","required","ToggleSwitch","Run","Sensor","Switch","ref","withLabel","step","disabled","onUpdate","emits","Boolean","update","$emit","sliderWidth","clientWidth","percent","innerWidth","thumb","left","transform","track","width","onInput","checked"],"sourceRoot":""}