platypush/platypush/backend/http/webapp/dist/static/js/5824.bdf4e44b.js.map

1 line
41 KiB
Plaintext

{"version":3,"file":"static/js/5824.bdf4e44b.js","mappings":"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","sources":["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":["<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 <span class=\"range-labels\" :class=\"{'with-label': withLabel}\" v-if=\"withRange\">\n <span class=\"label left\" v-if=\"withRange\" v-text=\"range[0]\" />\n <span class=\"label right\" v-if=\"withRange\" v-text=\"range[1]\" />\n </span>\n\n <span class=\"slider-container\">\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 </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 withRange: {\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 this.$watch(() => this.value, (newValue) => this.update(newValue))\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 flex-direction: column;\n\n .slider-container {\n width: 100%;\n display: flex;\n position: relative;\n }\n\n .slider {\n width: 100%;\n cursor: pointer;\n opacity: 0;\n\n &::-ms-tooltip {\n display: none;\n }\n }\n\n .range-labels {\n width: 100%;\n\n &.with-label {\n width: calc(100% - $label-width);\n }\n\n .right {\n @extend .pull-right;\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=28d31846&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=28d31846&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-28d31846\"]])\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":["bus","name","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","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","this","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","undefined","refreshInterval","computed","iconStyle","hasIcon","async","input","request_","key","trim","m","match","request","hndl","$root","on","processEvent","self","wrapper","setInterval","clearInterval","class","run","src","alt","style","__exports__","unit","range","parseFloat","min","max","SliderElement","Number","required","target","ToggleSwitch","Run","Sensor","Slider","Switch","ref","withRange","withLabel","step","disabled","onUpdate","emits","Boolean","update","$emit","sliderWidth","clientWidth","percent","innerWidth","thumb","left","transform","track","width","$watch","newValue","onInput","checked"],"sourceRoot":""}